#       $NetBSD: files.pci,v 1.450 2025/06/16 08:23:19 macallan Exp $
#
# Config file and device description for machine-independent PCI code.
# Included by ports that need it.  Requires that the SCSI files be
# defined first.

defflag opt_pci.h       PCIVERBOSE PCI_CONFIG_DUMP PCI_NETBSD_CONFIGURE
                       PCI_RESOURCE
defparam opt_pci.h      PCI_NETBSD_ENABLE_IDE

defflag opt_bktr.h      BKTR_430_FX_MODE BKTR_GPIO_ACCESS BKTR_NO_MSP_RESET
                       BKTR_REVERSE_MUTE BKTR_SIS_VIA_MODE BKTR_USE_PLL
defparam opt_bktr.h     BKTR_OVERRIDE_CARD BKTR_OVERRIDE_TUNER BKTR_OVERRIDE_DBX
                       BKTR_OVERRIDE_MSP BKTR_SYSTEM_DEFAULT

defflag opt_pciide.h    PCIIDE_CMD064x_DISABLE PCIIDE_AMD756_ENABLEDMA
                       PCIIDE_CMD0646U_ENABLEUDMA PCIIDE_I31244_DISABLEDMA

device  pci {[dev = -1], [function = -1]}
attach  pci at pcibus
file    dev/pci/pci.c                   pci                     needs-flag
file    dev/pci/pci_map.c               pci
file    dev/pci/pci_quirks.c            pci
file    dev/pci/pci_resource.c          pci & pci_resource
file    dev/pci/pci_subr.c              pci
file    dev/pci/pci_stub.c              pci
file    dev/pci/pci_usrreq.c            pci
file    dev/pci/pciconf.c               pci & pci_netbsd_configure

file    dev/pci/pcibusprint.c           pcibus

file    dev/pci/pci_verbose.c           pci & pciverbose

file    dev/pci/wsdisplay_pci.c         wsdisplay & pci

# Cypress 82c693 hyperCache(tm) Stand-Alone PCI Peripheral Controller
# with USB.  This is a combo chip:
#
#       PCI-ISA bridge
#       PCI IDE controller
#       OHCI USB controller
#
# There are some common subroutines that each function needs.
define  cy82c693
file    dev/pci/cy82c693.c              cy82c693

# Adaptec 3940, 2940, and aic78[5678]0 SCSI controllers
# device declaration in sys/conf/files
attach  ahc at pci with ahc_pci: ahc_seeprom, smc93cx6
file    dev/pci/ahc_pci.c               ahc_pci

attach  ahd at pci with ahd_pci
file    dev/pci/ahd_pci.c               ahd_pci

# I2O adapters
attach  iop at pci with iop_pci
file    dev/pci/iop_pci.c               iop_pci

# 3ware RAID controllers
device  twe {unit = -1}
attach  twe at pci
file    dev/pci/twe.c                   twe

attach  ld at twe with ld_twe
file    dev/pci/ld_twe.c                ld_twe

device  twa {unit = -1}
attach  twa at pci
file    dev/pci/twa.c                   twa

attach  ld at twa with ld_twa
file    dev/pci/ld_twa.c                ld_twa

# AMI RAID controllers
device  amr {unit = -1}
attach  amr at pci
file    dev/pci/amr.c                   amr

attach  ld at amr with ld_amr
file    dev/pci/ld_amr.c                ld_amr

# Areca SATA RAID Controllers
device  arcmsr: scsi, sysmon_envsys
attach  arcmsr at pci
file    dev/pci/arcmsr.c                arcmsr

# Compaq RAID controllers
attach  cac at pci with cac_pci
file    dev/pci/cac_pci.c               cac_pci

# Mylex DAC960 RAID controllers
attach  mlx at pci with mlx_pci
file    dev/pci/mlx_pci.c               mlx_pci

# Newer Mylex AcceleRAID and eXtremeRAID controllers
device  mly: scsi
attach  mly at pci
file    dev/pci/mly.c                   mly                     needs-flag

# Myson-Century Technology MTD803 3-in-1 Fast Ethernet Controller
attach  mtd at pci with mtd_pci
file    dev/pci/if_mtd_pci.c            mtd_pci

# ICP-Vortex/Intel RAID controllers
attach  icp at pci with icp_pci
file    dev/pci/icp_pci.c               icp_pci

# Adaptec FSA RAID controllers
attach  aac at pci with aac_pci
file    dev/pci/aac_pci.c               aac_pci

# IBM ServeRAID RAID controllers
device  ips: scsi
attach  ips at pci
file    dev/pci/ips.c                   ips

# DPT EATA SCSI controllers
attach  dpt at pci with dpt_pci
file    dev/pci/dpt_pci.c               dpt_pci

# AdvanSys 1200A, 1200B, and ULTRA SCSI controllers
# device declaration in sys/conf/files
attach  adv at pci with adv_pci
file    dev/pci/adv_pci.c               adv_pci

# AdvanSys ULTRA WIDE SCSI controllers
# device declaration in sys/conf/files
attach  adw at pci with adw_pci
file    dev/pci/adw_pci.c               adw_pci
file    dev/ic/adwlib.c                 adw_pci
file    dev/ic/adwmcode.c               adw_pci

# AMD Am53c974 PCscsi-PCI SCSI controllers
device  pcscp: scsi, ncr53c9x
attach  pcscp at pci
file    dev/pci/pcscp.c                 pcscp

# HP/Compaq Command Interface to Scsi-3
attach ciss at pci with ciss_pci
file    dev/pci/ciss_pci.c              ciss_pci

# BusLogic BT-9xx PCI family
# device declaration in sys/conf/files
attach  bha at pci with bha_pci
file    dev/pci/bha_pci.c               bha_pci

# Qlogic ISP 10x0 (PCI) family
# device declaration in sys/conf/files
attach  isp at pci with isp_pci
file    dev/pci/isp_pci.c               isp_pci

# LSILogic MegaRAID SAS
# device declaration in sys/conf/files
attach  mfi at pci with mfi_pci
file    dev/pci/mfi_pci.c               mfi_pci

