blob: 6c8329beb9368cc4ee16e0cd9b5db3a436ba6612 [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
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070031 select HAVE_MEMBLOCK
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
38 select NO_BOOTMEM
39 select RISCV_ISA_A if SMP
40 select SPARSE_IRQ
41 select SYSCTL_EXCEPTION_TRACE
42 select HAVE_ARCH_TRACEHOOK
43 select MODULES_USE_ELF_RELA if MODULES
44 select THREAD_INFO_IN_TASK
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070045 select RISCV_TIMER
Palmer Dabbeltcc6c9842018-03-07 15:57:28 -080046 select GENERIC_IRQ_MULTI_HANDLER
Laurent Dufour3010a5e2018-06-07 17:06:08 -070047 select ARCH_HAS_PTE_SPECIAL
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070048
49config MMU
50 def_bool y
51
Christoph Hellwig5ec9c4f2018-01-16 09:37:50 +010052config ZONE_DMA32
53 bool
Christoph Hellwigf1306f02018-04-27 08:41:09 +020054 default y if 64BIT
Christoph Hellwig5ec9c4f2018-01-16 09:37:50 +010055
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070056config PAGE_OFFSET
57 hex
58 default 0xC0000000 if 32BIT && MAXPHYSMEM_2GB
59 default 0xffffffff80000000 if 64BIT && MAXPHYSMEM_2GB
60 default 0xffffffe000000000 if 64BIT && MAXPHYSMEM_128GB
61
62config STACKTRACE_SUPPORT
63 def_bool y
64
Alan Kao10626c32017-12-18 17:52:48 +080065config TRACE_IRQFLAGS_SUPPORT
66 def_bool y
67
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070068config RWSEM_GENERIC_SPINLOCK
69 def_bool y
70
71config GENERIC_BUG
72 def_bool y
73 depends on BUG
74 select GENERIC_BUG_RELATIVE_POINTERS if 64BIT
75
76config GENERIC_BUG_RELATIVE_POINTERS
77 bool
78
79config GENERIC_CALIBRATE_DELAY
80 def_bool y
81
82config GENERIC_CSUM
83 def_bool y
84
85config GENERIC_HWEIGHT
86 def_bool y
87
88config PGTABLE_LEVELS
89 int
90 default 3 if 64BIT
91 default 2
92
93config HAVE_KPROBES
94 def_bool n
95
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070096menu "Platform type"
97
98choice
99 prompt "Base ISA"
100 default ARCH_RV64I
101 help
102 This selects the base ISA that this kernel will traget and must match
103 the target platform.
104
105config ARCH_RV32I
106 bool "RV32I"
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700107 select 32BIT
Matt Redfearne3d59802018-04-11 08:50:17 +0100108 select GENERIC_LIB_ASHLDI3
109 select GENERIC_LIB_ASHRDI3
110 select GENERIC_LIB_LSHRDI3
Zong Li8f791252018-06-25 16:49:38 +0800111 select GENERIC_LIB_UCMPDI2
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700112
113config ARCH_RV64I
114 bool "RV64I"
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700115 select 64BIT
Masahiro Yamadaee592882018-08-24 17:33:53 +0900116 select ARCH_SUPPORTS_INT128 if GCC_VERSION >= 50000
Alan Kao10626c32017-12-18 17:52:48 +0800117 select HAVE_FUNCTION_TRACER
118 select HAVE_FUNCTION_GRAPH_TRACER
Alan Kaoa1d2a6b2018-02-13 13:13:16 +0800119 select HAVE_FTRACE_MCOUNT_RECORD
Alan Kaoc15ac4f2018-02-13 13:13:17 +0800120 select HAVE_DYNAMIC_FTRACE
Alan Kaoaea4c672018-02-13 13:13:20 +0800121 select HAVE_DYNAMIC_FTRACE_WITH_REGS
Christoph Hellwig10314e02018-04-27 08:43:14 +0200122 select SWIOTLB
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700123
124endchoice
125
126# We must be able to map all physical memory into the kernel, but the compiler
127# is still a bit more efficient when generating code if it's setup in a manner
128# such that it can only map 2GiB of memory.
129choice
130 prompt "Kernel Code Model"
131 default CMODEL_MEDLOW if 32BIT
132 default CMODEL_MEDANY if 64BIT
133
134 config CMODEL_MEDLOW
135 bool "medium low code model"
136 config CMODEL_MEDANY
137 bool "medium any code model"
138endchoice
139
Zong Liab1ef682018-03-15 16:50:41 +0800140config MODULE_SECTIONS
141 bool
142 select HAVE_MOD_ARCH_SPECIFIC
143
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700144choice
145 prompt "Maximum Physical Memory"
146 default MAXPHYSMEM_2GB if 32BIT
147 default MAXPHYSMEM_2GB if 64BIT && CMODEL_MEDLOW
148 default MAXPHYSMEM_128GB if 64BIT && CMODEL_MEDANY
149
150 config MAXPHYSMEM_2GB
151 bool "2GiB"
152 config MAXPHYSMEM_128GB
153 depends on 64BIT && CMODEL_MEDANY
Zong Liab1ef682018-03-15 16:50:41 +0800154 select MODULE_SECTIONS if MODULES
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700155 bool "128GiB"
156endchoice
157
158
159config SMP
160 bool "Symmetric Multi-Processing"
161 help
162 This enables support for systems with more than one CPU. If
163 you say N here, the kernel will run on single and
164 multiprocessor machines, but will use only one CPU of a
165 multiprocessor machine. If you say Y here, the kernel will run
166 on many, but not all, single processor machines. On a single
167 processor machine, the kernel will run faster if you say N
168 here.
169
170 If you don't know what to do here, say N.
171
172config NR_CPUS
173 int "Maximum number of CPUs (2-32)"
174 range 2 32
175 depends on SMP
176 default "8"
177
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700178choice
179 prompt "CPU Tuning"
180 default TUNE_GENERIC
181
182config TUNE_GENERIC
183 bool "generic"
184
185endchoice
186
187config RISCV_ISA_C
188 bool "Emit compressed instructions when building Linux"
189 default y
190 help
191 Adds "C" to the ISA subsets that the toolchain is allowed to emit
192 when building Linux, which results in compressed instructions in the
193 Linux binary.
194
195 If you don't know what to do here, say Y.
196
197config RISCV_ISA_A
198 def_bool y
199
Alan Kao178e9fc2018-04-20 07:27:49 +0800200menu "supported PMU type"
201 depends on PERF_EVENTS
202
203config RISCV_BASE_PMU
204 bool "Base Performance Monitoring Unit"
205 def_bool y
206 help
207 A base PMU that serves as a reference implementation and has limited
208 feature of perf. It can run on any RISC-V machines so serves as the
209 fallback, but this option can also be disable to reduce kernel size.
210
211endmenu
212
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700213endmenu
214
Nick Kossifidisaef53f92018-09-20 01:48:15 +0300215menu "Kernel features"
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700216
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700217source "kernel/Kconfig.hz"
218
219endmenu
220
Nick Kossifidisaef53f92018-09-20 01:48:15 +0300221menu "Boot options"
222
223config CMDLINE_BOOL
224 bool "Built-in kernel command line"
225 help
226 For most platforms, it is firmware or second stage bootloader
227 that by default specifies the kernel command line options.
228 However, it might be necessary or advantageous to either override
229 the default kernel command line or add a few extra options to it.
230 For such cases, this option allows hardcoding command line options
231 directly into the kernel.
232
233 For that, choose 'Y' here and fill in the extra boot parameters
234 in CONFIG_CMDLINE.
235
236 The built-in options will be concatenated to the default command
237 line if CMDLINE_FORCE is set to 'N'. Otherwise, the default
238 command line will be ignored and replaced by the built-in string.
239
240config CMDLINE
241 string "Built-in kernel command string"
242 depends on CMDLINE_BOOL
243 default ""
244 help
245 Supply command-line options at build time by entering them here.
246
247config CMDLINE_FORCE
248 bool "Built-in command line overrides bootloader arguments"
249 depends on CMDLINE_BOOL
250 help
251 Set this option to 'Y' to have the kernel ignore the bootloader
252 or firmware command line. Instead, the built-in command line
253 will be used exclusively.
254
255 If you don't know what to do here, say N.
256
257endmenu
258
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700259menu "Bus support"
260
261config PCI
262 bool "PCI support"
263 select PCI_MSI
264 help
265 This feature enables support for PCI bus system. If you say Y
266 here, the kernel will include drivers and infrastructure code
267 to support PCI bus devices.
268
269 If you don't know what to do here, say Y.
270
271config PCI_DOMAINS
272 def_bool PCI
273
274config PCI_DOMAINS_GENERIC
275 def_bool PCI
276
277source "drivers/pci/Kconfig"
278
279endmenu
280
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700281menu "Power management options"
282
283source kernel/power/Kconfig
284
285endmenu