PCI(4) | Device Drivers Manual | PCI(4)

# NAME

`pci` —
introduction to machine-independent PCI bus support and drivers

# SYNOPSIS

`pci* at mainbus? bus ?`
`pci* at pchb? bus ?`
`pci* at ppb? bus ?`

`options PCIVERBOSE`
`options PCI_CONFIG_DUMP`
`options PCI_ADDR_FIXUP`
`options PCI_BUS_FIXUP`
`options PCI_INTR_FIXUP`

# DESCRIPTION

Other `pci` attachments are machine-dependent and depend on the bus topology and PCI bus interface of your system. See intro(4) for your system for details.

NetBSD includes a machine-independent PCI bus subsystem and several machine-independent PCI device drivers.

Your system may support additional PCI devices. Drivers for PCI devices not listed here are machine-dependent. Consult your system's intro(4) for additional information.

# OPTIONS

`PCI_ADDR_FIXUP`
  Fixup PCI I/O and memory addresses.

  Some i386 and amd64 BIOS implementations don't allocate I/O space and memory space for some PCI devices — primarily BIOS in PnP mode, or laptops that expect devices to be configured via ACPI. Since necessary space isn't allocated, those devices will not work without special handling.

  This option allocates I/O space and memory space instead of relying upon the BIOS to do so.

  If necessary space is already correctly assigned to the devices, this option leaves the space as is.

`PCI_BUS_FIXUP`
  Fixup PCI bus numbering; needed for many cardbus(4) bridges.

  Each PCI bus and CardBus should have a unique bus number. But some BIOS implementations don't assign a bus number for subordinate PCI buses. And many BIOS implementations don't assign a bus number for CardBuses.

  A typical symptom of this is the following boot message:

  cardbus0 at cardslot0: bus 0 device 0...
  Please note that this cardbus0 has a bus number ‘0’, but normally the bus number 0 is used by the machine's primary PCI bus. Thus, this bus number for cardbus is incorrect (not assigned). In this situation, a device located in cardbus0 doesn't show correct device ID, because its bus number 0 incorrectly refers to the primary PCI bus, and a device ID in the primary PCI bus is shown in the boot message instead of the device's ID in the cardbus0.

  This option assigns bus numbers for all subordinate PCI buses and CardBuses.

  Since this option renumbers all PCI buses and CardBuses, all bus numbers of subordinate buses become different when this option is enabled.

`PCI_INTR_FIXUP`
  Fixup PCI interrupt routing via PCIBIOS or ACPI.

  Some i386 and amd64 BIOS implementations don't assign an interrupt for some devices.

  This option assigns an interrupt for such devices instead of relying upon the BIOS to do so.

  If a valid interrupt has already been assigned to a device, this option leaves the interrupt as is.

# HARDWARE

NetBSD includes machine-independent PCI drivers, sorted by device type and driver name:

## SCSI interfaces

ahc
  Adaptec 29xx, 39xx, and other AIC-7xxx-based SCSI interfaces.
adv
  Advansys SCSI interfaces.
adw
  Advansys Ultra Wide SCSI interfaces.
bha
  Buslogic BT-9xx SCSI interfaces.
dpt
  DPT SmartCache/SmartRAID III and IV SCSI interfaces.
iha
  Initio INIC-940/950 SCSI interfaces.
isp
  QLogic ISP-1020, ISP-1040, and ISP-2100 SCSI and FibreChannel interfaces.
mfi
  LSI Logic & Dell MegaRAID SAS RAID controllers.
mly
  Mylex AcceleRAID and eXtremeRAID controllers with v6 firmware.
nca
  Domex 536 SCSI interfaces.
pcscp
  Advanced Micro Devices Am53c974 PCscsi-PCI SCSI interfaces.
siop
  Symbios Logic/NCR 53c8xx-family SCSI interfaces.
trm
  Tekram TRM-S1040 ASIC based SCSI interfaces.

## Disk and tape controllers

aac
  The Adaptec AAC family of RAID controllers.
ahcisata
  AHCI 1.0 and 1.1 compliant SATA controllers.
amr
  The AMI and LSI Logic MegaRAID family of RAID controllers.
cac
  Compaq array controllers.
icp
  ICP Vortex GDT and Intel Storage RAID controllers.
mlx
  Mylex DAC960 and DEC SWXCR RAID controllers.
pciide
  IDE disk controllers.
twe
  3Ware Escalade RAID controllers.

## Network interfaces

an
  Aironet 4500/4800 and Cisco 340 series 802.11 interfaces.
bnx
  Broadcom NetXtreme II 10/100/1000 Ethernet interfaces.
de
  DEC DC21x4x (Tulip) based Ethernet interfaces, including the DE435, DE450, and DE500, and Znyx, SMC, Cogent/Adaptec, and Asante single- and multi-port Ethernet interfaces.
ep
  3Com 3c590, 3c595, 3c900, and 3c905 Ethernet interfaces.
epic
  SMC83C170 (EPIC/100) Ethernet interfaces.
esh
  RoadRunner-based HIPPI interfaces.
ex
  3Com 3c900, 3c905, and 3c980 Ethernet interfaces.
fpa
  DEC DEFPA FDDI interfaces.
fxp
  Intel EtherExpress PRO 10+/100B Ethernet interfaces.
gsip
  National Semiconductor DP83820 based Gigabit Ethernet interfaces.