# LSI MegaRAID SAS Fusion RAID controllers
device  mfii: scsi
attach  mfii at pci
file    dev/pci/mfii.c                  mfii

# LSILogic Fusion-MPT I/O Processor family
# device declaration in sys/conf/files
attach  mpt at pci with mpt_pci
file    dev/pci/mpt_pci.c               mpt_pci

# LSI Logic Fusion-MPT Message Passing Interface 2.0
device  mpii: scsi
attach  mpii at pci
file    dev/pci/mpii.c                  mpii

# Aquantia/Atlantic 10-Gigabit Ethernet
device  aq: ether, ifnet, arp, sysmon_envsys
attach  aq at pci
file    dev/pci/if_aq.c                 aq
defflag opt_if_aq.h     AQ_EVENT_COUNTERS

# 3Com 3c590 and 3c595 Ethernet controllers
# device declaration in sys/conf/files
attach  ep at pci with ep_pci
file    dev/pci/if_ep_pci.c             ep_pci

# 3Com 3c90x[B] Ethernet controllers
# device declaration in sys/conf/files
attach  ex at pci with ex_pci
file    dev/pci/if_ex_pci.c             ex_pci

# AMD PCnet-PCI Ethernet controller family
device  pcn: ether, ifnet, arp, mii
attach  pcn at pci
file    dev/pci/if_pcn.c                pcn

# common code for siop/esiop pci front end
define  siop_pci_common
file    dev/pci/siop_pci_common.c       siop_pci_common

# Symbios 53c8xx SCSI chips
# device declaration in sys/conf/files
attach  siop at pci with siop_pci: siop_pci_common
file    dev/pci/siop_pci.c              siop_pci
attach  esiop at pci with esiop_pci: siop_pci_common
file    dev/pci/esiop_pci.c             esiop_pci

# Initio INIC-940/950 SCSI controllers
attach  iha at pci with iha_pci
file    dev/pci/iha_pci.c               iha_pci

# Tekram DC-395U/UW/F and DC-315/U SCSI controllers
device  trm: scsi
attach  trm at pci
file    dev/pci/trm.c                   trm

# Guillemot Maxi Radio FM 2000 Radio Card
device  gtp: radiodev, tea5757
attach  gtp at pci
file    dev/pci/gtp.c                   gtp

# MediaForte SoundForte SF64-PCR Radio card
#device sf4r: radiodev, tea5757
#attach sf4r at pci
#file   dev/pci/sf64pcr.c               sf4r

# PCI IDE controllers
define pciide_common
file dev/pci/pciide_common.c pciide_common

device  pciide: ata, pciide_common, wdc_common
attach  pciide at pci
file    dev/pci/pciide.c                pciide

# AHCI SATA controllers
attach  ahcisata at pci with ahcisata_pci
file    dev/pci/ahcisata_pci.c          ahcisata_pci
defflag opt_ahcisata_pci.h              AHCISATA_DISABLE_MSI
defflag opt_ahcisata_pci.h              AHCISATA_DISABLE_MSIX

# Acard IDE controllers
device  acardide: ata, ata_dma, ata_udma, pciide_common, wdc_common
attach  acardide at pci
file    dev/pci/acardide.c              acardide

# Acer Lab IDE controllers
device  aceride: ata, ata_dma, ata_udma, pciide_common, wdc_common
attach  aceride at pci
file    dev/pci/aceride.c               aceride

# Intel i31244 SATA controller
device  artsata: ata, ata_dma, ata_udma, pciide_common, wdc_common, sata
attach  artsata at pci
file    dev/pci/artsata.c               artsata

# CMD tech IDE controllers
device  cmdide: ata, ata_dma, ata_udma, pciide_common, wdc_common
attach  cmdide at pci
file    dev/pci/cmdide.c                cmdide

# Cypress IDE controllers
device  cypide: ata, ata_dma, pciide_common, wdc_common, cy82c693
attach  cypide at pci
file    dev/pci/cypide.c                cypide

# AMD Geode IDE controllers
device  geodeide: ata, ata_dma, ata_udma, pciide_common, wdc_common
attach  geodeide at pci
file    dev/pci/geodeide.c              geodeide

# Triones/HighPoint IDE controllers
device  hptide: ata, ata_dma, ata_udma, pciide_common, wdc_common
attach  hptide at pci
file    dev/pci/hptide.c                hptide

# Integrated Technology Express IDE controllers
device  iteide: ata, ata_dma, ata_udma, pciide_common, wdc_common
attach  iteide at pci
file    dev/pci/iteide.c                iteide

# Jmicron hybrid IDE/AHCI controllers
define  jmide_hl { }
device  jmide: ata, ata_dma, ata_udma, pciide_common, wdc_common, jmide_hl
attach  jmide at pci
attach  ahcisata at jmide_hl with jmahci
file    dev/pci/jmide.c                 jmide | jmahci needs-flag

# National Semiconductor IDE controllers
device  nside: ata, ata_dma, ata_udma, pciide_common, wdc_common
attach  nside at pci
file    dev/pci/nside.c                 nside

# Opti IDE controllers
device  optiide: ata, ata_dma, pciide_common, wdc_common
attach  optiide at pci
file    dev/pci/optiide.c               optiide

# Intel IDE controllers
device  piixide: ata, ata_dma, ata_udma, pciide_common, wdc_common
attach  piixide at pci
file    dev/pci/piixide.c               piixide

# Promise Serial ATA controllers
device  pdcsata: ata, ata_dma, ata_udma, pciide_common, wdc_common, sata
attach  pdcsata at pci
file    dev/pci/pdcsata.c               pdcsata

# Promise IDE controllers
device  pdcide: ata, ata_dma, ata_udma, pciide_common, wdc_common
attach  pdcide at pci
file    dev/pci/pdcide.c                pdcide

# ServerWorks IDE controllers
device  rccide: ata, ata_dma, ata_udma, pciide_common, wdc_common
attach  rccide at pci
file    dev/pci/rccide.c                rccide

# RDC IDE controllers
device  rdcide: ata, ata_dma, ata_udma, pciide_common, wdc_common
attach  rdcide at pci
file    dev/pci/rdcide.c                rdcide

