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@coresystems.de Acked-by: Ward Vandewege ward@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) );
}