iPXE discussion forum
Some question about the net driver - Printable Version

+- iPXE discussion forum (https://forum.ipxe.org)
+-- Forum: iPXE user forums (/forumdisplay.php?fid=1)
+--- Forum: General (/forumdisplay.php?fid=2)
+--- Thread: Some question about the net driver (/showthread.php?tid=17253)



Some question about the net driver - yiya1989 - 2018-12-28 14:45

Relevant thread for http://forum.ipxe.org/showthread.php?tid=8215

I have encountered the same problems when I used EFI mode. Then I have readed the ipxe source code and did some test, then I found the ipxe has this driver loading order: the spefic native drivers, the universal NII driver, the universal SNP driver.

Due to the ipxe doesn't has X710 native driver, it chosed the NII driver and the it works. But after the later test, I found that the download is very slow. It will take 5min to download one linux kernel which is olny 10M. The worse is that it will fail when the pxe net occur a lot of other data packages.

So I modifyed the code and just force ipxe to skip the NII driver, then the ipxe falls to using SNP. It works! I have contrasted the GRUB2's source code, I found it using SNP(simple network protocol).

So my question is why the IPXE doesn't use NII firstly rather than SNP?


RE: Some question about the net driver - NiKiZe - 2018-12-29 12:52

iPXE has since some time native support for X710
But there seems to be some issues with your hangs.

Which build are you using (ipxe.efi or snp.efi) and have you tried intelx.efi builds instead?


RE: Some question about the net driver - yiya1989 - 2019-04-13 02:31

(2018-12-29 12:52)NiKiZe Wrote:  iPXE has since some time native support for X710
But there seems to be some issues with your hangs.

Which build are you using (ipxe.efi or snp.efi) and have you tried intelx.efi builds instead?

I have tried (ipxe.efi or snp.efi) , the NII driver both have problems. I have not tried intel.efi. Now i have modify the source code to disable the NII drvier and use SNP directly. It works well just for now.


ipxe-master\src\drivers\net\efi\snponly.c
static int niionly_supported ( EFI_HANDLE device ) {
return -1
return chained_supported ( device, &chained_nii );
}


ipxe-master\src\drivers\net\efi\snp.c
static int snp_supported ( EFI_HANDLE device ) {
EFI_BOOT_SERVICES *bs = efi_systab->BootServices;
EFI_STATUS efirc;
return -1
.....
}