Linux 4.16
[linux-2.6-block.git] / arch / riscv / Kconfig
CommitLineData
fbe934d6
PD
1#
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
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
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
5ec9c4ff
CH
44config ZONE_DMA32
45 bool
46 default y
47
fbe934d6
PD
48config 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
10626c32
AK
60config TRACE_IRQFLAGS_SUPPORT
61 def_bool y
62
fbe934d6
PD
63config 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
002e6745 91config DMA_DIRECT_OPS
fbe934d6
PD
92 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
10626c32
AK
115 select HAVE_FUNCTION_TRACER
116 select HAVE_FUNCTION_GRAPH_TRACER
fbe934d6
PD
117
118endchoice
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.
123choice
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"
132endchoice
133
134choice
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"
145endchoice
146
147
148config 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
161config NR_CPUS
162 int "Maximum number of CPUs (2-32)"
163 range 2 32
164 depends on SMP
165 default "8"
166
167config CPU_SUPPORTS_32BIT_KERNEL
168 bool
169config CPU_SUPPORTS_64BIT_KERNEL
170 bool
171
172choice
173 prompt "CPU Tuning"
174 default TUNE_GENERIC
175
176config TUNE_GENERIC
177 bool "generic"
178
179endchoice
180
181config 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
191config RISCV_ISA_A
192 def_bool y
193
194endmenu
195
196menu "Kernel type"
197
198choice
199 prompt "Kernel code model"
200 default 64BIT
201
202config 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
208config 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
214endchoice
215
216source "mm/Kconfig"
217
218source "kernel/Kconfig.preempt"
219
220source "kernel/Kconfig.hz"
221
222endmenu
223
224menu "Bus support"
225
226config 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
236config PCI_DOMAINS
237 def_bool PCI
238
239config PCI_DOMAINS_GENERIC
240 def_bool PCI
241
242source "drivers/pci/Kconfig"
243
244endmenu
245
246source "init/Kconfig"
247
248source "kernel/Kconfig.freezer"
249
250menu "Executable file formats"
251
252source "fs/Kconfig.binfmt"
253
254endmenu
255
256menu "Power management options"
257
258source kernel/power/Kconfig
259
260endmenu
261
262source "net/Kconfig"
263
264source "drivers/Kconfig"
265
266source "fs/Kconfig"
267
268menu "Kernel hacking"
269
270config 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
287config 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
294config 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
304config EARLY_PRINTK
305 def_bool y
306
307source "lib/Kconfig.debug"
308
309config CMDLINE_BOOL
310 bool
311endmenu
312
313source "security/Kconfig"
314
315source "crypto/Kconfig"
316
317source "lib/Kconfig"