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.

TEST=built and tested on grunt

Change-Id: I8a48114d31a5c716335d264fa4fe4da41dc5bf11
Signed-off-by: Raul E Rangel <>
Reviewed-by: Martin Roth <>
Tested-by: build bot (Jenkins) <>
diff --git a/src/cpu/x86/smm/smm_stub.S b/src/cpu/x86/smm/smm_stub.S
index ad15c6c..0c05032 100644
--- a/src/cpu/x86/smm/smm_stub.S
+++ b/src/cpu/x86/smm/smm_stub.S
@@ -135,6 +135,9 @@
 	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) */