]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
armv8: Support not having separate BSS
authorSimon Glass <sjg@chromium.org>
Fri, 20 Sep 2024 07:24:33 +0000 (09:24 +0200)
committerTom Rini <trini@konsulko.com>
Thu, 3 Oct 2024 17:52:16 +0000 (11:52 -0600)
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 <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
arch/arm/cpu/armv8/u-boot-spl.lds

index 215cedd69a8cde72eed9e5ddae43eb12c3edc986..fed69644b5534fe939b5763150d2e9ff5c8037e2 100644 (file)
 
 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) }