[pcbios] Inhibit INT 15 memory map hiding on brain-dead BIOSes
authorMichael Brown <mcb30@etherboot.org>
Wed, 24 Sep 2008 17:33:31 +0000 (18:33 +0100)
committerMichael Brown <mcb30@etherboot.org>
Wed, 24 Sep 2008 17:33:31 +0000 (18:33 +0100)
commit887d77c27ac6ccdb13892ab05e50281e63df6bbf
tree195dc9a42cd1e4eee891641b19411877aa5b0c3c
parent35b7658877967e0f0a647a53e3b11497268efbb5
[pcbios] Inhibit INT 15 memory map hiding on brain-dead BIOSes

Some really moronic BIOSes bring up the PXE stack via the UNDI loader
entry point during POST, and then don't bother to unload it before
overwriting the code and data segments.  If this happens, we really
don't want to leave INT 15 hooked, because that will cause any loaded
OS to die horribly as soon as it attempts to fetch the system memory
map.

We use a heuristic to detect whether or not we are being loaded at the
top of free base memory.  If we determine that we are being loaded at
some other arbitrary location in base memory, then we assume that it's
not safe to hook INT 15.
src/arch/i386/firmware/pcbios/hidemem.c