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