CARDBUS(4) | Device Drivers Manual | CARDBUS(4)

# 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

fwohci
  OHCI controller

## SD/MMC/SDIO controllers

sdhc
  SD Host Controller

## 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"`

December 31, 2014 | NetBSD 9.4