NetBSD Problem Report #42966

From anne@porcupine.montreal.qc.ca  Sat Mar 13 00:34:46 2010
Return-Path: <anne@porcupine.montreal.qc.ca>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
	by www.NetBSD.org (Postfix) with ESMTP id 4EDC363B11D
	for <gnats-bugs@gnats.NetBSD.org>; Sat, 13 Mar 2010 00:34:46 +0000 (UTC)
Message-Id: <20100313003443.6C5513E6@quill.porcupine.montreal.qc.ca>
Date: Fri, 12 Mar 2010 19:34:43 -0500 (EST)
From: anne@porcupine.montreal.qc.ca
Reply-To: anne@porcupine.montreal.qc.ca
To: gnats-bugs@gnats.NetBSD.org
Subject: kernel built from today's netbsd-5 crashes
X-Send-Pr-Version: 3.95

>Number:         42966
>Category:       port-i386
>Synopsis:       kernel built from today's netbsd-5 crashes, related to i915 driver
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-i386-maintainer
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Mar 13 00:35:00 +0000 2010
>Closed-Date:    Thu Aug 17 18:44:24 +0000 2017
>Last-Modified:  Thu Aug 17 18:44:24 +0000 2017
>Originator:     Anne Bennett
>Release:        NetBSD 5.0.1, sources updated to netbsd-5 2010-03-12
>Organization:
>Environment:
System: NetBSD quill.porcupine.montreal.qc.ca 5.0.1 NetBSD 5.0.1 (QUILL_I386-$Revision: 2010-01-05 $) #4: Thu Jan 21 13:56:23 EST 2010 root@quill.porcupine.montreal.qc.ca:/usr/src/sys/arch/i386/compile/QUILL_I386 i386
Architecture: i386
Machine: i386
>Description:
Note: it's *not* the above kernel that crashed.  Since it crashed on
boot, I can't give you its uname line, but it would have been similar
to the above.

I had installed 5.0.1 in January on my HP Pavilion box, and things
had been going generally well (the only obvious glitch was an
occasional crash near the end of a shutdown).  Because of the three
security advisories issued so far this year, today I updated my
sources with "cvs update -r netbsd-5 -dPA", rebuilt my kernel (I
have not touched userland yet), and rebooted.  The machine crashed
while booting, with:

    i915drm0 at vga1: Intel i945G
    panic: kernel diagnostic assertion "(boundary & (boundary-1)) == 0): failed: file "../../../../uvm/uvm_pglist.c", line 403
    fatal breakpoint trap in supervisor mode
    trap type 1 code 0 eip c05bf95c cs 8 eflags 246 cr2 0 ilevel 8
    Stopped in pid 0.1 (system) at betbsd:breakpoit+0x4: popl %ebp

It dropped me into db, so I typed "trace", and noted the subroutine
names in the first few lines after the breakpoint note:

    netbsd:uvm_pglistalloc
    _bus_dmamem_alloc_range
    _bus_dmamem_alloc
    drm_pci_alloc
    i915_driver_load
    drm_attach
    config_attach_loc
    config_found_ia

I tried deleting my entire kernel compile directory (rm -rf
/usr/src/sys/arch/i386/compile/QUILL_I386), and configured
and rebuilt the kernel from scratch.  No difference, still
the crash as shown above.

In case it's relevant, but probably not:

I booted back into the old kernel under the name "netbsd.old",
and boy did it act funny: the keyboard did not repeat in X,
mouse-click highlighting did not work correctly, firefox froze,
and, "twilight-zoniest" of all, time slowed way down: repeated
invocations of "date" showed the same time, and only eventually
did the second advance!  Anyway, now that I've renamed /netbsd.old
to /netbsd and rebooted again, that weirdness is gone.

But I can't run a kernel built from the recent netbsd-5 sources.
I have not edited any sources.  Here is my kernel config file:

------------------------------------------------------
# $NetBSD: GENERIC,v 1.915.2.3 2009/02/19 20:23:46 snj Exp $
#
# GENERIC machine description file
#
# This machine description file is used to generate the default NetBSD
# kernel.  The generic kernel does not include all options, subsystems
# and device drivers, but should be useful for most applications.
#
# The machine description file can be customised for your specific
# machine to reduce the kernel size and improve its performance.
#
# For further information on compiling NetBSD kernels, see the config(8)
# man page.
#
# For further information on hardware support for this architecture, see
# the intro(4) man page.  For further information about kernel options
# for this architecture, see the options(4) man page.  For an explanation
# of each device driver in this file see the section 4 man page for the
# device.

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

options 	INCLUDE_CONFIG_FILE	# embed config file in kernel binary

ident 		"QUILL_I386-$Revision: 2010-01-05 $"

maxusers	128		# estimated number of users

makeoptions 	CPUFLAGS="-march=i486 -mtune=pentiumpro" # Assume at least 486,
							# tune for more modern

# CPU-related options.
options 	VM86		# virtual 8086 emulation
options 	USER_LDT	# user-settable LDT; used by WINE

# Enhanced SpeedStep Technology in the Pentium M
options 	ENHANCED_SPEEDSTEP
#options 	EST_FREQ_USERWRITE	# any user can set frequency

# AMD PowerNow! K7
options 	POWERNOW_K7

# AMD PowerNow! and Cool`n'Quiet technology
options 	POWERNOW_K8

# VIA PadLock
#options 	VIA_PADLOCK

# Intel(R) On Demand Clock Modulation (aka ODCM)
#options 	INTEL_ONDEMAND_CLOCKMOD

options 	MTRR		# memory-type range register syscall support
# doesn't work with MP just yet..
#options 	PERFCTRS	# performance-monitoring counters support

options 	MULTIBOOT	# Multiboot support (see multiboot(8))

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

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

# The following options limit the overall size of physical memory
# and/or the maximum address used by the system.
# Contrary to REALBASEMEM and REALEXTMEM, they still use the BIOS memory map
# and can deal with holes in the memory layout.
#options 	PHYSMEM_MAX_SIZE=64	# max size of physical memory (in MB)
#options 	PHYSMEM_MAX_ADDR=2048	# don't use memory above this (in MB)

# Standard system options

options 	INSECURE	# disable kernel security levels - X needs this

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)

# Note: SysV IPC parameters could be changed dynamically, see sysctl(8).
options 	SYSVMSG		# System V-like message queues
options 	SYSVSEM		# System V-like semaphores
options 	SYSVSHM		# System V-like memory sharing
options 	P1003_1B_SEMAPHORE	# p1003.1b semaphore support

options 	LKM		# loadable kernel modules
options		MODULAR		# new style module framework
options 	APM_NO_IDLE	# needed for SMP

options 	USERCONF	# userconf(4) support
#options 	PIPE_SOCKETPAIR	# smaller, but slower pipe(2)
options 	SYSCTL_INCLUDE_DESCR	# Include sysctl descriptions in kernel

# Beep when it is safe to power down the system (requires sysbeep)
options 	BEEP_ONHALT
# Some tunable details of the above feature (default values used below)
options 	BEEP_ONHALT_COUNT=3	# Times to beep
#options 	BEEP_ONHALT_PITCH=1500	# Default frequency (in Hz)
#options 	BEEP_ONHALT_PERIOD=250	# Default duration (in msecs)

# Alternate buffer queue strategies for better responsiveness under high
# disk I/O load.
#options 	BUFQ_READPRIO
options 	BUFQ_PRIOCSCAN

# Diagnostic/debugging support options
options 	DIAGNOSTIC	# expensive kernel consistency checks
#options 	DEBUG		# expensive debugging checks/support
#options 	KMEMSTATS	# kernel memory statistics (vmstat -m)
options 	DDB		# in-kernel debugger
#options 	DDB_ONPANIC=1	# see also sysctl(8): `ddb.onpanic'
options 	DDB_HISTORY_SIZE=512	# enable history editing in DDB
#options 	DDB_VERBOSE_HELP
#options 	KGDB		# remote debugger
#options 	KGDB_DEVNAME="\"com\"",KGDB_DEVADDR=0x3f8,KGDB_DEVRATE=9600
#makeoptions 	DEBUG="-g"	# compile full symbol table
#options 	SYSCALL_STATS	# per syscall counts
#options 	SYSCALL_TIMES	# per syscall times
#options 	SYSCALL_TIMES_HASCOUNTER	# use 'broken' rdtsc (soekris)

# Compatibility options
options 	COMPAT_NOMID	# NetBSD 0.8, 386BSD, and BSDI
options 	COMPAT_09	# NetBSD 0.9
options 	COMPAT_10	# NetBSD 1.0
options 	COMPAT_11	# NetBSD 1.1
options 	COMPAT_12	# NetBSD 1.2, 386BSD, and BSDI
options 	COMPAT_13	# NetBSD 1.3, 386BSD, and BSDI
options 	COMPAT_14	# NetBSD 1.4
options 	COMPAT_15	# NetBSD 1.5
options 	COMPAT_16	# NetBSD 1.6
options 	COMPAT_20	# NetBSD 2.0
options 	COMPAT_30	# NetBSD 3.0
options 	COMPAT_30_PTHREAD # NetBSD 3.0 pthreads compatibility.
options 	COMPAT_40	# NetBSD 4.0
options 	COMPAT_43	# 4.3BSD, 386BSD, and BSDI
#options 	COMPAT_386BSD_MBRPART # recognize old partition ID
#options 	TCP_COMPAT_42	# 4.2BSD TCP/IP bug compat. Not recommended.

options 	COMPAT_OSSAUDIO	# OSS (Voxware) audio driver compatibility
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
#options 	COMPAT_MACH	# binary compatibility with Mach binaries
#options 	COMPAT_DARWIN	# binary compatibility with Darwin binaries
#options 	EXEC_MACHO	# exec MACH-O binaries
#options 	COMPAT_NDIS	# NDIS network driver
#options 	COMPAT_PECOFF	# kernel support to run Win32 apps
options 	COMPAT_BSDPTY	# /dev/[pt]ty?? ptys.

# Wedge support
options 	DKWEDGE_AUTODISCOVER	# Automatically add dk(4) instances
options 	DKWEDGE_METHOD_GPT	# Supports GPT partitions as wedges
# The following two options can break /etc/fstab, so handle with care
#options 	DKWEDGE_METHOD_BSDLABEL	# Support disklabel entries as wedges
#options 	DKWEDGE_METHOD_MBR	# Support MBR partitions as wedges

# 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 	NTFS		# Windows/NT file system (experimental)
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 	OVERLAY		# overlay 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 	SMBFS		# experimental - CIFS; also needs nsmb (below)
file-system 	PTYFS		# /dev/ptm support
file-system 	TMPFS		# Efficient memory file-system
#file-system 	UDF		# experimental - OSTA UDF CD/DVD file-system
#file-system 	HFS		# experimental - Apple HFS+ (read-only)
file-system	PUFFS		# Userspace file systems (e.g. ntfs-3g & sshfs)

# File system options
options 	QUOTA		# UFS quotas
#options 	FFS_EI		# FFS Endian Independent support
options 	SOFTDEP		# FFS soft updates support.
options 	WAPBL		# File system journaling support - Experimental
# Note that UFS_DIRHASH is suspected of causing kernel memory corruption.
# It is not recommended for general use.
#options 	UFS_DIRHASH	# UFS Large Directory Hashing - Experimental
options 	NFSSERVER	# Network File System server
#options 	FFS_NO_SNAPSHOT	# No FFS snapshot support
#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 	INET6		# IPV6
#options 	IPSEC		# IP security
#options 	IPSEC_ESP	# IP security (encryption part; define w/IPSEC)
#options 	IPSEC_NAT_T	# IPsec NAT traversal (NAT-T)
#options 	IPSEC_DEBUG	# debug for IP security
#options 	MROUTING	# IP multicast routing
#options 	PIM		# Protocol Independent Multicast
#options 	ISO,TPIP	# OSI
#options 	EON		# OSI tunneling over IP
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
options 	IPFILTER_LOOKUP	# ippool(8) support
#options 	IPFILTER_DEFAULT_BLOCK	# block all packets by default
#options 	TCP_DEBUG	# Record last TCP_NDEBUG packets with SO_DEBUG

