[PATCH v3 02/12] xtensa: Correct define of _end symbol
Jiaxun Yang
jiaxun.yang at flygoat.com
Tue Jun 18 15:56:02 CEST 2024
So U-Boot is using _end symbol to detect location of devicetree
appended at the end of the ROM.
It needs to be calculated based on end of .data load address,
as in our lds .current address is address in RAM.
Tested-by: Max Filippov <jcmvbkbc at gmail.com>
Signed-off-by: Jiaxun Yang <jiaxun.yang at flygoat.com>
---
arch/xtensa/cpu/u-boot.lds | 2 ++
arch/xtensa/include/asm/ldscript.h | 1 -
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/xtensa/cpu/u-boot.lds b/arch/xtensa/cpu/u-boot.lds
index 84ba32c04444..72e4b9a706e5 100644
--- a/arch/xtensa/cpu/u-boot.lds
+++ b/arch/xtensa/cpu/u-boot.lds
@@ -82,6 +82,8 @@ SECTIONS
__reloc_end = .;
__init_end = .;
+ /* Calculation to get end address in ROM */
+ _end = LOADADDR(.data) + (_data_end - _data_start);
SECTION_bss(__init_end (OVERLAY),)
diff --git a/arch/xtensa/include/asm/ldscript.h b/arch/xtensa/include/asm/ldscript.h
index 78a0b230bdaa..bcf0fd5a7443 100644
--- a/arch/xtensa/include/asm/ldscript.h
+++ b/arch/xtensa/include/asm/ldscript.h
@@ -165,7 +165,6 @@
. = ALIGN(8); \
_bss_end = ABSOLUTE(.); \
__bss_end = ABSOLUTE(.); \
- _end = ALIGN(0x8); \
PROVIDE(end = ALIGN(0x8)); \
_stack_sentry = ALIGN(0x8); \
}
--
2.43.0
More information about the U-Boot
mailing list