Subject: Crystal Sound System WSS/SB (CS4232)
To: None <current-users@netbsd.org, port-i386@netbsd.org>
From: C Kane <ckane@best.com>
List: current-users
Date: 02/17/1999 00:20:03
My NetBSD/i386 system has a built-in CS4232 sound card, and NetBSD-current
doesn't seem to like it.

First, if I don't uncomment "wss* at isapnp? # Windows Sound System" in
the config file, NetBSD seems to find the card twice and hang hard.
This is copied from the screen (with DEBUG_ISAPNP on):

  Selecting attachments
  Found <CS4232, CSC0000, , WSS/SB> config: preferred
  4 IO Ports: 16 address bits, alignment 212 min 0x534, max 0x608
  4 IO Ports: 10 address bits, alignment 1 min 0x388, max 0x388
  16 IO Ports: 10 address bits, alignment 32 min 0x220, max 0x240
  IRQ's supported: 5 7 9 E+
  DRQ's supported: 1 3 Width: 8-bit Speed: compat Attributes: incr 8
  DRQ's supported: 0 1 3 Width: 8-bit Speed: compat Attributes: incr 8
  Register configuration:
  io[0]: 0x534/0
  io[1]: 0x388/0
  io[2]: 0x220/0
  irq[0]: 5
  drq[0]: 1
  drq[1]: 0
  isapnp0: configuring <CS4232, CSC0000, , WSS/SB>
  wss1 at isapnp0 port 0x534/4,0x388/4,0x220/16 irq 5 drq 1,0
  Found <CS4232, CSC0000, , WSS/SB> config: preferred
  4 IO Ports: 16 address bits, alignment 212 min 0x534, max 0x608
  4 IO Ports: 10 address bits, alignment 1 min 0x388, max 0x388
  16 IO Ports: 10 address bits, alignment 32 min 0x220, max 0x240
  IRQ's supported: 5 7 9 E+
  DRQ's supported: 1 3 Width: 8-bit Speed: compat Attributes: incr 8
  DRQ's supported: 0 1 3 Width: 8-bit Speed: compat Attributes: incr 8
  [power-cycle required]

