tedm at toybox.placo.com
Tue Mar 1 22:52:42 GMT 2005
> -----Original Message-----
> From: owner-freebsd-questions at freebsd.org
> [mailto:owner-freebsd-questions at freebsd.org]On Behalf Of Jason D.
> Sent: Tuesday, March 01, 2005 1:55 PM
> To: Ted Mittelstaedt; Jerry McAllister
> Cc: questions at freebsd.org
> Subject: RE: Documentation Error?
> > Well one thing is that the 3c905 adapter (xl0) is known for
> > problems under FreeBSD.
> Ah, that's sad - ALL of our older Dell servers use this NIC (and I only
> run FreeBSD on them) - this could also explain odd intermittent network
> problems I'm having on our mail server.
Yes, Dell liked these cards because 3com has always worked overtime to
produce good stable windows drivers and as a result has a very good
reputation among Windows admins. However, 3com (like other vendors) has
in some cases made up for shortcomings in their hardware by writing
their drivers, and they DON'T seem to document most of these problems in
any of their
If you take a look at /sys/pci/if_xl.c you will find things like:
* Pretend that PHYs are only available at MII address 24.
* This is to guard against problems with certain 3Com ASIC
* revisions that incorrectly map the internal transceiver
* control registers at all MII addresses. This can cause
* the miibus code to attach the same PHY several times over.
* Note II, The Sequel: _CURRENT_ versions of the 3c905B have a
* 256 bit hash table. This means we have to use all 8 bits regardless.
* On older cards, the upper 2 bits will be ignored. Grrrr....
/* Wait a little while for the chip to get its brains in order.
* This routine is a kludge to work around possible hardware faults
* or manufacturing defects that can cause the media options register
* (or reset options register, as it's called for the first generation
* 3c90x adapters) to return an incorrect result. I have encountered
* Note: my 3c575C cardbus card lies. It returns a value
* of 0x1578 for its capabilities word, which is somewhat
* nonsensical. Another way to distinguish a 3c90x chip
Now, most ethernet controller chips do have differences in revisions -
but unless those differences are documented, you have to guess when
you run into these things. The presence of differences in board
isn't cause for alarm, what is cause for alarm is when you see statements
like: "certain 3Com ASIC revisions" (if he knew which revisions he
would have written around the problem) "possible hardware faults or
manufacturing defects" (you better believe 3com knows all about the
conditions that cause this and isn't sharing) and "my 3c575C cardbus
card lies" (shorthand for WTF is this damn thing doing?)
And these are just the ones that our group found, I would imagine that
there's plenty of others that 3com knows about and isn't telling.
I've also seen trouble with these under Linux.
> What's your favorite NIC on FreeBSD then?
For 10Base T ISA only:
WD or SMC 8013 (these aren't produced anymore)
For 10/100 PCI:
device dc # DEC/Intel 21143 and various workalikes
(except for the "LC82C115 PNIC II 10/100BaseTX", the "82c168 PNIC
and the "82c169 PNIC 10/100BaseTX" I will leave it as a homework
assignment for you to find out why this is. hint, read the code)
device fxp # Intel EtherExpress PRO/100B (82557,
See the following for a list of vendors that use these chips:
More information about the freebsd-questions