#options 	ALTQ		# Manipulate network interfaces' output queues
#options 	ALTQ_BLUE	# Stochastic Fair Blue
#options 	ALTQ_CBQ	# Class-Based Queueing
#options 	ALTQ_CDNR	# Diffserv Traffic Conditioner
#options 	ALTQ_FIFOQ	# First-In First-Out Queue
#options 	ALTQ_FLOWVALVE	# RED/flow-valve (red-penalty-box)
#options 	ALTQ_HFSC	# Hierarchical Fair Service Curve
#options 	ALTQ_LOCALQ	# Local queueing discipline
#options 	ALTQ_PRIQ	# Priority Queueing
#options 	ALTQ_RED	# Random Early Detection
#options 	ALTQ_RIO	# RED with IN/OUT
#options 	ALTQ_WFQ	# Weighted Fair Queueing

# These options enable verbose messages for several subsystems.
# Warning, these may compile large string tables into the kernel!
options 	ACPIVERBOSE	# verbose ACPI device autoconfig messages
#options 	EISAVERBOSE	# verbose EISA device autoconfig messages
#options 	MIIVERBOSE	# verbose PHY autoconfig messages
options 	PCIVERBOSE	# verbose PCI device autoconfig messages
#options 	PCI_CONFIG_DUMP	# verbosely dump PCI config space
#options 	PCMCIAVERBOSE	# verbose PCMCIA configuration messages
options 	SCSIVERBOSE	# human readable SCSI error messages
#options 	USBVERBOSE	# verbose USB device autoconfig messages
#options 	PNPBIOSVERBOSE	# verbose PnP BIOS messages
#options 	PNPBIOSDEBUG	# more fulsome PnP BIOS debugging messages
#options 	MCAVERBOSE	# verbose MCA device autoconfig messages

options 	NFS_BOOT_DHCP,NFS_BOOT_BOOTPARAM

#
# wscons options
#
# builtin terminal emulations
#options 	WSEMUL_SUN		# sun terminal emulation
options 	WSEMUL_VT100		# VT100 / VT220 emulation
# customization of console and kernel output - see dev/wscons/wsdisplayvar.h
options 	WSDISPLAY_CUSTOM_OUTPUT	# color customization from wsconsctl(8)
#options 	WS_DEFAULT_FG=WSCOL_WHITE
#options 	WS_DEFAULT_BG=WSCOL_BLACK
#options 	WS_DEFAULT_COLATTR="(0)"
#options 	WS_DEFAULT_MONOATTR="(0)"
options 	WS_KERNEL_FG=WSCOL_GREEN
#options 	WS_KERNEL_BG=WSCOL_BLACK
#options 	WS_KERNEL_COLATTR=""
#options 	WS_KERNEL_MONOATTR=""
# customization of console border color
options 	WSDISPLAY_CUSTOM_BORDER	# custom border colors via wsconsctl(8)
#options 	WSDISPLAY_BORDER_COLOR=WSCOL_BLUE	# default color
# compatibility to other console drivers
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
#options 	WSKBD_EVENT_AUTOREPEAT		# auto repeat in event mode
#options 	WSKBD_USONLY			# strip off non-US keymaps
# don't attach pckbd as the console if no PS/2 keyboard is found
options 	PCKBD_CNATTACH_MAY_FAIL
# see dev/pckbport/wskbdmap_mfii.c for implemented layouts
#options 	PCKBD_LAYOUT="(KB_DE | KB_NODEAD)" # for pckbd driver
#options 	UKBD_LAYOUT="(KB_DE | KB_NODEAD)"  # for ukbd driver
# allocate a number of virtual screens at autoconfiguration time
#options 	WSDISPLAY_DEFAULTSCREENS=4
# use a large software cursor that doesn't blink
options 	PCDISPLAY_SOFTCURSOR
# modify the screen type of the console; defaults to "80x25"
#options 	VGA_CONSOLE_SCREENTYPE="\"80x24\""
# work around a hardware bug that loaded fonts don't work; found on ATI cards
#options 	VGA_CONSOLE_ATI_BROKEN_FONTSEL
# console scrolling support.
options 	WSDISPLAY_SCROLLSUPPORT
# enable VGA raster mode capable of displaying multilingual text on console
#options 	VGA_RASTERCONSOLE
# enable splash screen support; requires hw driver support
#options 	SPLASHSCREEN
#options 	SPLASHSCREEN_PROGRESS

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

# Doesn't do anything yet.
#p64h2apic* at pci? dev? function?	# P64H2 IOxAPIC

#apm0	at mainbus0			# Advanced power management

# Tuning for power management, see apm(4) for more details.
#options 	APM_NO_IDLE		# Don't call BIOS CPU idle function
#options 	APM_V10_ONLY		# Use only the APM 1.0 calls
#options 	APM_NO_POWEROFF		# Don't power off on halt(8)
#options 	APM_POWER_PRINT		# Print stats on the console
#options 	APM_DISABLE_INTERRUPTS=0 # Don't disable interrupts


# Basic Bus Support

#IPMI support
ipmi0		at mainbus?

# Advanced Configuration and Power Interface

# This option can be used to retrieve CPU and APIC information.
# that I/O APICs can be used if ACPI is enabled below.
#options 	MPBIOS_SCANPCI	# find PCI roots using MPBIOS
options 	ACPI_SCANPCI	# find PCI roots using ACPI

acpi0 		at mainbus0

#options 	ACPI_ACTIVATE_DEV	# If set, activate inactive devices
#options 	ACPICA_PEDANTIC		# force strict conformance to the Spec.
options 	VGA_POST		# in-kernel support for VGA POST

# ACPI devices
apm*		at acpi?		# ACPI apm emulation
acpiacad* 	at acpi?		# ACPI AC Adapter
acpibat* 	at acpi?		# ACPI Battery
acpibut* 	at acpi?		# ACPI Button
acpidalb*	at acpi?		# ACPI Direct Application Launch Button
# The ACPI Embedded Controller is generally configured via the special ECDT.
# This is required as parts of the DSDT can reference the EC before the normal
# attach phase.
acpiec* 	at acpi?		# ACPI Embedded Controller (late binding)
acpiecdt* 	at acpi?		# ACPI Embedded Controller (early binding)
acpilid* 	at acpi?		# ACPI Lid Switch
acpitz* 	at acpi?		# ACPI Thermal Zone

# Mainboard devices
aiboost*	at acpi?		# ASUS AI Booster Hardware Monitor
asus*		at acpi?		# ASUS hotkeys
attimer*	at acpi?		# AT Timer
#com* 		at acpi?		# Serial communications interface
#fdc* 		at acpi?		# Floppy disk controller
hpqlb*		at acpi?		# HP Quick Launch Buttons
hpet* 		at acpi?		# High Precision Event Timer
joy*		at acpi?		# Joystick/Game port
#lpt* 		at acpi?		# Parallel port
mpu*		at acpi?		# Roland MPU-401 MIDI UART
npx*		at acpi?		# Math coprocessor
pckbc*  	at acpi?		# PC keyboard controller
pcppi*		at acpi?                # AT-style speaker sound
thinkpad*	at acpi?		# IBM/Lenovo Thinkpad hotkeys
ug* 		at acpi?		# Abit uGuru Hardware monitor
wss* 		at acpi?		# NeoMagic 256AV in wss mode
ym* 		at acpi?		# Yamaha OPL3-SA[23] audio

# Sony Vaio jog dial
spic* 		at acpi?		# Sony Programmable I/O Controller
wsmouse* 	at spic?

# Sony LCD brightness etc.
sony* 		at acpi?		# Sony Miscellaneous Controller

# Toshiba Libretto devices
vald* at acpi?

# Plug-and-Play BIOS and attached devices

#pnpbios*	at mainbus?

# mainboard audio chips
#ess*		at pnpbios? index ?	# ESS AudioDrive
#sb*		at pnpbios? index ?	# NeoMagic 256AV in sb mode
#wss*		at pnpbios? index ?	# NeoMagic 256AV in wss mode
#ym*		at pnpbios? index ?	# Yamaha OPL3-SA[23] audio

# com port
# If enabled, consider changing "com0", "com1", and "com2" under "ISA Serial
# Interfaces" to "com*", otherwise com2 will attach at pnpbios? and there
# will be no com0.  A side effect is pcmcia (and other) com? previously
# starting at com3 may attach as com1 or com2.
#com*		at pnpbios? index ?	# serial ports

# parallel port
# The above "com*" comments apply, cf. "lpt0" under "ISA parallel
# "printer interfaces".
#lpt*		at pnpbios? index ?	# parallel ports

#pckbc*		at pnpbios? index ?	# PC keyboard/mouse controller
#fdc*		at pnpbios? index ?	# floppy controller
#npx*		at pnpbios? index ?	# Math coprocessor

# IDE controller on Toshiba Portege 3000 series (crippled PCI device)
#pciide* 	at pnpbios? index ?

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

# Configure PCI using BIOS information
#options 	PCIBIOS			# PCI BIOS support
#options 	PCIBIOSVERBOSE		# PCI BIOS verbose info
#options 	PCIBIOS_IRQS_HINT=0x0a00 # PCI interrupts hint. IRQ 9 or 11
#options 	PCIBIOS_INTR_GUESS	# see pcibios(4)
#options 	PCIBIOS_LIBRETTO_FIXUP	# this code makes the Toshiba Libretto
					# L2/L3 work, but should not be enabled
					# on anything else.
#options 	PCIBIOS_SHARP_MM20_FIXUP # this code makes the Sharp MM 20
					# work, but should not be enabled
					# on anything else.
#options 	PCIINTR_DEBUG		# super-verbose PCI interrupt fixup

# PCI fixups, for both PCIBIOS and ACPI
#options 	PCI_ADDR_FIXUP		# fixup PCI I/O addresses
#options 	PCI_BUS_FIXUP		# fixup PCI bus numbering
#options 	PCI_INTR_FIXUP		# fixup PCI interrupt routing

# System Controllers
elansc* at mainbus? bus ?		# AMD Elan SC520 System Controller
gpio* 	at elansc?

# Temperatures
amdtemp* at pci? dev ? function ?	# AMD CPU Temperature sensors

# PCI bridges
#amdpcib* at pci? dev ? function ?	# AMD 8111 PCI-ISA w/ HPET
#hpet* 	at amdpcib?
ichlpcib* at pci? dev ? function ?	# Intel ICH PCI-ISA w/ timecounter,
					# watchdog, SpeedStep and HPET
#hpet* 	at ichlpcib?
gcscpcib* at pci? dev ? function ?	# AMD CS5535/CS5536 PCI-ISA w/
gpio* 	at gcscpcib?			# timecounter, watchdog and GPIO
#piixpcib* at pci? dev ? function ?	# Intel PIIX4 PCI-ISA w/ SpeedStep
#gscpcib* at pci? dev ? function ?	# NS Geode PCI-ISA w/ GPIO support
#viapcib* at pci? dev ? function ?	# VIA VT8235 PCI-ISA w/ SMBus support
#iic*	at viapcib?
pchb*	at pci? dev ? function ?	# PCI-Host bridges
pceb*	at pci? dev ? function ?	# PCI-EISA bridges
pcib*	at pci? dev ? function ?	# PCI-ISA bridges
pcmb*	at pci? dev ? function ?	# PCI-MCA 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

agp* 	at pchb?


# EISA bus support
eisa0	at mainbus?
eisa0	at pceb?

# ISA bus support
#isa0 	at amdpcib?
isa0 	at gcscpcib?
isa0	at ichlpcib?
#isa0	at piixpcib?
#isa0	at gscpcib?
#isa0	at viapcib?
isa0	at mainbus?
isa0	at pceb?
isa0	at pcib?

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

