On Tue, Jan 20, 2009 at 6:12 PM, Stefan Reinauer stepan@coresystems.de wrote:
Kevin O'Connor wrote:
-#if HAVE_MP_TABLE==1 +#if HAVE_MP_TABLE == 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...
I think the above "#if HAVE_MP_TABLE" branch doesn't make any sense. Currently, coreboot tries to put the mptable in the first 1KiB of ram. If it can't fit, it will put it into the 0xf0000 segment. This complexity doesn't make any sense, because there is no reason why we can't always put the mptable in the 0xf0000 segment.
That is, in the HAVE_LOW_TABLES case, we can use:
rom_table_end = write_smp_table(rom_table_end); rom_table_end = (rom_table_end+1023) & ~1023;
and completely remove the HAVE_MP_TABLE case.
I think YhLu added that for some side case... Yinghai.. mind to share the insight?
should be ok. just need to make sure not mess up with 0x467 and ebda stuff.
YH