pci.4 revision 1.110
$NetBSD: pci.4,v 1.110 2021/03/11 14:19:43 nia Exp $

Copyright (c) 1997 Jason R. Thorpe. All rights reserved.
Copyright (c) 1997 Jonathan Stone
All rights reserved.

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.
3. All advertising materials mentioning features or use of this software
must display the following acknowledgements:
This product includes software developed by Jonathan Stone
4. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission

THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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 March 11, 2021 .Dt PCI 4 .Os .Sh NAME .Nm pci .Nd introduction to machine-independent PCI bus support and drivers .Sh SYNOPSIS .Cd "pci* at mainbus? bus ?" .Cd "pci* at pchb? bus ?" .Cd "pci* at ppb? bus ?"

p .Cd options PCIVERBOSE .Cd options PCI_CONFIG_DUMP .Cd options PCI_ADDR_FIXUP .Cd options PCI_BUS_FIXUP .Cd options PCI_INTR_FIXUP .Sh DESCRIPTION Other .Nm attachments are machine-dependent and depend on the bus topology and PCI bus interface of your system. See .Xr intro 4 for your system for details.

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

p Your system may support additional PCI devices. Drivers for PCI devices not listed here are machine-dependent. Consult your system's .Xr intro 4 for additional information. .Sh OPTIONS l -tag -width PCI_ADDR_FIXUP -offset 3n t Dv PCI_ADDR_FIXUP Fixup PCI I/O and memory addresses.

p Some i386 and amd64 BIOS implementations don't allocate I/O space and memory space for some PCI devices \(em 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.

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

p If necessary space is already correctly assigned to the devices, this option leaves the space as is. t Dv PCI_BUS_FIXUP Fixup PCI bus numbering; needed for many .Xr cardbus 4 bridges.

p 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.

p A typical symptom of this is the following boot message: .D1 Sy cardbus0 at cardslot0: bus 0 device 0... Please note that this cardbus0 has a bus number .Sq 0 , but normally the bus number 0 is used by the machine's primary PCI bus. Thus, this bus number for cardbus is incorrect

q 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.

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

p Since this option renumbers all PCI buses and CardBuses, all bus numbers of subordinate buses become different when this option is enabled. t Dv PCI_INTR_FIXUP Fixup PCI interrupt routing via PCIBIOS or ACPI.

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

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

