Other articles

  1. A long time coming

    For a very long time now, I have put effort into dogfooding. Back when I first started working at ARM in 2005, all available ARM platforms you might even consider using for normal computing were ridiculously expensive. But finally, in 2008, something changed.


    The BeagleBoard was the first fundamental …

    read more
  2. Turn the page

    On a long and lonesome highway... Err, nevermind.

    Anyway, after nearly 12 and a half years, Friday 11 May 2018 will be my last day at ARM. I'm not going very far - after a short break I will be joining Linaro as a full time employee on 21 May.

    I …

    read more
  3. 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
  4. Another new blog...

    Well, I guess it's that time again. Much as I liked blosxom, it's not really maintained anymore, and the plugin architecture is ... archaic ... to say the least. So last year I started looking into pelican and found it would simplify my life a bit ... and then I started trying to …

    read more
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. I'll come in again

    Well, I did sort of start writing some blog posts last year, mainly about technical stuff that might be useful to others (and to myself when I forget). But at some point my MovableType installation became a bit ... confused ... and at the same time the company behind MovableType started seriously …

    read more
  12. 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
  13. 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