Sven Schnelle (svens@stackframe.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/1212
-gerrit
commit c0da995d1c10799eddfc450436d35358eacb619c Author: Sven Schnelle svens@stackframe.org Date: Wed Jul 11 21:41:06 2012 +0200
Fix stack assignment during CPU initialization
There are two errors in the code. The first one is a missing $ sign in mov _stack, %esp. Thanks to Ronald G Minnich for catching that bug.
The second bug is the 'incl %eax', which shouldn't be there, as there's no secondary CPU with index 0. CPU0 uses always the stack below _estack.
Change-Id: Id267a654ba95b0e898eeaaafb2403b438250a563 Signed-off-by: Sven Schnelle svens@stackframe.org --- src/cpu/x86/lapic/secondary.S | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/src/cpu/x86/lapic/secondary.S b/src/cpu/x86/lapic/secondary.S index 15bae5e..e6650ec 100644 --- a/src/cpu/x86/lapic/secondary.S +++ b/src/cpu/x86/lapic/secondary.S @@ -53,10 +53,9 @@ __ap_protected_start: movl $1, %eax lock xadd %eax, cpucount movl %eax, %ecx - incl %eax
/* assign stack for this specific cpu */ - mov _stack, %esp + mov $_stack, %esp mov $CONFIG_STACK_SIZE, %ebx mul %ebx add %eax, %esp