blob: 61dd82709898512aac64997aad42b0f44f787063 [file] [log] [blame]
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -07001#
2# For a description of the syntax of this configuration file,
3# see Documentation/kbuild/kconfig-language.txt.
4#
5
6config RISCV
7 def_bool y
8 select OF
9 select OF_EARLY_FLATTREE
10 select OF_IRQ
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070011 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
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070022 select HAVE_MEMBLOCK
Christoph Hellwig5ec9c4f2018-01-16 09:37:50 +010023 select HAVE_MEMBLOCK_NODE_MAP
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070024 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
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070035 select RISCV_TIMER
36
37config MMU
38 def_bool y
39
40# even on 32-bit, physical (and DMA) addresses are > 32-bits
41config ARCH_PHYS_ADDR_T_64BIT
42 def_bool y
43
Christoph Hellwig5ec9c4f2018-01-16 09:37:50 +010044config ZONE_DMA32
45 bool
46 default y
47
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070048config ARCH_DMA_ADDR_T_64BIT
49 def_bool y
50
51config 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
57config STACKTRACE_SUPPORT
58 def_bool y
59
Alan Kao10626c32017-12-18 17:52:48 +080060config TRACE_IRQFLAGS_SUPPORT
61 def_bool y
62
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070063config RWSEM_GENERIC_SPINLOCK
64 def_bool y
65
66config GENERIC_BUG
67 def_bool y
68 depends on BUG
69 select GENERIC_BUG_RELATIVE_POINTERS if 64BIT
70
71config GENERIC_BUG_RELATIVE_POINTERS
72 bool
73
74config GENERIC_CALIBRATE_DELAY
75 def_bool y
76
77config GENERIC_CSUM
78 def_bool y
79
80config GENERIC_HWEIGHT
81 def_bool y
82
83config PGTABLE_LEVELS
84 int
85 default 3 if 64BIT
86 default 2
87
88config HAVE_KPROBES
89 def_bool n
90
Christoph Hellwig002e6742018-01-09 16:30:23 +010091config DMA_DIRECT_OPS
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070092 def_bool y
93
94menu "Platform type"
95
96choice
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
103config 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
111config ARCH_RV64I
112 bool "RV64I"
113 select CPU_SUPPORTS_64BIT_KERNEL
114 select 64BIT
Alan Kao10626c32017-12-18 17:52:48 +0800115 select HAVE_FUNCTION_TRACER
116 select HAVE_FUNCTION_GRAPH_TRACER
Alan Kaoa1d2a6b2018-02-13 13:13:16 +0800117 select HAVE_FTRACE_MCOUNT_RECORD
Alan Kaoc15ac4f2018-02-13 13:13:17 +0800118 select HAVE_DYNAMIC_FTRACE
Alan Kaoaea4c672018-02-13 13:13:20 +0800119 select HAVE_DYNAMIC_FTRACE_WITH_REGS
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700120
121endchoice
122
123# We must be able to map all physical memory into the kernel, but the compiler
124# is still a bit more efficient when generating code if it's setup in a manner
125# such that it can only map 2GiB of memory.
126choice
127 prompt "Kernel Code Model"
128 default CMODEL_MEDLOW if 32BIT
129 default CMODEL_MEDANY if 64BIT
130
131 config CMODEL_MEDLOW
132 bool "medium low code model"
133 config CMODEL_MEDANY
134 bool "medium any code model"
135endchoice
136
137choice
138 prompt "Maximum Physical Memory"
139 default MAXPHYSMEM_2GB if 32BIT
140 default MAXPHYSMEM_2GB if 64BIT && CMODEL_MEDLOW
141 default MAXPHYSMEM_128GB if 64BIT && CMODEL_MEDANY
142
143 config MAXPHYSMEM_2GB
144 bool "2GiB"
145 config MAXPHYSMEM_128GB
146 depends on 64BIT && CMODEL_MEDANY
147 bool "128GiB"
148endchoice
149
150
151config SMP
152 bool "Symmetric Multi-Processing"
153 help
154 This enables support for systems with more than one CPU. If
155 you say N here, the kernel will run on single and
156 multiprocessor machines, but will use only one CPU of a
157 multiprocessor machine. If you say Y here, the kernel will run
158 on many, but not all, single processor machines. On a single
159 processor machine, the kernel will run faster if you say N
160 here.
161
162 If you don't know what to do here, say N.
163
164config NR_CPUS
165 int "Maximum number of CPUs (2-32)"
166 range 2 32
167 depends on SMP
168 default "8"
169
170config CPU_SUPPORTS_32BIT_KERNEL
171 bool
172config CPU_SUPPORTS_64BIT_KERNEL
173 bool
174
175choice
176 prompt "CPU Tuning"
177 default TUNE_GENERIC
178
179config TUNE_GENERIC
180 bool "generic"
181
182endchoice
183
184config RISCV_ISA_C
185 bool "Emit compressed instructions when building Linux"
186 default y
187 help
188 Adds "C" to the ISA subsets that the toolchain is allowed to emit
189 when building Linux, which results in compressed instructions in the
190 Linux binary.
191
192 If you don't know what to do here, say Y.
193
194config RISCV_ISA_A
195 def_bool y
196
197endmenu
198
199menu "Kernel type"
200
201choice
202 prompt "Kernel code model"
203 default 64BIT
204
205config 32BIT
206 bool "32-bit kernel"
207 depends on CPU_SUPPORTS_32BIT_KERNEL
208 help
209 Select this option to build a 32-bit kernel.
210
211config 64BIT
212 bool "64-bit kernel"
213 depends on CPU_SUPPORTS_64BIT_KERNEL
214 help
215 Select this option to build a 64-bit kernel.
216
217endchoice
218
219source "mm/Kconfig"
220
221source "kernel/Kconfig.preempt"
222
223source "kernel/Kconfig.hz"
224
225endmenu
226
227menu "Bus support"
228
229config PCI
230 bool "PCI support"
231 select PCI_MSI
232 help
233 This feature enables support for PCI bus system. If you say Y
234 here, the kernel will include drivers and infrastructure code
235 to support PCI bus devices.
236
237 If you don't know what to do here, say Y.
238
239config PCI_DOMAINS
240 def_bool PCI
241
242config PCI_DOMAINS_GENERIC
243 def_bool PCI
244
245source "drivers/pci/Kconfig"
246
247endmenu
248
249source "init/Kconfig"
250
251source "kernel/Kconfig.freezer"
252
253menu "Executable file formats"
254
255source "fs/Kconfig.binfmt"
256
257endmenu
258
259menu "Power management options"
260
261source kernel/power/Kconfig
262
263endmenu
264
265source "net/Kconfig"
266
267source "drivers/Kconfig"
268
269source "fs/Kconfig"
270
271menu "Kernel hacking"
272
273config CMDLINE_BOOL
274 bool "Built-in kernel command line"
275 help
276 For most platforms, it is firmware or second stage bootloader
277 that by default specifies the kernel command line options.
278 However, it might be necessary or advantageous to either override
279 the default kernel command line or add a few extra options to it.
280 For such cases, this option allows hardcoding command line options
281 directly into the kernel.
282
283 For that, choose 'Y' here and fill in the extra boot parameters
284 in CONFIG_CMDLINE.
285
286 The built-in options will be concatenated to the default command
287 line if CMDLINE_OVERRIDE is set to 'N'. Otherwise, the default
288 command line will be ignored and replaced by the built-in string.
289
290config CMDLINE
291 string "Built-in kernel command string"
292 depends on CMDLINE_BOOL
293 default ""
294 help
295 Supply command-line options at build time by entering them here.
296
297config CMDLINE_OVERRIDE
298 bool "Built-in command line overrides bootloader arguments"
299 depends on CMDLINE_BOOL
300 help
301 Set this option to 'Y' to have the kernel ignore the bootloader
302 or firmware command line. Instead, the built-in command line
303 will be used exclusively.
304
305 If you don't know what to do here, say N.
306
307config EARLY_PRINTK
308 def_bool y
309
310source "lib/Kconfig.debug"
311
312config CMDLINE_BOOL
313 bool
314endmenu
315
316source "security/Kconfig"
317
318source "crypto/Kconfig"
319
320source "lib/Kconfig"