Merge tag 'char-misc-5.0-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh...
[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
c3e4ed01
CH
6config 64BIT
7 bool
8
9config 32BIT
10 bool
11
fbe934d6
PD
12config RISCV
13 def_bool y
d4a451d5
CH
14 # even on 32-bit, physical (and DMA) addresses are > 32-bits
15 select PHYS_ADDR_T_64BIT
fbe934d6
PD
16 select OF
17 select OF_EARLY_FLATTREE
18 select OF_IRQ
fbe934d6
PD
19 select ARCH_WANT_FRAME_POINTERS
20 select CLONE_BACKWARDS
21 select COMMON_CLK
22 select GENERIC_CLOCKEVENTS
23 select GENERIC_CPU_DEVICES
24 select GENERIC_IRQ_SHOW
25 select GENERIC_PCI_IOMAP
9b9afe4a 26 select GENERIC_SCHED_CLOCK
fbe934d6
PD
27 select GENERIC_STRNCPY_FROM_USER
28 select GENERIC_STRNLEN_USER
29 select GENERIC_SMP_IDLE_THREAD
30 select GENERIC_ATOMIC64 if !64BIT || !RISCV_ISA_A
efe75c49 31 select HAVE_ARCH_AUDITSYSCALL
5ec9c4ff 32 select HAVE_MEMBLOCK_NODE_MAP
fbe934d6 33 select HAVE_DMA_CONTIGUOUS
b90edb33 34 select HAVE_FUTEX_CMPXCHG if FUTEX
fbe934d6 35 select HAVE_GENERIC_DMA_COHERENT
178e9fc4 36 select HAVE_PERF_EVENTS
5aeb1b36 37 select HAVE_SYSCALL_TRACEPOINTS
fbe934d6 38 select IRQ_DOMAIN
fbe934d6
PD
39 select RISCV_ISA_A if SMP
40 select SPARSE_IRQ
41 select SYSCTL_EXCEPTION_TRACE
42 select HAVE_ARCH_TRACEHOOK
eb01d42a 43 select HAVE_PCI
fbe934d6 44 select MODULES_USE_ELF_RELA if MODULES
2cffc956 45 select MODULE_SECTIONS if MODULES
fbe934d6 46 select THREAD_INFO_IN_TASK
2eac9c2d 47 select PCI_DOMAINS_GENERIC if PCI
eb01d42a 48 select PCI_MSI if PCI
fbe934d6 49 select RISCV_TIMER
cc6c9848 50 select GENERIC_IRQ_MULTI_HANDLER
3010a5ea 51 select ARCH_HAS_PTE_SPECIAL
fbe934d6
PD
52
53config MMU
54 def_bool y
55
5ec9c4ff
CH
56config ZONE_DMA32
57 bool
f1306f04 58 default y if 64BIT
5ec9c4ff 59
fbe934d6
PD
60config PAGE_OFFSET
61 hex
62 default 0xC0000000 if 32BIT && MAXPHYSMEM_2GB
63 default 0xffffffff80000000 if 64BIT && MAXPHYSMEM_2GB
64 default 0xffffffe000000000 if 64BIT && MAXPHYSMEM_128GB
65
66config STACKTRACE_SUPPORT
67 def_bool y
68
10626c32
AK
69config TRACE_IRQFLAGS_SUPPORT
70 def_bool y
71
fbe934d6
PD
72config RWSEM_GENERIC_SPINLOCK
73 def_bool y
74
75config GENERIC_BUG
76 def_bool y
77 depends on BUG
78 select GENERIC_BUG_RELATIVE_POINTERS if 64BIT
79
80config GENERIC_BUG_RELATIVE_POINTERS
81 bool
82
83config GENERIC_CALIBRATE_DELAY
84 def_bool y
85
86config GENERIC_CSUM
87 def_bool y
88
89config GENERIC_HWEIGHT
90 def_bool y
91
92config PGTABLE_LEVELS
93 int
94 default 3 if 64BIT
95 default 2
96
97config HAVE_KPROBES
98 def_bool n
99
fbe934d6
PD
100menu "Platform type"
101
102choice
103 prompt "Base ISA"
104 default ARCH_RV64I
105 help
86cca81a 106 This selects the base ISA that this kernel will target and must match
fbe934d6
PD
107 the target platform.
108
109config ARCH_RV32I
110 bool "RV32I"
fbe934d6 111 select 32BIT
e3d59805
MR
112 select GENERIC_LIB_ASHLDI3
113 select GENERIC_LIB_ASHRDI3
114 select GENERIC_LIB_LSHRDI3
8f79125d 115 select GENERIC_LIB_UCMPDI2
fbe934d6
PD
116
117config ARCH_RV64I
118 bool "RV64I"
fbe934d6 119 select 64BIT
ee592884 120 select ARCH_SUPPORTS_INT128 if GCC_VERSION >= 50000
10626c32
AK
121 select HAVE_FUNCTION_TRACER
122 select HAVE_FUNCTION_GRAPH_TRACER
a1d2a6b4 123 select HAVE_FTRACE_MCOUNT_RECORD
c15ac4fd 124 select HAVE_DYNAMIC_FTRACE
aea4c671 125 select HAVE_DYNAMIC_FTRACE_WITH_REGS
10314e09 126 select SWIOTLB
fbe934d6
PD
127
128endchoice
129
130# We must be able to map all physical memory into the kernel, but the compiler
131# is still a bit more efficient when generating code if it's setup in a manner
132# such that it can only map 2GiB of memory.
133choice
134 prompt "Kernel Code Model"
135 default CMODEL_MEDLOW if 32BIT
136 default CMODEL_MEDANY if 64BIT
137
138 config CMODEL_MEDLOW
139 bool "medium low code model"
140 config CMODEL_MEDANY
141 bool "medium any code model"
142endchoice
143
ab1ef68e
ZL
144config MODULE_SECTIONS
145 bool
146 select HAVE_MOD_ARCH_SPECIFIC
147
fbe934d6
PD
148choice
149 prompt "Maximum Physical Memory"
150 default MAXPHYSMEM_2GB if 32BIT
151 default MAXPHYSMEM_2GB if 64BIT && CMODEL_MEDLOW
152 default MAXPHYSMEM_128GB if 64BIT && CMODEL_MEDANY
153
154 config MAXPHYSMEM_2GB
155 bool "2GiB"
156 config MAXPHYSMEM_128GB
157 depends on 64BIT && CMODEL_MEDANY
158 bool "128GiB"
159endchoice
160
161
162config SMP
163 bool "Symmetric Multi-Processing"
164 help
165 This enables support for systems with more than one CPU. If
166 you say N here, the kernel will run on single and
167 multiprocessor machines, but will use only one CPU of a
168 multiprocessor machine. If you say Y here, the kernel will run
169 on many, but not all, single processor machines. On a single
170 processor machine, the kernel will run faster if you say N
171 here.
172
173 If you don't know what to do here, say N.
174
175config NR_CPUS
176 int "Maximum number of CPUs (2-32)"
177 range 2 32
178 depends on SMP
179 default "8"
180
fbe934d6
PD
181choice
182 prompt "CPU Tuning"
183 default TUNE_GENERIC
184
185config TUNE_GENERIC
186 bool "generic"
187
188endchoice
189
190config RISCV_ISA_C
191 bool "Emit compressed instructions when building Linux"
192 default y
193 help
194 Adds "C" to the ISA subsets that the toolchain is allowed to emit
195 when building Linux, which results in compressed instructions in the
196 Linux binary.
197
198 If you don't know what to do here, say Y.
199
200config RISCV_ISA_A
201 def_bool y
202
178e9fc4
AK
203menu "supported PMU type"
204 depends on PERF_EVENTS
205
206config RISCV_BASE_PMU
207 bool "Base Performance Monitoring Unit"
208 def_bool y
209 help
210 A base PMU that serves as a reference implementation and has limited
211 feature of perf. It can run on any RISC-V machines so serves as the
212 fallback, but this option can also be disable to reduce kernel size.
213
214endmenu
215
9671f706
AK
216config FPU
217 bool "FPU support"
218 default y
219 help
220 Say N here if you want to disable all floating-point related procedure
221 in the kernel.
222
223 If you don't know what to do here, say Y.
224
fbe934d6
PD
225endmenu
226
aef53f97 227menu "Kernel features"
fbe934d6 228
fbe934d6
PD
229source "kernel/Kconfig.hz"
230
231endmenu
232
aef53f97
NK
233menu "Boot options"
234
3aed8c43
NK
235config CMDLINE
236 string "Built-in kernel command line"
aef53f97 237 help
3aed8c43
NK
238 For most platforms, the arguments for the kernel's command line
239 are provided at run-time, during boot. However, there are cases
240 where either no arguments are being provided or the provided
241 arguments are insufficient or even invalid.
aef53f97 242
3aed8c43
NK
243 When that occurs, it is possible to define a built-in command
244 line here and choose how the kernel should use it later on.
aef53f97 245
3aed8c43
NK
246choice
247 prompt "Built-in command line usage" if CMDLINE != ""
248 default CMDLINE_FALLBACK
249 help
250 Choose how the kernel will handle the provided built-in command
251 line.
aef53f97 252
3aed8c43
NK
253config CMDLINE_FALLBACK
254 bool "Use bootloader kernel arguments if available"
aef53f97 255 help
3aed8c43
NK
256 Use the built-in command line as fallback in case we get nothing
257 during boot. This is the default behaviour.
258
259config CMDLINE_EXTEND
260 bool "Extend bootloader kernel arguments"
261 help
262 The command-line arguments provided during boot will be
263 appended to the built-in command line. This is useful in
264 cases where the provided arguments are insufficient and
265 you don't want to or cannot modify them.
266
aef53f97
NK
267
268config CMDLINE_FORCE
3aed8c43 269 bool "Always use the default kernel command string"
aef53f97 270 help
3aed8c43
NK
271 Always use the built-in command line, even if we get one during
272 boot. This is useful in case you need to override the provided
273 command line on systems where you don't have or want control
274 over it.
aef53f97 275
3aed8c43 276endchoice
aef53f97
NK
277
278endmenu
279
fbe934d6
PD
280menu "Power management options"
281
8636a1f9 282source "kernel/power/Kconfig"
fbe934d6
PD
283
284endmenu