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 | ||
| 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 | ||
| EXAMPLE | ||
| 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.c | ||
| linux_trampoline.h | ||
| linux_trampoline.S | ||
| Makefile | ||
| Makefile.inc | ||
| option.h | ||
| partitioned_file.c | ||
| partitioned_file.h | ||
| platform_fixups.c | ||
| ProcessorBind.h | ||
| rmodtool.c | ||
| rmodule.c | ||
| rmodule.h | ||
| xdr.c | ||