*BSD News Article 6016


Return to BSD News archive

Path: sserve!manuel!munnari.oz.au!uunet!mcsun!sun4nl!tuegate.tue.nl!rw9.urc.tue.nl!wmbfmk
From: wmbfmk@rw9.urc.tue.nl (Marc van Kempen)
Newsgroups: comp.unix.bsd
Subject: Re: Lance query
Message-ID: <wmbfmk.718190784@rw9.urc.tue.nl>
Date: 4 Oct 92 09:26:24 GMT
References: <12764.9210021637@thor.cf.ac.uk>
Sender: root@tuegate.tue.nl
Reply-To: wmbfmk@urc.tue.nl
Lines: 43

spedpr@thor.cf.ac.uk (Paul Richards) writes:

>I've been getting a number of is1:reset errors from the isolink driver
>and the cause is due to the lance stopping its transmitter.
>Specifically, in the interrupt routine the transmitter-on (TXON) bit of
>the lance is checked and if it isn't set then a reset occurs.

>What I want to know is: under what circumstances does the lance clear
>this bit, supposedly indicating that the transmitter has been switched
>off?
I am currently working on a driver for the Lance and this is what
the documentation says about TXON:

TRANSMITTER ON indicates that the transmitter is enabled. TXON is set
if DTX=0 in the mode register in the initialization block and the INIT
bit has been set. TXON is cleared when IDON is set and DTX=1 in the MODE
register, or an error, such MERR, UFLO or BUFF, has occurred during
transmission.
TXON is READ ONLY; writing this bit has no effect. TXON is cleared by
RESET or by setting the STOP bit.

MERR : 	Memory error is set when the LANCE is the bus master and has 
	not received READY within 25.6 microsec. after asserting the
	address on the DAL lines.
	If this is the cause then it seems to me that you have a serious 
	hardware problem. I guess however that it would show up on 
	other cards as well.
UFLO :	Underflow error indicates that the transmitter has truncated 
	a message due to data late from memory. UFLO indicates that
	the silo has been emptied before the end of the packet was
	reached.
	Something wrong with the bus being too slow???
BUFF :	Buffer error is set by the LANCE during transmission when the 
	LANCE does not find the ENP flag in the current buffer and does
	not own the next buffer. (ENP = End Of Packet, bit 8 in the
	Transmit Messages Descriptor 1, (TMD1)) (counting is from 0). 
	I guess this would be a simple programming error.

I hope this is of any help and that you didn't already have this
information.

Marc.
(wmbfmk@urc.tue.nl)