Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 18 Apr 1999 14:00:15 -0400 (EDT)
From:      Bill Paul <wpaul@skynet.ctr.columbia.edu>
To:        nugget@slacker.com (David McNett)
Cc:        freebsd-stable@freebsd.org, ghelmer@scl.ameslab.gov
Subject:   Re: xl0 timeouts in -STABLE
Message-ID:  <199904181800.OAA11302@skynet.ctr.columbia.edu>
In-Reply-To: <19990418103232.A796@dazed.slacker.com> from "David McNett" at Apr 18, 99 10:32:32 am

next in thread | previous in thread | raw e-mail | index | archive | help
Of all the gin joints in all the towns in all the world, David McNett 
had to walk into mine and say:

> I cvsupped a 3.1-STABLE box about 24 hours ago and rebuilt on the new
> source.  Since then I've begun experiencing xl0 timeouts which appear to
> mimic behavior reported under -CURRENT last September.  With no warning,
> and with no unusual syslog activity, my xl0 interface will simply stop
> working.  I did find a message in the archives with a patch made by Bill
> Paul to address the issue, but given the age of the patch and the fact
> that I also see reports of its failure to resolve the problem, I'm
> reluctant to attempt to fit it into my 3.1-STABLE codebase.
> 
> A few of the particulars:
> 
> Apr 18 09:29:39 dazed /kernel: xl0: <3Com 3c905-TX Fast Etherlink XL> rev 
>                 0x00 int a irq 12 on pci0.10.0

Okay, this is a boomerang card. Could you please try for me the
following:

http://www.freebsd.org/~wpaul/3Com/test/3.0

There's a test driver there with a patch to xl_txeof() which I
_THINK_ addresses this problem (the guy who was supposed to test this
for me hasn't replied yet).

Please try the version of if_xl.c and if_xlreg.h that you find there
and let me know what happens. Pretty please. With sugar on top. Like,
sometime this century.

The gist of the problem is that the 3c905 not exactly like the
3c905B in more ways than just that fact that the 3c905B doesn't
support the old PIO compatibility mode. When the 3c905B DMAs a
frame from the TX chain, it sets a 'download completed' bit in
the TX descriptor to let the host know it's been processed. The
3c905 doesn't set any such bit: instead you have to read the
TX status from a register. The trick is that the status register
is actually a stack which holds up to 31 status codes. I realized
that I wasn't correctly popping the stack to advance to the next
code.

-Bill

-- 
=============================================================================
-Bill Paul            (212) 854-6020 | System Manager, Master of Unix-Fu
Work:         wpaul@ctr.columbia.edu | Center for Telecommunications Research
Home:  wpaul@skynet.ctr.columbia.edu | Columbia University, New York City
=============================================================================
 "It is not I who am crazy; it is I who am mad!" - Ren Hoek, "Space Madness"
=============================================================================


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




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