Hi, On 9/14/2025 12:59 PM, Aristo Chen wrote: > Add documentation to help users understand how to determine where ELF > files will be loaded when using binman's 'fit,load' property. This > addresses the common confusion about how load addresses are determined > from ELF files. > > The documentation explains three methods: > 1. Using readelf to examine program headers > 2. Checking the linker script (.lds file) > 3. Using objdump to see section addresses > > Also includes a specific example from binman tests showing how > elf_sections.lds sets ATF load address to 0x00000010 and > elf_sections_tee.lds sets TEE load address to 0x00100010 to avoid > memory overlap conflicts. > > This helps users debug memory layout conflicts more efficiently when > working with FIT images containing multiple ELF components. > > Signed-off-by: Aristo Chen <[email protected]> > --- > tools/binman/entries.rst | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/tools/binman/entries.rst b/tools/binman/entries.rst > index 12a39d070e4..f6a5465ca44 100644 > --- a/tools/binman/entries.rst > +++ b/tools/binman/entries.rst > @@ -1050,6 +1050,24 @@ split-elf > Generates a `load = <...>` property with the load address of the > segment > > + Note: The load address comes from the ELF file's program header or > + linker script. To determine where an ELF file will be loaded, you > can: > + > + 1. Use readelf to examine the program headers: > + ``readelf -l your_elf_file.elf`` > + Look for the LOAD segments and their VirtAddr (Virtual Address) > + > + 2. Check the linker script (.lds file) used to build the ELF: > + Look for the `. = <address>;` statements which set the location > + counter and determine load addresses for different sections > + > + 3. Use objdump to see section addresses: > + ``objdump -h your_elf_file.elf`` > + > + For example, in binman tests, elf_sections.lds sets ATF load address > + to 0x00000010, while elf_sections_tee.lds sets TEE load address to > + 0x00100010 to avoid memory overlap conflicts.
tools/binman/entries.rst should be generated from a "binman entry-docs" run as described in the documentation [1]. Please update tools/binman/etype/fit.py or this will be lost next time someone updates the entries documentation. [1] https://docs.u-boot.org/en/latest/develop/package/binman.html#entry-documentation Regards, Jonas > + > fit,entry > Generates a `entry = <...>` property with the entry address of the > ELF. This is only produced for the first entry

