[ipxe-devel] [PATCH 1/1] efi: reimplement efi_locate_device

Heinrich Schuchardt xypron.glpk at gmx.de
Wed Jul 12 20:35:39 UTC 2017

On 07/12/2017 08:34 PM, Michael Brown wrote:
> On 12/07/17 19:20, Heinrich Schuchardt wrote:
>>> Not quite.  It's supposed to find the closest SNP-supporting parent of
>>> the specified device.  The idea is not just to find any SNP, but to find
>>> the SNP from which iPXE itself was loaded.  This makes a difference if
>>> the system has more than one SNP device.
>> But iPXE is not loaded via SNP but from a block device.
>> Why do you expect to find any parent supporting SNP?
> That's the entire point of the snponly.efi build: to automatically
> identify and use the network interface from which iPXE itself was loaded
> (analogous to undionly.kpxe for a BIOS environment).
> You probably want to build and use snp.efi instead.  That will attach to
> all existing SNP devices.
> Michael
Thank you for your advice. I will give snp.efi a try.

Please, reword http://ipxe.org/appnote/buildtargets in way that a newbie
can pick up the meaning. Some terms like NII are not easily found by
search engines. I suggest:

* Target snponly.efi assumes that iPXE was loaded via a network
interface card (NIC). This NIC or a parent in the device tree supports
either the the Simple Network Protocol (SNP) or the Network Interface
Identifier Protocol (NII) in conjunction with the Universal Network
Driver Interface (UNDI). The NIC used for loading is passed as system
handle to the EFI entry point. IPXE then activates only this specific
network interface card it was chained from.

* Target snp.efi does not make any assumptions about the device it was
loaded from but activates all network interface cards that support
either the Simple Network Protocol (SNP) or the Network Interface
Identifier Protocol (NII).

Best regards


More information about the ipxe-devel mailing list