79f2e1fc8b
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> |
||
---|---|---|
.. | ||
bpdt_formats | ||
console | ||
flashmap | ||
fpt_formats | ||
lz4 | ||
lzma | ||
tests | ||
.gitignore | ||
EXAMPLE | ||
Makefile | ||
Makefile.inc | ||
ProcessorBind.h | ||
amdcompress.c | ||
cbfs-mkpayload.c | ||
cbfs-mkstage.c | ||
cbfs-payload-linux.c | ||
cbfs.h | ||
cbfs_glue.h | ||
cbfs_image.c | ||
cbfs_image.h | ||
cbfs_sections.c | ||
cbfs_sections.h | ||
cbfscomptool.c | ||
cbfstool.c | ||
coff.h | ||
common.c | ||
common.h | ||
compress.c | ||
cse_fpt.c | ||
cse_fpt.h | ||
cse_helpers.c | ||
cse_helpers.h | ||
cse_serger.c | ||
cse_serger.h | ||
default-x86.fmd | ||
default.fmd | ||
description.md | ||
elf.h | ||
elfheaders.c | ||
elfparsing.h | ||
elogtool.c | ||
eventlog.c | ||
eventlog.h | ||
fdt.h | ||
fit.c | ||
fit.h | ||
flashmap_tests.c | ||
flashrom.c | ||
flashrom.h | ||
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 | ||
ifwitool.c | ||
linux.h | ||
linux_trampoline.S | ||
linux_trampoline.c | ||
linux_trampoline.h | ||
option.h | ||
partitioned_file.c | ||
partitioned_file.h | ||
platform_fixups.c | ||
rmodtool.c | ||
rmodule.c | ||
rmodule.h | ||
xdr.c |