switch-coreboot/util
Julius Werner 9c714baad2 UPSTREAM: 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.

BUG=None
BRANCH=None
TEST=None

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>

Change-Id: Iab65c0b6ebea235089f741eaa8098743e54d6ccc
Reviewed-on: https://chromium-review.googlesource.com/377606
Commit-Ready: Furquan Shaikh <furquan@chromium.org>
Tested-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
2016-09-01 22:56:18 -07: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 Remove empty lines at end of file 2015-06-08 00:55:07 +02:00
archive archive: build archive tool with HOSTCC 2016-03-08 17:40:05 +01:00
arm_boot_tools/mksunxiboot arm_boot_tools: Add 'b' to fopen flags for Windows compatibility 2014-12-19 18:55:34 +01:00
autoport UPSTREAM: autoport: Add prompt for enabling unsafe inteltool glx option 2016-06-13 15:55:28 -07:00
bimgtool codebase: Change makefile $(shell pwd) commands to $(CURDIR) 2016-03-11 18:48:06 +01:00
board_status UPSTREAM: board_status: Abort early if the coreboot image doesn't exist 2016-05-26 03:21:20 -07:00
broadcom UPSTREAM: Add newlines at the end of all coreboot files 2016-08-05 11:45:17 -07:00
cbfstool UPSTREAM: cbfs: Add "struct" file type and associated helpers 2016-09-01 22:56:18 -07:00
cbmem UPSTREAM: util/cbmem: Initialize variable 2016-08-04 23:37:41 -07:00
checklist UPSTREAM: util/checklist: Place tables in proper boot order 2016-08-11 03:14:32 -07:00
chromeos UPSTREAM: util/chromeos: Make scripts executable 2016-08-04 23:36:47 -07:00
crossgcc UPSTREAM: crossgcc: Update make to latest version: 4.2.1 2016-08-15 18:36:01 -07:00
docker UPSTREAM: util/docker: Update docker files for coreboot-sdk & jenkins builders 2016-08-19 14:19:49 -07: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 UPSTREAM: Rename VB_SOURCE to VBOOT_SOURCE for increased clarity 2016-07-28 22:56:11 -07: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 util/genprof: improve handling of command line arguments 2014-08-12 09:02:44 +02:00
gitconfig UPSTREAM: util/gitconfig: add cborg2cros.py script 2016-08-15 18:35:57 -07: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 UPSTREAM: intelmetool: Add the X99 ISA Bridge device id 2016-06-06 23:35:00 -07:00
inteltool UPSTREAM: Remove non-ascii & unprintable characters 2016-08-05 11:45:20 -07:00
intelvbttool UPSTREAM: intelvbttool: cope with errors in open() 2016-08-04 23:37:52 -07: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 UPSTREAM: Remove non-ascii & unprintable characters 2016-08-05 11:45:20 -07:00
lint UPSTREAM: util/lint: Add a lint tool to find non-ascii & unprintable chars 2016-08-09 17:11:31 -07: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 UPSTREAM: util/msrtool: update register for Pentium4_later 2016-08-01 13:44:48 -07:00
mtkheader util: Look for python2 binary instead of python 2016-01-26 00:25:19 +01:00
nvidia Make upstream tree CrOS SDK friendly 2016-05-12 15:42:17 -06:00
nvramtool UPSTREAM: nvramtool: Don't consider reserved regions to be "out of range" 2016-08-04 23:37:39 -07: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 UPSTREAM: util/riscvtools: Provide a tohost/fromhost symbols so Spike doesn't hang 2016-07-15 08:39:17 -07: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 UPSTREAM: sconfig: Reformat C code 2016-08-13 20:28:32 -07:00
scripts UPSTREAM: util/scripts: Support cygwin in ucode conversion tool 2016-08-22 23:26:43 -07: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 UPSTREAM: superiotool: Add Nuvoton NCT6791D 2016-08-04 23:37:20 -07:00
uio_usbdebug tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
vgabios UPSTREAM: Remove extra newlines from the end of all coreboot files. 2016-08-04 23:36:56 -07:00
viatool UPSTREAM: viatool/quirks: Add newline to end of file 2016-08-02 14:29:22 -07:00
xcompile UPSTREAM: xcompile: add riscv64 name to riscv toolchain 2016-08-17 12:49:05 -07:00