# ServerWorks SATA controllers
device  svwsata: ata, ata_dma, ata_udma, pciide_common, wdc_common, sata
attach  svwsata at pci
file    dev/pci/svwsata.c               svwsata

# Silicon Image SATALink controllers
device  satalink: ata, ata_dma, ata_udma, pciide_common, wdc_common, sata
attach  satalink at pci
file    dev/pci/satalink.c              satalink

# Intel SCH IDE controllers
device  schide: ata, ata_dma, ata_udma, pciide_common, wdc_common
attach  schide at pci
file    dev/pci/schide.c                schide

# SiS IDE controllers
device  siside: ata, ata_dma, ata_udma, pciide_common, wdc_common
attach  siside at pci
file    dev/pci/siside.c                siside

# Symphony Labs IDE controllers
device  slide: ata, ata_dma, pciide_common, wdc_common
attach  slide at pci
file    dev/pci/slide.c         slide

# ServerWorks IDE controllers
#device swide: ata, ata_dma, ata_udma, pciide_common, wdc_common
#attach swide at pci
#file   dev/pci/swide.c         swide

# VIA/AMD/Nvidia IDE controllers
device  viaide: ata, ata_dma, ata_udma, pciide_common, wdc_common, sata
attach  viaide at pci
file    dev/pci/viaide.c        viaide

# STMicroelectronics STPC IDE controllers
device  stpcide: ata, ata_dma, ata_udma, pciide_common, wdc_common
attach  stpcide at pci
file    dev/pci/stpcide.c       stpcide

# ATI IXP IDE controllers
device  ixpide: ata, ata_dma, ata_udma, pciide_common, wdc_common
attach  ixpide at pci
file    dev/pci/ixpide.c        ixpide

# Toshiba PICCOLO IDE controllers
device  toshide: ata, ata_dma, pciide_common, wdc_common
attach  toshide at pci
file    dev/pci/toshide.c       toshide

# PCI-PCI bridge chips
device  ppb: pcibus
attach  ppb at pci
file    dev/pci/ppb.c                   ppb
defflag opt_ppb.h       PPB_USEINTR

# Cyclades Cyclom-8/16/32
attach  cy at pci with cy_pci
file    dev/pci/cy_pci.c                cy_pci

# Cyclades-Z series of intelligent multi-port serial adapters
device  cz
attach  cz at pci
file    dev/pci/cz.c                    cz                      needs-flag

# Intel EtherExpress PRO 10/100B
attach  fxp at pci with fxp_pci
file    dev/pci/if_fxp_pci.c            fxp_pci

# Sun HME-network
attach  hme at pci with hme_pci
file    dev/pci/if_hme_pci.c            hme_pci

# Sun GEM-network
attach  gem at pci with gem_pci
file    dev/pci/if_gem_pci.c            gem_pci

# Sun Cassini-network
device  cas: arp, ether, ifnet, mii
attach  cas at pci
file    dev/pci/if_cas.c                cas

# JMicron JMC2[56]0 ethernet controllers
device  jme: ether, ifnet, arp, mii
attach  jme at pci
file    dev/pci/if_jme.c                jme

# NE2000-compatible PCI Ethernet cards
attach  ne at pci with ne_pci: rtl80x9
file    dev/pci/if_ne_pci.c             ne_pci

# Texas Instruments ThunderLAN Chip.
device  tl: ether, ifnet, arp, i2cexec, at24cxx_eeprom, i2c_bitbang,
           mii, mii_bitbang
attach  tl at pci
file    dev/pci/if_tl.c                 tl

# SDL Communications N2 PCI Network Interface
# device declaration in sys/conf/files
attach  ntwoc at pci with ntwoc_pci
file    dev/pci/if_ntwoc_pci.c          ntwoc_pci

# generic PCI VGA
defflag opt_vga.h       VGA_POST:       X86EMU
attach  vga at pci with vga_pci
file    dev/pci/vga_pci.c               vga_pci                 needs-flag

# DEC TGA
device  tga: wsemuldisplaydev, rasops8, rasops32
attach  tga at pci
file    dev/pci/tga.c                   tga                     needs-flag
file    dev/pci/tga_conf.c              tga
file    dev/ic/bt485.c                  tga
file    dev/ic/bt463.c                  tga
file    dev/ic/ibm561.c                 tga

# HP Visualize
attach  sti at pci with sti_pci
file    dev/pci/sti_pci.c               sti_pci                 needs-flag

# Integraphics Systems IGA168x and CyberPro framebuffers (linear non-VGA mode)
# device declaration in sys/conf/files
attach  igsfb at pci with igsfb_pci
file    dev/pci/igsfb_pci.c             igsfb_pci

# Brooktree Bt848 video capture
device  bktr: radiodev
attach  bktr at pci
file    dev/pci/bktr/bktr_audio.c       bktr
file    dev/pci/bktr/bktr_card.c        bktr
file    dev/pci/bktr/bktr_core.c        bktr
file    dev/pci/bktr/bktr_os.c          bktr                    needs-flag
file    dev/pci/bktr/bktr_tuner.c       bktr

# Cirrus Logic CrystalClear PCI Audio CS4280
device  clcs: audiobus, ac97, midibus
attach  clcs at pci
file    dev/pci/cs4280.c                clcs

# Cirrus Logic CrystalClear PCI Audio CS4281
device  clct: audiobus, ac97
attach  clct at pci
file    dev/pci/cs4281.c                clct

# Shared code for Cirrus Logic CrystalClear PCI Audio CS4280 and CS4281
file    dev/pci/cs428x.c                clcs | clct

# Forte Media FM801
device  fms { }: audiobus, ac97, midibus
attach  fms at pci
file    dev/pci/fms.c                   fms

attach  opl at fms with opl_fms
file    dev/pci/opl_fms.c               opl_fms

attach  mpu at fms with mpu_fms
file    dev/pci/mpu_fms.c               mpu_fms

# Ensoniq AudioPCI S5016
device  eap { }: audiobus, ac97, midibus
attach  eap at pci
file    dev/pci/eap.c                   eap

