summaryrefslogtreecommitdiffstats
path: root/src/arch/x86/assembly_entry.S
diff options
context:
space:
mode:
authorArthur Heymans <arthur@aheymans.xyz>2020-11-30 14:03:51 +0100
committerFelix Held <felix-coreboot@felixheld.de>2022-10-20 14:43:40 +0000
commit9efb0c082512240f58001698b22d3c8472669156 (patch)
tree36954f4dd83e75e396687d34deaa80f666931346 /src/arch/x86/assembly_entry.S
parent1915ec1fe74a0f65d0e75464e176e5692bf27190 (diff)
downloadcoreboot-9efb0c082512240f58001698b22d3c8472669156.tar.gz
coreboot-9efb0c082512240f58001698b22d3c8472669156.tar.bz2
coreboot-9efb0c082512240f58001698b22d3c8472669156.zip
arch/x86: Only use .bss from car.ld when running XIP
Some platform run early stages like romstage and verstage from CAR instead of XIP. This allows to link them like other arch inside the _program region. This make in place LZ4 decompression possible as it needs a bit of extra place to extract the code which is now provided by the .bss. Tested on up/squared (Intel APL). Change-Id: I6cf51f943dde5f642d75ba4c5d3be520dc56370a Signed-off-by: Arthur Heymans <arthur@aheymans.xyz> Reviewed-on: https://review.coreboot.org/c/coreboot/+/48156 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Sean Rhodes <sean@starlabs.systems> Reviewed-by: Nico Huber <nico.h@gmx.de>
Diffstat (limited to 'src/arch/x86/assembly_entry.S')
-rw-r--r--src/arch/x86/assembly_entry.S2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/arch/x86/assembly_entry.S b/src/arch/x86/assembly_entry.S
index 79d6e1950233..869acc84e2fc 100644
--- a/src/arch/x86/assembly_entry.S
+++ b/src/arch/x86/assembly_entry.S
@@ -34,6 +34,7 @@ _start:
mov $_STACK_TOP, %esp
/* clear .bss section as it is not shared */
+#if ENV_SEPARATE_BSS
cld
xor %eax, %eax
movl $(_ebss), %ecx
@@ -41,6 +42,7 @@ _start:
sub %edi, %ecx
shrl $2, %ecx
rep stosl
+#endif
#if ((ENV_SEPARATE_VERSTAGE && CONFIG(VERSTAGE_DEBUG_SPINLOOP)) \
|| (ENV_ROMSTAGE && CONFIG(ROMSTAGE_DEBUG_SPINLOOP)))