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