blob: 81442e7170eac5934ac3144cba8ac69035d8a7b8 [file] [log] [blame]
Aaron Durbinf34ea5f2015-04-01 09:27:44 -05001This text describes the ABI coreboot presents to downstream users. Such
2users are payloads and/or operating systems. Therefore, this text serves
3at what can be relied on for downstream consumption. Anything not explicitly
4listed as consumable is subject to change without notice.
5
6Background and Usage
7
8coreboot passes information to downstream users using coreboot tables. These
9table definitions can be found in src/include/boot/coreboot_tables.h and
10payloads/libpayload/include/coreboot_tables.h respectively within coreboot
11and libpayload. One of the most vital and important pieces of information
12found within these tables is the memory map of the system indicating
13available and reserved memory.
14
15In 2009 cbmem was added to coreboot. The "CBMEM high table memory manager"
16serves a way for coreboot to bookkeep its own internal data. While some
17of this data may be exposed through the coreboot tables the data structures
18used to manage the data within the cbmem area is subject to change.
19
20Provided the above, if one needs a piece of data exposed to the OS
21or payload it should reside within the coreboot tables. If it isn't there
22then a code change will be required to add it to the coreboot tables.