Fix v3 GeodeLX stack and global variable pointer corruption.
We had a jump instead of a call to stage1_main in geodelx/stage0.S. That
means all accesses to bist and init_detected were off by 8 bytes and
collided with accesses to the global variable pointer.

Found during my cleanup runs.

Signed-off-by: Carl-Daniel Hailfinger <[EMAIL PROTECTED]>
Acked-by: Carl-Daniel Hailfinger <[EMAIL PROTECTED]>

Index: corebootv3-arch_x86_cleanup/arch/x86/geodelx/stage0.S
===================================================================
--- corebootv3-arch_x86_cleanup/arch/x86/geodelx/stage0.S       (Revision 907)
+++ corebootv3-arch_x86_cleanup/arch/x86/geodelx/stage0.S       (Arbeitskopie)
@@ -376,7 +376,7 @@
        pushl   $0
        /* First parameter: bist */
        pushl   %eax
-       jmp     stage1_main
+       call    stage1_main
        /* We will not go back. */
 
 /* Reset vector. */


-- 
http://www.hailfinger.org/


--
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to