Skip to content

Drivers

Windows expects PC hardware. Apple Silicon provides none of it — a different interrupt controller, a different IOMMU, Apple's own storage, display, power and sensor controllers. Every one needs a driver written from public documentation and hardware traces.

There are 43 driver projects in tree. They are experimental: presence here means work exists, not that it is finished or safe.

Platform foundation

Driver Role
AicHal HAL extension for the Apple Interrupt Controller — lets Windows drive AIC2 natively instead of emulating a GIC
AppleAic AIC2 interrupt controller
AppleDart Apple's IOMMU, in front of most peripherals
AppleDapf DART address-filter companion
AppleRtkit RTKit — the protocol Apple's coprocessors speak
ApplePmgr Power manager
AppleClk Clock control
AppleCpuFreq CPU frequency
AppleSmc System Management Controller
AppleSmcBattery, AppleSmcGpio SMC-attached battery and GPIO
AppleEfuse Fuse/identity readout
AppleWdt Watchdog timer
AppleGpio, AppleSpmi GPIO and SPMI buses

Storage, PCIe and USB

Driver Role
AppleNvme Apple's NVMe/ANS storage controller — how Windows boots from internal SSD
ApplePcie PCIe root complex
AppleUsb4 USB4/Thunderbolt
AppleUsbDwc3 DWC3 USB controller
AppleXhciAffinity xHCI interrupt affinity
AppleTypeC Type-C port control
AppleSdhc SD host controller
AuroraUsbBot USB bulk-only transport helper for bring-up

Graphics and display

Driver Role
AppleAgxGpu KMDF render node for the AGX GPU — see Graphics
AppleAgxWddm WDDM display miniport, in bring-up
AppleGpu GPU platform glue
AppleDcp Display Coprocessor
AppleDisplay Display pipeline and scanout state

Input, audio and sensors

Driver Role
AppleSpiHid SPI HID — the built-in keyboard and trackpad
AppleMtpHid Multi-touch HID transport
AppleKbdBacklight Keyboard backlight
AppleLidAngle Lid angle sensor
AppleAopAudio Always-On Processor audio
AppleMcaAudio MCA audio
AppleIsp Image signal processor (camera)
AppleI2c, AppleSerial, AppleUart, AppleSio Buses and serial transports

Wireless

Driver Role
AppleBcmWifi Broadcom Wi-Fi
AppleBcmBluetooth Broadcom Bluetooth
AppleBcmCommon Shared Broadcom transport and firmware loading

Building

Each driver has its own README listing build requirements and limitations; those are more authoritative than any overview. A single entry point drives host operations:

tools/driver list
tools/driver build usb-dwc3
tools/driver test usb-dwc3
tools/driver package usb-bot
tools/driver test all

tools/driver list reports which operations exist per component. Drivers without a native macOS recipe must be built from their Visual Studio project with the WDK.

Windows driver and HAL-extension builds generally need Visual Studio 2022 Build Tools, the matching Windows 11 SDK and WDK, an ARM64 build environment, and a test-signing setup. HAL-extension signing additionally requires certificates and Microsoft binaries that are not distributed here.

End-to-end build, boot, logging, recovery and guest control are handled by the auroradbg project through its abg CLI.

Reporting problems

A useful report includes the exact Mac model and SoC, the Windows build and image type, driver/firmware/m1n1 commit IDs, package and payload hashes, and the complete serial, hypervisor and debugger logs.

Photos and symptoms help but do not replace logs — and avoid testing several unrelated changes in one hardware boot, because the result is then attributable to none of them.