From owner-freebsd-current Wed Sep 4 8: 2:40 2002 Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 76CB237B400 for ; Wed, 4 Sep 2002 08:02:35 -0700 (PDT) Received: from mail.imp.ch (mail.imp.ch [157.161.1.2]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7806343E72 for ; Wed, 4 Sep 2002 08:02:34 -0700 (PDT) (envelope-from mb@imp.ch) Received: from nbs.imp.ch (nbs.imp.ch [157.161.4.7]) by mail.imp.ch (8.12.3/8.12.3) with ESMTP id g84F2WO9067606 for ; Wed, 4 Sep 2002 17:02:33 +0200 (CEST) (envelope-from Martin.Blapp@imp.ch) Received: from levais.imp.ch (levais.imp.ch [157.161.4.66]) by nbs.imp.ch (8.12.3/8.12.3) with ESMTP id g84F2W75348459 for ; Wed, 4 Sep 2002 17:02:32 +0200 (MES) Date: Wed, 4 Sep 2002 17:07:48 +0200 (CEST) From: Martin Blapp To: Subject: Uncommitted dc0 fixes ... Message-ID: <20020904165819.R31964-100000@levais.imp.ch> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Hi all, Anybody who can, please commit these PR's. 1) dc driver uses wrong case to read MAC from eeprom. http://www.FreeBSD.org/cgi/query-pr.cgi?pr=kern/35482 2) Tulip ether card EN2242 (if_dc.c) use wrong multicast table http://www.FreeBSD.org/cgi/query-pr.cgi?pr=misc/32699 3) ADMtek AN98x, enable automatically TX underrun recovery Patch No3 fixes some part of link problem on EN2242 cards. I've tested this patch and it makes by laptop working again with cvsup. And this patch here together with patch III made the annoying messages (dc0: failed to force tx and rx to idle mode) go away. And I can use now my card without to replug the cable over again) --- /usr/src/sys/pci/if_dc.c Sun Jun 16 21:36:00 2002 +++ /usr/src/sys/pci/if_dc.c Wed Sep 4 16:57:23 2002 @@ -1338,17 +1362,21 @@ restart = 1; DC_CLRBIT(sc, DC_NETCFG, (DC_NETCFG_TX_ON|DC_NETCFG_RX_ON)); - for (i = 0; i < DC_TIMEOUT; i++) { - isr = CSR_READ_4(sc, DC_ISR); - if (isr & DC_ISR_TX_IDLE && - (isr & DC_ISR_RX_STATE) == DC_RXSTATE_STOPPED) - break; - DELAY(10); - } + if (DC_IS_INTEL(sc)) { + for (i = 0; i < DC_TIMEOUT; i++) { + isr = CSR_READ_4(sc, DC_ISR); + if (isr & DC_ISR_TX_IDLE && + (isr & DC_ISR_RX_STATE) + == DC_RXSTATE_STOPPED) + break; + DELAY(10); + } - if (i == DC_TIMEOUT) - printf("dc%d: failed to force tx and " - "rx to idle state\n", sc->dc_unit); + if (i == DC_TIMEOUT) { + printf("dc%d: failed to force tx and " + "rx to idle state\n", sc->dc_unit); + } + } } Martin Blapp, ------------------------------------------------------------------ ImproWare AG, UNIXSP & ISP, Zurlindenstrasse 29, 4133 Pratteln, CH Phone: +41 061 826 93 00: +41 61 826 93 01 PGP: PGP Fingerprint: B434 53FC C87C FE7B 0A18 B84C 8686 EF22 D300 551E ------------------------------------------------------------------ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message