On Fri, 16 Jan 2026 at 00:28, Tom Rini <[email protected]> wrote: > > With commit 0535e46d55d7 ("scripts/dtc: Update to upstream version > v1.7.2-35-g52f07dcca47c") it is now a fatal error to U-Boot if our > device tree is not 8-byte aligned. In commit f613a6e15ef7 ("ARM: OMAP2+: > Pad SPL binary to 8-byte alignment before DTB") Beleswar Padhi explains > that we must have ALIGN(x) statements inside of a section to ensure that > padding is included and not simply that the linker address counter is > incremented. To that end, this patch: > - Aligns the final section before _end (for U-Boot) or _image_binary_end > (for xPL phases) by 8-bytes by adjusting the ALIGN(4) statement to be > ALIGN(8) in the final section before the symbol. > - Ensure that we do have alignment by adding an ASSERT so that when not > aligned we fail to link (and explain why). > > Signed-off-by: Tom Rini <[email protected]> > ---
Reviewed-by: Ilias Apalodimas <[email protected]> > Cc: Ilias Apalodimas <[email protected]> > Cc: Marek Vasut <[email protected]> > Cc: Michal Simek <[email protected]> > Cc: Richard Henderson <[email protected]> > --- > arch/microblaze/cpu/u-boot-spl.lds | 5 ++++- > arch/microblaze/cpu/u-boot.lds | 4 +++- > 2 files changed, 7 insertions(+), 2 deletions(-) > > diff --git a/arch/microblaze/cpu/u-boot-spl.lds > b/arch/microblaze/cpu/u-boot-spl.lds > index 09abbea84d06..620ef2c96dbd 100644 > --- a/arch/microblaze/cpu/u-boot-spl.lds > +++ b/arch/microblaze/cpu/u-boot-spl.lds > @@ -50,7 +50,7 @@ SECTIONS > *(.bss) > *(.bss.*) > *(COMMON) > - . = ALIGN(4); > + . = ALIGN(8); > __bss_end = .; > } > _end = . ; > @@ -61,3 +61,6 @@ SECTIONS > ASSERT(_end - _start <= (CONFIG_SPL_MAX_FOOTPRINT), \ > "SPL image plus BSS too big"); > #endif > + > +ASSERT(_image_binary_end % 8 == 0, \ > + "_image_binary_end must be 8-byte aligned for device tree"); > diff --git a/arch/microblaze/cpu/u-boot.lds b/arch/microblaze/cpu/u-boot.lds > index a2c8fb2e21c0..70fa49c31712 100644 > --- a/arch/microblaze/cpu/u-boot.lds > +++ b/arch/microblaze/cpu/u-boot.lds > @@ -67,8 +67,10 @@ SECTIONS > *(.scommon) > *(.bss*) > *(COMMON) > - . = ALIGN(4); > + . = ALIGN(8); > __bss_end = .; > } > _end = . ; > } > + > +ASSERT(_end % 8 == 0, "_end must be 8-byte aligned for device tree"); > -- > 2.43.0 >

