Import PCI support from OpenBSD and update GENERIC config for PCI devices.

This commit is contained in:
jkunz 2004-07-29 19:10:23 +00:00
parent 6ea3501621
commit 4c72b79518
6 changed files with 2180 additions and 233 deletions

View File

@ -1,4 +1,4 @@
# $NetBSD: GENERIC,v 1.28 2004/07/25 21:52:56 jkunz Exp $ # $NetBSD: GENERIC,v 1.29 2004/07/29 19:10:23 jkunz Exp $
# #
# GENERIC machine description file # GENERIC machine description file
# #
@ -23,7 +23,7 @@ include "arch/hp700/conf/std.hp700"
options INCLUDE_CONFIG_FILE # embed config file in kernel binary options INCLUDE_CONFIG_FILE # embed config file in kernel binary
options SYSCTL_INCLUDE_DESCR # Include sysctl descriptions in kernel options SYSCTL_INCLUDE_DESCR # Include sysctl descriptions in kernel
#ident "GENERIC-$Revision: 1.28 $" #ident "GENERIC-$Revision: 1.29 $"
maxusers 32 # estimated number of users maxusers 32 # estimated number of users
@ -81,7 +81,6 @@ options DDB_HISTORY_SIZE=512 # enable history editing in DDB
#makeoptions DEBUG="-g" # compile full symbol table #makeoptions DEBUG="-g" # compile full symbol table
# Compatibility options # Compatibility options
options COMPAT_15 # compatability with NetBSD 1.5,
options COMPAT_43 # and 4.3BSD options COMPAT_43 # and 4.3BSD
#options TCP_COMPAT_42 # 4.2BSD TCP/IP bug compat. Not recommended. #options TCP_COMPAT_42 # 4.2BSD TCP/IP bug compat. Not recommended.
@ -124,12 +123,12 @@ options INET6 # IPV6
#options IPSEC_ESP # IP security (encryption part; define w/IPSEC) #options IPSEC_ESP # IP security (encryption part; define w/IPSEC)
#options IPSEC_DEBUG # debug for IP security #options IPSEC_DEBUG # debug for IP security
#options MROUTING # IP multicast routing #options MROUTING # IP multicast routing
options NS # XNS #options NS # XNS
#options NSIP # XNS tunneling over IP #options NSIP # XNS tunneling over IP
options ISO,TPIP # OSI #options ISO,TPIP # OSI
#options EON # OSI tunneling over IP #options EON # OSI tunneling over IP
options CCITT,LLC,HDLC # X.25 #options CCITT,LLC,HDLC # X.25
options NETATALK # AppleTalk networking protocols #options NETATALK # AppleTalk networking protocols
options PPP_BSDCOMP # BSD-Compress compression support for PPP options PPP_BSDCOMP # BSD-Compress compression support for PPP
options PPP_DEFLATE # Deflate compression support for PPP options PPP_DEFLATE # Deflate compression support for PPP
options PPP_FILTER # Active filter support for PPP (requires bpf) options PPP_FILTER # Active filter support for PPP (requires bpf)
@ -209,34 +208,39 @@ mem* at mainbus0 # /dev/*mem and memory controller
# Basic Bus Support # Basic Bus Support
lasi* at mainbus0 # LASI host adapter (LSI PN??? ) lasi* at mainbus0 # LASI host adapter (LSI PN??? )
asp0 at mainbus0 # this one comes w/ Viper and leds asp* at mainbus0 # this one comes w/ Viper and leds
wax* at mainbus0 # Wax may host EISA as well wax* at mainbus0 # Wax GSC to GSC Bus Adapter
mongoose* at mainbus0 irq 17 # EISA Bus Adapter (i82350 or TI??? ) mongoose* at mainbus0 irq 17 # EISA Bus Adapter (i82350 or TI??? )
#vmeb* at mainbus0 irq ? # VME bus adapter #vmeb* at mainbus0 irq ? # VME bus adapter
#dino* at mainbus0 irq ? # PCI bus bridge
pdc0 at mainbus0 # PDC/IODC wrapper for boot console pdc0 at mainbus0 # PDC/IODC wrapper for boot console
phantomas0 at mainbus0 # Phantom PseudoBC GSC+ Port phantomas* at mainbus0 # Phantom PseudoBC GSC+ Port
lasi* at phantomas0 # LASI on [ABCJ?]* lasi* at phantomas? # LASI on [ABCJ?]*
wax* at phantomas? # Wax may host EISA as well dino* at phantomas? # PCI bus bridge
wax* at phantomas? # Wax GSC to GSC Bus Adapter
# GSC bus support # GSC bus support
gsc* at lasi? # 712 gsc* at lasi? # 712
gsc* at asp? # 7xx (old) gsc* at asp? # 7xx (old)
gsc* at wax? # {725,715}/{64,80,100}, C*, B*, J* gsc* at wax? # {725,715}/{64,80,100}, C*, B*, J*
# Wax GSC to EISA Bus Adapter
#weisa* at mainbus0 # 7xx
#weisa* at gsc? # C*, B*
# PCI bus support # PCI bus support
#pci* at dino? pci* at dino?
com* at dino?
ppb* at pci? dev ? function ?
pci* at ppb?
# EISA bus support # EISA bus support
eisa* at mongoose? eisa* at mongoose?
#eisa* at wax? #eisa* at weisa?
#eisa0 at pceb?
# ISA bus support # ISA bus support
# Beware: Most ISA MI drivers are not endianes clean!
#isa* at mongoose? #isa* at mongoose?
#isa* at wax? #isa* at weisa?
#isa0 at pceb?
#isa0 at pcib?
# VME bus support # VME bus support
#vme* at vmeb? #vme* at vmeb?
@ -252,9 +256,7 @@ eisa* at mongoose?
#pckbc* at gsc? # pc keyboard controller #pckbc* at gsc? # pc keyboard controller
#pckbd* at pckbc? # PC keyboard #pckbd* at pckbc? # PC keyboard
#pms* at pckbc? # PS/2 mouse for wsmouse #pms* at pckbc? # PS/2 mouse for wsmouse
#vga0 at isa?
#vga* at pci? dev ? function ? #vga* at pci? dev ? function ?
#pcdisplay0 at isa? # CGA, MDA, EGA, HGA
#wsdisplay* at sti? #wsdisplay* at sti?
#wsdisplay* at vga? console ? #wsdisplay* at vga? console ?
#wsdisplay* at pcdisplay? console ? #wsdisplay* at pcdisplay? console ?
@ -268,37 +270,19 @@ eisa* at mongoose?
# GSC serial interfaces # GSC serial interfaces
com* at gsc? # RS/232 serial port com* at gsc? # RS/232 serial port
# ISA serial interfaces # PCI serial interfaces
#options COM_HAYESP # adds Hayes ESP serial board support puc* at pci? dev ? function ? # PCI "universal" comm. cards
#com0 at isa? port 0x3f8 irq 4 # Standard PC serial ports com* at puc? port ? # 16x50s on "universal" comm boards
#com1 at isa? port 0x2f8 irq 3 cy* at pci? dev ? function ? # Cyclades Cyclom-Y serial boards
#com2 at isa? port 0x3e8 irq 5 cz* at pci? dev ? function ? # Cyclades-Z multi-port serial boards
#com3 at isa? port 0x2e8 irq 9
#ast0 at isa? port 0x1a0 irq 5 # AST 4-port serial cards
#com* at ast? slave ?
#boca0 at isa? port 0x100 irq 5 # BOCA 8-port serial cards
#boca0 at isa? port 0x100 irq 5 # BOCA 16-port serial cards (BB2016)
#boca1 at isa? port 0x140 irq 5 # this line is also needed for BB2016
#com* at boca? slave ?
#tcom0 at isa? port 0x100 irq 7 # TC-800 8-port serial cards
#com* at tcom? slave ?
#rtfps0 at isa? port 0x1230 irq 10 # RT 4-port serial cards
#com* at rtfps? slave ?
#cy0 at isa? iomem 0xd4000 irq 12 # Cyclades serial cards
#addcom0 at isa? port 0x108 irq 5 # Addonics FlexPort 8S
#com* at addcom? slave ?
#moxa0 at isa? port 0x100 irq 5 # MOXA C168H serial card (experimental)
#com* at moxa? slave ?
# Parallel Printer Interfaces # Parallel Printer Interfaces
# GSC parallel printer interface # GSC parallel printer interface
lpt* at gsc? lpt* at gsc?
# ISA parallel printer interfaces # PCI parallel printer interfaces
#lpt0 at isa? port 0x378 irq 7 # standard PC parallel ports lpt* at puc? port ? # || ports on "universal" comm boards
#lpt1 at isa? port 0x278
#lpt2 at isa? port 0x3bc
# SCSI Controllers and Devices # SCSI Controllers and Devices
@ -306,31 +290,32 @@ lpt* at gsc?
oosiop* at gsc? # NCR 53c700 oosiop* at gsc? # NCR 53c700
osiop* at gsc? flags 0x00000 # NCR 53c710 osiop* at gsc? flags 0x00000 # NCR 53c710
#siop* at gsc? # NCR 53c720 (Fast/Wide) #siop* at gsc? # NCR 53c720 (Fast/Wide)
#siop* at mainbus0 # NCR 53c720 (Fast/Wide)
# PCI SCSI controllers
adv* at pci? dev ? function ? # AdvanSys 1200[A,B], 9xx[U,UA] SCSI
adw* at pci? dev ? function ? # AdvanSys 9x0UW[D], 3940U[2,3]W SCSI
ahc* at pci? dev ? function ? # Adaptec [23]94x, aic78x0 SCSI
ahd* at pci? dev ? function ? # Adaptec 29320, 39320 (aic790x) SCSI
bha* at pci? dev ? function ? # BusLogic 9xx SCSI
dpt* at pci? dev ? function ? # DPT SmartCache/SmartRAID
iha* at pci? dev ? function ? # Initio INIC-940/950 SCSI
isp* at pci? dev ? function ? # Qlogic ISP [12]0x0 SCSI/FibreChannel
mly* at pci? dev ? function ? # Mylex AcceleRAID and eXtremeRAID
mpt* at pci? dev ? function ? # LSI Fusion SCSI/FC
pcscp* at pci? dev ? function ? # AMD 53c974 PCscsi-PCI SCSI
siop* at pci? dev ? function ? # Symbios 53c8xx SCSI
esiop* at pci? dev ? function ? # Symbios 53c875 SCSI and newer
#options SIOP_SYMLED # drive the act. LED in software
trm* at pci? dev ? function ? # Tekram DC-395U/UW/F, DC-315/U SCSI
# EISA SCSI controllers # EISA SCSI controllers
ahb* at eisa? slot ? # Adaptec 174[02] SCSI ahb* at eisa? slot ? # Adaptec 174[02] SCSI
#ahc* at eisa? slot ? # Adaptec 274x, aic7770 SCSI ahc* at eisa? slot ? # Adaptec 274x, aic7770 SCSI
bha* at eisa? slot ? # BusLogic 7xx SCSI bha* at eisa? slot ? # BusLogic 7xx SCSI
dpt* at eisa? slot ? # DPT EATA SCSI dpt* at eisa? slot ? # DPT EATA SCSI
uha* at eisa? slot ? # UltraStor 24f SCSI uha* at eisa? slot ? # UltraStor 24f SCSI
# ISA SCSI controllers
#adv0 at isa? port ? irq ? drq ? # AdvanSys APB-514[02] SCSI
#aha0 at isa? port 0x330 irq ? drq ? # Adaptec 154[02] SCSI
#aha1 at isa? port 0x334 irq ? drq ?
#aic0 at isa? port 0x340 irq 11 # Adaptec 152[02] SCSI
#bha0 at isa? port 0x330 irq ? drq ? # BusLogic [457]4X SCSI
#bha1 at isa? port 0x334 irq ? drq ?
# The "nca" and "dpt" probes might give false hits or hang your machine.
#dpt0 at isa? port 0x170 irq ? drq ? # DPT SmartCache/SmartRAID
#nca0 at isa? port 0x360 irq 15 # Port-mapped NCR 53C80 controller
#nca1 at isa? iomem 0xd8000 irq 5 # Memory-mapped controller (T128, etc.)
#sea0 at isa? iomem 0xc8000 irq 5 # Seagate/Future Domain SCSI
#uha0 at isa? port 0x330 irq ? drq ? # UltraStor [13]4f SCSI
#uha1 at isa? port 0x340 irq ? drq ?
#wds0 at isa? port 0x350 irq 15 drq 6 # WD7000 and TMC-7000 controllers
#wds1 at isa? port 0x358 irq 11 drq 5
# SCSI bus support # SCSI bus support
scsibus* at scsi? scsibus* at scsi?
@ -345,20 +330,50 @@ uk* at scsibus? target ? lun ? # SCSI unknown
# RAID controllers and devices # RAID controllers and devices
# aac is broken
#aac* at pci? dev ? function ? # Adaptec AAC family
amr* at pci? dev ? function ? # AMI/LSI Logic MegaRAID
cac* at eisa? slot ? # Compaq EISA array controllers cac* at eisa? slot ? # Compaq EISA array controllers
cac* at pci? dev ? function ? # Compaq PCI array controllers
icp* at pci? dev ? function ? # ICP-Vortex GDT & Intel RAID
mlx* at pci? dev ? function ? # Mylex DAC960 & DEC SWXCR family
mlx* at eisa? slot ? # Mylex DAC960 & DEC SWXCR family mlx* at eisa? slot ? # Mylex DAC960 & DEC SWXCR family
twe* at pci? dev ? function ? # 3ware Escalade RAID controllers
#ld* at aac? unit ? # logical disk devices
ld* at amr? unit ?
ld* at cac? unit ? ld* at cac? unit ?
ld* at icp? unit ?
ld* at mlx? unit ? ld* at mlx? unit ?
ld* at twe? unit ?
icpsp* at icp? unit ? # SCSI pass-through
# IDE and related devices # IDE and related devices
# PCI IDE controllers - see pciide(4) for supported hardware.
# The 0x0001 flag force the driver to use DMA, even if the driver doesn't know
# how to set up DMA modes for this chip. This may work, or may cause
# a machine hang with some controllers.
pciide* at pci? dev ? function ? flags 0x0000 # GENERIC pciide driver
acardide* at pci? dev ? function ? # Acard IDE controllers
aceride* at pci? dev ? function ? # Acer Lab IDE controllers
artsata* at pci? dev ? function ? # Intel i31244 SATA controller
cmdide* at pci? dev ? function ? # CMD tech IDE controllers
cypide* at pci? dev ? function ? # Cypress IDE controllers
geodeide* at pci? dev ? function ? # AMD Geode IDE controllers
hptide* at pci? dev ? function ? # Triones/HighPoint IDE controllers
optiide* at pci? dev ? function ? # Opti IDE controllers
piixide* at pci? dev ? function ? # Intel IDE controllers
pdcide* at pci? dev ? function ? # Promise IDE controllers
rccide* at pci? dev ? function ? # ServerWorks IDE controllers
satalink* at pci? dev ? function ? # SiI SATALink controllers
siside* at pci? dev ? function ? # SiS IDE controllers
slide* at pci? dev ? function ? # Symphony Labs IDE controllers
stpcide* at pci? dev ? function ? # STMicro STPC IDE controllers
viaide* at pci? dev ? function ? # VIA/AMD/Nvidia IDE controllers
# ISA ST506, ESDI, and IDE controllers # ATA (IDE) bus support
# Use flags 0x01 if you want to try to use 32bits data I/O (the driver will atabus* at ata?
# fall back to 16bits I/O if 32bits I/O are not functional).
# Some controllers pass the initial 32bit test, but will fail later.
#wdc0 at isa? port 0x1f0 irq 14 flags 0x00
#wdc1 at isa? port 0x170 irq 15 flags 0x00
# IDE drives # IDE drives
# Flags are used only with controllers that support DMA operations # Flags are used only with controllers that support DMA operations
@ -371,41 +386,27 @@ ld* at mlx? unit ?
# 0x0fac means 'use PIO mode 4, DMA mode 2, disable UltraDMA'. # 0x0fac means 'use PIO mode 4, DMA mode 2, disable UltraDMA'.
# (0xc=1100, 0xa=1010, 0xf=1111) # (0xc=1100, 0xa=1010, 0xf=1111)
# 0x0000 means "use whatever the drive claims to support". # 0x0000 means "use whatever the drive claims to support".
#wd* at wdc? channel ? drive ? flags 0x0000 wd* at atabus? drive ? flags 0x0000
# ATA RAID configuration support, as found on some Promise controllers.
pseudo-device ataraid
ld* at ataraid? vendtype ? unit ?
# ATAPI bus support # ATAPI bus support
#atapibus* at wdc? channel ? atapibus* at atapi?
# ATAPI devices # ATAPI devices
# flags have the same meaning as for IDE drives. # flags have the same meaning as for IDE drives.
#cd* at atapibus? drive ? flags 0x0000 # ATAPI CD-ROM drives cd* at atapibus? drive ? flags 0x0000 # ATAPI CD-ROM drives
#sd* at atapibus? drive ? flags 0x0000 # ATAPI disk drives sd* at atapibus? drive ? flags 0x0000 # ATAPI disk drives
#st* at atapibus? drive ? flags 0x0000 # ATAPI tape drives st* at atapibus? drive ? flags 0x0000 # ATAPI tape drives
#uk* at atapibus? drive ? flags 0x0000 # ATAPI unknown uk* at atapibus? drive ? flags 0x0000 # ATAPI unknown
# Miscellaneous mass storage devices # Miscellaneous mass storage devices
# GSC floppy # GSC floppy
#fdc* at gsc? # PC floppy controller (WD37C65C) #fdc* at gsc? # PC floppy controller (WD37C65C)
#options FD_DEBUG
# ISA floppy
#fdc0 at isa? port 0x3f0 irq 6 drq 2 # standard PC floppy controllers
#fdc1 at isa? port 0x370 irq ? drq ?
#fd* at fdc? drive ? # the drives themselves #fd* at fdc? drive ? # the drives themselves
# some machines need you to do this instead of fd*
#fd0 at fdc0 drive 0
# ISA CD-ROM devices
#mcd0 at isa? port 0x300 irq 10 # Mitsumi CD-ROM drives
# ISA tape devices
# note: the wt driver conflicts unpleasantly with SMC boards at the
# same I/O address. The probe reprograms their EEPROMs. Don't
# uncomment it unless you are actually using it.
#wt0 at isa? port 0x308 irq 5 drq 1 # Archive and Wangtek QIC tape drives
# Network Interfaces # Network Interfaces
@ -414,6 +415,42 @@ ld* at mlx? unit ?
#ie* at gsc? # old 82C5[89]6 Ethernet, use iee(4) #ie* at gsc? # old 82C5[89]6 Ethernet, use iee(4)
iee* at gsc? # 82C596 Ethernet iee* at gsc? # 82C596 Ethernet
# PCI network interfaces
an* at pci? dev ? function ? # Aironet PC4500/PC4800 (802.11)
atw* at pci? dev ? function ? # ADMtek ADM8211 (802.11)
bce* at pci? dev ? function ? # Broadcom 4401 10/100 Ethernet
bge* at pci? dev ? function ? # Broadcom 570x gigabit Ethernet
# en is broken, uses vtophys
#en* at pci? dev ? function ? # ENI/Adaptec ATM
ep* at pci? dev ? function ? # 3Com 3c59x
epic* at pci? dev ? function ? # SMC EPIC/100 Ethernet
esh* at pci? dev ? function ? # Essential HIPPI card
ex* at pci? dev ? function ? # 3Com 90x[BC]
# fpa is broken, does funky things with bus_dma
#fpa* at pci? dev ? function ? # DEC DEFPA FDDI
fxp* at pci? dev ? function ? # Intel EtherExpress PRO 10+/100B
gsip* at pci? dev ? function ? # NS83820 Gigabit Ethernet
le* at pci? dev ? function ? # PCnet-PCI Ethernet
lmc* at pci? dev ? function ? # Lan Media Corp SSI/HSSI/DS3
mtd* at pci? dev ? function ? # Myson MTD803 3-in-1 Ethernet
ne* at pci? dev ? function ? # NE2000-compatible Ethernet
ntwoc* at pci? dev ? function ? # Riscom/N2 PCI Sync Serial
pcn* at pci? dev ? function ? # AMD PCnet-PCI Ethernet
re* at pci? dev ? function ? # Realtek 8139C+/8169/8169S/8110S
rtk* at pci? dev ? function ? # Realtek 8129/8139
sf* at pci? dev ? function ? # Adaptec AIC-6915 Ethernet
sip* at pci? dev ? function ? # SiS 900/DP83815 Ethernet
skc* at pci? dev ? function ? # SysKonnect SK9821 Gigabit Ethernet
sk* at skc? # SysKonnect SK9821 Gigabit Ethernet
ste* at pci? dev ? function ? # Sundance ST-201 Ethernet
stge* at pci? dev ? function ? # Sundance/Tamarack TC9021 Gigabit
ti* at pci? dev ? function ? # Alteon ACEnic gigabit Ethernet
tl* at pci? dev ? function ? # ThunderLAN-based Ethernet
tlp* at pci? dev ? function ? # DECchip 21x4x and clones
vr* at pci? dev ? function ? # VIA Rhine Fast Ethernet
wi* at pci? dev ? function ? # Intersil Prism Mini-PCI (802.11b)
wm* at pci? dev ? function ? # Intel 8254x gigabit
# EISA network interfaces # EISA network interfaces
ep* at eisa? slot ? # 3Com 3c579 Ethernet ep* at eisa? slot ? # 3Com 3c579 Ethernet
#fea* at eisa? slot ? # DEC DEFEA FDDI #fea* at eisa? slot ? # DEC DEFEA FDDI
@ -421,41 +458,31 @@ tlp* at eisa? slot ? # DEC DE-425 Ethernet
#sh* at eisa? slot ? # Interphase Seahawk 4811 FDDI #sh* at eisa? slot ? # Interphase Seahawk 4811 FDDI
#ie* at eisa? slot ? # Intel Ethernet #ie* at eisa? slot ? # Intel Ethernet
# ISA network interfaces
#ate0 at isa? port 0x2a0 irq ? # AT1700
#cs0 at isa? port 0x300 iomem ? irq ? drq ? # CS8900 Ethernet
#ec0 at isa? port 0x250 iomem 0xd8000 irq 9 # 3Com 3c503 Ethernet
#eg0 at isa? port 0x280 irq 9 # 3C505 ethernet cards
#el0 at isa? port 0x300 irq 9 # 3C501 ethernet cards
#ep* at isa? port ? irq ? # 3C509 ethernet cards
#ef0 at isa? port 0x360 iomem 0xd0000 irq 7 # 3C507
#ai0 at isa? port 0x360 iomem 0xd0000 irq 7 # StarLAN
#fmv0 at isa? port 0x2a0 irq ? # FMV-180 series
#ie* at isa? port 0x360 iomem 0xd0000 irq 7 # Intel Ethernet
#ie* at isa? port 0x300 irq 10 # Intel Ethernet
#ix0 at isa? port 0x300 irq 10 # EtherExpress/16
#iy0 at isa? port 0x360 irq ? # EtherExpress PRO 10 ISA
#lc0 at isa? port 0x320 iomem ? irq ? # DEC EtherWORKS III (LEMAC)
#depca0 at isa? port 0x300 iomem 0xc8000 iosiz 0x8000 irq 5 # DEPCA
#le* at depca?
#nele0 at isa? port 0x320 irq 9 drq 7 # NE2100
#le* at nele?
#ntwoc0 at isa? port 0x300 irq 5 iomem 0xc8000 flags 1 # Riscom/N2 sync serial
#bicc0 at isa? port 0x320 irq 10 drq 7 # BICC IsoLan
#le* at bicc?
#ne0 at isa? port 0x280 irq 9 # NE[12]000 ethernet cards
#ne1 at isa? port 0x300 irq 10
#sm0 at isa? port 0x300 irq 10 # SMC91C9x Ethernet
#tr0 at isa? port 0xa20 iomem 0xd8000 irq ? # IBM TROPIC based Token-Ring
#tr1 at isa? port 0xa24 iomem 0xd0000 irq ? # IBM TROPIC based Token-Ring
#tr* at isa? port ? irq ? # 3COM TROPIC based Token-Ring
#we0 at isa? port 0x280 iomem 0xd0000 irq 9 # WD/SMC Ethernet
#we1 at isa? port 0x300 iomem 0xcc000 irq 10
# MII/PHY support # MII/PHY support
acphy* at mii? phy ? # Altima AC101 and AMD Am79c874 PHYs
amhphy* at mii? phy ? # AMD 79c901 Ethernet PHYs
bmtphy* at mii? phy ? # Broadcom BCM5201 and BCM5202 PHYs
brgphy* at mii? phy ? # Broadcom BCM5400-family PHYs
dmphy* at mii? phy ? # Davicom DM9101 PHYs
exphy* at mii? phy ? # 3Com internal PHYs exphy* at mii? phy ? # 3Com internal PHYs
gentbi* at mii? phy ? # Generic Ten-Bit 1000BASE-[CLS]X PHYs
glxtphy* at mii? phy ? # Level One LXT-1000 PHYs
gphyter* at mii? phy ? # NS83861 Gig-E PHY
icsphy* at mii? phy ? # Integrated Circuit Systems ICS189x
igphy* at mii? phy ? # Intel IGP01E1000
inphy* at mii? phy ? # Intel 82555 PHYs
iophy* at mii? phy ? # Intel 82553 PHYs
lxtphy* at mii? phy ? # Level One LXT-970 PHYs
makphy* at mii? phy ? # Marvell Semiconductor 88E1000 PHYs
nsphy* at mii? phy ? # NS83840 PHYs
nsphyter* at mii? phy ? # NS83843 PHYs
pnaphy* at mii? phy ? # generic HomePNA PHYs
qsphy* at mii? phy ? # Quality Semiconductor QS6612 PHYs
sqphy* at mii? phy ? # Seeq 80220/80221/80223 PHYs
tlphy* at mii? phy ? # ThunderLAN PHYs
tqphy* at mii? phy ? # TDK Semiconductor PHYs
ukphy* at mii? phy ? # generic unknown PHYs ukphy* at mii? phy ? # generic unknown PHYs
urlphy* at mii? phy ? # Realtek RTL8150L internal PHYs
# Audio Devices # Audio Devices
@ -463,74 +490,7 @@ ukphy* at mii? phy ? # generic unknown PHYs
#aone* at gsc? # Audio Type 1 (PSB 2160-N) #aone* at gsc? # Audio Type 1 (PSB 2160-N)
#harmony* at gsc? # Audio Type 2 (CS4215) #harmony* at gsc? # Audio Type 2 (CS4215)
#com* at harmony? # Telephone add-in card #com* at harmony? # Telephone add-in card
#audio* at audiobus?
# ISA audio devices
# the "aria" probe might give false hits
#aria0 at isa? port 0x290 irq 10 # Aria
#ess0 at isa? port 0x220 irq 5 drq 1 drq2 5 # ESS 18XX
#gus0 at isa? port 0x220 irq 7 drq 1 drq2 6 # Gravis Ultra Sound
#pas0 at isa? port 0x220 irq 7 drq 1 # ProAudio Spectrum
#pss0 at isa? port 0x220 irq 7 drq 6 # Personal Sound System
#sp0 at pss0 port 0x530 irq 10 drq 0 # sound port driver
#sb0 at isa? port 0x220 irq 5 drq 1 drq2 5 # SoundBlaster
#wss0 at isa? port 0x530 irq 10 drq 0 drq2 1 # Windows Sound System
#cms0 at isa? port 0x220 # Creative Music System
# OPL[23] FM synthesizers
#opl0 at isa? port 0x388 # use only if not attached to sound card
#opl* at ess?
#opl* at sb?
#opl* at wss?
# Audio support
#audio* at aone?
#audio* at aria?
#audio* at ess?
#audio* at gus?
#audio* at harmony?
#audio* at pas?
#audio* at sb?
#audio* at sp?
#audio* at wss?
# MPU 401 UARTs
#mpu* at isa? port 0x330 irq 9 # MPU401 or compatible card
#mpu* at sb?
# MIDI support
#midi* at opl? # OPL FM synth
#midi* at pcppi? # MIDI interface to the PC speaker
#midi* at sb? # SB1 MIDI port
# FM-Radio devices
# ISA radio devices
#az0 at isa? port 0x350 # Aztech/PackardBell FM Radio Card
#az1 at isa? port 0x358
#rt0 at isa? port 0x20c # AIMS Lab Radiotrack & compatible
#rt1 at isa? port 0x284
#rt2 at isa? port 0x30c
#rt3 at isa? port 0x384
#rtii0 at isa? port 0x20c # AIMS Lab Radiotrack II FM Radio Card
#rtii1 at isa? port 0x30c
#sf2r0 at isa? port 0x384 # SoundForte RadioLink SF16-FMR2 FM Radio Card
# Radio support
#radio* at az?
#radio* at rt?
#radio* at rtii?
#radio* at sf2r?
# Joysticks
# ISA joysticks. Probe is a little strange; add only if you have one.
#joy0 at isa? port 0x201
# Miscellaneous Devices
# Planetconnect Satellite receiver driver.
#satlink0 at isa? port 0x300 drq 1
# Pseudo-Devices # Pseudo-Devices

