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>