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