summaryrefslogtreecommitdiffstats
path: root/Documentation/payloads.md
diff options
context:
space:
mode:
authorPatrick Georgi <pgeorgi@google.com>2019-01-31 17:01:50 +0100
committerPatrick Georgi <pgeorgi@google.com>2019-02-05 21:21:45 +0000
commit7bb9a4f98b3e897d372207df17ba65ececa9d445 (patch)
tree77703770971e5ac8047c3db70e5f5c29acc01268 /Documentation/payloads.md
parent0cd9366df16f3ee904f2b5792d39efdd7ac65c56 (diff)
downloadcoreboot-7bb9a4f98b3e897d372207df17ba65ececa9d445.tar.gz
coreboot-7bb9a4f98b3e897d372207df17ba65ececa9d445.tar.bz2
coreboot-7bb9a4f98b3e897d372207df17ba65ececa9d445.zip
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 <pgeorgi@google.com> Reviewed-on: https://review.coreboot.org/c/31180 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Arthur Heymans <arthur@aheymans.xyz> Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Diffstat (limited to 'Documentation/payloads.md')
-rw-r--r--Documentation/payloads.md42
1 files changed, 42 insertions, 0 deletions
diff --git a/Documentation/payloads.md b/Documentation/payloads.md
new file mode 100644
index 000000000000..b1eae615ecde
--- /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.