GENERIC revision 1.23
11.23Sabs# $NetBSD: GENERIC,v 1.23 2023/02/09 14:09:49 abs 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.21Sjmcneillinclude "arch/riscv/sifive/files.sifive"
231.1Smatt
241.1Smattoptions 	INCLUDE_CONFIG_FILE	# embed config file in kernel binary
251.1Smatt
261.23Sabs#ident 		"GENERIC-$Revision: 1.23 $"
271.1Smatt
281.1Smattmaxusers	64		# estimated number of users
291.1Smatt
301.14Sskrlloptions 	FDT
311.14Sskrll
321.20Sskrll#options 	EARLYCONS=com, CONSADDR=0x10000000	# qemu virt
331.20Sskrll#options 	EARLYCONS=com, CONSADDR=0x12440000	# sifive
341.14Sskrlloptions 	VERBOSE_INIT_RISCV
351.14Sskrll
361.1Smatt# Standard system options
371.11Sskrll#options 	FPE		# Floating-point extension support
381.1Smattoptions 	NTP		# NTP phase/frequency locked loop
391.1Smatt
401.1Smattoptions 	KTRACE		# system call tracing via ktrace(1)
411.1Smatt
421.1Smatt# Note: SysV IPC parameters could be changed dynamically, see sysctl(8).
431.1Smattoptions 	SYSVMSG		# System V-like message queues
441.1Smattoptions 	SYSVSEM		# System V-like semaphores
451.1Smattoptions 	SYSVSHM		# System V-like memory sharing
461.1Smatt
471.1Smattoptions 	MODULAR		# new style module(7) framework
481.1Smattoptions 	MODULAR_DEFAULT_AUTOLOAD
491.1Smattoptions 	USERCONF	# userconf(4) support
501.1Smatt#options 	PIPE_SOCKETPAIR	# smaller, but slower pipe(2)
511.1Smattoptions 	SYSCTL_INCLUDE_DESCR	# Include sysctl descriptions in kernel
521.1Smatt
531.1Smatt# Alternate buffer queue strategies for better responsiveness under high
541.1Smatt# disk I/O load.
551.1Smatt#options 	BUFQ_READPRIO
561.1Smattoptions 	BUFQ_PRIOCSCAN
571.1Smatt
581.1Smatt# Diagnostic/debugging support options
591.1Smattoptions 	DIAGNOSTIC	# inexpensive kernel consistency checks
601.1Smatt				# XXX to be commented out on release branch
611.14Sskrll#options  	DEBUG		# expensive debugging checks/support
621.14Sskrll#options  	LOCKDEBUG	# expensive locking checks/support
631.14Sskrll#options  	KERNHIST
641.14Sskrll#options  	KERNHIST_PRINT
651.14Sskrll#options  	UVMHIST
661.14Sskrll#options  	UVMHIST_PRINT
671.14Sskrll#options  	PMAPHIST
681.14Sskrll#options  	PMAPHIST_PRINT
691.14Sskrll#options  	SYSCTL_DEBUG
701.14Sskrll#options  	SYSCTL_DEBUG_SETUP
711.14Sskrll#options  	SYSCTL_DEBUG_CREATE
721.14Sskrll
731.1Smatt
741.1Smatt#
751.1Smatt# Because gcc omits the frame pointer for any -O level, the line below
761.1Smatt# is needed to make backtraces in DDB work.
771.1Smatt#
781.15Sskrllmakeoptions	COPTS="-O2 -fno-omit-frame-pointer"
791.1Smattmakeoptions	COPY_SYMTAB=1
801.1Smattoptions 	DDB		# in-kernel debugger
811.17Ssimonb#options 	DDB_COMMANDONENTER="bt"	# execute command when ddb is entered
821.14Sskrlloptions 	DDB_ONPANIC=1	# see also sysctl(7): `ddb.onpanic'
831.1Smattoptions 	DDB_HISTORY_SIZE=512	# enable history editing in DDB
841.1Smatt#options 	KGDB		# remote debugger
851.1Smatt#options 	KGDB_DEVNAME="\"com\"",KGDB_DEVADDR=0x3f8,KGDB_DEVRATE=9600
861.1Smatt#options 	SYSCALL_STATS	# per syscall counts
871.1Smatt#options 	SYSCALL_TIMES	# per syscall times
881.1Smatt#options 	SYSCALL_TIMES_HASCOUNTER	# use 'broken' rdtsc (soekris)
891.1Smatt
901.1Smatt# Compatibility options
911.7Smrginclude 	"conf/compat_netbsd70.config"
921.1Smatt
931.10Smaxv#options 	COMPAT_NETBSD32
941.1Smatt#options 	EXEC_ELF32
951.1Smatt
961.1Smatt# Wedge support
971.1Smattoptions 	DKWEDGE_AUTODISCOVER	# Automatically add dk(4) instances
981.1Smattoptions 	DKWEDGE_METHOD_GPT	# Supports GPT partitions as wedges
991.1Smattoptions 	DKWEDGE_METHOD_BSDLABEL	# Support disklabel entries as wedges
1001.1Smattoptions 	DKWEDGE_METHOD_MBR	# Support MBR partitions as wedges
1011.17Ssimonboptions 	DKWEDGE_METHOD_APPLE    # Support Apple partitions as wedges
1021.17Ssimonb#options 	DKWEDGE_METHOD_RDB	# Support RDB partitions as wedges
1031.1Smatt
1041.7Smrginclude 	"conf/filesystems.config"
1051.1Smatt
1061.1Smatt# File system options
1071.13Ssimonboptions 	FFS_EI		# FFS Endian Independent support
1081.13Ssimonb#options 	FFS_NO_SNAPSHOT	# No FFS snapshot support
1091.1Smattoptions 	QUOTA		# legacy UFS quotas
1101.1Smattoptions 	QUOTA2		# new, in-filesystem UFS quotas
1111.13Ssimonb#options 	UFS_DIRHASH	# UFS Large Directory Hashing
1121.1Smattoptions 	WAPBL		# File system journaling support
1131.1Smatt#options 	EXT2FS_SYSTEM_FLAGS # makes ext2fs file flags (append and
1141.1Smatt				# immutable) behave as system flags.
1151.13Ssimonb#options 	DISKLABEL_EI	# disklabel Endian Independent support
1161.13Ssimonboptions 	NFSSERVER	# Network File System server
1171.18Ssimonboptions 	NFS_BOOT_DHCP	# Support DHCP NFS root
1181.1Smatt
1191.1Smatt# Networking options
1201.1Smatt#options 	GATEWAY		# packet forwarding
1211.1Smattoptions 	INET		# IP + ICMP + TCP + UDP
1221.1Smattoptions 	INET6		# IPV6
1231.1Smattoptions 	IPSEC		# IP security
1241.1Smatt#options 	IPSEC_DEBUG	# debug for IP security
1251.3Schristos#options 	MPLS		# MultiProtocol Label Switching (needs mpls)
1261.1Smatt#options 	MROUTING	# IP multicast routing
1271.1Smatt#options 	PIM		# Protocol Independent Multicast
1281.1Smatt#options 	NETATALK	# AppleTalk networking protocols
1291.1Smatt#options 	PPP_BSDCOMP	# BSD-Compress compression support for PPP
1301.1Smatt#options 	PPP_DEFLATE	# Deflate compression support for PPP
1311.1Smatt#options 	PPP_FILTER	# Active filter support for PPP (requires bpf)
1321.1Smatt#options 	TCP_DEBUG	# Record last TCP_NDEBUG packets with SO_DEBUG
1331.1Smatt
1341.1Smatt#options 	ALTQ		# Manipulate network interfaces' output queues
1351.1Smatt#options 	ALTQ_BLUE	# Stochastic Fair Blue
1361.1Smatt#options 	ALTQ_CBQ	# Class-Based Queueing
1371.1Smatt#options 	ALTQ_CDNR	# Diffserv Traffic Conditioner
1381.1Smatt#options 	ALTQ_FIFOQ	# First-In First-Out Queue
1391.1Smatt#options 	ALTQ_FLOWVALVE	# RED/flow-valve (red-penalty-box)
1401.1Smatt#options 	ALTQ_HFSC	# Hierarchical Fair Service Curve
1411.1Smatt#options 	ALTQ_LOCALQ	# Local queueing discipline
1421.1Smatt#options 	ALTQ_PRIQ	# Priority Queueing
1431.1Smatt#options 	ALTQ_RED	# Random Early Detection
1441.1Smatt#options 	ALTQ_RIO	# RED with IN/OUT
1451.1Smatt#options 	ALTQ_WFQ	# Weighted Fair Queueing
1461.1Smatt
1471.1Smatt# These options enable verbose messages for several subsystems.
1481.1Smatt# Warning, these may compile large string tables into the kernel!
1491.1Smatt
1501.1Smatt# Kernel root file system and dump configuration.
1511.1Smattconfig		netbsd	root on ? type ?
1521.1Smatt
1531.1Smatt#
1541.1Smatt# Device configuration
1551.1Smatt#
1561.14Sskrllmainbus0 	at root
1571.14Sskrllsimplebus* 	at fdt? pass 0
1581.1Smatt
1591.21Sjmcneill# Clock and reset controller
1601.21Sjmcneillprci*		at fdt?			# SiFive FU540 PRCI
1611.21Sjmcneill
1621.14Sskrll# UART
1631.14Sskrllcom* 		at fdt?			# UART
1641.1Smatt
1651.1Smatt# Pseudo-Devices
1661.1Smatt
1671.1Smattpseudo-device 	crypto			# /dev/crypto device
1681.1Smattpseudo-device	swcrypto		# software crypto implementation
1691.1Smatt
1701.1Smatt# disk/mass storage pseudo-devices
1711.1Smatt#pseudo-device	md			# memory disk device (ramdisk)
1721.1Smatt#options 	MEMORY_DISK_HOOKS	# enable root ramdisk
1731.1Smatt#options 	MEMORY_DISK_DYNAMIC	# loaded via kernel module(7)
1741.1Smatt
1751.1Smattpseudo-device	vnd			# disk-like interface to files
1761.1Smattoptions 	VND_COMPRESSION		# compressed vnd(4)
1771.1Smatt
1781.1Smattpseudo-device	loop			# network loopback
1791.1Smattpseudo-device	pty			# pseudo-terminals
1801.1Smattpseudo-device	clockctl		# user control of clock subsystem
1811.1Smattpseudo-device	ksyms			# /dev/ksyms
1821.1Smattpseudo-device	lockstat		# lock profiling
1831.16Sriastradpseudo-device 	swwdog			# software watchdog timer -- swwdog(4)
1841.1Smatt
1851.1Smatt# userland interface to drivers, including autoconf and properties retrieval
1861.1Smattpseudo-device	drvctl
1871.1Smatt
1881.1Smattoptions 	PAX_MPROTECT=0		# PaX mprotect(2) restrictions
1891.1Smattoptions 	PAX_ASLR=0		# PaX Address Space Layout Randomization
1901.19Ssimonb
1911.23Sabs# Pull in optional local configuration - always at end
1921.19Ssimonbcinclude 	"arch/riscv/conf/GENERIC.local"
193