First, vital statistics:
Linux version 2.2.13
Linux PCMCIA Card Services 3.1.10
...
Intel i82365sl A step ISA-to-PCMCIA at port 0x3e0 ofs 0x00
host opts [0]: none
host opts [1]: none
ISA irqs (default) = 3,5,7,9,10,12,14,15 polling interval = 1000 ms
cs: IO port probe 0x1000-0x17ff: excluding 0x11f0-0x1207 0x12f8-0x1307 0x1378-0x1387 0x13f0-0x13ff
cs: IO port probe 0x0100-0x04ff: excluding 0x1f0-0x207 0x378-0x387 0x3f0-0x3ff
cs: IO port probe 0x0a00-0x0aff: excluding 0xaf8-0xaff
cs: memory probe 0x0d0000-0x0dffff: clean.
And: swlr# cat /proc/bus/pccard/memory 000d0000-000d0fff : card services
With that out of the way, I have an interesting problem with multiple cards. The hardware is an embedded system board with an onboard PCMCIA controller. The processor is an AMD Elan SC400 (http://www.amd.com/products/lpd/elan400/21026b.html) that has PCMCIA functionality 'built-in'. I've had 3c589_cs working on older kernel versions and older pcmcia-cs versions, but with my existing software, I have a problem running 3c589_cs, and more specifically Elmer Joandi's Aironet 4800 driver. I have never been able to make the Aironet 4800 card work on this hardware, no matter what software versions I've used. With both cards/drivers, the card is found, but the driver has a problem doing anything with it. I can configure it with an address, and try pinging, but I get errors, such as these with 3c589:
eth1: 3Com 3c589, io 0x310, irq 3, hw_addr FF:FF:FF:F9:FF:FA 32K FIFO split 3:5 Rx:Tx, auto xcvr eth1: interrupt(s) dropped! eth1: interrupt(s) dropped! eth1: interrupt(s) dropped! eth1: interrupt(s) dropped! eth1: command 0x5800 did not complete! eth1: command 0x5800 did not complete! eth1: command 0x5800 did not complete! eth1: interrupt(s) dropped! .... and so on. Note the hw_addr - probably bad! This is the same thing that happens with the 4800 card, I get a bogus MAC address, and various error messages when I try to read/write to it. Pulling the card I'm using and trying to load the drivers produces the logical response - card not found. I tried loading X driver for Y card to see if that was a problem/possibility, and that produced the logical response as well - wrong driver for the card. It seems that the cards are being seen and identified, and I can "kind of" communicate with them, but not all the way. Memory addresses 0xd0000-0xdffff are shown free by the system, and the probe, and I have verified vigorously with the hardware manufacturer that this is the case. Anyone have any ideas?
|
Maybe an IO port issue?
| |
|
More: IO Mapping
| |
|
Not a kernel issue; maybe timing?
| |
|
Clarification
| |
|