Re: 2.3.4[67] does not boot with PAE36

From: Alan Cox (
Date: Fri Feb 25 2000 - 14:23:25 EST

> Note that the SMP tables really should _not_ be in just any low memory
> area: if that were true then we'd have trashed them much earlier during
> the bootloader anyway. Currently the SMP tables should be either in the

The bootloader knows how to dodge the low memory and EBDA. This is true since
Lilo.21. Having the tables in the EBDA is actually fairly uncommon but does
occur on some boards.

Almost every board that puts the specification in ROM is broken and breaks
the requirement that the table be correct for the machine configuration -
they report 2 cpus when there is 1 cpu on a dual board.

> low 1kB (extended low BIOS area)
> 1kB just under 640kB (extended high BIOS area)
> last 64kB of the first 1MB area (BIOS section)

The MP floating pointer structure must be in one of those three areas. The
specification suggests that the MP table itself should only be in the EBDA,
or last 1K if no EBDA or in the BIOS 0xE0000->xFFFFF area.

Its all a bit silly since you can put the MP table at the address the bios
will load the boot block and still be compliant 8)

> and sure, the physical hardware table can be anywhere (and this is the
> part that _will_ be in high high memory on newer boards), but it should
> still all be in reserved BIOS memory that we wouldn't touch anyway.

The PCI routing table can also be in high memory as can the PCI BIOS.
Compaq did that for a while then after discovering every OS had at least bugs
if you did this put it somewhere sensible. 2.2 doesnt use the PCI routing
table but does blow up if your PCI bios is high and we are favouring PCI
bios calls.


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

This archive was generated by hypermail 2b29 : Tue Feb 29 2000 - 21:00:13 EST