|
|
|
|
|
|
Linux and PCI-PCMCIA AdaptersLinux and PCMCIA Cards and CardBus Cards |
|
|
On this page: |
|
|
|
|
| Useful links: | |
|
|
PCMCIA Card ServicesThe Linux software that deals with PCMCIA cards is "pcmcia-cs" available from http://pcmcia-cs.sourceforge.net/ as download file "pcmcia-cs-3.1.22.tar.gz" At Elan, the PCMCIA Card Services 3.1.19 is the version that has been most extensively tested against, but we have every reason the believe that later versions also function correctly. |
|
|
Linux KernelThe implementation model of linux pcmcia is changing:
|
|
|
Known ProblemsShared InterruptsSome of the pcmcia card drivers don't properly support the sharing of interrupts. One particular example is the ide driver for flash-ATA cards. The observed effect is that a single flash card works fine no matter which slot on a P423 or P222 (for example) it is inserted into. However the act of inserting a second flash=ATA card is to lock-up the LINUX kernel, at which point one of the diagnostic LEDs on the adaptor card will show that an interrupt is active. |
|
|
Texas Instruments ControllersAdaptors featuring TI controller chips include:
From Linux's point of view only the controller chip is significant, all models using a TI chip are expected to behave in the same way. The PCIC type is i82365 and the necessary PCIC options are: "irq_mode=0 pci_csc=0 poll_interval=100" and are unfortunately set in different configuration files depending on the distribution. Some of the major distributions are listed below with the configuration filenames. The effect of these options are:
The reason for polling the controller for Card Status Changes is that some drivers do not seem to be able to share interrupts, the example that we at Elan found was the "ide_cs" module. It is the driver used for ATA flash cards. And since doing a poll is unlikely to strain your PC, it is easier to just always do it.
|
|
|
|
|
Cirrus Logic ControllersModels featuring a CL controller include:
From Linux's point of view, only the controller chip is significant, so all CL models would be expected to behave in the same way. The PCIC type is i82365 and the necessary PCIC options are: irq_mode=1 pci_csc=0 poll_interval=100" and are unfortunately set in different configuration files depending on the distribution. Some of the major distributions are listed below with the configuration filenames. Please note that the irq_mode parameter setting required is different to that in the Texas Instrument controller. The effect of these options are:
The reason for polling the controller for Card Status Changes is that some drivers do not seem to be able to share interrupts, the example that we at Elan found was the "ide_cs" module. It is the driver used for ATA flash cards. And since doing a poll is unlikely to strain your PC, it is easier to just always do it.
|
|
|
|||||||||
Modules InstalledBefore a pcmcia card is inserted a module listing using "lsmod" should show
though the module sizes might be different in different versions |
|
|
Card ManagerThe daemon "cardmgr" should have been started at boot time, but check the output of "ps faxw". It is the program that checks the card status and subsequently loads and configures drivers as and when pccards are inserted or removed. |
|
|
||||||||||||||||||||||||||||||||||||||||||||||
InterruptsCheck "/proc/interrupts" to ensure that your card is actually working in interrupt mode and not polling. Check that the interrupt count is incrementing:
|
|
|
P111 ExampleVarious pcmcia cards have been tested running with our P111 card, and here are two example "dmesg" listings to show what you should see if all is working Kernel - 1[snip] Kernel - 2[snip] |
|
|
P222 exampleA 32bit single function Ethernet Cardbus-card and a 6bit dual function Ethernet and modem card have been tested simultaneously in this adaptor. Here are some diagnostics: PCI BusFirst verify that the P222 is visible to the kernel via the PCI bus. The output of the linux command "lspci" should look something like: 00:00.0 Host bridge: VIA Technologies, Inc. VT82C691
[Apollo PRO] (rev 44) The important bit being two entries for "CardBus bridge", because it's got two slots Kernel - exampleCheck that Card Services are operating by viewing the output of the "dmesg" linux command: Linux version 2.2.16 (root@olech) (gcc version
egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)) #5 Mon Sep 25
10:13:10 /etc/localtime 2000 The pcmcia cards here are 32bit single function Ethernet(eth3) Cardbus-card and a 6bit dual function Ethernet(eth4) and modem (tty00) card. The drivers managed to share successfully and the modem and 32but ethernet card were working at the same time.top of page |
|
|
P116 exampleA 32bit single function Ethernet Cardbus-card and a 6bit dual
function Ethernet and modem card have been tested simultaneously
in this adaptor. Kernel - exampleCheck that Card Services are operating by viewing the output of the "dmesg" linux command: [snip] |
|
|
DiagnosticsThe most useful diagnostic tools are:
|
|
|
ProblemsTypically most problems come from not getting the configuration parameters right. |
|
|
Examples of Incorrect ConfigurationHere the P111 has been configured for ISA interrupts, and the card might appear to work if the pcmcia driver has a fall back option of using polling. But by repeatedly looking at /proc/interrupts it will be seen that the interrupt count is not incrementing. The "dmesg" output will show that pci interrupts are not configured: [snip] |
|
|
A customer exampleOne of our customers managed to get a P011 adapter card working with a 2.1.18 kernel and pcmcia 3.1.22. He reports that PCIC_OPTS="irq_mode=0" alone did not work, giving: [snip] However using pcmcia-cs-3.1.22/debug-tools/dump_pirq to identify the
correct IRQ number (11 in his case), he found that PCIC_OPTS="irq_mode=0
pci_irq_list=11,11" worked! Tony Olech, 29 May 2001 |
|
|
|
Please
E-mail Or Call For Pricing, Lead Time And Shipping Fees.
|
| All trademarks used in this data sheet are registered trademarks of the relevant firms. LabView® and LabWindows® are registered trademarks of National Instruments Corp. Microsoft® Windows®, Windows NT®, Visual Basic® and Visual C++® are either registered trademarks of Microsoft Corporation in the United States and/or other countries. Our continuous product improvement makes specifications subject to change without notice. |