PCI(4)                    OpenBSD Programmer's Manual                   PCI(4)

NAME
     pci - introduction to PCI bus support

SYNOPSIS
     # alpha
     pci* at apecs?
     pci* at cia?
     pci* at irongate?
     pci* at lca?
     pci* at tsp?

     # amd64, i386
     pci* at mainbus0 bus ?

     # cats
     pci0 at footbridge?

     # hppa
     pci* at dino?

     # macppc, pegasos
     pci* at mpcpcibr?

     # sparc64
     pci* at psycho?
     pci* at schizo?

     # all architectures
     pci* at pchb? bus ?
     pci* at ppb? bus ?

DESCRIPTION
     The system includes a machine-independent PCI bus subsystem and several
     machine-independent PCI device drivers.

     Your system may support additional PCI devices.  Drivers for PCI devices
     not listed here are machine-dependent.  Consult your system's intro(4)
     for additional information.

   Details specific to the i386
     Note that interrupt mappings on the i386 may require that you configure
     your BIOS to reserve sufficient interrupts as "PCI/ISAPnP" so that there
     are sufficient interrupts remaining to configure the discovered PCI de-
     vices.  For more information, see pcibios(4).

SUPPORTED DEVICES
     The system includes machine-independent PCI drivers, sorted by device
     type and driver name:

   SCSI host adapters
        adv(4), adw(4)
                    AdvanSys PCI SCSI interfaces.
        ahc(4)      Adaptec 27xx, 29xx, 39xx, 29160, and other AIC-7xxx-based
                    SCSI interfaces.
        bha(4)      Buslogic BT-9xx SCSI interfaces.
        iha(4)      Initio INIC-940 and INIC-950 based SCSI interfaces.
        isp(4)      QLogic ISP-1020, ISP-1040, and ISP-2100 SCSI and
                    FibreChannel interfaces.
        mpt(4)      LSI Fusion-MPT SCSI/Fibre Channel interfaces.
        ncr(4), siop(4)
                    LSI/Symbios Logic/NCR 53c8xx and 53c1010-family SCSI in-
                    terfaces.
        pcscp(4)    AMD Am53c974 PCscsi-PCI SCSI interfaces.
        trm(4)      Tekram DC-3x5U (TRM-S1040 based) SCSI interfaces.

   IDE disk controllers
        pciide(4)   PCI IDE controller driver.

   RAID and cache controllers
        aac(4)      Adaptec "FSA" family (Adaptec AAC, Dell PERC, HP NetRaid)
                    RAID controllers.
        ami(4)      American Megatrends Inc.  MegaRAID family RAID con-
                    trollers.
        cac(4)      Compaq Smart ARRAY RAID controllers.
        dpt(4)      DPT SmartCache/SmartRAID III and IV SCSI controllers.
        gdt(4)      ICP-Vortex GDT RAID controllers.
        iop(4)      Generic I2O specification RAID controllers.
        twe(4)      3ware Escalade RAID controllers.

   Network interfaces
        an(4)       Aironet Communications 4500/4800 IEEE 802.11DS wireless
                    network adapter.
        bce(4)      Broadcom BCM4401 Ethernet.
        bge(4)      Broadcom BCM570x PCI gigabit ethernet.
        dc(4)       Various Tulip-like Ethernet interfaces such as the DEC/In-
                    tel 21143; Macronix 98713, 98713A, 98715, 98715A, 98725,
                    98727, and 98732; Davicom DM9100, DM9102, and DM9102A;
                    ASIX Electronics AX88140A and AX88141; ADMtek AL981 Comet
                    and AN983 Centaur-P; Lite-On 82c168 and 82c169 PNIC; and
                    Lite-On/Macronix 82c115 PNIC II.
        de(4)       DEC DC21x4x (Tulip) based Ethernet interfaces, including
                    the DE435, DE450, DE500; Znyx ZX3xx; SMC 8432, 9332, 9334;
                    Cogent/Adaptec EM100FX and EM440TX; and Asante single- and
                    multi-port Ethernet interfaces.  Multi-port interfaces are
                    typically configured as PCI-PCI bridges with multiple
                    de(4) instances on the PCI bus on the other side of the
                    bridge.
        em(4)       Intel Gigabit Ethernet interfaces. (i82542, i82543,
                    i82544)
        en(4)       Midway-based Efficient Networks Inc.  and Adaptec ATM in-
                    terfaces.
        ep(4)       3Com 3c590 and 3c595 Ethernet interfaces.
        fpa(4)      DEC DEFPA FDDI interfaces.
        fxp(4)      Intel EtherExpress PRO 10+/100B Ethernet interfaces.
        gem(4)      Sun GEM and Apple GMAC Gigabit Ethernet interfaces.
        le(4)       PCNet-PCI Ethernet interfaces.
        lge(4)      Level 1 LXT1001 NetCellerator PCI Gigabit Ethernet.
        lmc(4)      Lan Media Corporation SSI/DS1/HSSI/DS3 interfaces.
        mtd(4)      Myson Technologies MTD803 3-in-1 Fast Ethernet interfaces.
        ne(4)       NE2000-compatible Ethernet interfaces.
        nge(4)      National Semiconductor DP83820 and DP83821 based Gigabit
                    Ethernet.
        rl(4)       Realtek 8129/8139 Ethernet interfaces.
        sf(4)       Adaptec AIC-6915 "Starfire" Ethernet interfaces.
        sis(4)      SiS 900, SiS 7016, and NS DP83815 Ethernet interfaces.
        sk(4)       SysKonnect SK-984x Gigabit Ethernet interfaces.
        ste(4)      Sundance Technologies ST201 Ethernet interfaces.
        stge(4)     Sundance/Tamarack TC9021 Gigabit Ethernet driver.
        ti(4)       Alteon Networks Tigon I and Tigon II Gigabit Ethernet in-
                    terfaces.
        tl(4)       Texas Instruments ThunderLAN-based Ethernet interfaces.
        tx(4)       SMC 9432 10/100 Mbps Ethernet interfaces.
        txp(4)      3Com 3XP Typhoon/Sidewinder (3C990) 10/100 Mbps Ethernet
                    interfaces.
        vr(4)       VIA Technologies VT3043 and VT86C100A Ethernet interfaces.
        wb(4)       Winbond W89C840F Ethernet interfaces.
        wi(4)       WaveLAN/IEEE and PRISM-II 802.11DS wireless network inter-
                    faces behind a PLX 905x-based dumb PCMCIA->PCI bridge.
        xl(4)       3Com 3c555, 3c556, 3c900, 3c905, 3c980, and 3cSOHO Ether-
                    net interfaces.

   Cryptography accelerators
        hifn(4)     Hifn 7751, 7811, and 7951.  Symmetric Encryption Accelera-
                    tor.
        ises(4)     Pijnenburg PCC-ISES hardware crypto accelerator.
        lofn(4)     Hifn 6500 crypto accelerator.
        noct(4)     NetOctave NSP2000 crypto accelerator.
        nofn(4)     Hifn 7814, 7851 and 7854 crypto processor.
        safe(4)     Safenet SafeXcel 1141/1741 crypto accelerator.
        ubsec(4)    Broadcom Bluesteelnet uBsec 5501, 5601, 5805, 5820, and
                    5821.

   Serial interfaces
        cy(4)       Cyclades Cyclom-4Y, -8Y, and -16Y asynchronous serial com-
                    munications devices.
        cz(4)       Cyclades-Z series multi-port serial adapter device driver.

   Display adapters
        vga(4)      VGA graphics cards.

   Audio devices
        auich(4)    Integrated Intel 82801AA/AB/BA/CA and 440MX sound devices.
        autri(4)    Trident 4DWAVE-DX/NX, SiS 7018, ALi M5451 audio devices.
        auvia(4)    Integrated AC97 audio controller of the VIA Technologies
                    VT82C686A, VT8233, VT8235, VT8237 Southbridges.
        clcs(4)     Cirrus Logic CrystalClear CS4280 sound devices.
        clct(4)     Cirrus Logic CrystalClear CS4281 sound devices.
        cmpci(4)    C-Media CMI8x38 sound devices.
        eap(4)      Ensoniq AudioPCI sound devices.
        emu(4)      Creative Labs SBLive! and PCI 512 audio device driver.
        esa(4)      ESS Alegro 1 and Maestro 3 sound devices.
        eso(4)      ESS Solo-1 PCI AudioDrive sound devices.
        fms(4)      Forte Media FM801 sound devices.
        maestro(4)  ESS Maestro 1, 2 and 2E sound devices.
        neo(4)      NeoMagic 256AV/ZX sound devices.
        sv(4)       S3 SonicVibes sound devices.
        yds(4)      Yamaha DS-XG sound devices.

   Radio receiver devices
        fms(4)      SoundForte RadioLink SF64-PCR, SoundForte Quad X-treme
                    SF256-PCP-R and SoundForte Theatre X-treme 5.1 SF256-PCS-R
                    FM radio devices driver.
        gtp(4)      Gemtek PCI FM radio device driver.

   Miscellaneous devices
        amdpm(4)    AMD768 Power Management controller.
        bktr(4)     Brooktree Bt848 PCI TV tuners and video capture boards.
        cbb(4)      PCI Yenta compatible CardBus bridges.
        ohci(4)     USB OHCI host controller.
        pcic(4)     PCI PCMCIA controllers, including the Cirrus Logic GD6729.
        ppb(4)      Generic PCI-PCI bridges, including PCI expansion back-
                    planes.
        puc(4)      PCI ``universal'' communications cards, containing com(4)
                    and lpt(4) communications ports.
        uhci(4)     USB UHCI host controller.
        wdt(4)      ICS PCI-WDT500/501 watchdog timer devices.

