Merge remote-tracking branches 'asoc/topic/wm8753', 'asoc/topic/wm8770', 'asoc/topic...
[linux-block.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 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
22         select HAVE_MEMBLOCK
23         select HAVE_MEMBLOCK_NODE_MAP
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
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
44 config ZONE_DMA32
45         bool
46         default y
47
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
60 config TRACE_IRQFLAGS_SUPPORT
61         def_bool y
62
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
91 config DMA_DIRECT_OPS
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
115         select HAVE_FUNCTION_TRACER
116         select HAVE_FUNCTION_GRAPH_TRACER
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"