# $NetBSD: GENERIC,v 1.1.2.4 2004/09/23 02:40:54 jmc Exp $
# NetBSD: GENERIC,v 1.596 2004/04/07 13:13:59 augustss 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/xen/conf/std.xen"

options 	INCLUDE_CONFIG_FILE	# embed config file in kernel binary

#ident 		"GENERIC-$Revision: 1.1.2.4 $"

maxusers	32		# estimated number of users

#
options		XEN
options		DOM0OPS

# CPU support.  At least one is REQUIRED.
options 	I686_CPU

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

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

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

# This option allows you to force the Xen virtual console
#options 	CONSDEVNAME="\"xencons\""
#options 	CONS_OVERRIDE	# Always use above! independent of commandline

# 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 	NO_TSC_TIME	# Don't use TSC microtime, even if available.
				# Improves time behavior under VMware.

options 	KTRACE		# system call tracing via ktrace(1)
options 	SYSTRACE	# system call vetting via systrace(1)

options 	SYSVMSG		# System V-like message queues
options 	SYSVSEM		# System V-like semaphores
#options 	SEMMNI=10	# number of semaphore identifiers
#options 	SEMMNS=60	# number of semaphores in system
#options 	SEMUME=10	# max number of undo entries per process
#options 	SEMMNU=30	# number of undo structures in system
options 	SYSVSHM		# System V-like memory sharing
#options 	SHMMAXPGS=2048	# 2048 pages is the default
options 	P1003_1B_SEMAPHORE	# p1003.1b semaphore support

options 	LKM		# loadable kernel modules

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)

# Enable experimental buffer queue strategy for better responsiveness under
# high disk I/O load. Likely stable but not yet the default.
#options 	NEW_BUFQ_STRATEGY

# 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 	KGDB		# remote debugger
#options 	KGDB_DEVNAME="\"com\"",KGDB_DEVADDR=0x3f8,KGDB_DEVRATE=9600
#makeoptions	DEBUG="-g"	# compile full symbol table

# 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_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_PECOFF	# kernel support to run Win32 apps

# 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 options
options 	QUOTA		# UFS quotas
#options 	FFS_EI		# FFS Endian Independent support
options 	SOFTDEP		# FFS soft updates support.
options 	NFSSERVER	# Network File System server
#options 	EXT2FS_SYSTEM_FLAGS # makes ext2fs file flags (append and
				# immutable) behave as system flags.

# Networking options
#options 	GATEWAY		# packet forwarding
options 	INET		# IP + ICMP + TCP + UDP
options 	INET6		# IPV6
#options 	IPSEC		# IP security
#options 	IPSEC_ESP	# IP security (encryption part; define w/IPSEC)
#options 	IPSEC_DEBUG	# debug for IP security
#options 	MROUTING	# IP multicast routing
options 	NS		# XNS
#options 	NSIP		# XNS tunneling over IP
options 	ISO,TPIP	# OSI
#options 	EON		# OSI tunneling over IP
options 	CCITT,LLC,HDLC	# X.25
options 	NETATALK	# AppleTalk networking protocols
options 	PPP_BSDCOMP	# BSD-Compress compression support for PPP
options 	PPP_DEFLATE	# Deflate compression support for PPP
options 	PPP_FILTER	# Active filter support for PPP (requires bpf)
options 	PFIL_HOOKS	# pfil(9) packet filter hooks
options 	IPFILTER_LOG	# ipmon(8) log support
#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

options 	NFS_BOOT_DHCP,NFS_BOOT_BOOTPARAM,NFS_BOOT_BOOTSTATIC
#options 	NFS_BOOTSTATIC_MYIP="\"169.254.1.2\""
#options 	NFS_BOOTSTATIC_GWIP="\"169.254.1.1\""
#options 	NFS_BOOTSTATIC_MASK="\"255.255.255.0\""
#options 	NFS_BOOTSTATIC_SERVADDR="\"169.254.1.1\""
#options 	NFS_BOOTSTATIC_SERVER="\"server:/path/to/root\""

#
# wscons options
#
# builtin terminal emulations
#options 	WSEMUL_SUN		# sun terminal emulation
options 	WSEMUL_VT100		# VT100 / VT220 emulation
# different kernel output - see dev/wscons/wsdisplayvar.h
options 	WS_KERNEL_FG=WSCOL_GREEN
#options 	WS_KERNEL_BG=WSCOL_BLACK
# 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
# see dev/pckbc/wskbdmap_mfii.c for implemented layouts
#options 	PCKBD_LAYOUT="(KB_DE | KB_NODEAD)"
# 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
# the following enables some functions to get mouse console support.
# if you want a really secure system, it may be better not to enable them,
# see wsmoused(8), section SECURITY CONSIDERATIONS for more info.
#options 	WSDISPLAY_CHARFUNCS		# mouse console support
# enable VGA raster mode capable of displaying multilingual text on console
#options 	VGA_RASTERCONSOLE

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

#
# Device configuration
#

mainbus0 at root

cpu* at mainbus?

hypervisor*	at mainbus?		# Xen hypervisor

npx0		at hypervisor?		# x86 math coprocessor

xencons*	at hypervisor?		# Xen virtual console
xennet* 	at hypervisor?		# Xen virtual network interface

xbd*		at hypervisor?		# Xen virtual block device
wd*		at hypervisor?		# Xen vbd (wd identity)
sd*		at hypervisor?		# Xen vbd (sd identity)
cd*		at hypervisor?		# Xen vbd (cd identity)

xenkbc* 	at hypervisor?		# Xen Keyboard/Mouse interface
pckbd*		at xenkbc?		# Keyboard
pms*		at xenkbc?		# PS/2 Mouse for wsmouse
vga*		at hypervisor?		# Xen VGA display

wskbd*		at pckbd? console ?
wsdisplay*	at vga? console ?
wsmouse*	at pms? mux 0


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


# Pseudo-Devices

pseudo-device 	crypto		# opencrypto framework

# disk/mass storage pseudo-devices
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

# Vinum
# pseudo-device	vinum		8	# Vinum
# options 	VINUMDEBUG

pseudo-device	md		1	# memory disk device (ramdisk)
pseudo-device	vnd		4	# disk-like interface to files

# network pseudo-devices
pseudo-device	bpfilter	8	# Berkeley packet filter
pseudo-device	ipfilter		# IP filter (firewall) and NAT
pseudo-device	loop			# network loopback
pseudo-device	ppp		2	# Point-to-Point Protocol
pseudo-device	pppoe			# PPP over Ethernet (RFC 2516)
pseudo-device	sl		2	# Serial Line IP
pseudo-device	strip		2	# Starmode Radio IP (Metricom)
pseudo-device	irframetty		# IrDA frame line discipline
pseudo-device	tun		2	# network tunneling over tty
pseudo-device	gre		2	# generic L3 over IP tunnel
pseudo-device	gif		4	# IPv[46] over IPv[46] tunnel (RFC1933)
#pseudo-device	faith		1	# IPv[46] tcp relay translation i/f
#pseudo-device	stf		1	# 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

# miscellaneous pseudo-devices
pseudo-device	pty			# pseudo-terminals
pseudo-device	tb		1	# tablet line discipline
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

# 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

pseudo-device	wsmux			# mouse & keyboard multiplexor
pseudo-device	wsfont
pseudo-device	ksyms			# /dev/ksyms
