On 06/30/16 14:37, Laszlo Ersek wrote: > In edk2, there are several drivers that associate HII forms (and > corresponding config access protocol instances) with each individual > network device. (In this context, "network device" means the EFI handle on > which the SNP protocol is installed, and on which the device path ending > with the MAC() node is installed also.) Such edk2 drivers are, for > example: Ip4Dxe, HttpBootDxe, VlanConfigDxe. > > In UEFI, any given handle can carry at most one instance of a specific > protocol (see it e.g. in the specification of the > InstallProtocolInterface() boot service). This implies that the class of > drivers mentioned above can't install their EFI_HII_CONFIG_ACCESS_PROTOCOL > instances on the SNP handle directly -- they would conflict with each > other. Accordingly, each of those edk2 drivers creates a "private" child > handle under the SNP handle, and installs its config access protocol (and > corresponding HII package list) on its child handle. > > The device path for the child handle is traditionally derived by appending > a Hardware Vendor Device Path node after the MAC() node. The VenHw() nodes > in question consist of a GUID (by definition), and no trailing data (by > choice). The purpose of these VenHw() nodes is only that all the child > nodes can be uniquely identified by device path. > > At the moment iPXE does not follow this pattern. It doesn't run into a > conflict when it installs its EFI_HII_CONFIG_ACCESS_PROTOCOL directly on > the SNP handle, but that's only because iPXE is the sole driver not > following the pattern. This behavior seems risky (one might call it a > "latent bug"); better align iPXE with the edk2 custom. > > Cc: Michael Brown <mc...@ipxe.org> > Cc: Gary Lin <g...@suse.com> > Cc: Ladi Prosek <lpro...@redhat.com> > Ref: http://thread.gmane.org/gmane.comp.bios.edk2.devel/13494
Sorry, the Ref should have been: http://thread.gmane.org/gmane.comp.bios.edk2.devel/13494/focus=13532 or it can be dropped altogether. Thanks Laszlo _______________________________________________ ipxe-devel mailing list ipxe-devel@lists.ipxe.org https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel