[tulip] LinkSys 10/100 EtherFast PC Card PCMPC100 Version 2.0 Fails

Kenneth J. Hendrickson kHendrickson@cFL.RR.com
Thu, 31 Aug 2000 22:38:45 -0400


This is a multi-part message in MIME format.
--------------BC983FFCC278C9CD8236213F
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

LinkSys 10/100 EtherFast PC Card PCMPC100 Version 2.0 Fails
It only works at 10 Mbps.  Please help if you can.

-- 
PGP Key Fingerprint    02 6A 4F DE DD 77 A1 8B   21 D9 81 EB ED C8 3A DC
We are upping our standards ... so up yours.        Ken Hendrickson N8KH
--------------BC983FFCC278C9CD8236213F
Content-Type: text/plain; charset=us-ascii;
 name="LinkSys.txt"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="LinkSys.txt"

Executive Summary:

LinkSys 10/100 EtherFast PC Card PCMPC100 Version 2.0 works only at 10 Mbps.

I'm VERY frustrated.
I spent a lot of $ buying new 100 Mbps hardware, and I can't make it work.
I'm about to RETURN all of the new 100Mbps hardware, cuz I can't make it work.

I am *NOT* a Linux/BSD neophyte; I've been using Linux since late 1991, and I
was using Minix before that.  I also use OpenBSD and FreeBSD.  I've written
Open Source software, and also made modifications to the OSes themselves.  I
have more than 20 years experience with computers and software development.

I apologize for the length of this post.  I am including every detail
possible in order to obtain help.

Details:

Date:	31 August 2000

New Hardware:
	Several LinkSys PCMPC100 Version 2 100Mbps PCMCIA cards
	Several Dozen Linksys LNE100TX Version 4.0 PCI 100Mbps cards
	Several LinkSys EZXS55W Version 2 100Mbps 5-port Switches

Linux supposedly supports all current-production PCI Fast Ethernet
chips.  This hardware is not listed as unsupported by Linux in
http://www.Scyld.com/network/index.html#not-supported

OS:
	Linux Debian Potato with kernel 2.2.17 and PCMCIA Version 3.1.16

Additional Software:
	Latest and Greatest Drivers from Donald Becker at www.Scyld.com/network

Synopsis:

Desktop machines would not work at all with standard drivers.

After downloading and building Donald Becker's latest drivers, the desktop
LNE100TX card is recognized, and can be configured to use 100 Mbps.

COMMUNICATION WITH LAPTOP MACHINES NEVER EXCEEDS 10 Mbps!

Communication with other desktop machines has not been attempted, because
if I cannot get one desktop talking to one laptop at 100 Mbps, the whole
lot of hardware is going back.

Laptop machine immediately recognizes new 100 Mbps card as a NE2000 clone,
and it works at 10 Mbps only.  The new drivers cannot be made to work on the
laptop.

After 2 days of trying, and failing, I checked the www.LinkSys.com web site.
As I expected, this was an utter waste of time.  No help was available there.
LinkSys' website caters to Windows users only.

As the desktop machine appears to be working OK, and the laptop is obviously
failing, I will only give detailed laptop information.  Detailed desktop
information is available upon request.

Laptop Details:

Hardware:
	Sony PCG-505TR w/ 1 CardBus slot
	LinkSys PCMPC100 Version 2 100Mbps PCMCIA card

OS:
	Linux Debian Potato 2.2 with kernel 2.2.17 and PCMCIA Version 3.1.16

Additional Software:
	Latest and Greatest Drivers from Donald Becker at www.Scyld.com/network

Diagnostic Program:
	tulip-diag.c obtained from ftp://ftp.Scyld.com/pub/diag/tulip-diag.c

tulip-diag compiled with:
	cc -O -Wall -Wstrict-prototypes -o tulip-diag tulip-diag.c

tulip-diag results:

# ./tulip-diag 
tulip-diag.c:v2.03 7/31/2000 Donald Becker (becker@scyld.com)
 http://www.scyld.com/diag/index.html
Unable to find a recognized card in /proc/pci.
If there is a card in the machine, explicitly set the I/O port address
  using '-p <ioaddr> -t <chip_type_index>'
 Use '-t -1' to see the valid chip types.

No matter whether or not the card is in or out, and no matter whether or
not the card was present at boot time, the contents of /proc/pci are
identical:

# cat /proc/pci
PCI devices found:
  Bus  0, device   0, function  0:
    Host bridge: Intel 82439TX (rev 1).
      Medium devsel.  Master Capable.  Latency=32.  
  Bus  0, device   7, function  0:
    Bridge: Intel 82371AB PIIX4 ISA (rev 2).
      Medium devsel.  Fast back-to-back capable.  Master Capable.  No bursts.  
  Bus  0, device   7, function  1:
    IDE interface: Intel 82371AB PIIX4 IDE (rev 1).
      Medium devsel.  Fast back-to-back capable.  Master Capable.  Latency=64.  
      I/O at 0xfcf0 [0xfcf1].
  Bus  0, device   7, function  2:
    USB Controller: Intel 82371AB PIIX4 USB (rev 1).
      Medium devsel.  Fast back-to-back capable.  Master Capable.  Latency=64.  
      I/O at 0xfcc0 [0xfcc1].
  Bus  0, device   7, function  3:
    Bridge: Intel 82371AB PIIX4 ACPI (rev 2).
      Medium devsel.  Fast back-to-back capable.  
  Bus  0, device   8, function  0:
    VGA compatible controller: Neomagic MagicGraph NM2160 (rev 1).
      Medium devsel.  Fast back-to-back capable.  IRQ 9.  Master Capable.  Latency=128.  Min Gnt=16.Max Lat=255.
      Prefetchable 32 bit memory at 0xfd000000 [0xfd000008].
      Non-prefetchable 32 bit memory at 0xfea00000 [0xfea00000].
      Non-prefetchable 32 bit memory at 0xfed00000 [0xfed00000].
  Bus  0, device   9, function  0:
    FireWire (IEEE 1394): Unknown vendor Unknown device (rev 1).
      Vendor id=104d. Device id=8009.
      Medium devsel.  Master Capable.  Latency=64.  
      Non-prefetchable 32 bit memory at 0xfecffc00 [0xfecffc00].
  Bus  0, device  10, function  0:
    CardBus bridge: Ricoh Unknown device (rev 0).
      Vendor id=1180. Device id=475.
      Medium devsel.  IRQ 9.  Master Capable.  Latency=168.  Min Gnt=128.Max Lat=4.

Notice that the LinkSys Ethernet card DOES NOT show up in /proc/pci.

# ./tulip-diag -t -1
tulip-diag.c:v2.03 7/31/2000 Donald Becker (becker@scyld.com)
 http://www.scyld.com/diag/index.html
Valid numeric chip types are:
  0	Digital Tulip series
  1	Digital DC21040 Tulip
  2	Digital DC21041 Tulip
  3	Digital DS21140 Tulip
  4	Digital DS21143 Tulip
  5	Lite-On 82c168 PNIC
  6	Lite-On PNIC-II
  7	Macronix 98713 PMAC
  8	Macronix 98715 PMAC
  9	Macronix MX98715 / MX98725
  10	ASIX AX88140
  11	Compex TX9881
  12	ADMtek AL981 Comet
  13	ADMtek AL985 Centaur-P
  14	ADMtek AL985 Centaur-C
  15	ADMtek AL985 Centaur (Linksys CardBus)
  16	Davicom DM9102
  17	Davicom DM9100
  18	Davicom DM9100 series (unknown model)

As the card is supposedly an ADMtek AL985 Centaur (Linksys CardBus),
after rmmod-ing the pcnet_cs for the NE2000, I tried the following:

# ./tulip-diag -t 15
tulip-diag.c:v2.03 7/31/2000 Donald Becker (becker@scyld.com)
 http://www.scyld.com/diag/index.html
Unable to find a recognized card in /proc/pci.
If there is a card in the machine, explicitly set the I/O port address
  using '-p <ioaddr> -t <chip_type_index>'
 Use '-t -1' to see the valid chip types.

The diagnostic program can't find the card.  Since the NE2000 card is
showing up at IO Address 0x300, I tried:

# ./tulip-diag -p 0x300 -t 15
tulip-diag.c:v2.03 7/31/2000 Donald Becker (becker@scyld.com)
 http://www.scyld.com/diag/index.html
Assuming a ADMtek AL985 Centaur (Linksys CardBus) adapter at 0x300.
 * A recognized chip has been found, but it does not appear to exist in
 * I/O space.  Use the '-f' flag to see the register values anyway.
 Use '-a' or '-aa' to show device registers,
     '-e' to show EEPROM contents, -ee for parsed contents,
  or '-m' or '-mm' to show MII management registers.

# ./tulip-diag -p 0x300 -t 15 -f -e
tulip-diag.c:v2.03 7/31/2000 Donald Becker (becker@scyld.com)
 http://www.scyld.com/diag/index.html
Assuming a ADMtek AL985 Centaur (Linksys CardBus) adapter at 0x300.
 Port selection is 100mbps-SYM/PCS 100baseTx scrambler, full-duplex.
 Transmit started, Receive started, full-duplex.
  The Rx process state is 'Transferring Rx frame into memory'.
  The Tx process state is 'Closing Tx descriptor'.
  PCI bus error!: Unknown 7.
  The transmit unit is set to store-and-forward.
 Interrupt sources are pending!  CSR5 is ffffffff.
   Tx done indication.
   Tx complete indication.
   Tx out of buffers indication.
   Transmit Jabber indication.
   Link passed indication.
   Tx FIFO Underflow indication.
   Rx Done indication.
   Receiver out of buffers indication.
   Receiver stopped indication.
   Receiver jabber indication.
   Link changed indication.
   Timer expired indication.
   Link failed indication.
   PCI bus error indication.
   Early Rx indication.
 The Comet MAC registers are ffffffff ffffffff filter ffffffffffffffff.
EEPROM size is 8.
WARNING: The EEPROM is missing or erased!
  Ethernet MAC Station Address ff:ff:ff:ff:ff:ff.
  Default connection type 'Default'.
  PCI IDs Vendor ffff Device ffff  Subsystem ffff ffff
  PCI min_grant 255 max_latency 255.
  CSR18 power-up setting 0xffff****.

This is not promising!  No useful data shows up in /proc/pci, nor in the
output of the diagnostic program.

There were other problems, probably distribution specific.

pci-scan.o built OK on both desktop and laptop.
tulip.o built OK on both desktop and laptop.

The standard tulip_cb.o version v0.92 4/17/2000 FAILED on laptop.  Details:

# make tulip_cb.o
gcc -DCARDBUS -DMODULE -Wall -Wstrict-prototypes \
	-I/usr/src/linux/include -I/usr/src/pcmcia-cs-3.1.16/include \
	-O6 -c tulip.c -o tulip_cb.o
tulip.c: In function `tulip_attach':
tulip.c:3287: parse error before `pci_read_config_dword_R2ca7e89f'
tulip.c:3274: warning: `pdev' might be used uninitialized in this
function
tulip.c:3277: warning: `pciaddr' might be used uninitialized in this
function
make: *** [tulip_cb.o] Error 1

The latest test driver tulip_cb.o version v0.92k 8/14/2000 builds OK.

# make
gcc -DMODULE -Wall -Wstrict-prototypes \
	-I/usr/src/linux/include -O6 -c tulip.c
gcc -DCARDBUS -DMODULE -Wall -Wstrict-prototypes \
	-I/usr/src/linux/include -I/usr/src/pcmcia-cs-3.1.16/include \
	-O6 -c tulip.c -o tulip_cb.o

However, use of the latest test driver fails:

# insmod pci-scan.o 
# insmod tulip_cb.o 
tulip_cb.o: unresolved symbol unregister_driver
tulip_cb.o: unresolved symbol register_driver

Please help.

Kudos to Donald Becker for excellent software.  I know his work is
excellent, having used it for more than a decade since my Minix days.

Boos and hisses to LinkSys for complete lack of support (on their web
pages), and for falsely advertising that their products work with Linux.

Additional Note:

LinkSys has the Linux logo on the box of everything EXCEPT the PCMCIA
card.  On that box, they have a large logo for "Free Turbo Linux".
There was a disk for "Free Turbo Linux" in the box, but I'm not
interested.  If it won't work with my favourite distribution, I won't
use it, and I will return the multiple 100s of $ that I spent on this
hardware.  Linux is not just RedHat.  Linux is not just TurboLinux.
No source code was available on the disk in the box.

If I don't get this hardware working in the next 3 days, I'm return ALL
of it.  I'll be returning not just the PCMCIA laptop cards, but also all
of the switches and all of the desktop PCI cards.  In addition, I'll
avoid the LinkSys brand for a very long time.  Also, I'll seek to have
this complaint posted prominently on popular Linux web sites and post it
to UseNET discussion groups.

It is INEXCUSABLE to have the Linux logo on the box of a product that
just doesn't work!!

Thanks for any forthcoming help,
Ken Hendrickson


--------------BC983FFCC278C9CD8236213F--