Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 29 Jul 1998 15:16:32 +0900 (JST)
From:      HAMADA Naoki <hamada@astec.co.jp>
To:        wpaul@skynet.ctr.columbia.edu
Cc:        hackers@FreeBSD.ORG
Subject:   Re: Call for testers for 3c905B driver
Message-ID:  <199807290616.PAA13818@stone.astec.co.jp>
In-Reply-To: Bill Paul's message of "Tue, 28 Jul 1998 16:35:53 -0400 (EDT)" <199807282035.QAA27573@skynet.ctr.columbia.edu>
References:  <199807282035.QAA27573@skynet.ctr.columbia.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
Bill Paul wrote:
>I would appreciate it if people with 3c900, 3c905 and 3c905B hardware
>could test this driver for me. I'm particularly interested to hear it
>it works correctly with Fast Etherlink XL boards (3c905 10/100 cards).
>These cards use a NatSemi 10/100 PHY via the MII interface: I don't
>have one of these to test, so I can't be sure the MII support will
>work correctly.

I tried my 3C905 (not 3C905B) with new xl driver. It works almost
well, but the auto negotiation (under 10M and half-duplex) invoked by 
'ifconfig xl0 media autoselect' sometimes fails.

xl1: autoneg not complete, waiting a little longer...
xl1: autoneg not complete, waiting a little longer...
xl1: autoneg not complete, waiting a little longer...
xl1: autoneg not complete, waiting a little longer...
xl1: autoneg not complete, waiting a little longer...
xl1: autoneg not complete, waiting a little longer...
xl1: autoneg not complete, waiting a little longer...
xl1: autoneg not complete, waiting a little longer...
xl1: autoneg not complete, waiting a little longer...
xl1: autoneg not complete, no carrier

After setting 'ifconfig xl0 media 10BaseT/UTP' I tried the auto
negotiation again, and it returns a successful message.

xl1: selecting MII, 10Mbps, half duplex
xl1: autoneg complete, link status good (half-duplex, 10Mbps)

But, alas, the network is still dead. I have to explicitly specify the
media to enable the network. I am going to look into this problem.

By the way, here is my patch for its multicast support, which is not
tested yet.

- nao

--- if_xl.c	Wed Jul 29 13:38:04 1998
+++ if_xl.c.new	Wed Jul 29 14:58:23 1998
@@ -207,6 +207,7 @@
 static int xl_mii_writereg	__P((struct xl_softc *, struct xl_mii_frame *));
 static u_int16_t xl_phy_readreg	__P((struct xl_softc *, int));
 static void xl_phy_writereg	__P((struct xl_softc *, u_int16_t, u_int16_t));
+static void xl_testpacket	__P((struct xl_softc *));
 
 static void xl_autoneg_xmit	__P((struct xl_softc *));
 static void xl_autoneg_mii	__P((struct xl_softc *, int, int));
@@ -581,6 +582,13 @@
 	XL_SEL_WIN(5);
 	rxfilt = CSR_READ_1(sc, XL_W5_RX_FILTER);
 
+	if (sc->arpcom.ac_multicnt == 0) {
+		/* disable multicast */
+		rxfilt &= ~(XL_RXFILTER_ALLMULTI | XL_RXFILTER_MULTIHASH);
+		CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_RX_SET_FILT|rxfilt);
+		return;
+	}
+
 	if (sc->arpcom.ac_multicnt > 64 || ifp->if_flags & IFF_ALLMULTI ||
 						sc->xl_type == XL_TYPE_90X) {
 		rxfilt |= XL_RXFILTER_ALLMULTI;
@@ -591,6 +599,7 @@
 			CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_RX_SET_HASH|i);
 		/* now program new ones */
 		rxfilt |= XL_RXFILTER_MULTIHASH;
+		rxfilt &= ~XL_RXFILTER_ALLMULTI;
 		ETHER_FIRST_MULTI(step, &sc->arpcom, enm);
 		while(enm != NULL) {
 			if (bcmp(enm->enm_addrlo, enm->enm_addrhi,

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199807290616.PAA13818>