gnu-efi is a set of scripts, libraries, header files and code examples to make it possible to write applications and drivers for the UEFI environment directly from your POSIX world. It supports i386, Ia64, X64, ARM and AArch64 targets ... but it would be dishonest to say it is beginner friendly …read more
For a few years now, I have been working towards improving the availability of open source platform ports and device drivers for EDK2.
Initially, this began by setting up OpenPlatformPkg. This has been used both for platforms from Linaro members and external parties, and has already led to some amount …read more
Speeding up UEFI driver development
While working on the ChaosKey UEFI driver, I once again found myself in a situation of tedium: how to simplify driver development when the target for my device driver is firmware. Moving around a USB key with a FAT filesystem may be a completely valid …read more
One of the key features of UEFI is that the specification and the APIs/ABIs it guarantees provides the ability to produce portable applications, drivers and libraries (in the form of protocols). On the simpler side, by letting you compile the driver once for each architecture - and on the more …read more
As some of you may know, one of the main points I have been pushing for over the past couple of years has been the availability of reference code for real platforms. Given that historically, firmware source code has simply not been available for UEFI-based computers, resolving this has been …read more
When ARM announced its 64-bit architecture, this was eventually followed by a free (as in beer) software model of that architecture. This model is called the Foundation Model, and although somewhat of an unwanted stepchild next to the commercially available (read expensive) FVP Base model, it is periodically updated.
Unfortunately …read more
The TI Beagle development boards have a ... weird (software) boot architecture. All documentation I was able to find online for running Linux on them is based around a set of cryptic and very specific instructions to:
- create a small 16-bit FAT partition at the start of the (micro)SD card …
QEMU supports exporting a directory structure in the host machine filesystem as a block device containing a FAT filesystem. If you think about it, that's pretty much magic. This is really handy for kernel (U)EFI feature testing, since it means I can just throw a Linux kernel (with an …read more
UEFI is a portable platform firmware standard, although in practice it has up until recently been used only on IA64 and amd64/x64 platforms. The opensource implementation (TianoCore EDK2) includes support also for ia32 and ARM (aarch32) platforms.
I develop for the ARM platform, but I sometimes need to verify …read more