attach  joy at eap with joy_eap
file    dev/pci/joy_eap.c               joy_eap needs-flag

# Acer Labs M5455
device  auacer: audiobus, ac97, aurateconv
attach  auacer at pci
file    dev/pci/auacer.c                auacer

# Intel ICH AC'97 audio
device  auich: audiobus, ac97, aurateconv
attach  auich at pci
file    dev/pci/auich.c                 auich

# VIA VT82C686A/VT8233/VT8235 AC'97 Audio
device  auvia: audiobus, ac97, aurateconv
attach  auvia at pci
file    dev/pci/auvia.c                 auvia

# ATI IXP 200/300/400 series AC'97 Audio
device  auixp: audiobus, ac97, aurateconv
attach  auixp at pci
file    dev/pci/auixp.c                 auixp

# AMD Geode CS5536 Companion Audio
device  gcscaudio: audiobus, ac97, aurateconv
attach  gcscaudio at pci
file    dev/pci/gcscaudio.c             gcscaudio

# NeoMagic 256 AC'97 Audio
device  neo: audiobus, ac97
attach  neo at pci
file    dev/pci/neo.c                   neo

# ESS Allegro-1 / Maestro3
device  esa: audiobus, ac97
attach  esa at pci
file    dev/pci/esa.c                   esa

# ESS Solo-1 PCI AudioDrive
device  eso { }: audiobus
attach  eso at pci
file    dev/pci/eso.c                   eso

attach  opl at eso with opl_eso
file    dev/pci/opl_eso.c               opl_eso

attach  mpu at eso with mpu_eso
file    dev/pci/mpu_eso.c               mpu_eso

attach  joy at eso with joy_eso
file    dev/pci/joy_eso.c               joy_eso

# ESS Maestro-1/2/2e PCI AC97 Audio Accelerator
device  esm: audiobus, ac97
attach  esm at pci
file    dev/pci/esm.c                   esm

# S3 SonicVibes (S3 617)
device  sv { }: audiobus, midibus
attach  sv at pci
file    dev/pci/sv.c                    sv

attach  opl at sv with opl_sv
file    dev/pci/opl_sv.c                opl_sv

# C-Media CMI8x38 Audio Chip
device  cmpci { }: audiobus
attach  cmpci at pci
file    dev/pci/cmpci.c                 cmpci

attach  opl at cmpci with opl_cmpci
file    dev/pci/opl_cmpci.c             opl_cmpci

attach  mpu at cmpci with mpu_cmpci
file    dev/pci/mpu_cmpci.c             mpu_cmpci

# Yamaha YMF724/740/744/754 PCI audio controller
device  yds { }: audiobus, ac97
attach  yds at pci
file    dev/pci/yds.c                   yds

attach  opl at yds with opl_yds
file    dev/pci/opl_yds.c               opl_yds

attach  mpu at yds with mpu_yds
file    dev/pci/mpu_yds.c               mpu_yds

# Creative Labs EMU10k1 (SBLive! series and PCI512)
device  emuxki: audiobus, ac97
attach  emuxki at pci
file    dev/pci/emuxki.c                emuxki
file    dev/pci/emuxki_boards.c         emuxki

# Trident 4DWAVE AC'97 audio (including SiS 7018,ALi M5451)
device  autri: audiobus, ac97, midibus
attach  autri at pci
file    dev/pci/autri.c                 autri

# SMC EPIC/100 Fast Ethernet on PCI
attach  epic at pci with epic_pci
file    dev/pci/if_epic_pci.c           epic_pci

# PCI "universal" communication device driver, for PCI com, lpt, etc. ports
# (see documentation in the driver for what, exactly, should be supported)
device  puc { port = -1 }
attach  puc at pci
file    dev/pci/puc.c                   puc
file    dev/pci/pucdata.c               puc
defflag opt_puc.h       PUC_CNAUTO
defparam opt_puc.h      PUC_CNBUS

attach  com at puc with com_puc
file    dev/pci/com_puc.c               com_puc needs-flag
file    dev/pci/cyber.c                 com_puc
file    dev/pci/puccn.c                 com_puc

attach  lpt at puc with lpt_puc
file    dev/pci/lpt_puc.c               lpt_puc & !ppbus

attach  atppc at puc with atppc_puc
file    dev/pci/atppc_puc.c             atppc_puc

# UHCI USB controller
attach  uhci at pci with uhci_pci
file    dev/pci/uhci_pci.c              uhci_pci

# OHCI USB controller
attach  ohci at pci with ohci_pci
file    dev/pci/ohci_pci.c              ohci_pci

# EHCI USB controller
attach  ehci at pci with ehci_pci
file    dev/pci/ehci_pci.c              ehci_pci

file    dev/pci/usb_pci.c               ehci_pci | ehci_cardbus

# xHCI USB controller
attach  xhci at pci with xhci_pci
file    dev/pci/xhci_pci.c              xhci_pci
defflag opt_xhci_pci.h                  XHCI_DISABLE_MSI
defflag opt_xhci_pci.h                  XHCI_DISABLE_MSIX

# OHCI IEEE 1394 controller
attach  fwohci at pci with fwohci_pci
file    dev/pci/fwohci_pci.c            fwohci_pci

# VIA Rhine/Rhine II Fast Ethernet controllers
device  vr: ether, ifnet, arp, mii, mii_bitbang
attach  vr at pci
file    dev/pci/if_vr.c                 vr

# SiS 900 Fast Ethernet controllers
device  sip: ether, ifnet, arp, mii, mii_bitbang
attach  sip at pci
file    dev/pci/if_sip.c                sip | gsip

# National Semiconductor DP83820 Gigabit Ethernet
device  gsip: ether, ifnet, arp, mii, mii_bitbang
attach  gsip at pci

# Level One LXT-1001 Gigabit Ethernet
#device glxt: ether, ifnet, arp, mii
#attach glxt at pci
#file   dev/pci/if_glxt.c               glxt

# Sundance Tech./Tamarack TC9021 Gigabit Ethernet
device  stge: ether, ifnet, arp, mii, mii_bitbang
attach  stge at pci
file    dev/pci/if_stge.c               stge