View File

@ -1,4 +1,4 @@
# $NetBSD: files.hp700,v 1.10 2004/07/25 21:52:56 jkunz Exp $ # $NetBSD: files.hp700,v 1.11 2004/07/29 19:10:23 jkunz Exp $
# #
# $OpenBSD: files.hp700,v 1.31 2001/06/26 02:41:25 mickey Exp $ # $OpenBSD: files.hp700,v 1.31 2001/06/26 02:41:25 mickey Exp $
# #
@ -18,21 +18,35 @@ defflag USELEDS
include "dev/wscons/files.wscons" include "dev/wscons/files.wscons"
include "dev/wsfont/files.wsfont" include "dev/wsfont/files.wsfont"
include "dev/pckbport/files.pckbport"
# #
# Machine-independent SCSI drivers # Machine-independent SCSI drivers
# #
include "dev/scsipi/files.scsipi" include "dev/scsipi/files.scsipi"
# I2O #
# Machine-independent ATA drivers
#
include "dev/ata/files.ata"
#
# Machine-independent I2O drivers
#
include "dev/i2o/files.i2o" include "dev/i2o/files.i2o"
# #
# MI ATAPI drivers # Machine-independent USB drivers
# #
#include "dev/atapiscsi/files.atapiscsi" include "dev/usb/files.usb"
#include "dev/ata/files.ata"
include "dev/pckbport/files.pckbport" #
# Machine-independent IEEE1394 drivers
#
include "dev/ieee1394/files.ieee1394"
#
# PCI Bus support
#
include "dev/pci/files.pci"
# #
# ISA Bus support # ISA Bus support
@ -44,10 +58,6 @@ include "dev/isa/files.isa"
# #
include "dev/eisa/files.eisa" include "dev/eisa/files.eisa"
#
# PCI Bus support
#
include "dev/pci/files.pci"
# #
# Gonzo System Connect Bus # Gonzo System Connect Bus
@ -106,10 +116,15 @@ device mongoose: isabus, eisabus
attach mongoose at mainbus attach mongoose at mainbus
file arch/hp700/dev/mongoose.c mongoose file arch/hp700/dev/mongoose.c mongoose
device dino: pcibus # Dino, GSC to PCI bridge. Includes ps/2, serial, and flying toaster interfaces
attach dino at mainbus # Cujo is a 64-bit data path Dino
device dino { }: pcibus
attach dino at phantomas
file arch/hp700/dev/dino.c dino file arch/hp700/dev/dino.c dino
attach com at dino with com_dino
file arch/hp700/dev/com_dino.c com_dino
device sti: wsemuldisplaydev device sti: wsemuldisplaydev
attach sti at mainbus with sti_sgc attach sti at mainbus with sti_sgc
file arch/hp700/dev/sti_sgc.c sti_sgc file arch/hp700/dev/sti_sgc.c sti_sgc
@ -200,12 +215,6 @@ file arch/hp700/gsc/com_harmony.c com_harmony
#attach myri at pci #attach myri at pci
#file dev/pci/myri.c myri #file dev/pci/myri.c myri
#
# PC Keyboard controller (ps2)
#
#include "dev/pckbc/files.pckbc"
# #
# Non-device files # Non-device files
# #

