[tulip] Compaq Presario laptop and tulip PCMCIA card
Donald Becker
becker@scyld.com
Thu Mar 7 11:01:01 2002
On 7 Mar 2002, Jesse F. Hughes wrote:
> Donald Becker <becker@scyld.com> writes:
> > On 6 Mar 2002, Jesse F. Hughes wrote:
> >
> > Where are you getting the name "level one"? Level One makes
> > transceivers, but the chip on the Linksys card is from ADMtek.
>
> It's what's printed on the box. "Level one 10/100Mbps Ethernet PC
> Card".
> Perhaps a different company of the same name?
It's likely the same OEM as the Linksys card, with the box printed in a
Asian country that doesn't enforce trademark laws.
> Mar 7 11:33:44 diogenes kernel: tulip.c:v0.93 11/7/2001 Written by Donald Becker <becker@scyld.com>
> Mar 7 11:33:44 diogenes kernel: http://www.scyld.com/network/tulip.html
> Mar 7 11:33:44 diogenes kernel: cs: cb_config(bus 32)
> Mar 7 11:33:44 diogenes kernel: fn 0 bar 1: io 0x800-0x8ff
> Mar 7 11:33:44 diogenes kernel: fn 0 bar 2: mem 0x60060000-0x600603ff
> Mar 7 11:33:44 diogenes kernel: fn 0 rom: mem 0x60040000-0x6005ffff
> Mar 7 11:33:44 diogenes kernel: irq 9
Hmmm, these look like reasonable resource assignments.
> Mar 7 11:33:44 diogenes cardmgr[466]: get dev info on socket 0
failed: No such device
I can't figure out what went wrong here. The cardmgr program, which is
part of the PCMCIA package, couldn't find the device.
> Also, by default, my distribution runs i82365 with the option
> "poll-interval=100". I *thought* that meant that no IRQ would be
> assigned to the i82365 module, but it appears I just don't know.
There are two kinds of IRQ usage:
The CardBus/PCMCIA controller uses it to report that a card has been
inserted or ejected
The CardBus card uses it to raise a device interrupt.
For historical, structural reasons (support of ISA connected PCMCIA
controllers, and ISA-like 16-bit PCMCIA cards) the Linux PCMCIA code
doesn't like to put both types of interrupt sources on a single IRQ.
Setting the poll interval removes the need for the first type of
interrupt.
> This is the output from the diagnostic program:
>
> -----------------------------------------------------------
> Unable to find a recognized card in /proc/pci.
Note that the program first looks in /proc/bus/pci/
> When I offer the options "-p 0x800 -t 17", I am told that a recognized
> chip has been found but does not appear to exist in I/O space.
A little misleading: it should say "I'm trusting that you the chip is
there, but I can't find a device at that address."
> Interrupt sources are pending! CSR5 is ffffffff.
> Comet MAC address registers ffffffff ffffffff
> Comet multicast filter ffffffffffffffff.
When no device exists the value returned is 0xffffffff
> And this is the relevant section of /proc/pci.
>
> -----------------------------------------------------------
> PCI devices found:
> Bus 32, device 0, function 0:
> Ethernet controller: Unknown vendor Unknown device (rev 17).
> Vendor id=13d1. Device id=ab08.
This explains part of the problem: This is a new device ID.
Try adding the following new table entry to tulip.c.
{ "ADMtek Centaur-C (Linksys)", { 0xab0313d1, 0xffffffff },
TULIP_IOTYPE, TULIP_SIZE1, COMET },
+ { "ADMtek Centaur-C (Linksys)", { 0xab0813d1, 0xffffffff },
+ TULIP_IOTYPE, TULIP_SIZE1, COMET },
{ "STMicro STE10/100 Comet", { 0x0981104a, 0xffffffff },
TULIP_IOTYPE, TULIP_SIZE1, COMET },
I've put this in v0.93b which will appear at
ftp://www.scyld.com/pub/network/test/tulip.c
if you report that it works.
Donald Becker becker@scyld.com
Scyld Computing Corporation http://www.scyld.com
410 Severn Ave. Suite 210 Second Generation Beowulf Clusters
Annapolis MD 21403 410-990-9993