Hi Sam, > Since 5c71f8110, the u-boot.elf produced by dragonboard410c_defconfig no > longer fits in the 1MiB aboot partition it is intended for. > > To be precise, this issue occurs on toolchains that have a linker with a > COMMONPAGESIZE > 4K. Since u-boot is hardcoded for 4K granules, we > ensure that the linker doesn't try to align to anything larger than > that, otherwise we're just filling our ELFs with a bunch of useless > zeros.
Is this just applicable to ELFs or can it be applied more widely? > Suggested-by: Stephan Gerhold <[email protected]> > Signed-off-by: Sam Day <[email protected]> Tested-by: Peter Robinson <[email protected]> Tested on a Rock960 where the elf output went from 9498864 to 9437424 > --- > arch/arm/config.mk | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/arch/arm/config.mk b/arch/arm/config.mk > index a7eff84a267..bce9a31e966 100644 > --- a/arch/arm/config.mk > +++ b/arch/arm/config.mk > @@ -112,6 +112,14 @@ endif > # needed for relocation > LDFLAGS_u-boot += -pie > > +ifeq ($(CONFIG_ARM64),y) > +# U-Boot uses fixed 4K granules, so we force the linker to match. > +# Otherwise, we're subject to toolchain preferences, (e.g Fedora's > +# aarch64-linux-none toolchain selects 64K granules) and we end up wasting > +# a lot of space in ELFs with MMU_PGPROT enabled. > +LDFLAGS_u-boot += -z common-page-size=0x1000 -z max-page-size=0x1000 > +endif > + > # > # FIXME: binutils versions < 2.22 have a bug in the assembler where > # branches to weak symbols can be incorrectly optimized in thumb mode > > --- > base-commit: 987907ae4bcc5d6055bdf7d318a3edf53e14d5fa > change-id: 20260528-4k-page-alignment-6cb594a073b0 > > Best regards, > -- > Sam Day <[email protected]> > >

