blob: 1e9d878c1ac4d3f7d6fcd42049c4ba8d51b1bc2f [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
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700119
120endchoice
121
122# We must be able to map all physical memory into the kernel, but the compiler
123# is still a bit more efficient when generating code if it's setup in a manner
124# such that it can only map 2GiB of memory.
125choice
126 prompt "Kernel Code Model"
127 default CMODEL_MEDLOW if 32BIT
128 default CMODEL_MEDANY if 64BIT
129
130 config CMODEL_MEDLOW
131 bool "medium low code model"
132 config CMODEL_MEDANY
133 bool "medium any code model"
134endchoice
135
136choice
137 prompt "Maximum Physical Memory"
138 default MAXPHYSMEM_2GB if 32BIT
139 default MAXPHYSMEM_2GB if 64BIT && CMODEL_MEDLOW
140 default MAXPHYSMEM_128GB if 64BIT && CMODEL_MEDANY
141
142 config MAXPHYSMEM_2GB
143 bool "2GiB"
144 config MAXPHYSMEM_128GB
145 depends on 64BIT && CMODEL_MEDANY
146 bool "128GiB"
147endchoice
148
149
150config SMP
151 bool "Symmetric Multi-Processing"
152 help
153 This enables support for systems with more than one CPU. If
154 you say N here, the kernel will run on single and
155 multiprocessor machines, but will use only one CPU of a
156 multiprocessor machine. If you say Y here, the kernel will run
157 on many, but not all, single processor machines. On a single
158 processor machine, the kernel will run faster if you say N
159 here.
160
161 If you don't know what to do here, say N.
162
163config NR_CPUS
164 int "Maximum number of CPUs (2-32)"
165 range 2 32
166 depends on SMP
167 default "8"
168
169config CPU_SUPPORTS_32BIT_KERNEL
170 bool
171config CPU_SUPPORTS_64BIT_KERNEL
172 bool
173
174choice
175 prompt "CPU Tuning"
176 default TUNE_GENERIC
177
178config TUNE_GENERIC
179 bool "generic"
180
181endchoice
182
183config RISCV_ISA_C
184 bool "Emit compressed instructions when building Linux"
185 default y
186 help
187 Adds "C" to the ISA subsets that the toolchain is allowed to emit
188 when building Linux, which results in compressed instructions in the
189 Linux binary.
190
191 If you don't know what to do here, say Y.
192
193config RISCV_ISA_A
194 def_bool y
195
196endmenu
197
198menu "Kernel type"
199
200choice
201 prompt "Kernel code model"
202 default 64BIT
203
204config 32BIT
205 bool "32-bit kernel"
206 depends on CPU_SUPPORTS_32BIT_KERNEL
207 help
208 Select this option to build a 32-bit kernel.
209
210config 64BIT
211 bool "64-bit kernel"
212 depends on CPU_SUPPORTS_64BIT_KERNEL
213 help
214 Select this option to build a 64-bit kernel.
215
216endchoice
217
218source "mm/Kconfig"
219
220source "kernel/Kconfig.preempt"
221
222source "kernel/Kconfig.hz"
223
224endmenu
225
226menu "Bus support"
227
228config PCI
229 bool "PCI support"
230 select PCI_MSI
231 help
232 This feature enables support for PCI bus system. If you say Y
233 here, the kernel will include drivers and infrastructure code
234 to support PCI bus devices.
235
236 If you don't know what to do here, say Y.
237
238config PCI_DOMAINS
239 def_bool PCI
240
241config PCI_DOMAINS_GENERIC
242 def_bool PCI
243
244source "drivers/pci/Kconfig"
245
246endmenu
247
248source "init/Kconfig"
249
250source "kernel/Kconfig.freezer"
251
252menu "Executable file formats"
253
254source "fs/Kconfig.binfmt"
255
256endmenu
257
258menu "Power management options"
259
260source kernel/power/Kconfig
261
262endmenu
263
264source "net/Kconfig"
265
266source "drivers/Kconfig"
267
268source "fs/Kconfig"
269
270menu "Kernel hacking"
271
272config CMDLINE_BOOL
273 bool "Built-in kernel command line"
274 help
275 For most platforms, it is firmware or second stage bootloader
276 that by default specifies the kernel command line options.
277 However, it might be necessary or advantageous to either override
278 the default kernel command line or add a few extra options to it.
279 For such cases, this option allows hardcoding command line options
280 directly into the kernel.
281
282 For that, choose 'Y' here and fill in the extra boot parameters
283 in CONFIG_CMDLINE.
284
285 The built-in options will be concatenated to the default command
286 line if CMDLINE_OVERRIDE is set to 'N'. Otherwise, the default
287 command line will be ignored and replaced by the built-in string.
288
289config CMDLINE
290 string "Built-in kernel command string"
291 depends on CMDLINE_BOOL
292 default ""
293 help
294 Supply command-line options at build time by entering them here.
295
296config CMDLINE_OVERRIDE
297 bool "Built-in command line overrides bootloader arguments"
298 depends on CMDLINE_BOOL
299 help
300 Set this option to 'Y' to have the kernel ignore the bootloader
301 or firmware command line. Instead, the built-in command line
302 will be used exclusively.
303
304 If you don't know what to do here, say N.
305
306config EARLY_PRINTK
307 def_bool y
308
309source "lib/Kconfig.debug"
310
311config CMDLINE_BOOL
312 bool
313endmenu
314
315source "security/Kconfig"
316
317source "crypto/Kconfig"
318
319source "lib/Kconfig"