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