]>
Commit | Line | Data |
---|---|---|
ec8f24b7 | 1 | # SPDX-License-Identifier: GPL-2.0-only |
fbe934d6 PD |
2 | # |
3 | # For a description of the syntax of this configuration file, | |
4 | # see Documentation/kbuild/kconfig-language.txt. | |
5 | # | |
6 | ||
c3e4ed01 CH |
7 | config 64BIT |
8 | bool | |
9 | ||
10 | config 32BIT | |
11 | bool | |
12 | ||
fbe934d6 PD |
13 | config RISCV |
14 | def_bool y | |
d4a451d5 CH |
15 | # even on 32-bit, physical (and DMA) addresses are > 32-bits |
16 | select PHYS_ADDR_T_64BIT | |
fbe934d6 PD |
17 | select OF |
18 | select OF_EARLY_FLATTREE | |
19 | select OF_IRQ | |
fbe934d6 PD |
20 | select ARCH_WANT_FRAME_POINTERS |
21 | select CLONE_BACKWARDS | |
22 | select COMMON_CLK | |
23 | select GENERIC_CLOCKEVENTS | |
24 | select GENERIC_CPU_DEVICES | |
25 | select GENERIC_IRQ_SHOW | |
26 | select GENERIC_PCI_IOMAP | |
9b9afe4a | 27 | select GENERIC_SCHED_CLOCK |
fbe934d6 PD |
28 | select GENERIC_STRNCPY_FROM_USER |
29 | select GENERIC_STRNLEN_USER | |
30 | select GENERIC_SMP_IDLE_THREAD | |
09afac77 | 31 | select GENERIC_ATOMIC64 if !64BIT |
efe75c49 | 32 | select HAVE_ARCH_AUDITSYSCALL |
5ec9c4ff | 33 | select HAVE_MEMBLOCK_NODE_MAP |
fbe934d6 | 34 | select HAVE_DMA_CONTIGUOUS |
b90edb33 | 35 | select HAVE_FUTEX_CMPXCHG if FUTEX |
178e9fc4 | 36 | select HAVE_PERF_EVENTS |
5aeb1b36 | 37 | select HAVE_SYSCALL_TRACEPOINTS |
fbe934d6 | 38 | select IRQ_DOMAIN |
fbe934d6 PD |
39 | select SPARSE_IRQ |
40 | select SYSCTL_EXCEPTION_TRACE | |
41 | select HAVE_ARCH_TRACEHOOK | |
eb01d42a | 42 | select HAVE_PCI |
fbe934d6 | 43 | select MODULES_USE_ELF_RELA if MODULES |
2cffc956 | 44 | select MODULE_SECTIONS if MODULES |
fbe934d6 | 45 | select THREAD_INFO_IN_TASK |
2eac9c2d | 46 | select PCI_DOMAINS_GENERIC if PCI |
eb01d42a | 47 | select PCI_MSI if PCI |
fbe934d6 | 48 | select RISCV_TIMER |
cc6c9848 | 49 | select GENERIC_IRQ_MULTI_HANDLER |
3010a5ea | 50 | select ARCH_HAS_PTE_SPECIAL |
b012980d | 51 | select ARCH_HAS_MMIOWB |
2353ecc6 | 52 | select HAVE_EBPF_JIT if 64BIT |
fbe934d6 PD |
53 | |
54 | config MMU | |
55 | def_bool y | |
56 | ||
5ec9c4ff CH |
57 | config ZONE_DMA32 |
58 | bool | |
f1306f04 | 59 | default y if 64BIT |
5ec9c4ff | 60 | |
fbe934d6 PD |
61 | config PAGE_OFFSET |
62 | hex | |
63 | default 0xC0000000 if 32BIT && MAXPHYSMEM_2GB | |
64 | default 0xffffffff80000000 if 64BIT && MAXPHYSMEM_2GB | |
65 | default 0xffffffe000000000 if 64BIT && MAXPHYSMEM_128GB | |
66 | ||
67 | config STACKTRACE_SUPPORT | |
68 | def_bool y | |
69 | ||
10626c32 AK |
70 | config TRACE_IRQFLAGS_SUPPORT |
71 | def_bool y | |
72 | ||
fbe934d6 PD |
73 | config GENERIC_BUG |
74 | def_bool y | |
75 | depends on BUG | |
76 | select GENERIC_BUG_RELATIVE_POINTERS if 64BIT | |
77 | ||
78 | config GENERIC_BUG_RELATIVE_POINTERS | |
79 | bool | |
80 | ||
81 | config GENERIC_CALIBRATE_DELAY | |
82 | def_bool y | |
83 | ||
84 | config GENERIC_CSUM | |
85 | def_bool y | |
86 | ||
87 | config GENERIC_HWEIGHT | |
88 | def_bool y | |
89 | ||
f2c17aab AP |
90 | config FIX_EARLYCON_MEM |
91 | def_bool y | |
92 | ||
fbe934d6 PD |
93 | config PGTABLE_LEVELS |
94 | int | |
95 | default 3 if 64BIT | |
96 | default 2 | |
97 | ||
fbe934d6 PD |
98 | menu "Platform type" |
99 | ||
100 | choice | |
101 | prompt "Base ISA" | |
102 | default ARCH_RV64I | |
103 | help | |
86cca81a | 104 | This selects the base ISA that this kernel will target and must match |
fbe934d6 PD |
105 | the target platform. |
106 | ||
107 | config ARCH_RV32I | |
108 | bool "RV32I" | |
fbe934d6 | 109 | select 32BIT |
e3d59805 MR |
110 | select GENERIC_LIB_ASHLDI3 |
111 | select GENERIC_LIB_ASHRDI3 | |
112 | select GENERIC_LIB_LSHRDI3 | |
8f79125d | 113 | select GENERIC_LIB_UCMPDI2 |
fbe934d6 PD |
114 | |
115 | config ARCH_RV64I | |
116 | bool "RV64I" | |
fbe934d6 | 117 | select 64BIT |
ee592884 | 118 | select ARCH_SUPPORTS_INT128 if GCC_VERSION >= 50000 |
10626c32 AK |
119 | select HAVE_FUNCTION_TRACER |
120 | select HAVE_FUNCTION_GRAPH_TRACER | |
a1d2a6b4 | 121 | select HAVE_FTRACE_MCOUNT_RECORD |
c15ac4fd | 122 | select HAVE_DYNAMIC_FTRACE |
aea4c671 | 123 | select HAVE_DYNAMIC_FTRACE_WITH_REGS |
10314e09 | 124 | select SWIOTLB |
fbe934d6 PD |
125 | |
126 | endchoice | |
127 | ||
128 | # We must be able to map all physical memory into the kernel, but the compiler | |
129 | # is still a bit more efficient when generating code if it's setup in a manner | |
130 | # such that it can only map 2GiB of memory. | |
131 | choice | |
132 | prompt "Kernel Code Model" | |
133 | default CMODEL_MEDLOW if 32BIT | |
134 | default CMODEL_MEDANY if 64BIT | |
135 | ||
136 | config CMODEL_MEDLOW | |
137 | bool "medium low code model" | |
138 | config CMODEL_MEDANY | |
139 | bool "medium any code model" | |
140 | endchoice | |
141 | ||
ab1ef68e ZL |
142 | config MODULE_SECTIONS |
143 | bool | |
144 | select HAVE_MOD_ARCH_SPECIFIC | |
145 | ||
fbe934d6 PD |
146 | choice |
147 | prompt "Maximum Physical Memory" | |
148 | default MAXPHYSMEM_2GB if 32BIT | |
149 | default MAXPHYSMEM_2GB if 64BIT && CMODEL_MEDLOW | |
150 | default MAXPHYSMEM_128GB if 64BIT && CMODEL_MEDANY | |
151 | ||
152 | config MAXPHYSMEM_2GB | |
153 | bool "2GiB" | |
154 | config MAXPHYSMEM_128GB | |
155 | depends on 64BIT && CMODEL_MEDANY | |
156 | bool "128GiB" | |
157 | endchoice | |
158 | ||
159 | ||
160 | config SMP | |
161 | bool "Symmetric Multi-Processing" | |
162 | help | |
163 | This enables support for systems with more than one CPU. If | |
164 | you say N here, the kernel will run on single and | |
165 | multiprocessor machines, but will use only one CPU of a | |
166 | multiprocessor machine. If you say Y here, the kernel will run | |
167 | on many, but not all, single processor machines. On a single | |
168 | processor machine, the kernel will run faster if you say N | |
169 | here. | |
170 | ||
171 | If you don't know what to do here, say N. | |
172 | ||
173 | config NR_CPUS | |
174 | int "Maximum number of CPUs (2-32)" | |
175 | range 2 32 | |
176 | depends on SMP | |
177 | default "8" | |
178 | ||
fbe934d6 PD |
179 | choice |
180 | prompt "CPU Tuning" | |
181 | default TUNE_GENERIC | |
182 | ||
183 | config TUNE_GENERIC | |
184 | bool "generic" | |
185 | ||
186 | endchoice | |
187 | ||
188 | config RISCV_ISA_C | |
189 | bool "Emit compressed instructions when building Linux" | |
190 | default y | |
191 | help | |
192 | Adds "C" to the ISA subsets that the toolchain is allowed to emit | |
193 | when building Linux, which results in compressed instructions in the | |
194 | Linux binary. | |
195 | ||
196 | If you don't know what to do here, say Y. | |
197 | ||
178e9fc4 AK |
198 | menu "supported PMU type" |
199 | depends on PERF_EVENTS | |
200 | ||
201 | config RISCV_BASE_PMU | |
202 | bool "Base Performance Monitoring Unit" | |
203 | def_bool y | |
204 | help | |
205 | A base PMU that serves as a reference implementation and has limited | |
206 | feature of perf. It can run on any RISC-V machines so serves as the | |
207 | fallback, but this option can also be disable to reduce kernel size. | |
208 | ||
209 | endmenu | |
210 | ||
9671f706 AK |
211 | config FPU |
212 | bool "FPU support" | |
213 | default y | |
214 | help | |
215 | Say N here if you want to disable all floating-point related procedure | |
216 | in the kernel. | |
217 | ||
218 | If you don't know what to do here, say Y. | |
219 | ||
fbe934d6 PD |
220 | endmenu |
221 | ||
aef53f97 | 222 | menu "Kernel features" |
fbe934d6 | 223 | |
fbe934d6 PD |
224 | source "kernel/Kconfig.hz" |
225 | ||
226 | endmenu | |
227 | ||
aef53f97 NK |
228 | menu "Boot options" |
229 | ||
3aed8c43 NK |
230 | config CMDLINE |
231 | string "Built-in kernel command line" | |
aef53f97 | 232 | help |
3aed8c43 NK |
233 | For most platforms, the arguments for the kernel's command line |
234 | are provided at run-time, during boot. However, there are cases | |
235 | where either no arguments are being provided or the provided | |
236 | arguments are insufficient or even invalid. | |
aef53f97 | 237 | |
3aed8c43 NK |
238 | When that occurs, it is possible to define a built-in command |
239 | line here and choose how the kernel should use it later on. | |
aef53f97 | 240 | |
3aed8c43 NK |
241 | choice |
242 | prompt "Built-in command line usage" if CMDLINE != "" | |
243 | default CMDLINE_FALLBACK | |
244 | help | |
245 | Choose how the kernel will handle the provided built-in command | |
246 | line. | |
aef53f97 | 247 | |
3aed8c43 NK |
248 | config CMDLINE_FALLBACK |
249 | bool "Use bootloader kernel arguments if available" | |
aef53f97 | 250 | help |
3aed8c43 NK |
251 | Use the built-in command line as fallback in case we get nothing |
252 | during boot. This is the default behaviour. | |
253 | ||
254 | config CMDLINE_EXTEND | |
255 | bool "Extend bootloader kernel arguments" | |
256 | help | |
257 | The command-line arguments provided during boot will be | |
258 | appended to the built-in command line. This is useful in | |
259 | cases where the provided arguments are insufficient and | |
260 | you don't want to or cannot modify them. | |
261 | ||
aef53f97 NK |
262 | |
263 | config CMDLINE_FORCE | |
3aed8c43 | 264 | bool "Always use the default kernel command string" |
aef53f97 | 265 | help |
3aed8c43 NK |
266 | Always use the built-in command line, even if we get one during |
267 | boot. This is useful in case you need to override the provided | |
268 | command line on systems where you don't have or want control | |
269 | over it. | |
aef53f97 | 270 | |
3aed8c43 | 271 | endchoice |
aef53f97 NK |
272 | |
273 | endmenu | |
274 | ||
fbe934d6 PD |
275 | menu "Power management options" |
276 | ||
8636a1f9 | 277 | source "kernel/power/Kconfig" |
fbe934d6 PD |
278 | |
279 | endmenu |