← Blog
MILESTONE · 0.6.0 kernel

Apple Silicon HAL Batch 3: Audio, Biometric, Camera, Thunderbolt 4 + PowerPC Peripherals

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

sigil-kernel's third Apple Silicon HAL batch ships 12 new HAL components — Apple audio (CS35L41), SMBus battery/charger (BQ40Z50/BQ25890H), GPT block device, USB-PD (100W EPR), Touch ID/Face ID biometric, ISP camera (1080p NV12), Thunderbolt 4/USB4 retimer, plus PowerPC: G5 SATA (AHCI-lite), HyperTransport (3-node), USB OHCI, FireWire OHCI, IDE/ATA, Screamer/Burgundy audio. The HAL now covers 36 components across M1 and G3/G4/G5. (sigil-kernel c0bac35, 26273db, bd1b695, 84421c0, 739d21e, 5eb4aa3)

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

HAL status

After three batches, the Apple Silicon HAL covers the complete M1 bring-up surface. PowerPC (G3/G4/G5) is fully covered for legacy Mac hardware. Every component is QEMU-verified against its hardware model. The HAL design is uniform: each .sg file implements an init, a set of operation verbs, and a PASS/FAIL screendump that the harness can read. No component ships without a green harness run.


Apple Silicon — Batch 3 components

Six commits, seven new M1 seams. All QEMU x86 runverify PASS.

apple_audio.sg (c0bac35)

CS35L41 speaker amp + PDM mic array. Implements playback, capture, DMA, and PDM-inject paths. PASS: AUDIO init=1 pb=1 cap=1 pdm=1

apple_smbus.sg (c0bac35)

BQ40Z50 fuel gauge + BQ25890H charger. Models SoC voltage and cycle count; covers discharge and charge-done simulation. PASS: SMBUS init=1 dschg=1 full=1

apple_blkdev.sg (26273db)

GPT partition HAL with a 6-slot table (EFI/APFS/Data/Recovery). Implements add/find, bread to data buffer, and APFS container discovery. PASS: BLKDEV init=1 part=1 find=1 rd=1

apple_usbpd.sg (bd1b695)

USB-PD 4-port contract model (volts/amps/watts/PDO_count). Handles attach/detach CSC interrupt, 100W EPR, and charged_count. PASS: USBPD init=1 att=1 det=1 cnt=1

apple_biometric.sg (84421c0)

Touch ID/Face ID enrollment — 8-slot KV store (enrolled/score/uid). Implements enroll/unenroll, inject_score, and threshold match. PASS: BIO init=1 enr=1 match=1 uen=1

apple_isp.sg (739d21e)

ISP kernel seam — RTKit fw-ready, stream-on/off, frame capture, Y-histogram AE. 1920×1080 NV12 output. PASS: ISP init=1 str=1 cap=1 off=1

apple_tb.sg (5eb4aa3)

TB4/USB4 retimer — 4-port state (plug/speed/mode/DP-lanes/PCIe-lanes/fw-ready), USB4-40G + TB4 2+2 lane split, unplug. PASS: TB4 init=1 plug=1 lane=1 unplug=1


PowerPC — Batch 3 components

Six commits covering G3/G4/G5 legacy Mac hardware. All QEMU x86 runverify PASS.

ppc_sata.sg (c0bac35)

G5 SATA (K2/SB600) — 2-port AHCI-lite, HDD on port 0, ATA sig. PASS: SATA init=1 ahci=1 pi=1 dev=1

ppc_ht.sg (26273db)

G5 HyperTransport — 3-node model (CPU/NB/SB), 1GHz CPU↔NB, 400MHz NB↔SB. PASS: HT init=1 cpu=1 freq=1 ht=1

ppc_usb.sg (bd1b695)

USB OHCI (KeyLargo/SB600) — revision, HCFS op, 2-port RH, CCS+CSC. PASS: PUSB init=1 run=1 plug=1 csc=1

ppc_fw.sg (84421c0)

FireWire OHCI (TI TSB43) — version, LPS, nodeId, bus-reset interrupt, PHY speed. PASS: FW init=1 node=1 brst=1 spd=1

ppc_sound.sg (739d21e)

Screamer/Burgundy audio — 8 codec regs, DBDMA channel, mute/volume/rate. PASS: SOUND init=1 vol=1 mute=1 dma=1

ppc_ide.sg (5eb4aa3)

Mac-IO IDE/ATA — 2 channels × 2 drives, IDENTIFY + read-sector (LBA), DRDY model. PASS: IDE init=1 id=1 read=1


Full HAL component table

36 components across Apple Silicon M1 and PowerPC G3/G4/G5, all QEMU-verified.

ComponentTargetFunction
Apple Silicon M1 — Batch 1
apple_aic.sgM1Apple Interrupt Controller
apple_boot.sgM1Boot/reset sequence
apple_uart.sgM1UART console
apple_mmu.sgM1MMU/TTBR page tables
apple_pmgr.sgM1Power manager (PS0/PS4)
apple_gpio.sgM1GPIO bank
apple_dart.sgM1DART IOMMU
apple_i2c.sgM1I2C controller
Apple Silicon M1 — Batch 2
apple_fb.sgM1Framebuffer / display engine
apple_sep.sgM1Secure Enclave Processor
apple_usb.sgM1USB controller
apple_wifi.sgM1WiFi (BCM4378)
apple_thermal.sgM1Thermal sensors + PMU
apple_nvram.sgM1NVRAM / iBoot vars
apple_gmac.sgM1Gigabit Ethernet MAC
apple_rtkit.sgM1RTKit co-processor IPC
apple_ane.sgM1Apple Neural Engine
Apple Silicon M1 — Batch 3
apple_audio.sgM1CS35L41 speaker amp + PDM mic
apple_smbus.sgM1BQ40Z50 fuel gauge + BQ25890H charger
apple_blkdev.sgM1GPT partition table (6-slot)
apple_usbpd.sgM1USB-PD 4-port, 100W EPR
apple_biometric.sgM1Touch ID / Face ID enrollment
apple_isp.sgM1ISP camera seam, 1080p NV12
apple_tb.sgM1Thunderbolt 4 / USB4 retimer
PowerPC G3/G4/G5 — Batch 1
ppc_openpic.sgG3/G4/G5OpenPIC interrupt controller
ppc_timer.sgG3/G4/G5Decrementer / timebase timer
ppc_mmu.sgG3/G4/G5MMU / BAT / SR model
ppc_machio.sgG3/G4Mac-IO / DBDMA DMA engine
ppc_adb.sgG3/G4ADB keyboard + mouse
ppc_of.sgG3/G4/G5OpenFirmware device tree
PowerPC G3/G4/G5 — Batch 2
ppc_gmac.sgG3/G4/G5GMAC Ethernet
ppc_ctx.sgG3/G4/G5Context save/restore (GPR/FPR/VR)
ppc_smp.sgG4/G5SMP spinlock + IPI
PowerPC G3/G4/G5 — Batch 3
ppc_sata.sgG5K2/SB600 SATA AHCI-lite (2-port)
ppc_ht.sgG5HyperTransport 3-node (CPU/NB/SB)
ppc_usb.sgG3/G4/G5USB OHCI (KeyLargo/SB600)
ppc_fw.sgG3/G4FireWire OHCI (TI TSB43)
ppc_sound.sgG3/G4Screamer / Burgundy audio + DBDMA
ppc_ide.sgG3/G4Mac-IO IDE/ATA (2ch × 2 drives)