From 7bb9a4f98b3e897d372207df17ba65ececa9d445 Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Thu, 31 Jan 2019 17:01:50 +0100 Subject: Documentation: Describe our ecosystem Neither payloads nor distributors are an integral part of the coreboot source tree, but they're very important parts of the coreboot ecosystems, so add some descriptions. Change-Id: Id64744c252b6b78c4811fbded48c441ef486ad94 Signed-off-by: Patrick Georgi Reviewed-on: https://review.coreboot.org/c/31180 Tested-by: build bot (Jenkins) Reviewed-by: Arthur Heymans Reviewed-by: Angel Pons --- Documentation/payloads.md | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 Documentation/payloads.md (limited to 'Documentation/payloads.md') diff --git a/Documentation/payloads.md b/Documentation/payloads.md new file mode 100644 index 0000000000..b1eae615ec --- /dev/null +++ b/Documentation/payloads.md @@ -0,0 +1,42 @@ +# Payloads + +coreboot doesn't try to mandate how the boot process should look, it merely +does hardware init and then passes on control to another piece of software +that we carry along in firmware storage, the _payload_. + +There is various software in that space that is either explicitly written as +payload or can be made to work as one. + +## SeaBIOS + +[SeaBIOS](https://www.seabios.org) is an open source implementation of +the PCBIOS API that exists since the original IBM PC and was extended +since. While originally written for emulators such as QEMU, it can be made +to work as a coreboot payload and all the necessary code is in SeaBIOS' +mainline code. + +## Tianocore + +[Tianocore](https://www.tianocore.org) is the open source reference +implementation of the UEFI Specifications that modern firmware for PCs is +based on. There were various projects in the past to make it suitable as a +coreboot payload, but these days this function is available directly in the +CorebootPayloadPkg part of its source tree. + +## GRUB2 + +GRUB2 was originally written as a bootloader and that's its most popular +purpose, but it can also be compiled as a coreboot payload. + +## Linux + +There are several projects using Linux as a payload (which was the +configuration that gave coreboot its original name, LinuxBIOS). That kernel is +often rather small and serves to load a current kernel from somewhere, e.g. +disk or network, and run that through the kexec mechanism. + +Two aspects emphasized by proponents of Linux-as-a-payload are the +availability of well-tested, battle-hardened drivers (as compared to +firmware project drivers that often reinvent the wheel) and the ability to +define boot policy with familiar tools, no matter if those are shell scripts +or compiled userland programs written in C, Go or other programming languages. -- cgit v1.2.3