From: Sam Day Date: Thu, 28 May 2026 05:21:06 +0000 (+0000) Subject: arch: arm: force 4K page alignment in linker X-Git-Tag: v2026.07-rc4~5 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=31c2bb0cd1832f1030c42fbf588e7c4911e619dc;p=thirdparty%2Fu-boot.git arch: arm: force 4K page alignment in linker 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. Suggested-by: Stephan Gerhold Signed-off-by: Sam Day Tested-by: Peter Robinson --- 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