[ipxe-devel] any details about the state of KEEP_IT_REAL?
Michael Brown
mbrown at fensystems.co.uk
Tue Jun 12 11:49:10 UTC 2012
On Monday 11 Jun 2012 18:40:39 Klaus Espenlaub wrote:
> we're working on updating the PXE support in VirtualBox to iPXE, and had
> to realize that the KEEP_IT_REAL support is broken. Does anyone know how
> far away it is from working state? Didn't find any information in the
> ipxe mailing list except
> http://article.gmane.org/gmane.network.ipxe.devel/66 - funnily again
> talking about VirtualBox.
>
> It's the only relevant mode of operation which conforms to the PXE spec
> (so I was rather surprised that it's not working). It's vital for many
> DOS/Windows based or completely custom professional deployment solutions
> which expect the PXE stack, especially UNDI, to work from real mode, V86
> mode or 16bit protected mode.
>
> So if iPXE wants to replace both Etherboot (which is also broken in this
> respect) and Intel PXE in VirtualBox this apparently otherwise unused
> feature will have to be resurrected. We're aware that this means kicking
> out any feature which isn't vital, and that's not a concern since in the
> worst case the people who need a more feature rich iPXE build can
> replace the ROM image, or use the simple one to bootstrap a build over
> the network which has everything enabled.
In the many years since I first implemented KEEP_IT_REAL, this is the first time
that anyone has expressed any substantial interest in it. I have personally
never come across a deployment product that requires KEEP_IT_REAL. Even the
most internally convoluted (Tivoli, which uses VM86 mode and ring 1) manages
to work with iPXE as-is.
I have only ever encountered one NBP that would require KEEP_IT_REAL: the PXE
loader from one of the BSDs (might have been OpenBSD).
Support has been allowed to wane since no-one seemed interested and nothing
seemed to actually require it. However, I've been fairly strict in retaining
a memory model that would allow it to be resurrected; hence the (otherwise
artificial) separation between void * and userptr_t. The build architecture
introduced to handle EFI (and later Linux-native binaries) is also designed to
accommodate a KEEP_IT_REAL platform.
Resurrecting support should be reasonably straightforward.
Michael
More information about the ipxe-devel
mailing list