[pxeprefix] Work around bug in Etherboot 5.4 when loading undionly.kpxe
authorMichael Brown <mcb30@etherboot.org>
Thu, 30 Apr 2009 03:42:21 +0000 (04:42 +0100)
committerMichael Brown <mcb30@etherboot.org>
Thu, 30 Apr 2009 03:48:28 +0000 (04:48 +0100)
commit4188d517534d1350d48e68356cef99a5208787b4
treeee108e8f3cf1439fc16e0a702b076d31ea34e480
parent7c47ebd65c6a314435687296740b4e81b34f0edd
[pxeprefix] Work around bug in Etherboot 5.4 when loading undionly.kpxe

Etherboot 5.4 erroneously treats PXENV_UNLOAD_STACK as the "final
shutdown" call, and unhooks INT15.  When using gPXE's undionly.kpxe,
this results in gPXE overwriting the portion of Etherboot located in
high memory, because it is no longer hidden from the system memory map
at the time that gPXE loads.

Work around this by explicitly testing for Etherboot as the underlying
PXE stack (as is already done in undinet.c) and skipping the call to
PXENV_UNLOAD_STACK if necessary.
src/arch/i386/prefix/pxeprefix.S