[gPXE-devel] About !PXE and UNDI_LOADER
Glenn Brown
gbrown at alumni.caltech.edu
Thu Jun 24 15:14:35 EDT 2010
Sean,
I wonder:
Since you say "our OS" it sounds like you are writing your own OS.
If so, I expect you might work around the BIOS not loading and
initializing the gPXE ROM by having the OS do it. Specifically:
Scan the PCI bus for Ethernet network devices with
PCI expansion ROMs.
Scan the PCI expansion ROM chain for the ROM compatible
with your architecture.
Copy the ROM into low memory allocated from the BIOS.
Call the ROM's POST entry point.
I believe that would register PXE and UNDI, assuming the BIOS still
provides the necessary PCI access and low memory allocation support
required by gPXE.
If your OS runs in 32-bit or 64-bit mode, using 16-bit PXE/UNDI must be
horribly complex. However, I believe gPXE can provide an EFI SNP
interface over PXE, possibly hiding the complexity, and providing a
64-bit interface that can be used on 32-bit and 64-bit systems. So, if
you make your OS expect the EFI SNP interface, then you may be able to
layer the OS over both PXE/UNDI via a gPXE shim, or over native EFI drivers.
It's quite possible, even likely, that I'm wrong somewhere, since I'm no
expert on preboot environments or on the internals of gPXE's EFI
implementation, but I expect others will correct me where I'm wrong.
--Glenn
More information about the gPXE-devel
mailing list