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

Reply via email to