From owner-freebsd-hackers Tue Jul 28 23:17:22 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id XAA19929 for freebsd-hackers-outgoing; Tue, 28 Jul 1998 23:17:22 -0700 (PDT) (envelope-from owner-freebsd-hackers@FreeBSD.ORG) Received: from tokyonet-entrance.astec.co.jp (tokyonet-entrance.astec.co.jp [202.239.16.2]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id XAA19922 for ; Tue, 28 Jul 1998 23:17:18 -0700 (PDT) (envelope-from hamada@astec.co.jp) Received: from amont.astec.co.jp (amont.astec.co.jp [172.20.10.1]) by tokyonet-entrance.astec.co.jp (8.9.1+3.0W/3.7W-astecMX2.3) with ESMTP id PAA07610; Wed, 29 Jul 1998 15:16:34 +0900 (JST) Received: from stone.astec.co.jp (stone.astec.co.jp [172.20.26.2]) by amont.astec.co.jp (8.7.6/3.6W-astecMX2.4) with ESMTP id PAA18988; Wed, 29 Jul 1998 15:16:33 +0900 (JST) Received: (from hamada@localhost) by stone.astec.co.jp (8.8.5/3.5W-solaris1-1.2) id PAA13818; Wed, 29 Jul 1998 15:16:32 +0900 (JST) Date: Wed, 29 Jul 1998 15:16:32 +0900 (JST) Message-Id: <199807290616.PAA13818@stone.astec.co.jp> From: HAMADA Naoki References: <199807282035.QAA27573@skynet.ctr.columbia.edu> To: wpaul@skynet.ctr.columbia.edu CC: hackers@FreeBSD.ORG In-reply-to: Bill Paul's message of "Tue, 28 Jul 1998 16:35:53 -0400 (EDT)" <199807282035.QAA27573@skynet.ctr.columbia.edu> Subject: Re: Call for testers for 3c905B driver Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG 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