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 <[email protected]>
Acked-by: Ward Vandewege <[email protected]>


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)
        );
 
 }


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

Reply via email to