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