[gPXE-devel] Attempting to add support for Broadcom BCM5755M (14e4:1673) ethernet adapter

Quinn Plattel qiet72 at gmail.com
Tue Oct 12 09:36:24 EDT 2010


Hi,

Looking good so far.  It can do the following:
- get the correct mac address
- show the correct link speed
- identify it as a PCI express adapter
- get an ip address

Not working yet though.  Here is the screen output:
Tigon3 [partno(none) rev a002 PHY(unknown)] (PCIX:100MHz:32-bit)
Link is up at 1000 Mbps, full duplex.
WARNING: Using legacy NIC wrapper on 00:1c:23:26:82:e7

gPXE 1.0.1 -- Open Source Boot Firmware -- http://etherboot.org
Features: AoE HTTP iSCSI DNS TFTP bzImage COMBOOT ELF Multiboot PXE PXEXT

DHCP (net0 00:1c:23:26:82:e7)... ok
tftp://server.net/file.gpxe./menu.c32..transmit timed out
tg3_stop_block timed out, ofs=0x4c00 enable_bit=002
Firmware will not restart magic=0x4b657654
Firmware will not restart magic=0x4b657654

and so on....

I will try and look at the linux kernel sources of tg3.c and see if I can
find more info on the 5755.
Any other ideas would be helpful.

Quinn


On Mon, Oct 11, 2010 at 4:54 PM, Geoff Lywood <glywood at vmware.com> wrote:

>  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-bounces at etherboot.org [mailto:
> gpxe-devel-bounces at etherboot.org] *On Behalf Of *Quinn Plattel
> *Sent:* Monday, October 11, 2010 3:30 AM
> *To:* gpxe-devel at 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
>
>


-- 
Best regards/Med venlig hilsen,
Quinn Plattel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://etherboot.org/pipermail/gpxe-devel/attachments/20101012/69f3f752/attachment-0001.html 


More information about the gPXE-devel mailing list