Subject: Re: Recommendations wanted for 100baseTX cards
To: Jason Thorpe <thorpej@nas.nasa.gov>
From: Bill Paul <wpaul@ee.columbia.edu>
List: port-i386
Date: 01/29/2000 13:50:23
Of all the gin joints in all the towns in all the world, Jason Thorpe had to
walk into mine and say:

> On Sat, 29 Jan 2000 10:43:48 -0500 (EST) 
>  <alexis@panix.com> wrote:
> 
>  > Jason, I understand that autodetect isn't there yet, but how are the Macronix
>  > from a reliability and performance standpoint, in 1.4.2 or -current?
> 
> Well... 1.4.2 is out, for them.  The `tlp' diver isn't an easy back-port,
> because there were other changes that were required to support the
> almost absurd complexity^Wflexibility of that chip family.
> 
> Now, the Macronix parts themseves... I get 1.05MB/s out of them on a
> 10baseT link.  On 100baseTX or 100baseTX-FDX, I have had some mixed
> experience.  Sometimes they work well, and I can sustain ~7.5MB/s through
> them.  Sometimes they generate tons and tons of "MII errors" (really,
> receiver errors, since they have no MII), though that may be an artifact
> of my testing environment.

My experience shows mixed results too. One machine I tested is a Dell
PowerEdge 2300/400, which seems to generate TX underrun errors that cause
the driver to back off the TX threshold to store and forward mode. At
this point, it seems to be able to do around 9MB/sec. Another machine I
tested was a Gateway 2000 P200 machine, and there I never got the TX
underruns; performance was somewhat better at around 10.5MB/sec.
 
> Sadly, this is still the "best" Tulip clone around, AFAICT.  Note that
> with geniune DEC 21143 parts, I have basically *zero* problems with
> the same driver.

For the record, the best tulip clone chip that I've seen so far is the
ASIX AX88140A. It has one gotcha which is that it only supports chained
descriptor mode. This was a design decision, not an implementation bug:
it's documented to work that way. At least on the machines where I've
tested it, performance has been very good and I didn't encounter any
wacky hardware bugs. Sadly, I only know of two cards that use it: the
CNet Pro110B, and the Alfa Inc. GFC2204. (I have the latter.) I think
there are other boards that use it, but I haven't seen one yet.

The ADMtek Comet and Centaur chips are not that bad either, however the
Comet seemed to have one hardware bug that could make the transmitter
lock up under certain conditions, requiring a reset. I don't know if
the Centaur has the same bug or not; I don't recall encountering it when
I tested it. However, I still haven't seen any cards in the U.S market
that use ADMtek parts, other than the LinkSys 100Mbps USB adapter, which
uses the ADMtek Pegasus chip.

The PNIC 82c168/82c169 is the worst, by far. It has some competition
though from the Davicom DM9102. According to my correspondence with
some people at Davicom, the only way to make it work reliably is to
a) program CSR0 to a value of 0 (supposedly any other value can cause
trouble), and b) transmissions must be done using a single DMA buffer,
meaning that packets spread out over multiple mbufs must be coalesced
into a single buffer before transmission, otherwise you may get silently
corrupted or lost transmissions. Their dmfe.c driver for Linux does
both of these things, and these days so does the if_dc driver in
FreeBSD-current. I only have one card that uses this chip (the Jaton
XpressNet) however it's also being used by LinkSys in their GigaDrive
network storage product. (Which runs Linux.)

I asked the Davicom people why the problems with the DM9102 weren't
documented in their datasheet in an errata section. They told me that
they didn't consider it an issue because typically their customers that
use the DM9102 chip also use the drivers that Davicom provides them,
which are written by Davicom engineers and have workarounds for the
problems. I harrassed them a bit over this; hopefully it will have some
effect.

Believe it or not, there is also a 3com clone chip. The Sundance Technologies
ST201 chip uses a programming interface that's a close copy of the 3c90xB.
It also allows arbitrary byte alignment for RX DMA buffers, like the 3c90xB,
which makes it the only chip other than the 3Com boomerag/cyclone/etc,
the Intel 82557/8/9 and the Texas Instruments ThunderLAN that does this.
(Well, the gigE cards do it too, but that's another class of adapter.)

-Bill

-- 
=============================================================================
-Bill Paul            (212) 854-6020 | System Manager, Master of Unix-Fu
Work:         wpaul@ctr.columbia.edu | Department of Electrical Engineering
Home:  wpaul@skynet.ctr.columbia.edu | Columbia University, New York City
=============================================================================
"Mulder, toads just fell from the sky!" "I guess their parachutes didn't open."
=============================================================================