SMALLRAM revision 1.10
11.10Smanu#	$NetBSD: SMALLRAM,v 1.10 2004/09/04 23:29:50 manu 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.10Smanu#ident 		"SMALLRAM-$Revision: 1.10 $"
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 	INSECURE	# disable kernel security levels
341.1Sscottr
351.1Sscottroptions 	RTC_OFFSET=0	# hardware clock is this many mins. west of GMT
361.1Sscottr#options 	NTP		# NTP phase/frequency locked loop
371.1Sscottr
381.1Sscottroptions 	KTRACE		# system call tracing via ktrace(1)
391.1Sscottr
401.1Sscottroptions 	SYSVMSG		# System V-like message queues
411.1Sscottroptions 	SYSVSEM		# System V-like semaphores
421.1Sscottr#options 	SEMMNI=10	# number of semaphore identifiers
431.1Sscottr#options 	SEMMNS=60	# number of semaphores in system
441.1Sscottr#options 	SEMUME=10	# max number of undo entries per process
451.1Sscottr#options 	SEMMNU=30	# number of undo structures in system
461.1Sscottroptions 	SYSVSHM		# System V-like memory sharing
471.1Sscottr#options 	SHMMAXPGS=1024	# 1024 pages is the default
481.1Sscottr
491.1Sscottr#options 	LKM		# loadable kernel modules
501.1Sscottr
511.3Slukemoptions 	USERCONF	# userconf(4) support
521.1Sscottr#options	PIPE_SOCKETPAIR	# smaller, but slower pipe(2)
531.9Satatat#options 	SYSCTL_INCLUDE_DESCR	# Include sysctl descriptions in kernel
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.8Scloptions 	COMPAT_16	# NetBSD 1.6,
761.1Sscottr#options 	COMPAT_43	# and 4.3BSD
771.1Sscottr#options 	TCP_COMPAT_42	# 4.2BSD TCP/IP bug compat. Not recommended.
781.1Sscottr
791.1Sscottr# The following is needed to run pre-NetBSD 1.6 binaries under ELF.
801.1Sscottroptions 	COMPAT_AOUT_M68K # compatibility with NetBSD/m68k a.out
811.1Sscottroptions 	EXEC_AOUT	# support for exec'ing a.out
821.1Sscottr
831.1Sscottr#options 	COMPAT_LINUX	# compatibility with Linux/m68k binaries
841.1Sscottr#options 	COMPAT_M68K4K	# compatibility with NetBSD/m68k4k binaries
851.1Sscottr#options 	COMPAT_SUNOS	# compatibility with SunOS 4.x binaries
861.1Sscottr#options 	COMPAT_SVR4	# compatibility with SVR4 binaries
871.1Sscottr
881.1Sscottr# File systems
891.1Sscottrfile-system 	FFS		# UFS
901.1Sscottr#file-system 	EXT2FS		# second extended file system (linux)
911.1Sscottr#file-system 	LFS		# log-structured file system
921.1Sscottrfile-system 	MFS		# memory file system
931.1Sscottrfile-system 	NFS		# Network File System client
941.1Sscottr#file-system 	CD9660		# ISO 9660 + Rock Ridge file system
951.1Sscottr#file-system 	MSDOSFS		# MS-DOS file system
961.1Sscottr#file-system 	FDESC		# /dev/fd
971.1Sscottr#file-system 	KERNFS		# /kern
981.1Sscottr#file-system 	NULLFS		# loopback file system
991.1Sscottr#file-system 	OVERLAY		# overlay file system
1001.1Sscottr#file-system 	PORTAL		# portal filesystem (still experimental)
1011.1Sscottr#file-system 	PROCFS		# /proc
1021.1Sscottr#file-system 	UMAPFS		# NULLFS + uid and gid remapping
1031.1Sscottr#file-system 	UNION		# union file system
1041.1Sscottr#file-system 	CODA		# Venus/Coda distributed file system
1051.1Sscottr
1061.1Sscottr# File system options
1071.1Sscottroptions 	QUOTA		# UFS quotas
1081.1Sscottr#options 	FFS_EI		# FFS Endian Independant support
1091.1Sscottr#options 	SOFTDEP		# FFS soft updates support.
1101.1Sscottr#options 	NFSSERVER	# Network File System server
1111.1Sscottr#options 	EXT2FS_SYSTEM_FLAGS # makes ext2fs file flags (append and
1121.1Sscottr				# immutable) behave as system flags.
1131.1Sscottr
1141.1Sscottr# Networking options
1151.1Sscottroptions 	GATEWAY		# packet forwarding
1161.1Sscottroptions 	INET		# IP + ICMP + TCP + UDP
1171.1Sscottr#options 	INET6		# IPV6
1181.1Sscottr#options 	IPSEC		# IP security
1191.1Sscottr#options 	IPSEC_ESP	# IP security (encryption part; define w/IPSEC)
1201.1Sscottr#options 	IPSEC_DEBUG	# debug for IP security
1211.1Sscottroptions 	MROUTING	# IP multicast routing
1221.10Smanuoptions 	PIM		# Protocol Independent Multicast
1231.1Sscottr#options 	NS		# XNS
1241.1Sscottr#options 	NSIP		# XNS tunneling over IP
1251.1Sscottr#options 	ISO,TPIP	# OSI
1261.1Sscottr#options 	EON		# OSI tunneling over IP
1271.1Sscottr#options 	CCITT,LLC,HDLC	# X.25
1281.1Sscottr#options 	NETATALK	# AppleTalk networking protocols
1291.1Sscottroptions 	PPP_BSDCOMP	# BSD-Compress compression support for PPP
1301.1Sscottr#options 	PPP_DEFLATE	# Deflate compression support for PPP
1311.1Sscottroptions 	PPP_FILTER	# Active filter support for PPP (requires bpf)
1321.1Sscottroptions 	PFIL_HOOKS	# pfil(9) packet filter hooks
1331.1Sscottr#options 	IPFILTER_LOG	# ipmon(8) log support
1341.5Smartti#options 	IPFILTER_DEFAULT_BLOCK	# block all packets by default
1351.1Sscottr#options 	TCP_DEBUG	# Record last TCP_NDEBUG packets with SO_DEBUG
1361.1Sscottr
1371.1Sscottr# These options enable verbose messages for several subsystems.
1381.1Sscottr# Warning, these may compile large string tables into the kernel!
1391.1Sscottr#options 	SCSIVERBOSE	# human readable SCSI error messages
1401.1Sscottr
1411.1Sscottr# wscons options
1421.1Sscottr#options 	WSEMUL_SUN		# sun terminal emulation
1431.1Sscottroptions 	WSEMUL_VT100		# VT100 / VT220 emulation
1441.1Sscottroptions 	WSDISPLAY_COMPAT_ITEFONT # use ite font (6x10)
1451.1Sscottr
1461.1Sscottr# rcons options; note that 1-bit and 8-bit displays are supported by default.
1471.1Sscottr#options 	RCONS_2BPP		# Support for 2-bit display
1481.1Sscottr#options 	RCONS_4BPP		# Support for 4-bit display
1491.1Sscottr#options 	RCONS_16BPP		# Support for 16-bit display
1501.1Sscottr
1511.1Sscottr# Mac-specific options
1521.1Sscottr#options 	ALTXBUTTONS	# Map Opt-{1,2,3} to mouse buttons
1531.1Sscottr#options 	DISABLE_EXT_CACHE # Don't use IIci external cache
1541.1Sscottroptions 	GRF_COMPAT	# Include grf compatibility code
1551.1Sscottr#options 	MRG_ADB		# Use ROM-based ADB driver
1561.1Sscottr#options 	ZS_CONSOLE_ABORT
1571.1Sscottr
1581.1Sscottr
1591.1Sscottr# Kernel root file system and dump configuration.
1601.1Sscottrconfig		netbsd	root on ? type ?
1611.1Sscottr
1621.1Sscottr#
1631.1Sscottr# Device configuration
1641.1Sscottr#
1651.1Sscottr
1661.1Sscottrmainbus0 at root
1671.1Sscottr
1681.1Sscottrfpu0 at mainbus?			# Floating-Point Coprocessor support
1691.1Sscottr
1701.1Sscottr
1711.1Sscottr# Basic Bus Support
1721.1Sscottr
1731.1Sscottr# On-board I/O bus support
1741.1Sscottrobio0 at mainbus?
1751.1Sscottr
1761.1Sscottr# NuBus support
1771.1Sscottrnubus0 at mainbus?
1781.1Sscottr
1791.1Sscottr
1801.1Sscottr# Console Devices
1811.1Sscottr
1821.1Sscottr# Apple Desktop Bus interface
1831.1Sscottradb0	at obio?
1841.1Sscottraed*	at adb?				# ADB event device
1851.1Sscottrakbd*	at adb?				# ADB keyboard
1861.1Sscottrams*	at adb?				# ADB mouse
1871.1Sscottr
1881.1Sscottr# Basic frame buffer support
1891.1Sscottr#intvid0	at obio?			# Internal video hardware
1901.1Sscottrmacvid*	at nubus?			# NuBus video card
1911.1Sscottr
1921.1Sscottr# Device-independent frame buffer interface
1931.1Sscottr#macfb*	at intvid?
1941.1Sscottrmacfb*	at macvid?
1951.1Sscottr
1961.1Sscottr# Workstation Console devices
1971.1Sscottrwsdisplay0 at macfb? console ?
1981.1Sscottrwskbd0	at akbd? console ?
1991.1Sscottrwsmouse0 at ams?
2001.1Sscottr
2011.1Sscottr
2021.1Sscottr# Serial Devices
2031.1Sscottr
2041.1Sscottr# On-board serial interface
2051.1Sscottrzsc0	at obio?
2061.1Sscottrzstty*	at zsc? channel ?
2071.1Sscottr
2081.1Sscottr
2091.1Sscottr# SCSI Controllers and Devices
2101.1Sscottr
2111.1Sscottr# SCSI controllers
2121.1Sscottr# XXX - use only one of ncrscsi or sbc
2131.1Sscottr#ncrscsi0 at obio?			# SCSI NCR 5380
2141.1Sscottrsbc0	at obio? flags 0x1		# MI SCSI NCR 5380
2151.1Sscottr#esp0	at obio?			# SCSI NCR 53C9x
2161.1Sscottr#esp1	at obio?			# SCSI NCR 53C9x
2171.1Sscottr
2181.1Sscottr# SCSI bus support
2191.1Sscottrscsibus* at scsi?
2201.1Sscottr
2211.1Sscottr# SCSI devices
2221.1Sscottrsd*	at scsibus? target ? lun ?	# SCSI disk drives
2231.1Sscottr#st*	at scsibus? target ? lun ?	# SCSI tape drives
2241.1Sscottr#cd*	at scsibus? target ? lun ?	# SCSI CD-ROM drives
2251.1Sscottr#ch*	at scsibus? target ? lun ?	# SCSI autochangers
2261.1Sscottr#se*	at scsibus? target ? lun ?	# SCSI ethernet
2271.1Sscottr#ss*	at scsibus? target ? lun ?	# SCSI scanners
2281.1Sscottr#uk*	at scsibus? target ? lun ?	# SCSI unknown
2291.1Sscottr
2301.1Sscottr# IDE controller and devices
2311.1Sscottr#wdc*	at obio? flags 0x1000
2321.1Sscottr#wd*	at wdc? channel ? drive ?
2331.1Sscottr
2341.1Sscottr
2351.1Sscottr# Miscellaneous mass storage devices
2361.1Sscottr
2371.1Sscottr# IWM floppy disk controller
2381.1Sscottr#iwm0	at obio?			# Sony driver (800K GCR)
2391.1Sscottr#fd*	at iwm? drive ?
2401.1Sscottr
2411.1Sscottr
2421.1Sscottr# Network Interfaces
2431.1Sscottr
2441.1Sscottr# On-board Ethernet controllers
2451.1Sscottr#sn*	at obio?			# SONIC-based (DP83932, DP83916)
2461.1Sscottr#mc*	at obio?			# MACE-based
2471.1Sscottr
2481.1Sscottr# NuBus Ethernet controllers
2491.1Sscottrae*	at nubus?			# DP8390-based
2501.1Sscottr#sn*	at nubus?			# SONIC-based (DP83932, DP83916)
2511.1Sscottr#sm*	at nubus?			# SMC 91cxx-based
2521.1Sscottr
2531.6Sjdolecek#nsphy*	at mii? phy ?
2541.6Sjdolecek#ukphy*	at mii? phy ?
2551.1Sscottr
2561.1Sscottr# Audio Devices
2571.1Sscottr
2581.1Sscottr# On-board audio hardware
2591.1Sscottrasc0	at obio?			# ASC/EASC audio
2601.1Sscottr
2611.1Sscottr# Pseudo-Devices
2621.1Sscottr
2631.1Sscottr# disk/mass storage pseudo-devices
2641.1Sscottrpseudo-device	ccd		4	# concatenated/striped disk devices
2651.1Sscottr#pseudo-device	raid		8	# RAIDframe disk driver
2661.1Sscottr#options 	RAID_AUTOCONFIG		# auto-configuration of RAID components
2671.1Sscottr# Options to enable various other RAIDframe RAID types.
2681.1Sscottr# options	RF_INCLUDE_EVENODD=1
2691.1Sscottr# options	RF_INCLUDE_RAID5_RS=1
2701.1Sscottr# options	RF_INCLUDE_PARITYLOGGING=1
2711.1Sscottr# options	RF_INCLUDE_CHAINDECLUSTER=1
2721.1Sscottr# options	RF_INCLUDE_INTERDECLUSTER=1
2731.1Sscottr# options 	RF_INCLUDE_PARITY_DECLUSTERING=1
2741.1Sscottr# options	RF_INCLUDE_PARITY_DECLUSTERING_DS=1
2751.1Sscottr#pseudo-device	md		1	# memory disk device (ramdisk)
2761.1Sscottr#pseudo-device	vcoda		1	# Venus/Coda distributed file system
2771.1Sscottrpseudo-device	vnd		4	# disk-like interface to files
2781.1Sscottr
2791.1Sscottr# network pseudo-devices
2801.1Sscottrpseudo-device	bpfilter	12	# Berkeley packet filter
2811.1Sscottrpseudo-device	ipfilter		# IP filter (firewall) and NAT
2821.1Sscottrpseudo-device	loop			# network loopback
2831.1Sscottrpseudo-device	ppp		2	# Point-to-Point Protocol
2841.1Sscottr#pseudo-device	pppoe			# PPP over Ethernet (RFC 2516)
2851.1Sscottr#pseudo-device	sl		2	# Serial Line IP
2861.1Sscottr#pseudo-device	strip		2	# Starmode Radio IP (Metricom)
2871.1Sscottrpseudo-device	tun		2	# network tunneling over tty
2881.1Sscottr#pseudo-device	gre		2	# generic L3 over IP tunnel
2891.1Sscottr#pseudo-device	gif		4	# IPv[46] over IPv[46] tunnel (RFC1933)
2901.1Sscottr#pseudo-device	faith		1	# IPv[46] tcp relay translation i/f
2911.1Sscottr#pseudo-device	stf		1	# 6to4 IPv6 over IPv4 encapsulation
2921.1Sscottr#pseudo-device	vlan			# IEEE 802.1q encapsulation
2931.1Sscottr#pseudo-device	bridge			# simple inter-network bridging
2941.1Sscottr
2951.1Sscottr# miscellaneous pseudo-devices
2961.1Sscottrpseudo-device	grf		2	# grf emulation for wscons
2971.1Sscottrpseudo-device	ite		1	# ite emulation for wscons
2981.1Sscottrpseudo-device	pty			# pseudo-terminals
2991.1Sscottr#pseudo-device	tb		1	# tablet line discipline
3001.2Slukempseudo-device	clockctl		# user control of clock subsystem
3011.1Sscottr
3021.1Sscottr# rnd is EXPERIMENTAL at this point.
3031.1Sscottr#pseudo-device	rnd			# /dev/random and in-kernel generator
3041.1Sscottr#options 	RND_COM			# use "com" randomness as well (BROKEN)
305