cvs commit: src/sys/dev/fxp if_fxp.c

Andre Albsmeier andre.albsmeier at siemens.com
Fri Dec 31 07:39:38 PST 2004


This broke my two 10MBit Intel NICs...

On Tue, 28-Dec-2004 at 22:49:24 +0000, Maxime Henrion wrote:
> mux         2004-12-28 22:49:24 UTC
> 
>   FreeBSD src repository
> 
>   Modified files:        (Branch: RELENG_4)
>     sys/dev/fxp          if_fxp.c 
>   Log:
>   Merge if_fxp.c:1.220 from HEAD to RELENG_4:
>   
>     date: 2004/12/20 10:18:21;  author: mux;  state: Exp;  lines: +2 -2
>     Only try to use the 82503 serial interface for the 82557 chipsets.  The
>     datasheet says it is only valid for such chipsets and shouldn't be used
>     with others.  This fixes some 82559 based cards which otherwise only
>     work at 10Mbit.
>   
>     MFC after:      5 days
>     Tested by:      krion
>   
>   Revision    Changes    Path
>   1.110.2.35  +2 -2      src/sys/dev/fxp/if_fxp.c

This one works (100MBit):

fxp0: <Intel 82550 Pro/100 Ethernet> port 0xd000-0xd03f mem 0xe1000000-0xe101ffff,0xe1800000-0xe1800fff irq 12 at device 10.0 on pci0
fxp0: Ethernet address 00:02:b3:1f:25:dc
inphy0: <i82555 10/100 media interface> on miibus0
inphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto


The first broken one:

fxp1: <Intel 82557 Pro/100 Ethernet> port 0xb800-0xb81f mem 0xe0800000-0xe08fffff,0xe3800000-0xe3800fff irq 10 at device 11.0 on pci0
fxp1: Ethernet address 00:a0:c9:a9:1d:06
fxp1: MII without any PHY!
device_probe_and_attach: fxp1 attach returned 6


The other broken one (It got named fxp1 as well -- probably
because the first one couldn't be attached before)

fxp1: <Intel 82557 Pro/100 Ethernet> port 0xb400-0xb41f mem 0xe0000000-0xe00fffff,0xe2800000-0xe2800fff irq 11 at device 12.0 on pci0
fxp1: Ethernet address 00:a0:c9:a9:1d:23
fxp1: MII without any PHY!
device_probe_and_attach: fxp1 attach returned 6


They have an INTEL S82557 and a SEEQ NQ80C24 chip on them.

I could make them work again with this patch:


--- if_fxp.c.ORI	Fri Dec 31 12:03:42 2004
+++ if_fxp.c	Fri Dec 31 15:24:01 2004
@@ -511,7 +511,7 @@
 	 * Determine whether we must use the 503 serial interface.
 	 */
 	fxp_read_eeprom(sc, &data, 6, 1);
-	if (sc->revision == FXP_REV_82557 && (data & FXP_PHY_DEVICE_MASK) != 0
+	if ((sc->revision == 0 || sc->revision == FXP_REV_82557) && (data & FXP_PHY_DEVICE_MASK) != 0
 	    && (data & FXP_PHY_SERIAL_ONLY))
 		sc->flags |= FXP_FLAG_SERIAL_MEDIA;
 


Hope this gets fixed properly. If you want diagnostics data, tell me.

	-Andre



More information about the cvs-all mailing list