← Blog
KERNEL · 0.6.0

Apple Silicon HAL Batch 14: DisplayPort/MST, FaceTime HD ISP, MagSafe PD + PPC OpenPIC, DART IOMMU, KeyLargo, AGP Fix

June 22, 2026 · sigil-kernel · Sigil-Docs
kernel hal apple-silicon powerpc hardware 0.6.0

sigil-kernel's fourteenth HAL batch adds 6 new seams plus an important AGP correction. Apple side: DisplayPort/Thunderbolt/HDMI (HPD, link training lanes/rate/DPCD, 4K144+HDR+VRR+10bpc display caps, MST 4-stream), FaceTime HD ISP (MIPI-CSI2, 1080p/1200p, AE+WB, privacy shutter gate, face-detect relay), MagSafe 3 USB-C PD (28V/5A=140W negotiation, battery SoC/mV/mA/temp/cycles/health, amber/green LED, thermal clamp). PowerPC side: OpenPIC interrupt controller (16 sources, vec/pri/pol/en, TPR masking, IAC+EOI, 4 IPIs), G5 DART IOMMU (32-entry virt→phys, TLB flush, fault record), PowerBook G4 KeyLargo (2×ATA, 2×USB1.1, 64-source IRQ, I2S, WDT). AGP fix: previous ppc_agp commit (029a572) overwrote the pre-existing AGP bridge seam; this commit restores it and moves the new GART-controller model to ppc_agp_ctrl at 0x483000. All QEMU PASS. (sigil-kernel b6c7f33, 827bae4, 110ec12)

Apple Silicon HAL QEMU batch verification
Apple Silicon HAL QEMU batch verification — 6 new seams, all PASS

apple_displayport.sg — DisplayPort / Thunderbolt / HDMI output

Commit b6c7f33. Address: 0x484000. QEMU: DP init=1 lnk=1 mst=1.

The Apple Silicon display output block covers the full DisplayPort/Thunderbolt/HDMI output path from hot-plug detection through multi-stream transport:


apple_facetime_cam.sg — FaceTime HD camera ISP

Commit 827bae4. Address: 0x486000. QEMU: FTC init=1 frm=1 fac=1.

The FaceTime HD seam models the MIPI-CSI2 image signal processor pipeline end-to-end:


apple_magsafe.sg — MagSafe 3 USB-C Power Delivery

Commit 110ec12. Address: 0x488000. QEMU: MS init=1 pd=1 bat=1.

The MagSafe 3 seam covers both the USB-C PD negotiation and the battery management controller readout:


ppc_openpic.sg — G3/G4/G5 OpenPIC interrupt controller

Commit b6c7f33. Address: 0x485000. QEMU: PIC init=1 irq=1 ipi=1.

OpenPIC is the standard interrupt controller for the G3/G4/G5 PowerPC platform — the PPC equivalent of the x86 8259A PIC. The seam models the full dispatch path:


ppc_dart.sg — G5 DART IOMMU

Commit 827bae4. Address: 0x487000. QEMU: DRT init=1 map=1 flt=1.

The G5 DART (Direct Access Real-time Translation) is Apple's first IOMMU, introduced with the Power Mac G5 to restrict DMA access from PCI devices:


ppc_keylargo.sg — PowerBook G4 KeyLargo Mac I/O hub

Commit 110ec12. Address: 0x489000. QEMU: KL init=1 ata=1 usb=1.

KeyLargo is the Mac I/O ASIC on PowerBook G4 and Power Mac G4 systems — the equivalent of a modern PCH, integrating ATA, USB, IRQ routing, audio, and housekeeping onto a single chip:


AGP seam fix — restoring ppc_agp.sg + new ppc_agp_ctrl.sg

Commit b6c7f33.

HAL batch 12 commit 029a572 introduced ppc_agp.sg as a GART controller model, but it was placed at address 0x427000 — the same address occupied by the pre-existing AGP bridge seam (AGPCMD / AGPSTAT / GART_PTR registers). The new seam silently overwrote the old one, leaving the bridge registers inaccessible.

This commit makes the distinction explicit:

No behavioral change for existing software — the two models cover different parts of the AGP specification (bridge config registers vs. GART/FIFO/bandwidth controller). Both seams PASS independently in QEMU.


Batch 14 seam table

AddressSeamCommitQEMU
0x484000apple_displayport.sgb6c7f33DP init=1 lnk=1 mst=1
0x485000ppc_openpic.sgb6c7f33PIC init=1 irq=1 ipi=1
0x486000apple_facetime_cam.sg827bae4FTC init=1 frm=1 fac=1
0x487000ppc_dart.sg827bae4DRT init=1 map=1 flt=1
0x488000apple_magsafe.sg110ec12MS init=1 pd=1 bat=1
0x489000ppc_keylargo.sg110ec12KL init=1 ata=1 usb=1

The AGP seam restoration (ppc_agp.sg at 0x427000, ppc_agp_ctrl.sg at 0x483000) accompanies batch 14 but does not add new addresses — it corrects a collision introduced in batch 12.