# Intel I225/I226 2.5-Gigabit Ethernet
device  igc: ether, ifnet, arp, mii, mii_phy
attach  igc at pci
file    dev/pci/igc/if_igc.c            igc
file    dev/pci/igc/igc_api.c           igc
file    dev/pci/igc/igc_base.c          igc
file    dev/pci/igc/igc_i225.c          igc
file    dev/pci/igc/igc_mac.c           igc
file    dev/pci/igc/igc_nvm.c           igc
file    dev/pci/igc/igc_phy.c           igc
defparam opt_if_igc.h   IGC_TX_PROCESS_LIMIT_DEFAULT
                       IGC_TX_INTR_PROCESS_LIMIT_DEFAULT
                       IGC_RX_PROCESS_LIMIT_DEFAULT
                       IGC_RX_INTR_PROCESS_LIMIT_DEFAULT
                       IGC_DISABLE_MSIX IGC_DISABLE_MSI

# Intel i82598 & i82599 10-Gigabit Ethernet
device  ixg: ether, ifnet, arp, mii, mii_phy
attach  ixg at pci
file    dev/pci/ixgbe/ixgbe.c           ixg | ixv
file    dev/pci/ixgbe/ix_txrx.c         ixg | ixv
file    dev/pci/ixgbe/ixgbe_netbsd.c    ixg | ixv
file    dev/pci/ixgbe/ixgbe_82598.c     ixg | ixv
file    dev/pci/ixgbe/ixgbe_82599.c     ixg | ixv
file    dev/pci/ixgbe/ixgbe_x540.c      ixg | ixv
file    dev/pci/ixgbe/ixgbe_x550.c      ixg | ixv
file    dev/pci/ixgbe/ixgbe_api.c       ixg | ixv
file    dev/pci/ixgbe/ixgbe_common.c    ixg | ixv
file    dev/pci/ixgbe/ixgbe_mbx.c       ixg | ixv
file    dev/pci/ixgbe/ixgbe_osdep.c     ixg | ixv
file    dev/pci/ixgbe/ixgbe_phy.c       ixg | ixv
file    dev/pci/ixgbe/ixgbe_vf.c        ixg | ixv
file    dev/pci/ixgbe/if_bypass.c       ixg | ixv
file    dev/pci/ixgbe/if_fdir.c         ixg | ixv
defflag opt_if_ixg.h    IXGBE_ALWAYS_TXDEFER

# This appears to be the driver for virtual instances of i82599.
device  ixv: ether, ifnet, arp, mii, mii_phy
attach  ixv at pci
file    dev/pci/ixgbe/ixv.c             ixv

# Intel i8254x Gigabit Ethernet
device  wm: ether, ifnet, arp, mii, mii_bitbang
attach  wm at pci
file    dev/pci/if_wm.c                 wm
defflag opt_if_wm.h     WM_EVENT_COUNTERS WM_DISABLE_EVENT_COUNTERS
defparam opt_if_wm.h    WM_RX_PROCESS_LIMIT_DEFAULT
                       WM_RX_INTR_PROCESS_LIMIT_DEFAULT
                       WM_TX_PROCESS_LIMIT_DEFAULT
                       WM_TX_INTR_PROCESS_LIMIT_DEFAULT
                       WM_DISABLE_MSI
                       WM_DISABLE_MSIX

# Mellanox 5th generation Ethernet devices
device  mcx: ether, ifnet, arp, toeplitz
attach  mcx at pci
file    dev/pci/if_mcx.c                mcx

# Broadcom 570x Gigabit Ethernet
device  bge: ether, ifnet, arp, mii, mii_bitbang
attach  bge at pci
file    dev/pci/if_bge.c                bge

# Broadcom NetXtreme II
device  bnx: ether, ifnet, arp, mii
attach  bnx at pci
file    dev/pci/if_bnx.c                bnx

# Realtek 8129/8139 Ethernet controllers
attach  rtk at pci with rtk_pci
file    dev/pci/if_rtk_pci.c            rtk_pci

# DECchip 21x4x Ethernet controller family, and assorted clones.
attach  tlp at pci with tlp_pci
file    dev/pci/if_tlp_pci.c            tlp_pci

# Bit3 PCI-VME mod. 617
device  btvmei: vmebus
attach  btvmei at pci
file    dev/pci/btvmei.c                btvmei
#file   dev/pci/btvmei_dma.c            btvmei
#file   dev/pci/btvmei_cntlrdma.c       btvmei

# Alteon ACEnic Gigabit Ethernet controller
device  ti: ether, ifnet, arp
attach  ti at pci
file    dev/pci/if_ti.c                 ti

# Adaptec AIC-6915 Ethernet interface
attach  sf at pci with sf_pci
file    dev/pci/if_sf_pci.c             sf_pci

# Sundance Tech. ST-201 10/100 Ethernet
device  ste: ether, ifnet, arp, mii, mii_bitbang
attach  ste at pci
file    dev/pci/if_ste.c                ste

# YENTA PCI-Cardbus bridge
#device cbb: cbbus, pcmciabus
device  cbb: pcmciaslot
attach  cbb at pci with cbb_pci
file    dev/pci/pccbb.c                 cbb

# Tundra Universe PCI-VME adapter
define  univ_pci
file    dev/pci/universe_pci.c univ_pci

# Bit3 PCI-VME mod. 2706
device  btvmeii: vmebus, univ_pci
attach  btvmeii at pci
file    dev/pci/btvmeii.c btvmeii

# VIA VT82C686A/VT8231 PM Timer and Hardware Monitor
device  viaenv: acpipmtimer, sysmon_envsys
attach  viaenv at pci
file    dev/pci/viaenv.c                viaenv

# Intel PIIX4 power management controller
device  piixpm: i2cbus, acpipmtimer
attach  piixpm at pci
file    dev/pci/piixpm.c                piixpm

# AMD 768MPX power management controller
defflag opt_amdpm.h                     AMDPM_RND_COUNTERS
device  amdpm: i2cbus, acpipmtimer
attach  amdpm at pci
file    dev/pci/amdpm.c                 amdpm
file    dev/pci/amdpm_smbus.c           amdpm