# MCA bus support
mca0	at mainbus?

# ISA PCMCIA controllers
pcic0	at isa? port 0x3e0 iomem 0xd0000 iosiz 0x10000
pcic1	at isa? port 0x3e2 iomem 0xe0000 iosiz 0x4000
pcic2	at isa? port 0x3e4 iomem 0xe0000 iosiz 0x4000
tcic0	at isa? port 0x240 iomem 0xd0000 iosiz 0x10000

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

# CardBus bridge support
cbb*		at pci? dev ? function ?
cardslot*	at cbb?

# CardBus bus support
cardbus*	at cardslot?
pcmcia* 	at cardslot?

# Coprocessor Support

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


# Console Devices

# wscons
pckbc0		at isa?			# pc keyboard controller
pckbd*		at pckbc?		# PC keyboard
pms*		at pckbc?		# PS/2 mouse for wsmouse
#options 	PMS_DISABLE_POWERHOOK	# Disable PS/2 reset on resume
options 	PMS_SYNAPTICS_TOUCHPAD	# Enable support for Synaptics Touchpads
vga0		at isa?
vga*		at pci? dev ? function ?
pcdisplay0	at isa?			# CGA, MDA, EGA, HGA
#machfb* 	at pci? dev ? function ? # ATI Mach64 framebuffer driver
wsdisplay*	at vga? console ?
wsdisplay*	at pcdisplay? console ?
#wsdisplay* 	at machfb? console ?
wskbd*		at pckbd? console ?
wsmouse*	at pms? mux 0

# 2010-01-07 Anne Bennett: for fancy 3D graphics support
i915drm*        at vga?         # Intel i915, i945 DRM driver

# VESA framebuffer console
#options 	KVM86			# required for vesabios
#vesabios*	at vesabiosbus?
#vesafb* 	at vesabios?
#options 	VESAFB_WIDTH=640
#options 	VESAFB_HEIGHT=480
#options 	VESAFB_DEPTH=8
#options 	VESAFB_PM		# power management support
#wsdisplay*	at vesafb? console ?

# VIA Unichrome framebuffer console
#unichromefb* 	at pci? dev ? function ?
#wsdisplay* 	at unichromefb?

attimer0	at isa?
pcppi0		at isa?
sysbeep0	at pcppi?

# Serial Devices

# PCI serial interfaces
com*	at puc? port ?			# 16x50s on "universal" comm boards
cy*	at pci? dev ? function ?	# Cyclades Cyclom-Y serial boards
cz*	at pci? dev ? function ?	# Cyclades-Z multi-port 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

# CardBus serial interfaces
com*	at cardbus? function ?	# Modems and serial cards

# 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
#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 ?
#ioat*	at isa? port 0x220 irq 5	# BOCA IOAT66 6-port serial card
#com*	at ioat? slave ?

# MCA serial interfaces
com*	at mca? slot ?			# 16x50s on comm boards

# 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

# Hardware monitors

# AMD 768 and 8111 power/ACPI controllers
amdpm*	at pci? dev ? function ?	# RNG and SMBus 1.0 interface
#iic*	at amdpm?			# sensors below are on this bus

# Intel Core's on-die Thermal sensor
options 	INTEL_CORETEMP

# Intel ICH SMBus controller
ichsmb*	at pci? dev ? function ?
iic*	at ichsmb?

# NVIDIA nForce2/3/4 SMBus controller
nfsmbc*	at pci? dev ? function ?
nfsmb*	at nfsmbc?
iic*	at nfsmb?

# Intel PIIX4 power management controllers
piixpm* at pci? dev ? function ?	# PIIX4 compatible PM controller
iic*	at piixpm?			# SMBus on PIIX4

# dbCool Thermal monitor and fan controller
#dbcool* at iic? addr 0x2C		# Unknown other motherboard(s)
#dbcool* at iic? addr 0x2D		# Tyan S2881
#dbcool* at iic? addr 0x2E		# Tyan S2882-D

# IBM Thinkpad Active Protection System
#aps0 	at isa? port 0x1600

# Fintek Super I/O with hardware monitor
#finsio0 	at isa? port 0x4e

# iTE IT87xxF Super I/O with watchdog and sensors support
#itesio0 	at isa? port 0x2e

# LM7[89] and compatible hardware monitors
#lm0	at isa?	port 0x290		# other common: 0x280, 0x310

# SMSC LPC47B397 hardware monitor functions
#smsc0	at isa? port 0x02e

# PC87366 hardware monitor
#nsclpcsio*	at isa?
#gpio*		at nsclpcsio?

# Abit uGuru Hardware system monitor
#ug0    at isa? port 0xe0

# VIA VT82C686A/VT8231 Hardware Monitor and Power Management Timer
#viaenv*	at pci? dev ? function ?

# Serial Presence Detect capable memory modules
#spdmem* at iic? addr 0x50
#spdmem* at iic? addr 0x51
#spdmem* at iic? addr 0x52
#spdmem* at iic? addr 0x53

# I2O devices
iop*	at pci? dev ? function ?	# I/O processor
iopsp*	at iop? tid ?			# SCSI/FC-AL ports
ld*	at iop? tid ?			# block devices
dpti*	at iop? tid 0			# DPT/Adaptec control interface

# GPIO devices
#gpio*	at gscpcib?

# 1-Wire support
#gpioow* 	at gpio? offset 6 mask 0x1	# 1-wire bitbanging via gpio
#onewire*	at gpioow?

# 1-Wire devices
#owtemp* 	at onewire?			# Temperature sensors

# 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 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
mfi*	at pci? dev ? function ?	# LSI MegaRAID SAS
mly*	at pci? dev ? function ?	# Mylex AcceleRAID and eXtremeRAID
mpt*	at pci? dev ? function ?	# LSI Fusion SCSI/FC
njs*	at pci? dev ? function ?	# Workbit NinjaSCSI-32
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
ahb*	at eisa? slot ?			# Adaptec 174[02] SCSI
ahc*	at eisa? slot ?			# Adaptec 274x, aic7770 SCSI
bha*	at eisa? slot ?			# BusLogic 7xx SCSI
dpt*	at eisa? slot ?			# DPT EATA SCSI
uha*	at eisa? slot ?			# UltraStor 24f SCSI

# PCMCIA SCSI controllers
aic*	at pcmcia? function ?		# Adaptec APA-1460 SCSI
esp*	at pcmcia? function ?		# Qlogic ESP406/FAS408 SCSI
spc* 	at pcmcia? function ?		# Fujitsu MB87030/MB89352 SCSI

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

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

# CardBus SCSI cards
adv*	at cardbus? function ?	# AdvanSys 1200[A,B], 9xx[U,UA] SCSI
ahc*	at cardbus? function ?	# Adaptec ADP-1480
njs*	at cardbus? function ?	# Workbit NinjaSCSI-32

# MCA SCSI cards
aha*	at mca? slot ?			# Adaptec AHA-1640

# SCSI bus support
scsibus* at scsi?

# 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
ses*	at scsibus? target ? lun ?	# SCSI Enclosure Services devices
ss*	at scsibus? target ? lun ?	# SCSI scanners
uk*	at scsibus? target ? lun ?	# SCSI unknown


# RAID controllers and devices
aac*	at pci? dev ? function ?	# Adaptec AAC family
amr*	at pci? dev ? function ?	# AMI/LSI Logic MegaRAID
arcmsr* at pci? dev ? function ?	# Areca SATA RAID controllers
cac*	at eisa? slot ?			# Compaq EISA array controllers
cac*	at pci? dev ? function ?	# Compaq PCI array controllers
ciss*	at pci? dev ? function ?	# HP Smart 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
twa*	at pci? dev ? function ?	# 3ware Escalade 95xx RAID controllers
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 icp? unit ?
ld*	at twa? unit ?
ld*	at twe? unit ?
ld*	at mlx? unit ?

icpsp*	at icp? unit ?			# SCSI pass-through

# 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
ahcisata* 	at pci? dev ? function ?	# AHCI SATA 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
gcscide* 	at pci? dev ? function ? 	# AMD CS5535 Companion IDE controllers
geodeide* 	at pci? dev ? function ?	# AMD Geode IDE controllers
hptide* 	at pci? dev ? function ?	# Triones/HighPoint IDE controllers
iteide* 	at pci? dev ? function ?	# IT Express IDE controllers
ixpide* 	at pci? dev ? function ?	# ATI IXP IDE controllers
jmide* 		at pci? dev ? function ? 	# JMicron PCI-e PATA/SATA controllers
ahcisata* 	at jmide?
optiide* 	at pci? dev ? function ?	# Opti IDE controllers
piixide* 	at pci? dev ? function ?	# Intel IDE controllers
pdcide* 	at pci? dev ? function ?	# Promise IDE controllers
pdcsata*	at pci? dev ? function ?	# Promise SATA150 controllers
rccide* 	at pci? dev ? function ?	# ServerWorks IDE controllers
satalink*	at pci? dev ? function ?	# SiI SATALink controllers
siisata*	at pci? dev ? function ?	# SiI SteelVine controllers
siside* 	at pci? dev ? function ?	# SiS IDE controllers
slide*  	at pci? dev ? function ?	# Symphony Labs IDE controllers
svwsata* 	at pci? dev ? function ?	# ServerWorks SATA controllers
stpcide*	at pci? dev ? function ?	# STMicro STPC IDE controllers
viaide* 	at pci? dev ? function ?	# VIA/AMD/Nvidia IDE controllers

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

# PCMCIA IDE controllers
wdc*	at pcmcia? function ?

# CardBus IDE controllers
njata*	at cardbus? function ? flags 0x01	# Workbit NinjaATA-32

# ISA ST506, ESDI, and IDE controllers
# Use flags 0x01 if you want to try to use 32bits data I/O (the driver will
# 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

# ATA (IDE) bus support
atabus* at ata?
options	ATADEBUG

# IDE drives
# Flags are used only with controllers that support DMA operations
# and mode settings (e.g. some pciide controllers)
# The lowest order four bits (rightmost digit) of the flags define the PIO
# mode to use, the next set of four bits the DMA mode and the third set the
# UltraDMA mode. For each set of four bits, the 3 lower bits define the mode
# to use, and the last bit must be 1 for this setting to be used.
# For DMA and UDMA, 0xf (1111) means 'disable'.
# 0x0fac means 'use PIO mode 4, DMA mode 2, disable UltraDMA'.
# (0xc=1100, 0xa=1010, 0xf=1111)
# 0x0000 means "use whatever the drive claims to support".
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
atapibus* at atapi?

# 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
st*	at atapibus? drive ? flags 0x0000	# ATAPI tape 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

# MCA ESDI devices
edc*	at mca? slot ?			# IBM ESDI Disk Controllers
ed*	at edc?


# Network Interfaces

