Merge tag 'thermal-6.6-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael...
[platform/kernel/linux-starfive.git] / arch / loongarch / Kconfig
1 # SPDX-License-Identifier: GPL-2.0
2 config LOONGARCH
3         bool
4         default y
5         select ACPI
6         select ACPI_GENERIC_GSI if ACPI
7         select ACPI_MCFG if ACPI
8         select ACPI_PPTT if ACPI
9         select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI
10         select ARCH_BINFMT_ELF_STATE
11         select ARCH_DISABLE_KASAN_INLINE
12         select ARCH_ENABLE_MEMORY_HOTPLUG
13         select ARCH_ENABLE_MEMORY_HOTREMOVE
14         select ARCH_HAS_ACPI_TABLE_UPGRADE      if ACPI
15         select ARCH_HAS_CPU_FINALIZE_INIT
16         select ARCH_HAS_FORTIFY_SOURCE
17         select ARCH_HAS_KCOV
18         select ARCH_HAS_NMI_SAFE_THIS_CPU_OPS
19         select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE
20         select ARCH_HAS_PTE_SPECIAL
21         select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
22         select ARCH_INLINE_READ_LOCK if !PREEMPTION
23         select ARCH_INLINE_READ_LOCK_BH if !PREEMPTION
24         select ARCH_INLINE_READ_LOCK_IRQ if !PREEMPTION
25         select ARCH_INLINE_READ_LOCK_IRQSAVE if !PREEMPTION
26         select ARCH_INLINE_READ_UNLOCK if !PREEMPTION
27         select ARCH_INLINE_READ_UNLOCK_BH if !PREEMPTION
28         select ARCH_INLINE_READ_UNLOCK_IRQ if !PREEMPTION
29         select ARCH_INLINE_READ_UNLOCK_IRQRESTORE if !PREEMPTION
30         select ARCH_INLINE_WRITE_LOCK if !PREEMPTION
31         select ARCH_INLINE_WRITE_LOCK_BH if !PREEMPTION
32         select ARCH_INLINE_WRITE_LOCK_IRQ if !PREEMPTION
33         select ARCH_INLINE_WRITE_LOCK_IRQSAVE if !PREEMPTION
34         select ARCH_INLINE_WRITE_UNLOCK if !PREEMPTION
35         select ARCH_INLINE_WRITE_UNLOCK_BH if !PREEMPTION
36         select ARCH_INLINE_WRITE_UNLOCK_IRQ if !PREEMPTION
37         select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE if !PREEMPTION
38         select ARCH_INLINE_SPIN_TRYLOCK if !PREEMPTION
39         select ARCH_INLINE_SPIN_TRYLOCK_BH if !PREEMPTION
40         select ARCH_INLINE_SPIN_LOCK if !PREEMPTION
41         select ARCH_INLINE_SPIN_LOCK_BH if !PREEMPTION
42         select ARCH_INLINE_SPIN_LOCK_IRQ if !PREEMPTION
43         select ARCH_INLINE_SPIN_LOCK_IRQSAVE if !PREEMPTION
44         select ARCH_INLINE_SPIN_UNLOCK if !PREEMPTION
45         select ARCH_INLINE_SPIN_UNLOCK_BH if !PREEMPTION
46         select ARCH_INLINE_SPIN_UNLOCK_IRQ if !PREEMPTION
47         select ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE if !PREEMPTION
48         select ARCH_KEEP_MEMBLOCK
49         select ARCH_MIGHT_HAVE_PC_PARPORT
50         select ARCH_MIGHT_HAVE_PC_SERIO
51         select ARCH_SPARSEMEM_ENABLE
52         select ARCH_STACKWALK
53         select ARCH_SUPPORTS_ACPI
54         select ARCH_SUPPORTS_ATOMIC_RMW
55         select ARCH_SUPPORTS_HUGETLBFS
56         select ARCH_SUPPORTS_LTO_CLANG
57         select ARCH_SUPPORTS_LTO_CLANG_THIN
58         select ARCH_SUPPORTS_NUMA_BALANCING
59         select ARCH_USE_BUILTIN_BSWAP
60         select ARCH_USE_CMPXCHG_LOCKREF
61         select ARCH_USE_QUEUED_RWLOCKS
62         select ARCH_USE_QUEUED_SPINLOCKS
63         select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT
64         select ARCH_WANT_LD_ORPHAN_WARN
65         select ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP
66         select ARCH_WANTS_NO_INSTR
67         select BUILDTIME_TABLE_SORT
68         select COMMON_CLK
69         select CPU_PM
70         select EFI
71         select GENERIC_CLOCKEVENTS
72         select GENERIC_CMOS_UPDATE
73         select GENERIC_CPU_AUTOPROBE
74         select GENERIC_ENTRY
75         select GENERIC_GETTIMEOFDAY
76         select GENERIC_IOREMAP if !ARCH_IOREMAP
77         select GENERIC_IRQ_MULTI_HANDLER
78         select GENERIC_IRQ_PROBE
79         select GENERIC_IRQ_SHOW
80         select GENERIC_LIB_ASHLDI3
81         select GENERIC_LIB_ASHRDI3
82         select GENERIC_LIB_CMPDI2
83         select GENERIC_LIB_LSHRDI3
84         select GENERIC_LIB_UCMPDI2
85         select GENERIC_LIB_DEVMEM_IS_ALLOWED
86         select GENERIC_PCI_IOMAP
87         select GENERIC_SCHED_CLOCK
88         select GENERIC_SMP_IDLE_THREAD
89         select GENERIC_TIME_VSYSCALL
90         select GENERIC_VDSO_TIME_NS
91         select GPIOLIB
92         select HAS_IOPORT
93         select HAVE_ARCH_AUDITSYSCALL
94         select HAVE_ARCH_JUMP_LABEL
95         select HAVE_ARCH_JUMP_LABEL_RELATIVE
96         select HAVE_ARCH_KASAN
97         select HAVE_ARCH_KFENCE
98         select HAVE_ARCH_KGDB if PERF_EVENTS
99         select HAVE_ARCH_MMAP_RND_BITS if MMU
100         select HAVE_ARCH_SECCOMP_FILTER
101         select HAVE_ARCH_TRACEHOOK
102         select HAVE_ARCH_TRANSPARENT_HUGEPAGE
103         select HAVE_ASM_MODVERSIONS
104         select HAVE_CONTEXT_TRACKING_USER
105         select HAVE_C_RECORDMCOUNT
106         select HAVE_DEBUG_KMEMLEAK
107         select HAVE_DEBUG_STACKOVERFLOW
108         select HAVE_DMA_CONTIGUOUS
109         select HAVE_DYNAMIC_FTRACE
110         select HAVE_DYNAMIC_FTRACE_WITH_ARGS
111         select HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
112         select HAVE_DYNAMIC_FTRACE_WITH_REGS
113         select HAVE_EBPF_JIT
114         select HAVE_EFFICIENT_UNALIGNED_ACCESS if !ARCH_STRICT_ALIGN
115         select HAVE_EXIT_THREAD
116         select HAVE_FAST_GUP
117         select HAVE_FTRACE_MCOUNT_RECORD
118         select HAVE_FUNCTION_ARG_ACCESS_API
119         select HAVE_FUNCTION_ERROR_INJECTION
120         select HAVE_FUNCTION_GRAPH_RETVAL if HAVE_FUNCTION_GRAPH_TRACER
121         select HAVE_FUNCTION_GRAPH_TRACER
122         select HAVE_FUNCTION_TRACER
123         select HAVE_GCC_PLUGINS
124         select HAVE_GENERIC_VDSO
125         select HAVE_HW_BREAKPOINT if PERF_EVENTS
126         select HAVE_IOREMAP_PROT
127         select HAVE_IRQ_EXIT_ON_IRQ_STACK
128         select HAVE_IRQ_TIME_ACCOUNTING
129         select HAVE_KPROBES
130         select HAVE_KPROBES_ON_FTRACE
131         select HAVE_KRETPROBES
132         select HAVE_MOD_ARCH_SPECIFIC
133         select HAVE_NMI
134         select HAVE_PCI
135         select HAVE_PERF_EVENTS
136         select HAVE_PERF_REGS
137         select HAVE_PERF_USER_STACK_DUMP
138         select HAVE_REGS_AND_STACK_ACCESS_API
139         select HAVE_RETHOOK
140         select HAVE_RSEQ
141         select HAVE_SAMPLE_FTRACE_DIRECT
142         select HAVE_SAMPLE_FTRACE_DIRECT_MULTI
143         select HAVE_SETUP_PER_CPU_AREA if NUMA
144         select HAVE_STACKPROTECTOR
145         select HAVE_SYSCALL_TRACEPOINTS
146         select HAVE_TIF_NOHZ
147         select HAVE_VIRT_CPU_ACCOUNTING_GEN if !SMP
148         select IRQ_FORCED_THREADING
149         select IRQ_LOONGARCH_CPU
150         select LOCK_MM_AND_FIND_VMA
151         select MMU_GATHER_MERGE_VMAS if MMU
152         select MODULES_USE_ELF_RELA if MODULES
153         select NEED_PER_CPU_EMBED_FIRST_CHUNK
154         select NEED_PER_CPU_PAGE_FIRST_CHUNK
155         select OF
156         select OF_EARLY_FLATTREE
157         select PCI
158         select PCI_DOMAINS_GENERIC
159         select PCI_ECAM if ACPI
160         select PCI_LOONGSON
161         select PCI_MSI_ARCH_FALLBACKS
162         select PCI_QUIRKS
163         select PERF_USE_VMALLOC
164         select RTC_LIB
165         select SMP
166         select SPARSE_IRQ
167         select SYSCTL_ARCH_UNALIGN_ALLOW
168         select SYSCTL_ARCH_UNALIGN_NO_WARN
169         select SYSCTL_EXCEPTION_TRACE
170         select SWIOTLB
171         select TRACE_IRQFLAGS_SUPPORT
172         select USE_PERCPU_NUMA_NODE_ID
173         select USER_STACKTRACE_SUPPORT
174         select ZONE_DMA32
175
176 config 32BIT
177         bool
178
179 config 64BIT
180         def_bool y
181
182 config GENERIC_BUG
183         def_bool y
184         depends on BUG
185
186 config GENERIC_BUG_RELATIVE_POINTERS
187         def_bool y
188         depends on GENERIC_BUG
189
190 config GENERIC_CALIBRATE_DELAY
191         def_bool y
192
193 config GENERIC_CSUM
194         def_bool y
195
196 config GENERIC_HWEIGHT
197         def_bool y
198
199 config L1_CACHE_SHIFT
200         int
201         default "6"
202
203 config LOCKDEP_SUPPORT
204         bool
205         default y
206
207 config STACKTRACE_SUPPORT
208         bool
209         default y
210
211 # MACH_LOONGSON32 and MACH_LOONGSON64 are deliberately carried over from the
212 # MIPS Loongson code, to preserve Loongson-specific code paths in drivers that
213 # are shared between architectures, and specifically expecting the symbols.
214 config MACH_LOONGSON32
215         def_bool 32BIT
216
217 config MACH_LOONGSON64
218         def_bool 64BIT
219
220 config FIX_EARLYCON_MEM
221         def_bool y
222
223 config PAGE_SIZE_4KB
224         bool
225
226 config PAGE_SIZE_16KB
227         bool
228
229 config PAGE_SIZE_64KB
230         bool
231
232 config PGTABLE_2LEVEL
233         bool
234
235 config PGTABLE_3LEVEL
236         bool
237
238 config PGTABLE_4LEVEL
239         bool
240
241 config PGTABLE_LEVELS
242         int
243         default 2 if PGTABLE_2LEVEL
244         default 3 if PGTABLE_3LEVEL
245         default 4 if PGTABLE_4LEVEL
246
247 config SCHED_OMIT_FRAME_POINTER
248         bool
249         default y
250
251 config AS_HAS_EXPLICIT_RELOCS
252         def_bool $(as-instr,x:pcalau12i \$t0$(comma)%pc_hi20(x))
253
254 config AS_HAS_FCSR_CLASS
255         def_bool $(as-instr,movfcsr2gr \$t0$(comma)\$fcsr0)
256
257 config AS_HAS_LSX_EXTENSION
258         def_bool $(as-instr,vld \$vr0$(comma)\$a0$(comma)0)
259
260 config AS_HAS_LASX_EXTENSION
261         def_bool $(as-instr,xvld \$xr0$(comma)\$a0$(comma)0)
262
263 config AS_HAS_LBT_EXTENSION
264         def_bool $(as-instr,movscr2gr \$a0$(comma)\$scr0)
265
266 menu "Kernel type and options"
267
268 source "kernel/Kconfig.hz"
269
270 choice
271         prompt "Page Table Layout"
272         default 16KB_2LEVEL if 32BIT
273         default 16KB_3LEVEL if 64BIT
274         help
275           Allows choosing the page table layout, which is a combination
276           of page size and page table levels. The size of virtual memory
277           address space are determined by the page table layout.
278
279 config 4KB_3LEVEL
280         bool "4KB with 3 levels"
281         select PAGE_SIZE_4KB
282         select PGTABLE_3LEVEL
283         help
284           This option selects 4KB page size with 3 level page tables, which
285           support a maximum of 39 bits of application virtual memory.
286
287 config 4KB_4LEVEL
288         bool "4KB with 4 levels"
289         select PAGE_SIZE_4KB
290         select PGTABLE_4LEVEL
291         help
292           This option selects 4KB page size with 4 level page tables, which
293           support a maximum of 48 bits of application virtual memory.
294
295 config 16KB_2LEVEL
296         bool "16KB with 2 levels"
297         select PAGE_SIZE_16KB
298         select PGTABLE_2LEVEL
299         help
300           This option selects 16KB page size with 2 level page tables, which
301           support a maximum of 36 bits of application virtual memory.
302
303 config 16KB_3LEVEL
304         bool "16KB with 3 levels"
305         select PAGE_SIZE_16KB
306         select PGTABLE_3LEVEL
307         help
308           This option selects 16KB page size with 3 level page tables, which
309           support a maximum of 47 bits of application virtual memory.
310
311 config 64KB_2LEVEL
312         bool "64KB with 2 levels"
313         select PAGE_SIZE_64KB
314         select PGTABLE_2LEVEL
315         help
316           This option selects 64KB page size with 2 level page tables, which
317           support a maximum of 42 bits of application virtual memory.
318
319 config 64KB_3LEVEL
320         bool "64KB with 3 levels"
321         select PAGE_SIZE_64KB
322         select PGTABLE_3LEVEL
323         help
324           This option selects 64KB page size with 3 level page tables, which
325           support a maximum of 55 bits of application virtual memory.
326
327 endchoice
328
329 config CMDLINE
330         string "Built-in kernel command line"
331         help
332           For most platforms, the arguments for the kernel's command line
333           are provided at run-time, during boot. However, there are cases
334           where either no arguments are being provided or the provided
335           arguments are insufficient or even invalid.
336
337           When that occurs, it is possible to define a built-in command
338           line here and choose how the kernel should use it later on.
339
340 choice
341         prompt "Kernel command line type"
342         default CMDLINE_BOOTLOADER
343         help
344           Choose how the kernel will handle the provided built-in command
345           line.
346
347 config CMDLINE_BOOTLOADER
348         bool "Use bootloader kernel arguments if available"
349         help
350           Prefer the command-line passed by the boot loader if available.
351           Use the built-in command line as fallback in case we get nothing
352           during boot. This is the default behaviour.
353
354 config CMDLINE_EXTEND
355         bool "Use built-in to extend bootloader kernel arguments"
356         help
357           The command-line arguments provided during boot will be
358           appended to the built-in command line. This is useful in
359           cases where the provided arguments are insufficient and
360           you don't want to or cannot modify them.
361
362 config CMDLINE_FORCE
363         bool "Always use the built-in kernel command string"
364         help
365           Always use the built-in command line, even if we get one during
366           boot. This is useful in case you need to override the provided
367           command line on systems where you don't have or want control
368           over it.
369
370 endchoice
371
372 config DMI
373         bool "Enable DMI scanning"
374         select DMI_SCAN_MACHINE_NON_EFI_FALLBACK
375         default y
376         help
377           This enables SMBIOS/DMI feature for systems, and scanning of
378           DMI to identify machine quirks.
379
380 config EFI
381         bool "EFI runtime service support"
382         select UCS2_STRING
383         select EFI_RUNTIME_WRAPPERS
384         help
385           This enables the kernel to use EFI runtime services that are
386           available (such as the EFI variable services).
387
388 config EFI_STUB
389         bool "EFI boot stub support"
390         default y
391         depends on EFI
392         select EFI_GENERIC_STUB
393         help
394           This kernel feature allows the kernel to be loaded directly by
395           EFI firmware without the use of a bootloader.
396
397 config SCHED_SMT
398         bool "SMT scheduler support"
399         default y
400         help
401           Improves scheduler's performance when there are multiple
402           threads in one physical core.
403
404 config SMP
405         bool "Multi-Processing support"
406         help
407           This enables support for systems with more than one CPU. If you have
408           a system with only one CPU, say N. If you have a system with more
409           than one CPU, say Y.
410
411           If you say N here, the kernel will run on uni- and multiprocessor
412           machines, but will use only one CPU of a multiprocessor machine. If
413           you say Y here, the kernel will run on many, but not all,
414           uniprocessor machines. On a uniprocessor machine, the kernel
415           will run faster if you say N here.
416
417           See also the SMP-HOWTO available at <http://www.tldp.org/docs.html#howto>.
418
419           If you don't know what to do here, say N.
420
421 config HOTPLUG_CPU
422         bool "Support for hot-pluggable CPUs"
423         depends on SMP
424         select GENERIC_IRQ_MIGRATION
425         help
426           Say Y here to allow turning CPUs off and on. CPUs can be
427           controlled through /sys/devices/system/cpu.
428           (Note: power management support will enable this option
429             automatically on SMP systems. )
430           Say N if you want to disable CPU hotplug.
431
432 config NR_CPUS
433         int "Maximum number of CPUs (2-256)"
434         range 2 256
435         depends on SMP
436         default "64"
437         help
438           This allows you to specify the maximum number of CPUs which this
439           kernel will support.
440
441 config NUMA
442         bool "NUMA Support"
443         select SMP
444         select ACPI_NUMA if ACPI
445         help
446           Say Y to compile the kernel with NUMA (Non-Uniform Memory Access)
447           support.  This option improves performance on systems with more
448           than one NUMA node; on single node systems it is generally better
449           to leave it disabled.
450
451 config NODES_SHIFT
452         int
453         default "6"
454         depends on NUMA
455
456 config ARCH_FORCE_MAX_ORDER
457         int "Maximum zone order"
458         default "13" if PAGE_SIZE_64KB
459         default "11" if PAGE_SIZE_16KB
460         default "10"
461         help
462           The kernel memory allocator divides physically contiguous memory
463           blocks into "zones", where each zone is a power of two number of
464           pages.  This option selects the largest power of two that the kernel
465           keeps in the memory allocator.  If you need to allocate very large
466           blocks of physically contiguous memory, then you may need to
467           increase this value.
468
469           The page size is not necessarily 4KB.  Keep this in mind
470           when choosing a value for this option.
471
472 config ARCH_IOREMAP
473         bool "Enable LoongArch DMW-based ioremap()"
474         help
475           We use generic TLB-based ioremap() by default since it has page
476           protection support. However, you can enable LoongArch DMW-based
477           ioremap() for better performance.
478
479 config ARCH_WRITECOMBINE
480         bool "Enable WriteCombine (WUC) for ioremap()"
481         help
482           LoongArch maintains cache coherency in hardware, but when paired
483           with LS7A chipsets the WUC attribute (Weak-ordered UnCached, which
484           is similar to WriteCombine) is out of the scope of cache coherency
485           machanism for PCIe devices (this is a PCIe protocol violation, which
486           may be fixed in newer chipsets).
487
488           This means WUC can only used for write-only memory regions now, so
489           this option is disabled by default, making WUC silently fallback to
490           SUC for ioremap(). You can enable this option if the kernel is ensured
491           to run on hardware without this bug.
492
493           You can override this setting via writecombine=on/off boot parameter.
494
495 config ARCH_STRICT_ALIGN
496         bool "Enable -mstrict-align to prevent unaligned accesses" if EXPERT
497         default y
498         help
499           Not all LoongArch cores support h/w unaligned access, we can use
500           -mstrict-align build parameter to prevent unaligned accesses.
501
502           CPUs with h/w unaligned access support:
503           Loongson-2K2000/2K3000/3A5000/3C5000/3D5000.
504
505           CPUs without h/w unaligned access support:
506           Loongson-2K500/2K1000.
507
508           This option is enabled by default to make the kernel be able to run
509           on all LoongArch systems. But you can disable it manually if you want
510           to run kernel only on systems with h/w unaligned access support in
511           order to optimise for performance.
512
513 config CPU_HAS_FPU
514         bool
515         default y
516
517 config CPU_HAS_LSX
518         bool "Support for the Loongson SIMD Extension"
519         depends on AS_HAS_LSX_EXTENSION
520         help
521           Loongson SIMD Extension (LSX) introduces 128 bit wide vector registers
522           and a set of SIMD instructions to operate on them. When this option
523           is enabled the kernel will support allocating & switching LSX
524           vector register contexts. If you know that your kernel will only be
525           running on CPUs which do not support LSX or that your userland will
526           not be making use of it then you may wish to say N here to reduce
527           the size & complexity of your kernel.
528
529           If unsure, say Y.
530
531 config CPU_HAS_LASX
532         bool "Support for the Loongson Advanced SIMD Extension"
533         depends on CPU_HAS_LSX
534         depends on AS_HAS_LASX_EXTENSION
535         help
536           Loongson Advanced SIMD Extension (LASX) introduces 256 bit wide vector
537           registers and a set of SIMD instructions to operate on them. When this
538           option is enabled the kernel will support allocating & switching LASX
539           vector register contexts. If you know that your kernel will only be
540           running on CPUs which do not support LASX or that your userland will
541           not be making use of it then you may wish to say N here to reduce
542           the size & complexity of your kernel.
543
544           If unsure, say Y.
545
546 config CPU_HAS_LBT
547         bool "Support for the Loongson Binary Translation Extension"
548         depends on AS_HAS_LBT_EXTENSION
549         help
550           Loongson Binary Translation (LBT) introduces 4 scratch registers (SCR0
551           to SCR3), x86/ARM eflags (eflags) and x87 fpu stack pointer (ftop).
552           Enabling this option allows the kernel to allocate and switch registers
553           specific to LBT.
554
555           If you want to use this feature, such as the Loongson Architecture
556           Translator (LAT), say Y.
557
558 config CPU_HAS_PREFETCH
559         bool
560         default y
561
562 config ARCH_SUPPORTS_KEXEC
563         def_bool y
564
565 config ARCH_SUPPORTS_CRASH_DUMP
566         def_bool y
567
568 config ARCH_SELECTS_CRASH_DUMP
569         def_bool y
570         depends on CRASH_DUMP
571         select RELOCATABLE
572
573 config RELOCATABLE
574         bool "Relocatable kernel"
575         help
576           This builds the kernel as a Position Independent Executable (PIE),
577           which retains all relocation metadata required, so as to relocate
578           the kernel binary at runtime to a different virtual address from
579           its link address.
580
581 config RANDOMIZE_BASE
582         bool "Randomize the address of the kernel (KASLR)"
583         depends on RELOCATABLE
584         help
585            Randomizes the physical and virtual address at which the
586            kernel image is loaded, as a security feature that
587            deters exploit attempts relying on knowledge of the location
588            of kernel internals.
589
590            The kernel will be offset by up to RANDOMIZE_BASE_MAX_OFFSET.
591
592            If unsure, say N.
593
594 config RANDOMIZE_BASE_MAX_OFFSET
595         hex "Maximum KASLR offset" if EXPERT
596         depends on RANDOMIZE_BASE
597         range 0x0 0x10000000
598         default "0x01000000"
599         help
600           When KASLR is active, this provides the maximum offset that will
601           be applied to the kernel image. It should be set according to the
602           amount of physical RAM available in the target system.
603
604           This is limited by the size of the lower address memory, 256MB.
605
606 config SECCOMP
607         bool "Enable seccomp to safely compute untrusted bytecode"
608         depends on PROC_FS
609         default y
610         help
611           This kernel feature is useful for number crunching applications
612           that may need to compute untrusted bytecode during their
613           execution. By using pipes or other transports made available to
614           the process as file descriptors supporting the read/write
615           syscalls, it's possible to isolate those applications in
616           their own address space using seccomp. Once seccomp is
617           enabled via /proc/<pid>/seccomp, it cannot be disabled
618           and the task is only allowed to execute a few safe syscalls
619           defined by each seccomp mode.
620
621           If unsure, say Y. Only embedded should say N here.
622
623 endmenu
624
625 config ARCH_SELECT_MEMORY_MODEL
626         def_bool y
627
628 config ARCH_FLATMEM_ENABLE
629         def_bool y
630         depends on !NUMA
631
632 config ARCH_SPARSEMEM_ENABLE
633         def_bool y
634         select SPARSEMEM_VMEMMAP_ENABLE
635         help
636           Say Y to support efficient handling of sparse physical memory,
637           for architectures which are either NUMA (Non-Uniform Memory Access)
638           or have huge holes in the physical address space for other reasons.
639           See <file:Documentation/mm/numa.rst> for more.
640
641 config ARCH_ENABLE_THP_MIGRATION
642         def_bool y
643         depends on TRANSPARENT_HUGEPAGE
644
645 config ARCH_MEMORY_PROBE
646         def_bool y
647         depends on MEMORY_HOTPLUG
648
649 config MMU
650         bool
651         default y
652
653 config ARCH_MMAP_RND_BITS_MIN
654         default 12
655
656 config ARCH_MMAP_RND_BITS_MAX
657         default 18
658
659 config ARCH_SUPPORTS_UPROBES
660         def_bool y
661
662 config KASAN_SHADOW_OFFSET
663         hex
664         default 0x0
665         depends on KASAN
666
667 menu "Power management options"
668
669 config ARCH_SUSPEND_POSSIBLE
670         def_bool y
671
672 config ARCH_HIBERNATION_POSSIBLE
673         def_bool y
674
675 source "kernel/power/Kconfig"
676 source "drivers/acpi/Kconfig"
677
678 endmenu