← Blog
0.6.0 · kernel · hal

Apple Silicon HAL Batch 2: apple_fb 1.0-Gate, RTKit, ANE, SEP, SMP

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

The second Apple Silicon HAL batch ships the 1.0-gate framebuffer backend plus 8 more M1 components and 3 PowerPC additions. apple_fb.sg is sigil-kernel#3 complete — the GPU/display HAL backend that gates 1.0. RTKit IPC, ANE neural engine, and PPC SMP also land. All QEMU PASS. (sigil-kernel 325b7e7, ebef4b1)

Apple Silicon HAL verify — GPU+RTKit+ANE QEMU PASS
Apple Silicon HAL verify — GPU+RTKit+ANE QEMU PASS

apple_fb.sg — the 1.0-gate

sigil-kernel#3 is complete. apple_fb.sg is the GPU/display HAL backend for the Apple DCP (Display Coprocessor) path. It implements the four required entry points: gpu_init, blit, flip, and query_modes. The Director has declared this the 1.0-gate for the kernel display path — no 1.0 release without a working FB backend on Apple Silicon.

Implementation note: the MMIO address is modeled. Real-hardware verification is a separate milestone that follows the M1 bringup sprint. QEMU PASS.

apple_fb.sg GPU framebuffer backend (sigil-kernel#3, 1.0-gate) — PASS
apple_fb.sg GPU framebuffer backend (sigil-kernel#3, 1.0-gate) — PASS

8 new M1 components (325b7e7)

The batch adds seven M1 peripheral seams and one PowerPC context component:

apple_sep.sg
SEP secure enclave mailbox. Implements BOOT_IMG→ACK handshake and Touch ID biometric inject. Modeled at MMIO 0x420000.
apple_usb.sg
xHCI USB3 controller seam. Capability registers, 2 ports (HS+SS), slot-enable. 0x428000.
apple_wifi.sg
BCM4387 WiFi MSGBUF rings: H2D/D2H rings, scan_request, join. 0x429000.
apple_thermal.sg
SMC thermal: 8 sensors, spike simulation, throttle detect, fan override. 0x42A000.
apple_nvram.sg
iBoot NV variable store: 16-slot KV store, set/get/delete, boot-args flags. 0x42A080.
gmac.sg
BCM5714/5715 GMAC Ethernet: TX/RX ring, loopback, IRQ ack. 0x41C000.
ppc_ctx.sg
PowerPC hardware context switch: MSR/CR/LR/CTR, BAT[0..3], GPR[0..31], is_user flag. 0x41E200.

RTKit + ANE + PPC SMP (ebef4b1)

apple_rtkit.sg — RTKit co-processor IPC

4 mailboxes (AOP/SEP/ISP/ANE) with a BOOT_INIT→HELLO→READY sequence plus service message and ACK. This is the IPC backbone that ANE and ISP depend on for firmware readiness.

PASS: init=1 boot=1 ready=1 svc=1

apple_ane.sg — ANE neural engine

16-slot task FIFO with result ring. Supported operations: matmul, conv2d, softmax. TOPS counter exposed for performance accounting. Firmware-ready state is gated on RTKit HELLO model — ANE does not accept tasks before RTKit signals ready.

PASS: init=1 sub=1 poll=1 tops=1

ppc_smp.sg — PowerPC G4/G5 SMP

4-slot kick table, IPI dispatch model, secondary CPU check-in, online_count register. This brings multi-core PowerPC systems (G4 Xserve, G5 Power Mac) into the HAL coverage matrix.

PASS: init=1 kick=1 cnt=1

Apple Silicon HAL total: 22 components

The two batches together give the kernel HAL layer complete M1 peripheral coverage for the 1.0 target, plus a full PowerPC legacy path.

BatchComponents
First batch (c0b97be) apple_aic, apple_boot, apple_uart, apple_mmu, apple_pmgr, apple_gpio, apple_dart, apple_i2c, apple_pcie, apple_spi, apple_nvme
Second batch (325b7e7, ebef4b1) apple_fb (1.0-gate), apple_sep, apple_usb, apple_wifi, apple_thermal, apple_nvram, apple_rtkit, apple_ane
PowerPC ppc_openpic, ppc_timer, ppc_mmu, mac_io, adb, of_dtree, gmac, ppc_ctx, ppc_smp

With apple_fb.sg (sigil-kernel#3) complete, the 1.0-gate display path is closed. The next kernel milestone is real-hardware M1 bringup and DCP MMIO verification.