From: Simon Glass Date: Fri, 20 Sep 2024 07:24:33 +0000 (+0200) Subject: armv8: Support not having separate BSS X-Git-Url: http://git.dujemihanovic.xyz/?a=commitdiff_plain;h=a3403e6fbf80412a04ddbb033b3235aa03b04efa;p=u-boot.git armv8: Support not having separate BSS Separate BSS is current mandatory on armv8 but this is not useful for early boot phases. Add support for the combined BSS. Use an #ifdef to avoid using CONFIG_SPL_BSS_START_ADDR which is not valid in this case. Signed-off-by: Simon Glass Reviewed-by: Ilias Apalodimas --- diff --git a/arch/arm/cpu/armv8/u-boot-spl.lds b/arch/arm/cpu/armv8/u-boot-spl.lds index 215cedd69a..fed69644b5 100644 --- a/arch/arm/cpu/armv8/u-boot-spl.lds +++ b/arch/arm/cpu/armv8/u-boot-spl.lds @@ -13,8 +13,10 @@ MEMORY { .sram : ORIGIN = IMAGE_TEXT_BASE, LENGTH = IMAGE_MAX_SIZE } +#ifdef CONFIG_SPL_SEPARATE_BSS MEMORY { .sdram : ORIGIN = CONFIG_SPL_BSS_START_ADDR, LENGTH = CONFIG_SPL_BSS_MAX_SIZE } +#endif OUTPUT_FORMAT("elf64-littleaarch64", "elf64-littleaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) @@ -56,12 +58,22 @@ SECTIONS _end = .; _image_binary_end = .; +#ifdef CONFIG_SPL_SEPARATE_BSS .bss : { __bss_start = .; *(.bss*) . = ALIGN(8); __bss_end = .; } >.sdram +#else + .bss (NOLOAD) : { + __bss_start = .; + *(.bss*) + . = ALIGN(8); + __bss_end = .; + } >.sram +#endif + __bss_size = __bss_end - __bss_start; /DISCARD/ : { *(.rela*) } /DISCARD/ : { *(.dynsym) }