#	ORIENT -- Custom kernel for orient.mit.edu.  Based on:
#	ATHENAOTHER -- Based on:
#	GENERICOTHER
#

include "arch/i386/conf/std.i386"   #defines machine, a few execs

maxusers	16		# estimated number of users

options		I586_CPU	# CPU classes; at least one is REQUIRED

options		USER_LDT	# user-settable LDT; used by WINE
# eliminate delay no-ops in I/O; recommended on all but very old machines
options        DUMMY_NOPS

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

# This option allows you to force a serial console at the specified
# I/O address.   see console(4) for details.
#options        "CONSDEVNAME=\"com\""

# 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=... # size of base memory
#options        REALEXTMEM=...  # size of extended memory

# Standard system options

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

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

options         KTRACE          # system call tracing via ktrace(1)

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

options         LKM             # loadable kernel modules

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

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

#options	COMPAT_SVR4	# binary compatibility with SVR4
#options	COMPAT_IBCS2	# binary compatibility with SCO and ISC
options		COMPAT_LINUX	# binary compatibility with Linux
options		COMPAT_FREEBSD	# binary compatibility with FreeBSD
#options	COMPAT_PECOFF	# kernel support to run Win32 apps

# EXEC_AOUT, EXEC_ELF32 and EXEC_SCRIPT defined in std.i386
options 	COMPAT_AOUT	# binary compat for NetBSD a.out binaries

# File systems
file-system	FFS		# UFS
file-system	EXT2FS		# second extended file system (linux)
#file-system	LFS		# log-structured file system
#file-sytem	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	PORTAL		# ?
file-system	PROCFS		# /proc
file-system	UMAPFS		# NULLFS + uid and gid remapping
file-system	UNION		# union file system
file-system	CODA		# Coda File System; also needs vcoda (below)

# File system options
#options	QUOTA		# UFS quotas
#options 	FFS_EI		# FFS Endian Independant support
#options 	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

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

# These options enable verbose messages for several subsystems.
# Warning, these may compile large string tables into the kernel!
options 	EISAVERBOSE	# verbose EISA device messages
#options	MIIVERBOSE	# verbose PHY autoconfig messages
options		PCIVERBOSE	# verbose PCI device 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 fullsome Pnp BIOS debugging 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
# 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

# From here down is pure ORIENT config

config          netbsd  root on wd0 type ffs

mainbus0 at root

pci0	at mainbus0 bus ?
eisa0	at mainbus0			# Only EISA and ISA here
isa0	at mainbus0			# Only EISA and ISA here

ppb*	at pci? dev ? function ?	# PCI-PCI bridges
pci*	at ppb? bus ?
pchb*	at pci? dev ? function ?	# PCI-Host bridges
pci*	at pchb?
pcib*	at pci? dev ? function ?	# PCI-ISA bridges

isa*	at pcib?			# ISA on PCI-ISA bridge
isa*	at mainbus0			# all other ISA
isapnp0	at isa?				# ISA Plug-and-Play

npx0	at isa? port 0xf0 irq 13	# math coprocessor

# wscons
pckbc0		at isa?			# pc keyboard controller
pckbd*		at pckbc?		# PC keyboard
# "opms" should not be enabled together with "pms" or "pmsi"
pms*		at pckbc?		# PS/2 mouse for wsmouse
pmsi*		at pckbc?		# PS/2 "Intelli"mouse for wsmouse
#opms*		at pckbc?		# backwards compatible PS/2 mouse
vga0		at isa?
vga*		at pci?
pcdisplay0	at isa?			# CGA, MDA, EGA, HGA
wsdisplay*	at vga? console ?
wsdisplay*	at pcdisplay? console ?
wskbd* 		at pckbd? console ?
wsmouse*	at pms? mux 0
wsmouse*	at pmsi? mux 0

pcppi0		at isa?
sysbeep0	at pcppi?

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

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

lms0	at isa? port 0x23c irq 5	# Logitech bus mouse
wsmouse*	at lms? mux 0

fdc0	at isa? port 0x3f0 irq 6 drq 2	# standard PC floppy controllers
#fdc1	at isa? port 0x370 irq ? drq ?
fd*	at fdc? drive ?

# 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

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

# 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

# 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 wdc? channel ? drive ? flags 0x0000
wd*	at pciide? channel ? drive ? flags 0x0000

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

# ATAPI devices
cd*	at atapibus? drive ?
sd*     at atapibus? drive ?            # ATAPI disk drives

ep*	at pci? dev ? function ?	# 3Com 3c59x
ne0	at isa? port 0x280 irq 9	# NE[12]000 ethernet cards
ep0	at isa? port ? irq ?		# 3C509 ethernet cards

#spkr0	at isa? ...

# Pseudo-Devices

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

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

# miscellaneous pseudo-devices
pseudo-device	pty		64	# 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)

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

# mouse & keyboard multiplexor pseudo-devices
pseudo-device	wsmux		2

