diff options
author | Raul E Rangel <rrangel@chromium.org> | 2018-06-25 14:22:27 -0600 |
---|---|---|
committer | Martin Roth <martinroth@google.com> | 2018-06-27 22:12:18 +0000 |
commit | 871156898c874c5247d4024309af348f8bc1e518 (patch) | |
tree | c039d16d453c3916e1e1da35588531ff8de6cd40 /src | |
parent | 0140541f5003e173baac08f4719c285936795e76 (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>
Diffstat (limited to 'src')
-rw-r--r-- | src/cpu/x86/smm/smm_stub.S | 3 |
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) */ |