Autonegotiation endless loop
William Montgomery
william@opinicus.com
Fri Oct 22 16:18:38 1999
I am using Linux kernel version 2.0.37 with the tulip driver
v0.91 dated 4/14/99. The CPU is a Pentium III 500MHz and uses
the DEC21143-TB with a SYM-PHY (QS6611). The EEPROM correctly
reflects this configuration and things work fine at 10mbs.
The problem comes about when I connect to a 100mbs ethernet hub.
The autonegotiation seems sucessful, then something happens to
cause a link status interrupt and the autonegotiation starts all
over again, it loops forever in this manner.
The following is a log produced with the dmesg command. I have
added some more debugging messages to help me follow the code.
eth0: Digital DS21143 Tulip rev 65 at 0xe400, 00:20:38:00:0E:75, IRQ 10.
eth0: EEPROM default media type Autosense.
eth0: Index #0 - Media 10baseT (#0) described by a 21142 Serial PHY (2) block.
eth0: Index #1 - Media 10baseT-FD (#4) described by a 21142 Serial PHY (2) block.
eth0: Index #2 - Media 100baseTx (#3) described by a 21143 SYM PHY (4) block.
eth0: Index #3 - Media 100baseTx-FD (#5) described by a 21143 SYM PHY (4) block.
eth0: tulip_open() irq 10.
eth0: Restarting 21143 autonegotiation, 0003ffff.
eth0: x0 tp->csr6: 82420200
eth0: x1 csr6: b2420200
eth0: Done tulip_open(), CSR0 f8a08000, CSR5 f0360000 CSR6 b2422202.
eth0: exiting interrupt, csr5=0xf0660000.
eth0: exiting interrupt, csr5=0xf0660000.
eth0: exiting interrupt, csr5=0xf0660000.
eth0: exiting interrupt, csr5=0xf0660000.
eth0: 21143 link status interrupt 41e1d2ce, CSR5 f0668010, fffbffff.
eth0: Switching to 100baseTx-FD based on link partner advertisement 41e1.
eth0: sm mleaf->type 4 idx 3 count 4
eth0: sm 21143 non-MII 100baseTx-FD transceiver control 08af/00a5.
eth0: sm mleaf->type: 4 p[0]: 5
eth0: Setting CSR15 to 08af0000/00a50000.
eth0: sm csr13val: 00000001 csr14val: 0003ff7f
eth0: sm Using media type 100baseTx-FD, CSR12 is ce.
eth0: Restarting Tx and Rx, CSR5 is f0008102 CSR6: 83860200.
eth0: exiting interrupt, csr5=0xf0160000.
eth0: exiting interrupt, csr5=0xf0660000.
eth0: 21143 link status interrupt 41e1d2cd, CSR5 f8668000, fffbffff.
eth0: 21143 100baseTx-FD link beat good.
eth0: exiting interrupt, csr5=0xf0660000.
eth0: 21143 link status interrupt 41e192cf, CSR5 f8668000, fffbffff.
eth0: Restarting 21143 autonegotiation, 0003ffff.
eth0: exiting interrupt, csr5=0xf0000000.
eth0: 21143 link status interrupt 41e1d2cf, CSR5 f0008010, fffbffff.
eth0: Switching to 100baseTx-FD based on link partner advertisement 41e1.
eth0: sm mleaf->type 4 idx 3 count 4
eth0: sm 21143 non-MII 100baseTx-FD transceiver control 08af/00a5.
eth0: sm mleaf->type: 4 p[0]: 5
eth0: Setting CSR15 to 08af0000/00a50000.
eth0: sm csr13val: 00000001 csr14val: 0003ff7f
eth0: sm Using media type 100baseTx-FD, CSR12 is cf.
eth0: Restarting Tx and Rx, CSR5 is f0000000 CSR6: 83860200.
eth0: exiting interrupt, csr5=0xf0160000.
eth0: exiting interrupt, csr5=0xf0660000.
eth0: 21143 link status interrupt 41e1d2cd, CSR5 f8668000, fffbffff.
eth0: 21143 100baseTx-FD link beat good.
eth0: exiting interrupt, csr5=0xf0660000.
eth0: 21143 link status interrupt 41e192cf, CSR5 f8668000, fffbffff.
eth0: Restarting 21143 autonegotiation, 0003ffff.
eth0: exiting interrupt, csr5=0xf0000000.
eth0: 21143 link status interrupt 41e1d2cf, CSR5 f0008010, fffbffff.
eth0: Switching to 100baseTx-FD based on link partner advertisement 41e1.
I am using the driver in module form to make testing easier
and have tried passing options=3 and options=5 to force no autoneg.
This produces a slightly different result in which the driver messages
indicate "link beat good" then "link beat failed" alternately.
Any suggestions would be most helpful.
Regards,
William Montgomery