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: [email protected] [mailto:gpxe-devel-
> [email protected]] On Behalf Of Michael Brown
> Sent: Friday, June 25, 2010 2:45 AM
> To: Sean Shoufu Luo
> Cc: Glenn Brown; [email protected]
> 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
> [email protected]
> http://etherboot.org/mailman/listinfo/gpxe-devel
_______________________________________________
gPXE-devel mailing list
[email protected]
http://etherboot.org/mailman/listinfo/gpxe-devel

Reply via email to