blob: 2a0fc12b8d4503eddda3c9f893fa96bb266d67da [file] [log] [blame]
Thomas Gleixnerec8f24b2019-05-19 13:07:45 +01001# SPDX-License-Identifier: GPL-2.0-only
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -07002#
3# For a description of the syntax of this configuration file,
Mauro Carvalho Chehabcd238ef2019-06-12 14:52:48 -03004# see Documentation/kbuild/kconfig-language.rst.
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -07005#
6
Christoph Hellwigc3e4ed02018-04-27 08:38:23 +02007config 64BIT
8 bool
9
10config 32BIT
11 bool
12
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070013config RISCV
14 def_bool y
Vincent Chenad5d1122020-06-09 22:14:48 +080015 select ARCH_CLOCKSOURCE_INIT
Chenxi Mao234e9d72020-06-05 13:15:10 +080016 select ARCH_SUPPORTS_ATOMIC_RMW
Mike Rapoport5d6ad662020-12-14 19:10:30 -080017 select ARCH_SUPPORTS_DEBUG_PAGEALLOC if MMU
Kefeng Wang5cb00802020-11-13 14:42:23 +080018 select ARCH_STACKWALK
Christoph Hellwigad97f9d2019-06-13 09:09:03 +020019 select ARCH_HAS_BINFMT_FLAT
Emil Renner Berthing925ac7b2020-07-14 23:26:11 +020020 select ARCH_HAS_DEBUG_VM_PGTABLE
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -070021 select ARCH_HAS_DEBUG_VIRTUAL if MMU
Zong Lib422d282020-06-03 16:03:55 -070022 select ARCH_HAS_DEBUG_WX
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -070023 select ARCH_HAS_GCOV_PROFILE_ALL
24 select ARCH_HAS_GIGANTIC_PAGE
Tobias Klauser20d38f72020-06-26 14:40:56 +020025 select ARCH_HAS_KCOV
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -070026 select ARCH_HAS_MMIOWB
27 select ARCH_HAS_PTE_SPECIAL
28 select ARCH_HAS_SET_DIRECT_MAP
29 select ARCH_HAS_SET_MEMORY
30 select ARCH_HAS_STRICT_KERNEL_RWX if MMU
Vincent Chenfc0c7692020-06-23 13:36:59 +080031 select ARCH_OPTIONAL_KERNEL_RWX if ARCH_HAS_STRICT_KERNEL_RWX
32 select ARCH_OPTIONAL_KERNEL_RWX_DEFAULT
Anshuman Khandual855f9a82021-05-04 18:38:13 -070033 select ARCH_SUPPORTS_HUGETLBFS if MMU
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -070034 select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT if MMU
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070035 select ARCH_WANT_FRAME_POINTERS
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -070036 select ARCH_WANT_HUGE_PMD_SHARE if 64BIT
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070037 select CLONE_BACKWARDS
Palmer Dabbeltd5be89a2020-09-14 09:56:30 -070038 select CLINT_TIMER if !MMU
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070039 select COMMON_CLK
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -070040 select EDAC_SUPPORT
41 select GENERIC_ARCH_TOPOLOGY if SMP
42 select GENERIC_ATOMIC64 if !64BIT
Atish Patra6262f662020-09-17 15:37:11 -070043 select GENERIC_EARLY_IOREMAP
Vincent Chenad5d1122020-06-09 22:14:48 +080044 select GENERIC_GETTIMEOFDAY if HAVE_GENERIC_VDSO
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -070045 select GENERIC_IOREMAP
46 select GENERIC_IRQ_MULTI_HANDLER
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070047 select GENERIC_IRQ_SHOW
Palmer Dabbelt78ed4732020-07-09 11:51:17 -070048 select GENERIC_LIB_DEVMEM_IS_ALLOWED
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070049 select GENERIC_PCI_IOMAP
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -070050 select GENERIC_PTDUMP if MMU
Anup Patel9b9afe42018-12-04 15:59:51 +053051 select GENERIC_SCHED_CLOCK
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -070052 select GENERIC_SMP_IDLE_THREAD
Christoph Hellwig6bd33e12019-10-28 13:10:41 +010053 select GENERIC_STRNCPY_FROM_USER if MMU
54 select GENERIC_STRNLEN_USER if MMU
Vincent Chenad5d1122020-06-09 22:14:48 +080055 select GENERIC_TIME_VSYSCALL if MMU && 64BIT
Anup Patel6b7ce8922020-06-01 14:45:40 +053056 select HANDLE_DOMAIN_IRQ
David Abdurachmanovefe75c42018-10-29 11:48:53 +010057 select HAVE_ARCH_AUDITSYSCALL
Emil Renner Berthingebc00dd2020-07-14 09:40:44 +020058 select HAVE_ARCH_JUMP_LABEL
59 select HAVE_ARCH_JUMP_LABEL_RELATIVE
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -070060 select HAVE_ARCH_KASAN if MMU && 64BIT
Nylon Chene178d672021-01-16 13:58:35 +080061 select HAVE_ARCH_KASAN_VMALLOC if MMU && 64BIT
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -070062 select HAVE_ARCH_KGDB
63 select HAVE_ARCH_KGDB_QXFER_PKT
64 select HAVE_ARCH_MMAP_RND_BITS if MMU
David Abdurachmanov53406272019-10-04 17:12:22 -070065 select HAVE_ARCH_SECCOMP_FILTER
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -070066 select HAVE_ARCH_TRACEHOOK
Masahiro Yamada2ff2b7e2019-08-19 14:54:20 +090067 select HAVE_ASM_MODVERSIONS
Greentime Hued48b292020-06-24 17:03:16 +080068 select HAVE_CONTEXT_TRACKING
Tobias Klausercbb3d912020-06-27 12:50:50 +020069 select HAVE_DEBUG_KMEMLEAK
Christoph Hellwig6bd33e12019-10-28 13:10:41 +010070 select HAVE_DMA_CONTIGUOUS if MMU
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -070071 select HAVE_EBPF_JIT if MMU
Guo Renee55ff82020-12-17 16:01:45 +000072 select HAVE_FUNCTION_ERROR_INJECTION
Jim Wilsonb90edb32018-10-16 14:42:59 -070073 select HAVE_FUTEX_CMPXCHG if FUTEX
Tobias Klauser20d38f72020-06-26 14:40:56 +020074 select HAVE_GCC_PLUGINS
Vincent Chenad5d1122020-06-09 22:14:48 +080075 select HAVE_GENERIC_VDSO if MMU && 64BIT
Kefeng Wang31564b82020-10-28 12:28:42 +080076 select HAVE_IRQ_TIME_ACCOUNTING
Guo Renc22b0bc2020-12-17 16:01:42 +000077 select HAVE_KPROBES
Guo Ren829adda2020-12-17 16:01:43 +000078 select HAVE_KPROBES_ON_FTRACE
Guo Renc22b0bc2020-12-17 16:01:42 +000079 select HAVE_KRETPROBES
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -070080 select HAVE_PCI
Alan Kao178e9fc2018-04-20 07:27:49 +080081 select HAVE_PERF_EVENTS
Mao Han98a93b02019-09-05 11:46:35 +080082 select HAVE_PERF_REGS
83 select HAVE_PERF_USER_STACK_DUMP
Patrick Stählindcdc7a532020-12-17 16:01:37 +000084 select HAVE_REGS_AND_STACK_ACCESS_API
Guo Renf2c96992020-07-10 16:19:57 +000085 select HAVE_STACKPROTECTOR
David Abdurachmanov5aeb1b32018-12-06 16:26:35 +010086 select HAVE_SYSCALL_TRACEPOINTS
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070087 select IRQ_DOMAIN
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070088 select MODULES_USE_ELF_RELA if MODULES
Zong Li2cffc952018-12-07 17:02:16 +080089 select MODULE_SECTIONS if MODULES
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -070090 select OF
91 select OF_EARLY_FLATTREE
92 select OF_IRQ
Christoph Hellwig2eac9c22018-11-15 20:05:33 +010093 select PCI_DOMAINS_GENERIC if PCI
Christoph Hellwigeb01d422018-11-15 20:05:32 +010094 select PCI_MSI if PCI
Anup Patele71ee062020-06-01 14:45:43 +053095 select RISCV_INTC
Anup Patel2bc3fc82020-08-17 18:12:50 +053096 select RISCV_TIMER if RISCV_SBI
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -070097 select SPARSE_IRQ
98 select SYSCTL_EXCEPTION_TRACE
99 select THREAD_INFO_IN_TASK
Christoph Hellwig11129e82020-09-07 07:58:22 +0200100 select UACCESS_MEMCPY if !MMU
Alexandre Ghiti54c95a12019-09-23 15:39:21 -0700101
102config ARCH_MMAP_RND_BITS_MIN
103 default 18 if 64BIT
104 default 8
105
106# max bits determined by the following formula:
107# VA_BITS - PAGE_SHIFT - 3
108config ARCH_MMAP_RND_BITS_MAX
109 default 24 if 64BIT # SV39 based
110 default 17
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700111
Christoph Hellwiga4c37332019-10-28 13:10:32 +0100112# set if we run in machine mode, cleared if we run in supervisor mode
113config RISCV_M_MODE
114 bool
Christoph Hellwig6bd33e12019-10-28 13:10:41 +0100115 default !MMU
Christoph Hellwiga4c37332019-10-28 13:10:32 +0100116
Damien Le Moaleded8bc2019-10-28 13:10:33 +0100117# set if we are running in S-mode and can use SBI calls
118config RISCV_SBI
119 bool
120 depends on !RISCV_M_MODE
121 default y
122
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700123config MMU
Christoph Hellwig6bd33e12019-10-28 13:10:41 +0100124 bool "MMU-based Paged Memory Management Support"
125 default y
126 help
127 Select if you want MMU-based virtualised addressing space
128 support by paged memory management. If unsure, say 'Y'.
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700129
Christoph Hellwig5ec9c4f2018-01-16 09:37:50 +0100130config ZONE_DMA32
131 bool
Christoph Hellwigf1306f02018-04-27 08:41:09 +0200132 default y if 64BIT
Christoph Hellwig5ec9c4f2018-01-16 09:37:50 +0100133
Logan Gunthorped95f1a52019-08-28 15:40:54 -0600134config VA_BITS
135 int
136 default 32 if 32BIT
137 default 39 if 64BIT
138
139config PA_BITS
140 int
141 default 34 if 32BIT
142 default 56 if 64BIT
143
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700144config PAGE_OFFSET
145 hex
Atish Patrae5577932021-01-11 15:45:04 -0800146 default 0xC0000000 if 32BIT && MAXPHYSMEM_1GB
Christoph Hellwig6bd33e12019-10-28 13:10:41 +0100147 default 0x80000000 if 64BIT && !MMU
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700148 default 0xffffffff80000000 if 64BIT && MAXPHYSMEM_2GB
149 default 0xffffffe000000000 if 64BIT && MAXPHYSMEM_128GB
150
Logan Gunthorped95f1a52019-08-28 15:40:54 -0600151config ARCH_FLATMEM_ENABLE
Atish Patra4f0e8ee2020-11-18 16:38:29 -0800152 def_bool !NUMA
Logan Gunthorped95f1a52019-08-28 15:40:54 -0600153
154config ARCH_SPARSEMEM_ENABLE
155 def_bool y
Damien Le Moalaa2734202020-02-12 19:34:24 +0900156 depends on MMU
Kefeng Wang199fc6b2021-03-29 11:13:07 +0800157 select SPARSEMEM_STATIC if 32BIT && SPARSEMEM
Kefeng Wanga5406a72021-03-15 20:03:07 +0800158 select SPARSEMEM_VMEMMAP_ENABLE if 64BIT
Logan Gunthorped95f1a52019-08-28 15:40:54 -0600159
160config ARCH_SELECT_MEMORY_MODEL
161 def_bool ARCH_SPARSEMEM_ENABLE
162
Alexandre Ghiti9e953cd2019-05-26 08:50:38 -0400163config ARCH_WANT_GENERAL_HUGETLB
164 def_bool y
165
Guo Ren74784082020-12-17 16:01:44 +0000166config ARCH_SUPPORTS_UPROBES
167 def_bool y
168
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700169config STACKTRACE_SUPPORT
170 def_bool y
171
Alan Kao10626c32017-12-18 17:52:48 +0800172config TRACE_IRQFLAGS_SUPPORT
173 def_bool y
174
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700175config GENERIC_BUG
176 def_bool y
177 depends on BUG
178 select GENERIC_BUG_RELATIVE_POINTERS if 64BIT
179
180config GENERIC_BUG_RELATIVE_POINTERS
181 bool
182
183config GENERIC_CALIBRATE_DELAY
184 def_bool y
185
186config GENERIC_CSUM
187 def_bool y
188
189config GENERIC_HWEIGHT
190 def_bool y
191
Anup Patelf2c17aa2019-01-07 20:57:01 +0530192config FIX_EARLYCON_MEM
Andreas Schwab0312a3d2019-12-17 12:15:16 +0100193 def_bool MMU
Anup Patelf2c17aa2019-01-07 20:57:01 +0530194
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700195config PGTABLE_LEVELS
196 int
197 default 3 if 64BIT
198 default 2
199
Guo Ren3c469792020-06-27 13:57:08 +0000200config LOCKDEP_SUPPORT
201 def_bool y
202
Loys Ollivier0cbb8a32019-06-17 21:29:48 +0200203source "arch/riscv/Kconfig.socs"
204
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700205menu "Platform type"
206
207choice
208 prompt "Base ISA"
209 default ARCH_RV64I
210 help
Antony Pavlov86cca812019-01-08 22:45:57 +0300211 This selects the base ISA that this kernel will target and must match
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700212 the target platform.
213
214config ARCH_RV32I
215 bool "RV32I"
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700216 select 32BIT
Matt Redfearne3d59802018-04-11 08:50:17 +0100217 select GENERIC_LIB_ASHLDI3
218 select GENERIC_LIB_ASHRDI3
219 select GENERIC_LIB_LSHRDI3
Zong Li8f791252018-06-25 16:49:38 +0800220 select GENERIC_LIB_UCMPDI2
Christoph Hellwig6bd33e12019-10-28 13:10:41 +0100221 select MMU
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700222
223config ARCH_RV64I
224 bool "RV64I"
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700225 select 64BIT
Ard Biesheuvelc12d3362019-11-08 13:22:27 +0100226 select ARCH_SUPPORTS_INT128 if CC_HAS_INT128 && GCC_VERSION >= 50000
Christoph Hellwig6bd33e12019-10-28 13:10:41 +0100227 select HAVE_DYNAMIC_FTRACE if MMU
228 select HAVE_DYNAMIC_FTRACE_WITH_REGS if HAVE_DYNAMIC_FTRACE
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -0700229 select HAVE_FTRACE_MCOUNT_RECORD
230 select HAVE_FUNCTION_GRAPH_TRACER
231 select HAVE_FUNCTION_TRACER
Christoph Hellwig6bd33e12019-10-28 13:10:41 +0100232 select SWIOTLB if MMU
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700233
234endchoice
235
236# We must be able to map all physical memory into the kernel, but the compiler
237# is still a bit more efficient when generating code if it's setup in a manner
238# such that it can only map 2GiB of memory.
239choice
240 prompt "Kernel Code Model"
241 default CMODEL_MEDLOW if 32BIT
242 default CMODEL_MEDANY if 64BIT
243
244 config CMODEL_MEDLOW
245 bool "medium low code model"
246 config CMODEL_MEDANY
247 bool "medium any code model"
248endchoice
249
Zong Liab1ef682018-03-15 16:50:41 +0800250config MODULE_SECTIONS
251 bool
252 select HAVE_MOD_ARCH_SPECIFIC
253
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700254choice
255 prompt "Maximum Physical Memory"
Atish Patrae5577932021-01-11 15:45:04 -0800256 default MAXPHYSMEM_1GB if 32BIT
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700257 default MAXPHYSMEM_2GB if 64BIT && CMODEL_MEDLOW
258 default MAXPHYSMEM_128GB if 64BIT && CMODEL_MEDANY
259
Atish Patrae5577932021-01-11 15:45:04 -0800260 config MAXPHYSMEM_1GB
Atish Patrade5f4b82021-01-29 11:00:38 -0800261 depends on 32BIT
Atish Patrae5577932021-01-11 15:45:04 -0800262 bool "1GiB"
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700263 config MAXPHYSMEM_2GB
Atish Patrade5f4b82021-01-29 11:00:38 -0800264 depends on 64BIT && CMODEL_MEDLOW
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700265 bool "2GiB"
266 config MAXPHYSMEM_128GB
267 depends on 64BIT && CMODEL_MEDANY
268 bool "128GiB"
269endchoice
270
271
272config SMP
273 bool "Symmetric Multi-Processing"
274 help
275 This enables support for systems with more than one CPU. If
276 you say N here, the kernel will run on single and
277 multiprocessor machines, but will use only one CPU of a
278 multiprocessor machine. If you say Y here, the kernel will run
279 on many, but not all, single processor machines. On a single
280 processor machine, the kernel will run faster if you say N
281 here.
282
283 If you don't know what to do here, say N.
284
285config NR_CPUS
286 int "Maximum number of CPUs (2-32)"
287 range 2 32
288 depends on SMP
289 default "8"
290
Atish Patraf1e58582020-03-17 18:11:44 -0700291config HOTPLUG_CPU
292 bool "Support for hot-pluggable CPUs"
293 depends on SMP
294 select GENERIC_IRQ_MIGRATION
295 help
296
297 Say Y here to experiment with turning CPUs off and on. CPUs
298 can be controlled through /sys/devices/system/cpu.
299
300 Say N if you want to disable CPU hotplug.
301
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700302choice
303 prompt "CPU Tuning"
304 default TUNE_GENERIC
305
306config TUNE_GENERIC
307 bool "generic"
308
309endchoice
310
Atish Patra4f0e8ee2020-11-18 16:38:29 -0800311# Common NUMA Features
312config NUMA
313 bool "NUMA Memory Allocation and Scheduler Support"
Kefeng Wang1adbc292021-03-30 21:25:31 +0800314 depends on SMP && MMU
Atish Patra4f0e8ee2020-11-18 16:38:29 -0800315 select GENERIC_ARCH_NUMA
316 select OF_NUMA
317 select ARCH_SUPPORTS_NUMA_BALANCING
318 help
319 Enable NUMA (Non-Uniform Memory Access) support.
320
321 The kernel will try to allocate memory used by a CPU on the
322 local memory of the CPU and add some more NUMA awareness to the kernel.
323
324config NODES_SHIFT
325 int "Maximum NUMA Nodes (as a power of 2)"
326 range 1 10
327 default "2"
328 depends on NEED_MULTIPLE_NODES
329 help
330 Specify the maximum number of NUMA Nodes available on the target
331 system. Increases memory reserved to accommodate various tables.
332
333config USE_PERCPU_NUMA_NODE_ID
334 def_bool y
335 depends on NUMA
336
337config NEED_PER_CPU_EMBED_FIRST_CHUNK
338 def_bool y
339 depends on NUMA
340
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700341config RISCV_ISA_C
342 bool "Emit compressed instructions when building Linux"
343 default y
344 help
345 Adds "C" to the ISA subsets that the toolchain is allowed to emit
346 when building Linux, which results in compressed instructions in the
347 Linux binary.
348
349 If you don't know what to do here, say Y.
350
Alan Kao178e9fc2018-04-20 07:27:49 +0800351menu "supported PMU type"
352 depends on PERF_EVENTS
353
354config RISCV_BASE_PMU
355 bool "Base Performance Monitoring Unit"
356 def_bool y
357 help
358 A base PMU that serves as a reference implementation and has limited
359 feature of perf. It can run on any RISC-V machines so serves as the
360 fallback, but this option can also be disable to reduce kernel size.
361
362endmenu
363
Alan Kao9671f702018-10-09 10:18:33 +0800364config FPU
365 bool "FPU support"
366 default y
367 help
368 Say N here if you want to disable all floating-point related procedure
369 in the kernel.
370
371 If you don't know what to do here, say Y.
372
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700373endmenu
374
Nick Kossifidisaef53f92018-09-20 01:48:15 +0300375menu "Kernel features"
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700376
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700377source "kernel/Kconfig.hz"
378
Atish Patraefca1392020-03-17 18:11:37 -0700379config RISCV_SBI_V01
380 bool "SBI v0.1 support"
381 default y
382 depends on RISCV_SBI
383 help
384 This config allows kernel to use SBI v0.1 APIs. This will be
385 deprecated in future once legacy M-mode software are no longer in use.
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700386endmenu
387
Nick Kossifidisaef53f92018-09-20 01:48:15 +0300388menu "Boot options"
389
Nick Kossifidisaef53f92018-09-20 01:48:15 +0300390config CMDLINE
Nick Kossifidis3aed8c42018-11-18 02:06:56 +0200391 string "Built-in kernel command line"
Nick Kossifidisaef53f92018-09-20 01:48:15 +0300392 help
Nick Kossifidis3aed8c42018-11-18 02:06:56 +0200393 For most platforms, the arguments for the kernel's command line
394 are provided at run-time, during boot. However, there are cases
395 where either no arguments are being provided or the provided
396 arguments are insufficient or even invalid.
397
398 When that occurs, it is possible to define a built-in command
399 line here and choose how the kernel should use it later on.
400
401choice
402 prompt "Built-in command line usage" if CMDLINE != ""
403 default CMDLINE_FALLBACK
404 help
405 Choose how the kernel will handle the provided built-in command
406 line.
407
408config CMDLINE_FALLBACK
409 bool "Use bootloader kernel arguments if available"
410 help
411 Use the built-in command line as fallback in case we get nothing
412 during boot. This is the default behaviour.
413
414config CMDLINE_EXTEND
415 bool "Extend bootloader kernel arguments"
416 help
417 The command-line arguments provided during boot will be
418 appended to the built-in command line. This is useful in
419 cases where the provided arguments are insufficient and
420 you don't want to or cannot modify them.
421
Nick Kossifidisaef53f92018-09-20 01:48:15 +0300422
423config CMDLINE_FORCE
Nick Kossifidis3aed8c42018-11-18 02:06:56 +0200424 bool "Always use the default kernel command string"
Nick Kossifidisaef53f92018-09-20 01:48:15 +0300425 help
Nick Kossifidis3aed8c42018-11-18 02:06:56 +0200426 Always use the built-in command line, even if we get one during
427 boot. This is useful in case you need to override the provided
428 command line on systems where you don't have or want control
429 over it.
Nick Kossifidisaef53f92018-09-20 01:48:15 +0300430
Nick Kossifidis3aed8c42018-11-18 02:06:56 +0200431endchoice
Nick Kossifidisaef53f92018-09-20 01:48:15 +0300432
Atish Patrad7071742020-09-17 15:37:14 -0700433config EFI_STUB
434 bool
435
436config EFI
437 bool "UEFI runtime support"
438 depends on OF
439 select LIBFDT
440 select UCS2_STRING
441 select EFI_PARAMS_FROM_FDT
442 select EFI_STUB
443 select EFI_GENERIC_STUB
Atish Patrab91540d2020-09-17 15:37:15 -0700444 select EFI_RUNTIME_WRAPPERS
Atish Patrad7071742020-09-17 15:37:14 -0700445 select RISCV_ISA_C
Atish Patrab91540d2020-09-17 15:37:15 -0700446 depends on MMU
Atish Patrad7071742020-09-17 15:37:14 -0700447 default y
448 help
449 This option provides support for runtime services provided
450 by UEFI firmware (such as non-volatile variables, realtime
451 clock, and platform reset). A UEFI stub is also provided to
452 allow the kernel to be booted as an EFI application. This
453 is only useful on systems that have UEFI firmware.
454
Guo Renfea2fed2020-12-17 16:29:18 +0000455config CC_HAVE_STACKPROTECTOR_TLS
456 def_bool $(cc-option,-mstack-protector-guard=tls -mstack-protector-guard-reg=tp -mstack-protector-guard-offset=0)
457
458config STACKPROTECTOR_PER_TASK
459 def_bool y
460 depends on STACKPROTECTOR && CC_HAVE_STACKPROTECTOR_TLS
461
Nick Kossifidisaef53f92018-09-20 01:48:15 +0300462endmenu
463
Palmer Dabbelt2d268252020-04-14 13:43:24 +0900464config BUILTIN_DTB
465 def_bool n
Palmer Dabbelt2d268252020-04-14 13:43:24 +0900466 depends on OF
467
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700468menu "Power management options"
469
Masahiro Yamada8636a1f2018-12-11 20:01:04 +0900470source "kernel/power/Kconfig"
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700471
472endmenu
Atish Patrad7071742020-09-17 15:37:14 -0700473
474source "drivers/firmware/Kconfig"