Manpages

PCIC(4) BSD Kernel Interfaces Manual PCIC(4)

NAME

pcic — PC Card bridge driver

SYNOPSIS

device pcic
device card

DESCRIPTION

The pcic driver controls the PC Card subsystem. The pcic driver supports most ExCA devices attached to either ISA or PCI bus. The pcic driver does not support the so-called TCIC controllers made by Databook. Nor does it support the MECIA chipset found in some early PC98 NOTE PC machines. The mecia driver now supports that bridge.

The following ISA devices, or true clones, are supported in the current code.

Intel i82365SL Step A
Intel i82365SL Step B
Intel i82365SL Step C

Intel’s original 16-bit PC Card controller.

Intel i82365SL-DF

Intel’s last version of this device. 3.3V support was added.

VLSI 82C146

An older VLSI part with some issues on some machines.

Cirrus Logic PD-6710
Cirrus Logic PD-6720
Cirrus Logic PD-6722

Cirrus Logic’s pcic controller. Compatible with the i82365SL Step C with the addition of a different 3.3V control.

Ricoh RF5C296
Ricoh RF5C396

Ricoh’s PC Card bridge chips. These are compatible with the i82365SL Step C, but with yet another different 3.3V control.

Vadem 365
Vadem 465

Compatible with i82365SL Step C.

Vadem 468
Vadem 469

Like the earlier Vadem models, but with Vadem’s own, incompatible, 3.3V control system.

IBM PCIC

IBM clone of the original i82365SL part, with its own ID register value. Has no 3.3V ability.

IBM KING

A strange clone of i82365SL. This part has many restrictions not found in the i82365SL, plus some strange power control. It has not been tested in ages, but is believed to work. Its use is believed to be confined to model of ISA card, available only in Japan.

Many other vendors made parts in this arena, but most of them were compatible with one of the above chipsets.

The following PCI cardbus and pcmcia bridges are supported:

Cirrus Logic PD6729
Cirrus Logic PD6730

These chips require special configuration when they are on an add-in PCI card.

Cirrus Logic PD6832
Cirrus Logic PD6833
O2micro OZ6729
O2micro OZ6730
O2micro OZ6812
O2micro OZ6832
O2micro OZ6833
O2micro OZ6836
O2micro OZ6860
O2micro OZ6872

O2 Micro chips may be poorly supported because the author does not have good access to machines with one of these bridges in it.

Ricoh RL4C475
Ricoh RL4C476
Ricoh RL4C477
Ricoh RL4C478
TI PCI-1031
TI PCI-1130
TI PCI-1131
TI PCI-1211
TI PCI-1220
TI PCI-1221
TI PCI-1225
TI PCI-1250
TI PCI-1251
TI PCI-1251B
TI PCI-1410
TI PCI-1420
TI PCI-1450
TI PCI-1451
TI PCI-4451
Toshiba ToPIC95
Toshiba ToPIC97
Toshiba ToPIC100
FILES

/dev/card0

Character device for the pcic driver.

MODES OF OPERATION

The ISA device supports routing ISA interrupts only. You cannot share ISA interrupts. Every interrupt must be unique.

The PCI device supports routing ISA or PCI interrupts. PCI interrupts are sharable. ISA interrupts are not sharable. PCI interrupts should be used unless your machine has a specific problem using them.

PCI interrupt routing is the default for PCI devices. Some older laptops require ISA interrupt routing to work properly. To enable ISA interrupt routing, you must set the tunable hw.pcic.intr_path=1 in /boot/loader.conf. For the present, unless you have a one slot machine, you should set hw.pcic.irq=0 to force polling mode. Two slot machines have minor issues with using an ISA interrupt for the CSC interrupt.

LOADER TUNABLES
hw.pcic.ignore_function_1

Needed for some, improperly manufactured PCI cards made by Orinoco. It disables function 1 completely. Set to 0 to enable function 1. Set to 1 to disable function 1. This tunable generally should not be needed on laptops. The default is 0.

hw.pcic.init_routing

Some machines can tolerate interrupt routing selection at the cardbus bridge level. Others fail when you mess with these registers. Set to 1 to force the chipset to route via parallel PCI interrupts (as well as a few other little things). Setting to 0, the default, forces the code to leave these registers as the code finds them. Most laptops will not need to set this tunable. Many PCI cards with cardbus chips on them are believed to need this tunable set to 1. The default is 0.

hw.pcic.intr_path

Should PCI pcic devices route interrupts via ISA or PCI. A value of 1 means route via ISA. A value of 2 means route via PCI. This is ignored for the ISA device. Many older laptops do not have PCI BIOS implementations that FreeBSD can use to route interrupts properly. These laptops may need to set this to 1 and hw.pcic.irq to a value (or 0 for polling). The default is 2.

hw.pcic.irq

Overrides the IRQ to use for ISA interrupt routing of the CSC or management interrupt. If you are using the ISA device, you can set this tunable, or use the irq N clause in config file. If you are using a PCI device in ISA interrupt mode (see hw.pcic.intr_path), then you must set the interrupt with this sysctl, or polling mode will be used. Due to limitations in the tunable system, only one interrupt can be selected for all cards. Systems with multiple PCI bridges that need to use ISA routing are encouraged to use polling mode on each of the cards. The default is 0.

hw.pcic.ignore_pci

Defaults to 0. Set to 1 to completely ignore the cardbus bridge. This may help some old laptops work. Setting to 1 on newer laptops will almost certainly fail.

HISTORY

Too long to detail in the man page.

BUGS

Too many to list. Some are the fault of the standard. Some are the fault of bad standard compliance. Some are Warner’s fault. These drivers are known as OLDCARD in other parts of the documentation.

BSD August 25, 2001 BSD