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