[coreboot] MPTable can not be high-memory on Linux

Andi Kleen 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.

-Andi

-- 
ak at linux.intel.com -- Speaking for myself only.




More information about the coreboot mailing list