# PCI network interfaces
an*	at pci? dev ? function ?	# Aironet PC4500/PC4800 (802.11)
ath*	at pci? dev ? function ?	# Atheros 5210/5211/5212 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
bnx* 	at pci? dev ? function ?	# Broadcom NetXtremeII gigabit Ethernet
dge*	at pci? dev ? function ?	# Intel 82597 10GbE LR
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*	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
hme*	at pci? dev ? function ?	# Sun Microelectronics STP2002-STQ
ipw*	at pci? dev ? function ?	# Intel PRO/Wireless 2100
iwi*	at pci? dev ? function ?	# Intel PRO/Wireless 2200BG
iwn*	at pci? dev ? function ?	# Intel PRO/Wireless 4965AGN
jme*	at pci? dev ? function ?	# JMicron JMC2[56]0 ethernet
le*	at pci? dev ? function ?	# PCnet-PCI Ethernet
lii*	at pci? dev ? function ?	# Atheros L2 Fast-Ethernet
lmc*	at pci? dev ? function ?	# Lan Media Corp SSI/HSSI/DS3
mskc*	at pci? dev ? function ?	# Marvell Yukon 2 Gigabit Ethernet
msk*	at mskc?			# Marvell Yukon 2 Gigabit Ethernet
mtd*	at pci? dev ? function ?	# Myson MTD803 3-in-1 Ethernet
#ndis* 	at pci? dev ? function ?	# Experimental - NDIS Network Driver
ne*	at pci? dev ? function ?	# NE2000-compatible Ethernet
nfe*	at pci?	dev ? function ?	# NVIDIA nForce Ethernet
ntwoc*	at pci? dev ? function ?	# Riscom/N2 PCI Sync Serial
pcn*	at pci? dev ? function ?	# AMD PCnet-PCI Ethernet
ral*	at pci? dev ? function ?	# Ralink Technology RT25x0 802.11a/b/g
re*	at pci? dev ? function ?	# Realtek 8139C+/8169/8169S/8110S
rtk*	at pci? dev ? function ?	# Realtek 8129/8139
rtw*	at pci? dev ? function ?	# Realtek 8180L (802.11)
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
txp*	at pci? dev ? function ?	# 3com 3cr990
vge*	at pci? dev ? function ?	# VIATech VT612X Gigabit Ethernet
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
wpi*	at pci? dev ? function ?	# Intel PRO/Wireless 3945ABG
xge*	at pci? dev ? function ?	# Neterion (S2io) Xframe-I 10GbE

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

# ISA Plug-and-Play network interfaces
an*	at isapnp?			# Aironet 802.11
ep*	at isapnp?			# 3Com 3c509 Ethernet
fmv*	at isapnp?			# Fujitsu FMV-183
le*	at isapnp?			# AMD PCnet-ISA Ethernet
ne*	at isapnp?			# NE2000-compatible Ethernet
tr*	at isapnp?			# IBM/3COM TROPIC Token-Ring

# PCMCIA network interfaces
an*	at pcmcia? function ?		# Aironet PC4500/PC4800 (802.11)
awi*	at pcmcia? function ?		# BayStack 650/660 (802.11FH/DS)
cnw*	at pcmcia? function ?		# Xircom/Netwave AirSurfer
cs*	at pcmcia? function ?		# CS89xx Ethernet
ep*	at pcmcia? function ?		# 3Com 3c589 and 3c562 Ethernet
mbe*	at pcmcia? function ?		# MB8696x based Ethernet
ne*	at pcmcia? function ?		# NE2000-compatible Ethernet
ray*	at pcmcia? function ?		# Raytheon Raylink (802.11)
sm*	at pcmcia? function ?		# Megahertz Ethernet
# tr at pcmcia has problems with Cardbus bridges
#tr*	at pcmcia? function ?		# TROPIC based Token-Ring
wi*	at pcmcia? function ?		# Lucent/Intersil WaveLan IEEE (802.11)
xirc*	at pcmcia? function ?		# Xircom CreditCard Ethernet
com*	at xirc?
xi*	at xirc?
mhzc*	at pcmcia? function ?		# Megahertz Ethernet/Modem combo cards
com*	at mhzc?
sm*	at mhzc?

# 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-181/182
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

# CardBus network cards
ath*	at cardbus? function ?	# Atheros 5210/5211/5212 802.11
atw*	at cardbus? function ?	# ADMtek ADM8211 (802.11)
ex*	at cardbus? function ?	# 3Com 3C575TX
fxp*	at cardbus? function ?	# Intel i8255x
ral*	at cardbus? function ?	# Ralink Technology RT25x0 802.11a/b/g
re*	at cardbus? function ?	# Realtek 8139C+/8169/8169S/8110S
rtk*	at cardbus? function ?	# Realtek 8129/8139
rtw*	at cardbus? function ?	# Realtek 8180L (802.11)
tlp*	at cardbus? function ?	# DECchip 21143

# MCA network cards
elmc*	at mca? slot ?			# 3Com EtherLink/MC (3c523)
ep*	at mca? slot ?			# 3Com EtherLink III (3c529)
we*	at mca? slot ?			# WD/SMC Ethernet
ate*	at mca? slot ?			# Allied Telesis AT1720
ne*	at mca? slot ?			# Novell NE/2 and clones
tr*	at mca? slot ?			# IBM Token Ring adapter
tra*	at mca? slot ?			# Tiara LANCard/E and clones
le*	at mca? slot ?			# SKNET Personal/MC2+

# 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
ciphy*	at mii? phy ?			# Cicada CS8201 Gig-E PHYs
dmphy*	at mii? phy ?			# Davicom DM9101 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
ikphy*	at mii? phy ?			# Intel 82563 PHYs
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
rgephy* at mii? phy ?			# Realtek 8169S/8110S internal PHYs
rlphy*	at mii? phy ?			# Realtek 8139/8201L 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
urlphy* at mii? phy ?			# Realtek RTL8150L internal PHYs


# USB Controller and Devices

# PCI USB controllers
ehci*	at pci?	dev ? function ?	# Enhanced Host Controller
gcscehci* at pci? dev ? function ?	# Enhanced Host Controller (Geode CSC)
ohci*	at pci?	dev ? function ?	# Open Host Controller
uhci*	at pci?	dev ? function ?	# Universal Host Controller (Intel)

# CardBus USB controllers
ehci*	at cardbus? function ?		# Enhanced Host Controller
ohci*	at cardbus? function ?		# Open Host Controller
uhci*	at cardbus? function ?		# Universal Host Controller (Intel)

# ISA USB controllers
#slhci0	at isa? port 0x300 irq 5	# ScanLogic SL811HS

# PCMCIA USB controllers
slhci*	at pcmcia? function ?		# ScanLogic SL811HS

# USB bus support
usb*	at ehci?
usb*	at gcscehci?
usb*	at ohci?
usb*	at slhci?
usb*	at uhci?

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

# USB HID device
uhidev*	at uhub? port ? configuration ? interface ?

# USB Mice
ums*	at uhidev? reportid ?
wsmouse* at ums? mux 0

# USB eGalax touch-panel
uep*	at uhub? port ?
wsmouse* at uep? mux 0

# USB Keyboards
ukbd*	at uhidev? reportid ?
wskbd*	at ukbd? console ? mux 1

# USB serial adapter
ucycom*	at uhidev? reportid ?

# USB Generic HID devices
uhid*	at uhidev? reportid ?

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

# USB Modem
umodem*	at uhub? port ? configuration ?
ucom*	at umodem?

# Huawei E220 3G/HSDPA modem
uhmodem* at uhub? port ? configuration ? interface ?
ucom*	at uhmodem? portno ?

# USB Mass Storage
umass*	at uhub? port ? configuration ? interface ?
wd*	at umass?

# USB audio
uaudio*	at uhub? port ? configuration ?

# USB MIDI
umidi* at uhub? port ? configuration ?

# USB IrDA
# USB-IrDA bridge spec
uirda* at uhub? port ? configuration ? interface ?
irframe* at uirda?

stuirda* at uhub? port ? configuration ? interface ?
irframe* at stuirda?

# SigmaTel STIr4200 USB/IrDA Bridge
ustir* at uhub? port ?
irframe* at ustir?

# USB Ethernet adapters
aue*	at uhub? port ?		# ADMtek AN986 Pegasus based adapters
axe*	at uhub? port ?		# ASIX AX88172 based adapters
cdce*	at uhub? port ?		# CDC, Ethernet Networking Control Model
cue*	at uhub? port ?		# CATC USB-EL1201A based adapters
kue*	at uhub? port ?		# Kawasaki LSI KL5KUSB101B based adapters
udav*	at uhub? port ?		# Davicom DM9601 based adapters
url*	at uhub? port ?		# Realtek RTL8150L based adapters

# USB 802.11 adapters
atu*	at uhub? port ?		# Atmel AT76C50XX based adapters
ral*	at uhub? port ?		# Ralink Technology RT25x0 802.11a/b/g
rum*	at uhub? port ?		# Ralink Technology RT2501/RT2601 802.11a/b/g
zyd*	at uhub? port ?		# Zydas ZD1211

# Prolific PL2301/PL2302 host-to-host adapter
upl*	at uhub? port ?

# Serial adapters
ubsa*	at uhub? port ?		# Belkin serial adapter
ucom*	at ubsa? portno ?

uchcom*	at uhub? port ?		# WinChipHead CH341/CH340 serial adapter
ucom*	at uchcom? portno ?

uftdi*	at uhub? port ?		# FTDI FT8U100AX serial adapter
ucom*	at uftdi? portno ?

uipaq*	at uhub? port ?		# iPAQ PDAs
ucom*	at uipaq? portno ?

umct*	at uhub? port ?		# MCT USB-RS232 serial adapter
ucom*	at umct? portno ?

uplcom* at uhub? port ? 	# I/O DATA USB-RSAQ2 serial adapter
ucom*	at uplcom? portno ?

uslsa*	at uhub? port ?		# Silicon Labs USB-RS232 serial adapter
ucom*	at uslsa? portno ?

uvscom* at uhub? port ? 	# SUNTAC Slipper U VS-10U serial adapter
ucom*	at uvscom? portno ?

# RIM BlackBerry
uberry*	at uhub? port ?

# Diamond Multimedia Rio 500
urio*	at uhub? port ?

# USB Handspring Visor
uvisor*	at uhub? port ?
ucom*	at uvisor?

# Kyocera AIR-EDGE PHONE
ukyopon* at uhub? port ?
ucom*	at ukyopon? portno ?

# USB scanners
# 2010-01-21 Anne Bennett: thought to interfere with libusb (sane)
#uscanner* at uhub? port ?

# USB scanners that use SCSI emulation, e.g., HP5300
usscanner* at uhub? port ?

# Topfield TF5000PVR range of DVB recorders
utoppy*	at uhub? port ?

# Y@P firmware loader
uyap* at uhub? port ?

# D-Link DSB-R100 USB radio
udsbr*	at uhub? port ?
radio*	at udsbr?

# USB Generic driver
ugen*	at uhub? port ?
# On ugen bulk endpoints, perform read-ahead and write-behind.
options UGEN_BULK_RA_WB

# USB 3G datacards
u3g*	at uhub? port ?
ucom*	at u3g?

# USB generic serial port (e.g., data over cellular)
ugensa*	at uhub? port ?
ucom*	at ugensa?

# IrDA and Consumer Ir devices

# Toshiba Oboe
oboe* 	at pci? dev ? function ?
irframe* at oboe?


# PCI IEEE1394 controllers
fwohci*	at pci? dev ? function ?	# IEEE1394 Open Host Controller

# CardBus IEEE1394 controllers
fwohci*	at cardbus? function ?	# IEEE1394 Open Host Controller

ieee1394if* at fwohci?
fwip*	at ieee1394if?			# IP over IEEE1394
sbp*	at ieee1394if? euihi ? euilo ?	# SCSI over IEEE1394


# Audio Devices

# PCI audio devices
auacer* at pci? dev ? function ?	# ALi M5455 integrated AC'97 Audio
auich*	at pci? dev ? function ?	# Intel ICH integrated AC'97 Audio
auixp*	at pci? dev ? function ?	# ATI IXP AC'97 Audio
autri*	at pci? dev ? function ?	# Trident 4DWAVE based AC'97 Audio
auvia*	at pci? dev ? function ?	# VIA VT82C686A integrated AC'97 Audio
azalia*	at pci? dev ? function ?	# High Definition Audio
clcs*	at pci? dev ? function ?	# Cirrus Logic CS4280
clct*	at pci? dev ? function ?	# Cirrus Logic CS4281
cmpci*	at pci? dev ? function ?	# C-Media CMI8338/8738
eap*	at pci? dev ? function ?	# Ensoniq AudioPCI
emuxki* at pci? dev ? function ?	# Creative SBLive! and PCI512
esa*	at pci? dev ? function ?	# ESS Allegro-1 / Maestro-3 PCI Audio
esm*	at pci? dev ? function ?	# ESS Maestro-1/2/2e PCI Audio Accelerator
eso*	at pci? dev ? function ?	# ESS Solo-1 PCI AudioDrive
fms*	at pci? dev ? function ?	# Forte Media FM801
neo*	at pci? dev ? function ?	# NeoMagic 256 AC'97 Audio
sv*	at pci? dev ? function ?	# S3 SonicVibes
yds*	at pci? dev ? function ?	# Yamaha DS-1 PCI Audio

