summaryrefslogtreecommitdiff
path: root/tools/mkimage.c
diff options
context:
space:
mode:
authorTom Rini <[email protected]>2025-09-23 13:41:16 -0600
committerTom Rini <[email protected]>2025-09-23 13:41:16 -0600
commit4d84fa1261eb27d57687f2e4c404a78b8653c183 (patch)
treea96254c4dbabf9e29d981be8a295058db7bf32d4 /tools/mkimage.c
parentb82a1fa7ddc7f3be2f3b75898d5dc44c34420bdd (diff)
parent4907a920e8292e9e38ddab4d211dfd5499097a8c (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.c3
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(&params);
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);
}