If I comment-out the isapnp wss/sb driver, and just use the line
"wss0 at isa? port 0x530 irq 10 drq 0 drq2 1 # Windows Sound System"
(at either 0x530 or 0x534 -- the port shown in dmesg), then NetBSD
does not configure the peripheral (even with John Kohl's kludge).
I have included complete dmesg output below.

Does anybody else see this or is it just me?

Thanks for any response at all.

-- Chuck



NetBSD 1.3I (ckane4) #4: Tue Feb 16 23:42:00 PST 1999
    root@ckane4:/usr/netbsd-current/src/sys/arch/i386/compile/ckane4
cpu0: family 5 model 4 step 1
cpu0: Intel Pentium/MMX (586-class)
real mem  = 66715648
avail mem = 58998784
using 840 buffers containing 3440640 bytes of memory
mainbus0 (root)
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o enabled, memory enabled
pchb0 at pci0 dev 0 function 0
pchb0: Intel 82437FX System Controller (TSC) (rev. 0x02)
pcib0 at pci0 dev 7 function 0
pcib0: Intel 82371FB PCI-to-ISA Bridge (PIIX) (rev. 0x02)
pciide0 at pci0 dev 7 function 1: Intel 82371FB IDE controller (PIIX)
pciide0: bus-master DMA support present
pciide0: primary channel wired to compatibility mode
wd0 at pciide0 channel 0 drive 0: <ST5660A>
wd0: drive supports 32-sector pio transfers, lba addressing
wd0: 520MB, 1057 cyl, 16 head, 63 sec, 512 bytes/sect x 1066184 sectors
wd0: 32-bits data port
wd0: drive supports PIO mode 4, DMA mode 2
pciide0: secondary channel wired to compatibility mode
pciide0: disabling secondary channel (no drives)
wd0(pciide0:0:0): using PIO mode 4, DMA mode 2 (using DMA data transfers)
vga1 at pci0 dev 8 function 0: S3 Trio32/64 (rev. 0x40)
wsdisplay0 at vga1: console (80x25, vt100 emulation)
wsdisplay0: screen 1 added (80x25, vt100 emulation)
wsdisplay0: screen 2 added (80x25, vt100 emulation)
wsdisplay0: screen 3 added (80x25, vt100 emulation)
wsdisplay0: screen 4 added (80x25, vt100 emulation)
wsdisplay0: screen 5 added (80x25, vt100 emulation)
wsdisplay0: screen 6 added (80x25, vt100 emulation)
wsdisplay0: screen 7 added (80x25, vt100 emulation)
fxp0 at pci0 dev 14 function 0: Intel EtherExpress Pro 10+/100B Ethernet
fxp0: interrupting at irq 7
fxp0: Ethernet address 00:a0:c9:00:13:44
nsphy0 at fxp0 phy 1: DP83840 10/100 media interface, rev. 0
nsphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
ncr0 at pci0 dev 15 function 0: ncr 53c875 fast20 wide scsi
ncr0: interrupting at irq 11
ncr0: minsync=12, maxsync=137, maxoffs=16, 128 dwords burst, large dma fifo
ncr0: single-ended, open drain IRQ driver, using on-chip SRAM
ncr0: restart (scsi reset).
scsibus0 at ncr0: 16 targets, 8 luns per target
sd0 at scsibus0 targ 0 lun 0: <SEAGATE, ST32430W, HP04> SCSI2 0/direct fixed
sd0(ncr0:0:0): WIDE SCSI (16 bit) enabled
sd0(ncr0:0:0): 20.0 MB/s (100 ns, offset 15)
sd0: 2048MB, 3992 cyl, 9 head, 116 sec, 512 bytes/sect x 4194685 sectors
sd1 at scsibus0 targ 1 lun 0: <SEAGATE, ST32430W, HP04> SCSI2 0/direct fixed
sd1(ncr0:1:0): WIDE SCSI (16 bit) enabled
sd1(ncr0:1:0): 20.0 MB/s (100 ns, offset 15)
sd1: 2048MB, 3992 cyl, 9 head, 116 sec, 512 bytes/sect x 4194685 sectors
sd2 at scsibus0 targ 2 lun 0: <SEAGATE, ST32430W, HP04> SCSI2 0/direct fixed
sd2(ncr0:2:0): WIDE SCSI (16 bit) enabled
sd2(ncr0:2:0): 20.0 MB/s (100 ns, offset 15)
sd2: 2048MB, 3992 cyl, 9 head, 116 sec, 512 bytes/sect x 4194685 sectors
sd3 at scsibus0 targ 3 lun 0: <SEAGATE, ST32430W, HP05> SCSI2 0/direct fixed
sd3(ncr0:3:0): WIDE SCSI (16 bit) enabled
sd3(ncr0:3:0): 20.0 MB/s (100 ns, offset 15)
sd3: 2048MB, 3992 cyl, 9 head, 116 sec, 512 bytes/sect x 4194685 sectors
sd4 at scsibus0 targ 15 lun 0: <SEAGATE, ST32430W, HP04> SCSI2 0/direct fixed
sd4(ncr0:15:0): WIDE SCSI (16 bit) enabled
sd4(ncr0:15:0): 20.0 MB/s (100 ns, offset 15)
sd4: 2048MB, 3992 cyl, 9 head, 116 sec, 512 bytes/sect x 4194685 sectors
isa0 at pcib0
wss probe kludge
com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
com1 at isa0 port 0x2f8-0x2ff irq 3: ns16550a, working fifo
pckbc0 at isa0 port 0x60-0x64
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard
pms0 at pckbc0 (aux slot)
pckbc0: using irq 12 for aux slot
wsmouse0 at pms0
pcppi0 at isa0 port 0x61
midi0 at pcppi0: <PC speaker>
spkr0 at pcppi0
sysbeep0 at pcppi0
wss probe kludge
isapnp0 at isa0 port 0x279: ISA Plug 'n Play device support
wss probe kludge
npx0 at isa0 port 0xf0-0xff: using exception 16
fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
fd0 at fdc0 drive 0: 1.44MB, 80 cyl, 2 head, 18 sec
isapnp0: Trying port 203isapnp0: read port 0x203
isapnp0: card 1 violates PnP spec; byte 4
PnP version 1.0, Vendor version 0.1
ANSI Ident: CS4232
Logical device id CSC0000
ANSI Ident: WSS/SB
>>> Start dependent function config: preferred
IRQ's supported: 5 7 9 E+
DRQ's supported: 1 3 Width: 8-bit Speed: compat Attributes: incr 8 
DRQ's supported: 0 1 3 Width: 8-bit Speed: compat Attributes: incr 8 
4 IO Ports: 16 address bits, alignment 212 min 0x534, max 0x608
4 FIXED IO Ports: 10 address bits, alignment 1 min 0x388, max 0x388
16 IO Ports: 10 address bits, alignment 32 min 0x220, max 0x240
>>> Start dependent function config: acceptable
IRQ's supported: 5 7 9 11 12 15 E+
DRQ's supported: 0 1 3 Width: 8-bit Speed: compat Attributes: incr 8 
4 IO Ports: 16 address bits, alignment 212 min 0x534, max 0x608
4 FIXED IO Ports: 10 address bits, alignment 1 min 0x388, max 0x388
16 IO Ports: 10 address bits, alignment 16 min 0x210, max 0x260
>> Start dependent function config: preferred
IRQ's supported: 9 E+
2 FIXED IO Ports: 10 address bits, alignment 1 min 0x330, max 0x330
>>> Start dependent function config: acceptable
IRQ's supported: 9 E+
2 FIXED IO Ports: 10 address bits, alignment 1 min 0x300, max 0x300
 config: preferred
4 IO Ports: 16 address bits, alignment 212 min 0x534, max 0x608
4 IO Ports: 10 address bits, alignment 1 min 0x388, max 0x388
16 IO Ports: 10 address bits, alignment 32 min 0x220, max 0x240
IRQ's supported: 5 7 9 E+
DRQ's supported: 1 3 Width: 8-bit Speed: compat Attributes: incr 8 
DRQ's supported: 0 1 3 Width: 8-bit Speed: compat Attributes: incr 8 
Register configuration:
io[0]: 0x534/0
io[1]: 0x388/0
io[2]: 0x220/0
irq[0]: 5
drq[0]: 1
drq[1]: 0
isapnp0: configuring <CS4232, CSC0000, , WSS/SB>
isapnp0: <CS4232, CSC0000, , WSS/SB> port 0x534/4,0x388/4,0x220/16 irq 5 drq 1,0 not configured
Found <CS4232, CSC0001, PNPB02F, Game> config: acceptable
8 IO Ports: 10 address bits, alignment 1 min 0x200, max 0x200
Register configuration:
io[0]: 0x200/0
isapnp0: configuring <CS4232, CSC0001, PNPB02F, Game>
joy0 at isapnp0 port 0x200/8
Found <CS4232, CSC0001, PNPB02F, Game> config: acceptable
8 IO Ports: 10 address bits, alignment 1 min 0x200, max 0x200
joy0: CS4232 Game
joy0: joystick not connected
Found <CS4232, CSC0002, , Ctrl> config: acceptable
8 IO Ports: 16 address bits, alignment 8 min 0xf00, max 0xfe8
Register configuration:
io[0]: 0xf00/0
isapnp0: configuring <CS4232, CSC0002, , Ctrl>
isapnp0: <CS4232, CSC0002, , Ctrl> port 0xf00/8 not configured
Found <CS4232, CSC0003, , MPU> config: preferred
2 IO Ports: 10 address bits, alignment 1 min 0x330, max 0x330
IRQ's supported: 9 E+
Register configuration:
io[0]: 0x330/0
irq[0]: 9
isapnp0: configuring <CS4232, CSC0003, , MPU>
isapnp0: <CS4232, CSC0003, , MPU> port 0x330/2 irq 9 not configured
biomask 4840 netmask 48c0 ttymask 58c2
wscons: wskbd0 glued to wsdisplay0 (console)
WARNING: old BSD partition ID!
WARNING: old BSD partition ID!
boot device: wd0
root on wd0a dumps on wd0b
root file system type: ffs




#	$NetBSD: NWSCONS,v 1.18 1998/12/23 09:46:07 tron Exp $
#
#	like GENERIC, with new console drivers
#

include "arch/i386/conf/std.i386"

maxusers	64		# estimated number of users

options		MCLSHIFT=11
options		NMBCLUSTERS=8192
options		MSGBUFSIZE=32768
options		DEBUG_ISAPNP
#options	SCSI_NCR_DEBUG=0xffff
#options	SCSIDEBUG
#options	NCR5380_DEBUG
#options	MSGBUFSIZE=131072

# CPU support.  At least one is REQUIRED.
#options 	I386_CPU
#options 	I486_CPU
options 	I586_CPU
options 	I686_CPU

# CPU-related options.
options 	MATH_EMULATE	# floating point emulation
#options 	VM86		# virtual 8086 emulation
options 	USER_LDT	# user-settable LDT; used by WINE
# eliminate delay no-ops in I/O; recommended on all but very old machines
#options 	DUMMY_NOPS

# delay between "rebooting ..." message and hardware reset, in milliseconds
#options 	CPURESET_DELAY=2000

# Misc. i386-specific options
options 	XSERVER		# X server support in console drivers
#options 	XSERVER_DDB	# PF12 gets you into DDB when X is running

# This option allows you to force a serial console at the specified
# I/O address.   see console(4) for details.
#options 	"CONSDEVNAME=\"com\"",CONADDR=0x2f8,CONSPEED=57600
#	you don't want the option below ON iff you are using the
#	serial console option of the new boot strap code.
#options	CONS_OVERRIDE	# Always use above! independent of boot info

# The following options override the memory sizes passed in from the boot
# block.  Use them *only* if the boot block is unable to determine the correct
# values.  Note that the BIOS may *correctly* report less than 640k of base
# memory if the extended BIOS data area is located at the top of base memory
# (as is the case on most recent systems).
#options 	REALBASEMEM=639		# size of base memory (in KB)
#options 	REALEXTMEM=15360	# size of extended memory (in KB)

# Standard system options

options 	UCONSOLE	# users can use TIOCCONS (for xconsole)
options 	INSECURE	# disable kernel security levels

options 	RTC_OFFSET=0	# hardware clock is this many mins. west of GMT
#options 	NTP		# NTP phase/frequency locked loop

options 	KTRACE		# system call tracing via ktrace(1)

options 	SYSVMSG		# System V-like message queues
options 	SYSVSEM		# System V-like semaphores
options 	SYSVSHM		# System V-like memory sharing
#options 	SHMMAXPGS=1024	# 1024 pages is the default

options 	LKM		# loadable kernel modules

# Diagnostic/debugging support options
options 	DIAGNOSTIC	# cheap kernel consistency checks
#options 	DEBUG		# expensive debugging checks/support
#options 	KMEMSTATS	# kernel memory statistics (vmstat -m)
options 	DDB		# in-kernel debugger
#options 	DDB_HISTORY_SIZE=100	# enable history editing in DDB
#options 	KGDB		# remote debugger
#options 	"KGDB_DEVNAME=\"com\"",KGDBADDR=0x3f8,KGDBRATE=9600
#makeoptions	DEBUG="-g"	# compile full symbol table

# Compatibility options
options 	COMPAT_NOMID	# compatibility with 386BSD, BSDI, NetBSD 0.8,
options 	COMPAT_09	# NetBSD 0.9,
options 	COMPAT_10	# NetBSD 1.0,
options 	COMPAT_11	# NetBSD 1.1,
options 	COMPAT_12	# NetBSD 1.2,
options 	COMPAT_13	# NetBSD 1.3,
options 	COMPAT_43	# and 4.3BSD
options 	COMPAT_386BSD_MBRPART # recognize old partition ID

options 	COMPAT_SVR4	# binary compatibility with SVR4
options 	COMPAT_IBCS2	# binary compatibility with SCO and ISC
options 	COMPAT_LINUX	# binary compatibility with Linux
options 	COMPAT_FREEBSD	# binary compatibility with FreeBSD

# Executable format options
options 	EXEC_ELF32	# 32-bit ELF executables (SVR4, Linux)

# File systems
file-system 	FFS		# UFS
file-system 	EXT2FS		# second extended file system (linux)
file-system 	LFS		# log-structured file system
file-system 	MFS		# memory file system
file-system 	NFS		# Network File System client
file-system 	CD9660		# ISO 9660 + Rock Ridge file system
file-system 	MSDOSFS		# MS-DOS file system
file-system 	FDESC		# /dev/fd
file-system 	KERNFS		# /kern
file-system 	NULLFS		# loopback file system
file-system 	PORTAL		# portal filesystem (still experimental)
file-system 	PROCFS		# /proc
file-system 	UMAPFS		# NULLFS + uid and gid remapping
file-system 	UNION		# union file system
file-system	CODA		# Coda File System; also needs vcoda (below)

# File system options
options 	QUOTA		# UFS quotas
#options 	FFS_EI		# FFS Endian Independant support
options 	NFSSERVER	# Network File System server
#options 	EXT2FS_SYSTEM_FLAGS # makes ext2fs file flags (append and
				# immutable) behave as system flags.

# Networking options
#options 	GATEWAY		# packet forwarding
options 	INET		# IP + ICMP + TCP + UDP
#options 	MROUTING	# IP multicast routing
options 	NS		# XNS
#options 	NSIP		# XNS tunneling over IP
options 	ISO,TPIP	# OSI
options 	EON		# OSI tunneling over IP
options 	CCITT,LLC,HDLC	# X.25
options 	NETATALK	# AppleTalk networking protocols
#options 	PPP_BSDCOMP	# BSD-Compress compression support for PPP
#options 	PPP_DEFLATE	# Deflate compression support for PPP
#options 	PPP_FILTER	# Active filter support for PPP (requires bpf)
#options 	PFIL_HOOKS	# pfil(9) packet filter hooks
#options 	IPFILTER_LOG	# ipmon(8) log support

# Compatibility with 4.2BSD implementation of TCP/IP.  Not recommended.
#options 	TCP_COMPAT_42

# These options enable verbose messages for several subsystems.
# Warning, these may compile large string tables into the kernel!
#options 	EISAVERBOSE	# verbose EISA device autoconfig messages
options 	PCIVERBOSE	# verbose PCI device autoconfig messages
#options 	PCMCIAVERBOSE	# verbose PCMCIA configuration messages
options 	SCSIVERBOSE	# human readable SCSI error messages
options 	USBVERBOSE	# verbose USB device autoconfig messages

options 	NFS_BOOT_BOOTP,NFS_BOOT_BOOTPARAM

# wscons options
#options 	WSEMUL_SUN		# sun terminal emulation
options 	WSEMUL_VT100		# VT100 / VT220 emulation
# different kernel output - see dev/wscons/wsdisplayvar.h
options 	WS_KERNEL_FG=WSCOL_GREEN
options 	WSDISPLAY_COMPAT_PCVT		# emulate some ioctls
options 	WSDISPLAY_COMPAT_SYSCONS	# emulate some ioctls
options 	WSDISPLAY_COMPAT_USL		# VT handling
options 	WSDISPLAY_COMPAT_RAWKBD	# can get raw scancodes
# see dev/wscons/wskbdmap_mfii.h for implemented layouts
#options 	PCKBD_LAYOUT="(KB_DE | KB_NODEAD)"

# Kernel root file system and dump configuration.
config		netbsd	root on ? type ?
#config		netbsd	root on sd0a type ffs
#config		netbsd	root on ? type nfs

#
# Device configuration
#

mainbus0 at root

#apm0	at mainbus0			# Advanced power management


# Basic Bus Support

# PCI bus support
pci*	at mainbus? bus ?
pci*	at pchb? bus ?
pci*	at ppb? bus ?

# PCI bridges
pchb*	at pci? dev ? function ?	# PCI-Host bridges
pceb*	at pci? dev ? function ?	# PCI-EISA bridges
pcib*	at pci? dev ? function ?	# PCI-ISA bridges
ppb*	at pci? dev ? function ?	# PCI-PCI bridges
# XXX 'puc's aren't really bridges, but there's no better place for them here
puc*	at pci? dev ? function ?	# PCI "universal" comm. cards

# EISA bus support
#eisa*	at mainbus?
eisa*	at pceb?

# ISA bus support
isa*	at mainbus?
isa*	at pceb?
isa*	at pcib?

# PCMCIA bus support
#pcmcia*	at pcic? controller ? socket ?

# ISA PCMCIA controllers
#pcic0	at isa? port 0x3e0 iomem 0xd0000 iosiz 0x4000
#pcic1	at isa? port 0x3e2 iomem 0xd4000 iosiz 0x4000

# PCI PCMCIA controllers
#pcic0	at pci? dev? function ?

# ISA Plug-and-Play bus support
isapnp0	at isa?

# ISA Plug-and-Play PCMCIA controllers
#pcic*	at isapnp?

# Coprocessor Support

# Math Coprocessor support
npx0	at isa? port 0xf0 irq 13	# x86 math coprocessor


# Console Devices

# ISA console.  You can only configure one of these!
#pc0	at isa? port 0x60 irq 1		# pccons generic PC console driver
#vt0	at isa? port 0x60 irq 1		# PCVT console driver

# Keyboard layout configuration for pccons
#options 	FRENCH_KBD
#options 	FINNISH_KBD
#options 	GERMAN_KBD
#options 	NORWEGIAN_KBD

# wscons
pckbc0	at isa?			# pc keyboard controller
pckbd*	at pckbc?		# PC keyboard
wskbd*	at pckbd? console ?

# "pms" should not be enabled together with "psm" or "psmi"
#psm*		at pckbc?		# PS/2 mouse for wsmouse
#wsmouse*	at psm?

#psmi*		at pckbc?	# PS/2 "Intelli"mouse for wsmouse
#wsmouse*	at psmi?

pms*		at pckbc?		# backwards compatible PS/2 mouse
wsmouse*	at pms?

vga0		at isa?
vga*		at pci?
pcdisplay0	at isa?			# CGA, MDA, EGA, HGA
wsdisplay*	at vga? console ?
wsdisplay*	at pcdisplay? console ?

pcppi0	at isa?
sysbeep0	at pcppi?

# Serial Devices

# PCI serial interfaces
#com*	at puc? port ?			# 16x450s on "universal" comm boards
cy*	at pci? dev ? function ?	# Cyclades Cyclom-Y serial boards

# ISA Plug-and-Play serial interfaces
com*	at isapnp?			# Modems and serial boards

# PCMCIA serial interfaces
#com*	at pcmcia? function ?		# Modems and serial cards

#pcmcom*	at pcmcia? function ?		# PCMCIA multi-port serial cards
#com*	at pcmcom? slave ?		# ...and the slave devices

# ISA serial interfaces
#options 	COM_HAYESP		# adds Hayes ESP serial board support
com0	at isa? port 0x3f8 irq 4	# Standard PC serial ports
com1	at isa? port 0x2f8 irq 3
com2	at isa? port 0x3e8 irq 5
#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
#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


# Parallel Printer Interfaces

# PCI parallel printer interfaces
#lpt*	at puc? port ?			# || ports on "universal" comm boards

# ISA parallel printer interfaces
#lpt0	at isa? port 0x378 irq 7	# standard PC parallel ports
#lpt1	at isa? port 0x278
#lpt2	at isa? port 0x3bc


# SCSI Controllers and Devices

# PCI SCSI controllers
#adv*	at pci? dev ? function ?	# AdvanSys 1200[A,B], 9xx[U,UA] SCSI
#adw*	at pci? dev ? function ?	# AdvanSys 9xxUW SCSI
ahc*	at pci? dev ? function ?	# Adaptec [23]94x, aic78x0 SCSI
bha*	at pci? dev ? function ?	# BusLogic 9xx SCSI
#isp*	at pci? dev ? function ?	# Qlogic ISP [12]0x0 SCSI/FibreChannel
ncr*	at pci? dev ? function ?	# NCR 53c8xx SCSI

# EISA SCSI controllers
#ahb*	at eisa? slot ?			# Adaptec 174[02] SCSI
#ahc*	at eisa? slot ?			# Adaptec 274x, aic7770 SCSI
#bha*	at eisa? slot ?			# BusLogic 7xx SCSI
#uha*	at eisa? slot ?			# UltraStor 24f SCSI

# PCMCIA SCSI controllers
#aic*	at pcmcia? function ?		# Adaptec APA-1460 SCSI

# ISA Plug-and-Play SCSI controllers
aha*	at isapnp? 			# Adaptec AHA-154[02
aic*	at isapnp?			# Adaptec AHA-1520B

# ISA SCSI controllers
aha0	at isa? port 0x330 irq ? drq ?	# Adaptec 154[02] SCSI
aha1	at isa? port 0x334 irq ? drq ?
ahc0	at isa? port ? irq ?		# Adaptec 284x SCSI
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 ?
nca0	at isa? port 0x360 irq 15	# Port-mapped NCR 53C80 contoller
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
#scsibus* at adv?
#scsibus* at adw?
scsibus* at aha?
#scsibus* at ahb?
scsibus* at ahc?
scsibus* at aic?
scsibus* at bha?
#scsibus* at isp?
scsibus* at nca?
scsibus* at ncr?
#scsibus* at sea?
#scsibus* at uha?
#scsibus* at wds?

# SCSI devices
sd*	at scsibus? target ? lun ?	# SCSI disk drives
st*	at scsibus? target ? lun ?	# SCSI tape drives
cd*	at scsibus? target ? lun ?	# SCSI CD-ROM drives
ch*	at scsibus? target ? lun ?	# SCSI autochangers
ss*	at scsibus? target ? lun ?	# SCSI scanners
uk*	at scsibus? target ? lun ?	# SCSI unknown


# IDE and Related Devices
# PCI IDE controllers (CMD tech's PCI0640, Intel's PIIx, ...).
# 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

# ISA Plug-and-Play IDE controllers
wdc*	at isapnp? 

# PCMCIA IDE controllers
#wdc*	at pcmcia? function ?

# ISA ST506, ESDI, and IDE controllers
wdc0	at isa? port 0x1f0 irq 14
wdc1	at isa? port 0x170 irq 15

# IDE drives.
# Flags are used only with controlers that support DMA operations
# and mode settings (e.g. some pciide controllers)
# The first 4 bytes of the flags define the PIO mode to use, the
# second DMA mode and the third UltraDMA mode. For each group of 4 bytes,
# the 3 lower define the mode to use, and the last one must be 1 for the
# setting to be used. For DMA and UDMA, 0xf means 'disable'.
# 0x0fac means 'use PIO mode 4 DMA mode 2, disable UltraDMA'.
# 0x0000 means "use whatever the drive claims to support.
wd*	at wdc? channel ? drive ? flags 0x0000
wd*	at pciide? channel ? drive ? flags 0x0000

# ATAPI bus support
atapibus* at wdc? channel ?
atapibus* at pciide? channel ?

# ATAPI devices
# flags have the same meaning as for IDE drives.
cd*	at atapibus? drive ? flags 0x0000	# ATAPI CD-ROM drives
sd*	at atapibus? drive ? flags 0x0000	# ATAPI disk drives
uk*	at atapibus? drive ? flags 0x0000	# ATAPI unknown


# Miscellaneous mass storage devices

# 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
# 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

# PCI network interfaces
de*	at pci? dev ? function ?	# DEC 21x4x-based Ethernet
#en*	at pci? dev ? function ?	# ENI/Adaptec ATM
ep*	at pci? dev ? function ?	# 3Com 3c59x
ex*	at pci? dev ? function ?	# 3Com 90x[B]
#epic*	at pci? dev ? function ?	# SMC EPIC/100 Ethernet
#esh*	at pci? dev ? function ?	# Essential HIPPI card
#fpa*	at pci? dev ? function ?	# DEC DEFPA FDDI
fxp*	at pci? dev ? function ?	# Intel EtherExpress PRO 10+/100B
#le*	at pci? dev ? function ?	# PCnet-PCI Ethernet
ne*	at pci? dev ? function ?	# NE2000-compatible Ethernet
#tl*	at pci? dev ? function ?	# ThunderLAN-based Ethernet
vr*	at pci? dev ? function ?	# VIA Rhine Fast Ethernet

# EISA network interfaces
#ep*	at eisa? slot ?			# 3Com 3c579 Ethernet
#fea*	at eisa? slot ?			# DEC DEFEA FDDI

# ISA Plug-and-Play network interfaces
ep*	at isapnp?			# 3Com 3c509 Ethernet
ne*	at isapnp?			# NE2000-compatible Ethernet

# PCMCIA network interfaces
#ep*	at pcmcia? function ?		# 3Com 3c589 and 3c562 Ethernet
#mbe*	at pcmcia? function ?		# MB8696x based Ethernet
#ne*	at pcmcia? function ?		# NE2000-compatible Ethernet
#sm*	at pcmcia? function ?		# Megahertz 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
ep0	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
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?
#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
ne0	at isa? port 0x300 irq 3
sm0	at isa? port 0x300 irq 10		# SMC91C9x Ethernet
we0	at isa? port 0x280 iomem 0xd0000 irq 9	# WD/SMC Ethernet
we1	at isa? port 0x300 iomem 0xcc000 irq 10

# MII/PHY support
exphy*	at mii? phy ?			# 3Com internal PHYs
icsphy*	at mii? phy ?			# Integrated Circuit Systems ICS1890
inphy*	at mii? phy ?			# Intel 82555 PHYs
lxtphy*	at mii? phy ?			# Level One LXT-970 PHYs
nsphy*	at mii? phy ?			# NS83840 PHYs
qsphy*	at mii? phy ?			# Quality Semiconductor QS6612 PHYs
sqphy*	at mii? phy ?			# Seeq 80220/80221/80223 PHYs
tlphy*	at mii? phy ?			# ThunderLAN PHYs
ukphy*	at mii? phy ?			# generic unknown PHYs

# USB Controller and Devices

# PCI USB controllers
uhci*	at pci?				# Universal Host Controller (Intel)
ohci*	at pci?				# Open Host Controller

# USB bus support
usb*	at uhci?
usb*	at ohci?

# USB Hubs
uhub*	at usb?
uhub*	at uhub? port ? configuration ? interface ?

# USB Mice
ums*	at uhub? port ? configuration ? interface ?
wsmouse*	at ums?

# USB Keyboards
ukbd*	at uhub? port ? configuration ? interface ?
wskbd*	at ukbd? console ?

# USB Generic HID devices
uhid*	at uhub? port ? configuration ? interface ?

# USB Printer
ulpt*	at uhub? port ? configuration ? interface ?

# USB Generic driver
ugen*	at uhub? port ? configuration ? interface ?

# Audio Devices

# PCI audio devices
eap*	at pci? dev ? function ?	# Ensoniq AudioPCI
sv*	at pci? dev ? function ?	# S3 SonicVibes

# ISA Plug-and-Play audio devices
#ess*	at isapnp?			# ESS Tech ES1887, ES1888, ES888 audio
#guspnp*	at isapnp?			# Gravis Ultra Sound PnP audio
#sb*	at isapnp?			# SoundBlaster-compatible audio
#wss*	at isapnp?			# Windows Sound System
#ym*	at isapnp?			# Yamaha OPL3-SA3 audio

# ISA audio devices
#aria0	at isa? port 0x290 irq 10 		# Aria
#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
wss0	at isa? port 0x534 irq 10 drq 0	drq2 1	# Windows Sound System

# OPL[23] FM syntheziers
#opl0	at isa? port 0x388	# use only if not attached to sound card
#opl*	at ess?
opl*	at sb?
opl*	at sv?

# USB Audio devices
#uaudio*	at uhub? port ? configuration ? interface ?

# Audio support
#audio*	at aria?
audio*	at eap?
#audio*	at ess?
#audio*	at gus?
#audio*	at guspnp?
#audio*	at pas?
audio*	at sb?
audio*	at sp?
audio*	at sv?
#audio*	at uaudio?
audio*	at wss?
#audio*	at ym?

# MIDI support
midi*	at pcppi?		# MIDI interface to the PC speaker
midi*	at sb?			# SB MPU401 port
midi*	at opl?			# OPL FM synth

# The spkr driver provides a simple tone interface to the built in speaker.
spkr0	at pcppi?		# PC speaker


# Mice

# ISA busmice
#lms0	at isa? port 0x23c irq 5	# Logitech bus mouse
#lms1	at isa? port 0x238 irq 5
#mms0	at isa? port 0x23c irq 5	# Microsoft InPort mouse
#mms1	at isa? port 0x238 irq 5
#pms0	at pc? irq 12		# PS/2 auxiliary port mouse
#pms0	at vt? irq 12		# PS/2 auxiliary port mouse


# Joysticks

# ISA Plug-and-Play joysticks
joy*	at isapnp?			# Game ports (usually on audio cards)

# 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


# Pull in optional local configuration
include	"arch/i386/conf/GENERIC.local"


# Pseudo-Devices

# disk/mass storage pseudo-devices
pseudo-device	ccd		4	# concatenated/striped disk devices
#pseudo-device	raid		4	# RAIDframe disk driver
pseudo-device	md		1	# memory disk device (ramdisk)
pseudo-device	vnd		4	# disk-like interface to files

# network pseudo-devices
pseudo-device	bpfilter	8	# Berkeley packet filter
pseudo-device	ipfilter		# IP filter (firewall) and NAT
pseudo-device	loop			# network loopback
pseudo-device	ppp		2	# Point-to-Point Protocol
pseudo-device	sl		2	# Serial Line IP
pseudo-device	strip		2	# Starmode Radio IP (Metricom)
pseudo-device	tun		2	# network tunneling over tty
pseudo-device	gre		2	# generic L3 over IP tunnel
pseudo-device	ipip		2	# IP Encapsulation within IP (RFC 2003)

# miscellaneous pseudo-devices
pseudo-device	pty		64	# pseudo-terminals
pseudo-device	tb		1	# tablet line discipline
pseudo-device	sequencer	1	# MIDI sequencer

# rnd is EXPERIMENTAL at this point.
#pseudo-device	rnd			# /dev/random and in-kernel generator
#options 	RND_COM			# use "com" randomness as well (BROKEN)

# a pseudo device needed for Coda	# also needs CODA (above)
pseudo-device	vcoda		4	# coda minicache <-> venus comm.