coreboot-kgpe-d16/util/cbfstool
Jeremy Compostella 79f2e1fc8b cbfstool: Make add-stage support multiple loadable segments
For x86 eXecute-In-Place (XIP) pre-memory `.data` section support, we
have to use an extra segment as the VMA/LMA of the data is different
than the VMA/LMA of the code.

To support this requirement, this patch makes cbfstool:
1. Allow the load of an ELF with an extra segment
2. Makes add-stage for XIP (cf. parse_elf_to_xip_stage()) write its
   content to the output binary.

To prevent the creation of unsuitable binaries, cbfstool verifies that
the LMA addresses of the segments are consecutives.

TEST=XIP pre-memory stages with a `.data` section have the `.data`
     section covered by a second segment properly included right after
     the code.

Change-Id: I480b4b047546c8aa4e12dfb688e0299f80283234
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/77584
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2023-09-14 21:01:56 +00:00
..
bpdt_formats util: Add SPDX license headers to Makefiles 2022-11-22 12:47:09 +00:00
console util/cbfstool: Wrap logging macros in do - while 2022-10-13 17:07:02 +00:00
flashmap util: Use common ARRAY_SIZE define 2023-05-22 19:24:27 +00:00
fpt_formats util: Add SPDX license headers to Makefiles 2022-11-22 12:47:09 +00:00
lz4 util: Add SPDX license headers to Makefiles 2022-11-22 12:47:09 +00:00
lzma
tests elogtool: add pytest for elogtool 2021-10-25 08:08:41 +00:00
.gitignore util/cbfstool/.gitignore: Add CSE tool executables 2021-11-29 18:44:34 +00:00
EXAMPLE
Makefile utils/cbfstool: Fix building with `make test-tools` 2022-02-27 18:29:24 +00:00
Makefile.inc util: Add SPDX license headers to Makefiles 2022-11-22 12:47:09 +00:00
ProcessorBind.h
amdcompress.c
cbfs-mkpayload.c util/cbfstool: Wrap logging macros in do - while 2022-10-13 17:07:02 +00:00
cbfs-mkstage.c cbfstool: Make add-stage support multiple loadable segments 2023-09-14 21:01:56 +00:00
cbfs-payload-linux.c linux_trampoline: Handle 64-bit framebuffer addresses 2023-08-03 17:55:01 +00:00
cbfs.h util/cbfstool: Check for metadata hash in verstage 2022-10-26 15:59:58 +00:00
cbfs_glue.h cbfs/vboot: Adapt to new vb2_digest API 2022-09-02 23:51:29 +00:00
cbfs_image.c cbfstool: Add comment to define stability rules for cbfstool print -k 2023-04-13 00:43:23 +00:00
cbfs_image.h util/cbfstool: Fix truncate command error handling and cbfs_image_from_buffer() 2022-08-03 23:24:49 +00:00
cbfs_sections.c
cbfs_sections.h
cbfscomptool.c
cbfstool.c cbfstool: Make add-stage support multiple ignore sections 2023-09-14 21:01:48 +00:00
coff.h
common.c cbfstool: Fix possible memory leak 2022-11-09 00:26:30 +00:00
common.h util/cbfstool: Replace swab.h with commonlib/bsd/sysincludes.h 2022-01-10 21:32:34 +00:00
compress.c util/cbfstool: fix memory leak in compress.c 2022-11-02 21:40:25 +00:00
cse_fpt.c util/cse*: Add cse_helpers.{c,h} 2021-10-19 16:08:45 +00:00
cse_fpt.h util/cse*: Add cse_helpers.{c,h} 2021-10-19 16:08:45 +00:00
cse_helpers.c util/cse*: Add cse_helpers.{c,h} 2021-10-19 16:08:45 +00:00
cse_helpers.h util/cse*: Add cse_helpers.{c,h} 2021-10-19 16:08:45 +00:00
cse_serger.c util/cse_serger: Add command `create-cse-region` 2021-10-19 16:32:24 +00:00
cse_serger.h util/cse_serger: Replace cse_layout_regions with array of regions 2021-10-19 16:10:12 +00:00
default-x86.fmd soc/intel/alderlake/hsphy: Add possibility to cache HSPHY in flash 2023-06-23 08:59:50 +00:00
default.fmd
description.md
elf.h
elfheaders.c treewide: Replace ALIGN(x, a) by ALIGN_UP(x, a) for clarity 2022-11-12 18:00:16 +00:00
elfparsing.h
elogtool.c util/cbfstool/eventlog: Use LocalTime or UTC timestamps 2023-03-02 13:05:35 +00:00
eventlog.c util/cbfstool: Add eventLog support for ELOG_TYPE_FW_SPLASH_SCREEN 2023-08-29 06:15:45 +00:00
eventlog.h util/cbfstool/eventlog: Use LocalTime or UTC timestamps 2023-03-02 13:05:35 +00:00
fdt.h
fit.c util/ifittool: Error out if microcodes do not fit the FIT table 2022-09-15 13:01:42 +00:00
fit.h
flashmap_tests.c
flashrom.c treewide: Unify Google branding 2022-07-04 14:02:26 +00:00
flashrom.h treewide: Unify Google branding 2022-07-04 14:02:26 +00:00
fmap_from_fmd.c
fmap_from_fmd.h
fmaptool.c
fmd.c
fmd.h
fmd_parser.c_shipped
fmd_parser.h_shipped
fmd_parser.y
fmd_scanner.c_shipped
fmd_scanner.h_shipped
fmd_scanner.l
fv.h
ifittool.c util/cbfstool: Add usage information about verbose output 2023-03-28 13:28:15 +00:00
ifwitool.c util: Use C99 flexible arrays 2023-08-01 12:51:25 +00:00
linux.h util/cbfstool: Qualify struct e820entry as packed 2023-04-16 14:04:32 +00:00
linux_trampoline.S linux_trampoline: Handle 64-bit framebuffer addresses 2023-08-03 17:55:01 +00:00
linux_trampoline.c linux_trampoline: Handle 64-bit framebuffer addresses 2023-08-03 17:55:01 +00:00
linux_trampoline.h
option.h
partitioned_file.c
partitioned_file.h
platform_fixups.c cbfs/vboot: Adapt to new vb2_digest API 2022-09-02 23:51:29 +00:00
rmodtool.c
rmodule.c cbfstool: Make add-stage support multiple loadable segments 2023-09-14 21:01:56 +00:00
rmodule.h cbfstool: Make add-stage support multiple loadable segments 2023-09-14 21:01:56 +00:00
xdr.c