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