[coreboot] [v2] r4254 - trunk/coreboot-v2/src/arch/i386/lib

svn at coreboot.org svn at coreboot.org
Tue May 5 16:06:20 CEST 2009


Author: oxygene
Date: 2009-05-05 16:06:20 +0200 (Tue, 05 May 2009)
New Revision: 4254

Modified:
   trunk/coreboot-v2/src/arch/i386/lib/copy_and_run.c
Log:
Fix a bug introduced in the copy_and_run refactoring.
The new code always decompressed to dst (as it should)
and then jumped to _iseg, when it should jump to dst.

With dst != _iseg this breaks (coreboot_apc)

Signed-off-by: Patrick Georgi <patrick.georgi at coresystems.de>
Acked-by: Ward Vandewege <ward at gnu.org>


Modified: trunk/coreboot-v2/src/arch/i386/lib/copy_and_run.c
===================================================================
--- trunk/coreboot-v2/src/arch/i386/lib/copy_and_run.c	2009-05-04 20:27:09 UTC (rev 4253)
+++ trunk/coreboot-v2/src/arch/i386/lib/copy_and_run.c	2009-05-05 14:06:20 UTC (rev 4254)
@@ -44,11 +44,10 @@
 	print_debug("Jumping to image.\r\n");
 
 	__asm__ volatile (
-		"movl %0, %%ebp\n\t"
+		"movl %%eax, %%ebp\n\t"
 		"cli\n\t"
-		"leal    _iseg, %%edi\n\t"
 		"jmp     *%%edi\n\t"
-		:: "a"(ebp)
+		:: "a"(ebp), "D"(dst)
 	);
 
 }





More information about the coreboot mailing list