[vortex] Re: [vortex-bug] full-duplex problem with 3CXFE575BT ?
Seb Wills
saw27@mrao.cam.ac.uk
Thu Mar 7 15:28:01 2002
Donald asked me to post this to the vortex list, so I'm including context
from the thread on vortex-bug:
On Wed, 6 Mar 2002, Donald Becker wrote [to vortex-bug@scyld.com]:
> On Wed, 6 Mar 2002, Seb Wills wrote:
>
> > I'm getting a wierd problem with a 3COM 3CXFE575BT CardBus card, which I
> > hope someone might be able to help with. My system is running linux
> > 2.4.9-31 (redhat 7.2). I haven't changed any module parameters or anything
> > like that.
> >
> > I suspect the problem is something to do with the duplex negiotiation
> > (perhaps similar to the problem described in
> > http://www.tux.org/hypermail/linux-vortex-bug/2001-Feb/0008.html). What
> > makes me think this is that the card reports half-duplex capability, yet
> > when you plug in the PCMCIA card, there's a message in the syslog which
> > says that it's enabling full-duplex mode.
>
> Yes, that is likely what is happening.
>
> There is something in the configuration of the card which causes the
> transceiver to only advertise half duplex capabilities.
>
> The driver is unaware that the transceiver is advertising a limited
> capabilities set, and sets full duplex based on what it see from the
> link partner.
>
> > kernel: cs: cb_alloc(bus 2): vendor 0x10b7, device 0x5157
> > kernel: 02:00.0: 3Com PCI 3CCFE575BT Cyclone CardBus at 0x4000. Vers LK1.1.16
> > cardmgr[864]: socket 0: 3Com 3CCFE575B/3CXFE575B Fast EtherLink XL
> > kernel: eth0: Setting full-duplex based on MII #0 link partner capability of 41e1.
>
> There are two bugs here, and fixing either one will solve the problem.
>
> There are two locations where the driver does an mdio_read(..., 5);
> call to read the link partner's capability word. This should be ANDed
> with vp->advertising before using the result.
>
> The second fix is to find out what is causing the transceiver to
> advertise only half duplex modes. I believe that it's controlled by one
> of the (undocumented?) bit written into Wn2_ResetOptions.
Thanks very much for the speedy response!
I tried fixing the first bug you mentioned, and it works fine.
Thanks again,
Seb