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 c-d.hailfinger.devel.2006@gmx.net Acked-by: Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net
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. */