summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorAristo Chen <[email protected]>2025-09-14 10:59:32 +0000
committerTom Rini <[email protected]>2025-09-23 13:35:22 -0600
commit4907a920e8292e9e38ddab4d211dfd5499097a8c (patch)
treead65d7c59f1011f06a3c4e48cf0ff516c61e6782 /tools
parent8f3d3510e31ebc7b2057f431322a7174b6b60ea6 (diff)
doc: binman: Add guidance for determining ELF load addresses
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]>
Diffstat (limited to 'tools')
-rw-r--r--tools/binman/entries.rst18
1 files changed, 18 insertions, 0 deletions
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.
+
fit,entry
Generates a `entry = <...>` property with the entry address of the
ELF. This is only produced for the first entry