Table of contents:

Links:

Background 

The core of the 2.6 PCMCIA subsystem is undergoing gradual evolution to improve its integration with the Linux kernel. This involves a series of clean-ups, code re-organisations, and even some rewrites of parts of the existing subsystem.

On these page I will attempt to inform of the changes which affect end users (especially in the HOWTO) and PCMCIA device driver authors and maintainers (these should take a look at this page). Also, as mistakes do creep in from time to time, this page will also inform of fixes for known bugs, or it will contain details describing what information is required to help track down the cause.

Please note that these documents here relate to the core Linux 2.6 PCMCIA subsystem, not to PCMCIA card or device drivers. These are the responsibility of the individual driver maintainers.

There is also the 2.6 kernel bugzilla, which can be used for core PCMCIA bug reports (ie, socket driver bug reports, core pcmcia subsystem bug reports, and the like.) However, please do not enter PCMCIA card driver bugs under the "PCMCIA" category - they come my way; I don't have any real interest in sorting these out. These should be posted to the mailing list (see below.)

PCMCIAutils 

PCMCIAutils contains the initialization tools necessary to allow the PCMCIA subsystem to behave (almost) as every other hotpluggable bus system (e.g. USB, IEEE1394). This is made possible either by hotplug scripts or udev rules.

Please note that the kernel support for this new feature is only present since 2.6.13-rc1. Also, you need sysfsutils 1.3.0 as well as module-init-tools 3.2-pre4 or later, and either hotplug or udev installed on your system.

latest release:

pcmciautils-013 (tar.gz, tar.bz2)

previous releases:

pcmciautils-012 (tar.gz, tar.bz2

pcmciautils-011 (tar.gz, tar.bz2)

git tree:

The pcmciautils git source tree can be found at git://git.kernel.org/pub/scm/linux/pcmcia/pcmciautils.git/ and can be browsed using this git web interface.

Mailing list 

There is a mailing list for 2.6 PCMCIA, which can be found at "linux minus pcmcia at lists dot infradead dot org" (list address obfuscated to reduce spam.) For more information, subscription and archives see this page.

Known problems 

applying / removing socket power

These are covered at an extra page:

Unable to suspend Thinkpad T.22

This Thinkpad does not like us placing the Yenta bridge into PCI D3 state.

cs: unable to map memory

Try issuing


	pcmcia-socket-startup
	

CardBus (sometimes also PCMCIA) cards not found

On several, especially new systems the Yenta bridge is not on the root PCI bridge, but behind a PCI-to-PCI bridge. On some x86 or x86_64 systems, these bridges aren't corrreclty set up by the BIOS, which may cause CardBus and even PCMCIA devices not to show up in lspci or in pccardctl ident correctly. If you suspect that this may be the cause, issue this command:


	lspci -v | grep subordinate
	

Its result may be like this:


        Bus: primary=00, secondary=02, subordinate=04, sec-latency=64
        Bus: primary=02, secondary=03, subordinate=06, sec-latency=176
        Bus: primary=02, secondary=07, subordinate=0a, sec-latency=176
	

Let's decode the first line: bus 0 (primary) is bridged to busses 2 (secondary) to 4 (subordinate) by a bridge. The second and the third line state that bus 2 is bridged to busses 3-6, and 7-10. However, the CPU (which itself is connected to bus 0 through the root bridge) needs to be able to access all these busses. If you try to walk the tree to bus 7, for example, you see that the CPU can't get there, as bus 0 is only bridged to busses 2 to 4.

If this is the case, or you find a message stating "try pci=assign-busses" in the dmesg log, append the following to the kernel boot line:


	pci=assign-busses
	

Additional information, and a proposed workaround can be found at bug #5557.