Quinn, In tg3.h, search for KNOWN_PHY_ID, and add "(X) == PHY_ID_BCM5755" to the list of IDs there.
The Linux driver for tg3 has a number of workarounds that specifically check for the 5755 (or later) and behave a little differently if those chips are found. It is quite possible that the gPXE driver will not work correctly with your card, even after you make the change that I suggest above. Hope this helps, Geoff ________________________________ From: gpxe-devel-boun...@etherboot.org [mailto:gpxe-devel-boun...@etherboot.org] On Behalf Of Quinn Plattel Sent: Monday, October 11, 2010 3:30 AM To: gpxe-devel@etherboot.org Subject: [gPXE-devel] Attempting to add support for Broadcom BCM5755M (14e4:1673) ethernet adapter Hi, I am attempting to add support to gpxe the Broadcom BCM5755M (14e4:1673) ethernet adapter. I have confirmed that the adapter works under linux with kernel 2.6.32. Here is some of my attempts: I first identified the pci vendor and device id via linux's "lspci -n" command which gave me 14e4:1673 I then added it to tg3.c file: ------------------------- @@ -3400,6 +3402,7 @@ PCI_ROM(0x14e4, 0x165e, "tg3-5705M_2", "Broadcom Tigon 3 5705M_2", 0), PCI_ROM(0x14e4, 0x1677, "tg3-5751", "Broadcom Tigon 3 5751", 0), PCI_ROM(0x14e4, 0x167a, "tg3-5754", "Broadcom Tigon 3 5754", 0), +PCI_ROM(0x14e4, 0x1673, "tg3-5755", "Broadcom Tigon 3 5755", 0), PCI_ROM(0x14e4, 0x1693, "tg3-5787", "Broadcom Tigon 3 5787", 0), PCI_ROM(0x14e4, 0x1696, "tg3-5782", "Broadcom Tigon 3 5782", 0), PCI_ROM(0x14e4, 0x169a, "tg3-5786", "Broadcom Tigon 3 5786", 0), -------------------- This enabled gpxe to attempt to initialize the adapter instead of ignoring it. But it gives this error so far: ----------------- phy probe failed, err -741097531 Problem fetching invariants of chip, aborting. ----------------- Ok, then I though, the phy id must not match, so what about forcing it? I added the following to tg3.c to identify the phy id: ------------------------ @@ -2543,6 +2543,8 @@ hw_phy_id_masked = hw_phy_id & PHY_ID_MASK; + printf("phy id: %X\n", hw_phy_id); + if (!err && KNOWN_PHY_ID(hw_phy_id_masked)) { tp->phy_id = hw_phy_id; } else { -------------------------- This gave me 0xbc050cc0, so I added it to tg3.h: -------------------------- @@ -2038,6 +2038,7 @@ #define PHY_ID_BCM5704 0x60008190 #define PHY_ID_BCM5705 0x600081a0 #define PHY_ID_BCM5750 0x60008180 +#define PHY_ID_BCM5755 0xbc050cc0 #define PHY_ID_BCM5787 0xbc050ce0 #define PHY_ID_BCM8002 0x60010140 #define PHY_ID_BCM5751 0x00206180 -------------------------- Unfortunately, this is as far as a i got. The error messages is still the same. I haven't been able to figure out what to do next. I have tried to enable debugging by "make DEBUG=tg3" and also enabling the serial console in console.h but the I just get a bunch of "?" instead of proper strings on the serial port and I did configure my terminal emulator to 9600n81. Any clues there? The terminal works fine with picocom under linux with the same serial settings. I feel I am so close in getting this card to work because the tg3 code is there but it just needs to identify and use the hardware. Just so you know I have also downloaded the latest git release, but unfortunately, there is no support for BCM5755M yet. I found this page http://www.broadcom.com/support/ethernet_nic/determine_driver.php which helped me identify the adapter as a model type NetXtreme Desktop/Mobile adapter. There is already support in gpxe for that type adapter such as the BCM5751M. Any suggestions? Quinn
_______________________________________________ gPXE-devel mailing list gPXE-devel@etherboot.org http://etherboot.org/mailman/listinfo/gpxe-devel