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 <stephan.gerhold@linaro.org>
Signed-off-by: Sam Day <me@samcday.com>
Tested-by: Peter Robinson <pbrobinson@gmail.com>
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user