This forum is used to announce updates to the standalone Linux PCMCIA driver package. If you subscribe to this forum, you'll get automatic email notification of all driver updates.

Please do not add your own messages to this page. It will annoy people, and I'll delete them.

Messages Inline: 0 All Outline: 2 3 All

News PCMCIA driver release 2.9.2

Date: 1997, Mar 21
From: David Hinds dhinds

After several "interim" 2.9.2 releases, I've finally patched things up and put together an official 2.9.2 package. It is in the usual place,

Changes from previous releases are at

Some of the things on my "to do soon" list for PCMCIA include: reorganizing the PCMCIA-HOWTO; adding documentation and helper scripts for setting up "initrd" disks for booting from PCMCIA devices; and fixing transceiver autodetection in the 3Com ethernet driver.

-- Dave

News PCMCIA driver release 2.9.3

Date: 1997, Apr 14
From: David Hinds dhinds

This release fixes a handful of moderately important bugs in the 2.9.2 drivers. You'll find it at

Changes from previous releases are at

This release once again reorganizes a lot of the probe code in the i82365 driver, to hopefully do a better job of handling multiple controllers, particularly multiple PCI controllers. I hope that CardBus support (for 16-bit cards) will eventually become more stable, but there are still a few problems.

The transceiver autodetection code in the 3c589 driver should work again. The old code broke on recent 2.1.X kernels, so it was disabled in 2.9.2. The new code seems to work well on my machine running a 2.1.28 kernel.

For the next release, I'll include some helper scripts for setting up "initrd" PCMCIA boot images.

-- Dave

News PCMCIA driver release 2.9.4

Date: 1997, Apr 15
From: David Hinds dhinds

Boy, that was quick...

This release should fix the PCI controller probe in the i82365 module (which I broke in 2.9.3). Also, I've rewritten (again!) the transceiver autodetection code in the 3c589 driver. The new autodetect code will only be active if you do not explicitly select the transceiver type. And it should work a bit better than it did in 2.9.3. My only excuse is that it is really tricky to debug this when your "network" consists of one laptop, two adapter cards, and a 10baseT hub.

Other minor changes include some updates for 2.1.31 and later kernels. Actually, the package will now refuse to compile under 2.1.31 through 2.1.33, due to some kernel problems that didn't seem worth the trouble of finding workarounds. If you want to be on the cutting edge, go straight to 2.1.34.

-- Dave

News PCMCIA driver release 2.9.5

Date: 1997, Apr 24
From: David Hinds dhinds

This release adds support for a couple cards that are slight variations of other already supported cards: the 3c562D, and the Quatech quad serial card. The IBM Token Ring and WaveLAN drivers have also been updated. For the WaveLAN, you'll find a new set of wireless tools in

The i82365 controller probe code continues to evolve (or is it devolve?). This release should fix major problems with detection of multiple controllers. I think this will fix the last of the bugs I know about, so if you're still having trouble, let me know.

One somewhat significant new feature is support and documentation for setting up ``initrd'' ram disk images for mounting the root filesystem from a PCMCIA device. There's a new section in the HOWTO describing how to do it, and a helper script for creating the images, called ``pcinitrd''. This is somewhat tricky to get working, and introduces some chicken-and-egg problems if you're trying to install Linux for the first time onto a PCMCIA device and don't have access to another Linux system for compiling kernels and drivers. Hopefully, similar capabilities can be included in future Linux distributions.

-- Dave

News PCMCIA driver release 2.9.6

Date: 1997, Jun 04
From: David Hinds dhinds

Well, I've accumulated quite a few changes from the 2.9.5 drivers, so while there may still be some glitches to be worked out, I think it's about time for a new official driver release. The new files are at

Changes from previous releases are at

One fairly major change is that the new drivers will probe for working memory windows on their own. The default window in the packaged config.opts file is now 0xc0000-0xeffff, and the drivers will check this entire region for ranges that seem functional. I would like to hear about how well this works in practice, particularly if you had to specify a non-standard memory window in config.opts for previous driver releases. Try changing your window to 0xc0000-0xeffff and see if the drivers can successfully work things out.

CardBus controller support is hopefully getting better, but still doesn't work properly on some platforms. HP Omnibook 800 models still seem troublesome, for example.

News PCMCIA driver release 2.9.7

Date: 1997, Jul 07
From: David Hinds dhinds

Changes from previous releases are at

Perhaps the most auspicious change in this release is the inclusion of a driver for various Xircom ethernet and ethernet/modem adapters, written by Werner Koch. This has been probably the single most requested addition to the Linux PCMCIA package for the past few years. For several years, Xircom technical information was not available without a nondisclosure agreement. Then, the problem became one of finding someone willing to actually write the driver. Thus ends the long Xircom saga...

