GENERIC revision 1.22
1# $NetBSD: GENERIC,v 1.22 2023/02/09 13:16:04 abs Exp $
2#
3# GENERIC machine description file
4#
5# This machine description file is used to generate the default NetBSD
6# kernel.  The generic kernel does not include all options, subsystems
7# and device drivers, but should be useful for most applications.
8#
9# The machine description file can be customised for your specific
10# machine to reduce the kernel size and improve its performance.
11#
12# For further information on compiling NetBSD kernels, see the config(8)
13# man page.
14#
15# For further information on hardware support for this architecture, see
16# the intro(4) man page.  For further information about kernel options
17# for this architecture, see the options(4) man page.  For an explanation
18# of each device driver in this file see the section 4 man page for the
19# device.
20
21include	"arch/riscv/conf/std.riscv64"
22include "arch/riscv/sifive/files.sifive"
23
24options 	INCLUDE_CONFIG_FILE	# embed config file in kernel binary
25
26#ident 		"GENERIC-$Revision: 1.22 $"
27
28maxusers	64		# estimated number of users
29
30options 	FDT
31
32#options 	EARLYCONS=com, CONSADDR=0x10000000	# qemu virt
33#options 	EARLYCONS=com, CONSADDR=0x12440000	# sifive
34options 	VERBOSE_INIT_RISCV
35
36# Standard system options
37#options 	FPE		# Floating-point extension support
38options 	NTP		# NTP phase/frequency locked loop
39
40options 	KTRACE		# system call tracing via ktrace(1)
41
42# Note: SysV IPC parameters could be changed dynamically, see sysctl(8).
43options 	SYSVMSG		# System V-like message queues
44options 	SYSVSEM		# System V-like semaphores
45options 	SYSVSHM		# System V-like memory sharing
46
47options 	MODULAR		# new style module(7) framework
48options 	MODULAR_DEFAULT_AUTOLOAD
49options 	USERCONF	# userconf(4) support
50#options 	PIPE_SOCKETPAIR	# smaller, but slower pipe(2)
51options 	SYSCTL_INCLUDE_DESCR	# Include sysctl descriptions in kernel
52
53# Alternate buffer queue strategies for better responsiveness under high
54# disk I/O load.
55#options 	BUFQ_READPRIO
56options 	BUFQ_PRIOCSCAN
57
58# Diagnostic/debugging support options
59options 	DIAGNOSTIC	# inexpensive kernel consistency checks
60				# XXX to be commented out on release branch
61#options  	DEBUG		# expensive debugging checks/support
62#options  	LOCKDEBUG	# expensive locking checks/support
63#options  	KERNHIST
64#options  	KERNHIST_PRINT
65#options  	UVMHIST
66#options  	UVMHIST_PRINT
67#options  	PMAPHIST
68#options  	PMAPHIST_PRINT
69#options  	SYSCTL_DEBUG
70#options  	SYSCTL_DEBUG_SETUP
71#options  	SYSCTL_DEBUG_CREATE
72
73
74#
75# Because gcc omits the frame pointer for any -O level, the line below
76# is needed to make backtraces in DDB work.
77#
78makeoptions	COPTS="-O2 -fno-omit-frame-pointer"
79makeoptions	COPY_SYMTAB=1
80options 	DDB		# in-kernel debugger
81#options 	DDB_COMMANDONENTER="bt"	# execute command when ddb is entered
82options 	DDB_ONPANIC=1	# see also sysctl(7): `ddb.onpanic'
83options 	DDB_HISTORY_SIZE=512	# enable history editing in DDB
84#options 	KGDB		# remote debugger
85#options 	KGDB_DEVNAME="\"com\"",KGDB_DEVADDR=0x3f8,KGDB_DEVRATE=9600
86#options 	SYSCALL_STATS	# per syscall counts
87#options 	SYSCALL_TIMES	# per syscall times
88#options 	SYSCALL_TIMES_HASCOUNTER	# use 'broken' rdtsc (soekris)
89
90# Compatibility options
91include 	"conf/compat_netbsd70.config"
92
93#options 	COMPAT_NETBSD32
94#options 	EXEC_ELF32
95
96# Wedge support
97options 	DKWEDGE_AUTODISCOVER	# Automatically add dk(4) instances
98options 	DKWEDGE_METHOD_GPT	# Supports GPT partitions as wedges
99options 	DKWEDGE_METHOD_BSDLABEL	# Support disklabel entries as wedges
100options 	DKWEDGE_METHOD_MBR	# Support MBR partitions as wedges
101options 	DKWEDGE_METHOD_APPLE    # Support Apple partitions as wedges
102#options 	DKWEDGE_METHOD_RDB	# Support RDB partitions as wedges
103
104include 	"conf/filesystems.config"
105
106# File system options
107options 	FFS_EI		# FFS Endian Independent support
108#options 	FFS_NO_SNAPSHOT	# No FFS snapshot support
109options 	QUOTA		# legacy UFS quotas
110options 	QUOTA2		# new, in-filesystem UFS quotas
111#options 	UFS_DIRHASH	# UFS Large Directory Hashing
112options 	WAPBL		# File system journaling support
113#options 	EXT2FS_SYSTEM_FLAGS # makes ext2fs file flags (append and
114				# immutable) behave as system flags.
115#options 	DISKLABEL_EI	# disklabel Endian Independent support
116options 	NFSSERVER	# Network File System server
117options 	NFS_BOOT_DHCP	# Support DHCP NFS root
118
119# Networking options
120#options 	GATEWAY		# packet forwarding
121options 	INET		# IP + ICMP + TCP + UDP
122options 	INET6		# IPV6
123options 	IPSEC		# IP security
124#options 	IPSEC_DEBUG	# debug for IP security
125#options 	MPLS		# MultiProtocol Label Switching (needs mpls)
126#options 	MROUTING	# IP multicast routing
127#options 	PIM		# Protocol Independent Multicast
128#options 	NETATALK	# AppleTalk networking protocols
129#options 	PPP_BSDCOMP	# BSD-Compress compression support for PPP
130#options 	PPP_DEFLATE	# Deflate compression support for PPP
131#options 	PPP_FILTER	# Active filter support for PPP (requires bpf)
132#options 	TCP_DEBUG	# Record last TCP_NDEBUG packets with SO_DEBUG
133
134#options 	ALTQ		# Manipulate network interfaces' output queues
135#options 	ALTQ_BLUE	# Stochastic Fair Blue
136#options 	ALTQ_CBQ	# Class-Based Queueing
137#options 	ALTQ_CDNR	# Diffserv Traffic Conditioner
138#options 	ALTQ_FIFOQ	# First-In First-Out Queue
139#options 	ALTQ_FLOWVALVE	# RED/flow-valve (red-penalty-box)
140#options 	ALTQ_HFSC	# Hierarchical Fair Service Curve
141#options 	ALTQ_LOCALQ	# Local queueing discipline
142#options 	ALTQ_PRIQ	# Priority Queueing
143#options 	ALTQ_RED	# Random Early Detection
144#options 	ALTQ_RIO	# RED with IN/OUT
145#options 	ALTQ_WFQ	# Weighted Fair Queueing
146
147# These options enable verbose messages for several subsystems.
148# Warning, these may compile large string tables into the kernel!
149
150# Kernel root file system and dump configuration.
151config		netbsd	root on ? type ?
152
153#
154# Device configuration
155#
156mainbus0 	at root
157simplebus* 	at fdt? pass 0
158
159# Clock and reset controller
160prci*		at fdt?			# SiFive FU540 PRCI
161
162# UART
163com* 		at fdt?			# UART
164
165# Pseudo-Devices
166
167pseudo-device 	crypto			# /dev/crypto device
168pseudo-device	swcrypto		# software crypto implementation
169
170# disk/mass storage pseudo-devices
171#pseudo-device	md			# memory disk device (ramdisk)
172#options 	MEMORY_DISK_HOOKS	# enable root ramdisk
173#options 	MEMORY_DISK_DYNAMIC	# loaded via kernel module(7)
174
175pseudo-device	vnd			# disk-like interface to files
176options 	VND_COMPRESSION		# compressed vnd(4)
177
178pseudo-device	loop			# network loopback
179pseudo-device	pty			# pseudo-terminals
180pseudo-device	clockctl		# user control of clock subsystem
181pseudo-device	ksyms			# /dev/ksyms
182pseudo-device	lockstat		# lock profiling
183pseudo-device 	swwdog			# software watchdog timer -- swwdog(4)
184
185# userland interface to drivers, including autoconf and properties retrieval
186pseudo-device	drvctl
187
188options 	PAX_MPROTECT=0		# PaX mprotect(2) restrictions
189options 	PAX_ASLR=0		# PaX Address Space Layout Randomization
190
191# Pull in optional local configuration
192cinclude 	"arch/riscv/conf/GENERIC.local"
193