NAME
cardbus,
cardslot,
cbb
—
CardBus driver
SYNOPSIS
cbb* at pci? dev? function ?
cardslot* at cbb?
cardbus* at cardslot?
pcmcia* at cardslot?
XX* at cardbus? function ?
DESCRIPTION
NetBSD provides machine-independent bus support and
drivers for CardBus devices.
The
cbb device represents the CardBus controller. Each
controller has a number of slots, represented by the
cardslot devices. A slot can have either a CardBus card or a
PCMCIA card, which are attached with the
cardbus or
pcmcia devices, respectively.
SUPPORTED DEVICES
NetBSD includes the following machine-independent
CardBus drivers, sorted by function and driver name:
Network interfaces
- ath
- Atheros 5210/5211/5212 802.11
- atw
- ADMtek ADM8211 (802.11)
- bwi
- Broadcom BCM430x/4318 (802.11)
- ex
- 3Com 3c575TX and 3c575BTX
- fxp
- Intel i8255x
- ral
- Ralink Technology RT25x0 (802.11)
- re
- RealTek 8139C+/8169/8169S/8110S
- rtk
- Realtek 8129/8139
- rtw
- Realtek 8180L (802.11)
- tlp
- DECchip 21143
Serial interfaces
- com
- Modems and serial cards
SCSI controllers
- adv
- AdvanSys 1200[A,B], 9xx[U,UA]
- ahc
- Adaptec ADP-1480
- njs
- Workbit NinjaSCSI-32
USB controllers
- ehci
- Enhanced Host Controller (2.0)
- ohci
- Open Host Controller
- uhci
- Universal Host Controller
IEEE1394 controllers
SD/MMC/SDIO controllers
Disk and tape controllers
- njata
- Workbit NinjaATA-32
- siisata
- Silicon Image SATA-II controllers
DIAGNOSTICS
cbb devices may not be properly handled by the system BIOS on
i386-family systems. If, on an i386-family system, the
cbb
driver reports
cbb0: NOT USED because of unconfigured
interrupt
then enabling
- options
PCI_ADDR_FIXUP
- options
PCI_BUS_FIXUP
- options
PCI_INTR_FIXUP
or (if ACPI is in use)
- options
PCI_INTR_FIXUP_DISABLED
in the kernel configuration might be of use.
SEE ALSO
adv(4),
ahc(4),
ath(4),
atw(4),
bwi(4),
com(4),
ehci(4),
ex(4),
fwohci(4),
fxp(4),
njata(4),
njs(4),
ohci(4),
options(4),
pci(4),
pcmcia(4),
ral(4),
re(4),
rtk(4),
rtw(4),
sdhc(4),
siisata(4),
tlp(4),
uhci(4)
HISTORY
The
cardbus driver appeared in
NetBSD
1.5.
BUGS
Memory space conflicts
NetBSD maps memory on Cardbus (and therefore PCMCIA
cards behind Cardbus) in order to access the cards (including reading CIS
tuples on PCMCIA cards) and access the devices using the RBUS abstraction.
When the mapping does not work, PCMCIA cards are typically ignored on insert,
and Cardbus cards are recognized but nonfunctional. On i386, the kernel has a
heuristic to choose a memory address for mapping, defaulting to 1 GB, but
choosing 0.5 GB on machines with less than 192 MB RAM and 2 GB on machines
with more than 1 GB of RAM. The intent is to use an address that is larger
than available RAM, but low enough to work; some systems seem to have trouble
with addresses requiring more than 20 address lines. On i386, the following
kernel configuration line disables the heuristics and forces Cardbus memory
space to be mapped at 512M; this value makes Cardbus support (including PCMCIA
attachment under a cbb) work on some notebook models, including the IBM
Thinkpad 600E (2645-4AU) and the Compaq ARMADA M700:
options RBUS_MIN_START="0x20000000"
PCMCIA addressing choice
By default, on i386 and amd64, the kernel uses
RBUS_IO_BASE
as 0x4000 and
RBUS_IO_SIZE
as 0x2000. On some machines, this fails,
due to a requirement that these addresses fit within 12 bits. The following
kernel options have been reported as helpful:
options RBUS_IO_BASE="0xa00"
options RBUS_IO_SIZE="0x00ff"