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