summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuentin Strydom <[email protected]>2026-06-20 16:07:24 +0100
committerTom Rini <[email protected]>2026-06-23 10:41:25 -0600
commitfcda974e36033ad5331a9b4a4a551af4e141ad7d (patch)
tree1ce549574303bb4a129d9d068143f768133dff4a
parent4edbb6fb600a0f657e74a9bc47e0d314e059cef8 (diff)
arm: aspeed: Fix AST2600 SPL external DTB alignment
For AST2600 SPL with CONFIG_SPL_SEPARATE_BSS=y and CONFIG_OF_SEPARATE=y, fdt_find_separate() expects the appended control DTB at _image_binary_end. The AST2600 SPL linker script aligned _image_binary_end via the .binman_sym_table section. In builds where that section has no emitted contents, objcopy -O binary does not include the alignment bytes in spl/u-boot-spl-nodtb.bin. This causes the nodtb binary to end before _image_binary_end, so the appended DTB is placed too early. On evb-ast2600 this produced: sizeof(spl/u-boot-spl-nodtb.bin) = 0xc92c _image_binary_end = 0xc930 SPL then looked four bytes past the FDT header and failed with: Missing DTB No serial driver found Move the 8-byte alignment into the preceding emitted __u_boot_list section so the objcopy output and _image_binary_end agree. Signed-off-by: Quentin Strydom <[email protected]>
-rw-r--r--arch/arm/mach-aspeed/ast2600/u-boot-spl.lds2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm/mach-aspeed/ast2600/u-boot-spl.lds b/arch/arm/mach-aspeed/ast2600/u-boot-spl.lds
index 303ace2f61c..894eda1db77 100644
--- a/arch/arm/mach-aspeed/ast2600/u-boot-spl.lds
+++ b/arch/arm/mach-aspeed/ast2600/u-boot-spl.lds
@@ -42,6 +42,7 @@ SECTIONS
. = ALIGN(4);
__u_boot_list : {
KEEP(*(SORT(__u_boot_list*)));
+ . = ALIGN(8);
} > .nor
. = ALIGN(4);
@@ -49,7 +50,6 @@ SECTIONS
__binman_sym_start = .;
KEEP(*(SORT(.binman_sym*)));
__binman_sym_end = .;
- . = ALIGN(8);
} > .nor
/*