# 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-SA[23] audio

# 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
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 cmpci? flags 1
opl*	at eso?
opl*	at ess?
opl*	at fms?
opl*	at sb?
opl*	at sv?
opl*	at wss?
opl*	at yds?
opl*	at ym?

# Audio support
audio*	at audiobus?

# MPU 401 UARTs
#mpu*	at isa? port 0x330 irq 9	# MPU401 or compatible card
mpu*	at isapnp?
mpu*	at cmpci?
mpu*	at eso?
mpu*	at fms?
mpu*	at sb?
mpu*	at yds?
mpu*	at ym?

# MIDI support
midi*	at midibus?
midi*	at pcppi?		# MIDI interface to the PC speaker

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


# 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

# PCI radio devices
#gtp*	at pci? dev ? function ? # Guillemot Maxi Radio FM 2000 Radio Card

# Radio support
#radio*	at az?
#radio*	at gtp?
#radio*	at rt?
#radio*	at rtii?
#radio*	at sf2r?


# Video capture devices

pseye* at uhub?			# Sony PLAYSTATION(R) Eye webcam
uvideo* at uhub?		# USB Video Class capture devices
video* at videobus?


# TV cards

# Brooktree 848/849/878/879 based TV cards
bktr* at pci? dev ? function ?
radio* at bktr?


# Bluetooth Controller and Device support

# Bluetooth PCMCIA Controllers
bt3c* at pcmcia? function ?		# 3Com 3CRWB6096-A
btbc* at pcmcia? function ?		# AnyCom BlueCard LSE041/039/139

# Bluetooth USB Controllers
ubt* at uhub? port ?

# Bluetooth Device Hub
bthub* at bcsp?
bthub* at bt3c?
bthub* at btbc?
bthub* at btuart?
bthub* at ubt?

# Bluetooth HID support
bthidev* at bthub?

# Bluetooth Mouse
btms* at bthidev? reportid ?
wsmouse* at btms? mux 0

# Bluetooth Keyboard
btkbd* at bthidev? reportid ?
wskbd* at btkbd? console ? mux 1

# Bluetooth Audio support
btsco* at bthub?


# 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
wsmouse*	at lms? mux 0
wsmouse*	at mms? mux 0


# Cryptographic Devices

# PCI cryptographic devices
glxsb*	at pci? dev ? function ?	# AMD Geode LX Security Block
hifn*	at pci? dev ? function ?	# Hifn 7755/7811/795x
ubsec*	at pci? dev ? function ?	# Broadcom 5501/5601/580x/582x


# Joysticks

#joy*	at pnpbios? index ?		# Game port

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

# PCI joysticks
joy*	at pci?				# Game ports (usually on audio cards)
#joy*	at eap?				# See CAVEATS in eap(4) before enabling
joy*	at eso?				# ESS Solo-1 on-board joystick

# ISA joysticks. Probe is a little strange; add only if you have one.
#joy0	at isa? port 0x201


# Miscellaneous Devices
geodegcb*  at pci? dev ? function ?	# Geode GCB area
geodewdog* at geodegcb? 		# AMD Geode SC1100 watchdog timer
geodecntr* at geodegcb? 		# AMD Geode SC1100 high res. counter

# Planetconnect Satellite receiver driver.
#satlink0 at isa? port 0x300 drq 1

# Middle Digital, Inc. PCI-Weasel serial console board control
# devices (watchdog timer, etc.)
weasel* at pci?

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


# Pseudo-Devices

pseudo-device 	crypto		# /dev/crypto device
pseudo-device	swcrypto	# software crypto implementation

# disk/mass storage pseudo-devices
pseudo-device	bio			# RAID control device driver
pseudo-device	ccd		4	# concatenated/striped disk devices
pseudo-device	cgd		4	# cryptographic disk devices
pseudo-device	raid		8	# RAIDframe disk driver
options 	RAID_AUTOCONFIG		# auto-configuration of RAID components
# Options to enable various other RAIDframe RAID types.
#options 	RF_INCLUDE_EVENODD=1
#options 	RF_INCLUDE_RAID5_RS=1
#options 	RF_INCLUDE_PARITYLOGGING=1
#options 	RF_INCLUDE_CHAINDECLUSTER=1
#options 	RF_INCLUDE_INTERDECLUSTER=1
#options 	RF_INCLUDE_PARITY_DECLUSTERING=1
#options 	RF_INCLUDE_PARITY_DECLUSTERING_DS=1
pseudo-device	fss		4	# file system snapshot device

pseudo-device	md		1	# memory disk device (ramdisk)
options		MEMORY_DISK_HOOKS	# enable root ramdisk
options		MEMORY_DISK_DYNAMIC	# loaded via kernel module

pseudo-device	vnd			# disk-like interface to files
options 	VND_COMPRESSION		# compressed vnd(4)

# network pseudo-devices
pseudo-device	bpfilter		# Berkeley packet filter
#pseudo-device	carp			# Common Address Redundancy Protocol
pseudo-device	ipfilter		# IP filter (firewall) and NAT
pseudo-device	loop			# network loopback
pseudo-device	ppp			# Point-to-Point Protocol
pseudo-device	pppoe			# PPP over Ethernet (RFC 2516)
pseudo-device	sl			# Serial Line IP
pseudo-device	strip			# Starmode Radio IP (Metricom)
pseudo-device	irframetty		# IrDA frame line discipline
pseudo-device	tap			# virtual Ethernet
pseudo-device	tun			# network tunneling over tty
pseudo-device	gre			# generic L3 over IP tunnel
pseudo-device	gif			# IPv[46] over IPv[46] tunnel (RFC1933)
#pseudo-device	faith			# IPv[46] tcp relay translation i/f
pseudo-device	stf			# 6to4 IPv6 over IPv4 encapsulation
pseudo-device	vlan			# IEEE 802.1q encapsulation
pseudo-device	bridge			# simple inter-network bridging
#options 	BRIDGE_IPF		# bridge uses IP/IPv6 pfil hooks too
pseudo-device	agr			# IEEE 802.3ad link aggregation
#pseudo-device	pf			# PF packet filter
#pseudo-device	pflog			# PF log if
# srt is EXPERIMENTAL
#pseudo-device	srt			# source-address-based routing

#
# accept filters
pseudo-device	accf_data		# "dataready" accept filter
pseudo-device	accf_http		# "httpready" accept filter

# miscellaneous pseudo-devices
pseudo-device	pty			# pseudo-terminals
pseudo-device	sequencer	1	# MIDI sequencer
# rnd works; RND_COM does not on port i386 yet.
pseudo-device	rnd			# /dev/random and in-kernel generator
#options 	RND_COM			# use "com" randomness as well (BROKEN)
pseudo-device	clockctl		# user control of clock subsystem
pseudo-device	ksyms			# /dev/ksyms
pseudo-device	lockstat		# lock profiling
pseudo-device	bcsp			# BlueCore Serial Protocol
pseudo-device	btuart			# Bluetooth HCI UART (H4)

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

# a pseudo device needed for SMBFS
pseudo-device	nsmb			# experimental - SMB requester

# wscons pseudo-devices
pseudo-device	wsmux			# mouse & keyboard multiplexor
pseudo-device	wsfont

# cmos(4) pseudo-device
pseudo-device	cmos

# pseudo audio device driver
pseudo-device	pad

# userland interface to drivers, including autoconf and properties retrieval
pseudo-device	drvctl

# Pass-to-Userspace TransporTER, required for puffs(4) and pud(4)
pseudo-device	putter

options 	FILEASSOC		# fileassoc(9) - required for Veriexec

# Veriexec
pseudo-device	veriexec
#
# Uncomment the fingerprint methods below that are desired. Note that
# removing fingerprint methods will have almost no impact on the kernel
# code size.
#
options VERIFIED_EXEC_FP_RMD160
options VERIFIED_EXEC_FP_SHA256
options VERIFIED_EXEC_FP_SHA384
options VERIFIED_EXEC_FP_SHA512
options VERIFIED_EXEC_FP_SHA1
options VERIFIED_EXEC_FP_MD5

options 	PAX_MPROTECT=0		# PaX mprotect(2) restrictions
options 	PAX_ASLR=0		# PaX Address Space Layout Randomization
------------------------------------------------------


>How-To-Repeat:
	Presumably, build an i386 kernel based on today's (or a recent?
        I have no way to know when the problem appeared, aside from
        "after 5.0.1 release") netbsd-5 sources and my kernel config.
        But it could be an interaction with my particular hardware.

        Let me know if there's other information I should supply:
        boot messages and so on.
>Fix:
	No idea; I'm kind of hoping the failed assertion is a clue
        for someone...

>Release-Note:

>Audit-Trail:
From: Anne Bennett <anne@porcupine.montreal.qc.ca>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: port-i386/42966: kernel built from today's netbsd-5 crashes
Date: Tue, 16 Mar 2010 11:14:53 -0400 (EDT)

 >> Synopsis:       kernel built from today's netbsd-5 crashes, related to i915 driver
 >> Arrival-Date:   Sat Mar 13 00:35:00 +0000 2010

 Just an update: I rebuilt the kernel yesterday (2010-03-15), from
 freshly CVS-updated (netbsd-5) sources, this time using "build.sh".

 No change, except that in the crash error messages, the path to the
 file ending in "uvm/uvm_pglist.c" changes from "../../../../" to
 "/disks/plain/nobackup/NetBSD-5.0.1/usr/src/sys".

 Is no one else reporting this?  I didn't think my configuration was
 unusual...

 Anne Bennett.

From: David H. Gutteridge <dhgutteridge@sympatico.ca>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: port-i386/42966: kernel built from today's netbsd-5 crashes
Date: Tue, 16 Mar 2010 21:54:38 -0400

 On 2010-03-16, at 9:35 PM, David H. Gutteridge wrote:

 >> Is no one else reporting this?  I didn't think my configuration was
 >> unusual...
 >>=20
 >> Anne Bennett.
 >=20
 > You have the diagnostic option enabled, which is non-standard; it
 > seems your kernel is hitting an assert that only fires if you've
 > compiled it to do so.  I will try and duplicate this for you.  (I'm
 > running netbsd-5 on a netbook with an Intel 945GRM without issue.)
 >=20
 > I'm also seeing strange time-keeping events since the last update I
 > made against the netbsd-5 branch, but my experience is much milder =
 than
 > yours, I just see impossible CPU times against particular programs as
 > given by ps(1) and top(1), e.g. a program that's supposedly consumed
 > almost a year of CPU time even though the machine has been up for only
 > three days.
 >=20
 > Regards,
 >=20
 > Dave

 With option DIAGNOSTIC I can reproduce this, viz.:

 i915drm0 at vga0: Intel i945GME
 panic: kernel diagnostic assertion "(boundary & (boundary - 1)) =3D=3D =
 0" failed: file "/home/disciple/netbsd-5/usr/src/sys/uvm/uvm_pglist.c", =
 line 403
 fatal breakpoint trap in supervisor mode
 trap type 1 code 0 eip c03fdd1c cs 8 eflags 246 cr2 0 ilevel 8

 Disabling the option in question should allow your kernel to boot
 normally.

 Dave

 PS Somehow I made up an Intel "945GRM", scary.=

