Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

.\" $NetBSD: pcmcia.4,v 1.37 2012/03/13 19:25:41 njoly Exp $
.\"
.\" Copyright (c) 1999, 2002 The NetBSD Foundation, Inc.
.\" All rights reserved.
.\"
.\" This code is derived from software contributed to The NetBSD Foundation
.\" by Lennart Augustsson.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd January 3, 2009
.Dt PCMCIA 4
.Os
.Sh NAME
.Nm pcmcia
.Nd
introduction to
.Tn PCMCIA
.Pq Tn "PC Card"
support
.Sh SYNOPSIS
.Cd "pcmcia* at pcic? controller ? socket ?"
.Cd "pcmcia* at tcic? controller ? socket ?"
.Cd "pcmcia* at cardslot?"
.Pp
.Cd options PCMCIAVERBOSE
.Ss amiga
.Cd "pcmcia* at pccard0"
.Ss hpcmips
.Cd "pcmcia* at it8368e? controller ? socket ?"
.Cd "pcmcia* at plumpcmcia? controller ? socket ?"
.Ss hpcsh
.Cd "pcmcia* at hd64461pcmcia? controller ? socket ?"
.Ss sh3
.Cd "pcmcia* at shpcic? controller ? socket ?"
.Ss sparc
.Cd "pcmcia* at nell?"
.Sh DESCRIPTION
.Nx
provides machine-independent bus support and drivers for
.Tn PCMCIA
.Pq Personal Computer Memory Card International Association
a.k.a.
.Tn "PC Card" ,
.Tn CardBus
devices.
.Sh HARDWARE
.Nx
includes the following machine-independent
.Tn PCMCIA
drivers, sorted by function and driver name:
.Ss Serial interfaces and modems
.Bl -tag -width speaker -offset indent
.It com
8250/16450/16550-compatible PCMCIA serial cards and modems.
.El
.Ss Network interfaces
.Bl -tag -width speaker -offset indent
.It an
Aironet 4500/4800 and Cisco 340 series 802.11 controller.
.It awi
802.11 controller based on the AMD PCnetMobile chipset.
.It cnw
Netwave AirSurfer Wireless LAN interface.
.It ep
3Com 3c589 EtherLink III Ethernet card.
.It mbe
Ethernet card based on the Fujitsu MB86960A/MB86965A chipset.
.It mhzc
Megahertz Ethernet/Modem combo cards
.It ne
NE2000 compatible cards.
.It ray
Raytheon Raylink and WebGear Aviator2.4 802.11 controller.
.It sm
Megahertz Ethernet card.
.It wi
Lucent WaveLAN/IEEE and PRISM-II based 802.11 controller.
.It xi
Xircom CreditCard Ethernet
.El
.Ss SCSI controllers
.Bl -tag -width speaker -offset indent
.It aic
Adaptec APA-1460
.Tn SCSI
controller card.
.It esp
NCR 53C9x, Emulex ESP406, and Qlogic FAS408
.Tn SCSI
controllers.
.It spc
Fujitsu MB87030/MB89352
.Tn SCSI
controllers.
.El
.Ss IDE controllers
.Bl -tag -width speaker -offset indent
.It wdc
Digital Hinote Ultra Mobile Media Adapter
.El
.Ss Bluetooth devices
.Bl -tag -width speaker -offset indent
.It bt3c
3Com 3CRWB6096 Bluetooth PC Card driver.
.It btbc
AnyCom Bluetooth BlueCard driver.
.El
.Ss USB Controller
.Bl -tag -width speaker -offset indent
.It slhci
Cypress/ScanLogic SL811HS USB Host Controller driver.
.El
.Sh SEE ALSO
.Xr aic 4 ,
.Xr an 4 ,
.Xr awi 4 ,
.Xr bt3c 4 ,
.Xr btbc 4 ,
.Xr cardbus 4 ,
.Xr cnw 4 ,
.Xr com 4 ,
.Xr ep 4 ,
.Xr esp 4 ,
.Xr intro 4 ,
.Xr isa 4 ,
.Xr mbe 4 ,
.Xr mhzc 4 ,
.Xr ne 4 ,
.Xr options 4 ,
.Xr pcic 4 ,
.Xr pcmcom 4 ,
.Xr ray 4 ,
.Xr slhci 4 ,
.Xr sm 4 ,
.Xr spc 4 ,
.Xr tcic 4 ,
.Xr wi 4 ,
.Xr xi 4
.Sh HISTORY
The
.Nm
driver appeared in
.Nx 1.3 .
.Sh BUGS
.Ss IO space conflicts
.Nx
probes the
.Tn PCMCIA
IO bus width and uses that information to decide
where to map
.Tn PCMCIA
IO space.
For 10-bit wide cards, 0x300-0x3ff is used.
For 12-bit wide cards, 0x400-0x4ff is used.
.Pp
Neither choice is perfect.
In the 12-bit case, 0x400 appears to work
in substantially more devices than 0x300.
In the event that
.Tn PCMCIA
devices are mapped in 0x400-0x4ff and appear to be nonfunctional,
remapping to 0x300-0x3ff may be appropriate; consult
.Cd options PCIC_ISA_ALLOC_IOBASE
and
.Cd options PCIC_ISA_ALLOC_IOSIZE
in
.Xr options 4 .
Example:
.Bd -literal -offset indent
# Avoid PCMCIA bus space conflicts with the default IO space
# allocation on 12-bit wide busses (base 0x300 size 0xff).
options PCIC_ISA_ALLOC_IOBASE=0x300
options PCIC_ISA_ALLOC_IOSIZE=0x0ff
.Ed
.Ss Interrupt conflicts
.Nx
attempts to probe for available interrupts to assign to
.Tn PCMCIA
devices.
In some cases, it is not possible to detect
all interrupts in use; in such cases, use of
.Cd options PCIC_ISA_INTR_ALLOC_MASK
may be necessary.
See
.Xr options 4 .
.Ss Unconfigured devices
During autoconfiguration, if a message is displayed saying that your card
is "not configured" it indicates that there isn't support for your card
compiled into the kernel.
To fix this problem, it may simply be a matter
of adding the manufacturer and product IDs to the
.Tn PCMCIA
database or adding a front-end attachment to an existing driver.
In the latter case, it is normally always necessary to get a dump
of the CIS table from the card.
You can do this by adding
.Cd options PCMCIACISDEBUG
and
.Cd options PCMCIADEBUG
into your kernel config file.
Additionally, you will have to patch the kernel to enable run-time
debugging.
This can be done in the source by changing the variables
.Va pcmcia_debug
and
.Va pcmciacis_debug
to 0xff.
Alternatively, you can patch the same variables at run-time using
.Xr ddb 4 .
For most drivers you should also consider enabling any driver-specific
debugging options.