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