blob: 38787c48d76c41edd64e92c30ce8ffb0ecccb6df [file] [log] [blame]
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -07001#
2# For a description of the syntax of this configuration file,
3# see Documentation/kbuild/kconfig-language.txt.
4#
5
Christoph Hellwigc3e4ed02018-04-27 08:38:23 +02006config 64BIT
7 bool
8
9config 32BIT
10 bool
11
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070012config RISCV
13 def_bool y
Christoph Hellwigd4a451d2018-04-03 16:24:20 +020014 # even on 32-bit, physical (and DMA) addresses are > 32-bits
15 select PHYS_ADDR_T_64BIT
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070016 select OF
17 select OF_EARLY_FLATTREE
18 select OF_IRQ
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070019 select ARCH_WANT_FRAME_POINTERS
20 select CLONE_BACKWARDS
21 select COMMON_CLK
Christoph Hellwig86e11752018-04-16 14:53:51 +020022 select DMA_DIRECT_OPS
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070023 select GENERIC_CLOCKEVENTS
24 select GENERIC_CPU_DEVICES
25 select GENERIC_IRQ_SHOW
26 select GENERIC_PCI_IOMAP
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
David Abdurachmanovefe75c42018-10-29 11:48:53 +010031 select HAVE_ARCH_AUDITSYSCALL
Christoph Hellwig5ec9c4f2018-01-16 09:37:50 +010032 select HAVE_MEMBLOCK_NODE_MAP
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070033 select HAVE_DMA_CONTIGUOUS
Jim Wilsonb90edb32018-10-16 14:42:59 -070034 select HAVE_FUTEX_CMPXCHG if FUTEX
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070035 select HAVE_GENERIC_DMA_COHERENT
Alan Kao178e9fc2018-04-20 07:27:49 +080036 select HAVE_PERF_EVENTS
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070037 select IRQ_DOMAIN
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070038 select RISCV_ISA_A if SMP
39 select SPARSE_IRQ
40 select SYSCTL_EXCEPTION_TRACE
41 select HAVE_ARCH_TRACEHOOK
42 select MODULES_USE_ELF_RELA if MODULES
43 select THREAD_INFO_IN_TASK
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070044 select RISCV_TIMER
Palmer Dabbeltcc6c9842018-03-07 15:57:28 -080045 select GENERIC_IRQ_MULTI_HANDLER
Laurent Dufour3010a5e2018-06-07 17:06:08 -070046 select ARCH_HAS_PTE_SPECIAL
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070047
48config MMU
49 def_bool y
50
Christoph Hellwig5ec9c4f2018-01-16 09:37:50 +010051config ZONE_DMA32
52 bool
Christoph Hellwigf1306f02018-04-27 08:41:09 +020053 default y if 64BIT
Christoph Hellwig5ec9c4f2018-01-16 09:37:50 +010054
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070055config PAGE_OFFSET
56 hex
57 default 0xC0000000 if 32BIT && MAXPHYSMEM_2GB
58 default 0xffffffff80000000 if 64BIT && MAXPHYSMEM_2GB
59 default 0xffffffe000000000 if 64BIT && MAXPHYSMEM_128GB
60
61config STACKTRACE_SUPPORT
62 def_bool y
63
Alan Kao10626c32017-12-18 17:52:48 +080064config TRACE_IRQFLAGS_SUPPORT
65 def_bool y
66
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070067config RWSEM_GENERIC_SPINLOCK
68 def_bool y
69
70config GENERIC_BUG
71 def_bool y
72 depends on BUG
73 select GENERIC_BUG_RELATIVE_POINTERS if 64BIT
74
75config GENERIC_BUG_RELATIVE_POINTERS
76 bool
77
78config GENERIC_CALIBRATE_DELAY
79 def_bool y
80
81config GENERIC_CSUM
82 def_bool y
83
84config GENERIC_HWEIGHT
85 def_bool y
86
87config PGTABLE_LEVELS
88 int
89 default 3 if 64BIT
90 default 2
91
92config HAVE_KPROBES
93 def_bool n
94
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070095menu "Platform type"
96
97choice
98 prompt "Base ISA"
99 default ARCH_RV64I
100 help
101 This selects the base ISA that this kernel will traget and must match
102 the target platform.
103
104config ARCH_RV32I
105 bool "RV32I"
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700106 select 32BIT
Matt Redfearne3d59802018-04-11 08:50:17 +0100107 select GENERIC_LIB_ASHLDI3
108 select GENERIC_LIB_ASHRDI3
109 select GENERIC_LIB_LSHRDI3
Zong Li8f791252018-06-25 16:49:38 +0800110 select GENERIC_LIB_UCMPDI2
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700111
112config ARCH_RV64I
113 bool "RV64I"
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700114 select 64BIT
Masahiro Yamadaee592882018-08-24 17:33:53 +0900115 select ARCH_SUPPORTS_INT128 if GCC_VERSION >= 50000
Alan Kao10626c32017-12-18 17:52:48 +0800116 select HAVE_FUNCTION_TRACER
117 select HAVE_FUNCTION_GRAPH_TRACER
Alan Kaoa1d2a6b2018-02-13 13:13:16 +0800118 select HAVE_FTRACE_MCOUNT_RECORD
Alan Kaoc15ac4f2018-02-13 13:13:17 +0800119 select HAVE_DYNAMIC_FTRACE
Alan Kaoaea4c672018-02-13 13:13:20 +0800120 select HAVE_DYNAMIC_FTRACE_WITH_REGS
Christoph Hellwig10314e02018-04-27 08:43:14 +0200121 select SWIOTLB
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700122
123endchoice
124
125# We must be able to map all physical memory into the kernel, but the compiler
126# is still a bit more efficient when generating code if it's setup in a manner
127# such that it can only map 2GiB of memory.
128choice
129 prompt "Kernel Code Model"
130 default CMODEL_MEDLOW if 32BIT
131 default CMODEL_MEDANY if 64BIT
132
133 config CMODEL_MEDLOW
134 bool "medium low code model"
135 config CMODEL_MEDANY
136 bool "medium any code model"
137endchoice
138
Zong Liab1ef682018-03-15 16:50:41 +0800139config MODULE_SECTIONS
140 bool
141 select HAVE_MOD_ARCH_SPECIFIC
142
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700143choice
144 prompt "Maximum Physical Memory"
145 default MAXPHYSMEM_2GB if 32BIT
146 default MAXPHYSMEM_2GB if 64BIT && CMODEL_MEDLOW
147 default MAXPHYSMEM_128GB if 64BIT && CMODEL_MEDANY
148
149 config MAXPHYSMEM_2GB
150 bool "2GiB"
151 config MAXPHYSMEM_128GB
152 depends on 64BIT && CMODEL_MEDANY
Zong Liab1ef682018-03-15 16:50:41 +0800153 select MODULE_SECTIONS if MODULES
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700154 bool "128GiB"
155endchoice
156
157
158config SMP
159 bool "Symmetric Multi-Processing"
160 help
161 This enables support for systems with more than one CPU. If
162 you say N here, the kernel will run on single and
163 multiprocessor machines, but will use only one CPU of a
164 multiprocessor machine. If you say Y here, the kernel will run
165 on many, but not all, single processor machines. On a single
166 processor machine, the kernel will run faster if you say N
167 here.
168
169 If you don't know what to do here, say N.
170
171config NR_CPUS
172 int "Maximum number of CPUs (2-32)"
173 range 2 32
174 depends on SMP
175 default "8"
176
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700177choice
178 prompt "CPU Tuning"
179 default TUNE_GENERIC
180
181config TUNE_GENERIC
182 bool "generic"
183
184endchoice
185
186config RISCV_ISA_C
187 bool "Emit compressed instructions when building Linux"
188 default y
189 help
190 Adds "C" to the ISA subsets that the toolchain is allowed to emit
191 when building Linux, which results in compressed instructions in the
192 Linux binary.
193
194 If you don't know what to do here, say Y.
195
196config RISCV_ISA_A
197 def_bool y
198
Alan Kao178e9fc2018-04-20 07:27:49 +0800199menu "supported PMU type"
200 depends on PERF_EVENTS
201
202config 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
210endmenu
211
Alan Kao9671f702018-10-09 10:18:33 +0800212config 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
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700221endmenu
222
Nick Kossifidisaef53f92018-09-20 01:48:15 +0300223menu "Kernel features"
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700224
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700225source "kernel/Kconfig.hz"
226
227endmenu
228
Nick Kossifidisaef53f92018-09-20 01:48:15 +0300229menu "Boot options"
230
231config CMDLINE_BOOL
232 bool "Built-in kernel command line"
233 help
234 For most platforms, it is firmware or second stage bootloader
235 that by default specifies the kernel command line options.
236 However, it might be necessary or advantageous to either override
237 the default kernel command line or add a few extra options to it.
238 For such cases, this option allows hardcoding command line options
239 directly into the kernel.
240
241 For that, choose 'Y' here and fill in the extra boot parameters
242 in CONFIG_CMDLINE.
243
244 The built-in options will be concatenated to the default command
245 line if CMDLINE_FORCE is set to 'N'. Otherwise, the default
246 command line will be ignored and replaced by the built-in string.
247
248config CMDLINE
249 string "Built-in kernel command string"
250 depends on CMDLINE_BOOL
251 default ""
252 help
253 Supply command-line options at build time by entering them here.
254
255config CMDLINE_FORCE
256 bool "Built-in command line overrides bootloader arguments"
257 depends on CMDLINE_BOOL
258 help
259 Set this option to 'Y' to have the kernel ignore the bootloader
260 or firmware command line. Instead, the built-in command line
261 will be used exclusively.
262
263 If you don't know what to do here, say N.
264
265endmenu
266
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700267menu "Bus support"
268
269config PCI
270 bool "PCI support"
271 select PCI_MSI
272 help
273 This feature enables support for PCI bus system. If you say Y
274 here, the kernel will include drivers and infrastructure code
275 to support PCI bus devices.
276
277 If you don't know what to do here, say Y.
278
279config PCI_DOMAINS
280 def_bool PCI
281
282config PCI_DOMAINS_GENERIC
283 def_bool PCI
284
285source "drivers/pci/Kconfig"
286
287endmenu
288
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700289menu "Power management options"
290
291source kernel/power/Kconfig
292
293endmenu