summaryrefslogtreecommitdiff
path: root/src/arch/x86/exit_car.S
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/x86/exit_car.S')
-rw-r--r--src/arch/x86/exit_car.S14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/arch/x86/exit_car.S b/src/arch/x86/exit_car.S
index 9b89ffbdf9..d3954d365f 100644
--- a/src/arch/x86/exit_car.S
+++ b/src/arch/x86/exit_car.S
@@ -35,6 +35,18 @@ post_car_stack_top:
.endm
#endif
+/* Place the stack in the bss section. It's not necessary to define it in the
+ * the linker script. */
+ .section .bss, "aw", @nobits
+.global _stack
+.global _estack
+.global _stack_size
+
+_stack:
+.space CONFIG_STACK_SIZE
+_estack:
+.set _stack_size, _estack - _stack
+
.text
.global _start
_start:
@@ -174,8 +186,10 @@ skip_clflush:
wrmsr
#endif /* CONFIG_SOC_SETS_MSRS */
+ movl $_estack, %esp
/* Align stack to 16 bytes at call instruction. */
andl $0xfffffff0, %esp
+
/* Call into main for postcar. */
call main
/* Should never return. */