1.\" $NetBSD: cardbus.4,v 1.40 2021/03/11 16:43:01 nia Exp $ 2.\" 3.\" Copyright (c) 1999-2006 The NetBSD Foundation, Inc. 4.\" All rights reserved. 5.\" 6.\" This code is derived from software contributed to The NetBSD Foundation 7.\" by Lennart Augustsson. 8.\" 9.\" Redistribution and use in source and binary forms, with or without 10.\" modification, are permitted provided that the following conditions 11.\" are met: 12.\" 1. Redistributions of source code must retain the above copyright 13.\" notice, this list of conditions and the following disclaimer. 14.\" 2. Redistributions in binary form must reproduce the above copyright 15.\" notice, this list of conditions and the following disclaimer in the 16.\" documentation and/or other materials provided with the distribution. 17.\" 18.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 19.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 20.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 21.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 22.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 24.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 25.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 26.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 27.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28.\" POSSIBILITY OF SUCH DAMAGE. 29.\" 30.Dd December 31, 2014 31.Dt CARDBUS 4 32.Os 33.Sh NAME 34.Nm cardbus , 35.Nm cardslot , 36.Nm cbb 37.Nd CardBus driver 38.Sh SYNOPSIS 39.Cd "cbb* at pci? dev? function ?" 40.Cd "cardslot* at cbb?" 41.Cd "cardbus* at cardslot?" 42.Cd "pcmcia* at cardslot?" 43.Cd "XX* at cardbus? function ?" 44.Sh DESCRIPTION 45.Nx 46provides machine-independent bus support and 47drivers for CardBus devices. 48.Pp 49The 50.Cm cbb 51device represents the CardBus controller. 52Each controller has a number 53of slots, represented by the 54.Cm cardslot 55devices. 56A slot can have either a CardBus card or a 57.Tn PCMCIA 58card, which are attached with the 59.Cm cardbus 60or 61.Cm pcmcia 62devices, respectively. 63.Sh SUPPORTED DEVICES 64.Nx 65includes the following machine-independent CardBus 66drivers, sorted by function and driver name: 67.Ss Network interfaces 68.Bl -tag -width siisata(4) -offset indent -compact 69.It Xr ath 4 70Atheros 5210/5211/5212 802.11 71.It Xr atw 4 72ADMtek ADM8211 (802.11) 73.It Xr bwi 4 74Broadcom BCM430x/4318 (802.11) 75.It Xr ex 4 763Com 3c575TX and 3c575BTX 77.It Xr fxp 4 78Intel i8255x 79.It Xr ral 4 80Ralink Technology RT25x0 (802.11) 81.It Xr re 4 82RealTek 8139C+/8169/8169S/8110S 83.It Xr rtk 4 84Realtek 8129/8139 85.It Xr rtw 4 86Realtek 8180L (802.11) 87.It Xr tlp 4 88DECchip 21143 89.El 90.Ss Serial interfaces 91.Bl -tag -width siisata(4) -offset indent -compact 92.It Xr com 4 93Modems and serial cards 94.El 95.Ss SCSI controllers 96.Bl -tag -width siisata(4) -offset indent -compact 97.It Xr adv 4 98AdvanSys 1200[A,B], 9xx[U,UA] 99.It Xr ahc 4 100Adaptec ADP-1480 101.It Xr njs 4 102Workbit NinjaSCSI-32 103.El 104.Ss USB controllers 105.Bl -tag -width siisata(4) -offset indent -compact 106.It Xr ehci 4 107Enhanced Host Controller (2.0) 108.It Xr ohci 4 109Open Host Controller 110.It Xr uhci 4 111Universal Host Controller 112.El 113.Ss IEEE1394 controllers 114.Bl -tag -width siisata(4) -offset indent -compact 115.It Xr fwohci 4 116OHCI controller 117.El 118.Ss SD/MMC/SDIO controllers 119.Bl -tag -width siisata(4) -offset indent -compact 120.It Xr sdhc 4 121SD Host Controller 122.El 123.Ss Disk and tape controllers 124.Bl -tag -width siisata(4) -offset indent -compact 125.It Xr njata 4 126Workbit NinjaATA-32 127.It Xr siisata 4 128Silicon Image SATA-II controllers 129.El 130.Sh DIAGNOSTICS 131.Nm cbb 132devices may not be properly handled by the system BIOS on i386-family 133systems. 134If, on an i386-family system, the 135.Nm cbb 136driver reports 137.Dl cbb0: NOT USED because of unconfigured interrupt 138then enabling 139.Bl -item -offset indent -compact 140.It 141.Cd options PCI_ADDR_FIXUP 142.It 143.Cd options PCI_BUS_FIXUP 144.It 145.Cd options PCI_INTR_FIXUP 146.El 147or (if ACPI is in use) 148.Bl -item -offset indent -compact 149.It 150.Cd options PCI_INTR_FIXUP_DISABLED 151.El 152in the kernel configuration might be of use. 153.Sh SEE ALSO 154.Xr options 4 , 155.Xr pci 4 , 156.Xr pcmcia 4 , 157.Xr cardbus 9 158.Sh HISTORY 159The 160.Nm 161driver appeared in 162.Nx 1.5 . 163.Sh BUGS 164.Ss Memory space conflicts 165.Nx 166maps memory on Cardbus (and therefore PCMCIA cards behind Cardbus) in 167order to access the cards (including reading CIS tuples on PCMCIA 168cards) and access the devices using the 169.Tn RBUS 170abstraction. 171When the mapping does not work, PCMCIA cards are typically ignored on 172insert, and Cardbus cards are recognized but nonfunctional. 173On i386, the kernel has a heuristic to choose a memory address for 174mapping, defaulting to 1 GB, but choosing 0.5 GB on machines with less 175than 192 MB RAM and 2 GB on machines with more than 1 GB of RAM. 176The intent is to use an address that is larger than available RAM, but 177low enough to work; some systems seem to have trouble with 178addresses requiring more than 20 address lines. 179On i386, the following kernel configuration line disables the 180heuristics and forces Cardbus 181memory space to be mapped at 512M; this value makes Cardbus support 182(including PCMCIA attachment under a cbb) work on some notebook 183models, including the IBM Thinkpad 600E (2645-4AU) and the Compaq 184ARMADA M700: 185.Pp 186.Cd options RBUS_MIN_START="0x20000000" 187.Ss PCMCIA addressing choice 188By default, on i386 and amd64, the kernel uses 189.Dv RBUS_IO_BASE 190as 0x4000 and 191.Dv RBUS_IO_SIZE 192as 0x2000. 193On some machines, this fails, due to a requirement that these 194addresses fit within 12 bits. 195The following kernel options have been reported as helpful: 196.Pp 197.Cd options RBUS_IO_BASE="0xa00" 198.Pp 199.Cd options RBUS_IO_SIZE="0x00ff" 200