Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Feb 1997 11:30:42 +0100 (MET)
From:      Luigi Rizzo <luigi@labinfo.iet.unipi.it>
To:        matt@lkg.dec.com (Matt Thomas)
Cc:        hackers@freebsd.org, dg@freebsd.org
Subject:   if_de bug found!
Message-ID:  <199702191030.LAA09311@labinfo.iet.unipi.it>
In-Reply-To: <3.0.32.19970215162211.0068f3e0@netrix.lkg.dec.com> from "Matt Thomas" at Feb 15, 97 04:28:37 pm

next in thread | previous in thread | raw e-mail | index | archive | help
After long and painful debugging I found the bug with the 21140A driver
(if_de.c) from netbsd. The driver has a workaround for a bug of the
21140A when buffers overflow, and stops the receiver and resets the
board when this occurs. This is done in the driver (around line 3230)
by reading from CSR8 into "misses".

Matt said this is an 'extremely rare' event, on my board, though, it
turned out to happen at the end of every interrupt... A look at
the 21140A reference manuals (on line on the DEC site) shows that the 3
high bits of CSR8 are set, so that they should be ignored. After doing
this, the driver works like a charm.

Probably the correct fix is to trigger the workaround only when b16 of
CSR8 is set. Matt ?

Thanks to Matt for writing the driver and suggesting that the event is
rare, and to DEC for making the hardware manuals available on line.

I'll submit a PR shortly. This might be a 2.2 candidate, if the if_de
driver in 2.2 has the same workaround. David, can you check ?

	Thanks
	Luigi
-----------------------------+--------------------------------------
Luigi Rizzo                  |  Dip. di Ingegneria dell'Informazione
email: luigi@iet.unipi.it    |  Universita' di Pisa
tel: +39-50-568533           |  via Diotisalvi 2, 56126 PISA (Italy)
fax: +39-50-568522           |  http://www.iet.unipi.it/~luigi/
_____________________________|______________________________________



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199702191030.LAA09311>