From: "David H. Gutteridge" <dhgutteridge@sympatico.ca>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: port-i386/42966: kernel built from today's netbsd-5 crashes
Date: Tue, 16 Mar 2010 21:35:49 -0400

 >Is no one else reporting this?  I didn't think my configuration was
 >unusual...
 >
 >Anne Bennett.

 You have the diagnostic option enabled, which is non-standard; it
 seems your kernel is hitting an assert that only fires if you've
 compiled it to do so.  I will try and duplicate this for you.  (I'm
 running netbsd-5 on a netbook with an Intel 945GRM without issue.)

 I'm also seeing strange time-keeping events since the last update I
 made against the netbsd-5 branch, but my experience is much milder than
 yours, I just see impossible CPU times against particular programs as
 given by ps(1) and top(1), e.g. a program that's supposedly consumed
 almost a year of CPU time even though the machine has been up for only
 three days.

 Regards,

 Dave

From: Anne Bennett <anne@porcupine.montreal.qc.ca>
To: gnats-bugs@NetBSD.org
Cc: port-i386-maintainer@NetBSD.org, gnats-admin@NetBSD.org,
    netbsd-bugs@NetBSD.org
Subject: Re: port-i386/42966: kernel built from today's netbsd-5 crashes
Date: Wed, 17 Mar 2010 05:45:03 -0400

 >> You have the diagnostic option enabled, which is non-standard; it
 >> seems your kernel is hitting an assert that only fires if you've
 >> compiled it to do so.

 >  With option DIAGNOSTIC I can reproduce this, viz.: [...]
 >  Disabling the option in question should allow your kernel to boot
 >  normally.

 I can certainly try that (probably tomorrow), but I'd like to add
 that I didn't just add DIAGNOSTIC when I updated the kernel; that
 option was in force on my 5.0.1 kernel and did not cause a problem.

 I'm concerned that just turning off DIAGNOSTIC will simply mask a
 problem; I hope that the bug can actually be found and squashed.

 But thanks for the workaround; it should allow me to run with
 the "2010-003" security advisory addressed, which is good.

 >> I'm also seeing strange time-keeping events since the last update I
 >> made against the netbsd-5 branch, but my experience is much milder than
 >> yours, I just see impossible CPU times against particular programs as
 >> given by ps(1) and top(1), e.g. a program that's supposedly consumed
 >> almost a year of CPU time even though the machine has been up for only
 >> three days.

 Weird.  I wonder if it's some kind of clue that the oddities I saw
 happened with the *old* kernel, but booted by name "/netbsd.old";
 I'm somewhat ignorant of how this works, but could something be
 being picked up from "/netbsd" (the new kernel) even when this is
 not the booted kernel?

 That reminds me to report, though I doubt it's relevant: I did make
 one change to /etc/sysctl.conf back in January:

   # 2010-01-12 Anne Bennett: need more files, especially when running
   #  a large compilation.  This is previous value * 4:
   kern.maxfiles=26672


 Anne.
 -- 
 Ms. Anne Bennett, as a private citizen:  anne@porcupine.montreal.qc.ca
 Also reachable more officially at work:  anne@encs.concordia.ca

