[PATCH v1 2/5] binman: Fix FIT image overlap issues for testFitSplitElf
Yannic Moog
Y.Moog at phytec.de
Thu Jul 31 13:30:41 CEST 2025
Am Dienstag, dem 29.07.2025 um 12:48 +0000 schrieb Aristo Chen:
> Fix one binman test that has memory region overlap issue, the test case
> needed to be updated to use non-overlapping memory layouts.
>
> * Tests fixed:
> - testFitSplitElf
>
> * Changes made:
> 1. ELF section layouts: added elf_sections_tee.lds with different
> address for TEE to avoid overlap with ATF address defined in
> elf_sections.lds
> 2. Makefile to properly build elf_sections_tee binary
> 3. Updat ftest.py to use separate ELF files for TEE vs ATF components
> in split-elf operations.
>
> An upcoming commit will validate if the memory region is overlapped
>
> Signed-off-by: Aristo Chen <aristo.chen at canonical.com>
Reviewed-by: Yannic Moog <y.moog at phytec.de>
> ---
> tools/binman/ftest.py | 2 +-
> tools/binman/test/Makefile | 6 ++++-
> tools/binman/test/elf_sections_tee.c | 1 +
> tools/binman/test/elf_sections_tee.lds | 31 ++++++++++++++++++++++++++
> 4 files changed, 38 insertions(+), 2 deletions(-)
> create mode 120000 tools/binman/test/elf_sections_tee.c
> create mode 100644 tools/binman/test/elf_sections_tee.lds
>
> diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py
> index a90db3c9351..f0c0487300d 100644
> --- a/tools/binman/ftest.py
> +++ b/tools/binman/ftest.py
> @@ -252,7 +252,7 @@ class TestFunctional(unittest.TestCase):
> TestFunctional._MakeInputFile('bl31.elf',
> tools.read_file(cls.ElfTestFile('elf_sections')))
> TestFunctional.tee_elf_path =
> TestFunctional._MakeInputFile('tee.elf',
> - tools.read_file(cls.ElfTestFile('elf_sections')))
> + tools.read_file(cls.ElfTestFile('elf_sections_tee')))
>
> # Newer OP_TEE file in v1 binary format
> cls.make_tee_bin('tee.bin')
> diff --git a/tools/binman/test/Makefile b/tools/binman/test/Makefile
> index 4d152eee9c0..66279e0e207 100644
> --- a/tools/binman/test/Makefile
> +++ b/tools/binman/test/Makefile
> @@ -30,12 +30,13 @@ LDS_BINMAN_BAD := -T $(SRC)u_boot_binman_syms_bad.lds
> LDS_BINMAN_X86 := -T $(SRC)u_boot_binman_syms_x86.lds
> LDS_BINMAN_EMBED := -T $(SRC)u_boot_binman_embed.lds
> LDS_EFL_SECTIONS := -T $(SRC)elf_sections.lds
> +LDS_EFL_SECTIONS_TEE := -T $(SRC)elf_sections_tee.lds
> LDS_BLOB := -T $(SRC)blob_syms.lds
>
> TARGETS = u_boot_ucode_ptr u_boot_no_ucode_ptr bss_data bss_data_zero \
> u_boot_binman_syms u_boot_binman_syms.bin u_boot_binman_syms_bad \
> u_boot_binman_syms_size u_boot_binman_syms_x86 embed_data \
> - u_boot_binman_embed u_boot_binman_embed_sm elf_sections blob_syms.bin
> + u_boot_binman_embed u_boot_binman_embed_sm elf_sections
> elf_sections_tee blob_syms.bin
>
> all: $(TARGETS)
>
> @@ -84,6 +85,9 @@ blob_syms: blob_syms.c
> elf_sections: CFLAGS += $(LDS_EFL_SECTIONS)
> elf_sections: elf_sections.c
>
> +elf_sections_tee: CFLAGS += $(LDS_EFL_SECTIONS_TEE)
> +elf_sections_tee: elf_sections_tee.c
> +
> clean:
> rm -f $(TARGETS)
>
> diff --git a/tools/binman/test/elf_sections_tee.c
> b/tools/binman/test/elf_sections_tee.c
> new file mode 120000
> index 00000000000..01b200a365e
> --- /dev/null
> +++ b/tools/binman/test/elf_sections_tee.c
> @@ -0,0 +1 @@
> +elf_sections.c
> \ No newline at end of file
> diff --git a/tools/binman/test/elf_sections_tee.lds
> b/tools/binman/test/elf_sections_tee.lds
> new file mode 100644
> index 00000000000..501d85a1f68
> --- /dev/null
> +++ b/tools/binman/test/elf_sections_tee.lds
> @@ -0,0 +1,31 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +/*
> + * Copyright (c) 2016 Google, Inc
> + */
> +
> +OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
> +OUTPUT_ARCH(i386)
> +ENTRY(_start)
> +
> +SECTIONS
> +{
> + . = 0x00100010;
> + _start = .;
> +
> + . = ALIGN(4);
> + .text :
> + {
> + *(.text*)
> + }
> +
> + . = 0x00101000;
> + .sram :
> + {
> + *(.sram*)
> + }
> +
> + /DISCARD/ : {
> + *(.comment)
> + *(.dyn*)
> + }
> +}
More information about the U-Boot
mailing list