Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Dec 1998 16:46:47 -0800 (PST)
From:      Bill Paul <wpaul>
To:        bruce@zuhause.mn.org (Bruce Albrecht)
Cc:        mturpin@shadow.spel.com, brett@lariat.org, hardware@FreeBSD.ORG
Subject:   Re: Good, cheap 100BaseT Ethernet cards?
Message-ID:  <199812250046.QAA13840@hub.freebsd.org>
In-Reply-To: <13954.22306.733363.415028@zuhause.zuhause.mn.org> from Bruce Albrecht at "Dec 24, 98 09:00:50 am"

next in thread | previous in thread | raw e-mail | index | archive | help
> Mark turpin writes:
>  > On Sun, 13 Dec 1998, Brett Glass wrote:
>  > 
>  > > I'm looking for some good, cheap 100BaseT Ethernet cards which are
>  > > supported by drivers included with FreeBSD. Unfortunately, the ones listed
>  > > in the "Readme" are "name brands" -- and are going for $80-100 instead of
>  > > the $20 that most people seem to be paying for Ethernet NICs for WinDoze.
>  > > For example, the Netgear FA310TX is priced in the mid-$20's and comes from
>  > > a reputable company, but I can't tell if it will work.
>  > > 
>  > 	RealTek 8139 based card.   They are 10/100Mbps PCI, work with
>  > FreeBSD (rl0 driver), and you can get them for $15-$20.  I have about
>  > 20 of them.
> 
> I have a $20 RealTek 8139 card, and while it's rock solid and gives
> reasonable transfer rates at 10 Mbps, it's only capable of doing about
> 50 Mbps sustained transfers in 100 Mbps mode and eats up 25% of a 200
> MHz PPro's CPU.  And that was before Bill Paul made it copy buffers
> nearly all the time because of alignment problems I reported with PPP
> traffic.  If I find an Intel EtherExpress 100 for < $40, I'm going to
> replace the RealTek in a shot.

The RealTek is a pretty cruddy chip. It's the only PCI bus master DMA
ethernet chip that doesn't use a descriptor-based data transfer mechanism.
You will get decent performance out of it if and only if you have a
really mean CPU to drive it: on a Dell PowerEdge 2300/400 (dual Pentium II
400Mhz SMP box) I can actually get it to do 11.5MB/sec on transmit,
however I suspect that's because of some bcopy() optimizations that
are done by the kernel on PII processors. If I'm lucky I can get it
to do 7MB/sec on a Pentium 200. Cache may also be an issue.

Note that SMC also uses the RealTek in a board called the EZ Card 10/100
PCI 1211TX. The chip may have the RealTek logo covered up and they
changed the PCI vendor and device ID in the EEPROM, but it's definately
a RealTek. (Out of curiosity, if somebody uses these with LoseNT and
can do some performance comparisons between the LoseNT driver and the
FreeBSD driver, I'd be intersted in seeing the results. Granted LoseNT's
networking is vastly different from FreeBSD's, but it would still be
fun to compare them.)

Other cut-rate boards that should work, in order of desirability:

- ThunderLAN based cards (Compaq Netelligent, Olicom 2326). The
  Texas Instruments ThunderLAN is a nice chip, sadly underused.
  There aren't exactly cut-rate; pricing is often on par with the
  high-end cards (Intel, 3Com) but if you can find one cheap, grab it.
  Performance is comparable to the Intel and 3Com XL cards (uses
  the if_tl driver).

- Boards based on the Macronix 98713A, 98715 and 98725 chips. These
  are DEC tulip clones and will work with the if_mx driver.
  Performance is pretty good. Note: the 98713 is different from the
  98713A: the former has an MII bus for NWAY-capable PHYs while the
  latter has NWAY support built in. I have not been able to obtain
  a 98713 board for perper testing so I don't guarantee that the
  autoselection will work. However, the card should still work if you
  manually set the media with ifconfig. The 98713A, 98715 and 98725
  cards should all autonegotiate properly.

- The Netgear FA310TX Rev D1 with the PNIC chip will indeed work
  with FreeBSD using the if_pn driver. Speed should be good. The
  LinkSys LNE100TX and Matrox 10/100 FastNIC will also work.

- VIA Rhine I/Rhine II cards such as the D-Link DFE530TX. These
  are reasonably reliable but performance will suck just like the
  RealTek. Why? Because although the Rhine chip uses descriptor-based
  DMA mechanism, it expects data buffers to be longword-aligned. In
  BSD networking, you aren't always guaranteed that packet fragments
  in mbufs will start on longword boundaries, which means you have
  to do buffer copies on transmit. The RealTek 8139 suffers from the
  same flaw, and I strongly suspect that the VIA Rhine chips began
  life as RealTek products. Works with the if_vr driver.

- Winbond W89C840F cards, such as the Trendware T100-PCIE. This chip
  is a half-hearted tulip clone, however it suffers from some extreme
  brain damage. I recently discovered that it generates corrupt packets
  at 10Mbps half-duplex mode in some cases and I'm still trying to
  find a way around this problem. It does appear to work okay in
  10Mbps full-duplex and at 100Mbps modes. If somebody dumps a bunch
  of these on your desk, give them a try, but don't expect too much.

  The receiver on the Winbond also appears to freak out sometimes when
  the link partnerswitches modes. For example, say you have a Winbond
  card connected via crossover cable to some other card at 10Mbps
  half duplex. You exchange some traffic; all seems well. Now you
  go to the other system and switch the card to 100Mbps full-duplex.
  The Winbond receiver will start scribbling all over its receive
  descriptors with garbage error frames. The if_wb driver tries to
  hit the chip over the head with a hammer as hard as it can in order
  to make it shut up, but it's amazingly persistent.

Note that I also have plans to add driver support for another tulip
clone made by ASIX Electronics. Mike Smith has promised to send me a
sample board for testing, which will probably arrive after the holidays.

There are literally dozens of cheap boards available from various vendors
under various names and model numbers, so trying to list all of them
is difficult. Often you will find the exact same card being sold by two
different vendors under different names (and for different prices).
Sometimes the same vendor will even sell two different cards under the
same name (once their supply of one card dries up, they find another one
and pack it in the same box). However most of them use one of the
chips listed above, all of which are of course made in Taiwan (except
the ThunderLAN). This means that before buying, ask the salesdroid
if they can take the board out of the box and show it to you, then check
the card's controller chip. This is still not a 100% sure way to tell
if the board will work with FreeBSD since some vendors put their own
markings on the chips just to confuse you, but it's better than relying
on the vendor's model number or the picture on the box.

-Bill

P.S.: If someone actually has a Macronix 98713 card they're not using
      and would consider donating (or loaning) it to the FreeBSD project,
      or knows of somebody actually selling an MX98713 board, please let
      me know. The 98713 has been largely replaced by the 98713A, but
      I'd still like to support it properly.

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



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