-- Dave

News PCMCIA driver release 2.9.8

Date: 1997, Sep 05
From: David Hinds dhinds

Changes from previous releases are at

Memory card support has been rewritten for this release: the functionality of the old pcmem_cs driver has been merged into the memory_cs driver, and pcmem_cs has been removed. If you used the pcmem_cs driver in the past, check the instructions in the PCMCIA-HOWTO and the memory_cs man page to see how to use the new driver.

The 2.9.8 drivers should restore clean compiles with 1.2.13 kernels, as well as compiling against the latest 2.1.* development kernels.

Other significant changes include updates for the Xircom Netwave and ethernet drivers, and new support for the Motorola Mariner cards.

-- Dave

News PCMCIA driver release 2.9.9

Date: 1997, Sep 11
From: David Hinds dhinds

Changes from previous releases are at

This release fixes a bad bug in card insertion/removal processing that cropped up in the 2.9.8 package.

The only other major change in this release is that I've added a new way of specifying interrupt lists. Instead of the old scheme using the 'irq_mask' bit masks, all the driver modules now allow you to specify comma-separated list of interrupts using the new 'irq_list' parameters. So the old:


would become:


-- Dave

News PCMCIA driver releases 2.9.10 and 2.9.11

Date: 1997, Nov 14
From: David Hinds dhinds

These were mostly bug-fix releases, with not a lot of user visible changes. There were a number of changes in the configuration process, which should make things more bullet proof and prevent a lot of the more common configuration goof-ups. The memory card and FTL drivers were substantially updated.

-- Dave

News PCMCIA driver release 2.9.12

Date: 1997, Nov 14
From: David Hinds dhinds

Beyond various bug fixes, the most significant changes in this release were made to accommodate 2.1.60 kernel changes.

Of interest to PCMCIA driver developers, the 2.9.12 release adds a new field to the irq_req_t structure used by the RequestIRQ service. When an interrupt handler is specified, the new ``Instance'' field specifies a device instance to be used for the Linux request_irq() call. This value will be passed to the interrupt handler as its last parameter, for 2.0 and later kernels. With older kernels, the value will be stored in the irq2dev[] table. Check the use of the new DEV_ID macro in the 2.9.12 client drivers to see how to write a driver that works across all supported kernel versions.

This release also adds a new section to the PCMCIA-HOWTO, with some instructions for the maintainers of Linux distributions.

This release may fix some problems people have been having with newer Ositech Jack of Diamonds cards. There are actually two interacting problems at work; one is a timing issue with TI113X CardBus controllers (that should be solved by this release), and the other is a bus sizing issue (that not be solved). I would appreciate feedback about whether this release fixes the problems people have been having.

-- Dave

News PCMCIA driver release 3.0.0

Date: 1998, Feb 20
From: David Hinds dhinds

Finally, the long awaited official release of PCMCIA 3.0.0!

See for a mostly complete list of the (many) changes from 2.9.12. The PCMCIA-HOWTO has also been updated, reorganized, and expanded.

The core PCMCIA modules now include (experimental) support for CardBus cards. There is only one CardBus driver at the moment, for the 3Com 3c575TX fast ethernet adapter. The driver uses the same source file as the 3c59x PCI driver. I haven't figured out a long-term solution to where this file should reside: it will eventually be part of the regular kernel, and I don't want to duplicate it in the PCMCIA package. So it is not included in the 3.0.0 "tar" package. It is available at To use the file, copy it to to pcmcia-cs-3.0.0/modules, and do:

    make MODULES=3c59x_cb.o install

Maintainers of contributed PCMCIA drivers should check the new k_compat.h header for changes made to accommodate recent 2.1-series kernel interface changes.

-- Dave

News PCMCIA driver release 3.0.1

Date: 1998, May 12
From: David Hinds dhinds

Well, this turned out to be a larger revision than I had intended. The complete list of changes is at

Toshiba appears to be setting itself up as the new Bad Boy for Linux PCMCIA support, thanks to an inability to release specs for the ToPIC chip sets. Until specs are available, there will be no support for 32-bit cards on Toshiba platforms, and 16-bit support may be flaky.

The PCMCIA-HOWTO has been changing quickly: I'm expanding the section on troubleshooting common problems, and would like to fill out the section on PCMCIA specifics for common Linux distributions. I would appreciate help with this section, since I can't follow all distributions myself.

CardBus support is still undergoing fairly rapid change. The 3c575 driver is now bundled with the main package, and an experimental driver for the Adaptec 1480 is also included. Due to changes in PCI support, CardBus cannot be made to work with recent (post 2.1.90) kernels. Hopefully, the necessary hooks for supporting removable PCI devices will appear in the near future. Once that is available, I think this will also solve some problems people have been having with the Adaptec card.

