Date: Thu, 24 Jan 2002 13:19:51 -0800 (PST) From: Naohiko Tsuji <naohikotsuji@ybb.ne.jp> To: freebsd-gnats-submit@FreeBSD.org Subject: kern/34236: ADMtek AN98x, enable automatically TX underrun recovery Message-ID: <200201242119.g0OLJpm60168@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 34236
>Category: kern
>Synopsis: ADMtek AN98x, enable automatically TX underrun recovery
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Thu Jan 24 13:20:00 PST 2002
>Closed-Date:
>Last-Modified:
>Originator: Naohiko Tsuji
>Release: 4.5-RC
>Organization:
>Environment:
FreeBSD 4.5-RC i386
>Description:
dc0: TX underrun -- increasing TX threshold
...
dc0: TX underrun -- increasing TX threshold
...
dc0: TX underrun -- using store and forward mode
...
Working heavily.
I think many interrupts have occurred.
M/B: ASUS P2B-B (440BX)
CPU: Celeron 300A
NIC: Planex FNW-9802-T (ADMtek 983)
or
NIC: Planex FNW-9800-T (ADMtek 981)
>How-To-Repeat:
>Fix:
AN983 PCI/mini-PCI 10/100 Fast Ethernet Controller With Integrated PHY
Revision 1.3 June 2000
AN983B/AN983BL PCI/mini-PCI-to-Ethernet LAN Controller
Revision 1.3 Sep. 2001
7. Registers and Descriptors Description
7.2 PCI Control/Status registers
7.2.2 Control/Status registers description
AN985 CardBus 10/100 Fast Ethernet Controller With Integrated PHY
Revision 1.2 May 2000
7. Registers and Descriptors Description
7.2 PCI/CardBus Control/Status registers
7.2.2 Control/Status registers descripti
AN985B CardBus-to-Ethernet LAN Controller
Revision 1.5 Oct. 2001
PCI / CARDBUS CONTROL/STATUS REGISTERS
CONTROL/STATUS REGISTER DESCRIPTION
CSR18(offset = 88h), CR - Command Register, bit31 to bit16 automatically recall from EEPROM
Bit Name Descriptions Default Val RW Type
0 ATUR 1: enable automatically transmit-underrun 0 R/W
recovery.
== RELENG_4 ==
--- sys/pci/if_dcreg.h.orig
+++ sys/pci/if_dcreg.h
@@ -498,6 +498,7 @@
* ADMtek specific registers and constants for the AL981 and AN985.
* The AN985 doesn't use the magic PHY registers.
*/
+#define DC_AL_CR 0x88 /* Command register */
#define DC_AL_PAR0 0xA4 /* station address */
#define DC_AL_PAR1 0xA8 /* station address */
#define DC_AL_MAR0 0xAC /* multicast hash filter */
@@ -512,6 +513,7 @@
#define DC_ADMTEK_PHYADDR 0x1
#define DC_AL_EE_NODEADDR 4
+#define DC_AL_CR_ATUR 0x00000001 /* Enable automatically TX underrun recovery */
/* End of ADMtek specific registers */
/*
--- sys/pci/if_dc.c.orig
+++ sys/pci/if_dc.c
@@ -1342,6 +1342,9 @@
}
}
+ if (DC_IS_ADMTEK(sc))
+ DC_SETBIT(sc, DC_AL_CR, DC_AL_CR_ATUR);
+
if ((media & IFM_GMASK) == IFM_FDX) {
DC_SETBIT(sc, DC_NETCFG, DC_NETCFG_FULLDUPLEX);
if (sc->dc_pmode == DC_PMODE_SYM && DC_IS_PNIC(sc))
Obtained from Linux 2.4.17
drivers/net/tulip/tulip_core.c
>Release-Note:
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200201242119.g0OLJpm60168>