# AMD Cryptographic Coprocessor
attach  amdccp at pci with amdccp_pci
file    dev/pci/amdccp_pci.c            amdccp_pci

# Hi/fn 7751
device  hifn: opencrypto
attach  hifn at pci
file    dev/pci/hifn7751.c              hifn

# Bluesteelnet 5501/5601, Broadcom 580x/582x security processor
device  ubsec: opencrypto
attach  ubsec at pci
file    dev/pci/ubsec.c                 ubsec

# Aironet PC4500/PC4800
attach  an at pci with an_pci
file    dev/pci/if_an_pci.c             an_pci

# ADMtek ADM8211 PCI/Mini-PCI
attach  atw at pci with atw_pci
file    dev/pci/if_atw_pci.c            atw_pci

# Realtek RTL8180 PCI/Mini-PCI
attach  rtw at pci with rtw_pci
file    dev/pci/if_rtw_pci.c            rtw_pci

# Realtek RTL8188CE Mini-PCIe
device  rtwn: ifnet, arp, wlan, firmload
attach  rtwn at pci
file    dev/pci/if_rtwn.c               rtwn

# Ralink RT2500/RT2600 PCI/Mini-PCI
attach  ral at pci with ral_pci
file    dev/pci/if_ral_pci.c            ral_pci

# Marvel Libertas Open
attach  malo at pci with malo_pci
file    dev/pci/if_malo_pci.c       malo_pci

# Intersil Prism2.5 Mini-PCI
attach  wi at pci with wi_pci
file    dev/pci/if_wi_pci.c             wi_pci

# IrDA devices
#  Toshiba Fast Infrared Type O IrDA driver
device  oboe: irbus, irdasir
attach  oboe at pci
file    dev/pci/oboe.c                  oboe

# Middle Digital, Inc. PCI-Weasel serial console board control
# devices (watchdog timer, etc.)
device  weasel: sysmon_wdog
attach  weasel at pci with weasel_pci
file    dev/pci/weasel_pci.c            weasel

# Game adapter (joystick)
attach  joy at pci with joy_pci
file    dev/pci/joy_pci.c               joy_pci

# ATI Mach64 framebuffer console driver
defflag opt_machfb.h    MACHFB_DEBUG
device  machfb: wsemuldisplaydev, rasops8, fb, vcons, videomode, edid, drm, glyphcache
attach  machfb at pci
file    dev/pci/machfb.c                machfb

# 3Dfx Voodoo3 framebuffer console driver
device  voodoofb: wsemuldisplaydev, rasops8, vcons, videomode, drm, i2cexec, i2c_bitbang, ddc_read_edid, edid
attach  voodoofb at pci
file    dev/pci/voodoofb.c              voodoofb

# VIA UniChrome framebuffer console driver
device  unichromefb: wsemuldisplaydev, rasops16, rasops32, vcons, drm
attach  unichromefb at pci
file    dev/pci/unichromefb.c           unichromefb needs-flag

# ATI Radeon framebuffer console driver
# (Note: to enable the BIOS parser, add options RADEON_BIOS_INIT to the config)
device  radeonfb: wsemuldisplaydev, videomode, rasops8, rasops32, vcons, splash, i2cexec, i2c_bitbang, ddc_read_edid, edid, drm, glyphcache
attach  radeonfb at pci
file    dev/pci/radeonfb.c      radeonfb
file    dev/pci/radeonfb_i2c.c  radeonfb
file    dev/pci/radeonfb_bios.c radeonfb
defflag opt_radeonfb.h  RADEONFB_DEBUG
defflag opt_radeonfb.h  RADEONFB_BIOS_INIT
defflag opt_radeonfb.h  RADEONFB_BIOS_DEBUG
defflag opt_radeonfb.h  RADEONFB_MMAP_BARS
defflag opt_radeonfb.h  RADEONFB_DEPTH_32
defflag opt_radeonfb.h  RADEONFB_ALWAYS_ACCEL_PUTCHAR

# Chelsio Terminator 3 (T3) 10 gigabit ethernet
device  cxgbc { }
attach  cxgbc at pci
device  cxgb: ether, ifnet, arp
attach  cxgb at cxgbc
file    dev/pci/cxgb/cxgb_main.c        cxgbc | cxgb
file    dev/pci/cxgb/cxgb_mc5.c         cxgbc | cxgb
file    dev/pci/cxgb/cxgb_vsc8211.c     cxgbc | cxgb
file    dev/pci/cxgb/cxgb_ael1002.c     cxgbc | cxgb
file    dev/pci/cxgb/cxgb_mv88e1xxx.c   cxgbc | cxgb
file    dev/pci/cxgb/cxgb_vsc7323.c     cxgbc | cxgb
file    dev/pci/cxgb/cxgb_xgmac.c       cxgbc | cxgb
file    dev/pci/cxgb/cxgb_t3_hw.c       cxgbc | cxgb
file    dev/pci/cxgb/cxgb_sge.c         cxgbc | cxgb
file    dev/pci/cxgb/cxgb_lro.c         cxgbc | cxgb
# file  dev/pci/cxgb/cxgb_offload.c     cxgbc | cxgb
file    dev/pci/cxgb/cxgb_l2t.c         cxgbc | cxgb
file    dev/pci/cxgb/cxgb_osdep.c       cxgbc | cxgb

# Chips & Technologies 65550 framebuffer console driver
attach  chipsfb at pci with chipsfb_pci
file    dev/pci/chipsfb.c               chipsfb_pci

# 3Com 3c990
device  txp: ether, ifnet, arp
attach  txp at pci
file    dev/pci/if_txp.c                txp

# SysKonnect
device  skc { }
attach  skc at pci
device  sk: ether, ifnet, arp, mii
attach  sk at skc
file    dev/pci/if_sk.c                 skc | sk

# Broadcom 4401 10/100 Ethernet
device  bce: ether, ifnet, arp, mii
attach  bce at pci
file    dev/pci/if_bce.c                bce

