|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.