Friday, December 4, 2020

Resources for starting with host firmware

 u-root general slack channel question on 'Does anybody have any recommended books or learning resources for getting into firmware development? I have a background in embedded systems and systems software, but am looking to learn more about end-host / server firmware (e.g UEFI, Coreboot and friends).

This reminds me of curating firmware blogs a few years back,

To that end, here's a list.  

LinuxBoot book 

LinuxBoot can be a payload for either coreboot or Slim Bootloader. Some details on the latter 2 can be found at


coreboot book 


Slim Bootloader 

Slim Bootloader and coreboot provide 'platform initialization' (PI) and depend upon a payload.

U-boot is interesting since it can be either a payload or the full PI implementation.


U-boot porting example 

The same holds for EDKII. EDKII can be a platform implementation or act as a payload for Slim Bootloader and coreboot.

EDKII training 

EDKII white papers 

For the ARM ecosystem, ARM Trusted Firmware (ATF) acts as a substrate to compose different PI implementations

ARM Trusted Firmware

Some firmware security training that covers many of the firmware frameworks can be found in below.

Firmware security training

Firmware security book 

UEFI and ACPI are industry standards described at, and an overview of UEFI and its shell can be found in the below.

UEFI book (older version at

UEFI Shell book 

In addition, there is nice collection of talks on open source firmware and UEFI, respectively, at

OSFC talks 

UEFI talks 

ACPI overviews are a little lite IMHO, but there is a recently added introduction in the ACPI in chapter 1

ACPI Specification

ACPI + UEFI Support 

11.30.2022 - new books


overall fw

No comments: