Merge remote-tracking branch 'asoc/fix/rcar' into asoc-linus
[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_HAS_ATOMIC64_DEC_IF_POSITIVE
12         select ARCH_WANT_FRAME_POINTERS
13         select CLONE_BACKWARDS
14         select COMMON_CLK
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 ARCH_WANT_OPTIONAL_GPIOLIB
24         select HAVE_MEMBLOCK
25         select HAVE_DMA_API_DEBUG
26         select HAVE_DMA_CONTIGUOUS
27         select HAVE_GENERIC_DMA_COHERENT
28         select IRQ_DOMAIN
29         select NO_BOOTMEM
30         select RISCV_ISA_A if SMP
31         select SPARSE_IRQ
32         select SYSCTL_EXCEPTION_TRACE
33         select HAVE_ARCH_TRACEHOOK
34         select MODULES_USE_ELF_RELA if MODULES
35         select THREAD_INFO_IN_TASK
36         select RISCV_IRQ_INTC
37         select RISCV_TIMER
38
39 config MMU
40         def_bool y
41
42 # even on 32-bit, physical (and DMA) addresses are > 32-bits
43 config ARCH_PHYS_ADDR_T_64BIT
44         def_bool y
45
46 config ARCH_DMA_ADDR_T_64BIT
47         def_bool y
48
49 config PAGE_OFFSET
50         hex
51         default 0xC0000000 if 32BIT && MAXPHYSMEM_2GB
52         default 0xffffffff80000000 if 64BIT && MAXPHYSMEM_2GB
53         default 0xffffffe000000000 if 64BIT && MAXPHYSMEM_128GB
54
55 config STACKTRACE_SUPPORT
56         def_bool y
57
58 config RWSEM_GENERIC_SPINLOCK
59         def_bool y
60
61 config GENERIC_BUG
62         def_bool y
63         depends on BUG
64         select GENERIC_BUG_RELATIVE_POINTERS if 64BIT
65
66 config GENERIC_BUG_RELATIVE_POINTERS
67         bool
68
69 config GENERIC_CALIBRATE_DELAY
70         def_bool y
71
72 config GENERIC_CSUM
73         def_bool y
74
75 config GENERIC_HWEIGHT
76         def_bool y
77
78 config PGTABLE_LEVELS
79         int
80         default 3 if 64BIT
81         default 2
82
83 config HAVE_KPROBES
84         def_bool n
85
86 config DMA_NOOP_OPS
87         def_bool y
88
89 menu "Platform type"
90
91 choice
92         prompt "Base ISA"
93         default ARCH_RV64I
94         help
95           This selects the base ISA that this kernel will traget and must match
96           the target platform.
97
98 config ARCH_RV32I
99         bool "RV32I"
100         select CPU_SUPPORTS_32BIT_KERNEL
101         select 32BIT
102         select GENERIC_ASHLDI3
103         select GENERIC_ASHRDI3
104         select GENERIC_LSHRDI3
105
106 config ARCH_RV64I
107         bool "RV64I"
108         select CPU_SUPPORTS_64BIT_KERNEL
109         select 64BIT
110
111 endchoice
112
113 # We must be able to map all physical memory into the kernel, but the compiler
114 # is still a bit more efficient when generating code if it's setup in a manner
115 # such that it can only map 2GiB of memory.
116 choice
117         prompt "Kernel Code Model"
118         default CMODEL_MEDLOW if 32BIT
119         default CMODEL_MEDANY if 64BIT
120
121         config CMODEL_MEDLOW
122                 bool "medium low code model"
123         config CMODEL_MEDANY
124                 bool "medium any code model"
125 endchoice
126
127 choice
128         prompt "Maximum Physical Memory"
129         default MAXPHYSMEM_2GB if 32BIT
130         default MAXPHYSMEM_2GB if 64BIT && CMODEL_MEDLOW
131         default MAXPHYSMEM_128GB if 64BIT && CMODEL_MEDANY
132
133         config MAXPHYSMEM_2GB
134                 bool "2GiB"
135         config MAXPHYSMEM_128GB
136                 depends on 64BIT && CMODEL_MEDANY
137                 bool "128GiB"
138 endchoice
139
140
141 config SMP
142         bool "Symmetric Multi-Processing"
143         help
144           This enables support for systems with more than one CPU.  If
145           you say N here, the kernel will run on single and
146           multiprocessor machines, but will use only one CPU of a
147           multiprocessor machine. If you say Y here, the kernel will run
148           on many, but not all, single processor machines. On a single
149           processor machine, the kernel will run faster if you say N
150           here.
151
152           If you don't know what to do here, say N.
153
154 config NR_CPUS
155         int "Maximum number of CPUs (2-32)"
156         range 2 32
157         depends on SMP
158         default "8"
159
160 config CPU_SUPPORTS_32BIT_KERNEL
161         bool
162 config CPU_SUPPORTS_64BIT_KERNEL
163         bool
164
165 choice
166         prompt "CPU Tuning"
167         default TUNE_GENERIC
168
169 config TUNE_GENERIC
170         bool "generic"
171
172 endchoice
173
174 config RISCV_ISA_C
175         bool "Emit compressed instructions when building Linux"
176         default y
177         help
178            Adds "C" to the ISA subsets that the toolchain is allowed to emit
179            when building Linux, which results in compressed instructions in the
180            Linux binary.
181
182            If you don't know what to do here, say Y.
183
184 config RISCV_ISA_A
185         def_bool y
186
187 endmenu
188
189 menu "Kernel type"
190
191 choice
192         prompt "Kernel code model"
193         default 64BIT
194
195 config 32BIT
196         bool "32-bit kernel"
197         depends on CPU_SUPPORTS_32BIT_KERNEL
198         help
199           Select this option to build a 32-bit kernel.
200
201 config 64BIT
202         bool "64-bit kernel"
203         depends on CPU_SUPPORTS_64BIT_KERNEL
204         help
205           Select this option to build a 64-bit kernel.
206
207 endchoice
208
209 source "mm/Kconfig"
210
211 source "kernel/Kconfig.preempt"
212
213 source "kernel/Kconfig.hz"
214
215 endmenu
216
217 menu "Bus support"
218
219 config PCI
220         bool "PCI support"
221         select PCI_MSI
222         help
223           This feature enables support for PCI bus system. If you say Y
224           here, the kernel will include drivers and infrastructure code
225           to support PCI bus devices.
226
227           If you don't know what to do here, say Y.
228
229 config PCI_DOMAINS
230         def_bool PCI
231
232 config PCI_DOMAINS_GENERIC
233         def_bool PCI
234
235 source "drivers/pci/Kconfig"
236
237 endmenu
238
239 source "init/Kconfig"
240
241 source "kernel/Kconfig.freezer"
242
243 menu "Executable file formats"
244
245 source "fs/Kconfig.binfmt"
246
247 endmenu
248
249 menu "Power management options"
250
251 source kernel/power/Kconfig
252
253 endmenu
254
255 source "net/Kconfig"
256
257 source "drivers/Kconfig"
258
259 source "fs/Kconfig"
260
261 menu "Kernel hacking"
262
263 config CMDLINE_BOOL
264         bool "Built-in kernel command line"
265         help
266           For most platforms, it is firmware or second stage bootloader
267           that by default specifies the kernel command line options.
268           However, it might be necessary or advantageous to either override
269           the default kernel command line or add a few extra options to it.
270           For such cases, this option allows hardcoding command line options
271           directly into the kernel.
272
273           For that, choose 'Y' here and fill in the extra boot parameters
274           in CONFIG_CMDLINE.
275
276           The built-in options will be concatenated to the default command
277           line if CMDLINE_OVERRIDE is set to 'N'. Otherwise, the default
278           command line will be ignored and replaced by the built-in string.
279
280 config CMDLINE
281         string "Built-in kernel command string"
282         depends on CMDLINE_BOOL
283         default ""
284         help
285           Supply command-line options at build time by entering them here.
286
287 config CMDLINE_OVERRIDE
288         bool "Built-in command line overrides bootloader arguments"
289         depends on CMDLINE_BOOL
290         help
291           Set this option to 'Y' to have the kernel ignore the bootloader
292           or firmware command line.  Instead, the built-in command line
293           will be used exclusively.
294
295           If you don't know what to do here, say N.
296
297 config EARLY_PRINTK
298         def_bool y
299
300 source "lib/Kconfig.debug"
301
302 config CMDLINE_BOOL
303         bool
304 endmenu
305
306 source "security/Kconfig"
307
308 source "crypto/Kconfig"
309
310 source "lib/Kconfig"