<div style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial"><div>Hello, Michael,</div><div><br></div><div>Thank for the support.</div><div><br></div><div>I skip the bs->DisconnectController in the function of efi_driver_connect, and my all protocols installed on a NIC controller can be kept. When bs->ConnectController is called, there already exist the SNP protocol, a new SNP protocol can't be installed. by this way, my own SNP protocol can keep on and serve others.</div><div><br></div><div>Thanks </div><br><div style="position:relative;zoom:1">--<br><div>Best Regards</div><div><br></div><div>Feng Libo</div><div>ZD Technology (Beijing) Co., Ltd</div><div style="clear:both"></div></div><br><pre><br>发件人:"Michael Brown" <mcb30@ipxe.org>
发送日期:2020-08-25 21:27:11
收件人:"丰立波" <lbfeng@zd-tech.com.cn>
抄送人:"Christian Nilsson" <nikize@gmail.com>,iPXE <ipxe-devel@lists.ipxe.org>
主题:Re: [ipxe-devel] can snponly.efi run without NII protocol installed?>On 25/08/2020 07:35, 丰立波 wrote:
>> 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?
>
>As I stated in my previous message:
>
>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.
>
>Try building with DEBUG=efi_driver:3 (which will dump additional 
>information about the handle before and after disconnection).
>
>Michael
</pre></div>