Am 01.05.2009 23:15, schrieb Ward Vandewege:
It seems r4233/4234 broke the tree for h8dme (k8). Here's how my boot hangs,
note the corruption in the serial log:
The "corruption" is fine - it's just both cores chatting at the same time.

I made a small mistake in the refactoring of copy_and_run that affected only the coreboot_apc codepath (which I can't test). While the copy_and_run_core function takes a "dst" argument, and compresses to that location, it jumped to a hardcoded entry point of _iseg - which works for all scenarios but coreboot_apc.

With the change, the dst value is used for all cases.

Please try attached patch which should fix it. It's tested to run in the non-APC codepath and is

Signed-off-by: Patrick Georgi <patrick.geo...@coresystems.de>
Index: src/arch/i386/lib/copy_and_run.c
===================================================================
--- src/arch/i386/lib/copy_and_run.c    (Revision 4253)
+++ src/arch/i386/lib/copy_and_run.c    (Arbeitskopie)
@@ -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: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to