1.\" $OpenBSD: pci.4,v 1.81 2003/11/08 16:55:35 miod 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 April 3, 2000 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.Pp 48.Cd "# hppa" 49.Cd "pci* at dino?" 50.Pp 51.Cd "# i386" 52.Cd "pci* at mainbus0 bus ?" 53.Cd "pci* at pchb? bus ?" 54.Pp 55.Cd "# macppc, pegasos" 56.Cd "pci* at mpcpcibr?" 57.Pp 58.Cd "# sparc64" 59.Cd "pci* at psycho?" 60.Cd "pci* at schizo?" 61.Pp 62.Cd "# all architectures" 63.Cd "ppb* at pci? dev ? function ?" 64.Cd "pci* at ppb? bus ?" 65.Sh DESCRIPTION 66The system includes a machine-independent 67.Tn PCI 68bus subsystem and 69several machine-independent 70.Tn PCI 71device drivers. 72.Pp 73Your system may support additional 74.Tn PCI 75devices. 76Drivers for 77.Tn PCI 78devices not listed here are machine-dependent. 79Consult your system's 80.Xr intro 4 81for additional information. 82.Ss Details specific to the i386 83Note that interrupt mappings on the i386 may require that you configure 84your BIOS to reserve sufficient interrupts as "PCI/ISAPnP" so that there 85are sufficient interrupts remaining to configure the discovered PCI 86devices. 87For more information, see 88.Xr pcibios 4 . 89.Sh SUPPORTED DEVICES 90The system includes machine-independent 91.Tn PCI 92drivers, sorted by device type and driver name: 93.Ss SCSI host adapters 94.Bl -tag -width 10n -offset ind -compact 95.It Xr adv 4 , Xr adw 4 96AdvanSys PCI 97.Tn SCSI 98interfaces. 99.It Xr ahc 4 100Adaptec 27xx, 29xx, 39xx, 29160, and other AIC-7xxx-based 101.Tn SCSI 102interfaces. 103.It Xr bha 4 104Buslogic BT-9xx 105.Tn SCSI 106interfaces. 107.It Xr iha 4 108Initio INIC-940 and INIC-950 based 109.Tn SCSI 110interfaces. 111.It Xr isp 4 112QLogic ISP-1020, ISP-1040, and ISP-2100 113.Tn SCSI 114and 115.Tn FibreChannel 116interfaces. 117.It Xr ncr 4 , Xr siop 4 118LSI/Symbios Logic/NCR 53c8xx and 53c1010-family 119.Tn SCSI 120interfaces. 121.It Xr pcscp 4 122AMD Am53c974 PCscsi-PCI 123.Tn SCSI 124interfaces. 125.It Xr trm 4 126Tekram DC-3x5U (TRM-S1040 based) 127.Tn SCSI 128interfaces. 129.El 130.Ss IDE disk controllers 131.Bl -tag -width 10n -offset ind -compact 132.It Xr pciide 4 133PCI IDE controller driver. 134.El 135.Ss RAID and cache controllers 136.Bl -tag -width 10n -offset ind -compact 137.It Xr aac 4 138Adaptec "FSA" family (Adaptec AAC, Dell PERC, HP NetRaid) 139.Tn RAID 140controllers. 141.It Xr ami 4 142American Megatrends Inc. 143MegaRAID family 144.Tn RAID 145controllers. 146.It Xr cac 4 147Compaq Smart ARRAY 148.Tn RAID 149controllers. 150.It Xr dpt 4 151DPT SmartCache/SmartRAID III and IV 152.Tn SCSI 153controllers. 154.It Xr gdt 4 155ICP-Vortex GDT 156.Tn RAID 157controllers. 158.It Xr iop 4 159Generic 160.Tn I2O 161specification 162.Tn RAID 163controllers. 164.It Xr twe 4 1653ware Escalade 166.Tn RAID 167controllers. 168.El 169.Ss Network interfaces 170.Bl -tag -width 10n -offset ind -compact 171.It Xr an 4 172Aironet Communications 4500/4800 IEEE 802.11DS wireless network adapter. 173.It Xr bge 4 174Broadcom BCM570x PCI gigabit ethernet. 175.It Xr dc 4 176Various Tulip-like Ethernet 177interfaces such as the DEC/Intel 21143; 178Macronix 98713, 98713A, 98715, 98715A, 98725, 98727, and 98732; 179Davicom DM9100, DM9102, and DM9102A; 180ASIX Electronics AX88140A and AX88141; 181ADMtek AL981 Comet and AN983 Centaur-P; 182Lite-On 82c168 and 82c169 PNIC; 183and 184Lite-On/Macronix 82c115 PNIC II. 185.It Xr de 4 186.Tn DEC 187DC21x4x (Tulip) based Ethernet 188interfaces, including the DE435, DE450, DE500; 189Znyx ZX3xx; 190SMC 8432, 9332, 9334; 191Cogent/Adaptec EM100FX and EM440TX; 192and Asante single- and multi-port 193Ethernet interfaces. 194Multi-port interfaces are typically configured as 195.Tn PCI Ns \- Ns Tn PCI 196bridges with multiple 197.Xr de 4 198instances on the 199.Tn PCI 200bus on the other side of the bridge. 201.It Xr em 4 202Intel Gigabit Ethernet interfaces. (i82542, i82543, i82544) 203.It Xr en 4 204Midway-based Efficient Networks Inc. 205and Adaptec ATM interfaces. 206.It Xr ep 4 2073Com 3c590 and 3c595 Ethernet interfaces. 208.It Xr fpa 4 209.Tn DEC 210DEFPA 211.Tn FDDI 212interfaces. 213.It Xr fxp 4 214Intel EtherExpress PRO 10+/100B Ethernet interfaces. 215.It Xr gem 4 216Sun GEM and Apple GMAC Gigabit Ethernet interfaces. 217.It Xr le 4 218PCNet-PCI Ethernet interfaces. 219.It Xr lge 4 220Level 1 LXT1001 NetCellerator PCI Gigabit Ethernet. 221.It Xr lmc 4 222Lan Media Corporation 223.Tn SSI/DS1/HSSI/DS3 224interfaces. 225.It Xr mtd 4 226Myson Technologies 227.Tn MTD803 2283-in-1 Fast Ethernet interfaces. 229.It Xr ne 4 230NE2000-compatible Ethernet interfaces. 231.It Xr nge 4 232National Semiconductor DP83820 and DP83821 based Gigabit Ethernet. 233.It Xr rl 4 234Realtek 8129/8139 Ethernet interfaces. 235.It Xr sf 4 236Adaptec AIC-6915 "Starfire" Ethernet interfaces. 237.It Xr sis 4 238SiS 900, SiS 7016, and NS DP83815 Ethernet interfaces. 239.It Xr sk 4 240SysKonnect SK-984x Gigabit Ethernet interfaces. 241.It Xr ste 4 242Sundance Technologies ST201 Ethernet interfaces. 243.It Xr stge 4 244Sundance/Tamarack TC9021 Gigabit Ethernet driver. 245.It Xr ti 4 246Alteon Networks Tigon I and Tigon II Gigabit Ethernet interfaces. 247.It Xr tl 4 248Texas Instruments ThunderLAN-based Ethernet interfaces. 249.It Xr tx 4 250SMC 9432 10/100 Mbps Ethernet interfaces. 251.It Xr txp 4 2523Com 3XP Typhoon/Sidewinder (3C990) 10/100 Mbps Ethernet interfaces. 253.It Xr vr 4 254VIA Technologies VT3043 and VT86C100A Ethernet interfaces. 255.It Xr wb 4 256Winbond W89C840F Ethernet interfaces. 257.It Xr wi 4 258WaveLAN/IEEE and PRISM-II 802.11DS wireless network interfaces behind 259a PLX 905x-based dumb PCMCIA->PCI bridge. 260.It Xr xl 4 2613Com 3c555, 3c556, 3c900, 3c905, 3c980, and 3cSOHO Ethernet interfaces. 262.El 263.Ss Cryptography accelerators 264.Bl -tag -width 10n -offset ind -compact 265.It Xr hifn 4 266Hifn 7751, 7811, and 7951. 267Symmetric Encryption Accelerator. 268.It Xr ises 4 269Pijnenburg PCC-ISES hardware crypto accelerator. 270.It Xr lofn 4 271Hifn 6500 crypto accelerator. 272.It Xr noct 4 273NetOctave NSP2000 crypto accelerator. 274.It Xr nofn 4 275Hifn 7814, 7851 and 7854 crypto processor. 276.It Xr safe 4 277Safenet SafeXcel 1141/1741 crypto accelerator. 278.It Xr ubsec 4 279Broadcom Bluesteelnet uBsec 5501, 5601, 5805, 5820, and 5821. 280.El 281.Ss Serial interfaces 282.Bl -tag -width 10n -offset ind -compact 283.It Xr cy 4 284Cyclades Cyclom-4Y, -8Y, and -16Y asynchronous serial communications devices. 285.It Xr cz 4 286Cyclades-Z series multi-port serial adapter device driver. 287.El 288.Ss Display adapters 289.Bl -tag -width 10n -offset ind -compact 290.It Xr vga 4 291VGA graphics cards. 292.El 293.Ss Audio devices 294.Bl -tag -width 10n -offset ind -compact 295.It Xr auich 4 296Integrated Intel 82801AA/AB/BA/CA and 440MX sound devices. 297.It Xr autri 4 298Trident 4DWAVE-DX/NX, SiS 7018, ALi M5451 audio devices. 299.It Xr auvia 4 300Integrated AC97 audio controller of the 301.Tn VIA Technologies VT82C686A 302and 303.Tn VT8233 304Southbridges. 305.It Xr clcs 4 306Cirrus Logic CrystalClear CS4280 sound devices. 307.It Xr clct 4 308Cirrus Logic CrystalClear CS4281 sound devices. 309.It Xr cmpci 4 310C-Media CMI8x38 sound devices. 311.It Xr eap 4 312Ensoniq AudioPCI sound devices. 313.It Xr emu 4 314Creative Labs SBLive! and PCI 512 audio device driver. 315.It Xr esa 4 316ESS Alegro 1 and Maestro 3 sound devices. 317.It Xr eso 4 318ESS Solo-1 PCI AudioDrive sound devices. 319.It Xr fms 4 320Forte Media FM801 sound devices. 321.It Xr maestro 4 322ESS Maestro 1, 2 and 2E sound devices. 323.It Xr neo 4 324NeoMagic 256AV/ZX sound devices. 325.It Xr sv 4 326S3 SonicVibes sound devices. 327.It Xr yds 4 328Yamaha DS-XG sound devices. 329.El 330.Ss Radio receiver devices 331.Bl -tag -width 10n -offset ind -compact 332.It Xr fms 4 333SoundForte RadioLink SF64-PCR, SoundForte Quad X-treme SF256-PCP-R and 334SoundForte Theatre X-treme 5.1 SF256-PCS-R FM radio devices driver. 335.It Xr gtp 4 336Gemtek PCI FM radio device driver. 337.El 338.Ss Miscellaneous devices 339.Bl -tag -width 10n -offset ind -compact 340.It Xr amdpm 4 341AMD768 Power Management controller. 342.It Xr bktr 4 343Brooktree Bt848 344.Tn PCI 345TV tuners and video capture boards. 346.It Xr cbb 4 347.Tn PCI 348Yenta compatible 349.Tn CardBus 350bridges. 351.It Xr ohci 4 352USB OHCI host controller. 353.It Xr pcic 4 354.Tn PCI 355.Tn PCMCIA 356controllers, including the Cirrus Logic GD6729. 357.It Xr ppb 4 358Generic 359.Tn PCI Ns \- Ns Tn PCI 360bridges, including 361.Tn PCI 362expansion backplanes. 363.It Xr puc 4 364PCI 365.Dq universal 366communications cards, containing 367.Xr com 4 368and 369.Xr lpt 4 370communications ports. 371.It Xr uhci 4 372USB UHCI host controller. 373.It Xr wdt 4 374ICS PCI-WDT500/501 watchdog timer devices. 375.El 376.Sh IOCTLS 377If the kernel is compiled with the 378.Va USER_PCICONF 379kernel option, the following 380.Xr ioctl 2 381calls are supported by the 382.Nm 383driver. 384They are defined in the header file 385.Aq Pa sys/pciio.h . 386.Bl -tag -width 012345678901234 387.Pp 388.It PCIOCREAD 389This 390.Xr ioctl 2 391reads the 392.Tn PCI 393configuration registers specified by the passed-in 394.Va pci_io 395structure. 396The 397.Va pci_io 398structure consists of the following fields: 399.Bl -tag -width pi_width 400.It pi_sel 401A 402.Va pcisel 403structure which specifies the bus, slot and function the user would like to 404query. 405.It pi_reg 406The 407.Tn PCI 408configuration register the user would like to access. 409.It pi_width 410The width, in bytes, of the data the user would like to read. 411This value may be either 1, 2, or 4. 4123-byte reads and reads larger than 4 bytes are not supported. 413.It pi_data 414The data returned by the kernel. 415.El 416.It PCIOCWRITE 417This 418.Xr ioctl 2 419allows users to write to the 420.Tn PCI 421specified in the passed-in 422.Va pci_io 423structure. 424The 425.Va pci_io 426structure is described above. 427The limitations on data width described for 428reading registers, above, also apply to writing 429.Tn PCI 430configuration registers. 431.El 432.Sh FILES 433.Bl -tag -width /dev/pci -compact 434.It Pa /dev/pci 435Character device for the 436.Nm 437driver. 438.El 439.Sh SEE ALSO 440.Xr aac 4 , 441.Xr adv 4 , 442.Xr adw 4 , 443.Xr ahc 4 , 444.Xr ami 4 , 445.Xr an 4 , 446.Xr apecs 4 , 447.Xr auich 4 , 448.Xr autri 4 , 449.Xr auvia 4 , 450.Xr bge 4 , 451.Xr bha 4 , 452.Xr bktr 4 , 453.Xr cac 4 , 454.Xr cardbus 4 , 455.Xr cia 4 , 456.Xr clcs 4 , 457.Xr clct 4 , 458.Xr cmpci 4 , 459.Xr cy 4 , 460.Xr cz 4 , 461.Xr dc 4 , 462.Xr de 4 , 463.Xr dino 4 , 464.Xr dpt 4 , 465.Xr eap 4 , 466.Xr eisa 4 , 467.Xr em 4 , 468.Xr emu 4 , 469.\" no manpage .Xr en 4 , 470.Xr ep 4 , 471.Xr esa 4 , 472.Xr eso 4 , 473.Xr fms 4 , 474.Xr fpa 4 , 475.Xr fxp 4 , 476.Xr gdt 4 , 477.Xr gtp 4 , 478.Xr hifn 4 , 479.Xr iha 4 , 480.Xr intro 4 , 481.Xr iop 4 , 482.Xr irongate 4 , 483.Xr isa 4 , 484.Xr isapnp 4 , 485.Xr ises 4 , 486.Xr isp 4 , 487.Xr lca 4 , 488.Xr le 4 , 489.Xr lge 4 , 490.Xr lmc 4 , 491.Xr lofn 4 , 492.Xr maestro 4 , 493.\" no manpage .Xr mpcpcibr 4 494.Xr ncr 4 , 495.Xr ne 4 , 496.Xr neo 4 , 497.Xr nge 4 , 498.Xr noct 4 , 499.Xr nofn 4 , 500.Xr ohci 4 , 501.Xr options 4 , 502.Xr pchb 4 , 503.Xr pcic 4 , 504.Xr pcmcia 4 , 505.Xr pcscp 4 , 506.Xr ppb 4 , 507.Xr psycho 4 , 508.Xr puc 4 , 509.Xr rl 4 , 510.Xr safe 4 , 511.Xr schizo 4 , 512.Xr sf 4 , 513.Xr siop 4 , 514.Xr sis 4 , 515.Xr sk 4 , 516.Xr ste 4 , 517.Xr stge 4 , 518.Xr sv 4 , 519.Xr ti 4 , 520.Xr tl 4 , 521.Xr trm 4 , 522.Xr tsp 4 , 523.Xr twe 4 , 524.Xr tx 4 , 525.Xr txp 4 , 526.Xr ubsec 4 , 527.Xr uhci 4 , 528.Xr usb 4 , 529.Xr vga 4 , 530.Xr vr 4 , 531.Xr wb 4 , 532.Xr wdt 4 , 533.Xr wi 4 , 534.Xr xl 4 , 535.Xr yds 4 536.Sh HISTORY 537The machine-independent 538.Tn PCI 539subsystem appeared in 540.Ox 2.0 . 541Support for device listing and matching was re-implemented by 542Kenneth Merry, and first appeared in 543.Fx 3.0 . 544