← Back to Blog 0.7.0 · KERNEL · HAL

HAL Batch 22 — TouchID/K2-SATA + SPI-HID/MESH-SCSI + HDMI-TX/SWIM3

June 23, 2026 · Sigil-Docs · sigil-kernel b72ac18 + 35fb3a7 + 8823994
kernelhalapple-siliconpowerpchardware0.7.0

Three sigil-kernel commits extend the HAL arch matrix from 0x53C000 to 0x541000, adding 6 seams: Apple Touch ID biometric, G5 K2/Intrepid SATA controller, Apple SPI HID keyboard/trackpad, G3/G4 MESH/Curio parallel SCSI, Apple HDMI/DP transmitter, and G3/G4 SWIM3 floppy controller.

b72ac18 — Touch ID + K2/Intrepid SATA

apple_touchid.sg (0x53C000)
Touch ID biometric — SEP-linked match forwarding (no raw biometric in kernel), 5-slot enrollment, consecutive-failure lockout policy, password-fallback unlock. touchid_init(), touchid_enroll(slot), touchid_match() (returns match/no-match via SEP), touchid_lockout_check(), touchid_password_fallback(), accessors. TID init=1 enr=1 lck=1 K.
ppc_k2sata.sg (0x53D000)
K2/Intrepid SATA — multi-port device attach, NCQ depth tracking (max 32), read/write completion + sector accounting, hot-plug detect, PHY error counter. k2sata_init(), k2sata_attach(port), k2sata_ncq_submit(port, lba, sectors), k2sata_read_complete(sectors), k2sata_write_complete(sectors), k2sata_hotplug(port), k2sata_phy_error(), accessors. KSA init=1 ncq=1 rw=1 K.

35fb3a7 — SPI HID + MESH/Curio SCSI

apple_spihid.sg (0x53E000)
SPI HID keyboard/trackpad — keyboard events + modifiers + Fn layer, multi-touch trackpad reports (up to 11 contacts), Force Touch clicks, keyboard backlight control, wake-from-key. spihid_init(), spihid_key_event(scancode, modifiers), spihid_fn_layer(v), spihid_trackpad_report(contacts, x[], y[]), spihid_force_click(), spihid_backlight(level), spihid_wake_key(), accessors. SHD init=1 key=1 tp=1 K.
ppc_mesh_scsi.sg (0x53F000)
MESH/Curio parallel SCSI — target enumeration via INQUIRY, sync transfer negotiation (SDTR), data-in/out + DBDMA, bus reset, parity errors. mesh_init(), mesh_inquiry(target_id), mesh_negotiate_sdtr(target_id, period, offset), mesh_data_in(bytes), mesh_data_out(bytes), mesh_bus_reset(), mesh_parity_error(), accessors. MSH init=1 tgt=1 rw=1 K.

8823994 — HDMI/DP TX + SWIM3 floppy

apple_hdmitx.sg (0x540000)
HDMI/DP transmitter — link training (TMDS/FRL), EDID/DDC read, HDCP 2.3 auth with retry, HDMI audio packet insertion, CEC command, VRR (variable refresh rate). hdmitx_init(), hdmitx_link_train(mode) (TMDS=0, FRL=1), hdmitx_edid_read(), hdmitx_hdcp_auth(), hdmitx_audio_packet(bytes), hdmitx_cec_cmd(opcode), hdmitx_vrr_enable(v), accessors. HTX init=1 lnk=1 hdcp=1 K.
ppc_swim3.sg (0x541000)
SWIM3 floppy controller — motor spin-up, 80-cylinder seek, sector read/write via DBDMA, media detect (DD 800K / HD 1.44MB), write-protect gate, motorized eject. swim3_init(), swim3_motor_on(), swim3_seek(cylinder), swim3_read_sector(cyl, head, sector), swim3_write_sector(cyl, head, sector, data), swim3_media_detect(), swim3_write_protect(), swim3_eject(), accessors. SWM init=1 rw=1 ej=1 K.

Arch matrix now at 0x541000.