[coreboot] MPTable can not be high-memory on Linux
andi at firstfloor.org
Sun Feb 22 18:53:41 CET 2009
Kevin O'Connor <kevin at koconnor.net> writes:
> It looks like the problem is that the MPTable is located in the last
> 64K of memory (instead of the first few megabytes). There is a
> comment about this in arch/x86/kernel/mpparse.c:
> * We cannot access to MPC table to compute
> * table size yet, as only few megabytes from
> * the bottom is mapped now.
> * PC-9800's MPC table places on the very last
> * of physical memory; so that simply reserving
> * PAGE_SIZE from mpg->mpf_physptr yields BUG()
> * in reserve_bootmem.
> However, that comment is in an #ifdef specific to 32bit kernels.
> (Though, it's not clear to me how that code would help as it sets size
> to be a negative number.)
> The easiest way to fix this is to change SeaBIOS to copy the whole
> mptable to the first megabyte. Also, we need to fix your SMBIOS so
> that ACPI is used instead of the mptable.
The kernel should just use early_ioremap to access it I guess.
ak at linux.intel.com -- Speaking for myself only.
More information about the coreboot