From 871156898c874c5247d4024309af348f8bc1e518 Mon Sep 17 00:00:00 2001 From: Raul E Rangel Date: Mon, 25 Jun 2018 14:22:27 -0600 Subject: smm: Push a null stack base pointer When generating a backtrace we need an indicator when we have hit the beginning of the stack. The i386 ABI states that %ebp points to the next stack frame. NULL can be used to indicate the end of the stack. We could add a NULL return pointer at %ebp+4, but I decided to omit it since a NULL stack pointer can be used as an indicator that there is no return pointer. BUG=b:80539294 TEST=built and tested on grunt Change-Id: I8a48114d31a5c716335d264fa4fe4da41dc5bf11 Signed-off-by: Raul E Rangel Reviewed-on: https://review.coreboot.org/27226 Reviewed-by: Martin Roth Tested-by: build bot (Jenkins) --- src/cpu/x86/smm/smm_stub.S | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/cpu') diff --git a/src/cpu/x86/smm/smm_stub.S b/src/cpu/x86/smm/smm_stub.S index ad15c6c72a..0c05032577 100644 --- a/src/cpu/x86/smm/smm_stub.S +++ b/src/cpu/x86/smm/smm_stub.S @@ -135,6 +135,9 @@ smm_trampoline32: movl stack_top, %edx subl %eax, %edx /* global_stack_top - offset = stack_top */ mov %edx, %esp + + /* Create stack frame by pushing a NULL stack base pointer */ + pushl $0x0 mov %esp, %ebp /* Allocate locals (fxsave) */ -- cgit v1.2.3