This repository is currently used only for publishing binary releases: https://github.com/worproject/RPi-Windows-Drivers/releases
The source code for some of the prebuilt drivers can be found here: https://github.com/raspberrypi/windows-drivers
-
most of the drivers require the Test Signing mode to be enabled.
-
ARM32 drivers can't be installed on an ARM64 image or vice versa.
-
drivers included in the latest release that can't be found in the "bsp" repository above were either extracted from old builds of Windows 10 IoT Core (ARM32 binaries) or recompiled for ARM64 by their developers (thanks to MCCI and Microchip).
-
some of the new drivers / features are not yet open-sourced because the code needs to be heavily refactored. It's good enough to "get the thing working", but it can't be used as a base for further development. Watch the repository above for updates on this.
The driver package for Raspberry Pi 4 installs a DSDT & SSDT table override that:
-
changes the _HIDs of the
- PL011 controller to BCM2887
- XHCI controller to RPI0D10
so Windows won't install the incompatible inbox drivers instead of our own versions. This is not necessary if the drivers are properly signed.
-
fixes the PWM definition and adds an analog audio device
-
adds dummy HDMI controller and digital audio devices
For ACPI changes in the UEFI to take effect, you need to uninstall this override by deleting dsdtpatch
from the package or the ACPITABL.dat
file from %SystemRoot%\System32\
. As a result, Bluetooth, audio and the USB filter driver may stop working.
Device | Driver | Status | Additional information |
---|---|---|---|
7-inch DSI touch screen | Display: firmware-controlled, Touch: no driver available | Partially working | Only the display works, but the resolution may be wrong. See the RPi docs for details on how to change it through config.txt. |
CSI Camera Module | No driver available | Not working | |
3-pin case fan | UEFI-controlled | Partially working | Fan control can be enabled in the UEFI settings, but it will always stay on due to temperature control not working in Windows |
Device | Driver | Status | Additional information |
---|---|---|---|
eMMC2 SDHCI | sdbus.sys (bcmemmc2.inf) | Partially working | a faster SD controller meant to replace SDHOST. No DMA, HS200/HS400 and UHS-I support at the moment. |
Arasan SD/SDIO Host Controller | bcm2836sdhc.sys | Working | |
SD2.0 Host Controller | rpisdhc.sys | Untested | SDHOST can no longer be routed to the SD card slot (but it's available on the GPIO header) |
GPIO | bcmgpio.sys | Working | |
SPI | bcmspi.sys | Working | |
AUXSPI | bcmauxspi.sys | Working | |
I2C | bcmi2c.sys | Working | |
PWM | bcm2836pwm.sys | Working | |
Audio Jack (PWM-driven) | rpiwav.sys | Working | |
Mini UART | pi_miniuart.sys | Working | |
PL011 UART | SerPL011.sys | Working | |
VC4 Mailbox Interface | rpiq.sys | Working | |
VC4 Host Interface Queue | vchiq.sys | Not working | |
VC4 GPU (Graphics) | roskmd.sys | Not working | the driver loads, but it doesn't do much as it's unfinished |
HDMI Audio | rpi4hdmiwav.sys, rpi4hdmiwavbridge.sys | Partially working | only the HDMI0 port is supported (next to the USB-C port on RPi 4 or the SD card slot on RPi 400) |
Basic Display Adapter (frame buffer) | MSBDD (Inbox) | Working | |
DesignWare HS USB 2.0 OTG Controller | mcci_dwchsotg_hcd.sys, mcci_dwchsotg_hub.sys | Partially working | RAM must be limited to 1 GB |
VIA VL805 XHCI Host Controller | rpiuxflt.sys (USBXHCI.SYS filter) | Partially working | workaround: UASP support is disabled as it prevents booting from USB 3.0 drives. The filter driver also reduces transfer speeds quite significantly. |
Broadcom GENET Gigabit Ethernet Controller | bcmgenet_netadapterXX.sys | Working | due to the fact that the NetAdapterCx API is unstable, there are 3 versions of this driver: one for build 19041/2, one for builds 19536 up to 21296, and the last one for builds 21301 and newer |
CYW43455 Wireless LAN | No driver available | Not working | |
CYW43455 UART Bluetooth | cywbtserialbus.sys | Working |
Device | Driver | Status | Additional information |
---|---|---|---|
Arasan SD/SDIO Host Controller | bcm2836sdhc.sys | Working | |
SD2.0 Host Controller | rpisdhc.sys | Working | |
GPIO | bcmgpio.sys | Working | |
SPI | bcmspi.sys | Working | |
AUXSPI | bcmauxspi.sys | Working | |
I2C | bcmi2c.sys | Working | |
PWM | bcm2836pwm.sys | Working | |
Audio Jack (PWM-driven) | rpiwav.sys | Working | |
Mini UART | pi_miniuart.sys | Working | |
PL011 UART | SerPL011.sys | Working | |
VC4 Mailbox Interface | rpiq.sys | Working | |
VC4 Host Interface Queue | vchiq.sys | Not working | |
VC4 GPU (Graphics) | roskmd.sys | Not working | the driver loads, but it doesn't do much as it's unfinished |
HDMI Audio | No driver available | Not working | |
Basic Display Adapter (frame buffer) | MSBDD (Inbox) | Working | |
DesignWare HS USB 2.0 OTG Controller | mcci_dwchsotg_hcd.sys, mcci_dwchsotg_hub.sys | Working | |
LAN9514 USB Ethernet Adapter | lan9500-arm64-n650f.sys | Working | Ethernet support for RPi 3 B |
LAN7515 USB Ethernet Adapter | lan7800-arm64-n650f.sys | Working | Ethernet support for RPi 3 B+ |
CYW43438 Wireless LAN | No driver available | Not working | WLAN support for RPi 3 B |
CYW43455 Wireless LAN | No driver available | Not working | WLAN support for RPi 3 B+ |
CYW43438 UART Bluetooth | cywbtserialbus.sys | Partially working | Bluetooth support for RPi 3 B -> the bus speed is limited as the RTS/CTS lines are not exposed (the driver may crash regardless) |
CYW43455 UART Bluetooth | cywbtserialbus.sys | Partially working | Bluetooth support for RPi 3 B+ -> the bus speed is limited until hardware flow control support is added in the PL011 driver |