GENERIC revision 1.21 1 # $NetBSD: GENERIC,v 1.21 2022/11/25 12:35:44 jmcneill 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
21 include "arch/riscv/conf/std.riscv64"
22 include "arch/riscv/sifive/files.sifive"
23
24 options INCLUDE_CONFIG_FILE # embed config file in kernel binary
25
26 #ident "GENERIC-$Revision: 1.21 $"
27
28 maxusers 64 # estimated number of users
29
30 options FDT
31
32 #options EARLYCONS=com, CONSADDR=0x10000000 # qemu virt
33 #options EARLYCONS=com, CONSADDR=0x12440000 # sifive
34 options VERBOSE_INIT_RISCV
35
36 # Standard system options
37 #options FPE # Floating-point extension support
38 options NTP # NTP phase/frequency locked loop
39
40 options KTRACE # system call tracing via ktrace(1)
41
42 # Note: SysV IPC parameters could be changed dynamically, see sysctl(8).
43 options SYSVMSG # System V-like message queues
44 options SYSVSEM # System V-like semaphores
45 options SYSVSHM # System V-like memory sharing
46
47 options MODULAR # new style module(7) framework
48 options MODULAR_DEFAULT_AUTOLOAD
49 options USERCONF # userconf(4) support
50 #options PIPE_SOCKETPAIR # smaller, but slower pipe(2)
51 options 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
56 options BUFQ_PRIOCSCAN
57
58 # Diagnostic/debugging support options
59 options 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 #
78 makeoptions COPTS="-O2 -fno-omit-frame-pointer"
79 makeoptions COPY_SYMTAB=1
80 options DDB # in-kernel debugger
81 #options DDB_COMMANDONENTER="bt" # execute command when ddb is entered
82 options DDB_ONPANIC=1 # see also sysctl(7): `ddb.onpanic'
83 options 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
91 include "conf/compat_netbsd70.config"
92
93 #options COMPAT_NETBSD32
94 #options EXEC_ELF32
95
96 # Wedge support
97 options DKWEDGE_AUTODISCOVER # Automatically add dk(4) instances
98 options DKWEDGE_METHOD_GPT # Supports GPT partitions as wedges
99 options DKWEDGE_METHOD_BSDLABEL # Support disklabel entries as wedges
100 options DKWEDGE_METHOD_MBR # Support MBR partitions as wedges
101 options DKWEDGE_METHOD_APPLE # Support Apple partitions as wedges
102 #options DKWEDGE_METHOD_RDB # Support RDB partitions as wedges
103
104 include "conf/filesystems.config"
105
106 # File system options
107 options FFS_EI # FFS Endian Independent support
108 #options FFS_NO_SNAPSHOT # No FFS snapshot support
109 options QUOTA # legacy UFS quotas
110 options QUOTA2 # new, in-filesystem UFS quotas
111 #options UFS_DIRHASH # UFS Large Directory Hashing
112 options 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
116 options NFSSERVER # Network File System server
117 options NFS_BOOT_DHCP # Support DHCP NFS root
118
119 # Networking options
120 #options GATEWAY # packet forwarding
121 options INET # IP + ICMP + TCP + UDP
122 options INET6 # IPV6
123 options 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.
151 config netbsd root on ? type ?
152
153 #
154 # Device configuration
155 #
156 mainbus0 at root
157 simplebus* at fdt? pass 0
158
159 # Clock and reset controller
160 prci* at fdt? # SiFive FU540 PRCI
161
162 # UART
163 com* at fdt? # UART
164
165 # Pseudo-Devices
166
167 pseudo-device crypto # /dev/crypto device
168 pseudo-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
175 pseudo-device vnd # disk-like interface to files
176 options VND_COMPRESSION # compressed vnd(4)
177
178 pseudo-device loop # network loopback
179 pseudo-device pty # pseudo-terminals
180 pseudo-device clockctl # user control of clock subsystem
181 pseudo-device ksyms # /dev/ksyms
182 pseudo-device lockstat # lock profiling
183 pseudo-device swwdog # software watchdog timer -- swwdog(4)
184
185 # userland interface to drivers, including autoconf and properties retrieval
186 pseudo-device drvctl
187
188 options PAX_MPROTECT=0 # PaX mprotect(2) restrictions
189 options PAX_ASLR=0 # PaX Address Space Layout Randomization
190
191 cinclude "arch/riscv/conf/GENERIC.local"
192