View File

@ -0,0 +1,126 @@
/* $OpenBSD: com_dino.c,v 1.1 2004/02/13 20:39:31 mickey Exp $ */
/*
* Copyright (c) 2004 Michael Shalayeff
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF MIND,
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/device.h>
#include <sys/tty.h>
#include <machine/bus.h>
#include <machine/intr.h>
#include <machine/iomod.h>
#include <machine/autoconf.h>
#include <dev/ic/comreg.h>
#include <dev/ic/comvar.h>
#include <hp700/dev/cpudevs.h>
void *dino_intr_establish(void *sc, int irq, int pri,
int (*handler)(void *v), void *arg);
#define COM_DINO_FREQ 7272700
struct com_dino_softc {
struct com_softc sc_com; /* real "com" softc */
void *sc_ih; /* interrupt handler */
};
struct com_dino_regs {
u_int8_t reset;
u_int8_t pad0[3];
u_int8_t test;
#define COM_DINO_PAR_LOOP 0x01
#define COM_DINO_CLK_SEL 0x02
u_int8_t pad1[3];
u_int32_t iodc;
u_int8_t pad2[0x54];
u_int8_t dither;
};
int com_dino_match(struct device *, struct cfdata *, void *);
void com_dino_attach(struct device *, struct device *, void *);
CFATTACH_DECL(com_dino, sizeof(struct com_dino_softc), com_dino_match,
com_dino_attach, NULL, NULL);
int
com_dino_match(parent, match, aux)
struct device *parent;
struct cfdata *match;
void *aux;
{
struct confargs *ca = aux;
if (ca->ca_type.iodc_type != HPPA_TYPE_FIO ||
ca->ca_type.iodc_sv_model != HPPA_FIO_GRS232)
return (0);
return (1);
/* HOZER comprobe1(ca->ca_iot, ca->ca_hpa + IOMOD_DEVOFFSET); */
}
void
com_dino_attach(parent, self, aux)
struct device *parent, *self;
void *aux;
{
struct com_softc *sc = (void *)self;
struct com_dino_softc *sc_dino = (void *)self;
struct confargs *ca = aux;
struct com_dino_regs *regs = (struct com_dino_regs *)ca->ca_hpa;
sc->sc_iot = ca->ca_iot;
sc->sc_iobase = (bus_addr_t)ca->ca_hpa + IOMOD_DEVOFFSET;
#ifdef work_in_progress
if (sc->sc_iobase == CONADDR)
sc->sc_ioh = comconsioh;
else
#endif
if (bus_space_map(sc->sc_iot, sc->sc_iobase, COM_NPORTS,
0, &sc->sc_ioh)) {
printf(": cannot map io space\n");
return;
}
#ifdef work_in_progress
if (sc->sc_iobase != CONADDR) {
/* regs->reset = 0xd0;
DELAY(1000); */
}
#endif
/* select clock freq */
regs->test = COM_DINO_CLK_SEL;
sc->sc_frequency = COM_DINO_FREQ;
com_attach_subr(sc);
sc_dino->sc_ih = dino_intr_establish(parent, ca->ca_irq, IPL_TTY,
comintr, sc);
}

