The Linux kernel PCMCIA system has three main components. At the lowest level are the socket drivers. Next is the Card Services module. Drivers for specific cards are layered on top of Card Services. One special Card Services client, called Driver Services, provides a link betweek user level PCMCIA utility programs and the kernel PCMCIA facilities.
The socket driver layer is loosely based on the Socket Services API.
There are two socket driver modules. The tcic
module supports
the Databook TCIC-2 family of PCMCIA controllers. The i82365
module supports the Intel i82365sl family and various Intel-compatible
controllers, including Cirrus, VLSI, Ricoh, and Vadem chips.
Card Services is the largest single component of the PCMCIA package.
It provides an API somewhat similar to DOS Card Services, adapted to a
Unix environment. The Linux implementation was based in part on the
Solaris PCMCIA interface specification. It is implemented in the
pcmcia_core
module.
The Driver Services layer implements a user mode pseudo-device for
accessing some Card Services functions from PCMCIA utility programs.
It is responsible for keeping track of all PCMCIA client drivers, and
for matching up drivers with physical sockets. It is implemented in
the ds
module.
This document describes the kernel interface to the Card Services and
Driver Services modules, and the user interface to Driver Services.
It is intended for use by PCMCIA device driver developers. The Linux
PCMCIA-HOWTO describes how to install and use Linux PCMCIA support.
It is available from cb-iris.stanford.edu
in
/pub/pcmcia
.
Copyright (c) 1995 David A. Hinds
This document may be reproduced or distributed in any form without my prior permission. Parts of this document may be distributed, provided that this copyright message and a pointer to the complete document are included. Specifically, it may be included in commercial distributions without my prior consent. However, I would like to be informed of such usage.
This document may be translated into any language, provided this copyright statement is left intact.
This document is provided ``as is'', with no explicit or implied warranties. Use the information in this document at your own risk.
I'd like to thank all the Linux users who have helped test and debug this PCMCIA software, and who have helped with driver development. I should also thank Linus Torvalds, Donald Becker, Alan Cox, and Bjorn Ekwall for Linux kernel development help. I'm especially grateful to Michael Bender for many helpful discussions about the Solaris PCMCIA implementation.
Next Chapter, Previous Chapter
Table of contents of this chapter, General table of contents
Top of the document, Beginning of this Chapter