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 <qstrydom0@gmail.com>
This commit is contained in:
committed by
Tom Rini
parent
4edbb6fb60
commit
fcda974e36
@@ -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
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user