-
Notifications
You must be signed in to change notification settings - Fork 4
/
Kconfig
297 lines (206 loc) · 4.79 KB
/
Kconfig
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
mainmenu "Chariot Kernel Configuration"
source "arch/Kconfig"
menu "Build"
config CLANG
bool "Use Clang"
default n
config DEBUG_SYMBOLS
bool "Debug Symbols (-g)"
default n
config UBSAN
bool "Undefined Behavior sanitizer"
default y
# currently requires x86 due to linker problems in RISC-V
depends on X86
help
Enable UBSAN logging on architectures that support it.
config ADDITIONAL_KERNEL_FLAGS
string "[kernel] Additional GCC Flags"
default "-O2"
config ADDITIONAL_USER_FLAGS
string "[userspace] Additional GCC Flags"
default "-O2"
config DISK_SIZE_MB
int "Size of the virtual hard drive in megabytes"
default 256
config OVERRIDE_TOOLCHAIN
bool "Override toolchain prefix"
depends on !CLANG
default n
config TOOLCHAIN_PREFIX
string "Toolchain prefix"
depends on OVERRIDE_TOOLCHAIN
default "toolchain/..."
config GCC_VERSION
depends on !CLANG
string "GCC Version"
default "11.1.0"
endmenu
menu "Scheduler"
config SMP
bool "Symmetric multi-processing support"
default y
help
Enable multiprocessing
config PREFETCH_NEXT_THREAD
bool "Prefetch next thread in tick irq"
default y
config TICKS_PER_SECOND
int "Timer wakeup ticks per second"
default 1000
endmenu
menu "Config"
config QEMU_CORES
int "Core count to use in QEMU"
default "4"
config MAX_CPUS
int "Maximum Number of CPUs"
range 1 64
default "32"
help
Specifies the maximum number of hardware CPUs supported by Chariot
For uniprocessor environments, set this to 1
config EXT2
bool "Ext2 Filesystem"
default y
config PROCFS
bool "Proc Filesystem"
default n
config MEMORY_PREFETCH
bool "Predict access patterns and prefetch pages"
default y
config TOP_DOWN
bool "Allocate memory from the top of the address space down"
default y
help
Usually, kernels allocate memory from the top of the addr space down. For example,
the stack would be allocated at 0x7fff..... Setting this to `n` will make new regions
be allocated from the bottom up. The first region will be located at 0x1000.
config LOW_MEMORY
bool "Low memory mode (flush block cache when all refs are released, etc...)"
default n
menu "Runtime Debugging"
config LOG_ERROR
bool "Error Logging"
default y
config LOG_WARN
bool "Warning Logging"
default y
config LOG_INFO
bool "Info Logging"
default y
config LOG_DEBUG
bool "Debug Information Logging"
default y
config VERBOSE_PROCESS
bool "Verbose process debug"
default n
endmenu
endmenu
menu "Device Drivers"
config UART_CONSOLE
bool "Write console messages to the system UART"
default y
config ATA
bool "ATA/IDE"
default y
depends on X86
config ATA_DEBUG
bool "ATA Debug Logging"
default y
depends on ATA
config ATA_DMA
bool "Enable ATA DMA access"
default y
depends on ATA
config XHCI
bool "XHCI USB Host Controller"
default n
depends on X86
config AHCI
bool "[WIP] Support for Advance Host Controller Interface drives"
default n
depends on X86
config NVME
bool "[WIP] Support for NVMe Drives"
default n
depends on X86
config GENERIC_CHAR
bool "Generic character devices (urandom, null, etc..) [RECOMMENDED]"
default y
config E1000
bool "E1000 network cards"
default y
depends on X86
depends on LWIP
config RTL8139
bool "RTL8139 network cards"
default y
depends on X86
depends on LWIP
config PS2_HID
bool "PS2 HID devices (keyboard, mouse) [RECOMMENDED]"
default y
depends on X86
menu "Video"
config FRAMEBUFFER_WIDTH
int "Width of the VGA framebuffer"
default 1280
config FRAMEBUFFER_HEIGHT
int "Height of the VGA framebuffer"
default 1024
config FRAMEBUFFER_AUTODETECT
bool "Autodetect framebuffer dimensions from BIOS/grub"
default y
config VGA
bool "VGA displays beyond multiboot's boostrap [RECOMMENDED]"
default y
depends on X86
config VMWARE_VIDEO
bool "vmware displays"
default n
depends on X86
endmenu
config SB16
bool "[WIP] Soundblaster 16"
default y
depends on X86
config AC97
bool "[WIP] AC97 Audio Driver"
default y
depends on X86
config VIRTIO
bool "Virtio Devices"
default y
config SIFIVE_UART
bool "Sifive uart drivers"
depends on RISCV
default y
config NS16550_UART
bool "ns16550 uart drivers"
default y
endmenu
menu "Networking"
config LWIP
bool "Enable LWIP"
default n
config LWIP_DEBUG
depends on LWIP
bool "LWIP Debug prints"
default n
endmenu
config ENABLE_USERSPACE
bool "Enable Userspace"
default y
menu "Userspace"
depends on ENABLE_USERSPACE
config FANCY_WINDOWS
bool "Fancy Rounded windows"
default y
config GFX_FONT_MONO
bool "Monochrome font (no blending)"
default n
config SIMPLE_INIT
bool "Simple init (Only launch a shell, no services)"
default n
endmenu