3c575 bug w/ full duplex mode

Christoph Moar christoph.moar@alpin.it
Fri Apr 28 05:56:44 2000


Hello all,

I (still) have problems trying to run a 3CXFE575BT card from
a toshiba notebook.
I use kernel 2.2.15-2.5.0, with the new 3c59x driver announced
on this mailing list.
I also have pcmcia services 3.1.14.

I have two 3c575 cards, specifically model number 3CXFE575BT
(the ones with xjack connector) and I verified both cards with
the dos diagnose program to have the exactly same settings
(irq, memory i/o, autosense capability etc.).

If I use them on a toshiba satellite pro 4200 in Win NT mode,
both of them cards go into full duplex mode with my switching
equipment.

If I try to do the same with linux one of the two
cards goes into full duplex mode, the other does half duplex.

This is an excerpt of the message log file after inserting
the two cards:

[this is an excerpt from the card that does full duplex]
kernel: cs: cb_alloc(bus 20): vendor 0x10b7, device 0x5157
cardmgr[166]: initializing socket 0
cardmgr[166]: socket 0: 3Com 3CCFE575B/3CXFE575B Fast EtherLink XL
cardmgr[166]: executing: 'insmod /lib/modules/2.2.15-2.5.0/pcmcia/cb_enabler.o'
cardmgr[166]: executing: 'insmod 
/lib/modules/2.2.15-2.5.0/pcmcia/3c575_cb.o full_duplex=1'
kernel: 3c59x.c:v0.99H 11/17/98 Donald Becker 
http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html
kernel: cs: cb_config(bus 20)
kernel:   fn 0 bar 1: io 0x200-0x27f
kernel:   fn 0 bar 2: mem 0x60021000-0x6002107f
kernel:   fn 0 bar 3: mem 0x60020000-0x6002007f
kernel:   fn 0 rom: mem 0x60000000-0x6001ffff
kernel: vortex_attach(bus 20, function 0, device 5157)
kernel: eth0: 3Com 3CCFE575 Cyclone CardBus at 0x200,  00:00:86:38:db:58, 
IRQ 11
kernel: eth0: CardBus functions mapped 60020000->cc040000 (PCMCIA committee 
brain-damage).
kernel:   8K byte-wide RAM 5:3 Rx:Tx split, MII interface.
kernel:   MII transceiver found at address 0, status 7809.
kernel:   Enabling bus-master transmits and whole-frame receives.

________________

[this is an excerpt from the card that does only half duplex]
kernel: cs: cb_alloc(bus 20): vendor 0x10b7, device 0x5157
cardmgr[166]: initializing socket 0
cardmgr[166]: socket 0: 3Com 3CCFE575B/3CXFE575B Fast EtherLink XL
cardmgr[166]: executing: 'insmod /lib/modules/2.2.15-2.5.0/pcmcia/cb_enabler.o'
Apr 28 12:02:51 mobile2 cardmgr[166]: executing: 'insmod 
/lib/modules/2.2.15-2.5.0/pcmcia/3c575_cb.o full_duplex=1'
Apr 28 12:02:51 mobile2 kernel: 3c59x.c:v0.99H 11/17/98 Donald Becker 
http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html
kernel: cs: cb_config(bus 20)
kernel:   fn 0 bar 1: io 0x200-0x27f
kernel:   fn 0 bar 2: mem 0x60021000-0x6002107f
kernel:   fn 0 bar 3: mem 0x60020000-0x6002007f
kernel:   fn 0 rom: mem 0x60000000-0x6001ffff
kernel: vortex_attach(bus 20, function 0, device 5157)
kernel: eth0: 3Com 3CCFE575 Cyclone CardBus at 0x200,  00:00:86:3f:cf:07, 
IRQ 11
eth0: CardBus functions mapped 60020000->cc040000 (PCMCIA committee 
brain-damage).
kernel:   8K byte-wide RAM 5:3 Rx:Tx split, MII interface.
kernel:   MII transceiver found at address 0, status 2809.
kernel:   Enabling bus-master transmits and whole-frame receives.
cardmgr[166]: executing: './network start eth0'
kernel: eth0: Setting full-duplex based on MII #0 link partner capability 
of 45e1.

________________

I noticed both cards seem to report different status codes?
Card #1 (full duplex) gives status code 7809
Card #2 (half duplex) gives status code 2809

What do these status codes mean?

-- miidiag -v with the card that does fullduplex --

mii-diag.c:v1.07 10/14/99  Donald Becker (becker@cesdis.gsfc.nasa.gov)
Using the default interface 'eth0'.
  MII PHY #0 transceiver registers:
    3000 782d 0300 e543 01e1 45e1 0003 ffff
    ffff ffff ffff ffff ffff ffff ffff ffff
    0140 0029 0300 ffff ffff ffff ffff ffff
    ffff ffff ffff ffff ffff ffff ffff ffff.
  Basic mode control register 0x3000: Auto-negotiation enabled.
  You have link beat, and everything is working OK.
    This transceiver is capable of  100baseTx-FD 100baseTx 10baseT-FD 10baseT.
    Able to perform Auto-negotiation, negotiation complete.
  Your link partner advertised 45e1: Flow-control 100baseTx-FD 100baseTx 
