See attachment. Thanks, Ward.
-- Ward Vandewege <[email protected]> Free Software Foundation - Senior Systems Administrator
Special handling for MP table in low memory is only necessary if there are tables in low memory. This removes a hang when HAVE_LOW_TABLES=0 and HAVE_HIGH_TABLES=1. With this patch I can boot all the way to a payload. Tested on a Supermicro H8DME. Many thanks to Patrick Georgi for figuring this out. Signed-off-by: Ward Vandewege <[email protected]> Index: src/arch/i386/boot/tables.c =================================================================== --- src/arch/i386/boot/tables.c (revision 4204) +++ src/arch/i386/boot/tables.c (working copy) @@ -145,6 +145,7 @@ } #endif +#if HAVE_LOW_TABLES == 1 /* Don't write anything in the traditional x86 BIOS data segment, * for example the linux kernel smp need to use 0x467 to pass reset vector * or use 0x40e/0x413 for EBDA finding... @@ -171,6 +172,7 @@ smp_write_floating_table_physaddr(low_table_end - SMP_FLOATING_TABLE_LEN, mpc_start); memset((unsigned char *)low_table_end, '\0', mptable_size); } +#endif /* HAVE_LOW_TABLES */ #endif /* HAVE_MP_TABLE */ if (low_table_end < 0x500) {
-- coreboot mailing list: [email protected] http://www.coreboot.org/mailman/listinfo/coreboot

