Subject: kern/10198: tulip driver with MX98715A makes tons of receive errors
To: None <gnats-bugs@gnats.netbsd.org>
From: None <tsutsui@ceres.dti.ne.jp>
List: netbsd-bugs
Date: 05/25/2000 09:00:12
>Number: 10198
>Category: kern
>Synopsis: tulip driver with MX98715A makes tons of receive errors
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu May 25 09:01:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator: Izumi Tsutsui
>Release: NetBSD-current 20000521
>Organization:
Izumi Tsutsui Himeji City, Japan
>Environment:
System: NetBSD/macppc 1.4Y + MX98715A PCI Ethernet
>Description:
Tulip driver with Micronix MX98715A makes tons of receive errors
like CRC error, MII error and dribbling bit etc.
>How-To-Repeat:
Get some large files by ftp via MX98715A:
---
ftp> get mozilla-19981008.tar.gz
local: mozilla-19981008.tar.gz remote: moziltlp0: receive error: MII error
tlp0: receive error: dribbling bit
tlp0: receive error: CRC error
la-199tlp0: receive error: MII error
tlp0: receive error: dribbling bit
tlp0: receive error: CRC error
81008.tar.gz
229 Entering Extended Passive Mode (|||65344|)
150 Opening BINARY mode data connection for 'mozilla-19981008.tar.gz' (19173998 bytes).
0% | | 0 0.00 KB/s --:-- ETAtlp0: receive error: MII error
tlp0: receive error: CRC error
0% | | 34752 17.07 KB/s 18:14 ETAtlp0: receive error: MII error
tlp0: receive error: dribbling bit
tlp0: receive error: CRC error
tlp0: receive error: MII error
tlp0: receive error: CRC error
tlp0: receive error: MII error
tlp0: receive error: dribbling bit
tlp0: receive error: CRC error
0% | | 109 KB 36.48 KB/s 08:30 ETAtlp0: receive error: MII error
tlp0: receive error: CRC error
0% | | 134 KB 33.71 KB/s 09:11 ETAtlp0: receive error: MII error
tlp0: receive error: dribbling bit
tlp0: receive error: CRC error
^C
receive aborted. Waiting for remote to finish abort.
426 Transfer aborted. Data connection closed.
[...]
% netstat -i -I tlp0
Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Colls
tlp0 1500 <Link> 00:40:26:56:20:29 4279 54 1081 0 0
tlp0 1500 192.168.20 lancer 4279 54 1081 0 0
tlp0 1500 fe80:: fe80::240:26ff:fe 4279 54 1081 0 0
%
>Fix:
The attached patch seems to fix this problem.
(Buffer size should be word aligned?)
Index: tulipvar.h
===================================================================
RCS file: /cvs/cvsroot/syssrc/sys/dev/ic/tulipvar.h,v
retrieving revision 1.33
diff -u -r1.33 tulipvar.h
--- tulipvar.h 2000/04/04 19:22:52 1.33
+++ tulipvar.h 2000/05/25 15:56:16
@@ -506,7 +506,7 @@
__rxd->td_bufaddr2 = \
htole32(TULIP_CDRXADDR((sc), TULIP_NEXTRX((x)))); \
__rxd->td_ctl = \
- htole32(((__m->m_ext.ext_size - 1) << TDCTL_SIZE1_SHIFT) | \
+ htole32(((__m->m_ext.ext_size - 2) << TDCTL_SIZE1_SHIFT) | \
(sc)->sc_tdctl_ch | \
((x) == (TULIP_NRXDESC - 1) ? sc->sc_tdctl_er : 0)); \
__rxd->td_status = htole32(TDSTAT_OWN|TDSTAT_Rx_FS|TDSTAT_Rx_LS); \
>Release-Note:
>Audit-Trail:
>Unformatted: