SMALLRAM revision 1.2
11.2Slukem#	$NetBSD: SMALLRAM,v 1.2 2002/06/17 05:14:15 lukem Exp $
21.1Sscottr#
31.1Sscottr# This is an example of how to configure a small, efficient kernel for a
41.1Sscottr# system with limited RAM. Even so it's capable of doing quite a bit. The
51.1Sscottr# hypothetical system used for this example is a Macintosh IIx or
61.1Sscottr# Macintosh IIcx with 8 MB of RAM and an 80 MB disk. One or more DP5380-
71.1Sscottr# based NuBus Ethernet cards and one or more NuBus video cards are
81.1Sscottr# configured, and basic PPP support is available. This configuration is
91.1Sscottr# suitable for experimenting with NetBSD as a router with one or more
101.1Sscottr# Ethernet cards, and up to two PPP connections (one on each serial port).
111.1Sscottr
121.1Sscottrinclude	"arch/mac68k/conf/std.mac68k"
131.1Sscottr
141.1Sscottr#options 	INCLUDE_CONFIG_FILE	# embed config file in kernel binary
151.1Sscottr
161.2Slukem#ident 		"SMALLRAM-$Revision: 1.2 $"
171.1Sscottr
181.1Sscottrmaxusers	8
191.1Sscottr
201.1Sscottrmakeoptions	COPTS="-O2 -m68030"	# Optimize for the MC68030
211.1Sscottr
221.1Sscottr# CPU support.  At least one is REQUIRED.
231.1Sscottr#options 	M68040
241.1Sscottroptions 	M68030
251.1Sscottr#options 	M68020		# Note:  must have 68851 PMMU
261.1Sscottr
271.1Sscottr# CPU-related options.
281.1Sscottr#options 	FPSP
291.1Sscottr#options 	FPU_EMULATE
301.1Sscottr
311.1Sscottr# Standard system options
321.1Sscottr
331.1Sscottr#options 	UCONSOLE	# users can use TIOCCONS (for xconsole)
341.1Sscottr#options 	INSECURE	# disable kernel security levels
351.1Sscottr
361.1Sscottroptions 	RTC_OFFSET=0	# hardware clock is this many mins. west of GMT
371.1Sscottr#options 	NTP		# NTP phase/frequency locked loop
381.1Sscottr
391.1Sscottroptions 	KTRACE		# system call tracing via ktrace(1)
401.1Sscottr
411.1Sscottroptions 	SYSVMSG		# System V-like message queues
421.1Sscottroptions 	SYSVSEM		# System V-like semaphores
431.1Sscottr#options 	SEMMNI=10	# number of semaphore identifiers
441.1Sscottr#options 	SEMMNS=60	# number of semaphores in system
451.1Sscottr#options 	SEMUME=10	# max number of undo entries per process
461.1Sscottr#options 	SEMMNU=30	# number of undo structures in system
471.1Sscottroptions 	SYSVSHM		# System V-like memory sharing
481.1Sscottr#options 	SHMMAXPGS=1024	# 1024 pages is the default
491.1Sscottr
501.1Sscottr#options 	LKM		# loadable kernel modules
511.1Sscottr
521.1Sscottr#options 	USERCONF	# userconf(4) support
531.1Sscottr#options	PIPE_SOCKETPAIR	# smaller, but slower pipe(2)
541.1Sscottr
551.1Sscottr# Diagnostic/debugging support options
561.1Sscottroptions 	DIAGNOSTIC	# cheap kernel consistency checks
571.1Sscottr#options 	DEBUG		# expensive debugging checks/support
581.1Sscottr#options 	KMEMSTATS	# kernel memory statistics (vmstat -m)
591.1Sscottroptions 	DDB			# in-kernel debugger
601.1Sscottr#options 	DDB_HISTORY_SIZE=100	# enable history editing in DDB
611.1Sscottr#options 	KGDB			# remote debugger
621.1Sscottr#options 	KGDB_DEV=0xc01		# kgdb device number (dev_t)
631.1Sscottr#options 	KGDB_DEVRATE=38400	# baud rate
641.1Sscottr#makeoptions	DEBUG="-g"	# compile full symbol table
651.1Sscottr
661.1Sscottr# Compatibility options
671.1Sscottr#options 	COMPAT_NOMID	# NetBSD 0.8,
681.1Sscottr#options 	COMPAT_09	# NetBSD 0.9,
691.1Sscottr#options 	COMPAT_10	# NetBSD 1.0,
701.1Sscottr#options 	COMPAT_11	# NetBSD 1.1,
711.1Sscottroptions 	COMPAT_12	# NetBSD 1.2,
721.1Sscottroptions 	COMPAT_13	# NetBSD 1.3,
731.1Sscottroptions 	COMPAT_14	# NetBSD 1.4,
741.1Sscottroptions 	COMPAT_15	# NetBSD 1.5,
751.1Sscottr#options 	COMPAT_43	# and 4.3BSD
761.1Sscottr#options 	TCP_COMPAT_42	# 4.2BSD TCP/IP bug compat. Not recommended.
771.1Sscottr
781.1Sscottr# The following is needed to run pre-NetBSD 1.6 binaries under ELF.
791.1Sscottroptions 	COMPAT_AOUT_M68K # compatibility with NetBSD/m68k a.out
801.1Sscottroptions 	EXEC_AOUT	# support for exec'ing a.out
811.1Sscottr
821.1Sscottr#options 	COMPAT_LINUX	# compatibility with Linux/m68k binaries
831.1Sscottr#options 	COMPAT_M68K4K	# compatibility with NetBSD/m68k4k binaries
841.1Sscottr#options 	COMPAT_SUNOS	# compatibility with SunOS 4.x binaries
851.1Sscottr#options 	COMPAT_SVR4	# compatibility with SVR4 binaries
861.1Sscottr
871.1Sscottr# File systems
881.1Sscottrfile-system 	FFS		# UFS
891.1Sscottr#file-system 	EXT2FS		# second extended file system (linux)
901.1Sscottr#file-system 	LFS		# log-structured file system
911.1Sscottrfile-system 	MFS		# memory file system
921.1Sscottrfile-system 	NFS		# Network File System client
931.1Sscottr#file-system 	CD9660		# ISO 9660 + Rock Ridge file system
941.1Sscottr#file-system 	MSDOSFS		# MS-DOS file system
951.1Sscottr#file-system 	FDESC		# /dev/fd
961.1Sscottr#file-system 	KERNFS		# /kern
971.1Sscottr#file-system 	NULLFS		# loopback file system
981.1Sscottr#file-system 	OVERLAY		# overlay file system
991.1Sscottr#file-system 	PORTAL		# portal filesystem (still experimental)
1001.1Sscottr#file-system 	PROCFS		# /proc
1011.1Sscottr#file-system 	UMAPFS		# NULLFS + uid and gid remapping
1021.1Sscottr#file-system 	UNION		# union file system
1031.1Sscottr#file-system 	CODA		# Venus/Coda distributed file system
1041.1Sscottr
1051.1Sscottr# File system options
1061.1Sscottroptions 	QUOTA		# UFS quotas
1071.1Sscottr#options 	FFS_EI		# FFS Endian Independant support
1081.1Sscottr#options 	SOFTDEP		# FFS soft updates support.
1091.1Sscottr#options 	NFSSERVER	# Network File System server
1101.1Sscottr#options 	EXT2FS_SYSTEM_FLAGS # makes ext2fs file flags (append and
1111.1Sscottr				# immutable) behave as system flags.
1121.1Sscottr
1131.1Sscottr# Networking options
1141.1Sscottroptions 	GATEWAY		# packet forwarding
1151.1Sscottroptions 	INET		# IP + ICMP + TCP + UDP
1161.1Sscottr#options 	INET6		# IPV6
1171.1Sscottr#options 	IPSEC		# IP security
1181.1Sscottr#options 	IPSEC_ESP	# IP security (encryption part; define w/IPSEC)
1191.1Sscottr#options 	IPSEC_DEBUG	# debug for IP security
1201.1Sscottroptions 	MROUTING	# IP multicast routing
1211.1Sscottr#options 	NS		# XNS
1221.1Sscottr#options 	NSIP		# XNS tunneling over IP
1231.1Sscottr#options 	ISO,TPIP	# OSI
1241.1Sscottr#options 	EON		# OSI tunneling over IP
1251.1Sscottr#options 	CCITT,LLC,HDLC	# X.25
1261.1Sscottr#options 	NETATALK	# AppleTalk networking protocols
1271.1Sscottroptions 	PPP_BSDCOMP	# BSD-Compress compression support for PPP
1281.1Sscottr#options 	PPP_DEFLATE	# Deflate compression support for PPP
1291.1Sscottroptions 	PPP_FILTER	# Active filter support for PPP (requires bpf)
1301.1Sscottroptions 	PFIL_HOOKS	# pfil(9) packet filter hooks
1311.1Sscottr#options 	IPFILTER_LOG	# ipmon(8) log support
1321.1Sscottr#options 	TCP_DEBUG	# Record last TCP_NDEBUG packets with SO_DEBUG
1331.1Sscottr
1341.1Sscottr# These options enable verbose messages for several subsystems.
1351.1Sscottr# Warning, these may compile large string tables into the kernel!
1361.1Sscottr#options 	SCSIVERBOSE	# human readable SCSI error messages
1371.1Sscottr
1381.1Sscottr# wscons options
1391.1Sscottr#options 	WSEMUL_SUN		# sun terminal emulation
1401.1Sscottroptions 	WSEMUL_VT100		# VT100 / VT220 emulation
1411.1Sscottroptions 	WSDISPLAY_COMPAT_ITEFONT # use ite font (6x10)
1421.1Sscottr
1431.1Sscottr# rcons options; note that 1-bit and 8-bit displays are supported by default.
1441.1Sscottr#options 	RCONS_2BPP		# Support for 2-bit display
1451.1Sscottr#options 	RCONS_4BPP		# Support for 4-bit display
1461.1Sscottr#options 	RCONS_16BPP		# Support for 16-bit display
1471.1Sscottr
1481.1Sscottr# Mac-specific options
1491.1Sscottr#options 	ALTXBUTTONS	# Map Opt-{1,2,3} to mouse buttons
1501.1Sscottr#options 	DISABLE_EXT_CACHE # Don't use IIci external cache
1511.1Sscottroptions 	GRF_COMPAT	# Include grf compatibility code
1521.1Sscottr#options 	MRG_ADB		# Use ROM-based ADB driver
1531.1Sscottr#options 	ZS_CONSOLE_ABORT
1541.1Sscottr
1551.1Sscottr
1561.1Sscottr# Kernel root file system and dump configuration.
1571.1Sscottrconfig		netbsd	root on ? type ?
1581.1Sscottr
1591.1Sscottr#
1601.1Sscottr# Device configuration
1611.1Sscottr#
1621.1Sscottr
1631.1Sscottrmainbus0 at root
1641.1Sscottr
1651.1Sscottrfpu0 at mainbus?			# Floating-Point Coprocessor support
1661.1Sscottr
1671.1Sscottr
1681.1Sscottr# Basic Bus Support
1691.1Sscottr
1701.1Sscottr# On-board I/O bus support
1711.1Sscottrobio0 at mainbus?
1721.1Sscottr
1731.1Sscottr# NuBus support
1741.1Sscottrnubus0 at mainbus?
1751.1Sscottr
1761.1Sscottr
1771.1Sscottr# Console Devices
1781.1Sscottr
1791.1Sscottr# Apple Desktop Bus interface
1801.1Sscottradb0	at obio?
1811.1Sscottraed*	at adb?				# ADB event device
1821.1Sscottrakbd*	at adb?				# ADB keyboard
1831.1Sscottrams*	at adb?				# ADB mouse
1841.1Sscottr
1851.1Sscottr# Basic frame buffer support
1861.1Sscottr#intvid0	at obio?			# Internal video hardware
1871.1Sscottrmacvid*	at nubus?			# NuBus video card
1881.1Sscottr
1891.1Sscottr# Device-independent frame buffer interface
1901.1Sscottr#macfb*	at intvid?
1911.1Sscottrmacfb*	at macvid?
1921.1Sscottr
1931.1Sscottr# Workstation Console devices
1941.1Sscottrwsdisplay0 at macfb? console ?
1951.1Sscottrwskbd0	at akbd? console ?
1961.1Sscottrwsmouse0 at ams?
1971.1Sscottr
1981.1Sscottr
1991.1Sscottr# Serial Devices
2001.1Sscottr
2011.1Sscottr# On-board serial interface
2021.1Sscottrzsc0	at obio?
2031.1Sscottrzstty*	at zsc? channel ?
2041.1Sscottr
2051.1Sscottr
2061.1Sscottr# SCSI Controllers and Devices
2071.1Sscottr
2081.1Sscottr# SCSI controllers
2091.1Sscottr# XXX - use only one of ncrscsi or sbc
2101.1Sscottr#ncrscsi0 at obio?			# SCSI NCR 5380
2111.1Sscottrsbc0	at obio? flags 0x1		# MI SCSI NCR 5380
2121.1Sscottr#esp0	at obio?			# SCSI NCR 53C9x
2131.1Sscottr#esp1	at obio?			# SCSI NCR 53C9x
2141.1Sscottr
2151.1Sscottr# SCSI bus support
2161.1Sscottrscsibus* at scsi?
2171.1Sscottr
2181.1Sscottr# SCSI devices
2191.1Sscottrsd*	at scsibus? target ? lun ?	# SCSI disk drives
2201.1Sscottr#st*	at scsibus? target ? lun ?	# SCSI tape drives
2211.1Sscottr#cd*	at scsibus? target ? lun ?	# SCSI CD-ROM drives
2221.1Sscottr#ch*	at scsibus? target ? lun ?	# SCSI autochangers
2231.1Sscottr#se*	at scsibus? target ? lun ?	# SCSI ethernet
2241.1Sscottr#ss*	at scsibus? target ? lun ?	# SCSI scanners
2251.1Sscottr#uk*	at scsibus? target ? lun ?	# SCSI unknown
2261.1Sscottr
2271.1Sscottr# IDE controller and devices
2281.1Sscottr#wdc*	at obio? flags 0x1000
2291.1Sscottr#wd*	at wdc? channel ? drive ?
2301.1Sscottr
2311.1Sscottr
2321.1Sscottr# Miscellaneous mass storage devices
2331.1Sscottr
2341.1Sscottr# IWM floppy disk controller
2351.1Sscottr#iwm0	at obio?			# Sony driver (800K GCR)
2361.1Sscottr#fd*	at iwm? drive ?
2371.1Sscottr
2381.1Sscottr
2391.1Sscottr# Network Interfaces
2401.1Sscottr
2411.1Sscottr# On-board Ethernet controllers
2421.1Sscottr#sn*	at obio?			# SONIC-based (DP83932, DP83916)
2431.1Sscottr#mc*	at obio?			# MACE-based
2441.1Sscottr
2451.1Sscottr# NuBus Ethernet controllers
2461.1Sscottrae*	at nubus?			# DP8390-based
2471.1Sscottr#sn*	at nubus?			# SONIC-based (DP83932, DP83916)
2481.1Sscottr#sm*	at nubus?			# SMC 91cxx-based
2491.1Sscottr
2501.1Sscottrnsphy*	at mii? phy ?
2511.1Sscottrukphy*	at mii? phy ?
2521.1Sscottr
2531.1Sscottr# Audio Devices
2541.1Sscottr
2551.1Sscottr# On-board audio hardware
2561.1Sscottrasc0	at obio?			# ASC/EASC audio
2571.1Sscottr
2581.1Sscottr# Pseudo-Devices
2591.1Sscottr
2601.1Sscottr# disk/mass storage pseudo-devices
2611.1Sscottrpseudo-device	ccd		4	# concatenated/striped disk devices
2621.1Sscottr#pseudo-device	raid		8	# RAIDframe disk driver
2631.1Sscottr#options 	RAID_AUTOCONFIG		# auto-configuration of RAID components
2641.1Sscottr# Options to enable various other RAIDframe RAID types.
2651.1Sscottr# options	RF_INCLUDE_EVENODD=1
2661.1Sscottr# options	RF_INCLUDE_RAID5_RS=1
2671.1Sscottr# options	RF_INCLUDE_PARITYLOGGING=1
2681.1Sscottr# options	RF_INCLUDE_CHAINDECLUSTER=1
2691.1Sscottr# options	RF_INCLUDE_INTERDECLUSTER=1
2701.1Sscottr# options 	RF_INCLUDE_PARITY_DECLUSTERING=1
2711.1Sscottr# options	RF_INCLUDE_PARITY_DECLUSTERING_DS=1
2721.1Sscottr#pseudo-device	md		1	# memory disk device (ramdisk)
2731.1Sscottr#pseudo-device	vcoda		1	# Venus/Coda distributed file system
2741.1Sscottrpseudo-device	vnd		4	# disk-like interface to files
2751.1Sscottr
2761.1Sscottr# network pseudo-devices
2771.1Sscottrpseudo-device	bpfilter	12	# Berkeley packet filter
2781.1Sscottrpseudo-device	ipfilter		# IP filter (firewall) and NAT
2791.1Sscottrpseudo-device	loop			# network loopback
2801.1Sscottrpseudo-device	ppp		2	# Point-to-Point Protocol
2811.1Sscottr#pseudo-device	pppoe			# PPP over Ethernet (RFC 2516)
2821.1Sscottr#pseudo-device	sl		2	# Serial Line IP
2831.1Sscottr#pseudo-device	strip		2	# Starmode Radio IP (Metricom)
2841.1Sscottrpseudo-device	tun		2	# network tunneling over tty
2851.1Sscottr#pseudo-device	gre		2	# generic L3 over IP tunnel
2861.1Sscottr#pseudo-device	gif		4	# IPv[46] over IPv[46] tunnel (RFC1933)
2871.1Sscottr#pseudo-device	faith		1	# IPv[46] tcp relay translation i/f
2881.1Sscottr#pseudo-device	stf		1	# 6to4 IPv6 over IPv4 encapsulation
2891.1Sscottr#pseudo-device	vlan			# IEEE 802.1q encapsulation
2901.1Sscottr#pseudo-device	bridge			# simple inter-network bridging
2911.1Sscottr
2921.1Sscottr# miscellaneous pseudo-devices
2931.1Sscottrpseudo-device	grf		2	# grf emulation for wscons
2941.1Sscottrpseudo-device	ite		1	# ite emulation for wscons
2951.1Sscottrpseudo-device	pty			# pseudo-terminals
2961.1Sscottr#pseudo-device	tb		1	# tablet line discipline
2971.2Slukempseudo-device	clockctl		# user control of clock subsystem
2981.1Sscottr
2991.1Sscottr# rnd is EXPERIMENTAL at this point.
3001.1Sscottr#pseudo-device	rnd			# /dev/random and in-kernel generator
3011.1Sscottr#options 	RND_COM			# use "com" randomness as well (BROKEN)
302