1.\" 2.\" Copyright (c) 2001 M. Warner Losh 3.\" All rights reserved. 4.\" 5.\" Redistribution and use in source and binary forms, with or without 6.\" modification, are permitted provided that the following conditions 7.\" are met: 8.\" 1. Redistributions of source code must retain the above copyright 9.\" notice, this list of conditions and the following disclaimer. 10.\" 2. The name of the author may not be used to endorse or promote products 11.\" derived from this software without specific prior written permission. 12.\" 13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23.\" SUCH DAMAGE. 24.\" 25.\" $FreeBSD$ 26.\" 27.Dd August 25, 2001 28.Dt PCIC 4 29.Os 30.Sh NAME 31.Nm pcic 32.Nd pccard bridge driver 33.Sh SYNOPSIS 34.Cd device pcic 35.Cd device card 36.Sh DESCRIPTION 37The 38.Nm 39driver controls the pccard subsystem. 40The 41.Nm 42driver supports most 43.Tn ExCA 44devices attached to either 45.Tn ISA 46or 47.Tn PCI 48bus. 49The 50.Nm 51driver does not support the so-called TCIC controllers made by 52Databook. 53Nor does it support the MECIA chipset found in some early PC98 54NOTE PC machines. 55The mecia driver now supports that bridge. 56.Pp 57The following 58.Tn ISA 59devices, or true clones, are supported in the current code. 60.Pp 61.Bl -tag -width "Intel i82365SL Step A" -compact 62.It Intel i82365SL Step A 63.It Intel i82365SL Step B 64.It Intel i82365SL Step C 65.Tn Intel Ns 's 66original 16-bit pccard controller. 67.It Intel i82365SL-DF 68.Tn Intel Ns 's 69last version of this device. 703.3V support was added. 71.It VLSI 82C146 72An older VLSI part with some issues on some machines. 73.It Cirrus Logic PD-6710 74.It Cirrus Logic PD-6720 75.It Cirrus Logic PD-6722 76Cirrus Logic's pcic controller. 77Compatible with the i82365SL Step C with the addition of a different 783.3V control. 79.It Ricoh RF5C296 80.It Ricoh RF5C396 81Ricoh's pccard bridge chips. 82These are compatible with the i82365SL Step C, but with yet another 83different 3.3V control. 84.It Vadem 365 85.It Vadem 465 86Compatible with i82365SL Step C. 87.It Vadem 468 88.It Vadem 469 89Like the earlier Vadem models, but with Vadem's own, incompatible, 3.3V 90control system. 91.It IBM PCIC 92.Tn IBM 93clone of the original i82365SL part, with its own ID register value. 94Has no 3.3V ability. 95.It IBM KING 96A strange clone of i82365SL. 97This part has many restrictions not found in the i82365SL, plus some 98strange power control. 99It has not been tested in ages, but is believed to work. 100Its use is believed to be confined to model of ISA card, available 101only in Japan. 102.El 103.Pp 104Many other vendors made parts in this arena, but most of them were 105compatible with one of the above chipsets. 106.Pp 107The following PCI cardbus and pcmcia bridges are supported: 108.Pp 109.Bl -tag -width "Intel i82365SL Step A" -compact 110.It Cirrus Logic PD6729 111.It Cirrus Logic PD6730 112These two might be broken at the moment. 113.It Cirrus Logic PD6832 114.It Cirrus Logic PD6833 115.Pp 116.It O2micro OZ6729 117.It O2micro OZ6730 118.It O2micro OZ6812 119.It O2micro OZ6832 120.It O2micro OZ6833 121.It O2micro OZ6836 122.It O2micro OZ6860 123.It O2micro OZ6872 124O2 Micro chips may be poorly supported because the author does not 125have good access to machines with one of these bridges in it. 126.Pp 127.It Ricoh RL4C475 128.It Ricoh RL4C476 129.It Ricoh RL4C477 130.It Ricoh RL4C478 131.Pp 132.It TI PCI-1031 133.It TI PCI-1130 134.It TI PCI-1131 135.It TI PCI-1211 136.It TI PCI-1220 137.It TI PCI-1221 138.It TI PCI-1225 139.It TI PCI-1250 140.It TI PCI-1251 141.It TI PCI-1251B 142.It TI PCI-1410 143.It TI PCI-1420 144.It TI PCI-1450 145.It TI PCI-1451 146.It TI PCI-4451 147.Pp 148.It Toshiba ToPIC95 149.It Toshiba ToPIC97 150.It Toshiba ToPIC100 151.El 152.Sh FILES 153.Bl -tag -width ".Pa /dev/card0" -compact 154.It Pa /dev/card0 155Character device for the 156.Nm 157driver. 158.El 159.Sh MODES OF OPERATION 160The ISA device supports routing ISA interrupts only. 161You cannot share ISA interrupts. 162Every interrupt must be unique. 163.Pp 164The PCI device supports routing ISA or PCI interrupts. 165PCI interrupts are sharable. 166ISA interrupts are not sharable. 167PCI interrupts should be used unless your machine has a specific problem using 168them. 169.Pp 170PCI interrupt routing is the default for PCI devices. 171Some older laptops require ISA interrupt routing to work properly. 172To enable ISA interrupt routing, you must set the tunable 173.Li hw.pcic.intr_path=1 174in 175.Pa /boot/loader.conf . 176For the present, unless you have a one slot machine, you should set 177.Li hw.pcic.irq=0 178to force polling mode. 179Two slot machines have minor issues with using an ISA interrupt for the 180CSC interrupt. 181.Sh TUNABLES 182.Bl -tag -width indent 183.It Va hw.pcic.ignore_function_1 184Needed for some, improperly manufactured PCI cards made by Orinoco. 185It disables function 1 completely. 186Set to 0 to enable function 1. 187Set to 1 to disable function 1. 188This tunable generally should not be needed on laptops. 189The default is 0. 190.It Va hw.pcic.init_routing 191Some machines can tolerate interrupt routing selection at the cardbus 192bridge level. 193Others fail when you mess with these registers. 194Set to 1 to force the chipset to route via parallel PCI interrupts (as 195well as a few other little things). 196Setting to 0, the default, forces the code to leave these registers as the 197code finds them. 198Most laptops will not need to set this tunable. 199Many PCI cards with cardbus chips on them are believed to need this 200tunable set to 1. 201The default is 0. 202.It Va hw.pcic.intr_path 203Should PCI pcic devices route interrupts via ISA or PCI. 204A value of 1 means route via ISA. 205A value of 2 means route via PCI. 206This is ignored for the ISA device. 207Many older laptops do not have PCI BIOS implementations that 208.Fx 209can use to route interrupts properly. 210These laptops may need to set this to 1 and 211.Va hw.pcic.irq 212to a value 213(or 0 for polling). 214The default is 2. 215.It Va hw.pcic.irq 216Overrides the IRQ to use for ISA interrupt routing of the CSC or 217management interrupt. 218If you are using the ISA device, you can set this tunable, or use the 219.Cd "irq N" 220clause in config file. 221If you are using a PCI device in ISA interrupt mode (see 222.Va hw.pcic.intr_path ) , 223then you must set the interrupt with this 224sysctl, or polling mode will be used. 225Due to limitations in the tunable system, only one interrupt can be selected 226for all cards. 227Systems with multiple PCI bridges that need to use ISA routing are encouraged 228to use polling mode on each of the cards. 229The default is 0. 230.El 231.Sh HISTORY 232Too long to detail in the man page. 233.Sh BUGS 234Too many to list. 235Some are the fault of the standard. 236Some are the fault of bad standard compliance. 237Some are Warner's fault. 238