Home

Awesome

RaspberryPi2/3 UEFI

RaspberryPi UEFI is based on Linaro EDK2 release 2015.01

You can grab latest RaspberryPi GPU Firmware binaries from here: https://github.com/raspberrypi/firmware. However, the GPU Firmware binaries (bootcode.bin, kernel.img, etc..) that come as part of Windows 10 IoT Core image for RaspberryPi are the only verified and guaranteed to work version.

For information on how to bring-up Windows 10 on a new device, please refer to Windows 10 Bring-up Guide and specifically Boot and UEFI documentation as well as the UEFI to Windows Handoff Requirements section 2.3.5 in UEFI 2.6 specifications.

EDK2 Setup

Important: The RPi-UEFI and Toolchains folder must be in the same location for the scripts in this repo to work. For example D:\RPi-UEFI and D:\Toolchains or C:\projects\rpi_image\RPi-UEFI and C:\projects\rpi_image\Toolchains

  1. Clone repo to your machine at D:\RPi-UEFI for example. We will refer to that path as EDK_ROOT. git clone https://github.com/ms-iot/RPi-UEFI.git
  2. Switch to branch ms-iot. git checkout ms-iot
  3. Install GNU ARM Embedded Toolchain 4.8 series to D:\Toolchains\Arm

Building

The output of compiling RaspberryPi2/3 UEFI is kernel.img which you put on the SDCard. If RaspberryPi can't find kernel.img on the SDCard it won't boot and it will just blink the green LED.

  1. From a CMD window, run BuildPi2Pi3Board.cmd to build UEFI
  1. Copy kernel.img to the SDCard boot partition (e.g EFIESP) and overwrite the existing kernel.img

By default, EDK2 is configured to build DEBUG images. To change that to RELEASE instead, go to: %EDK_ROOT%\Conf\target.txt and locate the line with TARGET = DEBUG and change that to TARGET = RELEASE and rebuild. The output path DEBUG_ARMGCC part will change to RELEASE_ARMGCC.

===

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.