GENERIC revision 1.20
11.20Sskrll# $NetBSD: GENERIC,v 1.20 2022/11/19 12:10:03 skrll Exp $
21.1Smatt#
31.1Smatt# GENERIC machine description file
41.1Smatt#
51.1Smatt# This machine description file is used to generate the default NetBSD
61.1Smatt# kernel.  The generic kernel does not include all options, subsystems
71.1Smatt# and device drivers, but should be useful for most applications.
81.1Smatt#
91.1Smatt# The machine description file can be customised for your specific
101.1Smatt# machine to reduce the kernel size and improve its performance.
111.1Smatt#
121.1Smatt# For further information on compiling NetBSD kernels, see the config(8)
131.1Smatt# man page.
141.1Smatt#
151.1Smatt# For further information on hardware support for this architecture, see
161.1Smatt# the intro(4) man page.  For further information about kernel options
171.1Smatt# for this architecture, see the options(4) man page.  For an explanation
181.1Smatt# of each device driver in this file see the section 4 man page for the
191.1Smatt# device.
201.1Smatt
211.1Smattinclude	"arch/riscv/conf/std.riscv64"
221.1Smatt
231.1Smattoptions 	INCLUDE_CONFIG_FILE	# embed config file in kernel binary
241.1Smatt
251.20Sskrll#ident 		"GENERIC-$Revision: 1.20 $"
261.1Smatt
271.1Smattmaxusers	64		# estimated number of users
281.1Smatt
291.14Sskrlloptions 	FDT
301.14Sskrll
311.20Sskrll#options 	EARLYCONS=com, CONSADDR=0x10000000	# qemu virt
321.20Sskrll#options 	EARLYCONS=com, CONSADDR=0x12440000	# sifive
331.14Sskrlloptions 	VERBOSE_INIT_RISCV
341.14Sskrll
351.1Smatt# Standard system options
361.11Sskrll#options 	FPE		# Floating-point extension support
371.1Smattoptions 	NTP		# NTP phase/frequency locked loop
381.1Smatt
391.1Smattoptions 	KTRACE		# system call tracing via ktrace(1)
401.1Smatt
411.1Smatt# Note: SysV IPC parameters could be changed dynamically, see sysctl(8).
421.1Smattoptions 	SYSVMSG		# System V-like message queues
431.1Smattoptions 	SYSVSEM		# System V-like semaphores
441.1Smattoptions 	SYSVSHM		# System V-like memory sharing
451.1Smatt
461.1Smattoptions 	MODULAR		# new style module(7) framework
471.1Smattoptions 	MODULAR_DEFAULT_AUTOLOAD
481.1Smattoptions 	USERCONF	# userconf(4) support
491.1Smatt#options 	PIPE_SOCKETPAIR	# smaller, but slower pipe(2)
501.1Smattoptions 	SYSCTL_INCLUDE_DESCR	# Include sysctl descriptions in kernel
511.1Smatt
521.1Smatt# Alternate buffer queue strategies for better responsiveness under high
531.1Smatt# disk I/O load.
541.1Smatt#options 	BUFQ_READPRIO
551.1Smattoptions 	BUFQ_PRIOCSCAN
561.1Smatt
571.1Smatt# Diagnostic/debugging support options
581.1Smattoptions 	DIAGNOSTIC	# inexpensive kernel consistency checks
591.1Smatt				# XXX to be commented out on release branch
601.14Sskrll#options  	DEBUG		# expensive debugging checks/support
611.14Sskrll#options  	LOCKDEBUG	# expensive locking checks/support
621.14Sskrll#options  	KERNHIST
631.14Sskrll#options  	KERNHIST_PRINT
641.14Sskrll#options  	UVMHIST
651.14Sskrll#options  	UVMHIST_PRINT
661.14Sskrll#options  	PMAPHIST
671.14Sskrll#options  	PMAPHIST_PRINT
681.14Sskrll#options  	SYSCTL_DEBUG
691.14Sskrll#options  	SYSCTL_DEBUG_SETUP
701.14Sskrll#options  	SYSCTL_DEBUG_CREATE
711.14Sskrll
721.1Smatt
731.1Smatt#
741.1Smatt# Because gcc omits the frame pointer for any -O level, the line below
751.1Smatt# is needed to make backtraces in DDB work.
761.1Smatt#
771.15Sskrllmakeoptions	COPTS="-O2 -fno-omit-frame-pointer"
781.1Smattmakeoptions	COPY_SYMTAB=1
791.1Smattoptions 	DDB		# in-kernel debugger
801.17Ssimonb#options 	DDB_COMMANDONENTER="bt"	# execute command when ddb is entered
811.14Sskrlloptions 	DDB_ONPANIC=1	# see also sysctl(7): `ddb.onpanic'
821.1Smattoptions 	DDB_HISTORY_SIZE=512	# enable history editing in DDB
831.1Smatt#options 	KGDB		# remote debugger
841.1Smatt#options 	KGDB_DEVNAME="\"com\"",KGDB_DEVADDR=0x3f8,KGDB_DEVRATE=9600
851.1Smatt#options 	SYSCALL_STATS	# per syscall counts
861.1Smatt#options 	SYSCALL_TIMES	# per syscall times
871.1Smatt#options 	SYSCALL_TIMES_HASCOUNTER	# use 'broken' rdtsc (soekris)
881.1Smatt
891.1Smatt# Compatibility options
901.7Smrginclude 	"conf/compat_netbsd70.config"
911.1Smatt
921.10Smaxv#options 	COMPAT_NETBSD32
931.1Smatt#options 	EXEC_ELF32
941.1Smatt
951.1Smatt# Wedge support
961.1Smattoptions 	DKWEDGE_AUTODISCOVER	# Automatically add dk(4) instances
971.1Smattoptions 	DKWEDGE_METHOD_GPT	# Supports GPT partitions as wedges
981.1Smattoptions 	DKWEDGE_METHOD_BSDLABEL	# Support disklabel entries as wedges
991.1Smattoptions 	DKWEDGE_METHOD_MBR	# Support MBR partitions as wedges
1001.17Ssimonboptions 	DKWEDGE_METHOD_APPLE    # Support Apple partitions as wedges
1011.17Ssimonb#options 	DKWEDGE_METHOD_RDB	# Support RDB partitions as wedges
1021.1Smatt
1031.7Smrginclude 	"conf/filesystems.config"
1041.1Smatt
1051.1Smatt# File system options
1061.13Ssimonboptions 	FFS_EI		# FFS Endian Independent support
1071.13Ssimonb#options 	FFS_NO_SNAPSHOT	# No FFS snapshot support
1081.1Smattoptions 	QUOTA		# legacy UFS quotas
1091.1Smattoptions 	QUOTA2		# new, in-filesystem UFS quotas
1101.13Ssimonb#options 	UFS_DIRHASH	# UFS Large Directory Hashing
1111.1Smattoptions 	WAPBL		# File system journaling support
1121.1Smatt#options 	EXT2FS_SYSTEM_FLAGS # makes ext2fs file flags (append and
1131.1Smatt				# immutable) behave as system flags.
1141.13Ssimonb#options 	DISKLABEL_EI	# disklabel Endian Independent support
1151.13Ssimonboptions 	NFSSERVER	# Network File System server
1161.18Ssimonboptions 	NFS_BOOT_DHCP	# Support DHCP NFS root
1171.1Smatt
1181.1Smatt# Networking options
1191.1Smatt#options 	GATEWAY		# packet forwarding
1201.1Smattoptions 	INET		# IP + ICMP + TCP + UDP
1211.1Smattoptions 	INET6		# IPV6
1221.1Smattoptions 	IPSEC		# IP security
1231.1Smatt#options 	IPSEC_DEBUG	# debug for IP security
1241.3Schristos#options 	MPLS		# MultiProtocol Label Switching (needs mpls)
1251.1Smatt#options 	MROUTING	# IP multicast routing
1261.1Smatt#options 	PIM		# Protocol Independent Multicast
1271.1Smatt#options 	NETATALK	# AppleTalk networking protocols
1281.1Smatt#options 	PPP_BSDCOMP	# BSD-Compress compression support for PPP
1291.1Smatt#options 	PPP_DEFLATE	# Deflate compression support for PPP
1301.1Smatt#options 	PPP_FILTER	# Active filter support for PPP (requires bpf)
1311.1Smatt#options 	TCP_DEBUG	# Record last TCP_NDEBUG packets with SO_DEBUG
1321.1Smatt
1331.1Smatt#options 	ALTQ		# Manipulate network interfaces' output queues
1341.1Smatt#options 	ALTQ_BLUE	# Stochastic Fair Blue
1351.1Smatt#options 	ALTQ_CBQ	# Class-Based Queueing
1361.1Smatt#options 	ALTQ_CDNR	# Diffserv Traffic Conditioner
1371.1Smatt#options 	ALTQ_FIFOQ	# First-In First-Out Queue
1381.1Smatt#options 	ALTQ_FLOWVALVE	# RED/flow-valve (red-penalty-box)
1391.1Smatt#options 	ALTQ_HFSC	# Hierarchical Fair Service Curve
1401.1Smatt#options 	ALTQ_LOCALQ	# Local queueing discipline
1411.1Smatt#options 	ALTQ_PRIQ	# Priority Queueing
1421.1Smatt#options 	ALTQ_RED	# Random Early Detection
1431.1Smatt#options 	ALTQ_RIO	# RED with IN/OUT
1441.1Smatt#options 	ALTQ_WFQ	# Weighted Fair Queueing
1451.1Smatt
1461.1Smatt# These options enable verbose messages for several subsystems.
1471.1Smatt# Warning, these may compile large string tables into the kernel!
1481.1Smatt
1491.1Smatt# Kernel root file system and dump configuration.
1501.1Smattconfig		netbsd	root on ? type ?
1511.1Smatt
1521.1Smatt#
1531.1Smatt# Device configuration
1541.1Smatt#
1551.14Sskrllmainbus0 	at root
1561.14Sskrllsimplebus* 	at fdt? pass 0
1571.1Smatt
1581.14Sskrll# UART
1591.14Sskrllcom* 		at fdt?			# UART
1601.1Smatt
1611.1Smatt# Pseudo-Devices
1621.1Smatt
1631.1Smattpseudo-device 	crypto			# /dev/crypto device
1641.1Smattpseudo-device	swcrypto		# software crypto implementation
1651.1Smatt
1661.1Smatt# disk/mass storage pseudo-devices
1671.1Smatt#pseudo-device	md			# memory disk device (ramdisk)
1681.1Smatt#options 	MEMORY_DISK_HOOKS	# enable root ramdisk
1691.1Smatt#options 	MEMORY_DISK_DYNAMIC	# loaded via kernel module(7)
1701.1Smatt
1711.1Smattpseudo-device	vnd			# disk-like interface to files
1721.1Smattoptions 	VND_COMPRESSION		# compressed vnd(4)
1731.1Smatt
1741.1Smattpseudo-device	loop			# network loopback
1751.1Smattpseudo-device	pty			# pseudo-terminals
1761.1Smattpseudo-device	clockctl		# user control of clock subsystem
1771.1Smattpseudo-device	ksyms			# /dev/ksyms
1781.1Smattpseudo-device	lockstat		# lock profiling
1791.16Sriastradpseudo-device 	swwdog			# software watchdog timer -- swwdog(4)
1801.1Smatt
1811.1Smatt# userland interface to drivers, including autoconf and properties retrieval
1821.1Smattpseudo-device	drvctl
1831.1Smatt
1841.1Smattoptions 	PAX_MPROTECT=0		# PaX mprotect(2) restrictions
1851.1Smattoptions 	PAX_ASLR=0		# PaX Address Space Layout Randomization
1861.19Ssimonb
1871.19Ssimonbcinclude 	"arch/riscv/conf/GENERIC.local"
188