summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaul E Rangel <rrangel@chromium.org>2018-06-25 14:22:27 -0600
committerMartin Roth <martinroth@google.com>2018-06-27 22:12:18 +0000
commit871156898c874c5247d4024309af348f8bc1e518 (patch)
treec039d16d453c3916e1e1da35588531ff8de6cd40
parent0140541f5003e173baac08f4719c285936795e76 (diff)
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 <rrangel@chromium.org> Reviewed-on: https://review.coreboot.org/27226 Reviewed-by: Martin Roth <martinroth@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r--src/cpu/x86/smm/smm_stub.S3
1 files changed, 3 insertions, 0 deletions
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) */