[PATCH] powerpc/mpc83xx: Move alignment padding into __u_boot_list section
J. Neuschäfer via B4 Relay
devnull+j.ne.posteo.net at kernel.org
Sun Mar 29 17:04:36 CEST 2026
From: "J. Neuschäfer" <j.ne at posteo.net>
u-boot-dtb.bin is built by concatenating u-boot-nodtb.bin and u-boot.dtb.
u-boot-nodtb.bin, in turn, is generated by objcopy'ing the contents of
u-boot (U-Boot in ELF format) into a raw file.
In order to find the bundled FDT (u-boot.dtb), the code in lib/fdtdec.c
uses the _end symbol. Platform-specific linker scripts ensure that _end is
8-byte aligned, which is required by libfdt.
For the PowerPC MPC83xx platform, the ALIGN(8) directive was outside a
section, with the unfortunate effect that the potentially generated padding
bytes would not be copied by objcopy. This resulted in a discrepancy
between the _end symbol on the one hand, and the size of u-boot-nodtb.bin
and thus the starting location of the actual FDT on the other side. Under
these conditions, the FDT could not be found and boot would fail early.
This commit fixes it by moving the ALIGN(8) into the __u_boot_list section,
which is non-empty and thus copied into u-boot-nodtb.bin.
Signed-off-by: J. Neuschäfer <j.ne at posteo.net>
---
arch/powerpc/cpu/mpc83xx/u-boot.lds | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/cpu/mpc83xx/u-boot.lds b/arch/powerpc/cpu/mpc83xx/u-boot.lds
index 5becc4d236e..a765babee3f 100644
--- a/arch/powerpc/cpu/mpc83xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc83xx/u-boot.lds
@@ -43,7 +43,8 @@ SECTIONS
. = ALIGN(4);
__u_boot_list : {
- KEEP(*(SORT(__u_boot_list*)));
+ KEEP(*(SORT(__u_boot_list*)));
+ . = ALIGN(8);
}
@@ -56,7 +57,6 @@ SECTIONS
* _end - This is end of u-boot.bin image.
* dtb will be appended here to make u-boot-dtb.bin
*/
- . = ALIGN(8);
_end = .;
. = ALIGN(4096);
---
base-commit: eb95914b9f5886b7ca0eaa2dbcd8a66bb8e5f81a
change-id: 20260329-mpc83xx-align-152a72a9d82d
Best regards,
--
J. Neuschäfer <j.ne at posteo.net>
More information about the U-Boot
mailing list