diff options
| author | Tom Rini <[email protected]> | 2025-09-23 13:41:16 -0600 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2025-09-23 13:41:16 -0600 |
| commit | 4d84fa1261eb27d57687f2e4c404a78b8653c183 (patch) | |
| tree | a96254c4dbabf9e29d981be8a295058db7bf32d4 /tools/mkimage.c | |
| parent | b82a1fa7ddc7f3be2f3b75898d5dc44c34420bdd (diff) | |
| parent | 4907a920e8292e9e38ddab4d211dfd5499097a8c (diff) | |
Merge patch series "mkimage: Detect FIT image load address overlaps and fix related test/DTS issues"
Aristo Chen <[email protected]> says:
This patch series enhances FIT image robustness by adding **memory
region overlap detection** to `mkimage` and fixing existing overlaps
in DTS files and `binman` tests.
The primary goal is to prevent runtime memory corruption from
conflicting load addresses in FIT images.
Key Changes:
1. `mkimage` Overlap Detection: A new validation in
`tools/fit_image.c` checks for overlapping load addresses
within FIT configurations. `mkimage` now errors out with
detailed info on conflicts, preventing bad FIT image creation.
2. New Test Case: A Python test verifies the new detection.
It intentionally creates an overlap (kernel and FDT)
to confirm correct error handling.
3. Fixes for Existing Overlaps:
* Board DTS (k3-am6xx): Adjusted load addresses for TI
firmware stubs to prevent conflicts. This resolves
previously undetected overlaps.
* `binman` Tests: Fixed several tests. U-Boot load
addresses were shifted to avoid ATF conflicts. A new
linker script for TEE ELF sections ensures distinct
memory layouts.
4. Documentation: Added guidance for developers on how to
determine ELF load addresses using readelf, linker scripts,
and objdump when working with binman FIT images.
Impact:
This series improves FIT image reliability by catching overlaps
at build time, helping developers resolve issues before runtime
failures.
Link: https://lore.kernel.org/r/[email protected]
Diffstat (limited to 'tools/mkimage.c')
| -rw-r--r-- | tools/mkimage.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/tools/mkimage.c b/tools/mkimage.c index 12183270776..e96fb7e42db 100644 --- a/tools/mkimage.c +++ b/tools/mkimage.c @@ -533,7 +533,8 @@ int main(int argc, char **argv) retval = tparams->fflag_handle(¶ms); if (retval != EXIT_SUCCESS) { - if (retval == FDT_ERR_NOTFOUND) { + if (retval == FDT_ERR_NOTFOUND || + retval == FDT_ERR_BADSTRUCTURE) { // Already printed error, exit cleanly exit(EXIT_FAILURE); } |
