On Thu, Aug 18, 2005 at 10:48:15AM -0700, Michael Chan wrote: > Grant, Please see if this patch fixes the problem.
It does! :^) > It is for the latest tg3 in 2.6.13-rc. I applied it to tg3 v3.28 because the box happened to have a working 2.6.12 kernel and v3.28 compiled without pci_ids.h update. I'll pull down a 2.6.13-rc kernel and try it again but am convinced this solves the problem. > [TG3]: Fix SerDes detection > > A problem was reported by Grant Grundler on an HP rx8620 system where > the copper NIC was detected as SerDes. Regular add-on HP NICs have correct bootcode. The patch description should indicate which NIC has broken bootcode: Tigon3 [partno(A7109-6) rev 0105 PHY(5701)] (PCI:33MHz:64-bit) A7109-60001 is also known as "IOX Core LAN". (I noticed lspci -v doesn't call it that and I'll have to investigate if 0x1300 SSID was used for several different LAN cards.) > In this case, the eeprom had the > SerDes bit mistakenly set, causing the driver to detect that it was > SerDes. May I suggest a clearer statement? The "IOX Core LAN" eeprom incorrectly set the "PHY_TYPE_FIBER" bit in the NIC_SRAM_DATA_CFG value leading tg3 to treat the NIC as if it had SerDes Phy. > This patch will override the SerDes bit in the eeprom if a valid PHY ID ...override the PHY_TYPE_FIBER bit if a valid PHY ID... > is read from the MII registers on older 570x chips where the MII > interface is not used on SerDes chips. On newer chips such as the 5780 > that use MII for both copper and SerDes, SerDes detection must rely on > the eeprom. > > This patch will make the SerDes detection identical to versions 3.25 and > older. Acked-by: Grant Grundler <[EMAIL PROTECTED]> thanks, grant > diff -urp a/drivers/net/tg3.c b/drivers/net/tg3.c > --- a/drivers/net/tg3.c 2005-08-18 09:29:53.093304976 -0700 > +++ b/drivers/net/tg3.c 2005-08-18 09:33:03.123416008 -0700 > @@ -8970,6 +8970,8 @@ static int __devinit tg3_phy_probe(struc > tp->phy_id = hw_phy_id; > if (hw_phy_id_masked == PHY_ID_BCM8002) > tp->tg3_flags2 |= TG3_FLG2_PHY_SERDES; > + else > + tp->tg3_flags2 &= ~TG3_FLG2_PHY_SERDES; > } else { > if (tp->phy_id != PHY_ID_INVALID) { > /* Do nothing, phy ID already set up in - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html