hme
  Sun Microelectronics STP2002-STQ Ethernet interfaces.
le
  PCNet-PCI Ethernet interfaces. Note, the pcn(4) driver supersedes this driver.
msk
  Marvell Yukon 2 based Gigabit Ethernet interfaces.
ne
  NE2000-compatible Ethernet interfaces.
nfe
  NVIDIA nForce Ethernet interfaces.
ntwoc
  SDL Communications N2pci and WAN/ic 400 synchronous serial interfaces.
pcn
  AMD PCnet-PCI family of Ethernet interfaces.
ral
  Ralink Technology RT2500/RT2600-based 802.11a/b/g wireless network interfaces.
rtk
  Realtek 8129/8139 based Ethernet interfaces.
rtwn
  Realtek RTL8188CE/RTL8192CE 802.11b/g/n wireless network interfaces.
sf
  Adaptec AIC-6915 10/100 Ethernet interfaces.
sip
  Silicon Integrated Systems SiS 900, SiS 7016, and National Semiconductor DP83815 based Ethernet interfaces.
sk
  SysKonnect SK-98xx based Gigabit Ethernet interfaces.
ste
  Sundance ST-201 10/100 based Ethernet interfaces.
stge
  Sundance/Tamarack TC9021 based Gigabit Ethernet interfaces.
ti
  Alteon Networks Tigon I and Tigon II Gigabit Ethernet driver.
tl
  Texas Instruments ThunderLAN-based Ethernet interfaces.
tlp
  DECchip 21x4x and clone Ethernet interfaces.
vge
  VIA Networking Technologies VT6122 PCI Gigabit Ethernet adapter driver.
vr
  VIA VT3043 (Rhine) and VT86C100A (Rhine-II) Ethernet interfaces.
wi
  WaveLAN/IEEE and PRISM-II 802.11 wireless interfaces.
wm
  Intel i8254x Gigabit Ethernet driver.

## Serial interfaces

cy
  Cyclades Cyclom-4Y, -8Y, and -16Y multi-port serial interfaces.
cz
  Cyclades-Z series multi-port serial interfaces.

## Audio devices

auacer
  Acer Labs M5455 I/O Controller Hub integrated AC'97 audio device.
auich
  Intel I/O Controller Hub integrated AC'97 audio device.
auvia
  VIA VT82C686A integrated AC'97 audio device.
autri
  Trident 4DWAVE-DX/NX, SiS 7018, ALi M5451 AC'97 audio device.
clcs
  Cirrus Logic CS4280 audio device.
clct
  Cirrus Logic CS4281 audio device.
cmpci
  C-Media CMI8x38 audio device.
eap
  Ensoniq AudioPCI audio device.
emuxki
  Creative Labs SBLive! and PCI 512 audio device.
esa
  ESS Technology Allegro-1 / Maestro-3 audio device.
esm
  ESS Maestro-1/2/2e PCI AC'97 Audio Accelerator audio device.
eso
  ESS Solo-1 PCI AudioDrive audio device.
fms
  Forte Media FM801 audio device.
neo
  NeoMagic MagicMedia 256 audio device.
sv
  S3 SonicVibes audio device.
yds
  Yamaha YMF724/740/744/754-based audio device.

## Bridges

cbb
  PCI Yenta compatible CardBus bridges.
ppb
  Generic PCI-PCI bridges, including PCI expansion backplanes.

## Miscellaneous devices

bktr
  Brooktree 848 compatible TV cards.
ehci
  USB EHCI host controllers.
iop
  I2O I/O processors.
mr
  Guillemot Maxi Radio FM 2000 FM radio device.
nvme
  Non-Volatile Memory Host controllers.
oboe
  Toshiba OBOE IrDA SIR/FIR controller.
ohci
  USB OHCI host controllers.
pcic
  PCI PCMCIA controllers, including the Cirrus Logic GD6729.
puc
  PCI “universal” communications cards, containing com(4) and lpt(4) communications ports.
uhci
  USB UHCI host controllers.
viapm
  VIA VT82C686A hardware monitors.
vga
  VGA graphics boards.

# SEE ALSO

aac(4), adv(4), adw(4), agp(4), ahc(4), ahcisata(4), amr(4), an(4), auich(4), autri(4), auvia(4), bha(4), bktr(4), bnx(4), cac(4), cbb(4), clcs(4), cmpci(4), cy(4), cz(4), de(4), dpt(4), eap(4), ehci(4), emuxki(4), ep(4), epic(4), esa(4), esh(4), esm(4), eso(4), ex(4), fms(4), fpa(4), fxp(4), gsip(4), hme(4), icp(4), iha(4), intro(4), iop(4), isp(4), le(4), mfi(4), mlx(4), mly(4), mpt(4), msk(4), nca(4), ne(4), neo(4), nfe(4), ntwoc(4), nvme(4), oboe(4), ohci(4), pcic(4), pciide(4), pcn(4), pcscp(4), ppb(4), puc(4), ral(4), rtk(4), rtwn(4), sf(4), siisata(4), siop(4), sip(4), sk(4), ste(4), stge(4), sv(4), ti(4), tl(4), tlp(4), trm(4), twe(4), uhci(4), vax/en(4), vga(4), vge(4), vr(4), wi(4), wm(4), wscons(4), yds(4)

# HISTORY

The machine-independent PCI subsystem appeared in NetBSD 1.2.

December 12, 2018 | NetBSD 9.0