[ipxe-devel] UEFI SCT patch

Alexandre Rames arames at solarflare.com
Thu Sep 13 12:39:29 UTC 2012

My patch will potentially fix some errors reported by SCT 
<http://www.uefi.org/specs/>. It probably won't fix your problem.

I have little experience with UEFI or iPXE, but here are a few suggestions:

The commands you listed don't work for me, and I could not find matching 
vendor / device id for the first 3 devices you mention:
$ cd <ipxe_repo>/src/
$ grep -RHIin 8086 drivers/net/ | grep -i 2000
$ grep -RHIin 8086 drivers/net/ | grep -i 2001
$ grep -RHIin 8086 drivers/net/ | grep -i 2625

I could build a efi-driver for the last device your mention:

$ cd <ipxe_repo>/src/
$ grep -RHIin 8086 drivers/net/ | grep -i 1502
gives me:
./intel.c:926:    PCI_ROM ( 0x8086, 0x1502, "82579lm", "82579LM", 0 )

So I could build your UEFI driver with the command:
$ make bin-x86_64-efi/82579lm.efidrv -j6
(replace efidrv with efirom to build a rom)

I am wondering if your other devices are supported. Maybe the way I am 
looking for devices is not appropriate though.

Here is an example procedure to load the driver built previously (very 

cd to the filesystem
 > fs0:
Check that your device exist. Here look for your device 0x8086, 0x1502
 > pci
Check what drivers are loaded. Write down the index of the last driver 
 > drivers
List devices. Write down the index of the last device
 > devices
Load your driver manually (this is the file compiled previously)
 > load driver\82579lm.efidrv
Now check if your driver is loaded
 > drivers
and if your device is present.
 > devices

If that does not work maybe try to enable debug in some iPXE files.
For example:
make bin-x86_64-efi/82579lm.efidrv -j6 DEBUG=intel,efi_snp,efi_init
Enabling debug in files related to your device may give you some useful 

Hope this helps,


On 13/09/12 12:54, Daniel Li wrote:
> Hi Alexandre,
> Could you tell me which issue was be fixed by your patch?
> I have some issue like following about ipxe with uefi,I think you are 
> good well with uefi.
> Our product will import ipxe,but efi file can't found network device,I 
> built efi file according to the below steps.
> 1.I have undef PXE_STACK and  PXE_MENU in src\config\general.h.
> 2.Built EFI version as vendor/product specific:
> $ make bin-x86-64/10222000.efi bin-x86-64/10222001.efi 
> bin-x86-64/10222625.efi.(computer vendor is 1022 ,device id is 2001).
> $make bin-x86-64-efi/80861502(computer vendor is 8086,device id is 1502).
> 3.insert usb drive and enter uefi shell.
> 4.fs0:
> 5.run above efi file.
> 6.All commands are Show the tip "No more network devices".
> ------------------
> Best Regards,
> Daniel Li
> ------------------ Original ------------------
> *From: * "Alexandre Rames"<arames at solarflare.com>;
> *Date: * Thu, Sep 13, 2012 06:15 PM
> *To: * "ipxe-devel"<ipxe-devel at lists.ipxe.org>;
> *Subject: * [ipxe-devel] UEFI SCT patch
> Hello,
> I recently started working on our UEFI driver, and some of my changes
> may be useful for iPXE upstream.
> So here is a first patch dealing with NIC independent code. Can you have
> a look and let me know if it needs some modifications.
> It includes:
>   - changes to be more UEFI compliant and pass SCT tests (most changes
> in efi_snp.c)
>   - initial support for the driver health protocol
>   - initial support for the firmware management protocol
> You'll probably want to verify the additional checks for UEFI versions:
>   - I added the DRIVER_EFI_SUPPORTED_VERSION protocol, as required by
> the UEFI spec.
> " Provides information about the version of the EFI specification that a
> driver is following. This
> protocol is required for EFI drivers that are on PCI and other plug in
> cards. "
> - In efi_init.c I added a check for a minimal version of UEFI required
> to use the driver. I am not sure you want to keep that.
> Alexandre

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ipxe.org/pipermail/ipxe-devel/attachments/20120913/f722fd34/attachment.htm>

More information about the ipxe-devel mailing list