1.\" $OpenBSD: pci.4,v 1.391 2021/09/08 20:33:42 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: September 8 2021 $ 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 "# riscv64" 84.Cd "pci* at dwpcie?" 85.Cd "pci* at pciecam?" 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/1Gb Ethernet device 183.It Xr alc 4 184Atheros AR813x/AR815x/AR816x/AR817x 10/100/1Gb Ethernet device 185.It Xr ale 4 186Atheros AR8121/AR8113/AR8114 10/100/1Gb Ethernet device 187.It Xr aq 4 188Aquantia AQC1xx 1Gb/2.5Gb/5Gb/10Gb PCIe Ethernet device 189.It Xr bce 4 190Broadcom BCM4401 10/100 Ethernet device 191.It Xr bge 4 192Broadcom BCM57xx/BCM590x 10/100/1Gb Ethernet device 193.It Xr bnx 4 194Broadcom NetXtreme II 10/100/1Gb Ethernet device 195.It Xr bnxt 4 196Broadcom NetXtreme-C/E 10Gb/25Gb/40Gb/50Gb Ethernet device 197.It Xr cas 4 198Sun Cassini 10/100/1Gb Ethernet device 199.It Xr dc 4 200DEC/Intel 21140/21142/21143/21145 and clones 10/100 Ethernet device 201.It Xr de 4 202DEC DC21x4x (Tulip) 10/100 Ethernet device 203.It Xr em 4 204Intel PRO/1000 10/100/1Gb Ethernet device 205.\" .It Xr en 4 206.\" Midway-based Efficient Networks Inc.\& 207.\" and Adaptec ATM interfaces 208.It Xr ep 4 2093Com EtherLink III and Fast EtherLink III 10/100 Ethernet device 210.It Xr epic 4 211SMC 83C170 (EPIC/100) 10/100 Ethernet device 212.It Xr et 4 213Agere/LSI ET1310 10/100/1Gb Ethernet device 214.It Xr fxp 4 215Intel EtherExpress PRO/100 10/100 Ethernet device 216.It Xr gem 4 217GEM 10/100/1Gb Ethernet device 218.It Xr hme 4 219Sun Happy Meal 10/100 Ethernet device 220.It Xr iavf 4 221Intel Ethernet Adaptive Virtual Function device 222.It Xr ix 4 223Intel 82598/82599/X540/X550 PCI Express 100/1Gb/10Gb Ethernet device 224.It Xr ixgb 4 225Intel PRO/10GbE 10Gb Ethernet device 226.It Xr ixl 4 227Intel Ethernet 700 series Ethernet device 228.It Xr jme 4 229JMicron JMC25x/JMC26x 10/100/1Gb Ethernet device 230.It Xr lge 4 231Level 1 LXT1001 NetCellerator PCI 1Gb Ethernet device 232.It Xr lii 4 233Attansic L2 10/100 Ethernet device 234.It Xr mcx 4 235Mellanox 5th generation Ethernet device 236.It Xr msk 4 237Marvell Yukon-2 10/100/1Gb Ethernet device 238.It Xr mtd 4 239Myson Technology MTD800/MTD803/MTD891 10/100/1Gb Ethernet device 240.It Xr myx 4 241Myricom Myri-10G PCI Express 10Gb Ethernet device 242.It Xr ne 4 243NE2000 and compatible 10/100 Ethernet device 244.It Xr nep 4 245Sun Neptune 10Gb Ethernet device 246.It Xr nfe 4 247NVIDIA nForce MCP 10/100/1Gb Ethernet device 248.It Xr nge 4 249National Semiconductor PCI 10/100/1Gb Ethernet device 250.It Xr oce 4 251Emulex OneConnect 10Gb Ethernet device 252.It Xr pcn 4 253AMD PCnet-PCI 10/100 Ethernet device 254.It Xr re 4 255Realtek 8139C+/8169/816xS/811xS/8168/810xE 10/100/1Gb Ethernet device 256.It Xr rge 4 257Realtek 8125/8125B PCI Express 10/100/1Gb/2.5Gb Ethernet device 258.It Xr rl 4 259Realtek 8129/8139 10/100 Ethernet device 260.It Xr se 4 261SiS 190/191 10/100/1Gb Ethernet device 262.It Xr sf 4 263Adaptec AIC-6915 "Starfire" PCI 10/100 Ethernet device 264.It Xr sis 4 265SiS 900, SiS 7016, and NS DP83815/6 10/100 Ethernet device 266.It Xr sk 4 267SysKonnect XMAC II and Marvell Yukon 10/100/1Gb Ethernet device 268.It Xr ste 4 269Sundance Technologies ST201 10/100 Ethernet device 270.It Xr stge 4 271Sundance/Tamarack TC9021 1Gb Ethernet device 272.It Xr tht 4 273Tehuti Networks 10Gb Ethernet device 274.It Xr ti 4 275Alteon Networks Tigon I and II 1Gb Ethernet device 276.It Xr tl 4 277Texas Instruments ThunderLAN 10/100 Ethernet device 278.It Xr txp 4 2793Com 3XP Typhoon/Sidewinder (3CR990) 10/100 Ethernet device 280.It Xr vge 4 281VIA Velocity 10/100/1Gb Ethernet device 282.It Xr vic 4 283VMware VMXnet Virtual Interface Controller device 284.It Xr vmx 4 285VMware VMXNET3 Virtual Interface Controller device 286.It Xr vr 4 287VIA Rhine I/II/III 10/100 Ethernet device 288.It Xr vte 4 289RDC R6040 10/100 Ethernet device 290.It Xr wb 4 291Winbond W89C840F 10/100 Ethernet device 292.It Xr xge 4 293Neterion Xframe/Xframe II 10Gb Ethernet device 294.It Xr xl 4 2953Com EtherLink XL and Fast EtherLink XL 10/100 Ethernet device 296.El 297.Ss Wireless network interfaces 298.Bl -tag -width 10n -offset ind -compact 299.It Xr acx 4 300TI ACX100/ACX111 IEEE 802.11a/b/g wireless network device 301.It Xr an 4 302Aironet Communications 4500/4800 IEEE 802.11FH/b wireless network device 303.It Xr ath 4 304Atheros IEEE 802.11a/b/g wireless network device with GPIO 305.It Xr athn 4 306Atheros IEEE 802.11a/b/g/n wireless network device 307.It Xr atw 4 308ADMtek ADM8211 IEEE 802.11b wireless network device 309.It Xr bwfm 4 310Broadcom and Cypress IEEE 802.11a/ac/b/g/n wireless network device 311.It Xr bwi 4 312Broadcom AirForce IEEE 802.11b/g wireless network device 313.It Xr ipw 4 314Intel PRO/Wireless 2100 IEEE 802.11b wireless network device 315.It Xr iwi 4 316Intel 317PRO/Wireless 2200BG/2225BG/2915ABG IEEE 802.11a/b/g wireless network device 318.It Xr iwn 4 319Intel WiFi Link and Centrino IEEE 802.11a/b/g/n wireless network devices 320.It Xr iwm 4 321Intel 7000/8000/9000 IEEE 802.11a/ac/b/g/n wireless network devices 322.It Xr iwx 4 323Intel AX200/AX201 IEEE 802.11a/ac/ax/b/g/n wireless network devices 324.It Xr malo 4 325Marvell Libertas IEEE 802.11b/g wireless network device 326.It Xr pgt 4 327Conexant/Intersil Prism GT Full-MAC IEEE 802.11a/b/g wireless network device 328.It Xr ral 4 329Ralink Technology/MediaTek IEEE 802.11a/b/g/n wireless network device 330.It Xr rtw 4 331Realtek RTL8180L IEEE 802.11b wireless network device 332.It Xr rtwn 4 333Realtek RTL8188CE/RTL8188EE/RTL8192CE/RTL8723AE PCIe IEEE 802.11b/g/n wireless 334network device 335.It Xr wi 4 336WaveLAN/IEEE, PRISM 2-3, and Spectrum24 IEEE 802.11b wireless network 337device 338.It Xr wpi 4 339Intel PRO/Wireless 3945ABG IEEE 802.11a/b/g wireless network device 340.El 341.Ss Cryptography accelerators 342.Bl -tag -width 10n -offset ind -compact 343.It Xr ccp 4 344AMD cryptographic co-processor 345.It Xr glxsb 4 346Geode LX Security Block crypto accelerator 347.It Xr hifn 4 348Hifn 7751/7811/7951/7955/7956/9751 crypto accelerator 349.It Xr safe 4 350SafeNet crypto accelerator 351.It Xr ubsec 4 352Broadcom and BlueSteel uBsec 5x0x crypto accelerator 353.El 354.Ss Serial interfaces 355.Bl -tag -width 10n -offset ind -compact 356.It Xr cy 4 357Cyclades Cyclom-4Y, -8Y, and -16Y asynchronous serial communications devices 358.It Xr cz 4 359Cyclades-Z series multi-port serial adapter device 360.It Xr puc 4 361PCI 362.Dq universal 363communications card driver 364.El 365.Ss Display adapters 366.Bl -tag -width 10n -offset ind -compact 367.It Xr sti 4 368HP Standard Text Interface 369.It Xr tga 4 370DECchip 21030 (TGA) graphics driver 371.It Xr vga 4 372VGA graphics cards 373.El 374.Ss Audio devices 375.Bl -tag -width 10n -offset ind -compact 376.It Xr auacer 4 377Acer Labs I/O Controller Hub integrated AC'97 audio device 378.It Xr auglx 4 379AMD Geode LX CS5536 integrated AC'97 audio device 380.It Xr auich 4 381Intel ICH integrated AC'97 audio device 382.It Xr auixp 4 383ATI SB200/SB300/SB400/SB600 integrated AC'97 audio device 384.It Xr autri 4 385Trident 4DWAVE-DX/NX, SiS 7018, ALi M5451 audio device 386.It Xr auvia 4 387VIA VT82C686A/VT8233/VT8235/VT8237 integrated AC'97 audio device 388.It Xr azalia 4 389generic High Definition Audio device 390.It Xr clcs 4 391Cirrus Logic CS4280/CS4610/CS4615 audio device 392.It Xr clct 4 393Cirrus Logic CS4281 audio device 394.It Xr cmpci 4 395C-Media CMI8338/CMI8738/CMI8768 PCI audio device 396.It Xr eap 4 397Ensoniq AudioPCI audio device 398.It Xr emu 4 399Creative Labs SBLive!, PCI 512, and Audigy audio device 400.It Xr envy 4 401VIA Envy24 audio device 402.It Xr esa 4 403ESS Technology Allegro-1/Maestro-3 family audio device 404.It Xr eso 4 405ESS Technology Solo-1 PCI AudioDrive audio device 406.It Xr fms 4 407Forte Media FM801 audio device 408.It Xr maestro 4 409ESS Maestro 1 and 2 audio device 410.It Xr neo 4 411NeoMagic 256AV/ZX audio device 412.It Xr sv 4 413S3 SonicVibes audio device 414.It Xr yds 4 415Yamaha DS-XG audio device 416.El 417.Ss Time receiver devices 418.Bl -tag -width 10n -offset ind -compact 419.It Xr mbg 4 420Meinberg Funkuhren timedelta sensor 421.El 422.Ss Radio receiver devices 423.Bl -tag -width 10n -offset ind -compact 424.It Xr fms 4 425Forte Media FM801 audio device 426.El 427.Ss Hardware Sensors 428.Bl -tag -width 10n -offset ind -compact 429.It Xr berkwdt 4 430Berkshire Products watchdog timer device 431.It Xr elansc 4 432AMD Elan SC520 System Controller with watchdog timer and GPIO 433.It Xr geodesc 4 434Geode SC1100/SCx200 IAOC watchdog timer device 435.It Xr ichwdt 4 436Intel 6300ESB ICH watchdog timer device 437.It Xr itherm 4 438Intel 3400 temperature sensor 439.It Xr kate 4 440AMD K8 temperature sensor 441.It Xr km 4 442AMD K10 temperature sensor 443.It Xr ksmn 4 444AMD K17 temperature sensor over SMN 445.It Xr pchtemp 4 446Intel PCH temperature sensor 447.It Xr pwdog 4 448Quancom PWDOG1 watchdog timer device 449.It Xr viapm 4 450VIA SMBus controller and VIA VT82C686A/VT8231 hardware monitor 451.It Xr wdt 4 452ICS PCI-WDT500/501 watchdog timer device 453.El 454.Ss Miscellaneous devices 455.Bl -tag -width "amdpcib(4)" -offset ind -compact 456.It Xr alipm 4 457Acer Labs M7101 SMBus controller 458.It Xr amas 4 459AMD memory address map 460.It Xr amdiic 4 461AMD-8111 SMBus controller 462.It Xr amdpcib 4 463AMD-8111 series LPC bridge and timecounter 464.It Xr amdpm 4 465AMD-756/766/768/8111 Power Management and SMBus controller 466.It Xr bktr 4 467Brooktree Bt848/849/878/879 468.Tn PCI 469TV tuners and video capture boards 470.It Xr cbb 4 471.Tn PCI 472Yenta compatible 473.Tn CardBus 474bridges 475.It Xr ehci 4 476USB Enhanced Host Controller Interface 477.It Xr gcu 4 478Intel EP80579 Global Configuration Unit 479.It Xr glxpcib 4 480CS5536 PCI-ISA Bridge with timecounter, watchdog timer, and GPIO 481.It Xr gscpcib 4 482National Semiconductor Geode SC1100 PCI-ISA bridge with GPIO 483.It Xr hpb 4 484.Tn HyperTransport Ns \- Ns Tn PCI bridge 485.It Xr ichiic 4 486Intel ICH SMBus controller 487.It Xr nviic 4 488NVIDIA nForce2/3/4 SMBus controller 489.It Xr ohci 4 490USB Open Host Controller Interface 491.It Xr pcib 4 492PCI-ISA bridge 493.It Xr pcic 4 494.Tn PCI 495.Tn PCMCIA 496controllers, including the Cirrus Logic GD6729 497.It Xr piixpm 4 498Intel PIIX SMBus controller 499.It Xr ppb 4 500.Tn PCI Ns \- Ns Tn PCI bridge 501.It Xr rtsx 4 502Realtek SD card reader 503.It Xr sdhc 4 504SD Host Controller 505.It Xr ssio 4 506National Semiconductor PC87560 Legacy IO 507.It Xr tcpcib 4 508Intel Atom E600 series LPC bridge and watchdog timer 509.It Xr uhci 4 510USB Universal Host Controller Interface 511.It Xr viapm 4 512VIA SMBus controller 513.It Xr virtio 4 514VirtIO support driver 515.El 516.Sh IOCTLS 517If the kernel is compiled with the 518.Va USER_PCICONF 519kernel option, the following 520.Xr ioctl 2 521calls are supported by the 522.Nm 523driver. 524They are defined in the header file 525.In sys/pciio.h . 526.Bl -tag -width Ds 527.It PCIOCREAD Fa "struct pci_io *" 528This 529.Xr ioctl 2 530reads the 531.Tn PCI 532configuration registers specified by the passed-in 533.Va pci_io 534structure. 535The 536.Va pci_io 537structure consists of the following fields: 538.Bl -tag -width pi_width 539.It pi_sel 540A 541.Va pcisel 542structure which specifies the bus, slot and function the user would like to 543query. 544.It pi_reg 545The 546.Tn PCI 547configuration register the user would like to access. 548.It pi_width 549The width, in bytes, of the data the user would like to read. 550This value can be only 4. 551.It pi_data 552The data returned by the kernel. 553.El 554.It PCIOCWRITE Fa "struct pci_io *" 555This 556.Xr ioctl 2 557allows users to write to the 558.Tn PCI 559device specified in the passed-in 560.Va pci_io 561structure. 562The 563.Va pci_io 564structure is described above. 565The limitations on data width described for 566reading registers, above, also apply to writing 567.Tn PCI 568configuration registers. 569.It PCIOCGETROM Fa "struct pci_rom *" 570This 571.Xr ioctl 2 572allows users to read the contents of the 573.Tn PCI 574ROM specified in the passed-in 575.Va pci_rom 576structure. 577The 578.Va pci_rom 579structure consists of the following fields: 580.Bl -tag -width pr_romlen 581.It pr_sel 582A 583.Va pcisel 584structure which specifies the bus, slot and function the user would like to 585query. 586.It pr_romlen 587Size of the buffer to store the contents of the ROM. 588Upon return, this field will contain the size of the ROM 589.It pr_rom 590The address of the buffer to store the contents of the ROM. 591.El 592.Pp 593If the ROM is larger than the specified buffer size, 594.Dv ENOMEM 595will be returned. 596.El 597.Sh FILES 598.Bl -tag -width /dev/pci* -compact 599.It Pa /dev/pci* 600Character device for the 601.Nm 602driver. 603.El 604.Sh SEE ALSO 605.Xr intro 4 , 606.Xr pcidump 8 607.Sh HISTORY 608The machine-independent 609.Tn PCI 610subsystem appeared in 611.Ox 1.2 . 612