#
# preproto generic idt kernel (optimized)
#
machine		"kap0"
cpu		"S4000"
ident		GENERIC

#
# This kernel supports about eight users.  Count one
# user for each timesharing user, one for each window
# that you typically use, and one for each diskless
# client you serve.  This is only an approximation
# used to control the size of various kernel data
# structures, not a hard limit.
#
maxusers	8
options		"KAP0"
options		kap
options		"S4000"
options		"SELFMOD"
options		"KAPBUG_S461"

#
# Number of cpus this kernel will support
# and type of multi cpu support
# (Customers should not change this value.)
#
ncpus		1

#
# compile related options 
#
makeoptions	CCOPTS="-O"

#-------------------------------------------------------------------
# Include all possible software options.
#
# The INET option is not really optional, every kernel must include it.
#
options		INET		# basic networking support - mandatory

#
# The following two options are needed for asynchronous I/O.
#
options LWP             # kernel threads
options ASYNCHIO        # asynch I/O (requires LWP)

#
# The following is for TLI. Include these if you want to use RFS and/or
# the TLI library.
#
pseudo-device   tim64
pseudo-device   tirw64

#
# The following is for the TCP TLI stream head. This provides a TLI-conforming
# interface on top of which you can run RFS and/or the TLI library. This is
# required by RFS.
#
pseudo-device   tcptli32

#
# The following two options are only needed if you want to use RFS.
#
options RFS
options VFSSTATS

#
# The following options are all filesystem related.  You only need
# QUOTA if you have UFS.  You only need UFS if you have a disk.
# Diskless machines can remove QUOTA, UFS, and NFSSERVER.  LOFS is
# only needed if you're using the Sun Network Software Environment.
# HSFS is only needed if you have a CD-ROM drive and want to access
# ISO-9660 or High Sierra format CD discs.
#
options		QUOTA		# disk quotas for local disks
options		UFS		# filesystem code for local disks
options		NFSCLIENT	# NFS client side code
options		NFSSERVER	# NFS server side code
options		LOFS		# loopback filesystem - needed by NSE
options		TFS		# Translucent Filesystem
options		TMPFS		# Temp filesystem.
options		HSFS		# High Sierra (ISO 9660) CD-ROM file system
options		PCFS		# Unix access to MS-DOS file system

#
# The following options are for accounting and auditing.  SYSAUDIT
# should be removed unless you are using the C2 security features.
#
options		SYSACCT		# process accounting, see acct(2) & sa(8)
options		SYSAUDIT	# C2 auditing for security

#
# The following options are for various System V IPC facilities.
# No standard software needs them, although some third party
# software relies on at least IPCSHMEM.
#
options		IPCMESSAGE	# System V IPC message facility
options		IPCSEMAPHORE	# System V IPC semaphore facility
options		IPCSHMEM	# System V IPC shared-memory facility

#
# The following option is only needed if you want to use the trpt
# command to debug TCP problems.
#
options		TCPDEBUG	# TCP debugging, see trpt(8)

# The following option is used to switch on kernel ASSERT
# checking for kernel debugging.
#
#options		ASS

#
# The following option includes the software DES support, needed if
# you're using secure NFS or secure RPC.
#
#options		CRYPT		# software encryption

#-------------------------------------------------------------------
# Build one kernel based on this basic configuration.
# It will use the generic swap code so that you can have
# your root filesystem and swap space on any supported device.
# Put the kernel configured this way in a file named "vmunix".
#
config		vmunix		swap generic

#-------------------------------------------------------------------
# Include support for all possible pseudo-devices.
#
# The first few are mostly concerned with networking.
# You should probably always leave these in.
#
pseudo-device	pty		# pseudo-tty's, also needed for SunView
pseudo-device	ether		# basic Ethernet support
pseudo-device	loop		# loopback network - mandatory
#pseudo-device	rd		# ramdisk
#pseudo-device	ns		# no swap device
#pseudo-device	ft		# tftp boot device for use with ramdisk
#pseudo-device	sm		# stimulus card

#
# The following is needed to support any SCSI devices
#
pseudo-device	scsi		# basic SCSI support

#
# The following is needed to support the Sun keyboard, with or
# without the window system.
#
pseudo-device	kb3		# keyboard support, allow 3 keyboards

#
# The following is needed to support the mouse device, with or
# without SunWindows/SunView
#
pseudo-device	ms3		# mouse support, allow 3 mice

