As Arm wanted to enter the server market, they realized they had to provide systems that could boot standard operating system images without modifications or hacks – just as they do on x86 server -, so in 2014 the company introduced the Server Base System Architecture Specification (SBSA) so that all a single OS image can run on all ARMv8-A servers.
Later on, Arm published the Server Base Boot Requirement (SBBR) specifications describing standard firmware interfaces for the servers, covering UEFI, ACPI and SMBIOS industry standards, and in 2018 introduced the Arm ServerReady compliance program for Arm servers.
While those are specific to Arm server, some people are pushing to implement SBBR compliant for Arm PCs, and there’s one project aiming to build an SBBR-compliant (UEFI+ACPI) AArch64 firmware for the Raspberry Pi 4.
Note Raspberry Pi 4 UEFI firmware is still experimental, so there will be bugs and some operating systems such as Windows 10 may not boot at all. But it can be used to boot Debian 10.2 for ARM64 from USB with the caveat that Ethernet and the SD card won’t be available due to missing up-to-date drivers.
After download, the firmware image can be installed in two steps:
- Create an SD card in MBR mode (GPT, EFI not supported) with a single partition of type 0x0c (FAT32 LBA) or 0x0e (FAT16 LBA). Then format this partition to FAT.
- Extract all the files from the archive onto the partition
Now insert the SD card/plug the USB drive and power up your Raspberry Pi 4. A multicolored screen should soon show up, followed by a Raspberry Pi black & white logo meaning the UEFI firmware is ready. You can then press Esc to enter the firmware setup, F1 to launch the UEFI Shell, or boot whatever compatible operating system (ISO image) present in the SD card or USB drive (default behavior).
You can follow the project on the dedicated website, and get involved with the developers on Discord. You may also consider following WhatAintInside on twitter for updates about the project and everything ARM64.
As a side note, the Raspberry Pi 3 model B/B+ is already EBBR (Embedded Base Boot Requirement) compliant with its own UEFI firmware available on Github. As I understand it, the RPi 3 firmware relies on the device tree file instead of ACPI required for SBBR compliance.