The bnx2 driver is for Broadcom's NetXtreme II (1G, not 10G) series of NICs.
I have confirmed the following cards are working:
The git repository is at: https://git.ipxe.org/people/dewyatt/ipxe.git 5)
My current test NIC is an 39y6070.
My development machine is running Ubuntu and is connected to my test machine via a null modem cable. I use GtkTerm as a serial terminal.
I found it very helpful to wire the power button of my test machine up to the top of my desk. I used some spare wire, a couple female jumper wires (connected to the header on the motherboard), and a pushbutton I desoldered from an old cell phone. This way, I can power cycle the test machine by pushing a button a couple inches from my mouse.
The NetXtreme II series of cards require driver-loaded proprietary firmware to function.
The current Linux bnx2 driver uses two separate firmware files 6), one for the RV2P firmware and one for the MIPS firmware.
The MIPS firmware file contains 5 different firmwares, each for a different CPU (there are 6 total 32-bit MIPS CPUs in a bnx2 NIC).
You can use the fw_info tool to print information about the firmware files. Here's an example:
[daniel@daniel-pc gsoc]$ ./fw_info bnx2_bnx2-mips-06-6.2.3.fw MIPS firmware COM (Completion Processor): start addr: 0x08000118 .text: addr : 0x08000000 len : 0x00004A68 offset: 0x000000C8 .data: addr : 0x00000000 len : 0x00000000 offset: 0x00000000 .rodata: addr : 0x08004A68 len : 0x00000014 offset: 0x00004B30 ...
You can use the fw_elf tool to extract MIPS firmware into a standard ELF to ease disassembly.