[tulip] AT-2800TX, I give up

Donald Becker becker@scyld.com
Wed Feb 20 14:05:01 2002

On Wed, 20 Feb 2002, Gert Doering wrote:

> > OOoops, I meant 'tulip-diag --reset -aemm'.
> > The code to reset the transceiver requires that the EEPROM table be read.
> ok, here we go... (ifconfig eth0 down first, otherwise it won't do 
> anything)

Use '-f' or '--force' to do register operations even when the chip is
operating.  This is mostly safe.  You will likely only erase the current
packet error count.  There is only a very slim chance that you will
cause an operational problem.

> 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 Device Reset, block type 5, length 8.
>    Transceiver Reset, sequence length 3: 0807 0000 0002.
>   Performing a transceiver reset.
>   New CSR15 value is 8ff00000.

OK, the transceiver reset happened.  Curiously the CSR15 register is
slightly different now.

>    No MII transceivers found!

But we still don't see a MII transceiver.

>   Media PHY Shutdown, block type 6, length 11.
>    Disconnect reset forLink fail, D1 sleep, D2 sleep, D3 sleep,  sequence length 4: 0807 0000 0000 0002.

I'll have to tweak this new message.

> -> didn't help, no LEDs, no packets, same kernel message(s):

OK, lets just concentrate on getting the LED to light.  That should
indicate that the transceiver is getting power.

This requires some detailed work.
   [[ Professional driver <writer> on a closed course.  Please don't try
   this at home. ]]

The tulip-diag program has a special hack to write the GPIO general
purpose I/O pin register, CSR15.  Pass -G <value> We can use this to set
the output pins to various values, and see if they control anything.

   0x080-....  Says "set the pins to be outputs (bit == 1) or inputs (0)
   0x000-....  Says "set the output pins to this value"
   0x---1....  Means GEP0
   0x---2....  Means GEP1
   0x---4....  Means GEP2
   0x---8....  Means GEP3

Watch the LED while doing the following.

Use this to set all GPIO pins to be outputs
   tulip-diag -G 0x080f0000

Use this to try setting each output pin to '1' in order
   tulip-diag -G 0x00010000
   tulip-diag -G 0x00020000
   tulip-diag -G 0x00040000
   tulip-diag -G 0x00080000

Use this to set all GPIO pins to be inputs, and see their values.
   tulip-diag -G 0x08000000

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