Other articles


  1. Fun and games with gnu-efi

    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
  2. QEMU USB host device pass-through

    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
  3. UEFI Driver Development - Part 1

    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
  4. Opening up UEFI platform support

    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
  5. UEFI for ARM/ARM64 on QEMU

    One really useful thing that happened at Linaro Connect last week was that Ard Biesheuvel managed to complete the port of UEFI to arm and aarch64 QEMU. This has been a component missing for us to enable what is really the standard development environment for most Linux devs. Ard has …

    read more
  6. Foundation Model - a line in the sand?

    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
  7. BeagleBone Black booting

    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 …
    read more
  8. Booting a full system with Ovmf

    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
  9. Running UEFI virtualised

    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