[romprefix] Further sanity checks for the PCI 3 runtime segment address
authorMichael Brown <mcb30@etherboot.org>
Wed, 29 Oct 2008 01:10:33 +0000 (01:10 +0000)
committerMichael Brown <mcb30@etherboot.org>
Wed, 29 Oct 2008 01:16:52 +0000 (01:16 +0000)
commit621101c36a61320ba965063658fde0eee94f73e0
treef129a65d5eac7860a20450d7f671d1a476c924ef
parent1bc2adea9a56c028babe23fbc5b27a582e90ec4f
[romprefix] Further sanity checks for the PCI 3 runtime segment address

This extends the sanity checks on the runtime segment address provided
in %bx, first implemented in commit 5600955.

We now allow the ROM to be placed anywhere above a000:0000 (rather
than c000:0000, as before), since this is the region allowed by the
PCI 3 spec.  If the BIOS asks us to place the runtime image such that
it would overlap with the init-time image (which is explicitly
prohibited by the PCI 3 spec), then we assume that the BIOS is faulty
and ignore the provided runtime segment address.

Testing on a SuperMicro BIOS providing overlapping segment addresses
shows that ignoring the provided runtime segment address is safe to do
in these circumstances.
src/arch/i386/prefix/romprefix.S