linksys cardbus 10/100 problem workaround [was Re: linksys problem]

Fred Polizo fredp@ricochet.net
Tue Jun 15 03:48:08 1999


Robert Cagle wrote:

> [...]

> new Linksys Etherfast CardBus 10/100
> fresh RH6.0 install (kernel 2.2.5-15, recompiled)
> pcmcia-cs-3.0.12
> tulip-0.91e
>
> problem
> ~~~~~~~
> ...
> Under Linux, link light rarely ever comes on. ...

I had the same problem.  However, I found a simple work around--comment out one line of code.  Obviously, this is not a
real fix.   I'm not able to look for that right now.  So, I hope the following info. will help someone out there come up
with the correct fix.   I contacted Robert privately and this work around worked for him too.  But, your mileage may
vary.  :)

Details:
I noticed that the MII transceiver was advertising a value of 0001.   E.g., Robert's case:

> Jun 11 14:18:14 firebird kernel: eth0:  MII transceiver #0 config 3000 status 7809 advertising 0001.

As I read the Intel doc. (srom_407.pdf, pg 40), this value should include the following bits: 0x01e0.  One bit for each
of the four capabilities (100BaseTx (FD/HD) + 10BaseT(FD/HD) supported by this card.  What the 0x0001 bit means is
unclear as bits 0-4 are marked "reserved".

In the 0.91e driver, the function probe_tulip1() sets tp->to_advertise to some appropriate default value (e.g. 0x01e1).
The problem is that the function read_eeprom(), line 1132, overwrites that structure member with the value 0x0001 and
then never sets the critical 0x01e0 bits again.  So, NWay negotiation will fail.

The work around is to comment out line 1132, then rebuild and install the new driver.

Hope this helps someone, more familiar with this driver, with enough info. to come up with a real fix.

Regards,
---Fred P.