Skip to content
Branch: ms-iot
Clone or download
christopherco Fix ECSD CmdArg initialization (#14)
Release builds failed to compile due to a possible uninitialized
variable in MmcDxe. Turns out the ECSD CmdArg was never
initialized. CMD8 argument for eMMC is entirely stuff bits so
just set CmdArg to 0 for clarity.

Signed-off-by: Christopher Co <christopher.co@microsoft.com>
Latest commit 799727f Apr 17, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
AppPkg Merged original APM release into edk2. Jan 9, 2015
ArmPkg Update RPi-UEFI repo with latest RS2 snapshot Mar 6, 2017
ArmPlatformPkg Update RPi-UEFI repo with latest RS2 snapshot Mar 6, 2017
BaseTools RaspberryPi2/3 UEFI source code as of Windows10 RS1 release Oct 22, 2016
BeagleBoardPkg ArmPkg: break out common Bds functions Jan 16, 2015
Conf EDK II: Add .gitignore Oct 14, 2014
CryptoPkg Correct the Hash Calculation for Revoked X.509 Certificate to align w… Dec 25, 2014
DuetPkg Change NT32 and DUET to use UEFI Shell by default. Use "-D USE_OLD_SH… Nov 25, 2014
EdkCompatibilityPkg EdkCompatibilityPkg: Make this field name match the name in the spec. Nov 26, 2014
EdkShellBinPkg EDK II Contributions.txt: Update patch format information Oct 31, 2014
EdkShellPkg EDK II Contributions.txt: Update patch format information Oct 31, 2014
EmbeddedPkg Update RPi-UEFI repo with latest RS2 snapshot Mar 6, 2017
EmulatorPkg
FatBinPkg EDK II Contributions.txt: Update patch format information Oct 31, 2014
HisiPkg d01: add EDK2_OUT_DIR Jan 20, 2015
IntelFrameworkModulePkg Address the potential system TPL does not been restore. Dec 24, 2014
IntelFrameworkPkg IntelFrameworkPkg: fix mixed dos and linux EOL format issue Dec 23, 2014
IntelFspPkg Move EndOfPei signal earlier before giving control back to FspInitDone. Dec 6, 2014
IntelFspWrapperPkg Fix typo. Dec 4, 2014
MdeModulePkg Update RPi-UEFI repo with latest RS2 snapshot Mar 6, 2017
MdePkg RaspberryPi2/3 UEFI source code as of Windows10 RS1 release Oct 22, 2016
NetworkPkg Code refine. Check the original length of array to avoid buffer over … Dec 19, 2014
Nt32Pkg Change NT32 and DUET to use UEFI Shell by default. Use "-D USE_OLD_SH… Nov 25, 2014
Omap35xxPkg EDK II Contributions.txt: Update patch format information Oct 31, 2014
Omap44xxPkg pandaboard: fix missing braces Dec 3, 2014
OptionRomPkg EDK II Contributions.txt: Update patch format information Oct 31, 2014
OvmfPkg
PandaBoardPkg PandaBoardPkg: armbdshelperlib fixup Jan 20, 2015
PcAtChipsetPkg Initialize alarm register in PcRtc module entrypoint to make UEFI SCT… Nov 25, 2014
PerformancePkg PerformancePkg: Update comments on TscTimerLib Dec 1, 2014
Pi2BoardPkg Update DSDT for BootVolumeSentinel on the proper RPI branch Apr 14, 2017
Pi3BoardPkg Fix ECSD CmdArg initialization (#14) Apr 17, 2019
SecurityPkg
ShellBinPkg ShellBinPkg: Ia32/X64 Shell binary update. Dec 5, 2014
ShellPkg ShellPkg: Check the unrecognized environment variable name before it … Dec 31, 2014
SourceLevelDebugPkg SourceLevelDebugPkg DebugAgentLib: Fix build error with GNU assembler Dec 17, 2014
StdLib StdLib/BsdSocketLib: Fix function declaration mismatch with definition. Dec 2, 2014
StdLibPrivateInternalFiles
TexasInstrumentsPkg/BeagleBoneBlackPkg BeagleBoneBlackPkg: ArmBdeHelperLib fixup Jan 20, 2015
UefiCpuPkg UefiCpuPkg CpuExceptionHandlerLib: Use %rax instead of %eax to make c… Dec 17, 2014
UnixPkg UnixPkg: Remove UnixPkg files (It is replaced by EmulatorPkg) Jul 29, 2013
.gitignore EDK II: Add .gitignore Oct 14, 2014
BuildNotes2.txt
BuildPi2Board.bat RaspberryPi2/3 UEFI source code as of Windows10 RS1 release Oct 22, 2016
BuildPi2Pi3Board.bat RaspberryPi2/3 UEFI source code as of Windows10 RS1 release Oct 22, 2016
BuildPi3Board.bat RaspberryPi2/3 UEFI source code as of Windows10 RS1 release Oct 22, 2016
Edk2Setup.bat Updated version, missed the last two commits and to add the SVN Revis… Aug 22, 2014
LICENSE.txt RaspberryPi2/3 UEFI source code as of Windows10 RS1 release Oct 22, 2016
Maintainers.txt Update some package owners Oct 23, 2014
README.md Fixed documentation (#13) Apr 16, 2019
edksetup.bat Update edksetup.bat to support Microsoft Visual Studio 2013 when buil… Oct 30, 2014
edksetup.sh edksetup.sh: Ensure that WORKSPACE points to the top of an edk2 checkout Jul 28, 2014

README.md

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
  • To build a Pi2 ONLY UEFI, use BuildPi2Board.bat. Output kernel.img will be at %EDK_ROOT%\Build\Pi2Board\DEBUG_ARMGCC\kernel.img
  • To build a Pi3 ONLY UEFI, use BuildPi3Board.bat. Output kernel.img will be at %EDK_ROOT%\Build\Pi3Board\DEBUG_ARMGCC\kernel.img
  • To build a UEFI that boots both Pi2 and Pi3, use BuildPi2Pi3Board.bat. Output kernel.img will be at %EDK_ROOT%\Build\Pi2Pi3Board\DEBUG_ARMGCC\kernel.img
  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.

You can’t perform that action at this time.