[gPXE-devel] About !PXE and UNDI_LOADER

Geoff Lywood glywood at vmware.com
Fri Jun 25 19:29:08 EDT 2010


Sean,

EFI does have a mechanism so that the OS can use the firmware's UNDI stack. However, it will be a lot of time and effort before you can get it working:

- You claim to have your own bootloader. It will almost certainly need to be completely rewritten in order to interact with EFI firmware. You will also need to change the interface between the bootloader and the kernel, which may cause you versioning problems.

- You need to get the rest of your OS working on EFI too. Several kernel components (ACPI, SMBIOS, etc.) need to have slightly different behavior when running on an EFI system.

- To my knowledge, there is no existing code that you could use as a model to develop your driver from. All you would have is the UNDI 3.1 specification, which is Appendix E of the UEFI specification.

An additional problem that you will probably run into is the fact that these firmware drivers are unlikely to be bug-free. Even if the driver works during boot, it may not work when the OS is running. Any bugs in the firmware will crash your OS. Since you don't control the firmware code, you can't fix the bugs. In the end, customers are unhappy because they think your product is broken, even if it's not your fault.

Geoff


> -----Original Message-----
> From: gpxe-devel-bounces at etherboot.org [mailto:gpxe-devel-
> bounces at etherboot.org] On Behalf Of Michael Brown
> Sent: Friday, June 25, 2010 2:45 AM
> To: Sean Shoufu Luo
> Cc: Glenn Brown; gpxe-devel at etherboot.org
> Subject: Re: [gPXE-devel] About !PXE and UNDI_LOADER
> 
> On Friday 25 Jun 2010 04:39:51 Sean Shoufu Luo wrote:
> > I would like to have a try of Glenn's idea if UNDI Loader cannot
> functions
> > well, that's must be interesting! While, as Michael said, the key is
> >  various BIOS services become available or unsafe to use. Is it possible
> to
> >  modify OS or add some function to reactive these services?
> 
> Anything along those lines would almost certainly have to be specific to a
> particular version of a particular BIOS; it couldn't be a general
> solution.
> 
> > EFI, sounds good! Maybe it is more valuable for me to try it, which my
> boss
> > talked about with me and suggested to do some investigation about,
> several
> > days ago. Any instructions about it?
> 
> Look at Geoff Lywood's "snpnet" driver for an example of how to use the
> EFI SNP
> API.  You will be using the EFI runtime services rather than boot-time
> services, so you will need slightly different code to locate the device in
> the
> first place.
> 
> Michael
> _______________________________________________
> gPXE-devel mailing list
> gPXE-devel at etherboot.org
> http://etherboot.org/mailman/listinfo/gpxe-devel


More information about the gPXE-devel mailing list