UEFI:SIMPLE - EFI development made easy
A simple UEFI "Hello World!" style application that can:
- be compiled on Windows or Linux, using Visual Studio 2017, MinGW or gcc.
- be compiled for x86_32, x86_64, ARM or ARM64/AARCH64 targets
- be tested on the fly, through a QEMU+OVMF UEFI virtual machine.
- Visual Studio 2017 or gcc/make
- QEMU v2.7 or later (NB: You can find QEMU Windows binaries here)
- wget, unzip, if not using Visual Studio
For convenience, the project relies on the gnu-efi library, so you need to initialize the git submodule either through git commandline with:
git submodule init git submodule update
Or, if using a UI client (such as TortoiseGit) by selecting Submodule Update in the context menu.
Compilation and testing
If using Visual Studio, just press
F5 to have the application compiled and
launched in the QEMU emulator.
If using MinGW or Linux, issue the following from a command prompt:
If needed you can also add
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
<arch> can be
You can also add
qemu as your
make target to run the application under QEMU,
in which case a relevant UEFI firmware (OVMF for x86 or QEMU_EFI for Arm) will
be automatically downloaded to run your application against it.
Visual Studio 2017 and ARM/ARM64 support
Please be mindful that, to enable ARM or ARM64 compilation support in Visual Studio 2017, you MUST go to the Individual components screen in the setup application and select the ARM/ARM64 compilers and libraries there, as they do NOT appear in the default Workloads screen:
You also need to ensure that you have Windows SDK 10.0.14393.0 or later installed, as this is the minimum version with support for ARM64.