1697
sys/arch/hp700/dev/dino.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
/* $NetBSD: autoconf.c,v 1.14 2004/06/15 20:43:41 jkunz Exp $ */ /* $NetBSD: autoconf.c,v 1.15 2004/07/29 19:10:23 jkunz Exp $ */
/* $OpenBSD: autoconf.c,v 1.15 2001/06/25 00:43:10 mickey Exp $ */ /* $OpenBSD: autoconf.c,v 1.15 2001/06/25 00:43:10 mickey Exp $ */
@ -86,7 +86,7 @@
*/ */
#include <sys/cdefs.h> #include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: autoconf.c,v 1.14 2004/06/15 20:43:41 jkunz Exp $"); __KERNEL_RCSID(0, "$NetBSD: autoconf.c,v 1.15 2004/07/29 19:10:23 jkunz Exp $");
#include "opt_kgdb.h" #include "opt_kgdb.h"
#include "opt_useleds.h" #include "opt_useleds.h"
@ -108,6 +108,8 @@ __KERNEL_RCSID(0, "$NetBSD: autoconf.c,v 1.14 2004/06/15 20:43:41 jkunz Exp $");
#include <machine/iomod.h> #include <machine/iomod.h>
#include <machine/autoconf.h> #include <machine/autoconf.h>
#include <dev/pci/pcivar.h>
#include <dev/scsipi/scsi_all.h> #include <dev/scsipi/scsi_all.h>
#include <dev/scsipi/scsipi_all.h> #include <dev/scsipi/scsipi_all.h>
#include <dev/scsipi/scsiconf.h> #include <dev/scsipi/scsiconf.h>
@ -319,30 +321,90 @@ device_register(struct device *dev, void *aux)
if (dev->dv_parent == NULL || dev->dv_parent->dv_parent == NULL) if (dev->dv_parent == NULL || dev->dv_parent->dv_parent == NULL)
return; return;
pagezero_cookie = hp700_pagezero_map(); pagezero_cookie = hp700_pagezero_map();
/* Currently only GSC devices are supported. */ /* Currently only GSC and PCI devices are supported. */
#if NPCI > 0
#error Root device identification code needs PCI support.
#endif
/* /*
* The boot device is described in PAGE0->mem_boot. * The boot device is described in PAGE0->mem_boot. We need to do it
* The bit PCL_NET_MASK is set in PAGE0->mem_boot.pz_class if it * this way as the MD device path (DP) information in struct confargs
* is a network interface. All we need to compare in that case is * is only available in hp700 MD devices. So boot_device is used to
* the HPA to get the boot device. * propagate information down the device tree.
* If it is a SCSI device we need the HPA of the controller and *
* the SCSI target / lun. Target and lun are stored in the device * If the boot device is a GSC network device all we need to compare
* path layer array. When booting from disk / cdrom / tape remember * is the HPA or device path (DP) to get the boot device.
* the controller of the boot device in boot_device when the HPA * If the boot device is a SCSI device below a GSC attached SCSI
* matches. Later, when SCSI devices are attached, look if the * controller PAGE0->mem_boot.pz_hpa contains the HPA of the SCSI
* SCSI device hangs below the boot controller. If so, look for * controller. In that case we remember the the pointer to the
* the target and lun of the SCSI device. If they match the layer * controller's struct dev in boot_device. The SCSI device is located
* of the boot device path in PAGE0 we found the boot device. * later, see below.
*/ */
if (strcmp(dev->dv_parent->dv_cfdata->cf_name, "gsc") == 0 if (strcmp(dev->dv_parent->dv_cfdata->cf_name, "gsc") == 0
&& (hppa_hpa_t)PAGE0->mem_boot.pz_hpa == && (hppa_hpa_t)PAGE0->mem_boot.pz_hpa ==
((struct gsc_attach_args *)aux)->ga_ca.ca_hpa) ((struct gsc_attach_args *)aux)->ga_ca.ca_hpa)
/* This is (the controller of) the boot device. */ /* This is (the controller of) the boot device. */
boot_device = dev; boot_device = dev;
if ((PAGE0->mem_boot.pz_class & PCL_NET_MASK) == 0 /*
* If the boot device is a PCI device the HPA is the address where the
* firmware has maped the PCI memory of the PCI device. This is quite
* device dependent, so we compare the DP. It encodes the bus routing
* information to the PCI bus bridge in the DP head and the PCI device
* and PCI function in the last two DP components. So we compare the
* head of the DP when a PCI bridge attaches and remember the struct
* dev of the PCI bridge in boot_dev if it machtes. Later, when PCI
* devices are attached, we look if this PCI device hangs below the
* boot PCI bridge. If yes we compare the PCI device and PCI function
* to the DP tail. In case of a network boot we found the boot device
* on a match. In case of a SCSI boot device we have to do the same
* check when SCSI devices are attached like on GSC SCSI controllers.
*/
if (strcmp(dev->dv_cfdata->cf_name, "dino") == 0) {
struct confargs *ca = (struct confargs *)aux;
int i, n;
for (n = 0 ; ca->ca_dp.dp_bc[n] < 0 ; n++) {
/* Skip unused DP components. */
}
for (i = 0 ; i < 6 && n < 6 ; i++) {
/* Skip unused DP components... */
if (PAGE0->mem_boot.pz_dp.dp_bc[i] < 0)
continue;
/* and compare the rest. */
if (PAGE0->mem_boot.pz_dp.dp_bc[i]
!= ca->ca_dp.dp_bc[n]) {
hp700_pagezero_unmap(pagezero_cookie);
return;
}
n++;
}
if (PAGE0->mem_boot.pz_dp.dp_bc[i] != ca->ca_dp.dp_mod) {
hp700_pagezero_unmap(pagezero_cookie);
return;
}
/* This is the PCI host bridge in front of the boot device. */
boot_device = dev;
}
/* XXX Guesswork. No hardware to test how firmware handles a ppb. */
if (strcmp(dev->dv_cfdata->cf_name, "ppb") == 0
&& boot_device == dev->dv_parent->dv_parent
&& ((struct pci_attach_args*)aux)->pa_device
== PAGE0->mem_boot.pz_dp.dp_bc[3]
&& ((struct pci_attach_args*)aux)->pa_function
== PAGE0->mem_boot.pz_dp.dp_bc[4])
/* This is the PCI - PCI bridge in front of the boot device. */
boot_device = dev;
if (strcmp(dev->dv_parent->dv_cfdata->cf_name, "pci") == 0
&& boot_device == dev->dv_parent->dv_parent
&& ((struct pci_attach_args*)aux)->pa_device
== PAGE0->mem_boot.pz_dp.dp_bc[5]
&& ((struct pci_attach_args*)aux)->pa_function
== PAGE0->mem_boot.pz_dp.dp_mod)
/* This is (the controller of) the boot device. */
boot_device = dev;
/*
* When SCSI devices are attached, we look if the SCSI device hangs
* below the controller remembered in boot_device. If so, we compare
* the SCSI ID and LUN with the DP layer information. If they match
* we found the boot device.
*/
if (strcmp(dev->dv_parent->dv_cfdata->cf_name, "scsibus") == 0
&& boot_device == dev->dv_parent->dv_parent && boot_device == dev->dv_parent->dv_parent
&& ((struct scsipibus_attach_args *)aux)->sa_periph->periph_target && ((struct scsipibus_attach_args *)aux)->sa_periph->periph_target
== PAGE0->mem_boot.pz_dp.dp_layers[0] == PAGE0->mem_boot.pz_dp.dp_layers[0]
@ -369,7 +431,7 @@ cpu_rootconf(void)
pagezero_cookie = hp700_pagezero_map(); pagezero_cookie = hp700_pagezero_map();
printf("PROM boot device: hpa %p path ", PAGE0->mem_boot.pz_hpa); printf("PROM boot device: hpa %p path ", PAGE0->mem_boot.pz_hpa);
for (n = 0 ; n < 6 ; n++) { for (n = 0 ; n < 6 ; n++) {
if (PAGE0->mem_boot.pz_dp.dp_bc[n] > 0) if (PAGE0->mem_boot.pz_dp.dp_bc[n] >= 0)
printf("%d/", PAGE0->mem_boot.pz_dp.dp_bc[n]); printf("%d/", PAGE0->mem_boot.pz_dp.dp_bc[n]);
} }
printf("%d dp_layers ", PAGE0->mem_boot.pz_dp.dp_mod); printf("%d dp_layers ", PAGE0->mem_boot.pz_dp.dp_mod);

View File

@ -0,0 +1,93 @@
/* $OpenBSD: pci_machdep.h,v 1.1 2003/09/29 19:23:02 mickey Exp $ */
/*
* Copyright (c) 2003 Michael Shalayeff
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR OR HIS RELATIVES BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF MIND, USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef _MACHINE_PCI_MACHDEP_H_
#define _MACHINE_PCI_MACHDEP_H_
/*
* Types provided to machine-independent PCI code
*/
typedef struct hppa_pci_chipset_tag *pci_chipset_tag_t;
typedef u_long pcitag_t;
typedef u_long pci_intr_handle_t;
struct pci_attach_args;
struct hppa_pci_chipset_tag {
void *_cookie;
void (*pc_attach_hook)(struct device *,
struct device *, struct pcibus_attach_args *);
int (*pc_bus_maxdevs)(void *, int);
pcitag_t (*pc_make_tag)(void *, int, int, int);
void (*pc_decompose_tag)(void *, pcitag_t, int *,
int *, int *);
pcireg_t (*pc_conf_read)(void *, pcitag_t, int);
void (*pc_conf_write)(void *, pcitag_t, int, pcireg_t);
int (*pc_intr_map)(struct pci_attach_args *,
pci_intr_handle_t *);
const char *(*pc_intr_string)(void *, pci_intr_handle_t);
void *(*pc_intr_establish)(void *, pci_intr_handle_t,
int, int (*)(void *), void *);
void (*pc_intr_disestablish)(void *, void *);
void *(*pc_alloc_parent)(struct device *,
struct pci_attach_args *, int);
};
/*
* Functions provided to machine-independent PCI code.
*/
#define pci_attach_hook(p, s, pba) \
(*(pba)->pba_pc->pc_attach_hook)((p), (s), (pba))
#define pci_bus_maxdevs(c, b) \
(*(c)->pc_bus_maxdevs)((c)->_cookie, (b))
#define pci_make_tag(c, b, d, f) \
(*(c)->pc_make_tag)((c)->_cookie, (b), (d), (f))
#define pci_decompose_tag(c, t, bp, dp, fp) \
(*(c)->pc_decompose_tag)((c)->_cookie, (t), (bp), (dp), (fp))
#define pci_conf_read(c, t, r) \
(*(c)->pc_conf_read)((c)->_cookie, (t), (r))
#define pci_conf_write(c, t, r, v) \
(*(c)->pc_conf_write)((c)->_cookie, (t), (r), (v))
#define pci_intr_map(p, ihp) \
(*(p)->pa_pc->pc_intr_map)((p), (ihp))
#define pci_intr_line(ih) (ih)
#define pci_intr_string(c, ih) \
(*(c)->pc_intr_string)((c)->_cookie, (ih))
#define pci_intr_establish(c, ih, l, h, a) \
(*(c)->pc_intr_establish)((c)->_cookie, (ih), (l), (h), (a))
#define pci_intr_disestablish(c, iv) \
(*(c)->pc_intr_disestablish)((c)->_cookie, (iv))
#define pci_enumerate_bus(sc, m, p) \
pci_enumerate_bus_generic((sc), (m), (p))
#define pciide_machdep_compat_intr_establish(a, b, c, d, e) (NULL)
#define pciide_machdep_compat_intr_disestablish(a, b) ((void)(a), (void)(b))
#endif /* _MACHINE_PCI_MACHDEP_H_ */