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: cardbus.4,v 1.40 2021/03/11 16:43:01 nia Exp $
.\"
.\" Copyright (c) 1999-2006 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 December 31, 2014
.Dt CARDBUS 4
.Os
.Sh NAME
.Nm cardbus ,
.Nm cardslot ,
.Nm cbb
.Nd CardBus driver
.Sh SYNOPSIS
.Cd "cbb*      at pci? dev? function ?"
.Cd "cardslot* at cbb?"
.Cd "cardbus*  at cardslot?"
.Cd "pcmcia*   at cardslot?"
.Cd "XX*       at cardbus? function ?"
.Sh DESCRIPTION
.Nx
provides machine-independent bus support and
drivers for CardBus devices.
.Pp
The
.Cm cbb
device represents the CardBus controller.
Each controller has a number
of slots, represented by the
.Cm cardslot
devices.
A slot can have either a CardBus card or a
.Tn PCMCIA
card, which are attached with the
.Cm cardbus
or
.Cm pcmcia
devices, respectively.
.Sh SUPPORTED DEVICES
.Nx
includes the following machine-independent CardBus
drivers, sorted by function and driver name:
.Ss Network interfaces
.Bl -tag -width siisata(4) -offset indent -compact
.It Xr ath 4
Atheros 5210/5211/5212 802.11
.It Xr atw 4
ADMtek ADM8211 (802.11)
.It Xr bwi 4
Broadcom BCM430x/4318 (802.11)
.It Xr ex 4
3Com 3c575TX and 3c575BTX
.It Xr fxp 4
Intel i8255x
.It Xr ral 4
Ralink Technology RT25x0 (802.11)
.It Xr re 4
RealTek 8139C+/8169/8169S/8110S
.It Xr rtk 4
Realtek 8129/8139
.It Xr rtw 4
Realtek 8180L (802.11)
.It Xr tlp 4
DECchip 21143
.El
.Ss Serial interfaces
.Bl -tag -width siisata(4) -offset indent -compact
.It Xr com 4
Modems and serial cards
.El
.Ss SCSI controllers
.Bl -tag -width siisata(4) -offset indent -compact
.It Xr adv 4
AdvanSys 1200[A,B], 9xx[U,UA]
.It Xr ahc 4
Adaptec ADP-1480
.It Xr njs 4
Workbit NinjaSCSI-32
.El
.Ss USB controllers
.Bl -tag -width siisata(4) -offset indent -compact
.It Xr ehci 4
Enhanced Host Controller (2.0)
.It Xr ohci 4
Open Host Controller
.It Xr uhci 4
Universal Host Controller
.El
.Ss IEEE1394 controllers
.Bl -tag -width siisata(4) -offset indent -compact
.It Xr fwohci 4
OHCI controller
.El
.Ss SD/MMC/SDIO controllers
.Bl -tag -width siisata(4) -offset indent -compact
.It Xr sdhc 4
SD Host Controller
.El
.Ss Disk and tape controllers
.Bl -tag -width siisata(4) -offset indent -compact
.It Xr njata 4
Workbit NinjaATA-32
.It Xr siisata 4
Silicon Image SATA-II controllers
.El
.Sh DIAGNOSTICS
.Nm cbb
devices may not be properly handled by the system BIOS on i386-family
systems.
If, on an i386-family system, the
.Nm cbb
driver reports
.Dl cbb0: NOT USED because of unconfigured interrupt
then enabling
.Bl -item -offset indent -compact
.It
.Cd options PCI_ADDR_FIXUP
.It
.Cd options PCI_BUS_FIXUP
.It
.Cd options PCI_INTR_FIXUP
.El
or (if ACPI is in use)
.Bl -item -offset indent -compact
.It
.Cd options PCI_INTR_FIXUP_DISABLED
.El
in the kernel configuration might be of use.
.Sh SEE ALSO
.Xr options 4 ,
.Xr pci 4 ,
.Xr pcmcia 4 ,
.Xr cardbus 9
.Sh HISTORY
The
.Nm
driver appeared in
.Nx 1.5 .
.Sh BUGS
.Ss Memory space conflicts
.Nx
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
.Tn 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:
.Pp
.Cd options RBUS_MIN_START="0x20000000"
.Ss PCMCIA addressing choice
By default, on i386 and amd64, the kernel uses
.Dv RBUS_IO_BASE
as 0x4000 and
.Dv 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:
.Pp
.Cd options RBUS_IO_BASE="0xa00"
.Pp
.Cd options RBUS_IO_SIZE="0x00ff"