IOCTLS
     If the kernel is compiled with the USER_PCICONF kernel option, the fol-
     lowing ioctl(2) calls are supported by the pci driver.  They are defined
     in the header file <sys/pciio.h>.

     PCIOCREAD        This ioctl(2) reads the PCI configuration registers
                      specified by the passed-in pci_io structure.  The pci_io
                      structure consists of the following fields:

                      pi_sel    A pcisel structure which specifies the bus,
                                slot and function the user would like to
                                query.

                      pi_reg    The PCI configuration register the user would
                                like to access.

                      pi_width  The width, in bytes, of the data the user
                                would like to read.  This value can be only 4.

                      pi_data   The data returned by the kernel.

     PCIOCWRITE       This ioctl(2) allows users to write to the PCI specified
                      in the passed-in pci_io structure.  The pci_io structure
                      is described above.  The limitations on data width de-
                      scribed for reading registers, above, also apply to
                      writing PCI configuration registers.

FILES
     /dev/pci  Character device for the pci driver.

SEE ALSO
     aac(4), adv(4), adw(4), ahc(4), ami(4), an(4), apecs(4), auich(4),
     autri(4), auvia(4), bce(4), bge(4), bha(4), bktr(4), cac(4), cardbus(4),
     cia(4), clcs(4), clct(4), cmpci(4), cy(4), cz(4), dc(4), de(4), dino(4),
     dpt(4), eap(4), eisa(4), em(4), emu(4), ep(4), esa(4), eso(4), fms(4),
     footbridge(4), fpa(4), fxp(4), gdt(4), gtp(4), hifn(4), iha(4), intro(4),
     iop(4), irongate(4), isa(4), isapnp(4), ises(4), isp(4), lca(4), le(4),
     lge(4), lmc(4), lofn(4), maestro(4), mpt(4), ncr(4), ne(4), neo(4),
     nge(4), noct(4), nofn(4), ohci(4), options(4), pchb(4), pcic(4),
     pcmcia(4), pcscp(4), ppb(4), psycho(4), puc(4), rl(4), safe(4),
     schizo(4), sf(4), siop(4), sis(4), sk(4), ste(4), stge(4), sv(4), ti(4),
     tl(4), trm(4), tsp(4), twe(4), tx(4), txp(4), ubsec(4), uhci(4), usb(4),
     vga(4), vr(4), wb(4), wdt(4), wi(4), xl(4), yds(4)

HISTORY
     The machine-independent PCI subsystem appeared in OpenBSD 2.0.  Support
     for device listing and matching was re-implemented by Kenneth Merry, and
     first appeared in FreeBSD 3.0.

OpenBSD 3.5                      April 3, 2000                               4
