Commit | Line | Data |
---|---|---|
fbe934d6 PD |
1 | # |
2 | # For a description of the syntax of this configuration file, | |
3 | # see Documentation/kbuild/kconfig-language.txt. | |
4 | # | |
5 | ||
6 | config RISCV | |
7 | def_bool y | |
8 | select OF | |
9 | select OF_EARLY_FLATTREE | |
10 | select OF_IRQ | |
fbe934d6 PD |
11 | select ARCH_WANT_FRAME_POINTERS |
12 | select CLONE_BACKWARDS | |
13 | select COMMON_CLK | |
14 | select GENERIC_CLOCKEVENTS | |
15 | select GENERIC_CPU_DEVICES | |
16 | select GENERIC_IRQ_SHOW | |
17 | select GENERIC_PCI_IOMAP | |
18 | select GENERIC_STRNCPY_FROM_USER | |
19 | select GENERIC_STRNLEN_USER | |
20 | select GENERIC_SMP_IDLE_THREAD | |
21 | select GENERIC_ATOMIC64 if !64BIT || !RISCV_ISA_A | |
fbe934d6 | 22 | select HAVE_MEMBLOCK |
5ec9c4ff | 23 | select HAVE_MEMBLOCK_NODE_MAP |
fbe934d6 PD |
24 | select HAVE_DMA_API_DEBUG |
25 | select HAVE_DMA_CONTIGUOUS | |
26 | select HAVE_GENERIC_DMA_COHERENT | |
27 | select IRQ_DOMAIN | |
28 | select NO_BOOTMEM | |
29 | select RISCV_ISA_A if SMP | |
30 | select SPARSE_IRQ | |
31 | select SYSCTL_EXCEPTION_TRACE | |
32 | select HAVE_ARCH_TRACEHOOK | |
33 | select MODULES_USE_ELF_RELA if MODULES | |
34 | select THREAD_INFO_IN_TASK | |
fbe934d6 PD |
35 | select RISCV_TIMER |
36 | ||
37 | config MMU | |
38 | def_bool y | |
39 | ||
40 | # even on 32-bit, physical (and DMA) addresses are > 32-bits | |
41 | config ARCH_PHYS_ADDR_T_64BIT | |
42 | def_bool y | |
43 | ||
5ec9c4ff CH |
44 | config ZONE_DMA32 |
45 | bool | |
46 | default y | |
47 | ||
fbe934d6 PD |
48 | config ARCH_DMA_ADDR_T_64BIT |
49 | def_bool y | |
50 | ||
51 | config PAGE_OFFSET | |
52 | hex | |
53 | default 0xC0000000 if 32BIT && MAXPHYSMEM_2GB | |
54 | default 0xffffffff80000000 if 64BIT && MAXPHYSMEM_2GB | |
55 | default 0xffffffe000000000 if 64BIT && MAXPHYSMEM_128GB | |
56 | ||
57 | config STACKTRACE_SUPPORT | |
58 | def_bool y | |
59 | ||
10626c32 AK |
60 | config TRACE_IRQFLAGS_SUPPORT |
61 | def_bool y | |
62 | ||
fbe934d6 PD |
63 | config RWSEM_GENERIC_SPINLOCK |
64 | def_bool y | |
65 | ||
66 | config GENERIC_BUG | |
67 | def_bool y | |
68 | depends on BUG | |
69 | select GENERIC_BUG_RELATIVE_POINTERS if 64BIT | |
70 | ||
71 | config GENERIC_BUG_RELATIVE_POINTERS | |
72 | bool | |
73 | ||
74 | config GENERIC_CALIBRATE_DELAY | |
75 | def_bool y | |
76 | ||
77 | config GENERIC_CSUM | |
78 | def_bool y | |
79 | ||
80 | config GENERIC_HWEIGHT | |
81 | def_bool y | |
82 | ||
83 | config PGTABLE_LEVELS | |
84 | int | |
85 | default 3 if 64BIT | |
86 | default 2 | |
87 | ||
88 | config HAVE_KPROBES | |
89 | def_bool n | |
90 | ||
002e6745 | 91 | config DMA_DIRECT_OPS |
fbe934d6 PD |
92 | def_bool y |
93 | ||
94 | menu "Platform type" | |
95 | ||
96 | choice | |
97 | prompt "Base ISA" | |
98 | default ARCH_RV64I | |
99 | help | |
100 | This selects the base ISA that this kernel will traget and must match | |
101 | the target platform. | |
102 | ||
103 | config ARCH_RV32I | |
104 | bool "RV32I" | |
105 | select CPU_SUPPORTS_32BIT_KERNEL | |
106 | select 32BIT | |
107 | select GENERIC_ASHLDI3 | |
108 | select GENERIC_ASHRDI3 | |
109 | select GENERIC_LSHRDI3 | |
110 | ||
111 | config ARCH_RV64I | |
112 | bool "RV64I" | |
113 | select CPU_SUPPORTS_64BIT_KERNEL | |
114 | select 64BIT | |
10626c32 AK |
115 | select HAVE_FUNCTION_TRACER |
116 | select HAVE_FUNCTION_GRAPH_TRACER | |
fbe934d6 PD |
117 | |
118 | endchoice | |
119 | ||
120 | # We must be able to map all physical memory into the kernel, but the compiler | |
121 | # is still a bit more efficient when generating code if it's setup in a manner | |
122 | # such that it can only map 2GiB of memory. | |
123 | choice | |
124 | prompt "Kernel Code Model" | |
125 | default CMODEL_MEDLOW if 32BIT | |
126 | default CMODEL_MEDANY if 64BIT | |
127 | ||
128 | config CMODEL_MEDLOW | |
129 | bool "medium low code model" | |
130 | config CMODEL_MEDANY | |
131 | bool "medium any code model" | |
132 | endchoice | |
133 | ||
134 | choice | |
135 | prompt "Maximum Physical Memory" | |
136 | default MAXPHYSMEM_2GB if 32BIT | |
137 | default MAXPHYSMEM_2GB if 64BIT && CMODEL_MEDLOW | |
138 | default MAXPHYSMEM_128GB if 64BIT && CMODEL_MEDANY | |
139 | ||
140 | config MAXPHYSMEM_2GB | |
141 | bool "2GiB" | |
142 | config MAXPHYSMEM_128GB | |
143 | depends on 64BIT && CMODEL_MEDANY | |
144 | bool "128GiB" | |
145 | endchoice | |
146 | ||
147 | ||
148 | config SMP | |
149 | bool "Symmetric Multi-Processing" | |
150 | help | |
151 | This enables support for systems with more than one CPU. If | |
152 | you say N here, the kernel will run on single and | |
153 | multiprocessor machines, but will use only one CPU of a | |
154 | multiprocessor machine. If you say Y here, the kernel will run | |
155 | on many, but not all, single processor machines. On a single | |
156 | processor machine, the kernel will run faster if you say N | |
157 | here. | |
158 | ||
159 | If you don't know what to do here, say N. | |
160 | ||
161 | config NR_CPUS | |
162 | int "Maximum number of CPUs (2-32)" | |
163 | range 2 32 | |
164 | depends on SMP | |
165 | default "8" | |
166 | ||
167 | config CPU_SUPPORTS_32BIT_KERNEL | |
168 | bool | |
169 | config CPU_SUPPORTS_64BIT_KERNEL | |
170 | bool | |
171 | ||
172 | choice | |
173 | prompt "CPU Tuning" | |
174 | default TUNE_GENERIC | |
175 | ||
176 | config TUNE_GENERIC | |
177 | bool "generic" | |
178 | ||
179 | endchoice | |
180 | ||
181 | config RISCV_ISA_C | |
182 | bool "Emit compressed instructions when building Linux" | |
183 | default y | |
184 | help | |
185 | Adds "C" to the ISA subsets that the toolchain is allowed to emit | |
186 | when building Linux, which results in compressed instructions in the | |
187 | Linux binary. | |
188 | ||
189 | If you don't know what to do here, say Y. | |
190 | ||
191 | config RISCV_ISA_A | |
192 | def_bool y | |
193 | ||
194 | endmenu | |
195 | ||
196 | menu "Kernel type" | |
197 | ||
198 | choice | |
199 | prompt "Kernel code model" | |
200 | default 64BIT | |
201 | ||
202 | config 32BIT | |
203 | bool "32-bit kernel" | |
204 | depends on CPU_SUPPORTS_32BIT_KERNEL | |
205 | help | |
206 | Select this option to build a 32-bit kernel. | |
207 | ||
208 | config 64BIT | |
209 | bool "64-bit kernel" | |
210 | depends on CPU_SUPPORTS_64BIT_KERNEL | |
211 | help | |
212 | Select this option to build a 64-bit kernel. | |
213 | ||
214 | endchoice | |
215 | ||
216 | source "mm/Kconfig" | |
217 | ||
218 | source "kernel/Kconfig.preempt" | |
219 | ||
220 | source "kernel/Kconfig.hz" | |
221 | ||
222 | endmenu | |
223 | ||
224 | menu "Bus support" | |
225 | ||
226 | config PCI | |
227 | bool "PCI support" | |
228 | select PCI_MSI | |
229 | help | |
230 | This feature enables support for PCI bus system. If you say Y | |
231 | here, the kernel will include drivers and infrastructure code | |
232 | to support PCI bus devices. | |
233 | ||
234 | If you don't know what to do here, say Y. | |
235 | ||
236 | config PCI_DOMAINS | |
237 | def_bool PCI | |
238 | ||
239 | config PCI_DOMAINS_GENERIC | |
240 | def_bool PCI | |
241 | ||
242 | source "drivers/pci/Kconfig" | |
243 | ||
244 | endmenu | |
245 | ||
246 | source "init/Kconfig" | |
247 | ||
248 | source "kernel/Kconfig.freezer" | |
249 | ||
250 | menu "Executable file formats" | |
251 | ||
252 | source "fs/Kconfig.binfmt" | |
253 | ||
254 | endmenu | |
255 | ||
256 | menu "Power management options" | |
257 | ||
258 | source kernel/power/Kconfig | |
259 | ||
260 | endmenu | |
261 | ||
262 | source "net/Kconfig" | |
263 | ||
264 | source "drivers/Kconfig" | |
265 | ||
266 | source "fs/Kconfig" | |
267 | ||
268 | menu "Kernel hacking" | |
269 | ||
270 | config CMDLINE_BOOL | |
271 | bool "Built-in kernel command line" | |
272 | help | |
273 | For most platforms, it is firmware or second stage bootloader | |
274 | that by default specifies the kernel command line options. | |
275 | However, it might be necessary or advantageous to either override | |
276 | the default kernel command line or add a few extra options to it. | |
277 | For such cases, this option allows hardcoding command line options | |
278 | directly into the kernel. | |
279 | ||
280 | For that, choose 'Y' here and fill in the extra boot parameters | |
281 | in CONFIG_CMDLINE. | |
282 | ||
283 | The built-in options will be concatenated to the default command | |
284 | line if CMDLINE_OVERRIDE is set to 'N'. Otherwise, the default | |
285 | command line will be ignored and replaced by the built-in string. | |
286 | ||
287 | config CMDLINE | |
288 | string "Built-in kernel command string" | |
289 | depends on CMDLINE_BOOL | |
290 | default "" | |
291 | help | |
292 | Supply command-line options at build time by entering them here. | |
293 | ||
294 | config CMDLINE_OVERRIDE | |
295 | bool "Built-in command line overrides bootloader arguments" | |
296 | depends on CMDLINE_BOOL | |
297 | help | |
298 | Set this option to 'Y' to have the kernel ignore the bootloader | |
299 | or firmware command line. Instead, the built-in command line | |
300 | will be used exclusively. | |
301 | ||
302 | If you don't know what to do here, say N. | |
303 | ||
304 | config EARLY_PRINTK | |
305 | def_bool y | |
306 | ||
307 | source "lib/Kconfig.debug" | |
308 | ||
309 | config CMDLINE_BOOL | |
310 | bool | |
311 | endmenu | |
312 | ||
313 | source "security/Kconfig" | |
314 | ||
315 | source "crypto/Kconfig" | |
316 | ||
317 | source "lib/Kconfig" |