1.\" $OpenBSD: pci.4,v 1.384 2020/12/03 22:53:08 jmc Exp $ 2.\" $NetBSD: pci.4,v 1.29 2000/04/01 00:32:23 tsarna Exp $ 3.\" 4.\" Copyright (c) 2000 Theo de Raadt. All rights reserved. 5.\" Copyright (c) 1997 Jason R. Thorpe. All rights reserved. 6.\" Copyright (c) 1997 Jonathan Stone 7.\" All rights reserved. 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.\" 3. All advertising materials mentioning features or use of this software 18.\" must display the following acknowledgements: 19.\" This product includes software developed by Jonathan Stone 20.\" 4. The name of the author may not be used to endorse or promote products 21.\" derived from this software without specific prior written permission 22.\" 23.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 24.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 25.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 26.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 27.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 28.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 29.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 30.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 31.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 32.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 33.\" 34.Dd $Mdocdate: December 3 2020 $ 35.Dt PCI 4 36.Os 37.Sh NAME 38.Nm pci 39.Nd introduction to PCI bus support 40.Sh SYNOPSIS 41.Cd "# alpha" 42.Cd "pci* at apecs?" 43.Cd "pci* at cia?" 44.Cd "pci* at irongate?" 45.Cd "pci* at lca?" 46.Cd "pci* at tsp?" 47.Cd "pci* at mcpcia?" 48.Pp 49.Cd "# amd64, i386" 50.Cd "pci* at mainbus0" 51.Pp 52.Cd "# arm64" 53.Cd "pci* at acpipci?" 54.Cd "pci* at bcmpcie?" 55.Cd "pci* at dwpcie?" 56.Cd "pci* at mvkpcie?" 57.Cd "pci* at pciecam?" 58.Cd "pci* at rkpcie?" 59.Pp 60.Cd "# armv7" 61.Cd "pci* at mvpcie?" 62.Cd "pci* at pciecam?" 63.Pp 64.Cd "# hppa" 65.Cd "pci* at dino?" 66.Cd "pci* at elroy?" 67.Pp 68.Cd "# landisk" 69.Cd "pci* at shpcic?" 70.Pp 71.Cd "# loongson" 72.Cd "pci* at bonito?" 73.Cd "pci* at htb?" 74.Pp 75.Cd "# macppc" 76.Cd "pci* at mpcpcibr?" 77.Cd "pci* at ht?" 78.Cd "pci* at hpb?" 79.Pp 80.Cd "# octeon" 81.Cd "pci* at octpcie?" 82.Pp 83.Cd "# sgi" 84.Cd "pci* at macepcibr?" 85.Cd "pci* at xbridge?" 86.Pp 87.Cd "# sparc64" 88.Cd "pci* at psycho?" 89.Cd "pci* at schizo?" 90.Cd "pci* at pyro?" 91.Cd "pci* at vpci?" 92.Pp 93.Cd "# all architectures" 94.Cd "pci* at pchb?" 95.Cd "pci* at ppb?" 96.Sh DESCRIPTION 97The system includes a machine-independent 98.Tn PCI 99bus subsystem and 100several machine-independent 101.Tn PCI 102device drivers. 103.Pp 104Note that interrupt mappings on the i386 may require that you configure 105your BIOS to reserve sufficient interrupts as "PCI/ISAPnP" so that there 106are sufficient interrupts remaining to configure the discovered PCI 107devices. 108For more information, see 109.Xr pcibios 4 . 110.Pp 111.Ox 112provides support for the following devices. 113Note that not all architectures support all devices. 114.Ss SCSI host adapters 115.Bl -tag -width 10n -offset ind -compact 116.It Xr adv 4 , Xr adw 4 117AdvanSys PCI SCSI interface 118.It Xr ahc 4 119Adaptec VL/EISA/PCI SCSI interface 120.It Xr ahd 4 121Adaptec PCI/PCI-X AIC79xx-based Ultra320 SCSI interface 122.It Xr iha 4 123Initio INIC-940/950 based PCI SCSI interface 124.It Xr mpi 4 125LSI Logic Fusion-MPT Message Passing Interface 126.It Xr mpii 4 127LSI Logic Fusion-MPT Message Passing Interface II 128.It Xr nvme 4 129Non-Volatile Memory Host Controller Interface 130.It Xr pcscp 4 131Advanced Micro Devices Am53c974 PCscsi-PCI SCSI interface 132.It Xr qla 4 133QLogic ISP2100/2200/2300 Fibre Channel controller 134.It Xr qle 4 135QLogic ISP2400/2500 Fibre Channel controller 136.It Xr qlw 4 137QLogic ISP1000/1020/1x40/1x80/1x160 SCSI controller 138.It Xr siop 4 139LSI/Symbios Logic/NCR 53c8xx SCSI interface 140.It Xr trm 4 141TRM-S1040 based PCI SCSI interface 142.It Xr vmwpvs 4 143VMware Paravirtual SCSI 144.El 145.Ss IDE disk controllers 146.Bl -tag -width 10n -offset ind -compact 147.It Xr ahci 4 148Advanced Host Controller Interface for Serial ATA 149.It Xr jmb 4 150JMicron JMB36x SATA II and PATA Host Controller 151.It Xr pciide 4 152PCI IDE controller driver 153.It Xr sili 4 154Silicon Image 3124/3132/3531 SATA controller 155.El 156.Ss RAID and cache controllers 157.Bl -tag -width 10n -offset ind -compact 158.It Xr aac 4 159Adaptec SAS/SATA/SCSI RAID controller 160.It Xr ami 4 161American Megatrends Inc. MegaRAID PATA/SATA/SCSI RAID controller 162.It Xr arc 4 163Areca Technology Corporation SAS/SATA RAID controller 164.It Xr cac 4 165Compaq Smart Array 2/3/4 SCSI RAID controller 166.It Xr ciss 4 167Compaq Smart Array SAS/SATA/SCSI RAID controller 168.It Xr gdt 4 169ICP-Vortex and Intel GDT SATA/SCSI RAID controller 170.It Xr ips 4 171IBM SATA/SCSI ServeRAID controller 172.It Xr mfi 4 173LSI Logic & Dell MegaRAID SAS RAID controller 174.It Xr mfii 4 175LSI Logic MegaRAID SAS Fusion RAID controller 176.It Xr twe 4 1773ware 5000/6000/7000/8000 series PATA/SATA RAID controller 178.El 179.Ss Wired network interfaces 180.Bl -tag -width 10n -offset ind -compact 181.It Xr age 4 182Attansic L1 10/100/Gigabit Ethernet device 183.It Xr alc 4 184Atheros AR813x/AR815x/AR816x/AR817x 10/100/Gigabit Ethernet device 185.It Xr ale 4 186Atheros AR8121/AR8113/AR8114 10/100/Gigabit Ethernet device 187.It Xr bce 4 188Broadcom BCM4401 10/100 Ethernet device 189.It Xr bge 4 190Broadcom BCM57xx/BCM590x 10/100/Gigabit Ethernet device 191.It Xr bnx 4 192Broadcom NetXtreme II 10/100/Gigabit Ethernet device 193.It Xr bnxt 4 194Broadcom NetXtreme-C/E 10/25/40/50Gb Ethernet device 195.It Xr cas 4 196Sun Cassini 10/100/Gigabit Ethernet device 197.It Xr dc 4 198DEC/Intel 21140/21142/21143/21145 and clones 10/100 Ethernet device 199.It Xr de 4 200DEC DC21x4x (Tulip) 10/100 Ethernet device 201.It Xr em 4 202Intel PRO/1000 10/100/Gigabit Ethernet device 203.\" .It Xr en 4 204.\" Midway-based Efficient Networks Inc.\& 205.\" and Adaptec ATM interfaces 206.It Xr ep 4 2073Com EtherLink III and Fast EtherLink III 10/100 Ethernet device 208.It Xr epic 4 209SMC 83C170 (EPIC/100) 10/100 Ethernet device 210.It Xr et 4 211Agere/LSI ET1310 10/100/Gigabit Ethernet device 212.It Xr fxp 4 213Intel EtherExpress PRO/100 10/100 Ethernet device 214.It Xr gem 4 215GEM 10/100/Gigabit Ethernet device 216.It Xr hme 4 217Sun Happy Meal 10/100 Ethernet device 218.It Xr iavf 4 219Intel Ethernet Adaptive Virtual Function device 220.It Xr ix 4 221Intel 82598/82599/X540/X550 PCI Express 10Gb Ethernet device 222.It Xr ixgb 4 223Intel PRO/10GbE 10Gb Ethernet device 224.It Xr ixl 4 225Intel Ethernet 700 series Ethernet device 226.It Xr jme 4 227JMicron JMC25x/JMC26x 10/100/Gigabit Ethernet device 228.It Xr lge 4 229Level 1 LXT1001 NetCellerator PCI Gigabit Ethernet device 230.It Xr lii 4 231Attansic L2 10/100 Ethernet device 232.It Xr mcx 4 233Mellanox 5th generation Ethernet device 234.It Xr msk 4 235Marvell Yukon-2 10/100/Gigabit Ethernet device 236.It Xr mtd 4 237Myson Technology MTD800/MTD803/MTD891 10/100/Gigabit Ethernet device 238.It Xr myx 4 239Myricom Myri-10G PCI Express 10Gb Ethernet device 240.It Xr ne 4 241NE2000 and compatible 10/100 Ethernet device 242.It Xr nep 4 243Sun Neptune 10Gb Ethernet device 244.It Xr nfe 4 245NVIDIA nForce MCP 10/100/Gigabit Ethernet device 246.It Xr nge 4 247National Semiconductor PCI 10/100/Gigabit Ethernet device 248.It Xr oce 4 249Emulex OneConnect 10Gb Ethernet device 250.It Xr pcn 4 251AMD PCnet-PCI 10/100 Ethernet device 252.It Xr re 4 253Realtek 8139C+/8169/816xS/811xS/8168/810xE 10/100/Gigabit Ethernet device 254.It Xr rge 4 255Realtek 8125/8125B PCI Express 2.5Gb Ethernet device 256.It Xr rl 4 257Realtek 8129/8139 10/100 Ethernet device 258.It Xr se 4 259SiS 190/191 10/100/Gigabit Ethernet device 260.It Xr sf 4 261Adaptec AIC-6915 "Starfire" PCI 10/100 Ethernet device 262.It Xr sis 4 263SiS 900, SiS 7016, and NS DP83815/6 10/100 Ethernet device 264.It Xr sk 4 265SysKonnect XMAC II and Marvell Yukon 10/100/Gigabit Ethernet device 266.It Xr ste 4 267Sundance Technologies ST201 10/100 Ethernet device 268.It Xr stge 4 269Sundance/Tamarack TC9021 Gigabit Ethernet device 270.It Xr tht 4 271Tehuti Networks 10Gb Ethernet device 272.It Xr ti 4 273Alteon Networks Tigon I and II Gigabit Ethernet device 274.It Xr tl 4 275Texas Instruments ThunderLAN 10/100 Ethernet device 276.It Xr txp 4 2773Com 3XP Typhoon/Sidewinder (3CR990) 10/100 Ethernet device 278.It Xr vge 4 279VIA Velocity 10/100/Gigabit Ethernet device 280.It Xr vic 4 281VMware VMXnet Virtual Interface Controller device 282.It Xr vmx 4 283VMware VMXNET3 Virtual Interface Controller device 284.It Xr vr 4 285VIA Rhine I/II/III 10/100 Ethernet device 286.It Xr vte 4 287RDC R6040 10/100 Ethernet device 288.It Xr wb 4 289Winbond W89C840F 10/100 Ethernet device 290.It Xr xge 4 291Neterion Xframe/Xframe II 10Gb Ethernet device 292.It Xr xl 4 2933Com EtherLink XL and Fast EtherLink XL 10/100 Ethernet device 294.El 295.Ss Wireless network interfaces 296.Bl -tag -width 10n -offset ind -compact 297.It Xr acx 4 298TI ACX100/ACX111 IEEE 802.11a/b/g wireless network device 299.It Xr an 4 300Aironet Communications 4500/4800 IEEE 802.11FH/b wireless network device 301.It Xr ath 4 302Atheros IEEE 802.11a/b/g wireless network device with GPIO 303.It Xr athn 4 304Atheros IEEE 802.11a/b/g/n wireless network device 305.It Xr atw 4 306ADMtek ADM8211 IEEE 802.11b wireless network device 307.It Xr bwfm 4 308Broadcom and Cypress IEEE 802.11a/ac/b/g/n wireless network device 309.It Xr bwi 4 310Broadcom AirForce IEEE 802.11b/g wireless network device 311.It Xr ipw 4 312Intel PRO/Wireless 2100 IEEE 802.11b wireless network device 313.It Xr iwi 4 314Intel 315PRO/Wireless 2200BG/2225BG/2915ABG IEEE 802.11a/b/g wireless network device 316.It Xr iwn 4 317Intel WiFi Link and Centrino IEEE 802.11a/b/g/n wireless network devices 318.It Xr iwm 4 319Intel 7000/8000/9000 IEEE 802.11a/ac/b/g/n wireless network devices 320.It Xr iwx 4 321Intel AX200/AX201 IEEE 802.11a/ac/ax/b/g/n wireless network devices 322.It Xr malo 4 323Marvell Libertas IEEE 802.11b/g wireless network device 324.It Xr pgt 4 325Conexant/Intersil Prism GT Full-MAC IEEE 802.11a/b/g wireless network device 326.It Xr ral 4 327Ralink Technology/MediaTek IEEE 802.11a/b/g/n wireless network device 328.It Xr rtw 4 329Realtek RTL8180L IEEE 802.11b wireless network device 330.It Xr rtwn 4 331Realtek RTL8188CE/RTL8188EE/RTL8192CE/RTL8723AE PCIe IEEE 802.11b/g/n wireless 332network device 333.It Xr wi 4 334WaveLAN/IEEE, PRISM 2-3, and Spectrum24 IEEE 802.11b wireless network 335device 336.It Xr wpi 4 337Intel PRO/Wireless 3945ABG IEEE 802.11a/b/g wireless network device 338.El 339.Ss Cryptography accelerators 340.Bl -tag -width 10n -offset ind -compact 341.It Xr ccp 4 342AMD cryptographic co-processor 343.It Xr glxsb 4 344Geode LX Security Block crypto accelerator 345.It Xr hifn 4 346Hifn 7751/7811/7951/7955/7956/9751 crypto accelerator 347.It Xr safe 4 348SafeNet crypto accelerator 349.It Xr ubsec 4 350Broadcom and BlueSteel uBsec 5x0x crypto accelerator 351.El 352.Ss Serial interfaces 353.Bl -tag -width 10n -offset ind -compact 354.It Xr cy 4 355Cyclades Cyclom-4Y, -8Y, and -16Y asynchronous serial communications devices 356.It Xr cz 4 357Cyclades-Z series multi-port serial adapter device 358.It Xr puc 4 359PCI 360.Dq universal 361communications card driver 362.El 363.Ss Display adapters 364.Bl -tag -width 10n -offset ind -compact 365.It Xr sti 4 366HP Standard Text Interface 367.It Xr tga 4 368DECchip 21030 (TGA) graphics driver 369.It Xr vga 4 370VGA graphics cards 371.El 372.Ss Audio devices 373.Bl -tag -width 10n -offset ind -compact 374.It Xr auacer 4 375Acer Labs I/O Controller Hub integrated AC'97 audio device 376.It Xr auglx 4 377AMD Geode LX CS5536 integrated AC'97 audio device 378.It Xr auich 4 379Intel ICH integrated AC'97 audio device 380.It Xr auixp 4 381ATI SB200/SB300/SB400/SB600 integrated AC'97 audio device 382.It Xr autri 4 383Trident 4DWAVE-DX/NX, SiS 7018, ALi M5451 audio device 384.It Xr auvia 4 385VIA VT82C686A/VT8233/VT8235/VT8237 integrated AC'97 audio device 386.It Xr azalia 4 387generic High Definition Audio device 388.It Xr clcs 4 389Cirrus Logic CS4280/CS4610/CS4615 audio device 390.It Xr clct 4 391Cirrus Logic CS4281 audio device 392.It Xr cmpci 4 393C-Media CMI8338/CMI8738/CMI8768 PCI audio device 394.It Xr eap 4 395Ensoniq AudioPCI audio device 396.It Xr emu 4 397Creative Labs SBLive!, PCI 512, and Audigy audio device 398.It Xr envy 4 399VIA Envy24 audio device 400.It Xr esa 4 401ESS Technology Allegro-1/Maestro-3 family audio device 402.It Xr eso 4 403ESS Technology Solo-1 PCI AudioDrive audio device 404.It Xr fms 4 405Forte Media FM801 audio device 406.It Xr maestro 4 407ESS Maestro 1 and 2 audio device 408.It Xr neo 4 409NeoMagic 256AV/ZX audio device 410.It Xr sv 4 411S3 SonicVibes audio device 412.It Xr yds 4 413Yamaha DS-XG audio device 414.El 415.Ss Time receiver devices 416.Bl -tag -width 10n -offset ind -compact 417.It Xr mbg 4 418Meinberg Funkuhren timedelta sensor 419.El 420.Ss Radio receiver devices 421.Bl -tag -width 10n -offset ind -compact 422.It Xr fms 4 423Forte Media FM801 audio device 424.El 425.Ss Hardware Sensors 426.Bl -tag -width 10n -offset ind -compact 427.It Xr berkwdt 4 428Berkshire Products watchdog timer device 429.It Xr elansc 4 430AMD Elan SC520 System Controller with watchdog timer and GPIO 431.It Xr geodesc 4 432Geode SC1100/SCx200 IAOC watchdog timer device 433.It Xr ichwdt 4 434Intel 6300ESB ICH watchdog timer device 435.It Xr itherm 4 436Intel 3400 temperature sensor 437.It Xr kate 4 438AMD K8 temperature sensor 439.It Xr km 4 440AMD K10 temperature sensor 441.It Xr ksmn 4 442AMD K17 temperature sensor over SMN 443.It Xr pchtemp 4 444Intel PCH temperature sensor 445.It Xr pwdog 4 446Quancom PWDOG1 watchdog timer device 447.It Xr viapm 4 448VIA SMBus controller and VIA VT82C686A/VT8231 hardware monitor 449.It Xr wdt 4 450ICS PCI-WDT500/501 watchdog timer device 451.El 452.Ss Miscellaneous devices 453.Bl -tag -width "amdpcib(4)" -offset ind -compact 454.It Xr alipm 4 455Acer Labs M7101 SMBus controller 456.It Xr amas 4 457AMD memory address map 458.It Xr amdiic 4 459AMD-8111 SMBus controller 460.It Xr amdpcib 4 461AMD-8111 series LPC bridge and timecounter 462.It Xr amdpm 4 463AMD-756/766/768/8111 Power Management and SMBus controller 464.It Xr bktr 4 465Brooktree Bt848/849/878/879 466.Tn PCI 467TV tuners and video capture boards 468.It Xr cbb 4 469.Tn PCI 470Yenta compatible 471.Tn CardBus 472bridges 473.It Xr ehci 4 474USB Enhanced Host Controller Interface 475.It Xr gcu 4 476Intel EP80579 Global Configuration Unit 477.It Xr glxpcib 4 478CS5536 PCI-ISA Bridge with timecounter, watchdog timer, and GPIO 479.It Xr gscpcib 4 480National Semiconductor Geode SC1100 PCI-ISA bridge with GPIO 481.It Xr hpb 4 482.Tn HyperTransport Ns \- Ns Tn PCI bridge 483.It Xr ichiic 4 484Intel ICH SMBus controller 485.It Xr nviic 4 486NVIDIA nForce2/3/4 SMBus controller 487.It Xr ohci 4 488USB Open Host Controller Interface 489.It Xr pcib 4 490PCI-ISA bridge 491.It Xr pcic 4 492.Tn PCI 493.Tn PCMCIA 494controllers, including the Cirrus Logic GD6729 495.It Xr piixpm 4 496Intel PIIX SMBus controller 497.It Xr ppb 4 498.Tn PCI Ns \- Ns Tn PCI bridge 499.It Xr rtsx 4 500Realtek SD card reader 501.It Xr sdhc 4 502SD Host Controller 503.It Xr ssio 4 504National Semiconductor PC87560 Legacy IO 505.It Xr tcpcib 4 506Intel Atom E600 series LPC bridge and watchdog timer 507.It Xr uhci 4 508USB Universal Host Controller Interface 509.It Xr viapm 4 510VIA SMBus controller 511.It Xr virtio 4 512VirtIO support driver 513.El 514.Sh IOCTLS 515If the kernel is compiled with the 516.Va USER_PCICONF 517kernel option, the following 518.Xr ioctl 2 519calls are supported by the 520.Nm 521driver. 522They are defined in the header file 523.In sys/pciio.h . 524.Bl -tag -width Ds 525.It PCIOCREAD Fa "struct pci_io *" 526This 527.Xr ioctl 2 528reads the 529.Tn PCI 530configuration registers specified by the passed-in 531.Va pci_io 532structure. 533The 534.Va pci_io 535structure consists of the following fields: 536.Bl -tag -width pi_width 537.It pi_sel 538A 539.Va pcisel 540structure which specifies the bus, slot and function the user would like to 541query. 542.It pi_reg 543The 544.Tn PCI 545configuration register the user would like to access. 546.It pi_width 547The width, in bytes, of the data the user would like to read. 548This value can be only 4. 549.It pi_data 550The data returned by the kernel. 551.El 552.It PCIOCWRITE Fa "struct pci_io *" 553This 554.Xr ioctl 2 555allows users to write to the 556.Tn PCI 557device specified in the passed-in 558.Va pci_io 559structure. 560The 561.Va pci_io 562structure is described above. 563The limitations on data width described for 564reading registers, above, also apply to writing 565.Tn PCI 566configuration registers. 567.It PCIOCGETROM Fa "struct pci_rom *" 568This 569.Xr ioctl 2 570allows users to read the contents of the 571.Tn PCI 572ROM specified in the passed-in 573.Va pci_rom 574structure. 575The 576.Va pci_rom 577structure consists of the following fields: 578.Bl -tag -width pr_romlen 579.It pr_sel 580A 581.Va pcisel 582structure which specifies the bus, slot and function the user would like to 583query. 584.It pr_romlen 585Size of the buffer to store the contents of the ROM. 586Upon return, this field will contain the size of the ROM 587.It pr_rom 588The address of the buffer to store the contents of the ROM. 589.El 590.Pp 591If the ROM is larger than the specified buffer size, 592.Dv ENOMEM 593will be returned. 594.El 595.Sh FILES 596.Bl -tag -width /dev/pci* -compact 597.It Pa /dev/pci* 598Character device for the 599.Nm 600driver. 601.El 602.Sh SEE ALSO 603.Xr intro 4 , 604.Xr pcidump 8 605.Sh HISTORY 606The machine-independent 607.Tn PCI 608subsystem appeared in 609.Ox 1.2 . 610