This repository contains BSP components for the Raspberry Pi 2, 3 and Compute Modules running 32-bit Windows 10 IoT Core (version 1809). It also contains BSP components for the Raspberry Pi 2 (v1.2), 3, 4 and corresponding Compute Modules running 64-bit Windows 10.
This BSP repository is under community support; it is not actively maintained by Microsoft. For Raspberry Pi 4 onwards, it's designed for use with Windows 10 version 2004 and later, because of use of newer driver frameworks which are not available on earlier releases.
For the Raspberry Pi 4, firmware from the Pi Firmware Task Force is used, which provides UEFI and ACPI support. It is available at https://github.com/pftf/RPi4/releases.
For the Raspberry Pi 2 (v1.2) and Raspberry Pi 3, the Pi Firmware Task Force provides firmware at https://github.com/pftf/RPi3/releases, which provides UEFI and ACPI support.
Sample binaries of the firmware is included in RPi.BootFirmware to enable quick prototyping. The sources for these binaries are listed below.
- Firmware binaries : RaspberryPi/Firmware
- UEFI Sources : RPi/UEFI
Note: this section is only applicable to 32-bit Windows 10 IoT Core on Raspberry Pi 3 and earlier.
SMBIOS requirements of Windows 10 IoT Core OEM Licensing requires a custom version of kernel.img file with the proper SMBIOS values.
See PlatformSmbiosDxe.c to update the SMBIOS data. Steps to build the kernel.img is provided in the RPi/UEFI Github.
- Clone https://github.com/raspberrypi/windows-drivers
- Open Visual Studio with Administrator privileges
- In Visual Studio: File -> Open -> Project/Solution -> Select
windows-drivers\build\bcm2836\buildbcm2836.sln
- Set your build configuration (Release or Debug)
- Build -> Build Solution
The resulting driver binaries will be located in the windows-drivers\build\bcm2836\ARM\Output
folder, or windows-drivers\build\bcm2836\ARM64\Output
if you picked an Arm 64-bit configuration.
This repo provides experimental ARM64 IoT Core support for Raspberry Pi 3 and 4.
Please refer to IOTARM64.md for more information.
Note: this section is only applicable to 32-bit Windows 10 IoT Core for Raspberry Pi 3 and earlier, please refer to IOTARM64.md for the experimental 64-bit BSP.
We provide a binexport.ps1
script to scrape the BSP components together into a zip file for easy use with the IoT ADK AddonKit.
- Open Powershell
- Navigate to rpi-iotcore\tools
- Run
binexport.ps1
with the appropriate arguments.# Platform: # RPi - Raspberry Pi 2/3 32-bit BSP # RPi3.ARM64 - Raspberry Pi 3 64-bit BSP (experimental) # RPi4.ARM64 - Raspberry Pi 4 64-bit BSP (experimental) # OutputDir # The output directory for the BSP zip file. # IsDebug # Specify to package debug binaries. Default is Release binaries. .\binexport.ps1 [Platform] [OutputDir] [-IsDebug] # Samples # 32-bit BSP for Raspberry Pi 2/3, release binaries .\binexport.ps1 RPi C:\Release # 32-bit BSP for Raspberry Pi 2/3, debug binaries .\binexport.ps1 RPi C:\Debug -IsDebug
- The script will generate a zip file RPi.BSP.xx.zip that can be imported into the IoT-ADK-Addonkit shell using Import-IoTBSP.
Import-IoTBSP RPi C:\Temp\RPi.BSP.xx.zip