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