NIC not working after ACPI PXE boot - solution!
Some engineers here at Dell have developed a solution to the issue where the on-board NIC is unresponsive to Linux if first EFI tried to use it. We're working through the licensing issues to make the code GPL, but until then, I can provide a simple functional description, and if someone wished to write code and add it to the kernel, great! :)
The basic steps are:
use BS->LocateHandle(SimpleNetworkProtocol) to get the number of NICs in the system.
for each handle returned:
use BS->HandleProtocol() get EFI_SIMPLE_NETWORK->Mode->State. if State != shutdown call EFI_SIMPLE_NETWORK->Shutdown() on the NIC call EFI_SIMPLE_NETWORK->Stop() on the NIC
This obviously needs to be done prior to loading network drivers, either in the kernel or in eli/lilo.
Thanks,
Matt Domsch
Dell Enterprise Systems Group
Linux Development Team
Matt,
This very same fix was developed here at Intel and integrated into the BigSur BIOS a few weeks back. The next released version of BigSur FW will include this fix. I believe this fix will get pushed into standard releases of EFI, so all EFI based FW should get this problem solved in time. This is pretty much a bug in EFI, so I don't think a workaround needs to go into the kernel permanently. Thanks,
Chris
-----Original Message-----
From: [email protected] [mailto:[email protected]]
Sent: Thursday, November 30, 2000 8:02 AM
To: [email protected]
Subject: [Linux-ia64] NIC not working after ACPI PXE boot - solution!
Some engineers here at Dell have developed a solution to the issue where the on-board NIC is unresponsive to Linux if first EFI tried to use it. We're working through the licensing issues to make the code GPL, but until then, I can provide a simple functional description, and if someone wished to write code and add it to the kernel, great! :)
The basic steps are:
use BS->LocateHandle(SimpleNetworkProtocol) to get the number of NICs in the system.
for each handle returned:
use BS->HandleProtocol() get EFI_SIMPLE_NETWORK->Mode->State. if State != shutdown call EFI_SIMPLE_NETWORK->Shutdown() on the NIC call EFI_SIMPLE_NETWORK->Stop() on the NIC
This obviously needs to be done prior to loading network drivers, either in the kernel or in eli/lilo.
Thanks,
Matt Domsch
Dell Enterprise Systems Group
Linux Development Team
_______________________________________________
Linux-IA64 mailing list
[email protected]
http://lists.linuxia64.org/lists/listinfo/linux-ia64
Hi,
I have thrown together a quick and dirty efi application to shutdown any network adapters which are not already in a stopped state. The source code and Makefile are attached. We intend to add the workaround as a patch to our lilo package as well.
Signature · 3 lines
Mike Madore Software Engineer TurboLinux, Inc.
Quoted 30 lines · On Thu, Nov 30, 2000 at 10:02:19AM -0600, [email protected] wrote:
Some engineers here at Dell have developed a solution to the issue where the on-board NIC is unresponsive to Linux if first EFI tried to use it. We're working through the licensing issues to make the code GPL, but until then, I can provide a simple functional description, and if someone wished to write code and add it to the kernel, great! :)
The basic steps are:
useBS->LocateHandle(SimpleNetworkProtocol)to get the number of NICs in the system.
for each handle returned:use BS->HandleProtocol() get EFI_SIMPLE_NETWORK->Mode->State. if State != shutdown call EFI_SIMPLE_NETWORK->Shutdown() on the NIC call EFI_SIMPLE_NETWORK->Stop() on the NICThis obviously needs to be done prior to loading network drivers, either in the kernel or in eli/lilo.
Thanks,
Matt Domsch
Dell Enterprise Systems Group
Linux Development Team_______________________________________________
Linux-IA64 mailing list
[email protected]
http://lists.linuxia64.org/lists/listinfo/linux-ia64