p If a valid interrupt has already been assigned to a device, this option leaves the interrupt as is. .El .Sh HARDWARE .Nx includes machine-independent PCI drivers, sorted by device type and driver name: .Ss SCSI interfaces l -tag -width pcdisplay -offset indent t ahc Adaptec 29xx, 39xx, and other AIC-7xxx-based SCSI interfaces. t adv Advansys SCSI interfaces. t adw Advansys Ultra Wide SCSI interfaces. t bha Buslogic BT-9xx SCSI interfaces. t dpt DPT SmartCache/SmartRAID III and IV SCSI interfaces. t iha Initio INIC-940/950 SCSI interfaces. t isp QLogic ISP-1020, ISP-1040, and ISP-2100 SCSI and FibreChannel interfaces. t mfi LSI Logic & Dell MegaRAID SAS RAID controllers. t mly Mylex AcceleRAID and eXtremeRAID controllers with v6 firmware. t nca Domex 536 SCSI interfaces. t pcscp Advanced Micro Devices Am53c974 PCscsi-PCI SCSI interfaces. t siop Symbios Logic/NCR 53c8xx-family SCSI interfaces. t trm Tekram TRM-S1040 ASIC based SCSI interfaces. .El .Ss Disk and tape controllers l -tag -width pcdisplay -offset indent t aac The Adaptec AAC family of RAID controllers. t ahcisata AHCI 1.0 and 1.1 compliant SATA controllers. t amr The AMI and LSI Logic MegaRAID family of RAID controllers. t cac Compaq array controllers. t icp ICP Vortex GDT and Intel Storage RAID controllers. t mlx Mylex DAC960 and DEC SWXCR RAID controllers. t nvme Non-Volatile Memory (NVM Express) host controllers. t pciide IDE disk controllers. t twe 3Ware Escalade RAID controllers. .El .Ss Wired network interfaces l -tag -width pcdisplay -offset indent t aq Aquantia AQC multigigabit Ethernet interfaces. t bnx Broadcom NetXtreme II 10/100/1000 Ethernet interfaces. t 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. t ep 3Com 3c590, 3c595, 3c900, and 3c905 Ethernet interfaces. t epic SMC83C170 (EPIC/100) Ethernet interfaces. t ex 3Com 3c900, 3c905, and 3c980 Ethernet interfaces. t fxp Intel EtherExpress PRO 10+/100B Ethernet interfaces. t gsip National Semiconductor DP83820 based Gigabit Ethernet interfaces. t hme Sun Microelectronics STP2002-STQ Ethernet interfaces. t ixg Intel 82598EB, 82599, X540 and X550 10 Gigabit Ethernet interfaces. t ixl Intel 700 series Ethernet interfaces. t le PCNet-PCI Ethernet interfaces. Note, the .Xr pcn 4 driver supersedes this driver. t mcx Mellanox 5th generation Ethernet devices. t msk Marvell Yukon 2 based Gigabit Ethernet interfaces. t ne NE2000-compatible Ethernet interfaces. t nfe NVIDIA nForce Ethernet interfaces. t ntwoc SDL Communications N2pci and WAN/ic 400 synchronous serial interfaces. t pcn AMD PCnet-PCI family of Ethernet interfaces. t re Realtek 10/100/1000 Ethernet adapters. t rge Realtek RTL8125-based Ethernet interfaces. t rtk Realtek 8129/8139 based Ethernet interfaces. t sf Adaptec AIC-6915 10/100 Ethernet interfaces. t sip Silicon Integrated Systems SiS 900, SiS 7016, and National Semiconductor DP83815 based Ethernet interfaces. t sk SysKonnect SK-98xx based Gigabit Ethernet interfaces. t ste Sundance ST-201 10/100 based Ethernet interfaces. t stge Sundance/Tamarack TC9021 based Gigabit Ethernet interfaces. t ti Alteon Networks Tigon I and Tigon II Gigabit Ethernet driver. t tl Texas Instruments ThunderLAN-based Ethernet interfaces. t tlp DECchip 21x4x and clone Ethernet interfaces. t vge VIA Networking Technologies VT6122 PCI Gigabit Ethernet adapter driver. t vmx VMware VMXNET3 virtual Ethernet interfaces. t vr VIA VT3043 (Rhine) and VT86C100A (Rhine-II) Ethernet interfaces. t wm Intel i8254x Gigabit Ethernet driver. .El .Ss Wireless network interfaces l -tag -width pcdisplay -offset indent t an Aironet 4500/4800 and Cisco 340 series 802.11 interfaces. t atw ADMtek ADM8211 IEEE 802.11b PCI/CardBus wireless network interaces. t ath Atheros IEEE 802.11a/b/g wireless network interfaces. t athn Atheros IEEE 802.11a/b/g/n wireless network interfaces. t bwi Broadcom BCM430x/4318 IEEE 802.11b/g wireless network interfaces. t bwfm Broadcom and Cypress FullMAC wireless network interfaces. t ipw Intel PRO/Wireless 2100 MiniPCI network interfaces. t iwi Intel PRO/Wireless 2200BG and 2915ABG MiniPCI network interfaces. t iwm Intel Wireless 7260, 7265, and 3160 PCIe Mini Card Dual Band network interfaces. t iwn Intel Wireless WiFi Link 4965/5000/1000 and Centrino Wireless-N 1000/2000/6000 PCIe Mini network interfaces. t malo Marvell Libertas 88W8335/88W8310/88W8385 802.11b/g wireless network interfaces. t ral Ralink Technology RT2500/RT2600-based 802.11a/b/g wireless network interfaces. t rtw Realtek RTL8180L 802.11b wireless network interfaces. t rtwn Realtek RTL8188CE/RTL8192CE 802.11b/g/n wireless network interfaces. t wi WaveLAN/IEEE and PRISM-II 802.11 wireless interfaces. t wpi Intel PRO/Wireless 3945ABG Mini PCI Express network adapters. .El .Ss Serial interfaces l -tag -width pcdisplay -offset indent t cy Cyclades Cyclom-4Y, -8Y, and -16Y multi-port serial interfaces. t cz Cyclades-Z series multi-port serial interfaces. .El .Ss Audio devices l -tag -width pcdisplay -offset indent t auacer Acer Labs M5455 I/O Controller Hub integrated AC'97 audio device. t auich Intel I/O Controller Hub integrated AC'97 audio device. t auvia VIA VT82C686A integrated AC'97 audio device. t autri Trident 4DWAVE-DX/NX, SiS 7018, ALi M5451 AC'97 audio device. t clcs Cirrus Logic CS4280 audio device. t clct Cirrus Logic CS4281 audio device. t cmpci C-Media CMI8x38 audio device. t eap Ensoniq AudioPCI audio device. t emuxki Creative Labs SBLive! and PCI 512 audio device. t esa ESS Technology Allegro-1 / Maestro-3 audio device. t esm ESS Maestro-1/2/2e PCI AC'97 Audio Accelerator audio device. t eso ESS Solo-1 PCI AudioDrive audio device. t fms Forte Media FM801 audio device. t hdaudio High Definition Audio Specification 1.0 device. t neo NeoMagic MagicMedia 256 audio device. t sv S3 SonicVibes audio device. t yds Yamaha YMF724/740/744/754-based audio device. .El .Ss Bridges l -tag -width pcdisplay -offset indent t cbb PCI Yenta compatible CardBus bridges. t ppb Generic PCI bridges, including expansion backplanes. .El .Ss Miscellaneous devices l -tag -width pcdisplay -offset indent t bktr Brooktree 848 compatible TV cards. t ehci USB EHCI host controllers. t iop I2O I/O processors. t mr Guillemot Maxi Radio FM 2000 FM radio device. t oboe Toshiba OBOE IrDA SIR/FIR controller. t ohci USB OHCI host controllers. t pcic PCMCIA controllers, including the Cirrus Logic GD6729. t puc PCI .Dq universal communications cards, containing .Xr com 4 and .Xr lpt 4 communications ports. t uhci USB UHCI host controllers. t viapm VIA VT82C686A hardware monitors. t virtio Para-virtualized I/O in a virtual machine. t vga VGA graphics boards. t xhci USB XHCI host controllers. .El .Sh SEE ALSO .Xr aac 4 , .Xr adv 4 , .Xr adw 4 , .Xr agp 4 , .Xr ahc 4 , .Xr ahcisata 4 , .Xr amr 4 , .Xr an 4 , .Xr aq 4 , .Xr ath 4 , .Xr athn 4 , .Xr atw 4 , .Xr auich 4 , .Xr autri 4 , .Xr auvia 4 , .Xr bha 4 , .Xr bktr 4 , .Xr bnx 4 , .Xr bwfm 4 , .Xr bwi 4 , .Xr cac 4 , .Xr cbb 4 , .Xr clcs 4 , .Xr cmpci 4 , .Xr cy 4 , .Xr cz 4 , .Xr dpt 4 , .Xr eap 4 , .Xr ehci 4 , .Xr emuxki 4 , .Xr ep 4 , .Xr epic 4 , .Xr esa 4 , .Xr esm 4 , .Xr eso 4 , .Xr ex 4 , .Xr fms 4 , .Xr fxp 4 , .Xr gsip 4 , .Xr hme 4 , .Xr icp 4 , .Xr iha 4 , .Xr intro 4 , .Xr iop 4 , .Xr ipw 4 , .Xr isp 4 , .Xr iwi 4 , .Xr iwm 4 , .Xr iwn 4 , .Xr ixg 4 , .Xr ixl 4 , .Xr le 4 , .Xr malo 4 , .Xr mcx 4 , .Xr mfi 4 , .Xr mlx 4 , .Xr mly 4 , .Xr mpt 4 , .Xr msk 4 , .Xr nca 4 , .Xr ne 4 , .Xr neo 4 , .Xr nfe 4 , .Xr ntwoc 4 , .Xr nvme 4 , .Xr oboe 4 , .Xr ohci 4 , .Xr pcic 4 , .Xr pciide 4 , .Xr pcn 4 , .Xr pcscp 4 , .Xr ppb 4 , .Xr puc 4 , .Xr ral 4 , .Xr re 4 , .Xr rtk 4 , .Xr rtw 4 , .Xr rtwn 4 , .Xr rtwn 4 , .Xr sf 4 , .Xr siisata 4 , .Xr siop 4 , .Xr sip 4 , .Xr sk 4 , .Xr ste 4 , .Xr stge 4 , .Xr sv 4 , .Xr ti 4 , .Xr tl 4 , .Xr tlp 4 , .Xr trm 4 , .Xr twe 4 , .Xr uhci 4 , .Xr vax/en 4 , .Xr vga 4 , .Xr vge 4 , .Xr viapm 4 ,
.Xr virtio 4 , .Xr vmx 4 , .Xr vr 4 , .Xr wi 4 , .Xr wm 4 , .Xr wpi 4 , .Xr wscons 4 , .Xr xhci 4 , .Xr yds 4 .Sh HISTORY The machine-independent PCI subsystem appeared in .Nx 1.2 .