RISC-V: Add CONFIG_HVC_RISCV_SBI=y to defconfig
[sfrench/cifs-2.6.git] / arch / riscv / Kconfig
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
11         select ARCH_WANT_FRAME_POINTERS
12         select CLONE_BACKWARDS
13         select COMMON_CLK
14         select DMA_DIRECT_OPS
15         select GENERIC_CLOCKEVENTS
16         select GENERIC_CPU_DEVICES
17         select GENERIC_IRQ_SHOW
18         select GENERIC_PCI_IOMAP
19         select GENERIC_STRNCPY_FROM_USER
20         select GENERIC_STRNLEN_USER
21         select GENERIC_SMP_IDLE_THREAD
22         select GENERIC_ATOMIC64 if !64BIT || !RISCV_ISA_A
23         select HAVE_MEMBLOCK
24         select HAVE_MEMBLOCK_NODE_MAP
25         select HAVE_DMA_API_DEBUG
26         select HAVE_DMA_CONTIGUOUS
27         select HAVE_GENERIC_DMA_COHERENT
28         select HAVE_PERF_EVENTS
29         select IRQ_DOMAIN
30         select NO_BOOTMEM
31         select RISCV_ISA_A if SMP
32         select SPARSE_IRQ
33         select SYSCTL_EXCEPTION_TRACE
34         select HAVE_ARCH_TRACEHOOK
35         select MODULES_USE_ELF_RELA if MODULES
36         select THREAD_INFO_IN_TASK
37         select RISCV_TIMER
38         select GENERIC_IRQ_MULTI_HANDLER
39
40 config MMU
41         def_bool y
42
43 # even on 32-bit, physical (and DMA) addresses are > 32-bits
44 config ARCH_PHYS_ADDR_T_64BIT
45         def_bool y
46
47 config ZONE_DMA32
48         bool
49         default y
50
51 config ARCH_DMA_ADDR_T_64BIT
52         def_bool y
53
54 config PAGE_OFFSET
55         hex
56         default 0xC0000000 if 32BIT && MAXPHYSMEM_2GB
57         default 0xffffffff80000000 if 64BIT && MAXPHYSMEM_2GB
58         default 0xffffffe000000000 if 64BIT && MAXPHYSMEM_128GB
59
60 config STACKTRACE_SUPPORT
61         def_bool y
62
63 config TRACE_IRQFLAGS_SUPPORT
64         def_bool y
65
66 config RWSEM_GENERIC_SPINLOCK
67         def_bool y
68
69 config GENERIC_BUG
70         def_bool y
71         depends on BUG
72         select GENERIC_BUG_RELATIVE_POINTERS if 64BIT
73
74 config GENERIC_BUG_RELATIVE_POINTERS
75         bool
76
77 config GENERIC_CALIBRATE_DELAY
78         def_bool y
79
80 config GENERIC_CSUM
81         def_bool y
82
83 config GENERIC_HWEIGHT
84         def_bool y
85
86 config PGTABLE_LEVELS
87         int
88         default 3 if 64BIT
89         default 2
90
91 config HAVE_KPROBES
92         def_bool n
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
115         select HAVE_FUNCTION_TRACER
116         select HAVE_FUNCTION_GRAPH_TRACER
117         select HAVE_FTRACE_MCOUNT_RECORD
118         select HAVE_DYNAMIC_FTRACE
119         select HAVE_DYNAMIC_FTRACE_WITH_REGS
120
121 endchoice
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.
126 choice
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"
135 endchoice
136
137 config MODULE_SECTIONS
138         bool
139         select HAVE_MOD_ARCH_SPECIFIC
140
141 choice
142         prompt "Maximum Physical Memory"
143         default MAXPHYSMEM_2GB if 32BIT
144         default MAXPHYSMEM_2GB if 64BIT && CMODEL_MEDLOW
145         default MAXPHYSMEM_128GB if 64BIT && CMODEL_MEDANY
146
147         config MAXPHYSMEM_2GB
148                 bool "2GiB"
149         config MAXPHYSMEM_128GB
150                 depends on 64BIT && CMODEL_MEDANY
151                 select MODULE_SECTIONS if MODULES
152                 bool "128GiB"
153 endchoice
154
155
156 config SMP
157         bool "Symmetric Multi-Processing"
158         help
159           This enables support for systems with more than one CPU.  If
160           you say N here, the kernel will run on single and
161           multiprocessor machines, but will use only one CPU of a
162           multiprocessor machine. If you say Y here, the kernel will run
163           on many, but not all, single processor machines. On a single
164           processor machine, the kernel will run faster if you say N
165           here.
166
167           If you don't know what to do here, say N.
168
169 config NR_CPUS
170         int "Maximum number of CPUs (2-32)"
171         range 2 32
172         depends on SMP
173         default "8"
174
175 config CPU_SUPPORTS_32BIT_KERNEL
176         bool
177 config CPU_SUPPORTS_64BIT_KERNEL
178         bool
179
180 choice
181         prompt "CPU Tuning"
182         default TUNE_GENERIC
183
184 config TUNE_GENERIC
185         bool "generic"
186
187 endchoice
188
189 config RISCV_ISA_C
190         bool "Emit compressed instructions when building Linux"
191         default y
192         help
193            Adds "C" to the ISA subsets that the toolchain is allowed to emit
194            when building Linux, which results in compressed instructions in the
195            Linux binary.
196
197            If you don't know what to do here, say Y.
198
199 config RISCV_ISA_A
200         def_bool y
201
202 menu "supported PMU type"
203         depends on PERF_EVENTS
204
205 config RISCV_BASE_PMU
206         bool "Base Performance Monitoring Unit"
207         def_bool y
208         help
209           A base PMU that serves as a reference implementation and has limited
210           feature of perf.  It can run on any RISC-V machines so serves as the
211           fallback, but this option can also be disable to reduce kernel size.
212
213 endmenu
214
215 endmenu
216
217 menu "Kernel type"
218
219 choice
220         prompt "Kernel code model"
221         default 64BIT
222
223 config 32BIT
224         bool "32-bit kernel"
225         depends on CPU_SUPPORTS_32BIT_KERNEL
226         help
227           Select this option to build a 32-bit kernel.
228
229 config 64BIT
230         bool "64-bit kernel"
231         depends on CPU_SUPPORTS_64BIT_KERNEL
232         help
233           Select this option to build a 64-bit kernel.
234
235 endchoice
236
237 source "mm/Kconfig"
238
239 source "kernel/Kconfig.preempt"
240
241 source "kernel/Kconfig.hz"
242
243 endmenu
244
245 menu "Bus support"
246
247 config PCI
248         bool "PCI support"
249         select PCI_MSI
250         help
251           This feature enables support for PCI bus system. If you say Y
252           here, the kernel will include drivers and infrastructure code
253           to support PCI bus devices.
254
255           If you don't know what to do here, say Y.
256
257 config PCI_DOMAINS
258         def_bool PCI
259
260 config PCI_DOMAINS_GENERIC
261         def_bool PCI
262
263 source "drivers/pci/Kconfig"
264
265 endmenu
266
267 source "init/Kconfig"
268
269 source "kernel/Kconfig.freezer"
270
271 menu "Executable file formats"
272
273 source "fs/Kconfig.binfmt"
274
275 endmenu
276
277 menu "Power management options"
278
279 source kernel/power/Kconfig
280
281 endmenu
282
283 source "net/Kconfig"
284
285 source "drivers/Kconfig"
286
287 source "fs/Kconfig"
288
289 menu "Kernel hacking"
290
291 config CMDLINE_BOOL
292         bool "Built-in kernel command line"
293         help
294           For most platforms, it is firmware or second stage bootloader
295           that by default specifies the kernel command line options.
296           However, it might be necessary or advantageous to either override
297           the default kernel command line or add a few extra options to it.
298           For such cases, this option allows hardcoding command line options
299           directly into the kernel.
300
301           For that, choose 'Y' here and fill in the extra boot parameters
302           in CONFIG_CMDLINE.
303
304           The built-in options will be concatenated to the default command
305           line if CMDLINE_FORCE is set to 'N'. Otherwise, the default
306           command line will be ignored and replaced by the built-in string.
307
308 config CMDLINE
309         string "Built-in kernel command string"
310         depends on CMDLINE_BOOL
311         default ""
312         help
313           Supply command-line options at build time by entering them here.
314
315 config CMDLINE_FORCE
316         bool "Built-in command line overrides bootloader arguments"
317         depends on CMDLINE_BOOL
318         help
319           Set this option to 'Y' to have the kernel ignore the bootloader
320           or firmware command line.  Instead, the built-in command line
321           will be used exclusively.
322
323           If you don't know what to do here, say N.
324
325 config EARLY_PRINTK
326         def_bool y
327
328 source "lib/Kconfig.debug"
329
330 config CMDLINE_BOOL
331         bool
332 endmenu
333
334 source "security/Kconfig"
335
336 source "crypto/Kconfig"
337
338 source "lib/Kconfig"