summaryrefslogtreecommitdiffstats
path: root/payloads
diff options
context:
space:
mode:
authorYi Chou <yich@google.com>2023-11-18 12:12:01 +0800
committerJulius Werner <jwerner@chromium.org>2023-12-01 02:20:29 +0000
commit32ea2abe3b32ca5c649b98926b7b3e00c398036e (patch)
tree457989d2c5a1e45a0016a7a955f7b2ca161d697f /payloads
parent1397fd3668c73b940253e5f5a5f81dea54383660 (diff)
downloadcoreboot-32ea2abe3b32ca5c649b98926b7b3e00c398036e.tar.gz
coreboot-32ea2abe3b32ca5c649b98926b7b3e00c398036e.tar.bz2
coreboot-32ea2abe3b32ca5c649b98926b7b3e00c398036e.zip
libpayload: Fix the stack and data labels
We should make sure _stack/_estack and the other labels are consistent. And _data & _edata is also useful to clean up the sensitive data on the data section. BUG=b:248610274 TEST=emerge-cherry libpayload BRANCH=none Cq-Depend: chromium:5052462 Change-Id: I589040f4db60b35813ea9f4ba9503244bd7def00 Signed-off-by: Yi Chou <yich@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/79144 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Diffstat (limited to 'payloads')
-rw-r--r--payloads/libpayload/arch/arm/head.S2
-rw-r--r--payloads/libpayload/arch/arm/libpayload.ldscript14
-rw-r--r--payloads/libpayload/arch/arm64/head.S2
-rw-r--r--payloads/libpayload/arch/arm64/libpayload.ldscript14
-rw-r--r--payloads/libpayload/arch/x86/head.S2
-rw-r--r--payloads/libpayload/arch/x86/libpayload.ldscript14
6 files changed, 33 insertions, 15 deletions
diff --git a/payloads/libpayload/arch/arm/head.S b/payloads/libpayload/arch/arm/head.S
index c9a97b53ed7e..0640c50e47d5 100644
--- a/payloads/libpayload/arch/arm/head.S
+++ b/payloads/libpayload/arch/arm/head.S
@@ -56,4 +56,4 @@ ENDPROC(_entry)
1:
.word cb_header_ptr
2:
-.word _stack
+.word _estack
diff --git a/payloads/libpayload/arch/arm/libpayload.ldscript b/payloads/libpayload/arch/arm/libpayload.ldscript
index 5510218ca2ea..d60ba8afb874 100644
--- a/payloads/libpayload/arch/arm/libpayload.ldscript
+++ b/payloads/libpayload/arch/arm/libpayload.ldscript
@@ -40,29 +40,35 @@ SECTIONS
_start = .;
.text : {
+ _text = .;
*(.text._entry)
*(.text)
*(.text.*)
+ _etext = .;
}
.rodata : {
+ _rodata = .;
*(.rodata)
*(.rodata.*)
+ _erodata = .;
}
.data : {
+ _data = .;
*(.data)
*(.data.*)
+ _edata = .;
}
- _edata = .;
-
.bss : {
+ _bss = .;
*(.sbss)
*(.sbss.*)
*(.bss)
*(.bss.*)
*(COMMON)
+ _ebss = .;
/* Stack and heap */
@@ -72,10 +78,10 @@ SECTIONS
. = ALIGN(16);
_eheap = .;
- _estack = .;
+ _stack = .;
. += CONFIG_LP_STACK_SIZE;
. = ALIGN(16);
- _stack = .;
+ _estack = .;
}
_end = .;
diff --git a/payloads/libpayload/arch/arm64/head.S b/payloads/libpayload/arch/arm64/head.S
index 0b26fe5bce51..0ebadeae3497 100644
--- a/payloads/libpayload/arch/arm64/head.S
+++ b/payloads/libpayload/arch/arm64/head.S
@@ -55,4 +55,4 @@ ENDPROC(_entry)
1:
.quad cb_header_ptr
2:
-.quad _stack
+.quad _estack
diff --git a/payloads/libpayload/arch/arm64/libpayload.ldscript b/payloads/libpayload/arch/arm64/libpayload.ldscript
index e225aa8bca95..c9881f7ec07e 100644
--- a/payloads/libpayload/arch/arm64/libpayload.ldscript
+++ b/payloads/libpayload/arch/arm64/libpayload.ldscript
@@ -40,31 +40,37 @@ SECTIONS
_start = .;
.text : {
+ _text = .;
*(.text._entry)
*(.text)
*(.text.*)
+ _etext = .;
}
.rodata : {
+ _rodata = .;
*(.rodata)
*(.rodata.*)
+ _erodata = .;
}
.data : {
+ _data = .;
*(.data)
*(.data.*)
+ _edata = .;
}
- _edata = .;
-
.bss : {
*(.ttb_buffer)
+ _bss = .;
*(.sbss)
*(.sbss.*)
*(.bss)
*(.bss.*)
*(COMMON)
+ _ebss = .;
/* Stack and heap */
@@ -74,10 +80,10 @@ SECTIONS
. = ALIGN(16);
_eheap = .;
- _estack = .;
+ _stack = .;
. += CONFIG_LP_STACK_SIZE;
. = ALIGN(16);
- _stack = .;
+ _estack = .;
}
_end = .;
diff --git a/payloads/libpayload/arch/x86/head.S b/payloads/libpayload/arch/x86/head.S
index 87d0037a08fc..1e0e4a0d3d6b 100644
--- a/payloads/libpayload/arch/x86/head.S
+++ b/payloads/libpayload/arch/x86/head.S
@@ -73,7 +73,7 @@ _init:
/* Store current stack pointer and set up new stack. */
movl %esp, %eax
- movl $_stack, %esp
+ movl $_estack, %esp
pushl %eax
/* Enable special x86 functions if present. */
diff --git a/payloads/libpayload/arch/x86/libpayload.ldscript b/payloads/libpayload/arch/x86/libpayload.ldscript
index 2d7e9129f71b..0f27ed92336a 100644
--- a/payloads/libpayload/arch/x86/libpayload.ldscript
+++ b/payloads/libpayload/arch/x86/libpayload.ldscript
@@ -39,29 +39,35 @@ SECTIONS
_start = .;
.text : {
+ _text = .;
*(.text._entry)
*(.text)
*(.text.*)
+ _etext = .;
}
.rodata : {
+ _rodata = .;
*(.rodata)
*(.rodata.*)
+ _erodata = .;
}
.data : {
+ _data = .;
*(.data)
*(.data.*)
+ _edata = .;
}
- _edata = .;
-
.bss : {
+ _bss = .;
*(.sbss)
*(.sbss.*)
*(.bss)
*(.bss.*)
*(COMMON)
+ _ebss = .;
/* Stack and heap */
@@ -71,10 +77,10 @@ SECTIONS
. = ALIGN(16);
_eheap = .;
- _estack = .;
+ _stack = .;
. += CONFIG_LP_STACK_SIZE;
. = ALIGN(16);
- _stack = .;
+ _estack = .;
}
_end = .;