coreboot-kgpe-d16/util
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
..
abuild abuild: Add option of starting with an existing defconfig file 2016-03-13 03:05:43 +01:00
acpi tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
amdfwtool amdfwtool: Fix some PSP2 issues 2016-03-03 12:03:03 +01:00
amdtools
archive archive: build archive tool with HOSTCC 2016-03-08 17:40:05 +01:00
arm_boot_tools/mksunxiboot
autoport autoport: Add prompt for enabling unsafe inteltool glx option 2016-06-12 12:27:57 +02:00
bimgtool codebase: Change makefile $(shell pwd) commands to $(CURDIR) 2016-03-11 18:48:06 +01:00
board_status board_status: Abort early if the coreboot image doesn't exist 2016-05-18 00:17:18 +02:00
broadcom Add newlines at the end of all coreboot files 2016-08-01 21:43:56 +02:00
cbfstool cbfs: Add "struct" file type and associated helpers 2016-08-27 01:16:22 +02:00
cbmem util/cbmem: Initialize variable 2016-07-31 19:15:34 +02:00
checklist util/checklist: Place tables in proper boot order 2016-08-03 18:01:32 +02:00
chromeos util/chromeos: Make scripts executable 2016-07-30 19:34:20 +02:00
crossgcc crossgcc: Update make to latest version: 4.2.1 2016-08-13 23:31:29 +02:00
docker util/docker: Update docker files for coreboot-sdk & jenkins builders 2016-08-18 06:15:26 +02:00
dtd_parser util: Look for python2 binary instead of python 2016-01-26 00:25:19 +01:00
ectool ectool: fix NetBSD compilation 2016-01-27 17:15:56 +01:00
exynos util: Look for python2 binary instead of python 2016-01-26 00:25:19 +01:00
futility Rename VB_SOURCE to VBOOT_SOURCE for increased clarity 2016-07-27 17:26:05 +02:00
fuzz-tests tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
genbuild_h genbuild_h: Fix numeric comparison to remove error 2016-03-14 23:37:12 +01:00
genprof
gitconfig util/gitconfig: add cborg2cros.py script 2016-08-13 23:30:06 +02:00
ifdfake tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
ifdtool util/ifdtool: add option to change chip density 2016-03-13 04:42:40 +01:00
intelmetool intelmetool: Add the X99 ISA Bridge device id 2016-06-04 23:41:22 +02:00
inteltool Remove non-ascii & unprintable characters 2016-08-01 21:44:45 +02:00
intelvbttool intelvbttool: cope with errors in open() 2016-07-31 19:23:29 +02:00
ipqheader util: ipq40xx: Scripts to combine SBL and Coreboot ELFs 2016-05-09 09:36:27 +02:00
k8resdump tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
kconfig Remove non-ascii & unprintable characters 2016-08-01 21:44:45 +02:00
lint util/lint: Add a tool to verify a single newline at the end of files 2016-08-19 18:08:25 +02:00
marvell util/marvell: Add Marvell doimage utility and dependency in relevant Makefile 2016-02-11 14:16:08 +01:00
mma util/mma: changing BOOT_STUB to COREBOOT region and few more things 2016-05-10 22:59:36 +02:00
msrtool util/msrtool: update register for Pentium4_later 2016-07-28 01:09:02 +02:00
mtkheader util: Look for python2 binary instead of python 2016-01-26 00:25:19 +01:00
nvidia util/nvidia/cbootimage: update to latest master 2016-03-16 15:02:50 +01:00
nvramtool nvramtool: Don't consider reserved regions to be "out of range" 2016-07-31 19:07:43 +02:00
optionlist optionslist: Don't add a timestamp 2016-02-21 01:46:15 +01:00
post util: Add a very simple utility to test POST cards. 2016-02-26 07:00:33 +01:00
release util/release: extend release script 2016-02-01 08:58:37 +01:00
riscvtools util/riscvtools: Provide a tohost/fromhost symbols so Spike doesn't hang 2016-07-14 18:23:05 +02:00
rockchip rockchip: update make_idb.py 2016-03-16 15:24:10 +01:00
romcc romcc.1: Point bug reporters to the coreboot ML / bug tracker 2016-05-01 16:29:09 +02:00
sconfig sconfig: Reformat C code 2016-08-08 19:16:24 +02:00
scripts util/scripts: Support cygwin in ucode conversion tool 2016-08-22 04:19:24 +02:00
showdevicetree tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
spkmodem_recv tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
superiotool superiotool: Add Nuvoton NCT6791D 2016-07-31 18:35:59 +02:00
uio_usbdebug tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
vgabios Remove extra newlines from the end of all coreboot files. 2016-07-31 18:19:33 +02:00
viatool viatool/quirks: Add newline to end of file 2016-07-28 20:18:10 +02:00
xcompile xcompile: add riscv64 name to riscv toolchain 2016-08-17 03:55:02 +02:00