#
# The following is for SunWindows support.
# (Requires keyboard and mouse support)
#
pseudo-device	win128		# window devices, allow 128 windows
pseudo-device	dtop4		# desktops (screens), allow 4

#
# The following option adds support for SunView 1 journaling.
# (Requires SunWindows support)
#
options WINSVJ          # SunView 1 journaling support

#
# The following is needed for terminal emulation on a frame buffer
# (required when console output is to a frame buffer)
#
pseudo-device	ansiterm	# terminal emulation for console logins

#
# The following is for the streams pipe device.  This is only required
# if RFS is used.
#
pseudo-device	sp

#
# The following are for streams NIT support.  NIT is used by
# etherfind, traffic, rarpd, and ndbootd.  As a rule of thumb,
# NIT is almost always needed on a server and almost never
# needed on a diskless client.
#
pseudo-device	snit		# streams NIT
pseudo-device	pf		# packet filter
pseudo-device	nbuf		# NIT buffering module

#
# The following is for the "clone" device, used with streams devices.
# This is required if you include streams NIT support.
#
pseudo-device	clone

#-------------------------------------------------------------------
# The following sections describe what kinds of busses each
# cpu type supports.  You should never need to change this.
# (The word "nexus" is historical...)
#

# connections for machine type 1 (KAP0)

#-------------------------------------------------------------------
# The following (large) section describes which standard devices this
# kernel supports.
#
controller	obmem 1 at nexus ?	# memory-like devices on the cpu board
controller	obio 1 at nexus ?	# I/O devices on the cpu board


#
# Support for monochrome memory frame buffers on various machines.
#

#
# Support for the 2 tty lines (ttya, ttyb) on the system board.
# Needed when using a terminal for the console device.
# Flags=3 says to supply carrier in software for both lines.
# Note that the zs1 device must be listed first and must always be
# present for the kernel to successfully configure and boot
#
device		zs1 at obio ? csr 0x80004000 flags 0x103 priority 3
device		zs0 at obio ? csr 0x80008000 flags 0x003 priority 3

#
# Support for onboard SCSI
#
# drive bits    3-0 -> scsi target id for device
#       bits    4-7 -> scsi lun on target
# flags bit 0:  0 -> allow disconnect on scsi bus.
#       bit 1:  1 -> attempt to negotiate synchronous transfers.
#       bit 2:  0 -> check parity
#       bit 3:  1 -> apply disconnect huristic
#       bit 4:  1 -> multiple luns active per target at the same time
#       bit 5:  1 -> SASI device: command complete message only ~SYNC~DISCON
#       bit 6:  1 -> do combine optimizations

controller      si0 at obio ? csr 0x20 priority 4
device          sa0 at si0 drive 0
device          sa1 at si0 drive 0
tape            st0 at si0 drive 0x04
tape            st1 at si0 drive 0x05
disk            sd0 at si0 drive 0x00 flags 0x4a
disk            sd1 at si0 drive 0x01 flags 0x4a
disk            sd2 at si0 drive 0x02 flags 0x4a
disk            sd3 at si0 drive 0x03 flags 0x4a
disk            sr0 at si0 drive 0x06

#
# Support for the iGLU devices
#
controller    fdc0 at obio ? csr 0x8000c000 priority 11
disk          fd0 at fdc0 drive 0

#
# Support for LANCE Ethernet Driver
#
# the on-board lance (space nibble 4)
device          ei0 at obio ? csr 0x40000030 priority 6
# the sbus card (space nibble zero -- kernel will add sbus slot number)
device          ei1 at obio ? csr 0x00c00000 priority 6
device          ei2 at obio ? csr 0x00c00000 priority 6

#
# Support for monochrome frame buffer
# sbus card -- space nibble zero is a wildcard sbus slot filled in by kernel
device          bwtwo0 at obio ? csr 0x00001000 priority 6
device          bwtwo1 at obio ? csr 0x00001000 priority 6
device          bwtwo2 at obio ? csr 0x00001000 priority 6

#
# Support for Solbourne SGA20/SGA40/SGA50 graphics accelerators
#
device		sga0 at obio ? csr 0 priority 6
device		sga1 at obio ? csr 0 priority 6
device		sga2 at obio ? csr 0 priority 6

#
# AMD79C30A sound chip
#
device		audioamd0 at obio ? csr 0x80010000 priority 9
