[PATCH v2] arm: Add OVERLAY command to BSS section on ARM64

Marek Vasut marek.vasut+renesas at mailbox.org
Sun Dec 17 01:33:39 CET 2023


Avoid allocating and loading the BSS section.

$ aarch64-linux-gnu-objdump -Sh u-boot

Before:
  10 .bss_start    00000000  00000000000f21d8  00000000000f21d8  001021d8  2**0
                   CONTENTS, ALLOC, LOAD, DATA
  11 .bss          000068f8  00000000000f2200  00000000000f2200  001021d8  2**6
                   ALLOC
  12 .bss_end      00000000  00000000000f8af8  00000000000f8af8  00108af8  2**0
                   CONTENTS, ALLOC, LOAD, DATA

After:
  10 .bss_start    00000000  00000000000bf990  00000000000bf990  001021e0  2**0
                   CONTENTS
  11 .bss          000068e8  00000000000bf990  00000000000bf990  001021e0  2**4
                   CONTENTS
  12 .bss_end      00000000  00000000000c6278  00000000000c6278  00108ac8  2**0
                   CONTENTS

Signed-off-by: Marek Vasut <marek.vasut+renesas at mailbox.org>
---
Cc: Simon Glass <sjg at chromium.org>
Cc: Tom Rini <trini at konsulko.com>
---
V2: Replicate arch/arm/cpu/u-boot.lds BSS part verbatim
---
 arch/arm/cpu/armv8/u-boot.lds | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/arch/arm/cpu/armv8/u-boot.lds b/arch/arm/cpu/armv8/u-boot.lds
index fb6a30c922f..ebdc079552d 100644
--- a/arch/arm/cpu/armv8/u-boot.lds
+++ b/arch/arm/cpu/armv8/u-boot.lds
@@ -151,16 +151,18 @@ SECTIONS
 
 	. = ALIGN(8);
 
-	.bss_start : {
+	.bss_start __rel_dyn_start (OVERLAY) : {
 		KEEP(*(.__bss_start));
+		__bss_base = .;
 	}
 
-	.bss : {
+	.bss __bss_base (OVERLAY) : {
 		*(.bss*)
 		 . = ALIGN(8);
+		 __bss_limit = .;
 	}
 
-	.bss_end : {
+	.bss_end __bss_limit (OVERLAY) : {
 		KEEP(*(.__bss_end));
 	}
 
-- 
2.43.0



More information about the U-Boot mailing list