10baseT-FD 10baseT, w/ 802.3X flow control.
  MII PHY #0 transceiver registers:
    3000 782d 0300 e543 01e1 45e1 0001 ffff
    ffff ffff ffff ffff ffff ffff ffff ffff
    0140 0000 0300 ffff ffff ffff ffff ffff
    ffff ffff ffff ffff ffff ffff ffff ffff.
  Basic mode control register 0x3000: Auto-negotiation enabled.
  Basic mode status register 0x782d ... 782d.
    Link status: established.
    Capable of  100baseTx-FD 100baseTx 10baseT-FD 10baseT.
    Able to perform Auto-negotiation, negotiation complete.
  Vendor ID is 00:c0:39:--:--:--, model 20 rev. 3.
    Vendor/Part: TDK Semiconductor 78Q2120.
  I'm advertising 01e1: 100baseTx-FD 100baseTx 10baseT-FD 10baseT
    Advertising no additional info pages.
    IEEE 802.3 CSMA/CD protocol.
  Link partner capability is 45e1: Flow-control 100baseTx-FD 100baseTx 
10baseT-FD 10baseT.
    Negotiation  completed.
   TDK 78q2120 vendor-specific registers 16..18 are 0x0140 0x0000 0x0300
       Link polarity is detected as normal.
       Auto-negotiation complete, 10Mbps half duplex.
       Rx link in pass state, PLL locked.
       No new link status events.

-- miidiag -v with the card that does halfduplex --

mii-diag.c:v1.07 10/14/99  Donald Becker (becker@cesdis.gsfc.nasa.gov)
  MII PHY #0 transceiver registers:
    3000 282d 0300 e54b 00a1 45e1 0001 0000
    0000 0000 0000 0000 0000 0000 0000 0000
    0140 0000 0700 0000 0000 0000 0000 0000
    0000 0000 0000 0000 0000 0000 0000 0000.
  Basic mode control register 0x3000: Auto-negotiation enabled.
  You have link beat, and everything is working OK.
    This transceiver is capable of  100baseTx 10baseT.
    Able to perform Auto-negotiation, negotiation complete.
  Your link partner advertised 45e1: Flow-control 100baseTx-FD 100baseTx 
10baseT-FD 10baseT, w/ 802.3X flow control.
  MII PHY #0 transceiver registers:
    3000 282d 0300 e54b 00a1 45e1 0001 0000
    0000 0000 0000 0000 0000 0000 0000 0000
    0140 0000 0700 0000 0000 0000 0000 0000
    0000 0000 0000 0000 0000 0000 0000 0000.
  Basic mode control register 0x3000: Auto-negotiation enabled.
  Basic mode status register 0x282d ... 282d.
    Link status: established.
    Capable of  100baseTx 10baseT.
    Able to perform Auto-negotiation, negotiation complete.
  Vendor ID is 00:c0:39:--:--:--, model 20 rev. 11.
    Vendor/Part: TDK transceiver (unknown type).
  I'm advertising 00a1: 100baseTx 10baseT
    Advertising no additional info pages.
    IEEE 802.3 CSMA/CD protocol.
  Link partner capability is 45e1: Flow-control 100baseTx-FD 100baseTx 
10baseT-FD 10baseT.
    Negotiation  completed.
   TDK 78q2120 vendor-specific registers 16..18 are 0x0140 0x0000 0x0700
       Link polarity is detected as normal.
       Auto-negotiation complete, 100Mbps half duplex.
       Rx link in pass state, PLL locked.
       No new link status events.

--

As I can see from mii-diag, the first card (full duplex) is a
model 20 rev 3. It advertises that it is
    Capable of  100baseTx-FD 100baseTx 10baseT-FD 10baseT.

while the other card (half duplex) is actually a newer
model 20 rev 11. It advertises that it is
    Capable of  100baseTx 10baseT.

Another bug is that both outputs from mii-diag tell that
"Auto-negotiation complete, 10Mbps half duplex."
while this is not true. If I check my linking equipment
(3com officeconnect switches) I see the first card in
full duplex mode.

Also, the transciever registers of both cards are
differently reported from mii-diag.

--

I suppose it must be something of a configuration setting,
since the same cards, in the same environment, do both full
duplex under windows nt on the same laptop.

I can go on debugging stuff if anybody could give me a
hint as to where to look for.


Thanks for any help

Christoph.


--
Dipl. Inform. Univ. Christoph Moar             tel +39 0471 711037
alpin gmbh srl                                 fax +39 0471 711319
christoph.moar@alpin.it                        gsm +39 348 3057012
-------------------------------------------------------------------
To unsubscribe send a message body containing "unsubscribe"
to linux-vortex-request@beowulf.org