Desktop and server systems relies on standardized interfaces between the bootloader and the OS like UEFI and ACPI, but for embedded systems the way the bootloader, often U-boot, handles the boot flow may vary greatly between targets.
Arm and its partners already worked on this in the server space with the Server Base Architecture Specification (SBSA) , and more specifically the Server Base Boot Requirements (SBBR) within the specification that requires the use of both UEFI and ACPI on servers. Arm has now done something similar with the Embedded Base Boot Requirements (EBBR) project that targets specifically embedded systems, is based on a subset of UEFI, and works with either ACPI or device tree.
EBBR specification once implemented in bootloaders like U-boot or Tianocore/EDK2 should allow a single version of an OS image to boot on multiple platforms without the per-platform customization required today..
In practical terms it means the U-Boot would have a standardize interface with the OS based on a subset of UEFI. The specification aims to be bootloader and operating system agnostic, and other architectures, not only Arm, could also benefit from the specs.
EBBR support will first be implemented on existing developer hardware like Raspberry Pi and BeagleBone families of boards, and would also be applicable to ultra low cost boards like Orange Pi Zero. The abstract for the EBBR talk at the Embedded Linux Conference Europe 2018 also mentions an EBBR reference platforms using existing QEMU models but I could not find details so far.
You’ll find the Embedded Base Boot Requirements draft specification in Github, and possibly some extra details in the project page on Arm developer’s website. The first formal release of EBBR (EBBR 1.0) is expected in September 2018.
|Support CNX Software - Donate via PayPal or become a Patron on Patreon|