coreboot-kgpe-d16/payloads/libpayload/include
Julius Werner f975e55dcd cbfs: Add "struct" file type and associated helpers
This patch adds functionality to compile a C data structure into a raw
binary file, add it to CBFS and allow coreboot to load it at runtime.
This is useful in all cases where we need to be able to have several
larger data sets available in an image, but will only require a small
subset of them at boot (a classic example would be DRAM parameters) or
only require it in certain boot modes. This allows us to load less data
from flash and increase boot speed compared to solutions that compile
all data sets into a stage.

Each structure has to be defined in a separate .c file which contains no
functions and only a single global variable. The data type must be
serialization safe (composed of only fixed-width types, paying attention
to padding). It must be added to CBFS in a Makefile with the 'struct'
file processor.

Change-Id: Iab65c0b6ebea235089f741eaa8098743e54d6ccc
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://review.coreboot.org/16272
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
2016-08-27 01:16:22 +02:00
..
arm/arch tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
arm64/arch arm64: mmu: Prevent CPU prefetch instructions from device memory 2015-09-28 09:36:32 +00:00
arpa Refactor the endianness conversion functions and header files. 2012-11-08 19:49:51 +01:00
mips/arch tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
pci libpayload/pci: Correct MASK macro names 2016-06-21 20:41:06 +02:00
storage libpayload: Make Kconfig bools use IS_ENABLED() 2015-06-30 18:55:15 +02:00
sys libpayload: Start using only internal and compiler headers. 2013-03-13 22:04:44 +01:00
udc tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
usb libpayload: xhci: Set MPS based on speed 2016-05-09 08:29:57 +02:00
x86/arch libpayload: x86: Add read/write{8,16,32} variants that match coreboot 2015-08-28 06:46:28 +00:00
archive.h libpayload: add archive.h 2015-12-16 19:00:53 +01:00
assert.h libpayload: Fix the format string of the assert macro. 2012-11-07 18:36:05 +01:00
cbfs.h tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
cbfs_core.h cbfs: Add "struct" file type and associated helpers 2016-08-27 01:16:22 +02:00
cbfs_ram.h tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
cbgfx.h cbgfx: add error code to cbgfx_init 2016-01-14 18:44:20 +01:00
coreboot_tables.h coreboot_tables: Extend serial port description 2016-05-09 17:21:22 +02:00
ctype.h Attached patch moves functions out of the huge libpayload.h into headers 2010-06-24 11:16:10 +00:00
die.h libpayload: Add a new "die" function to fatally signal programming errors. 2014-09-15 17:37:13 +02:00
endian.h libpayload: Make Kconfig bools use IS_ENABLED() 2015-06-30 18:55:15 +02:00
errno.h Attached patch moves functions out of the huge libpayload.h into headers 2010-06-24 11:16:10 +00:00
exception.h libpayload: Rework exception hook interface 2015-01-09 07:05:15 +01:00
fmap_serialized.h libpayload: Add support for handling fmaps 2015-07-14 18:12:06 +02:00
gdb.h tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
getopt.h Since some people disapprove of white space cleanups mixed in regular commits 2010-04-27 06:56:47 +00:00
inttypes.h libpayload: Start using only internal and compiler headers. 2013-03-13 22:04:44 +01:00
ipchksum.h libpayload: Add a new "die" function to fatally signal programming errors. 2014-09-15 17:37:13 +02:00
kconfig.h libpayload: Change CONFIG_* to CONFIG_LP_* in the kconfig. 2014-08-05 18:44:08 +02:00
keycodes.h libpayload: Make keycode constants available outside of curses.h. 2013-03-18 20:45:48 +01:00
libpayload.h libpayload: time: split time.h from libpayload.h 2016-04-21 23:08:52 +02:00
limits.h libpayload: Improve compatibility 2011-07-16 11:09:28 +02:00
lz4.h cbfs: Add LZ4 in-place decompression support for pre-RAM stages 2016-02-22 21:38:37 +01:00
lzma.h LZMA: Add a version of ulzma which takes the input and output buffer sizes. 2014-08-10 22:29:51 +02:00
malloc.h libpayload: Provide atol(), malloc.h 2011-07-07 22:29:53 +02:00
multiboot_tables.h
panel.h libpayload: Add PDCurses and ncurses' libform/libmenu 2011-08-04 08:10:41 +02:00
pci.h libpayload: Add definitions for more config space registers. 2012-11-07 18:36:27 +01:00
queue.h libpayload: queue: Add a helper macro for checking singleton queue 2015-11-13 00:52:58 +01:00
stdarg.h libpayload: Don't sneak in compiler includes 2013-04-18 02:50:28 +02:00
stddef.h update common base header files 2015-07-06 09:41:38 +02:00
stdint.h libpayload: Add ptrdiff_t typedef 2015-10-20 16:50:25 +02:00
stdio.h libpayload: Add the format attribute to functions in stdio.h. 2012-11-07 18:36:14 +01:00
stdlib.h libpayload: Make Kconfig bools use IS_ENABLED() 2015-06-30 18:55:15 +02:00
string.h libpayload: UTF-16LE to ASCII conversion 2015-03-20 09:59:48 +01:00
strings.h libpayload: Revive ffs() 2015-09-10 20:11:33 +00:00
swab.h libpayload: arch/mips: Add basic MIPS architecture support 2015-03-21 11:07:50 +01:00
sysinfo.h libpayload: Drop CONFIG_LP_CHROMEOS 2016-03-15 18:22:58 +01:00
term.h libpayload: remove trailing whitespace and run dos2unix 2011-11-01 19:08:23 +01:00
time.h libpayload: time: split time.h from libpayload.h 2016-04-21 23:08:52 +02:00
unistd.h libpayload: Don't sneak in compiler includes 2013-04-18 02:50:28 +02:00
video_console.h Add coreboot framebuffer support to libpayload 2010-03-25 18:56:26 +00:00