-- Dave

News PCMCIA driver release 3.0.4

Date: 1998, Jul 20
From: David Hinds dhinds

Well, it looks like I forgot to post announcements for 3.0.2 and 3.0.3. So this really covers all the changes from 3.0.1 up to the new 3.0.4 release...

There are lots of internal structural changes that (should) have no user-visible consequences. Many of these were to make the core components more portable (and a perusal of the #ifdef's will show specifically why that was done). As for visible changes... there are the usual assortment of bug fixes. Various problems that appeared in 3.0.0 or 3.0.1 should now be fixed: probably the most important ones were in the memory window allocation logic. A few Cardbus problems were also fixed. The new code should also build properly against all the latest kernels (including both the stable 2.0.* series and the development 2.1.* series).

As for improvements in functionality... 3.0.4 implements a /proc/bus/pccard tree for 2.1.105 and later kernels. Much of the information can only be interpreted with datasheets in hand, but it should still be a useful debugging tool. The cardctl command has a new "ident" subfunction, which should reduce the need to go poking through kernel message logs.

-- Dave

News PCMCIA driver release 3.0.5

Date: 1998, Aug 22
From: David Hinds dhinds

I've fixed a bunch of fairly serious bugs in CardBus support, having to do with resource management, and CIS processing. It all seems much more stable now (with the few CardBus cards I have access to).

The "dump_cis" and "pack_cis" tools have received a major makeover. Before, they were simply undocumented and of little or no use to anyone except me. Now they have man pages, and have been rewritten to work together: "dump_cis" output has been cleaned up so that it can be largely fed right back into "pack_cis". The man pages are short and do not attempt to explain the contents of a Card Information Structure... I'm afraid that to do more would require writing a book on the subject.

Memory probing has been a thorn in my side for a long time. I think I've finally fixed the last probing bugs introduced in earlier 3.0.* releases, so probing is now about as safe as it can be. Old /etc/pcmcia/config.opts files are set up to only use memory in the 640K-1MB "hole" for PCMCIA, but with newer CardBus controllers, it is better and safer to use space near the top of the x86 address space. High memory is less crowded and less likely to conflict with other system devices. The default config.opts file now includes the 0xa0000000-0xa0ffffff memory range. If you have a CardBus controller and are upgrading from an older release, make sure your config.opts file includes a memory range like this.

-- Dave

News PCMCIA driver release 3.0.6

Date: 1998, Nov 21
From: David Hinds dhinds

This release has been slow to arrive because I was hoping to hold off until a few key problems were resolved. Though some serious problems remain, I think the number of accumulated fixes justifies a new release.

CardBus support continues to stabilize, slowly but surely. The 3c575 driver has seen several improvements. Newer 3CCFE575 cards should work fine now (well, let's say that there should not be any 3CCFE575-specific problems). The driver also should no longer lock up if a 3c575 is hot ejected. I've changed the CardBus controller initialization to improve performance, by enabling burst transfers and write posting. ToPIC95 chipset support is much improved, and seems to actually work reliably for many people. ToPIC97 and O2Micro chipsets both seem to suffer from some interrupt configuration problems that I haven't been able to figure out by staring at datasheets.

CardBus and PCI interrupts still are not getting along. The basic problem is Microsoft's PC98 spec... which decreed that the BIOS should not initialize the PCI interrupt settings for non-boot devices, which include CardBus bridges. And Linux is basically not a PnP OS, so it doesn't provide any appropriate hooks for retrieving the interrupt routing information. So the Linux PCMCIA code is left having to guess the interrupt routing for CardBus bridges, which turns out to be fairly hard. So 3.0.6 still defaults to not using PCI interrupts.

The 3c574/3CCFEM556B driver is still broken. There seems to be an initialization problem... for some people, the card works perfectly fine, but for others (including me), the card does not respond at all.

Other annoying bugs finally fixed: the D-Link and related NE2000-compatible 100baseT cards should now work fine without any weird startup gymnastics. IDE cards that are slow to spin up should no longer need the old "unreset_delay" option. 3.0.6 compiles cleanly with the latest 2.1.* kernels, though the APA1480 driver is broken from 2.1.125 onwards.

-- Dave

News PCMCIA driver release 3.0.7

Date: 1999, Jan 15
From: David Hinds dhinds

This release has actually been out for a few days, and will probably be soon followed by 3.0.8, which is required for clean builds against the new pre-2.2 kernels. In the meantime, if you need to compile against pre-2.2, get the latest beta from

As for 3.0.7, this is a fairly minor update. It has some fixes for pre-2.2 but they are not complete. I've finally removed various bits of old code for supporting pre-2.0 kernels, and have tried to clean up the HOWTO in this regard as well: enough things don't work with pre-2.0, and it is hard enough to maintain the stuff that does work, that I don't think it is worth the effort anymore.

The ibmtr_cs driver seems to be a continuing source of problems. I've fixed at least some of them in this release, but this driver really needs a friend to watch over it. I've never touched either a token ring card or a token ring network, so it is fairly impossible for me to maintain this driver properly.

3.0.7 fixes a bad bug in the 3c575_cb driver that I introduced in 3.0.6, which causes the old 3C575 cards to choke and lose interrupts. And I've made a few more tweaks to the resource allocation code for memory and interrupts, in the endless quest to find the settings that do the least harm across the set of all possible hardware configurations.

The only new functionality is the addition of dhcpd support in the network configuration script.

-- Dave

News PCMCIA driver release 3.0.8

Date: 1999, Jan 22
From: David Hinds dhinds

The most significant feature of this release for most people is that it will build cleanly against the pre-2.2 kernels. APA1480A support is also fixed for these kernels.

In other action, I've made some changes in how cardmgr responds to signals. In the past, a SIGHUP caused cardmgr to forcibly unload all client drivers, reload its configuration files, then reconfigure all cards. Now, it just rescans the configuration files, and doesn't touch cards. Also, now a SIGTERM will only shut down cards that are not busy. This should permit cleaner shutdowns when the root filesystem is on a PCMCIA device: in the past, cardmgr could muck things up by unloading ide_cs even when a device was mounted.

The i82365 module now recognizes the TI 1251A, 1251B, and 1450 bridges, but I'm told that the 1251A in the newer Thinkpad 600's still does not work properly. I haven't been able to deduce what's wrong by staring at the datasheet. It might help if someone running a recent kernel could send me their /proc/bus/pccard/* dumps.

The token-ring driver seems to still have some severe problems. What I'd *really* like would be for someone to volunteer to take over maintenance of this driver, since I have no token ring experience and no appropriate hardware.

- Dave

News PCMCIA driver release 3.0.9

Date: 1999, Feb 16
From: David Hinds dhinds

This release is mostly just a bunch of bug fixes. A few more cards are now supported (D-Link DMF560TX, Olicom GoCard 33.6). And the Wavelan now has some support for roaming, though it is apparently not the "real" Wavelan roaming protocol.

Among the more important fixes, this version should compile cleanly against 2.2 SMP kernels. Various memory probe problems should also get handled more sensibly, with fewer goof-ups resulting in everything-is-a-memory-card.

The Configure script now has command-line options for setting all the build options. This probably will only be useful for distribution maintainers, but others may also want to use the "--noprompt"/"-n" option, which just says to re-configure using all the previous configuration choices, which is useful if you've rebuilt or upgraded your kernel but don't want to bother with answering the PCMCIA config questions again.

This release will build the tulip_cb and epic_cb drivers by pulling the source code from the Linux kernel source tree, if it is new enough. So from now on, if you need to use an updated version of one of these drivers, you'll need to put the source file (Donald Becker's tulip.c or epic100.c) in your kernel source tree, not in the PCMCIA tree, where it would be ignored.

-- Dave

News PCMCIA driver release 3.0.10

Date: 1999, May 28
From: David Hinds dhinds

This was a slow release... I'll try to make the next few releases quicker, with more self contained groups of changes.

In the area of kernel compatibility, there are several fixes for 2.2 kernels, as well as the latest 2.3.1 patch. The aha152x driver was broken for kernels 2.2.6 through 2.2.8, but has been fixed for 2.2.9.

Now that I've got specs for the 3c589, I decided to overhaul the flaky transceiver autodetection code. The new driver should autodetect in one or two seconds, and will continuously monitor the cable status. I've had some mixed reports of how well this actually works, so I may need to tweak the switching algorithm.

I've changed the pcnet_cs driver to automatically decide between using shared memory or polled IO for packet transfers, by testing the shared memory mode directly. This replaces the old method based on a table of known card types. The new method should require fewer driver tweaks to accommodate new cards. The old "use_shmem" module option has been deleted.

I've fixed a couple of the less critical problems with the 3c574_cs driver. A recent driver update caused it to resize the tx/rx buffer space from 64K to 8K, which led to various overrun problems. The main problem (an initialization problem that in some configurations blocks all network activity) remains unsolved.

The "ifuser" command had some serious bugs that caused it to rarely do the right thing on systems with multiple network connections: it would effectively assume that all destinations were reached via the default route, whatever that happened to be. I've fixed this.

The FTL driver has several fixes. It seems to be getting much more use these days (a good thing)... I never actually had much use for it, so I didn't give it much exercise. But with these fixes, hopefully, it will be reasonably stable.

There are fairly major updates to the Wavelan and Token Ring drivers. The Token Ring driver should now finally be functional with recent 2.2.* and 2.3.* kernels, though I'm still getting some problem reports with specific cards.

-- Dave

News PCMCIA driver release 3.0.11

Date: 1999, May 28
From: David Hinds dhinds

This is mostly a minor-bug-fix release. I've added support for a few new card types. Some smc91c100 fast ethernet cards now work... and I've fixed some problems with dual-voltage 3.3V/5V IDE and serial cards. The pcnet_cs driver in 3.0.10 changed to autodetect whether or not to use shared memory. In this release, we're more conservative about whether or not we probe for shared memory, since this seems to lock up some cards.

The big news is that the most serious 3c574_cs bug has been fixed. I finally got a code snippet from 3Com from their driver initialization routine, and dropping it into 3c574_cs immediately solved the problem where the card simply refused to do anything. I also added some code to monitor the transceiver status, and to also check for and sort-of recover from missed interrupts. Performance on 100baseT still stinks.

I've added a first draft of a driver for parallel port cards, but it isn't really documented well enough to be useful yet. The Linux parallel port driver architecture is kind of tricky and you've got to load the various modules in the right order for things to work... I'll add more details to the HOWTO when I have a chance. Also, I'm waiting for Quatech to send me some more info about how to configure their cards for enhanced mode.

-- Dave

News PCMCIA driver releases 3.0.12 and 3.0.13

Date: 1999, Jul 01
From: David Hinds dhinds

I forgot to write up the 3.0.12 release, so I'll describe 3.0.12 and 3.0.13 together here...

I've done some work on the smc91c92 driver to handle some more card types. The Ositech Jack of Hearts cards should now work, and this may also fix some problems with Jack of Diamonds cards.

I think I've fixed all remaining problems with the 3c589 and 3c574 transceiver monitoring code. The 3c589 should no longer get stuck on 10base2 at the wrong times, and both drivers will work across suspend/resume events.

3.0.13 should build cleanly against all 2.2 and 2.3 kernel releases. Because of kernel bugs affecting various types of cards, I recommend at least 2.2.10 or 2.3.6.

I think 3.0.13 is quite stable: it doesn't appear to have any major bugs with any of the standard drivers. 3.0.14 will be out soon but (so far) has only a few minor tweaks.

-- Dave

News PCMCIA driver release 3.0.14

Date: 1999, Aug 10
From: David Hinds dhinds

I've received a few new cards from Ositech, and as a result, have reworked the smc91c92_cs driver a bit. The driver now has a fancy transceiver autodetection routine like the 3c589_cs driver, and should detect 10baseT vs 10base2 on the fly.

The 3c575_cb driver should now handle APM suspend/resume events correctly. I've also fixed it to handle the new 3CCFEM656B cards. Unfortunately, the 656 cards have Winmodems that probably won't ever be supported under Linux. 3Com is deciding what to do about this... they're considering helping me to implement some modem support for a future rev of the card (656C?), but owners of current cards are almost definitely out of luck.

I've decided to include a copy of Donald Becker's tulip driver in this release. The version that seems to work best with the Cardbus cards (0.91) isn't in any of the current kernel trees, which was inconvenient. I've also merged in the Xircom CardBus driver mods in a way that won't interfere with non-Xircom cards. There are still some rough edges, though: a couple people have reported erratic network performance with long pauses. I also added a delay to the serial_cb module, which should fix the erratic modem initialization problem with the Xircom CardBus ethernet/modem cards.

Most of the remaining changes were minor bug fixes. The most serious bug was a memory probe problem introduced in 3.0.13 that would in some cases cause the probe to incorrectly report failure.

-- Dave

News PCMCIA driver release 3.1.0

Date: 1999, Sep 10
From: David Hinds dhinds

This is actually a fairly major update, with a bunch of fairly important bug fixes and some new functionality. The 3.1.0 package should build cleanly with development kernels up to 2.3.17.

You may want to check your /etc/conf.modules file to see if it is accumulating duplicate lines. A Makefile bug in previous PCMCIA releases caused a "make install" to unconditionally add the PCMCIA lines to this file, so in my case, it had quietly grown to several hundred lines.

I've added a PnP BIOS subsystem to the PCMCIA modules, to help avoid resource conflicts. This should really be located somewhere else in the kernel, but it isn't, so here it is. The PnP BIOS is supposed to know about all "motherboard devices": what they are, what resources they use, and how to configure them. If you enable PnP BIOS support, you'll get a few new things: /proc/bus/pnp will appear, structured much like /proc/bus/pci. /proc/bus/pnp/devices lists your system's PnP devices, and each device also gets a numbered file that can be used to read and write raw binary PnP resource data. There are two new utilities, lspnp and setpnp, for viewing and manipulating PnP BIOS configuration data. See their man pages for more info. Also, /proc/bus/pccard contains some new files (irq, ioport, memory) that will show resource maps for PnP devices.

I think a major ToPIC chipset bug is finally fixed properly; with recent releases, cards were generally misdetected if they were present at PCMCIA startup time.

A few bad config file entries crept into the 3.0.12-3.0.14 releases, causing the tulip_cb driver to be loaded for various 16-bit modem and network cards, with unpleasant results. The bogus entries have been removed.

Linus has started merging PCMCIA into the kernel tree, starting with 2.3.17. This is still very much a work in progress, and there is no documentation for how to use the in-kernel PCMCIA subsystem at this time. I haven't yet figured out how to organize things so that I can have a single source tree for maintaining the in-kernel and standalone PCMCIA distributions.

-- Dave

News PCMCIA driver releases 3.1.1-3.1.3

Date: 1999, Oct 26
From: David Hinds <>

A quick recap of the past couple releases:

3.1.1-3.1.2 have a bunch of minor changes to help me attempt to keep my tree in sync with the PCMCIA stuff in the 2.3 kernel tree. I hope this doesn't turn out to be futile.

I've been continuing to fix various Toshiba ToPIC chipset problems, though it seems to usually be two steps forward, one step back, since each change I make seems to have unexpected consequences. With 3.1.3, things seem to finally be reasonably predictable on my coworker's Portege.

The kernel PCMCIA integration is still very much a work in progress. I've moved a few more clients into the 2.3.23 tree, but getting the build scripts to work properly has been difficult, and it is all taking a lot of time that I'd prefer to be spending on other things.

An important note for distribution maintainers: the Linux filesystem standard now says that persistent state files should go under /var/state/. I've modified cardmgr, cardctl, etc to first use /var/state/pcmcia if it's available, then fall back on /var/lib/pcmcia, or finally /var/run.

The Xircom CardBus support in the tulip_cb driver seems to still be highly questionable.

I've enabled the "pci_csc" option in the i82365 module, which says that PCI interrupts should be used for card status changes, if possible. This may not be a good idea. I would like feedback on whether this causes trouble.

-- Dave

News PCMCIA driver releases 3.1.4-3.1.6

Date: 1999, Dec 11
From: David Hinds <>

These releases sort of fit together, I guess, because 3.1.5 and 3.1.6 fixed a couple bugs that snuck in around 3.1.4, and now I think 3.1.6 is reasonably solid.

I've rewritten some of the code for selecting IO and memory windows for PCMCIA devices, but I'm not sure if the changes are all for the better. In theory, the new code should do a better job of allocating IO ports in cases where cards have strict requirements about where they can be mapped. However, this also means that the new code may map cards at odd locations, like ports above 0x1000, and that doesn't always work. I'm not sure about the best solution to this problem.

There have been a few tweaks to the xirc2ps_cs driver. Cards with 100baseT transceivers should no longer lock up the system for several seconds while they autonegotiate the link speed. And I also shut off the warnings about dropped rx packets. On a 100baseT link, these cards will always drop packets, so it is pointless to log it.

Use of PCI interrupts with CardBus bridges continues to be a sore point. Some systems require it, at least for CardBus cards; however, for various reasons, it has not been safe for the PCMCIA layer to count on PCI interrupts working. The kernel cannot always determine interrupt routing for CardBus bridges. My PnP code can sometimes help, and later 2.3 kernels also do a better job. But my PnP code causes problems of its own on some platforms, and on other platforms, all the tricks for figuring out PCI interrupt assignments come up empty. In other cases, we know the routing, but enabling PCI interrupts causes system lockups, probably due to conflicts with other PCI device subsystems.

Integration of PCMCIA into the 2.3 kernel tree is an ongoing project, and there is still quite a lot to be done. Besides merging the remaining client drivers, I need to work on the configuration scripts for the standalone package so that it will mesh better with a PCMCIA kernel.

-- Dave

News PCMCIA driver release 3.1.7

Date: 1999, Dec 17
From: David Hinds <>

This is essentially a pure bug fix release...

It appears that all versions of the 3c575_cb driver (and 3c59x driver in the kernel tree) have a bug in the "too much work in interrupt" handler code. The symptom is that you get one of these messages, network traffic ceases, and your system wedges some time later, maybe after a transmit timeout or at card eject time. It is fixed in this release.

I removed the PCI interrupt detection code from the i82365 module because it has never been reliable, and in fact is often dangerous. There is now yet another module parameter, pci_irq_list, that you can use to directly enter the PCI interrupt assignments for your PCI sockets, if necessary. It should rarely be needed on newer laptops with newer kernels and/or when PCMCIA is built with PnP BIOS support turned on.

A new cardmgr feature in 3.1.6 (wildcard matching for config file inclusions) turned out to be glibc dependent, so I've re-done it to also work on libc5.

And there are a few other less interesting bug fixes too.

-- Dave

News PCMCIA driver release 3.1.8

Date: 1999, Dec 22
From: David Hinds <>

A very minor update...

The most significant fix is to accommodate some block device API changes in the 2.3.32 kernel update. See the CHANGES file for the other minor updates.

Not really part of the 3.1.8 update, but there have been a couple of useful updates to the PCMCIA web site. I've added a page for all the datasheets I've collected, for anything PCMCIA related. Additions (that don't violate NDA's) are welcome. And I've added HTML conversions of all the PCMCIA man pages.

-- Dave

1. More Minor glitch... by David Hinds, 1999, Dec 22

News PCMCIA driver releases 3.1.9-3.1.12

Date: 2000, Mar 08
From: David Hinds <>

Well, there actually was a fairly good reason for delaying announcement of 3.1.9-3.1.11, because I think 3.1.12 is a bit more stable than those releases.

The most important change, introduced in 3.1.9 and refined in 3.1.10-3.1.12, is that the PCMCIA drivers now try to use PCI interrupts for CardBus devices. ISA interrupts are still used for 16-bit cards. This matches the interrupt scheme used by Windows, and this is the only scheme supported by some newer CardBus bridges. There still seem to be a few quirks to work out, but this feature now seems functional on the vast majority of platforms.

Starting in 3.1.9, there are a few more wireless drivers in the base PCMCIA distribution. Most of these were also updated in 3.1.12.

Among the more important bug fixes, the new drivers should fix problems with 3Com CardBus cards not waking up after a suspend. Also, there is a workaround for a problem with modem cards not working if configured for unusual IO port addresses (i.e., not one of the standard IBM PC port addresses): this is actually a kernel bug, but I could avoid it with a change to /etc/pcmcia/serial.

There have also been a number of changes to accommodate 2.3.* kernels. The PCMCIA support in the 2.3.* kernel tree is still experimental and has some serious unresolved issues. I hope to get to the point where it is possible to also build all the standalone PCMCIA modules against the latest kernel, but I'm not quite there yet; the modules work now, but the configuration process needs to be cleaned up.

-- Dave

None PCMCIA driver release 3.1.13

Date: 2000, Mar 15
From: David Hinds <>

This was a fairly minor update. The most important bug fix was to correct a problem in the ray_cs driver, that I introduced in the 3.1.12 patch. There are also several improvements in the PCI interrupt configuration code for CardBus bridges, for systems with less common PCI southbridges.

I also finished adding support for Cirrus PD6729-based card readers like the Elan P series. Apparently, these are going to be widely used for some future wireless products.

Here is a probably incomplete list of things on my to-do list:

 - clean up builds against 2.3.* kernels, and hopefully fix some 2.3 bugs
 - incorporate some new socket drivers for non-x86 platforms (specifically, ARM and MPC8xx)
 - sort out handling of newer D-Link DFE-650 cards
 - sort out support for AX88190 based NE2000 clones
 - clean up some code that uses deprecated kernel API's

-- Dave

News PCMCIA driver release 3.1.14

Date: 2000, Apr 11
From: David Hinds <>

There are no major changes in functionality in this release.

This release has a number of bug fixes, some important. One serious bug caused panics in the latest 2.2.* kernels when the i82365 module was unloaded; this bug is in the Red Hat 6.2 release. There are several fixes for PCI interrupt configuration with CardBus bridges. This code has been gradually improving over the past few releases. I've added some new information to the HOWTO and the i82365 man page to explain how interrupts are configured.

Courtesy of Jean Tourrilhes, there is a new config script for setting wireless network parameters for cards that support the linux wireless extensions. See the comments in etc/wireless.opts for more information.

I've added some low level code to support unusual socket controllers for non-Intel platforms. Motorola mpc8xx and ARM socket drivers are in the works.

I've verified that this release builds cleanly against 2.0.38, 2.2.15pre15, and 2.3.99pre3 kernels.

-- Dave

News PCMCIA driver release 3.1.15

Date: 2000, May 16
From: David Hinds <>

I'm getting a moderate number of problem reports associated with using wireless network cards in PCI card docks on desktop machines. Most of the problems are on old hardware that does not provide the PCI interrupt routing information that Linux needs to deliver interrupts from the card docks. I've been trying to fix these on a case by case basis, but it has been painful because some of the fixes can't be easily automated and rolled into the standard drivers. I'm not sure what to do about this.

In the tulip_cb driver, I've added a Xircom patch from Andrea Arcangeli, that seems to fix the rx address filtering so that "ifconfig ... promisc" isn't needed. This seems to work for my CBEM card, but I'm a little concerned about the patch, because I don't understand why the original code was so goofy. I'm worried that maybe there are multiple versions of the CBEM cards that behave differently.

With a lot of help from Jochen Friedrich, we've fixed the pcnet_cs driver to seamlessly support the latest revs of the D-Link DFE-650 and NetGear FA410TXC (and probably a few other 10/100 cards that use the pcnet_cs driver).

I've also changed the pcnet_cs driver to detect and complain about cards with Asix AX88190 chipsets. This chipset claims to be NE2000 compatible, but has several serious bugs that prevent the stock pcnet_cs driver from working correctly.

For debugging some common installation problems, I've added three new Perl scripts: test_setup, test_network, and test_modem. The tests are very superficial but are meant to help people who may not know where to start when a problem comes up.

On the 2.3.99 kernel front, I've been updating the in-kernel PCMCIA network drivers to accommodate some kernel API changes. The wireless drivers are broken at the moment but I hope to finish fixing them soon. The client drivers in the 3.1.15 tree won't build against these latest kernels either; I'll come up with a fix for this soon.

-- Dave

News PCMCIA driver release 3.1.16

Date: 2000, Jun 23
From: David Hinds <>

I've done a fairly major update of the 3c575_cb driver, folding in most of the changes from Donald Becker's latest 3c59x release. I've fixed one old bug with 3CXFE575CT card initialization, where transmits would be "stuck" for 15-30 seconds. I still have a number of unresolved problem reports with this driver, with cards that seem to work fine in my hands. I think these problems will probably turn out to be with the low-level CardBus socket driver code rather than with the 3c575_cb driver, but they have been hard to track down. Some may also relate to undocumented differences between minor chipset revisions. There seem to be cases where several chipset product codes all have the same product name.

This release enables "PCI read prefetch" on Ricoh CardBus bridges. This significantly improves performance of system-to-card bus master operations; I have a report that this made a big difference for 100baseT transmit performance. Normally I would expect the BIOS to take care of this but it seems that can't be relied on.

Some Toshiba users have been reporting an "oops" at startup time with CardBus cards. The basic problem seems to be a Toshiba chipset quirk, that causes the bridge to register an "eject" event right after a card is first powered up. The result was a race between the insert and eject handlers. I've fixed the race to prevent the oops. I'm told that increasing the setup_time and vcc_settle parameters for the pcmcia_core module prevents the insert/eject/insert flipping.

This release also fixes some compatibility problems both with older 2.0.* kernels, and the latest 2.4.0-test1 kernels.

News PCMCIA driver release 3.1.17

Date: 2000, Jun 23
From: David Hinds <>

A major change in this release is that now a copy of the epic_cb driver is included in the PCMCIA package, rather than always using the copy from the current source tree. This frees us from relying on the kernel source tree having a version that supports CardBus; the new epic_cb driver should build across all supported 2.0, 2.2, and 2.3/2.4 kernels. I've also included a CardBus driver for Intel eepro100 based cards (i.e., the Intel EtherExpress Pro100 CardBus II), contributed by Peter Naulls and Philip Blundell.

I've also updated all the documentation, man pages, etc to reference the PCMCIA sites on * rather than the old addresses, which may go away or be redirected at some point in the future.

Other than that, there are just a few fixes for rare problems.

News PCMCIA driver release 3.1.18

Date: 2000, Jul 11
From: David Hinds <>

This is mostly a minor bugfix release. I fixed a bunch of script problems. The only potentially tricky change was to make the card identification code use 16-bit memory windows instead of the old 8-bit windows. This fixes a reported problem with one oddball card that doesn't seem to support 8-bit accesses. I am crossing my fingers and hoping that it doesn't break other oddball cards that don't support 16-bit accesses. I had been pretty sure that 8-bit support was required by the PC Card Standard, but what do I know?

Oh... the wvlan_cs driver in this release should work properly both with the older Lucent 4.* firmware as well as with the current 6.* firmware.

-- Dave

Announcements of PCMCIA driver updates

Add Message to: "Announcements of PCMCIA driver updates"

Members Subscribe Admin Mode Show Frames Help for HyperNews at 1.10