[tulip] AT-2800TX, I give up

Donald Becker becker@scyld.com
Tue Feb 19 17:57:01 2002


On Tue, 19 Feb 2002, Gert Doering wrote:

> I have an Allied Telesyn AT-2800TX *revision 2* CardBus 10/100 TX card,
> and it doesn't work.
...
> There is one interesting thing: if you insert the card in a "fresh"
> Win2000 installation, it will be recognized as "generic 21143 card", and
> will NOT work ("no network cable attached").  If you install the AT
> driver first, it will be recognized as "AT-2800TX (v2)" and work - LEDs
> light up, etc.  -- so there is something funny with this card, as
> compared to "generic 21143".

That indicates that the driver has proprietary "magic" to get the card
to work.

We might be able to work out the magic, but it will be difficult.

> Physical information about the card: it has two LEDs "link" and
> "activity" on the card's edge, and an external RJ45 "dongle".  The
> dongle seems to be cabling only, no electronics.
> 
> I have tried forcing a media type ("options=0x0c" etc.) but all it 
> does is silencing the "transmit timed out, switching to ..." message,
> but it doesn't work anyway.

That's a good attempt.  The problem here is a bogus EEPROM media table,
and sometimes this can be worked around by forcing the transceiver
type.

> I would appreciate any suggestions how to continue, or maybe even a 
> magic patch... :-)
...
> Feb 19 22:02:44 mobile kernel: tulip.c:v0.94 1/28/2002  Written by Donald Becker <becker@scyld.com>

Good version...

> Feb 19 22:02:44 mobile kernel: Resources for CardBus device 'Digital DS21143-xD Tulip' have not been allocated.
> Feb 19 22:02:44 mobile kernel: Activation has been delayed.

This is normal -- the CardBus code has a confused ordering.  It maps the
card in, notifies the driver, allocates resources, then notifies the
driver.  The driver must ignore the card on the first activation, and
only use it when resources (I/O and IRQ) have been allocated.

Here are the interesting bits:

> eth0: Digital DS21143-xD Tulip rev 65 at 0xc80cc000, 00:A0:D2:AF:49:60, IRQ 9.
> eth0:  EEPROM default media type Autosense.
> eth0: ***WARNING***: No MII transceiver found!

Bad...

> 423]: executing: './network start eth0'
> eth0: Tx hung, 9 vs. 7.
> eth0: Digital DS21143 Tulip transmit timed out, status f0260000, SIA 000000c6 ffff0000 fffbff7f 8ff10008, resetting...

And just as we expect with no transceiver, we time out with no carrier.

> eth0: transmit timed out, switching to 100baseTx media.
> eth0: Tx hung, 10 vs. 7.

The driver tries its best to second-guess the EEPROM.

> eth0: transmit timed out, switching to 10baseT media.

And again tries another possible transceiver connection.

> tulip-diag.c:v2.09 1/28/2002 Donald Becker (becker@scyld.com)
>  http://www.scyld.com/diag/index.html
> Index #1: Found a Digital DS21143 Tulip adapter at 0x200.
> Digital DS21143 Tulip chip registers at 0x200:

Great.  Exactly what we need.

> EEPROM 256 words, 8 address bits.
> PCI Subsystem IDs, vendor 1259, device 2802.
> CardBus Information Structure at offset 00005002.
> Ethernet MAC Station Address 00:A0:D2:AF:49:60.
> EEPROM transceiver/media description table.
> Leaf node at offset 30, default media type 0800 (Autosense).
>  3 transceiver description blocks:
>   Media MII, block type 3, length 19.
>    MII interface PHY 0 (media type 11).
>    21143 MII initialization sequence is 0 words:.
>    21143 MII reset sequence is 3 words: 0807 0000 0002.
>     Media capabilities are 7800, advertising 01e1.
>     Full-duplex map 5000, Threshold map 1800.
>     No MII interrupt.

This reports a normal MII transceiver, with a reset sequence.  This table
looks as if it was written for this card.  The usual way for the designer
to screw up is to use the table from the design kit without
understanding what it does.

>   Media MII, block type 5, length 8.
>    Transceiver Reset, sequence length 3: 0807 0000 0002.

OK, a second transceiver reset, just like the first.  (Digital didn't
get the table format right the first time.  Or the second time.)

>   Media MII 100baseT4, block type 6, length 11.
>    Disconnect reset, sequence length 4: 0807 0000 0000 0002.

Hmmm, mostly bogus.
This block type should not appear for MII transceivers.

This is a new block type for the the 21143 rev 4.1 and higher and 21145.
It provides info on how to shut down the transceiver if the connector is
removed.

Ignore the "100baseT4".  It appears because the code is table based.
I've just tweaked 'tulip-diag' to eliminate this in future versions.

This shouldn't be causing a problem for you.  It's only used if the
dongle is disconnected, and the sequence is exactly the same as the
reset sequence.

> EEPROM contents (256 words):
> 0x00:  1259 2802 5002 0000 0000 0000 0000 0200
> 0x08:  d8fd 0104 a000 afd2 6049 1e00 0000 0800
> 0x10:  9303 0003 0300 0807 0000 0002 7800 01e0
> 0x18:  5000 1800 8800 0305 0807 0000 0002 068b
> 0x20:  040f 0807 0000 0000 0002 0000 0000 0000
> 0x28:  0000 0000 0000 0000 0000 0000 0000 03f5

This is the media table, with the checksum at the end.

> 0x30:  0000 0000 0000 0000 0000 0000 0000 0000
> 0x38:  0000 0000 0000 0000 0000 0000 0000 0000

No Magic Packet info.  (But a CardBus card wouldn't likely support
Wake-On-LAN at boot anyway.)

> 0x40:  0313 4943 1c53 0203 ff07 3415 0005 6c41
> 0x48:  696c 6465 5420 6c65 7365 7369 4b20 4b2e
> 0x50:  002e 6543 746e 6572 4f43 204d 414c 3031
> 0x58:  2d30 6143 6472 7542 2d73 2054 3256 ff00
> 0x60:  0604 0103 0082 0000 0a05 3941 b501 021e
> 0x68:  ff30 84ff 0420 c00f 0000 0607 0011 0080
> 0x70:  0000 0607 0002 0080 0000 0221 0106 00ff

This is the CardBus CIS.

>    No MII transceivers found!
>   Internal autonegotiation state is 'Transmit disabled'.

Donald Becker				becker@scyld.com
Scyld Computing Corporation		http://www.scyld.com
410 Severn Ave. Suite 210		Second Generation Beowulf Clusters
Annapolis MD 21403			410-990-9993