[ipxe-devel] snponly.efi: unable to open SNP device

Michael Brown mcb30 at ipxe.org
Sun Aug 20 21:28:16 UTC 2017


On 20/08/17 21:25, Heinrich Schuchardt wrote:
> U-Boot exposes the Simple Network Protocol in the UEFI interface but no
> underlying PCI devices.
> 
> As shown in the appended log the start routine of the binding protocol
> gives up after finding no PCI device related to the SNP service
> (EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_GUID_31 and
> EFI_PCI_IO_PROTOCOL_GUID are not available).
> 
> Is there no SNP-only driver available in iPXE?
> I thought this is what snponly.efi is made for.

Yes, snponly.efi (or snp.efi) will happily drive non-PCI SNP devices.

The problem is not due to the SNP device being a non-PCI device.  The 
iPXE snpnet driver will try to get information about the underlying 
hardware device (by calling efi_device_info() in snpnet_start()), but 
any failures here will be ignored.  (The practical effect of failures is 
just that hardware-specific settings such as ${net0/busloc} will not 
contain meaningful values.)

The actual problem preventing the snpnet driver from working occurs on 
line 354 of your log:

   SNP MAC(001e0633bcbf,0x0) has invalid hardware address length 0

i.e. the SNP exposed by U-Boot has

   Snp->Mode->HwAddressSize == 0

Change your SNP to report HwAddressSize = 6 (i.e. a standard Ethernet 
MAC address length), and it should work as expected.

Michael



More information about the ipxe-devel mailing list