[ipxe-devel] can snponly.efi run without NII protocol installed?

丰立波 lbfeng at zd-tech.com.cn
Tue Aug 25 06:35:41 UTC 2020


Hello, Michael,


MAC(3C6A2CB0886A, 0x1) is a hardware device, but not on a PCIe bus. Can iPxe install its own SNP protocol on this kind of device? or iPxe just use the original SNP protocol on the hardware device?


Thanks


--

Best Regards


Feng Libo
ZD Technology (Beijing) Co., Ltd



发件人:"Michael Brown" <mcb30 at ipxe.org>
发送日期:2020-08-24 18:52:45
收件人:"丰立波" <lbfeng at zd-tech.com.cn>,"Christian Nilsson" <nikize at gmail.com>
抄送人:iPXE <ipxe-devel at lists.ipxe.org>
主题:Re: [ipxe-devel] can snponly.efi run without NII protocol installed?>On 20/08/2020 10:28, 丰立波 wrote:
>> I get a screenshot for debugging:
>> I think iPxe tried to replace the SNP protocol of my UEFI land with its 
>> own SNP driver(the driver code is in the directory of 
>> ipxe/src/drivers/net/efi/), first ipxe disconnect the my uefi driver, 
>> then connect its own driver, but at this point, connection failed.
>> 
>> There are two questions:
>> 1. why the new connection failed?
>> 2. Why iPXE try to replace my uefi driver, could iPxe just use the 
>> original driver? Thanks.
>
>iPXE needs to disconnect other drivers (e.g. MnpDxe) from the SNP 
>handle, so that it can have exclusive access to the network device.
>
> From the screenshot it looks as though your custom UEFI driver stack 
>has the incorrect hierarchy of handles.  My guess is that you may have 
>some platform-specific driver providing the MAC(3C6A2CB0866A,0x1) handle 
>as though it were a hardware device, and that your SNP driver then binds 
>to this existing handle and installs EFI_SIMPLE_NETWORK_PROTOCOL as an 
>additional protocol.
>
>This would be incorrect behaviour: the SNP driver should bind to a 
>hardware device handle and then install EFI_SIMPLE_NETWORK_PROTOCOL onto 
>a new handle.  You can see this in action on a standard x86 UEFI system: 
>the hardware device handle will be e.g.
>
>   PciRoot(0x0)/Pci(0x3,0x0)
>
>and the SNP device handle will then be e.g.
>
>   PciRoot(0x0)/Pci(0x3,0x0)/MAC(525400123456,0x1).
>
>Try building with DEBUG=efi_driver:3 (which will dump additional 
>information about the handle before and after disconnection).
>
>Michael
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ipxe.org/pipermail/ipxe-devel/attachments/20200825/841ceda2/attachment-0001.htm>


More information about the ipxe-devel mailing list