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). ' https://osfw.slack.com/archives/C0RAR7JRM/p1606927939015000
This reminds me of curating firmware blogs a few years back http://vzimmer.blogspot.com/2015/06/firmware-related-blogs.html,
To that end, here's a list.
LinuxBoot book https://github.com/linuxboot/book
LinuxBoot can be a payload for either coreboot or Slim Bootloader. Some details on the latter 2 can be found at
coreboot https://doc.coreboot.org/
coreboot book https://www.apress.com/gp/book/9781484200711
and
Slim Bootloader https://slimbootloader.github.io/
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 https://www.denx.de/wiki/U-Boot/Documentation
U-boot porting example http://ptgmedia.pearsoncmg.com/images/9780134030005/samplepages/9780134030005.pdf
The same holds for EDKII. EDKII can be a platform implementation or act as a payload for Slim Bootloader and coreboot.
EDKII training https://github.com/tianocore-docs/Training https://github.com/tianocore-training
EDKII white papers https://github.com/tianocore/tianocore.github.io/wiki/EDK-II-white-papers
For the ARM ecosystem, ARM Trusted Firmware (ATF) acts as a substrate to compose different PI implementations
ARM Trusted Firmware https://trustedfirmware-a.readthedocs.io/en/latest/
Some firmware security training that covers many of the firmware frameworks can be found in below.
Firmware security training https://github.com/enascimento/firmware-security-training https://opensecuritytraining.info/
Firmware security book https://link.springer.com/book/10.1007/978-1-4842-6106-4
UEFI and ACPI are industry standards described at https://www.uefi.org/, and an overview of UEFI and its shell can be found in the below.
UEFI book https://www.amazon.com/Beyond-BIOS-Developing-Extensible-Interface/dp/1501514784/ (older version at https://www.microbe.cz/docs/Beyond_BIOS_Second_Edition_Digital_Edition_(15-12-10)%20.pdf)
UEFI Shell book https://www.amazon.com/gp/product/B06XK19DW3/
In addition, there is nice collection of talks on open source firmware and UEFI, respectively, at
OSFC talks https://osfc.io/archive
UEFI talks https://uefi.org/learning_center/presentationsandvideos
ACPI overviews are a little lite IMHO, but there is a recently added introduction in the ACPI in chapter 1
ACPI Specification https://uefi.org/sites/default/files/resources/ACPI_6_3_May16.pdf
ACPI + UEFI Support https://www.intel.com/content/www/us/en/content-details/671067/a-tour-beyond-bios-implementing-the-acpi-platform-error-interface-with-the-uefi.html?wapkw=zimmer%20acpi
11.30.2022 - new books
security
https://link.springer.com/book/10.1007/978-1-4842-6106-4
overall fw
https://link.springer.com/book/10.1007/978-1-4842-7939-7
https://link.springer.com/book/10.1007/978-1-4842-7974-8
No comments:
Post a Comment