blob: e38bd044610fb7d27cff92742e8930a01f721b54 [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
Kefeng Wang95301412021-02-25 15:03:03 +080023 select ARCH_HAS_FORTIFY_SOURCE
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -070024 select ARCH_HAS_GCOV_PROFILE_ALL
25 select ARCH_HAS_GIGANTIC_PAGE
Tobias Klauser20d38f72020-06-26 14:40:56 +020026 select ARCH_HAS_KCOV
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -070027 select ARCH_HAS_MMIOWB
28 select ARCH_HAS_PTE_SPECIAL
29 select ARCH_HAS_SET_DIRECT_MAP
30 select ARCH_HAS_SET_MEMORY
31 select ARCH_HAS_STRICT_KERNEL_RWX if MMU
Jisheng Zhanga9451b82021-03-30 02:26:17 +080032 select ARCH_HAS_STRICT_MODULE_RWX if MMU
Guo Ren2f100582021-03-07 10:24:46 +080033 select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
Vincent Chenfc0c7692020-06-23 13:36:59 +080034 select ARCH_OPTIONAL_KERNEL_RWX if ARCH_HAS_STRICT_KERNEL_RWX
35 select ARCH_OPTIONAL_KERNEL_RWX_DEFAULT
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -070036 select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT if MMU
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070037 select ARCH_WANT_FRAME_POINTERS
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -070038 select ARCH_WANT_HUGE_PMD_SHARE if 64BIT
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070039 select CLONE_BACKWARDS
Palmer Dabbeltd5be89a2020-09-14 09:56:30 -070040 select CLINT_TIMER if !MMU
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070041 select COMMON_CLK
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -070042 select EDAC_SUPPORT
43 select GENERIC_ARCH_TOPOLOGY if SMP
44 select GENERIC_ATOMIC64 if !64BIT
Guo Ren2f100582021-03-07 10:24:46 +080045 select GENERIC_CLOCKEVENTS_BROADCAST if SMP
Atish Patra6262f662020-09-17 15:37:11 -070046 select GENERIC_EARLY_IOREMAP
Vincent Chenad5d1122020-06-09 22:14:48 +080047 select GENERIC_GETTIMEOFDAY if HAVE_GENERIC_VDSO
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -070048 select GENERIC_IOREMAP
49 select GENERIC_IRQ_MULTI_HANDLER
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070050 select GENERIC_IRQ_SHOW
Palmer Dabbelt78ed4732020-07-09 11:51:17 -070051 select GENERIC_LIB_DEVMEM_IS_ALLOWED
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070052 select GENERIC_PCI_IOMAP
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -070053 select GENERIC_PTDUMP if MMU
Anup Patel9b9afe42018-12-04 15:59:51 +053054 select GENERIC_SCHED_CLOCK
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -070055 select GENERIC_SMP_IDLE_THREAD
Christoph Hellwig6bd33e12019-10-28 13:10:41 +010056 select GENERIC_STRNCPY_FROM_USER if MMU
57 select GENERIC_STRNLEN_USER if MMU
Vincent Chenad5d1122020-06-09 22:14:48 +080058 select GENERIC_TIME_VSYSCALL if MMU && 64BIT
Anup Patel6b7ce8922020-06-01 14:45:40 +053059 select HANDLE_DOMAIN_IRQ
David Abdurachmanovefe75c42018-10-29 11:48:53 +010060 select HAVE_ARCH_AUDITSYSCALL
Emil Renner Berthingebc00dd2020-07-14 09:40:44 +020061 select HAVE_ARCH_JUMP_LABEL
62 select HAVE_ARCH_JUMP_LABEL_RELATIVE
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -070063 select HAVE_ARCH_KASAN if MMU && 64BIT
Nylon Chene178d672021-01-16 13:58:35 +080064 select HAVE_ARCH_KASAN_VMALLOC if MMU && 64BIT
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -070065 select HAVE_ARCH_KGDB
66 select HAVE_ARCH_KGDB_QXFER_PKT
67 select HAVE_ARCH_MMAP_RND_BITS if MMU
David Abdurachmanov53406272019-10-04 17:12:22 -070068 select HAVE_ARCH_SECCOMP_FILTER
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -070069 select HAVE_ARCH_TRACEHOOK
Masahiro Yamada2ff2b7e2019-08-19 14:54:20 +090070 select HAVE_ASM_MODVERSIONS
Greentime Hued48b292020-06-24 17:03:16 +080071 select HAVE_CONTEXT_TRACKING
Tobias Klausercbb3d912020-06-27 12:50:50 +020072 select HAVE_DEBUG_KMEMLEAK
Christoph Hellwig6bd33e12019-10-28 13:10:41 +010073 select HAVE_DMA_CONTIGUOUS if MMU
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -070074 select HAVE_EBPF_JIT if MMU
Guo Renee55ff82020-12-17 16:01:45 +000075 select HAVE_FUNCTION_ERROR_INJECTION
Jim Wilsonb90edb32018-10-16 14:42:59 -070076 select HAVE_FUTEX_CMPXCHG if FUTEX
Tobias Klauser20d38f72020-06-26 14:40:56 +020077 select HAVE_GCC_PLUGINS
Vincent Chenad5d1122020-06-09 22:14:48 +080078 select HAVE_GENERIC_VDSO if MMU && 64BIT
Kefeng Wang31564b82020-10-28 12:28:42 +080079 select HAVE_IRQ_TIME_ACCOUNTING
Guo Renc22b0bc2020-12-17 16:01:42 +000080 select HAVE_KPROBES
Guo Ren829adda2020-12-17 16:01:43 +000081 select HAVE_KPROBES_ON_FTRACE
Guo Renc22b0bc2020-12-17 16:01:42 +000082 select HAVE_KRETPROBES
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -070083 select HAVE_PCI
Alan Kao178e9fc2018-04-20 07:27:49 +080084 select HAVE_PERF_EVENTS
Mao Han98a93b02019-09-05 11:46:35 +080085 select HAVE_PERF_REGS
86 select HAVE_PERF_USER_STACK_DUMP
Patrick Stählindcdc7a532020-12-17 16:01:37 +000087 select HAVE_REGS_AND_STACK_ACCESS_API
Guo Renf2c96992020-07-10 16:19:57 +000088 select HAVE_STACKPROTECTOR
David Abdurachmanov5aeb1b32018-12-06 16:26:35 +010089 select HAVE_SYSCALL_TRACEPOINTS
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070090 select IRQ_DOMAIN
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070091 select MODULES_USE_ELF_RELA if MODULES
Zong Li2cffc952018-12-07 17:02:16 +080092 select MODULE_SECTIONS if MODULES
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -070093 select OF
94 select OF_EARLY_FLATTREE
95 select OF_IRQ
Christoph Hellwig2eac9c22018-11-15 20:05:33 +010096 select PCI_DOMAINS_GENERIC if PCI
Christoph Hellwigeb01d422018-11-15 20:05:32 +010097 select PCI_MSI if PCI
Anup Patele71ee062020-06-01 14:45:43 +053098 select RISCV_INTC
Anup Patel2bc3fc82020-08-17 18:12:50 +053099 select RISCV_TIMER if RISCV_SBI
Logan Gunthorped95f1a52019-08-28 15:40:54 -0600100 select SPARSEMEM_STATIC if 32BIT
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -0700101 select SPARSE_IRQ
102 select SYSCTL_EXCEPTION_TRACE
103 select THREAD_INFO_IN_TASK
Christoph Hellwig11129e82020-09-07 07:58:22 +0200104 select UACCESS_MEMCPY if !MMU
Alexandre Ghiti54c95a12019-09-23 15:39:21 -0700105
106config ARCH_MMAP_RND_BITS_MIN
107 default 18 if 64BIT
108 default 8
109
110# max bits determined by the following formula:
111# VA_BITS - PAGE_SHIFT - 3
112config ARCH_MMAP_RND_BITS_MAX
113 default 24 if 64BIT # SV39 based
114 default 17
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700115
Christoph Hellwiga4c37332019-10-28 13:10:32 +0100116# set if we run in machine mode, cleared if we run in supervisor mode
117config RISCV_M_MODE
118 bool
Christoph Hellwig6bd33e12019-10-28 13:10:41 +0100119 default !MMU
Christoph Hellwiga4c37332019-10-28 13:10:32 +0100120
Damien Le Moaleded8bc2019-10-28 13:10:33 +0100121# set if we are running in S-mode and can use SBI calls
122config RISCV_SBI
123 bool
124 depends on !RISCV_M_MODE
125 default y
126
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700127config MMU
Christoph Hellwig6bd33e12019-10-28 13:10:41 +0100128 bool "MMU-based Paged Memory Management Support"
129 default y
130 help
131 Select if you want MMU-based virtualised addressing space
132 support by paged memory management. If unsure, say 'Y'.
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700133
Christoph Hellwig5ec9c4f2018-01-16 09:37:50 +0100134config ZONE_DMA32
135 bool
Christoph Hellwigf1306f02018-04-27 08:41:09 +0200136 default y if 64BIT
Christoph Hellwig5ec9c4f2018-01-16 09:37:50 +0100137
Logan Gunthorped95f1a52019-08-28 15:40:54 -0600138config VA_BITS
139 int
140 default 32 if 32BIT
141 default 39 if 64BIT
142
143config PA_BITS
144 int
145 default 34 if 32BIT
146 default 56 if 64BIT
147
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700148config PAGE_OFFSET
149 hex
Atish Patrae5577932021-01-11 15:45:04 -0800150 default 0xC0000000 if 32BIT && MAXPHYSMEM_1GB
Christoph Hellwig6bd33e12019-10-28 13:10:41 +0100151 default 0x80000000 if 64BIT && !MMU
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700152 default 0xffffffff80000000 if 64BIT && MAXPHYSMEM_2GB
153 default 0xffffffe000000000 if 64BIT && MAXPHYSMEM_128GB
154
Logan Gunthorped95f1a52019-08-28 15:40:54 -0600155config ARCH_FLATMEM_ENABLE
Atish Patra4f0e8ee2020-11-18 16:38:29 -0800156 def_bool !NUMA
Logan Gunthorped95f1a52019-08-28 15:40:54 -0600157
158config ARCH_SPARSEMEM_ENABLE
159 def_bool y
Damien Le Moalaa2734202020-02-12 19:34:24 +0900160 depends on MMU
Logan Gunthorped95f1a52019-08-28 15:40:54 -0600161 select SPARSEMEM_VMEMMAP_ENABLE
162
163config ARCH_SELECT_MEMORY_MODEL
164 def_bool ARCH_SPARSEMEM_ENABLE
165
Alexandre Ghiti9e953cd2019-05-26 08:50:38 -0400166config ARCH_WANT_GENERAL_HUGETLB
167 def_bool y
168
Guo Ren74784082020-12-17 16:01:44 +0000169config ARCH_SUPPORTS_UPROBES
170 def_bool y
171
Alexandre Ghiti9e953cd2019-05-26 08:50:38 -0400172config SYS_SUPPORTS_HUGETLBFS
Kefeng Wang69868412020-05-11 10:19:58 +0800173 depends on MMU
Alexandre Ghiti9e953cd2019-05-26 08:50:38 -0400174 def_bool y
175
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700176config STACKTRACE_SUPPORT
177 def_bool y
178
Alan Kao10626c32017-12-18 17:52:48 +0800179config TRACE_IRQFLAGS_SUPPORT
180 def_bool y
181
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700182config GENERIC_BUG
183 def_bool y
184 depends on BUG
185 select GENERIC_BUG_RELATIVE_POINTERS if 64BIT
186
187config GENERIC_BUG_RELATIVE_POINTERS
188 bool
189
190config GENERIC_CALIBRATE_DELAY
191 def_bool y
192
193config GENERIC_CSUM
194 def_bool y
195
196config GENERIC_HWEIGHT
197 def_bool y
198
Anup Patelf2c17aa2019-01-07 20:57:01 +0530199config FIX_EARLYCON_MEM
Andreas Schwab0312a3d2019-12-17 12:15:16 +0100200 def_bool MMU
Anup Patelf2c17aa2019-01-07 20:57:01 +0530201
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700202config PGTABLE_LEVELS
203 int
204 default 3 if 64BIT
205 default 2
206
Guo Ren3c469792020-06-27 13:57:08 +0000207config LOCKDEP_SUPPORT
208 def_bool y
209
Loys Ollivier0cbb8a32019-06-17 21:29:48 +0200210source "arch/riscv/Kconfig.socs"
Vincent Chen6f4eea92021-03-22 22:26:03 +0800211source "arch/riscv/Kconfig.erratas"
Loys Ollivier0cbb8a32019-06-17 21:29:48 +0200212
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700213menu "Platform type"
214
215choice
216 prompt "Base ISA"
217 default ARCH_RV64I
218 help
Antony Pavlov86cca812019-01-08 22:45:57 +0300219 This selects the base ISA that this kernel will target and must match
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700220 the target platform.
221
222config ARCH_RV32I
223 bool "RV32I"
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700224 select 32BIT
Matt Redfearne3d59802018-04-11 08:50:17 +0100225 select GENERIC_LIB_ASHLDI3
226 select GENERIC_LIB_ASHRDI3
227 select GENERIC_LIB_LSHRDI3
Zong Li8f791252018-06-25 16:49:38 +0800228 select GENERIC_LIB_UCMPDI2
Christoph Hellwig6bd33e12019-10-28 13:10:41 +0100229 select MMU
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700230
231config ARCH_RV64I
232 bool "RV64I"
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700233 select 64BIT
Ard Biesheuvelc12d3362019-11-08 13:22:27 +0100234 select ARCH_SUPPORTS_INT128 if CC_HAS_INT128 && GCC_VERSION >= 50000
Nathan Chancelloradebc882021-03-25 15:38:07 -0700235 select HAVE_DYNAMIC_FTRACE if MMU && $(cc-option,-fpatchable-function-entry=8)
Christoph Hellwig6bd33e12019-10-28 13:10:41 +0100236 select HAVE_DYNAMIC_FTRACE_WITH_REGS if HAVE_DYNAMIC_FTRACE
Palmer Dabbelte8c7ef72020-06-04 13:55:14 -0700237 select HAVE_FTRACE_MCOUNT_RECORD
238 select HAVE_FUNCTION_GRAPH_TRACER
239 select HAVE_FUNCTION_TRACER
Christoph Hellwig6bd33e12019-10-28 13:10:41 +0100240 select SWIOTLB if MMU
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700241
242endchoice
243
244# We must be able to map all physical memory into the kernel, but the compiler
245# is still a bit more efficient when generating code if it's setup in a manner
246# such that it can only map 2GiB of memory.
247choice
248 prompt "Kernel Code Model"
249 default CMODEL_MEDLOW if 32BIT
250 default CMODEL_MEDANY if 64BIT
251
252 config CMODEL_MEDLOW
253 bool "medium low code model"
254 config CMODEL_MEDANY
255 bool "medium any code model"
256endchoice
257
Zong Liab1ef682018-03-15 16:50:41 +0800258config MODULE_SECTIONS
259 bool
260 select HAVE_MOD_ARCH_SPECIFIC
261
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700262choice
263 prompt "Maximum Physical Memory"
Atish Patrae5577932021-01-11 15:45:04 -0800264 default MAXPHYSMEM_1GB if 32BIT
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700265 default MAXPHYSMEM_2GB if 64BIT && CMODEL_MEDLOW
266 default MAXPHYSMEM_128GB if 64BIT && CMODEL_MEDANY
267
Atish Patrae5577932021-01-11 15:45:04 -0800268 config MAXPHYSMEM_1GB
Atish Patrade5f4b82021-01-29 11:00:38 -0800269 depends on 32BIT
Atish Patrae5577932021-01-11 15:45:04 -0800270 bool "1GiB"
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700271 config MAXPHYSMEM_2GB
Atish Patrade5f4b82021-01-29 11:00:38 -0800272 depends on 64BIT && CMODEL_MEDLOW
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700273 bool "2GiB"
274 config MAXPHYSMEM_128GB
275 depends on 64BIT && CMODEL_MEDANY
276 bool "128GiB"
277endchoice
278
279
280config SMP
281 bool "Symmetric Multi-Processing"
282 help
283 This enables support for systems with more than one CPU. If
284 you say N here, the kernel will run on single and
285 multiprocessor machines, but will use only one CPU of a
286 multiprocessor machine. If you say Y here, the kernel will run
287 on many, but not all, single processor machines. On a single
288 processor machine, the kernel will run faster if you say N
289 here.
290
291 If you don't know what to do here, say N.
292
293config NR_CPUS
294 int "Maximum number of CPUs (2-32)"
295 range 2 32
296 depends on SMP
297 default "8"
298
Atish Patraf1e58582020-03-17 18:11:44 -0700299config HOTPLUG_CPU
300 bool "Support for hot-pluggable CPUs"
301 depends on SMP
302 select GENERIC_IRQ_MIGRATION
303 help
304
305 Say Y here to experiment with turning CPUs off and on. CPUs
306 can be controlled through /sys/devices/system/cpu.
307
308 Say N if you want to disable CPU hotplug.
309
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700310choice
311 prompt "CPU Tuning"
312 default TUNE_GENERIC
313
314config TUNE_GENERIC
315 bool "generic"
316
317endchoice
318
Atish Patra4f0e8ee2020-11-18 16:38:29 -0800319# Common NUMA Features
320config NUMA
321 bool "NUMA Memory Allocation and Scheduler Support"
Palmer Dabbeltf01e6312021-02-26 12:21:15 -0800322 depends on SMP
Atish Patra4f0e8ee2020-11-18 16:38:29 -0800323 select GENERIC_ARCH_NUMA
324 select OF_NUMA
325 select ARCH_SUPPORTS_NUMA_BALANCING
326 help
327 Enable NUMA (Non-Uniform Memory Access) support.
328
329 The kernel will try to allocate memory used by a CPU on the
330 local memory of the CPU and add some more NUMA awareness to the kernel.
331
332config NODES_SHIFT
333 int "Maximum NUMA Nodes (as a power of 2)"
334 range 1 10
335 default "2"
336 depends on NEED_MULTIPLE_NODES
337 help
338 Specify the maximum number of NUMA Nodes available on the target
339 system. Increases memory reserved to accommodate various tables.
340
341config USE_PERCPU_NUMA_NODE_ID
342 def_bool y
343 depends on NUMA
344
345config NEED_PER_CPU_EMBED_FIRST_CHUNK
346 def_bool y
347 depends on NUMA
348
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700349config RISCV_ISA_C
350 bool "Emit compressed instructions when building Linux"
351 default y
352 help
353 Adds "C" to the ISA subsets that the toolchain is allowed to emit
354 when building Linux, which results in compressed instructions in the
355 Linux binary.
356
357 If you don't know what to do here, say Y.
358
Alan Kao178e9fc2018-04-20 07:27:49 +0800359menu "supported PMU type"
360 depends on PERF_EVENTS
361
362config RISCV_BASE_PMU
363 bool "Base Performance Monitoring Unit"
364 def_bool y
365 help
366 A base PMU that serves as a reference implementation and has limited
367 feature of perf. It can run on any RISC-V machines so serves as the
368 fallback, but this option can also be disable to reduce kernel size.
369
370endmenu
371
Alan Kao9671f702018-10-09 10:18:33 +0800372config FPU
373 bool "FPU support"
374 default y
375 help
376 Say N here if you want to disable all floating-point related procedure
377 in the kernel.
378
379 If you don't know what to do here, say Y.
380
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700381endmenu
382
Nick Kossifidisaef53f92018-09-20 01:48:15 +0300383menu "Kernel features"
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700384
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700385source "kernel/Kconfig.hz"
386
Atish Patraefca1392020-03-17 18:11:37 -0700387config RISCV_SBI_V01
388 bool "SBI v0.1 support"
389 default y
390 depends on RISCV_SBI
391 help
392 This config allows kernel to use SBI v0.1 APIs. This will be
393 deprecated in future once legacy M-mode software are no longer in use.
Nick Kossifidisfba8a862021-04-19 03:55:36 +0300394
395config KEXEC
396 bool "Kexec system call"
397 select KEXEC_CORE
398 select HOTPLUG_CPU if SMP
399 depends on MMU
400 help
401 kexec is a system call that implements the ability to shutdown your
402 current kernel, and to start another kernel. It is like a reboot
403 but it is independent of the system firmware. And like a reboot
404 you can start any kernel with it, not just Linux.
405
406 The name comes from the similarity to the exec system call.
407
408
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700409endmenu
410
Nick Kossifidisaef53f92018-09-20 01:48:15 +0300411menu "Boot options"
412
Nick Kossifidisaef53f92018-09-20 01:48:15 +0300413config CMDLINE
Nick Kossifidis3aed8c42018-11-18 02:06:56 +0200414 string "Built-in kernel command line"
Nick Kossifidisaef53f92018-09-20 01:48:15 +0300415 help
Nick Kossifidis3aed8c42018-11-18 02:06:56 +0200416 For most platforms, the arguments for the kernel's command line
417 are provided at run-time, during boot. However, there are cases
418 where either no arguments are being provided or the provided
419 arguments are insufficient or even invalid.
420
421 When that occurs, it is possible to define a built-in command
422 line here and choose how the kernel should use it later on.
423
424choice
425 prompt "Built-in command line usage" if CMDLINE != ""
426 default CMDLINE_FALLBACK
427 help
428 Choose how the kernel will handle the provided built-in command
429 line.
430
431config CMDLINE_FALLBACK
432 bool "Use bootloader kernel arguments if available"
433 help
434 Use the built-in command line as fallback in case we get nothing
435 during boot. This is the default behaviour.
436
437config CMDLINE_EXTEND
438 bool "Extend bootloader kernel arguments"
439 help
440 The command-line arguments provided during boot will be
441 appended to the built-in command line. This is useful in
442 cases where the provided arguments are insufficient and
443 you don't want to or cannot modify them.
444
Nick Kossifidisaef53f92018-09-20 01:48:15 +0300445
446config CMDLINE_FORCE
Nick Kossifidis3aed8c42018-11-18 02:06:56 +0200447 bool "Always use the default kernel command string"
Nick Kossifidisaef53f92018-09-20 01:48:15 +0300448 help
Nick Kossifidis3aed8c42018-11-18 02:06:56 +0200449 Always use the built-in command line, even if we get one during
450 boot. This is useful in case you need to override the provided
451 command line on systems where you don't have or want control
452 over it.
Nick Kossifidisaef53f92018-09-20 01:48:15 +0300453
Nick Kossifidis3aed8c42018-11-18 02:06:56 +0200454endchoice
Nick Kossifidisaef53f92018-09-20 01:48:15 +0300455
Atish Patrad7071742020-09-17 15:37:14 -0700456config EFI_STUB
457 bool
458
459config EFI
460 bool "UEFI runtime support"
461 depends on OF
462 select LIBFDT
463 select UCS2_STRING
464 select EFI_PARAMS_FROM_FDT
465 select EFI_STUB
466 select EFI_GENERIC_STUB
Atish Patrab91540d2020-09-17 15:37:15 -0700467 select EFI_RUNTIME_WRAPPERS
Atish Patrad7071742020-09-17 15:37:14 -0700468 select RISCV_ISA_C
Atish Patrab91540d2020-09-17 15:37:15 -0700469 depends on MMU
Atish Patrad7071742020-09-17 15:37:14 -0700470 default y
471 help
472 This option provides support for runtime services provided
473 by UEFI firmware (such as non-volatile variables, realtime
474 clock, and platform reset). A UEFI stub is also provided to
475 allow the kernel to be booted as an EFI application. This
476 is only useful on systems that have UEFI firmware.
477
Guo Renfea2fed2020-12-17 16:29:18 +0000478config CC_HAVE_STACKPROTECTOR_TLS
479 def_bool $(cc-option,-mstack-protector-guard=tls -mstack-protector-guard-reg=tp -mstack-protector-guard-offset=0)
480
481config STACKPROTECTOR_PER_TASK
482 def_bool y
483 depends on STACKPROTECTOR && CC_HAVE_STACKPROTECTOR_TLS
484
Nick Kossifidisaef53f92018-09-20 01:48:15 +0300485endmenu
486
Palmer Dabbelt2d268252020-04-14 13:43:24 +0900487config BUILTIN_DTB
488 def_bool n
Palmer Dabbelt2d268252020-04-14 13:43:24 +0900489 depends on OF
490
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700491menu "Power management options"
492
Masahiro Yamada8636a1f2018-12-11 20:01:04 +0900493source "kernel/power/Kconfig"
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -0700494
495endmenu
Atish Patrad7071742020-09-17 15:37:14 -0700496
497source "drivers/firmware/Kconfig"