xref: /netbsd-src/sys/arch/riscv/conf/GENERIC.common (revision acb11d3a3cf0af3f4b32dba714ef621c2bc6fa1c)
1#
2#	$NetBSD: GENERIC.common,v 1.19 2025/01/25 13:52:19 skrll Exp $
3#
4#	GENERIC common RISC-V kernel config items shared between 32 and 64
5#	kernels
6#
7
8maxusers 	64		# estimated number of users
9
10options 	FDT
11options 	MULTIPROCESSOR
12
13# Standard system options
14options 	FPE		# Floating-point extension support
15options 	NTP		# NTP phase/frequency locked loop
16
17options 	KTRACE		# system call tracing via ktrace(1)
18
19# Heartbeat checks
20options 	HEARTBEAT
21options 	HEARTBEAT_MAX_PERIOD_DEFAULT=15
22
23# Note: SysV IPC parameters could be changed dynamically, see sysctl(8).
24options 	SYSVMSG		# System V-like message queues
25options 	SYSVSEM		# System V-like semaphores
26options 	SYSVSHM		# System V-like memory sharing
27
28options 	MODULAR		# new style module(7) framework
29options 	MODULAR_DEFAULT_AUTOLOAD
30options 	USERCONF	# userconf(4) support
31#options 	PIPE_SOCKETPAIR	# smaller, but slower pipe(2)
32options 	SYSCTL_INCLUDE_DESCR	# Include sysctl descriptions in kernel
33
34# Alternate buffer queue strategies for better responsiveness under high
35# disk I/O load.
36#options 	BUFQ_READPRIO
37options 	BUFQ_PRIOCSCAN
38
39# These options enable verbose messages for several subsystems.
40# Warning, these may compile large string tables into the kernel!
41#options 	USBVERBOSE	# verbose USB device autoconfig messages
42
43#
44# Because gcc omits the frame pointer for any -O level, the line below
45# is needed to make backtraces in DDB work.
46#
47makeoptions 	COPTS="-O2 -fno-omit-frame-pointer"
48makeoptions 	COPY_SYMTAB=1
49options 	DDB		# in-kernel debugger
50#options 	DDB_COMMANDONENTER="bt"	# execute command when ddb is entered
51options 	DDB_ONPANIC=1	# see also sysctl(7): `ddb.onpanic'
52options 	DDB_HISTORY_SIZE=512	# enable history editing in DDB
53#options 	KGDB		# remote debugger
54#options 	KGDB_DEVNAME="\"com\"",KGDB_DEVADDR=0x3f8,KGDB_DEVRATE=9600
55#options 	SYSCALL_STATS	# per syscall counts
56#options 	SYSCALL_TIMES	# per syscall times
57#options 	SYSCALL_TIMES_HASCOUNTER	# use 'broken' rdtsc (soekris)
58
59# Compatibility options
60include 	"conf/compat_netbsd100.config"
61
62# Wedge support
63options 	DKWEDGE_AUTODISCOVER	# Automatically add dk(4) instances
64options 	DKWEDGE_METHOD_GPT	# Supports GPT partitions as wedges
65options 	DKWEDGE_METHOD_BSDLABEL	# Support disklabel entries as wedges
66options 	DKWEDGE_METHOD_MBR	# Support MBR partitions as wedges
67options 	DKWEDGE_METHOD_APPLE    # Support Apple partitions as wedges
68#options 	DKWEDGE_METHOD_RDB	# Support RDB partitions as wedges
69#options 	DKWEDGE_METHOD_TOS	# Support Atari "TOS" partitions as wedges
70
71include 	"conf/filesystems.config"
72
73# File system options
74options 	FFS_EI		# FFS Endian Independent support
75#options 	FFS_NO_SNAPSHOT	# No FFS snapshot support
76options 	QUOTA		# legacy UFS quotas
77options 	QUOTA2		# new, in-filesystem UFS quotas
78#options 	UFS_DIRHASH	# UFS Large Directory Hashing
79options 	WAPBL		# File system journaling support
80#options 	DISKLABEL_EI	# disklabel Endian Independent support
81options 	NFSSERVER	# Network File System server
82options 	NFS_BOOT_DHCP	# Support DHCP NFS root
83
84# Networking options
85#options 	GATEWAY		# packet forwarding
86options 	INET		# IP + ICMP + TCP + UDP
87options 	INET6		# IPV6
88options 	IPSEC		# IP security
89#options 	IPSEC_DEBUG	# debug for IP security
90#options 	MPLS		# MultiProtocol Label Switching (needs mpls)
91#options 	MROUTING	# IP multicast routing
92#options 	PIM		# Protocol Independent Multicast
93#options 	NETATALK	# AppleTalk networking protocols
94#options 	PPP_BSDCOMP	# BSD-Compress compression support for PPP
95#options 	PPP_DEFLATE	# Deflate compression support for PPP
96#options 	PPP_FILTER	# Active filter support for PPP (requires bpf)
97#options 	TCP_DEBUG	# Record last TCP_NDEBUG packets with SO_DEBUG
98
99#options 	ALTQ		# Manipulate network interfaces' output queues
100#options 	ALTQ_BLUE	# Stochastic Fair Blue
101#options 	ALTQ_CBQ	# Class-Based Queueing
102#options 	ALTQ_CDNR	# Diffserv Traffic Conditioner
103#options 	ALTQ_FIFOQ	# First-In First-Out Queue
104#options 	ALTQ_FLOWVALVE	# RED/flow-valve (red-penalty-box)
105#options 	ALTQ_HFSC	# Hierarchical Fair Service Curve
106#options 	ALTQ_LOCALQ	# Local queueing discipline
107#options 	ALTQ_PRIQ	# Priority Queueing
108#options 	ALTQ_RED	# Random Early Detection
109#options 	ALTQ_RIO	# RED with IN/OUT
110#options 	ALTQ_WFQ	# Weighted Fair Queueing
111
112# These options enable verbose messages for several subsystems.
113# Warning, these may compile large string tables into the kernel!
114
115# Kernel root file system and dump configuration.
116config 		netbsd	root on ? type ?
117
118#
119# Device configuration
120#
121
122mainbus0 	at root
123simplebus* 	at fdt? pass 0
124
125# CPUs
126cpus* 		at fdt? pass 0
127cpu* 		at fdt? pass 0
128
129intc* 		at cpu? pass 1
130
131# Fixed Clocks
132fclock* 	at fdt? pass 1
133
134# System Controller
135syscon* 	at fdt? pass 1		# Generic System Controller
136
137# Core-level Interrupt Control block
138#clint0		at fdt? pass 2
139
140# Platform-Level Interrupt Controller
141plic* 		at fdt? pass 2
142
143# UART
144com* 		at fdt?			# UART
145
146# Firmware devices
147qemufwcfg* 	at fdt?			# QEMU Firmware Configuration device
148
149# RTC devices
150gfrtc* 		at fdt?			# Google Goldfish RTC
151
152# PCIE
153pcihost* 	at fdt?			# Generic PCI host controller
154pci* 		at pcibus?
155ppb* 		at pci? dev ? function ?
156pci* 		at ppb?
157
158# USB
159xhci* 		at fdt?			# XHCI
160xhci*		at pci?			# XHCI
161usb* 		at usbus?
162include "dev/usb/usbdevices.config"
163midi*		at midibus?
164pseudo-device 	sequencer		# MIDI sequencer
165
166# NVMe
167nvme* 		at pci? dev ? function ?
168ld* 		at nvme? nsid ?
169
170# I2C controllers
171dwiic* 		at fdt?			# Designware I2C
172iic* 		at i2cbus?
173
174# I2C devices
175#axppmic* 	at iic?			# X-Powers AXP Power Management IC
176#axpreg* 	at axppmic?
177
178# Virtio devices
179virtio* 	at fdt?			# Virtio MMIO device
180#viomb* 	at virtio?		# Virtio memory balloon device
181ld* 		at virtio?		# Virtio disk device
182viocon* 	at virtio?		# Virtio serial device
183vioif* 		at virtio?		# Virtio network device
184viornd* 	at virtio?		# Virtio entropy device
185#vioscsi* 	at virtio?		# Virtio SCSI device
186
187# Pseudo-Devices
188# network pseudo-devices
189pseudo-device 	bpfilter		# Berkeley packet filter
190pseudo-device 	bridge			# simple inter-network bridging
191pseudo-device 	carp			# Common Address Redundancy Protocol
192pseudo-device 	gif			# IPv[46] over IPv[46] tunnel (RFC 1933)
193pseudo-device 	gre			# generic L3 over IP tunnel
194pseudo-device 	ipsecif			# interface for routing-based ipsec
195pseudo-device 	loop			# network loopback
196pseudo-device 	npf			# NPF packet filter
197pseudo-device 	ppp			# Point-to-Point Protocol
198pseudo-device 	pppoe			# PPP over Ethernet (RFC 2516)
199pseudo-device 	swcrypto		# software crypto implementation
200pseudo-device 	tun			# network tunneling over tty
201pseudo-device 	tap			# virtual Ethernet
202pseudo-device 	vether			# Virtual Ethernet for bridge
203pseudo-device 	vlan			# IEEE 802.1q encapsulation
204
205# miscellaneous pseudo-devices
206pseudo-device 	clockctl		# user control of clock subsystem
207pseudo-device 	crypto			# /dev/crypto device
208pseudo-device 	lockstat		# lock profiling
209pseudo-device 	ksyms			# /dev/ksyms
210#pseudo-device 	pad			# pseudo audio device
211pseudo-device 	pty			# pseudo-terminals
212#options 	RND_COM
213pseudo-device 	swwdog			# software watchdog timer -- swwdog(4)
214
215
216# disk/mass storage pseudo-devices
217#pseudo-device 	md			# memory disk device (ramdisk)
218#options 	MEMORY_DISK_HOOKS	# enable root ramdisk
219#options 	MEMORY_DISK_DYNAMIC	# loaded via kernel module(7)
220
221pseudo-device	vnd			# disk-like interface to files
222options 	VND_COMPRESSION		# compressed vnd(4)
223
224# userland interface to drivers, including autoconf and properties retrieval
225pseudo-device 	drvctl
226
227options 	PAX_MPROTECT=0		# PaX mprotect(2) restrictions
228options 	PAX_ASLR=0		# PaX Address Space Layout Randomization
229
230# Pull in optional local configuration - always at end
231cinclude 	"arch/riscv/conf/GENERIC.local"
232