Broadcom NIC stays down in iPXE

broadcomipxepxe-bootstorage-area-network

I'm repurposing some old servers as budget compute farm diskless nodes and am trying to get iPXE to do iSCSI boot on an HP DL145 G3 which has an embedded Broadcom NetXtreme 5715 dual-ported NIC.

After too many headaches with other solutions I decided to give iPXE a try, first by booting it from a DVD. (Evnetually I would want to PXE chain or use USB keys but I wanted to keep it simple first.) I'm using iPXE 1.0.0+ (b757) which I downloaded from ipxe.org just today as an ISO.

I get to the iPXE prompt, but when I try to use dhcp net0 or dhcp net1 to get IP addresses, these commands fail:

Waiting for link-up on net0... failed: Down (http://ipxe.org/38086101)
Could not configure net0: Down (http://ipxe.org/38086101)

The referenced page indicates this error corresponds to media being unplugged etc., but both ports are plugged into a switch and in fact connectivity is fine if I boot into a locally installed OS.

I've tried using ifopen to try to manually open the links but the issue remains. If I use ifstat, I get output such as:

net0: 00:18:71:xx:xx:xx using 14e4-1678 on PCI08:04.0 (closed)
  [Link:down, TX:0 TXE:0 RX:0 RXE:0]
  [Link status: Down (http://ipxe.org/38086101)]
net1: 00:18:71:xx:xx:xx using 14e4-1678 on PCI08:04.1 (open)
  [Link:down, TX:0 TXE:0 RX:0 RXE:0]
  [Link status: Down (http://ipxe.org/38086101)]

There are no interesting BIOS settings other than the integrated NIC's option ROM enable, which is enabled. The system BIOS appears to be the latest version, and I don't see any firmware update for the NICs on HP's site.

I have also tried the same iPXE disc in another system (a desktop computer) and it raises the link fine.

As far as I can tell this is the latest version of iPXE. I'm guessing maybe iPXE's kernel drivers are not dealing with this particular model NIC correctly. (I've confirmed the PCI identifier displayed is correct for this model but I don't know if there is a driver specifically for it.)

I've considered that chain booting might bypass the issue by going through UNDI, but I'm scared to add more complexity to a setup that already is not working!

Anything I may be missing here, or any other ideas?

Best Answer

You're using the tg3 driver, and it is known to have some issues on certain models of HP hardware. You might have luck if you apply the patches mentioned in this mailing-list thread:

http://lists.ipxe.org/pipermail/ipxe-devel/2012-August/001718.html

You might also get it to work by using undionly.kpxe to avoid using an iPXE-native driver.

I also want to mention that it has been reported in the past that the tg3 driver had problems to get linkup when using gigabit, but it worked on a 100Mbit switch. You might like to try this out just to confirm.