# Intel PRO/10GbE
device  dge: ether, ifnet, arp
attach  dge at pci
file    dev/pci/if_dge.c                dge

# Realtek 8169 Ethernet controllers
attach  re at pci with re_pci
file    dev/pci/if_re_pci.c             re_pci

# Intel PRO/Wireless 2100
device  ipw: ifnet, arp, wlan, firmload
attach  ipw at pci
file    dev/pci/if_ipw.c                ipw

# Intel PRO/Wireless 2200BG/2915ABG
device  iwi: ifnet, arp, wlan, firmload
attach  iwi at pci
file    dev/pci/if_iwi.c                iwi

# Intel PRO/Wireless 3945ABG
device  wpi: ifnet, arp, wlan, firmload
attach  wpi at pci
file    dev/pci/if_wpi.c                wpi

# Intel PRO/Wireless 4965AGN Mini-PCI Adapter
device  iwn: ifnet, arp, wlan, firmload
attach  iwn at pci
file    dev/pci/if_iwn.c                iwn

# Intel Centrino 7260
device  iwm: ifnet, arp, wlan, firmload
attach  iwm at pci
file    dev/pci/if_iwm.c                iwm

# Workbit NinjaSCSI-32 controllers
# device declaration in sys/conf/files
attach  njs at pci with njs_pci
file    dev/pci/njs_pci.c               njs_pci

# S2io Xframe 10 Gigabit ethernet (Xframe driver)
device  xge: ether, ifnet, arp
attach  xge  at pci
file    dev/pci/if_xge.c                xge

# Via Velocity 612x 10/100/1000 Ethernet
device  vge: ether, ifnet, arp, mii
attach  vge at pci
file    dev/pci/if_vge.c                vge

# Atheros 5210/5211/5212 PCI/Mini-PCI
attach  ath at pci with ath_pci
file    dev/pci/if_ath_pci.c            ath_pci

# Atheros AR9k (802.11 a/g/n)
attach  athn at pci with athn_pci
file    dev/pci/if_athn_pci.c           athn_pci

# NVIDIA nForce Ethernet
device  nfe: ether, ifnet, arp, mii, mii_phy
attach  nfe at pci
file    dev/pci/if_nfe.c                nfe

# MICREL Etherent
device  kse: ether, ifnet, arp, mii
attach  kse at pci
file    dev/pci/if_kse.c                kse

# Yukon 2
device  mskc { }
attach  mskc at pci
device  msk: ether, ifnet, arp, mii
attach  msk at mskc
file    dev/pci/if_msk.c                mskc | msk

# SD Host Controller
attach  sdhc at pci with sdhc_pci
file    dev/pci/sdhc_pci.c              sdhc_pci

# generic framebuffer console driver, PCI frontend
attach genfb at pci with genfb_pci : splash
file    dev/pci/genfb_pci.c     genfb_pci

# NVIDIA nForce2/3/4 SMBus controller
device  nfsmbc { }
attach  nfsmbc at pci
device  nfsmb: i2cbus
attach  nfsmb at nfsmbc
file    dev/pci/nfsmb.c                 nfsmbc | nfsmb

# Intel ICH -- I/O or Platform Controller Hub
# (most drivers under sys/arch/x86/pci)
define  tcoichbus {}

# Intel ICH SMBus controller
device  ichsmb: i2cbus, tcoichbus
attach  ichsmb at pci
file    dev/pci/ichsmb.c                ichsmb

# ATI Rage 128 framebuffer console driver
device  r128fb: wsemuldisplaydev, rasops8, rasops32, vcons, glyphcache
attach  r128fb at pci
file    dev/pci/r128fb.c                r128fb
defflag opt_r128fb.h    R128FB_DEBUG
defflag opt_r128fb.h    R128FB_WAIT

# Attansic/Atheros L1 Gigabit-Ethernet
device  age: ether, ifnet, arp, mii, mii_phy
attach  age at pci
file    dev/pci/if_age.c                age

# Attansic/Atheros L1C/L2C Gigabit Ethernet
device  alc: ether, ifnet, arp, mii, mii_phy
attach  alc at pci
file    dev/pci/if_alc.c                alc

# Attanisc/Atheros L1E Gigabit Ethernet
device  ale: ether, ifnet, arp, mii, mii_phy
attach  ale at pci
file    dev/pci/if_ale.c                ale

# Atheros/Attansic L2 Fast-Ethernet
device  lii: ether, ifnet, arp, mii
attach  lii at pci
file    dev/pci/if_lii.c                lii

# Silicon Image SteelVine SATA-II controllers
attach  siisata at pci with siisata_pci
file    dev/pci/siisata_pci.c           siisata_pci

# Acer Labs M7101 power management controller
device  alipm: i2cbus
attach  alipm at pci
file    dev/pci/alipm.c                         alipm

#
# Broadcom AirForce / Apple Airport Extreme
#
attach  bwi at pci with bwi_pci
file    dev/pci/if_bwi_pci.c            bwi_pci

# Broadcom FullMAC USB wireless adapter
attach  bwfm at pci with bwfm_pci: firmload
file    dev/pci/if_bwfm_pci.c           bwfm_pci

# Marvell Serial-ATA Host Controller
attach  mvsata at pci with mvsata_pci
file    dev/pci/mvsata_pci.c            mvsata_pci

include "dev/pci/voyager/files.voyager"
# Silicon Motion SM502 / Voyager GX
device  voyager: i2c_bitbang, voyagerbus, i2cbus
attach  voyager at pci
file    dev/pci/voyager.c               voyager
defflag opt_voyager.h   VOYAGER_DEBUG

# High Definition Audio
attach  hdaudio at pci with hdaudio_pci
file    dev/pci/hdaudio_pci.c           hdaudio_pci

# Permedia 2 / Sun PGX32 / Raptor
device  pm2fb: wsemuldisplaydev, rasops8, rasops32, vcons, videomode, i2cexec, i2c_bitbang, ddc_read_edid, edid, glyphcache
attach  pm2fb at pci
file    dev/pci/pm2fb.c         pm2fb
defflag opt_pm2fb.h     PM2FB_DEBUG

