From f34ea5f6609c23db33b6a6b7c31c67c6214efae4 Mon Sep 17 00:00:00 2001 From: Aaron Durbin Date: Wed, 1 Apr 2015 09:27:44 -0500 Subject: documentation: define downstream data consumption rules It's important to document what data is available for downstream consumption by the OS and payloads. Provide details/directions on what is available. Change-Id: Icafb6e9f59462ad19cf6a641046c6efc36f138f0 Signed-off-by: Aaron Durbin Reviewed-on: http://review.coreboot.org/9194 Tested-by: build bot (Jenkins) Reviewed-by: Marc Jones --- documentation/abi-data-consumption.txt | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 documentation/abi-data-consumption.txt (limited to 'documentation') diff --git a/documentation/abi-data-consumption.txt b/documentation/abi-data-consumption.txt new file mode 100644 index 0000000000..81442e7170 --- /dev/null +++ b/documentation/abi-data-consumption.txt @@ -0,0 +1,22 @@ +This text describes the ABI coreboot presents to downstream users. Such +users are payloads and/or operating systems. Therefore, this text serves +at what can be relied on for downstream consumption. Anything not explicitly +listed as consumable is subject to change without notice. + +Background and Usage + +coreboot passes information to downstream users using coreboot tables. These +table definitions can be found in src/include/boot/coreboot_tables.h and +payloads/libpayload/include/coreboot_tables.h respectively within coreboot +and libpayload. One of the most vital and important pieces of information +found within these tables is the memory map of the system indicating +available and reserved memory. + +In 2009 cbmem was added to coreboot. The "CBMEM high table memory manager" +serves a way for coreboot to bookkeep its own internal data. While some +of this data may be exposed through the coreboot tables the data structures +used to manage the data within the cbmem area is subject to change. + +Provided the above, if one needs a piece of data exposed to the OS +or payload it should reside within the coreboot tables. If it isn't there +then a code change will be required to add it to the coreboot tables. -- cgit v1.2.3