Subject: Re: tlp problems
To: None <kpneal@pobox.com>
From: Erik E. Fair <fair@clock.org>
List: port-alpha
Date: 04/17/2003 20:50:10
At 20:06 -0400 4/17/03, kpneal@pobox.com wrote:
>So, is the important part the chip or the board it sits on? Also, is
>the 21140A different from the 21140?
We're treading right near the edge of my understanding of this stuff
here; anything more detailed will require a response from someone
like Jason Thorpe (who wrote the tlp driver), or someone else who has
written other Ethernet drivers (and I would appreciate corrections to
what I write here by someone who knows better). I went diving into
the world of the Media Independent Interface (MII) and the associated
PHYsical interfaces last fall when I was trying to debug a problem
with the sip(4) driver for the SiS 900 10/100 Ethernet chip.
The two things that seem to matter are the Ethernet chip, and the
PHY. The PHYs typically (but not always) live on the MII, behind
Ethernet chips that support them, so at boot time, we probe various
system busses, we find Ethernet chips, and if those chips support
MII, we probe the MII behind the chip, looking for PHYs to attach
with specific PHY drivers, or with the generic PHY driver ukphy(4).
There can be up to 32 PHYs per MII; the basic idea is that you have
one PHY for each medium your interface can connect to (e.g. AUI,
thinnet, etc.) and then you can select in software which physical
interface you actually shoot packets through.
DEC made the "tulip" Ethernet chips (DECchip 21040 (10Mb/s), 21140
(10/100), and 21143 (10/100)). My understanding based on the behavior
I see is that the particular PHY paired with the chip determines
things like whether the board supports 10base-2, 10base-5, 10base-T,
100base-TX, 100base-T4, 100base-FX, and low-level things like Nway
(802.3u) negotiation).
I bought a lot of Ethernet boards with tulip chips in them (thank
you, eBay) after listening to the groans and curses at all the "PNIC"
knock-offs (Macronix, Lite-On Communications, etc). Apparently the
tulip was so good that everyone wanted it, and when DEC's fab
couldn't keep up with demand, the licensed the design. Alas, it seems
that each of the licensees decided to put their own stamp on the
design, and each broke it in their own unique ways (reading drivers
can be quite enlightening in this way; most programmers I know do
not pull punches when it comes to their opinions of hardware...).
What I found is that, main chip aside, some PHYs liked my switches
(Dlink DSS-8, Netgear FS108) and immediately negotiated 100base-TX
with FDX, and some couldn't or wouldn't negotiate FDX. I've also revs
of the 21140 from -AA to -AF, and revs of the 21143 mostly being -PC
and -PD. I have no idea what changed from rev to rev; you'd have to
poke the remnants of DEC Microelectronics (now part of HP? Or Intel?
I'm not sure) for the actual changes they made - they all seem to
work equally well for the uses I've put them all to. An assortment of
the different boards I bought is now on loan and in the hands of the
current maintainer of the tlp driver, via Jason Thorpe, for the
purpose of testing the tlp driver against them to handle a wider
range than just the DEC DE500 variants (e.g. Zynx, Cogent, Asante).
There is an issue with the 21143, in that it has its own internal
PHY, which, alas, does not present itself on the MII - you have to do
different things to access it. A design mistake from the programmer's
point of view, and it lead to complications in the tlp driver to
handle that case.
Does this answer your questions?
Erik <fair@clock.org>