From: David Holland <dholland-bugs@netbsd.org>
To: gnats-bugs@NetBSD.org
Cc: anne@porcupine.montreal.qc.ca
Subject: Re: port-i386/42966: kernel built from today's netbsd-5 crashes
Date: Wed, 17 Mar 2010 19:19:41 +0000

 On Wed, Mar 17, 2010 at 09:50:05AM +0000, Anne Bennett wrote:
  >  I can certainly try that (probably tomorrow), but I'd like to add
  >  that I didn't just add DIAGNOSTIC when I updated the kernel; that
  >  option was in force on my 5.0.1 kernel and did not cause a problem.
  >  
  >  I'm concerned that just turning off DIAGNOSTIC will simply mask a
  >  problem; I hope that the bug can actually be found and squashed.

 Turning off DIAGNOSTIC will, however, make your machine run a lot
 faster. (Once upon a time, DIAGNOSTIC was supposed to be cheap and
 only DEBUG was expensive; however, that's no longer true.)

  >  Weird.  I wonder if it's some kind of clue that the oddities I saw
  >  happened with the *old* kernel, but booted by name "/netbsd.old";
  >  I'm somewhat ignorant of how this works, but could something be
  >  being picked up from "/netbsd" (the new kernel) even when this is
  >  not the booted kernel?

 Nothing of importance should be. (Stuff like crash dump tools might
 look at /netbsd by default, but that shouldn't be relevant.)

 Was the weirdness you saw repeatable, or persist after a hard reset or
 power cycle? If it just happened once after you had the kernel problem
 it's quite possible that the bad kernel left the machine in a strange
 state.

 Does anyone know if the DIAGNOSTIC + intel graphics thing happens in
 current or 5.0_STABLE?

 -- 
 David A. Holland
 dholland@netbsd.org

From: matthew green <mrg@eterna.com.au>
To: gnats-bugs@NetBSD.org
Cc: port-i386-maintainer@netbsd.org, gnats-admin@netbsd.org,
    netbsd-bugs@netbsd.org, anne@porcupine.montreal.qc.ca
Subject: re: port-i386/42966: kernel built from today's netbsd-5 crashes
Date: Thu, 18 Mar 2010 13:08:31 +1100


      >  I'm concerned that just turning off DIAGNOSTIC will simply mask a
      >  problem; I hope that the bug can actually be found and squashed.

     Turning off DIAGNOSTIC will, however, make your machine run a lot
     faster. (Once upon a time, DIAGNOSTIC was supposed to be cheap and
     only DEBUG was expensive; however, that's no longer true.)

 says who?

 at least on sparc64 DIAGNOSTIC causes only a few percent of performance
 loss.  the worst case i found -- ./configure -- averaged at 7% loss,
 but most things were 1-3%.


 anne, 

 you could probably avoid this assert by disabling i915drm as well.  this
 also looks like it might be the same problem as in PR/42980, but with
 a different caller.


 .mrg.

From: matthew green <mrg@eterna.com.au>
To: port-i386-maintainer@netbsd.org, gnats-admin@netbsd.org,
    netbsd-bugs@netbsd.org, anne@porcupine.montreal.qc.ca,
    gnats-bugs@NetBSD.org,
    "David H. Gutteridge" <dhgutteridge@sympatico.ca>
Cc: 
Subject: re: port-i386/42966: kernel built from today's netbsd-5 crashes
Date: Thu, 18 Mar 2010 13:28:23 +1100

 OK, this one pretty dumb...  and i think we've debugged it before and
 failed to figure out a nice solution.

 it comes from this call in i915_dma.c:

 	drm_pci_alloc(dev, PAGE_SIZE, PAGE_SIZE, 0xffffffff);

 and the final argument is passed as the boundary.  notice how it is
 not a power of two?  it really wants to be 0x1.0000.0000.


 anne, david, can one of you try changing this to 0?  or if you have
 2GB of ram or less, try 0x80000000...


 .mrg.

From: Anne Bennett <anne@porcupine.montreal.qc.ca>
To: matthew green <mrg@eterna.com.au>
Cc: port-i386-maintainer@netbsd.org, gnats-admin@netbsd.org,
    netbsd-bugs@netbsd.org, gnats-bugs@netbsd.org,
    "David H. Gutteridge" <dhgutteridge@sympatico.ca>
Subject: Re: port-i386/42966: kernel built from today's netbsd-5 crashes
Date: Wed, 17 Mar 2010 23:40:10 -0400

 Matthew,

 Thanks for looking into this.

 > it comes from this call in i915_dma.c:
 > 
 > 	drm_pci_alloc(dev, PAGE_SIZE, PAGE_SIZE, 0xffffffff);
 > 
 > and the final argument is passed as the boundary.  notice how it is
 > not a power of two?  it really wants to be 0x1.0000.0000.
 > 
 > anne, david, can one of you try changing this to 0?  or if you have
 > 2GB of ram or less, try 0x80000000...

 Kernel says:
   total memory = 2038 MB
   avail memory = 1991 MB

 Any preference as to whether I try 0x80000000 or 0x0 (to replace
 0xffffffff, I assume)?  Which one are you hoping to patch to in
 the end?

 Meanwhile, I have two files "i915_dma.c" with different contents:
    (1) /usr/src/sys/dev/pci/drm/i915_dma.c
    (2) /usr/src/sys/external/bsd/drm/dist/shared-core/i915_dma.c

 and both have statements like the one above:

 (1)
         /* Program Hardware Status Page */
         dev_priv->status_page_dmah = drm_pci_alloc(dev, PAGE_SIZE, PAGE_SIZE,
             0xffffffff);

 (2)
         /* Program Hardware Status Page */
         DRM_UNLOCK();
         dev_priv->status_page_dmah =
                 drm_pci_alloc(dev, PAGE_SIZE, PAGE_SIZE, 0xffffffff);
         DRM_LOCK();

 ... do I change both?

 Anne.
 -- 
 Ms. Anne Bennett, as a private citizen:  anne@porcupine.montreal.qc.ca
 Also reachable more officially at work:  anne@encs.concordia.ca

From: matthew green <mrg@eterna.com.au>
To: Anne Bennett <anne@porcupine.montreal.qc.ca>
Cc: port-i386-maintainer@netbsd.org, gnats-admin@netbsd.org,
    netbsd-bugs@netbsd.org, gnats-bugs@netbsd.org,
    "David H. Gutteridge" <dhgutteridge@sympatico.ca>
Subject: re: port-i386/42966: kernel built from today's netbsd-5 crashes
Date: Thu, 18 Mar 2010 15:30:32 +1100


    > it comes from this call in i915_dma.c:
    > 
    > 	drm_pci_alloc(dev, PAGE_SIZE, PAGE_SIZE, 0xffffffff);
    > 
    > and the final argument is passed as the boundary.  notice how it is
    > not a power of two?  it really wants to be 0x1.0000.0000.
    > 
    > anne, david, can one of you try changing this to 0?  or if you have
    > 2GB of ram or less, try 0x80000000...

    Kernel says:
      total memory = 2038 MB
      avail memory = 1991 MB

    Any preference as to whether I try 0x80000000 or 0x0 (to replace
    0xffffffff, I assume)?  Which one are you hoping to patch to in
    the end?

 nope.

    Meanwhile, I have two files "i915_dma.c" with different contents:
       (1) /usr/src/sys/dev/pci/drm/i915_dma.c
       (2) /usr/src/sys/external/bsd/drm/dist/shared-core/i915_dma.c

 it's the 2nd one.  the old code is ... no longer used.  however,
 i think this patch might be something that works and is correct,
 but since i don't have intel drm i can't test it.  (it does compile :)


 thanks,

 .mrg.



 Index: bsd-core/drmP.h
 ===================================================================
 RCS file: /cvsroot/src/sys/external/bsd/drm/dist/bsd-core/drmP.h,v
 retrieving revision 1.9.10.3
 diff -p -r1.9.10.3 drmP.h
 *** bsd-core/drmP.h	30 Jan 2010 19:41:19 -0000	1.9.10.3
 --- bsd-core/drmP.h	18 Mar 2010 04:28:20 -0000
 *************** extern struct drm_device *drm_units[];
 *** 310,322 ****
   #define PCIY_EXPRESS	0x10
   #endif

 - typedef unsigned long dma_addr_t;
   #if defined(__FreeBSD__)
   typedef u_int64_t u64;
   typedef u_int32_t u32;
   typedef u_int16_t u16;
   typedef u_int8_t u8;
   #else
   typedef uint64_t u64;
   typedef uint32_t u32;
   typedef uint16_t u16;
 --- 310,323 ----
   #define PCIY_EXPRESS	0x10
   #endif

   #if defined(__FreeBSD__)
 + typedef unsigned long dma_addr_t;
   typedef u_int64_t u64;
   typedef u_int32_t u32;
   typedef u_int16_t u16;
   typedef u_int8_t u8;
   #else
 + typedef bus_addr_t dma_addr_t;
   typedef uint64_t u64;
   typedef uint32_t u32;
   typedef uint16_t u16;
 Index: bsd-core/drm_pci.c
 ===================================================================
 RCS file: /cvsroot/src/sys/external/bsd/drm/dist/bsd-core/drm_pci.c,v
 retrieving revision 1.4.10.1
 diff -p -r1.4.10.1 drm_pci.c
 *** bsd-core/drm_pci.c	20 Jun 2009 23:36:59 -0000	1.4.10.1
 --- bsd-core/drm_pci.c	18 Mar 2010 04:28:20 -0000
 *************** drm_pci_alloc(struct drm_device *dev, si
 *** 112,118 ****
   #elif   defined(__NetBSD__)
   	dmah->tag = dev->pa.pa_dmat;

 ! 	if ((ret = bus_dmamem_alloc(dmah->tag, size, align, maxaddr,
   	    dmah->segs, 1, &nsegs, BUS_DMA_WAITOK)) != 0) {
   		printf("drm: Unable to allocate %zu bytes of DMA, error %d\n",
   		    size, ret);
 --- 112,118 ----
   #elif   defined(__NetBSD__)
   	dmah->tag = dev->pa.pa_dmat;

 ! 	if ((ret = bus_dmamem_alloc(dmah->tag, size, align, maxaddr+1,
   	    dmah->segs, 1, &nsegs, BUS_DMA_WAITOK)) != 0) {
   		printf("drm: Unable to allocate %zu bytes of DMA, error %d\n",
   		    size, ret);
 *************** drm_pci_alloc(struct drm_device *dev, si
 *** 136,142 ****
   		free(dmah, DRM_MEM_DMA);
   		return NULL;
   	}
 ! 	if ((ret = bus_dmamap_create(dmah->tag, size, 1, size, maxaddr,
   	     BUS_DMA_NOWAIT, &dmah->map)) != 0) {
   		printf("drm: Unable to create DMA map, error %d\n", ret);
   		bus_dmamem_unmap(dmah->tag, dmah->vaddr, size);
 --- 136,142 ----
   		free(dmah, DRM_MEM_DMA);
   		return NULL;
   	}
 ! 	if ((ret = bus_dmamap_create(dmah->tag, size, 1, size, maxaddr+1,
   	     BUS_DMA_NOWAIT, &dmah->map)) != 0) {
   		printf("drm: Unable to create DMA map, error %d\n", ret);
   		bus_dmamem_unmap(dmah->tag, dmah->vaddr, size);

From: christos@zoulas.com (Christos Zoulas)
To: Anne Bennett <anne@porcupine.montreal.qc.ca>, 
	matthew green <mrg@eterna.com.au>
Cc: port-i386-maintainer@netbsd.org, gnats-admin@netbsd.org, 
	netbsd-bugs@netbsd.org, gnats-bugs@netbsd.org, 
	"David H. Gutteridge" <dhgutteridge@sympatico.ca>
Subject: Re: port-i386/42966: kernel built from today's netbsd-5 crashes
Date: Thu, 18 Mar 2010 08:40:14 -0400

 On Mar 17, 11:40pm, anne@porcupine.montreal.qc.ca (Anne Bennett) wrote:
 -- Subject: Re: port-i386/42966: kernel built from today's netbsd-5 crashes

 | 
 | Matthew,
 | 
 | Thanks for looking into this.
 | 
 | > it comes from this call in i915_dma.c:
 | > 
 | > 	drm_pci_alloc(dev, PAGE_SIZE, PAGE_SIZE, 0xffffffff);
 | > 
 | > and the final argument is passed as the boundary.  notice how it is
 | > not a power of two?  it really wants to be 0x1.0000.0000.
 | > 
 | > anne, david, can one of you try changing this to 0?  or if you have
 | > 2GB of ram or less, try 0x80000000...
 | 
 | Kernel says:
 |   total memory = 2038 MB
 |   avail memory = 1991 MB
 | 
 | Any preference as to whether I try 0x80000000 or 0x0 (to replace
 | 0xffffffff, I assume)?  Which one are you hoping to patch to in
 | the end?
 | 
 | Meanwhile, I have two files "i915_dma.c" with different contents:
 |    (1) /usr/src/sys/dev/pci/drm/i915_dma.c
 |    (2) /usr/src/sys/external/bsd/drm/dist/shared-core/i915_dma.c

 See revision 1.2 of that file which explains what is going on. Drochner backed
 it out for some reason...

 christos

From: Anne Bennett <anne@porcupine.montreal.qc.ca>
To: gnats-bugs@NetBSD.org
Cc: port-i386-maintainer@NetBSD.org, gnats-admin@NetBSD.org,
    netbsd-bugs@NetBSD.org
Subject: Re: port-i386/42966: kernel built from today's netbsd-5 crashes
Date: Thu, 18 Mar 2010 14:12:28 -0400

 David Holland <dholland-bugs@netbsd.org>:

 (For completeness, with respect to time slowing down and mouse
 selections going wonky in the old kernel booted "by name":)
 >  Was the weirdness you saw repeatable, or persist after a hard reset or
 >  power cycle? If it just happened once after you had the kernel problem
 >  it's quite possible that the bad kernel left the machine in a strange
 >  state.

 It stopped when I rebooted into the old kernel under the name
 /netbsd.  If it had happened only once I would have written it off,
 but the sequence of events was:

   1 Put new kernel in place as /netbsd, move old one to /netbsd.old .
   2 "shutdown -r now", machine crashes while booting, select "reboot"
     from db> prompt, which seems to cause a hard reset (machine goes
     through the BIOS's "discover devices" sequence).
   3 Boot into /netbsd.old by name.
   4 Weirdness occurs, but am able to put old kernel back as /netbsd .
   5 "shutdown -r now" (I think it crashed during shutdown, but I'm not
     sure I remember this part accurately).
   6 Boot into old kernel in normal location; all's well.

   7 Try again to build new kernel after removing old object files.
   8 Repeat steps 1-6 exactly.

 So it happened twice, and both times the weirdness occurred while
 I was booted into the old kernel using the name /netbsd.old, and
 stopped after I rebooted into the the old kernel using the name
 /netbsd.  The name may be a red herring; I did not have the patience
 to try, say, booting twice in a row into /netbsd.old.

 Anyway, this is just to answer your question for completeness; it
 is probably unrelated to the "i915 crash".  I am about to try
 building a new kernel using all the advice I've received over the
 past 2 days...


 Anne.
 -- 
 Ms. Anne Bennett, as a private citizen:  anne@porcupine.montreal.qc.ca
 Also reachable more officially at work:  anne@encs.concordia.ca

From: Anne Bennett <anne@porcupine.montreal.qc.ca>
To: gnats-bugs@NetBSD.org
Cc: port-i386-maintainer@NetBSD.org, gnats-admin@NetBSD.org,
    netbsd-bugs@NetBSD.org
Subject: Re: port-i386/42966: kernel built from today's netbsd-5 crashes
Date: Thu, 18 Mar 2010 15:30:47 -0400

 Okay, the options suggested to me so far have been:

 1) David H. Gutteridge: disable option DIAGNOSTIC

 2) matthew green #1: disable i915drm

 3) matthew green #2:
      change drm_pci_alloc(dev, PAGE_SIZE, PAGE_SIZE, 0xffffffff);
      to     drm_pci_alloc(dev, PAGE_SIZE, PAGE_SIZE, 0x0);
      or     drm_pci_alloc(dev, PAGE_SIZE, PAGE_SIZE, 0x80000000);
      in /usr/src/sys/external/bsd/drm/dist/shared-core/i915_dma.c

 4) matthew green #3: Try supplied patches to
      /src/sys/external/bsd/drm/dist/bsd-core/drmP.h    (1.9.10.3)
      /src/sys/external/bsd/drm/dist/bsd-core/drm_pci.c (1.4.10.1)

 5) Christos Zoulas: see revision 1.2 of
      /usr/src/sys/external/bsd/drm/dist/shared-core/i915_dma.c
      to find out what's going on (and revert to that version???)


 I selected option 4, and applied the two patches, which seem to
 fix data types and an off-by-one error.  I booted successfully into
 the new kernel, and here I am on the machine, which seems to be
 behaving mostly normally.  Yay!  :-)   Thank you.

 The only abnormal thing I notice is more disk activity than I expect
 at the moment: "top" shows "[system]" using about 35% of CPU, and 
 RAID parity status is "dirty" and currently being reconstructed.
 Since my shutdown was clean, this is puzzling.

 I'm comparing the old boot messages with the new ones, and, setting
 aside expected changes (kernel id lines), meaningless changes (minor
 differences in reported memory, CPU speed, and time frequency), the
 fact that some messages which used to take two lines are now
 compressed onto one, and USB devices "moving around", I see (not
 in order, grouped by type):

     < i915drm0 at vga1: Intel i945G (unit 0)
     > i915drm0 at vga1: Intel i945G

     < i915drm0: Initialized i915 1.5.0 20060119
     > i915drm0: Initialized i915 1.6.0 20080730

     < audio0 at azalia0: full duplex, independent
     > audio0 at azalia0: full duplex, playback, capture, independent

     < audio1 at pad0: half duplex
     > audio1 at pad0: half duplex, playback, capture

     < wd1: quirks 2<FORCE_LBA48>

     > raid0: cooldown 1168701999 out of range

 Most of those look like the result of improved reporting or version
 changes.  The last two puzzle me, especially "cooldown out of range",
 and especially since my RAID parity is currently being rebuilt for
 (as far as I know) no good reason.  How worried should I be?


 Anne.
 -- 
 Ms. Anne Bennett, as a private citizen:  anne@porcupine.montreal.qc.ca
 Also reachable more officially at work:  anne@encs.concordia.ca

From: David Holland <dholland-bugs@netbsd.org>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: port-i386/42966: kernel built from today's netbsd-5 crashes
Date: Thu, 18 Mar 2010 22:26:47 +0000

 On Thu, Mar 18, 2010 at 02:10:05AM +0000, matthew green wrote:
  >      Turning off DIAGNOSTIC will, however, make your machine run a lot
  >      faster. (Once upon a time, DIAGNOSTIC was supposed to be cheap and
  >      only DEBUG was expensive; however, that's no longer true.)
  >  
  >  says who?
  >  
  >  at least on sparc64 DIAGNOSTIC causes only a few percent of performance
  >  loss.  the worst case i found -- ./configure -- averaged at 7% loss,
  >  but most things were 1-3%.

 It was the conventional wisdom a year or two ago, if not longer. Note
 that i386 GENERIC (and others) were changed to describe it as
 "expensive" instead of the traditional "cheap" at some point.

 Last I tried (on amd64) it was horrifying but I'm told that this has
 since been fixed.

 anyway, this is tangential.

 -- 
 David A. Holland
 dholland@netbsd.org

From: David Holland <dholland-bugs@netbsd.org>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: port-i386/42966: kernel built from today's netbsd-5 crashes
Date: Thu, 18 Mar 2010 22:34:08 +0000

 On Thu, Mar 18, 2010 at 06:15:07PM +0000, Anne Bennett wrote:
  >  It stopped when I rebooted into the old kernel under the name
  >  /netbsd.  If it had happened only once I would have written it off,
  >  but the sequence of events was:
  >  
  > [snip]

 That sounds like the crash deterministically left the hardware in a
 bogus state. That's far more likely than anything being sensitive to
 the kernel name. (Ideally this kind of thing wouldn't happen, but I
 wouldn't worry about it as long as it goes away after a reset.)

 -- 
 David A. Holland
 dholland@netbsd.org

From: "David H. Gutteridge" <dhgutteridge@sympatico.ca>
To: matthew green <mrg@eterna.com.au>
Cc: gnats-bugs@netbsd.org
Subject: Re: port-i386/42966: kernel built from today's netbsd-5 crashes
Date: Thu, 18 Mar 2010 20:21:02 -0400

 On Thu, 18 Mar 2010 15:30:32 +1100, matthew green wrote:
 >i think this patch might be something that works and is correct,
 >but since i don't have intel drm i can't test it.  (it does compile :)

 Confirming I can boot with DIAGNOSTIC enabled without hitting that
 assertion now, thanks to the patches provided.

 Dave

From: matthew green <mrg@eterna.com.au>
To: Anne Bennett <anne@porcupine.montreal.qc.ca>
Cc: port-i386-maintainer@NetBSD.org, gnats-admin@NetBSD.org,
    netbsd-bugs@NetBSD.org, gnats-bugs@NetBSD.org,
    "David H. Gutteridge" <dhgutteridge@sympatico.ca>
Subject: re: port-i386/42966: kernel built from today's netbsd-5 crashes
Date: Fri, 19 Mar 2010 13:01:30 +1100

 unfortunately, none of the ideas changes are "right".  this is partly
 fixed in -current already, but there are two places to fix.  thanks to
 matthias drochner for helping me understand all the parts..

 this patch should work for netbsd-5.  i'll work on getting the 2nd
 part fixed up for -current as well, and submit a pullup.


 .mrg.


 Index: bsd-core/drm_pci.c
 ===================================================================
 RCS file: /cvsroot/src/sys/external/bsd/drm/dist/bsd-core/drm_pci.c,v
 retrieving revision 1.4.10.1
 diff -p -r1.4.10.1 drm_pci.c
 *** bsd-core/drm_pci.c	20 Jun 2009 23:36:59 -0000	1.4.10.1
 --- bsd-core/drm_pci.c	19 Mar 2010 01:59:10 -0000
 *************** drm_pci_alloc(struct drm_device *dev, si
 *** 110,118 ****
   		return NULL;
   	}
   #elif   defined(__NetBSD__)
   	dmah->tag = dev->pa.pa_dmat;

 ! 	if ((ret = bus_dmamem_alloc(dmah->tag, size, align, maxaddr,
   	    dmah->segs, 1, &nsegs, BUS_DMA_WAITOK)) != 0) {
   		printf("drm: Unable to allocate %zu bytes of DMA, error %d\n",
   		    size, ret);
 --- 110,119 ----
   		return NULL;
   	}
   #elif   defined(__NetBSD__)
 + 	KASSERT(maxaddr >= 0xffffffffUL); /* no way to tell bus_dma_alloc */
   	dmah->tag = dev->pa.pa_dmat;

 ! 	if ((ret = bus_dmamem_alloc(dmah->tag, size, align, 0,
   	    dmah->segs, 1, &nsegs, BUS_DMA_WAITOK)) != 0) {
   		printf("drm: Unable to allocate %zu bytes of DMA, error %d\n",
   		    size, ret);
 *************** drm_pci_alloc(struct drm_device *dev, si
 *** 136,142 ****
   		free(dmah, DRM_MEM_DMA);
   		return NULL;
   	}
 ! 	if ((ret = bus_dmamap_create(dmah->tag, size, 1, size, maxaddr,
   	     BUS_DMA_NOWAIT, &dmah->map)) != 0) {
   		printf("drm: Unable to create DMA map, error %d\n", ret);
   		bus_dmamem_unmap(dmah->tag, dmah->vaddr, size);
 --- 137,143 ----
   		free(dmah, DRM_MEM_DMA);
   		return NULL;
   	}
 ! 	if ((ret = bus_dmamap_create(dmah->tag, size, 1, size, 0,
   	     BUS_DMA_NOWAIT, &dmah->map)) != 0) {
   		printf("drm: Unable to create DMA map, error %d\n", ret);
   		bus_dmamem_unmap(dmah->tag, dmah->vaddr, size);

From: Anne Bennett <anne@porcupine.montreal.qc.ca>
To: matthew green <mrg@eterna.com.au>
Cc: port-i386-maintainer@NetBSD.org, gnats-admin@NetBSD.org,
    netbsd-bugs@NetBSD.org, gnats-bugs@NetBSD.org,
    "David H. Gutteridge" <dhgutteridge@sympatico.ca>
Subject: Re: port-i386/42966: kernel built from today's netbsd-5 crashes
Date: Thu, 18 Mar 2010 22:14:33 -0400

 > unfortunately, none of the ideas changes are "right".  this is partly
 > fixed in -current already, but there are two places to fix.  thanks to
 > matthias drochner for helping me understand all the parts..
 > 
 > this patch should work for netbsd-5.

 This one is in addition to the two you sent before, or instead of?


 Anne.
 -- 
 Ms. Anne Bennett, as a private citizen:  anne@porcupine.montreal.qc.ca
 Also reachable more officially at work:  anne@encs.concordia.ca

From: matthew green <mrg@eterna.com.au>
To: Anne Bennett <anne@porcupine.montreal.qc.ca>
Cc: port-i386-maintainer@NetBSD.org, gnats-admin@NetBSD.org,
    netbsd-bugs@NetBSD.org, gnats-bugs@NetBSD.org,
    "David H. Gutteridge" <dhgutteridge@sympatico.ca>
Subject: re: port-i386/42966: kernel built from today's netbsd-5 crashes
Date: Fri, 19 Mar 2010 14:21:53 +1100


    > unfortunately, none of the ideas changes are "right".  this is partly
    > fixed in -current already, but there are two places to fix.  thanks to
    > matthias drochner for helping me understand all the parts..
    > 
    > this patch should work for netbsd-5.

    This one is in addition to the two you sent before, or instead of?

 instead of.  thanks!


 .mrg.

From: Anne Bennett <anne@porcupine.montreal.qc.ca>
To: matthew green <mrg@eterna.com.au>
Cc: port-i386-maintainer@NetBSD.org, gnats-admin@NetBSD.org,
    netbsd-bugs@NetBSD.org, gnats-bugs@NetBSD.org,
    "David H. Gutteridge" <dhgutteridge@sympatico.ca>
Subject: Re: port-i386/42966: kernel built from today's netbsd-5 crashes
Date: Fri, 19 Mar 2010 21:03:20 -0400

 > unfortunately, none of the ideas changes are "right".  this is partly
 > fixed in -current already, but there are two places to fix.  thanks to
 > matthias drochner for helping me understand all the parts..
 > 
 > this patch should work for netbsd-5.  i'll work on getting the 2nd
 > part fixed up for -current as well, and submit a pullup.

 I have backed out of the earlier patches to drmP.h and drm_pci.c,
 and have applied your new patch to drm_pci.c.  The resulting kernel
 boots; here I am using it.

 Boot message oddities (modulo the USB devices dancing to different
 numbers again):

   - I still get this one, and I wish I knew what it meant:

     raid0: cooldown 1168701999 out of range

   - These changes make me wonder whether there's a wrong type
     definition somewhere:

     < cpu0 at mainbus0 apid 0: Intel 686-class, 3000MHz, id 0xf65
     < cpu1 at mainbus0 apid 1: Intel 686-class, 3000MHz, id 0xf65

     > cpu0 at mainbus0 apid 0: Intel 686-class, 129638MHz, id 0xf65
     > cpu1 at mainbus0 apid 1: Intel 686-class, 129638MHz, id 0xf65

     and:

     < timecounter: Timecounter "TSC" frequency 3000980550 Hz quality
     > ERROR: 2362 cycle TSC drift observed

 Hmm, I did this as an update, but when I restored the original
 drmP.h, I got the old file timestamp.  I suspect I should "touch" 
 both files and recompile again.

 Will do ASAP; supper time now!


 Anne.
 -- 
 Ms. Anne Bennett, as a private citizen:  anne@porcupine.montreal.qc.ca
 Also reachable more officially at work:  anne@encs.concordia.ca

From: matthew green <mrg@eterna.com.au>
To: Anne Bennett <anne@porcupine.montreal.qc.ca>
Cc: port-i386-maintainer@NetBSD.org, gnats-admin@NetBSD.org,
    netbsd-bugs@NetBSD.org, gnats-bugs@NetBSD.org,
    "David H. Gutteridge" <dhgutteridge@sympatico.ca>
Subject: re: port-i386/42966: kernel built from today's netbsd-5 crashes
Date: Sat, 20 Mar 2010 13:46:40 +1100


    > unfortunately, none of the ideas changes are "right".  this is partly
    > fixed in -current already, but there are two places to fix.  thanks to
    > matthias drochner for helping me understand all the parts..
    > 
    > this patch should work for netbsd-5.  i'll work on getting the 2nd
    > part fixed up for -current as well, and submit a pullup.

    I have backed out of the earlier patches to drmP.h and drm_pci.c,
    and have applied your new patch to drm_pci.c.  The resulting kernel
    boots; here I am using it.

 great.  i'll commit the changes ask for pullups, but i do *not*
 believe this change will make netbsd 5.1.  keep it local for now.

    Boot message oddities (modulo the USB devices dancing to different
    numbers again):

      - These changes make me wonder whether there's a wrong type
        definition somewhere:

        < cpu0 at mainbus0 apid 0: Intel 686-class, 3000MHz, id 0xf65
        < cpu1 at mainbus0 apid 1: Intel 686-class, 3000MHz, id 0xf65

        > cpu0 at mainbus0 apid 0: Intel 686-class, 129638MHz, id 0xf65
        > cpu1 at mainbus0 apid 1: Intel 686-class, 129638MHz, id 0xf65

 i don't know about the other things, but i see something like this
 on my core2 box:

 cpu0 at mainbus0 apid 0: Intel 686-class, 42028MHz, id 0x10677

 when it should say 2660MHz.  this is also with netbsd-5 branch.


 .mrg.

From: Anne Bennett <anne@porcupine.montreal.qc.ca>
To: gnats-bugs@NetBSD.org
Cc: port-i386-maintainer@NetBSD.org, gnats-admin@NetBSD.org,
    netbsd-bugs@NetBSD.org
Subject: Re: port-i386/42966: kernel built from today's netbsd-5 crashes
Date: Fri, 19 Mar 2010 23:11:48 -0400

 >> I have backed out of the earlier patches to drmP.h and drm_pci.c,
 >> and have applied your new patch to drm_pci.c.  The resulting kernel
 >> boots; here I am using it.
 >  
 >  great.  i'll commit the changes ask for pullups, but i do *not*
 >  believe this change will make netbsd 5.1.  keep it local for now.

 Would they go to 5.1 with a kernel that's known to crash on boot
 when DIAGNOSTICS are on?  (5.0.1 RELEASE definitely did not have
 this problem.)  Well, anyway, that's just a rhetorical question.

 >> Boot message oddities (modulo the USB devices dancing to different
 >> numbers again):
 >> 
 >>   - These changes make me wonder whether there's a wrong type
 >>     definition somewhere:
 >> 
 >>     < cpu0 at mainbus0 apid 0: Intel 686-class, 3000MHz, id 0xf65
 >>     < cpu1 at mainbus0 apid 1: Intel 686-class, 3000MHz, id 0xf65
 >> 
 >>     > cpu0 at mainbus0 apid 0: Intel 686-class, 129638MHz, id 0xf65
 >>     > cpu1 at mainbus0 apid 1: Intel 686-class, 129638MHz, id 0xf65

 Yup, I touched the two files and rebuilt, and it's back to normal.
 All's well now!

 Thanks very much for your help on this!


 Anne.
 -- 
 Ms. Anne Bennett, as a private citizen:  anne@porcupine.montreal.qc.ca
 Also reachable more officially at work:  anne@encs.concordia.ca

State-Changed-From-To: open->pending-pullups
State-Changed-By: mrg@NetBSD.org
State-Changed-When: Mon, 22 Mar 2010 03:39:04 +0000
State-Changed-Why:
this is fixed in -current, i am yet to submit a pullup for netbsd-5.


State-Changed-From-To: pending-pullups->closed
State-Changed-By: jdolecek@NetBSD.org
State-Changed-When: Thu, 17 Aug 2017 18:44:24 +0000
State-Changed-Why:
Pullups not done, but the change is already in 6.0 and beyond.


>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2014 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.