# Permedia 3 / Oxygen VX1 / Proformance 3
device  pm3fb: wsemuldisplaydev, rasops8, vcons, videomode, i2cexec, i2c_bitbang, ddc_read_edid, edid, glyphcache
attach  pm3fb at pci
file    dev/pci/pm3fb.c         pm3fb
defflag opt_pm3fb.h     PM3FB_DEBUG

# 3Dlabs Wildcat / Sun XVR-500, 1200, Expert3D etc.
device          wcfb: wsemuldisplaydev, rasops8, vcons
attach          wcfb at pci
file            dev/pci/wcfb.c  wcfb
defflag         opt_wcfb.h      WCFB_DEBUG

# Domex 536, 5380-compatible SCSI HBA
attach  nca at pci with nca_pci
file    dev/pci/nca_pci.c       nca_pci

# Agere ET1310/1301 Ethernet
device  et: ether, ifnet, arp, mii, mii_phy
attach  et at pci
file    dev/pci/if_et.c                 et

# RDC Semiconductor R6040 10/100 Ethernet
device  vte: ether, ifnet, arp, mii, mii_phy
attach  vte at pci
file    dev/pci/if_vte.c                vte

# Conexant CX23880-series DTV interface
device  cxdtv: dtvbus, i2c_bitbang, i2cbus, i2cexec, tvpll, nxt2k, lg3303
attach  cxdtv at pci
file    dev/pci/cxdtv.c         cxdtv
file    dev/pci/cxdtv_boards.c  cxdtv

# Conexant CX23885-series DTV interface
device  coram: dtvbus, i2cbus, i2cexec, mt2131, cx24227
attach  coram at pci
file    dev/pci/coram.c         coram

# QUANCOM Electronic GmbH PWDOG1
device  pwdog: sysmon_envsys
attach  pwdog at pci
file    dev/pci/pwdog.c         pwdog

# IBM 4810 BSP cash drawer port
device  ibmcd: gpiobus
attach  ibmcd at pci
file    dev/pci/ibmcd.c         ibmcd

# SIS 315 Pro frame buffer
device  sisfb: wsemuldisplaydev, rasops8, rasops15, rasops16, rasops32, vcons
attach  sisfb at pci
file    dev/pci/sisfb.c         sisfb   needs-flag

attach  virtio at pci with virtio_pci
file    dev/pci/virtio_pci.c    virtio_pci

# Silicon Motion SM712(LynxEM+) frame buffer
device  lynxfb: wsemuldisplaydev, rasops16
attach  lynxfb at pci
file    dev/pci/lynxfb.c        lynxfb needs-flag

include "dev/pci/igma/files.igma"
# Intel GMA
device  igma: igmabus, i2cbus, i2c_bitbang, ddc_read_edid, edid
attach  igma at pci
file    dev/pci/igma.c          igma

# 3Dfx Voodoo Graphics
defflag opt_tdvfb.h             TDVFB_CONSOLE
device  tdvfb: wsemuldisplaydev, rasops16, rasops32, vcons, videomode
attach  tdvfb at pci
file    dev/pci/tdvfb.c         tdvfb

# nvidia geforce framebuffer console driver
device  gffb: wsemuldisplaydev, rasops8, vcons, glyphcache
attach  gffb at pci
file    dev/pci/gffb.c          gffb
defflag opt_gffb.h      GFFB_DEBUG

# Realtek RTS5209/RTS5229 Card Reader driver
attach  rtsx at pci with rtsx_pci
file    dev/pci/rtsx_pci.c      rtsx_pci

# NVM Express Controller
attach  nvme at pci with nvme_pci
file    dev/pci/nvme_pci.c      nvme_pci

# PCI graphics devices with DRM/KMS
include "external/bsd/drm2/pci/files.drmkms_pci"

# Intel S1200,C2000 (non-pch) SMBus controller
device  ismt: i2cbus
attach  ismt at pci
file    dev/pci/ismt.c          ismt

# Amazon Elastic Network Adapter (ENA) family
device  ena: ether, ifnet, arp
attach  ena at pci
file    dev/pci/if_ena.c                        ena
file    external/bsd/ena-com/ena_com.c          ena
file    external/bsd/ena-com/ena_eth_com.c      ena

# PCI based DesignWare Ethernet QoS
attach  eqos at pci with eqos_pci
file    dev/pci/if_eqos_pci.c eqos_pci

# Intel QuickAssist
device qat: opencrypto, firmload
attach qat at pci
file    dev/pci/qat/qat.c               qat
file    dev/pci/qat/qat_ae.c            qat
file    dev/pci/qat/qat_hw15.c          qat
file    dev/pci/qat/qat_hw17.c          qat
file    dev/pci/qat/qat_c2xxx.c         qat
file    dev/pci/qat/qat_c3xxx.c         qat
file    dev/pci/qat/qat_c62x.c          qat
file    dev/pci/qat/qat_d15xx.c         qat

# Intel Ethernet 700 Series
device  ixl: ether, ifnet, arp
attach  ixl at pci
file    dev/pci/if_ixl.c        ixl
defflag opt_if_ixl.h    IXL_DEBUG IXL_ALWAYS_TXDEFER
defparam opt_if_ixl.h   IXL_STATS_INTERVAL_MSEC
                       IXL_QUEUE_NUM

# Intel Ethernet Adaptive Virtual Function
device  iavf: ether, ifnet, arp
attach  iavf at pci
file    dev/pci/if_iavf.c       iavf

# Intel XMM 7360 LTE modem
device  wwanc {} : tty
attach  wwanc at pci
device  wwan: ifnet
attach  wwan at wwanc
file    dev/pci/xmm7360.c               wwanc | wwan            needs-flag

# VMware VMXNET3 virtual interface
device  vmx: ether, ifnet, arp
attach  vmx at pci
file    dev/pci/if_vmx.c        vmx
defflag opt_if_vmx.h    VMXNET3_ALWAYS_TXDEFER

# Realtek RTL8125 2.5GBASE-T Ethernet
device  rge: ether, ifnet, arp, mii
attach  rge at pci
file    dev/pci/if_rge.c                rge