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_ENABLE_THP_MIGRATION if TRANSPARENT_HUGEPAGE 15 select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI 16 select ARCH_HAS_CPU_FINALIZE_INIT 17 select ARCH_HAS_FORTIFY_SOURCE 18 select ARCH_HAS_KCOV 19 select ARCH_HAS_NMI_SAFE_THIS_CPU_OPS 20 select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE 21 select ARCH_HAS_PTE_SPECIAL 22 select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST 23 select ARCH_INLINE_READ_LOCK if !PREEMPTION 24 select ARCH_INLINE_READ_LOCK_BH if !PREEMPTION 25 select ARCH_INLINE_READ_LOCK_IRQ if !PREEMPTION 26 select ARCH_INLINE_READ_LOCK_IRQSAVE if !PREEMPTION 27 select ARCH_INLINE_READ_UNLOCK if !PREEMPTION 28 select ARCH_INLINE_READ_UNLOCK_BH if !PREEMPTION 29 select ARCH_INLINE_READ_UNLOCK_IRQ if !PREEMPTION 30 select ARCH_INLINE_READ_UNLOCK_IRQRESTORE if !PREEMPTION 31 select ARCH_INLINE_WRITE_LOCK if !PREEMPTION 32 select ARCH_INLINE_WRITE_LOCK_BH if !PREEMPTION 33 select ARCH_INLINE_WRITE_LOCK_IRQ if !PREEMPTION 34 select ARCH_INLINE_WRITE_LOCK_IRQSAVE if !PREEMPTION 35 select ARCH_INLINE_WRITE_UNLOCK if !PREEMPTION 36 select ARCH_INLINE_WRITE_UNLOCK_BH if !PREEMPTION 37 select ARCH_INLINE_WRITE_UNLOCK_IRQ if !PREEMPTION 38 select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE if !PREEMPTION 39 select ARCH_INLINE_SPIN_TRYLOCK if !PREEMPTION 40 select ARCH_INLINE_SPIN_TRYLOCK_BH if !PREEMPTION 41 select ARCH_INLINE_SPIN_LOCK if !PREEMPTION 42 select ARCH_INLINE_SPIN_LOCK_BH if !PREEMPTION 43 select ARCH_INLINE_SPIN_LOCK_IRQ if !PREEMPTION 44 select ARCH_INLINE_SPIN_LOCK_IRQSAVE if !PREEMPTION 45 select ARCH_INLINE_SPIN_UNLOCK if !PREEMPTION 46 select ARCH_INLINE_SPIN_UNLOCK_BH if !PREEMPTION 47 select ARCH_INLINE_SPIN_UNLOCK_IRQ if !PREEMPTION 48 select ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE if !PREEMPTION 49 select ARCH_KEEP_MEMBLOCK 50 select ARCH_MIGHT_HAVE_PC_PARPORT 51 select ARCH_MIGHT_HAVE_PC_SERIO 52 select ARCH_SPARSEMEM_ENABLE 53 select ARCH_STACKWALK 54 select ARCH_SUPPORTS_ACPI 55 select ARCH_SUPPORTS_ATOMIC_RMW 56 select ARCH_SUPPORTS_HUGETLBFS 57 select ARCH_SUPPORTS_LTO_CLANG 58 select ARCH_SUPPORTS_LTO_CLANG_THIN 59 select ARCH_SUPPORTS_NUMA_BALANCING 60 select ARCH_USE_BUILTIN_BSWAP 61 select ARCH_USE_CMPXCHG_LOCKREF 62 select ARCH_USE_QUEUED_RWLOCKS 63 select ARCH_USE_QUEUED_SPINLOCKS 64 select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT 65 select ARCH_WANT_LD_ORPHAN_WARN 66 select ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP 67 select ARCH_WANTS_NO_INSTR 68 select BUILDTIME_TABLE_SORT 69 select COMMON_CLK 70 select CPU_PM 71 select EFI 72 select GENERIC_CLOCKEVENTS 73 select GENERIC_CMOS_UPDATE 74 select GENERIC_CPU_AUTOPROBE 75 select GENERIC_ENTRY 76 select GENERIC_GETTIMEOFDAY 77 select GENERIC_IOREMAP if !ARCH_IOREMAP 78 select GENERIC_IRQ_MULTI_HANDLER 79 select GENERIC_IRQ_PROBE 80 select GENERIC_IRQ_SHOW 81 select GENERIC_LIB_ASHLDI3 82 select GENERIC_LIB_ASHRDI3 83 select GENERIC_LIB_CMPDI2 84 select GENERIC_LIB_LSHRDI3 85 select GENERIC_LIB_UCMPDI2 86 select GENERIC_LIB_DEVMEM_IS_ALLOWED 87 select GENERIC_PCI_IOMAP 88 select GENERIC_SCHED_CLOCK 89 select GENERIC_SMP_IDLE_THREAD 90 select GENERIC_TIME_VSYSCALL 91 select GENERIC_VDSO_TIME_NS 92 select GPIOLIB 93 select HAS_IOPORT 94 select HAVE_ARCH_AUDITSYSCALL 95 select HAVE_ARCH_JUMP_LABEL 96 select HAVE_ARCH_JUMP_LABEL_RELATIVE 97 select HAVE_ARCH_KASAN 98 select HAVE_ARCH_KFENCE 99 select HAVE_ARCH_KGDB if PERF_EVENTS 100 select HAVE_ARCH_MMAP_RND_BITS if MMU 101 select HAVE_ARCH_SECCOMP 102 select HAVE_ARCH_SECCOMP_FILTER 103 select HAVE_ARCH_TRACEHOOK 104 select HAVE_ARCH_TRANSPARENT_HUGEPAGE 105 select HAVE_ASM_MODVERSIONS 106 select HAVE_CONTEXT_TRACKING_USER 107 select HAVE_C_RECORDMCOUNT 108 select HAVE_DEBUG_KMEMLEAK 109 select HAVE_DEBUG_STACKOVERFLOW 110 select HAVE_DMA_CONTIGUOUS 111 select HAVE_DYNAMIC_FTRACE 112 select HAVE_DYNAMIC_FTRACE_WITH_ARGS 113 select HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS 114 select HAVE_DYNAMIC_FTRACE_WITH_REGS 115 select HAVE_EBPF_JIT 116 select HAVE_EFFICIENT_UNALIGNED_ACCESS if !ARCH_STRICT_ALIGN 117 select HAVE_EXIT_THREAD 118 select HAVE_FAST_GUP 119 select HAVE_FTRACE_MCOUNT_RECORD 120 select HAVE_FUNCTION_ARG_ACCESS_API 121 select HAVE_FUNCTION_ERROR_INJECTION 122 select HAVE_FUNCTION_GRAPH_RETVAL if HAVE_FUNCTION_GRAPH_TRACER 123 select HAVE_FUNCTION_GRAPH_TRACER 124 select HAVE_FUNCTION_TRACER 125 select HAVE_GCC_PLUGINS 126 select HAVE_GENERIC_VDSO 127 select HAVE_HW_BREAKPOINT if PERF_EVENTS 128 select HAVE_IOREMAP_PROT 129 select HAVE_IRQ_EXIT_ON_IRQ_STACK 130 select HAVE_IRQ_TIME_ACCOUNTING 131 select HAVE_KPROBES 132 select HAVE_KPROBES_ON_FTRACE 133 select HAVE_KRETPROBES 134 select HAVE_MOD_ARCH_SPECIFIC 135 select HAVE_NMI 136 select HAVE_PCI 137 select HAVE_PERF_EVENTS 138 select HAVE_PERF_REGS 139 select HAVE_PERF_USER_STACK_DUMP 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 268menu "Kernel type and options" 269 270source "kernel/Kconfig.hz" 271 272choice 273 prompt "Page Table Layout" 274 default 16KB_2LEVEL if 32BIT 275 default 16KB_3LEVEL if 64BIT 276 help 277 Allows choosing the page table layout, which is a combination 278 of page size and page table levels. The size of virtual memory 279 address space are determined by the page table layout. 280 281config 4KB_3LEVEL 282 bool "4KB with 3 levels" 283 select PAGE_SIZE_4KB 284 select PGTABLE_3LEVEL 285 help 286 This option selects 4KB page size with 3 level page tables, which 287 support a maximum of 39 bits of application virtual memory. 288 289config 4KB_4LEVEL 290 bool "4KB with 4 levels" 291 select PAGE_SIZE_4KB 292 select PGTABLE_4LEVEL 293 help 294 This option selects 4KB page size with 4 level page tables, which 295 support a maximum of 48 bits of application virtual memory. 296 297config 16KB_2LEVEL 298 bool "16KB with 2 levels" 299 select PAGE_SIZE_16KB 300 select PGTABLE_2LEVEL 301 help 302 This option selects 16KB page size with 2 level page tables, which 303 support a maximum of 36 bits of application virtual memory. 304 305config 16KB_3LEVEL 306 bool "16KB with 3 levels" 307 select PAGE_SIZE_16KB 308 select PGTABLE_3LEVEL 309 help 310 This option selects 16KB page size with 3 level page tables, which 311 support a maximum of 47 bits of application virtual memory. 312 313config 64KB_2LEVEL 314 bool "64KB with 2 levels" 315 select PAGE_SIZE_64KB 316 select PGTABLE_2LEVEL 317 help 318 This option selects 64KB page size with 2 level page tables, which 319 support a maximum of 42 bits of application virtual memory. 320 321config 64KB_3LEVEL 322 bool "64KB with 3 levels" 323 select PAGE_SIZE_64KB 324 select PGTABLE_3LEVEL 325 help 326 This option selects 64KB page size with 3 level page tables, which 327 support a maximum of 55 bits of application virtual memory. 328 329endchoice 330 331config CMDLINE 332 string "Built-in kernel command line" 333 help 334 For most platforms, the arguments for the kernel's command line 335 are provided at run-time, during boot. However, there are cases 336 where either no arguments are being provided or the provided 337 arguments are insufficient or even invalid. 338 339 When that occurs, it is possible to define a built-in command 340 line here and choose how the kernel should use it later on. 341 342choice 343 prompt "Kernel command line type" 344 default CMDLINE_BOOTLOADER 345 help 346 Choose how the kernel will handle the provided built-in command 347 line. 348 349config CMDLINE_BOOTLOADER 350 bool "Use bootloader kernel arguments if available" 351 help 352 Prefer the command-line passed by the boot loader if available. 353 Use the built-in command line as fallback in case we get nothing 354 during boot. This is the default behaviour. 355 356config CMDLINE_EXTEND 357 bool "Use built-in to extend bootloader kernel arguments" 358 help 359 The command-line arguments provided during boot will be 360 appended to the built-in command line. This is useful in 361 cases where the provided arguments are insufficient and 362 you don't want to or cannot modify them. 363 364config CMDLINE_FORCE 365 bool "Always use the built-in kernel command string" 366 help 367 Always use the built-in command line, even if we get one during 368 boot. This is useful in case you need to override the provided 369 command line on systems where you don't have or want control 370 over it. 371 372endchoice 373 374config DMI 375 bool "Enable DMI scanning" 376 select DMI_SCAN_MACHINE_NON_EFI_FALLBACK 377 default y 378 help 379 This enables SMBIOS/DMI feature for systems, and scanning of 380 DMI to identify machine quirks. 381 382config EFI 383 bool "EFI runtime service support" 384 select UCS2_STRING 385 select EFI_RUNTIME_WRAPPERS 386 help 387 This enables the kernel to use EFI runtime services that are 388 available (such as the EFI variable services). 389 390config EFI_STUB 391 bool "EFI boot stub support" 392 default y 393 depends on EFI 394 select EFI_GENERIC_STUB 395 help 396 This kernel feature allows the kernel to be loaded directly by 397 EFI firmware without the use of a bootloader. 398 399config SCHED_SMT 400 bool "SMT scheduler support" 401 default y 402 help 403 Improves scheduler's performance when there are multiple 404 threads in one physical core. 405 406config SMP 407 bool "Multi-Processing support" 408 help 409 This enables support for systems with more than one CPU. If you have 410 a system with only one CPU, say N. If you have a system with more 411 than one CPU, say Y. 412 413 If you say N here, the kernel will run on uni- and multiprocessor 414 machines, but will use only one CPU of a multiprocessor machine. If 415 you say Y here, the kernel will run on many, but not all, 416 uniprocessor machines. On a uniprocessor machine, the kernel 417 will run faster if you say N here. 418 419 See also the SMP-HOWTO available at <http://www.tldp.org/docs.html#howto>. 420 421 If you don't know what to do here, say N. 422 423config HOTPLUG_CPU 424 bool "Support for hot-pluggable CPUs" 425 depends on SMP 426 select GENERIC_IRQ_MIGRATION 427 help 428 Say Y here to allow turning CPUs off and on. CPUs can be 429 controlled through /sys/devices/system/cpu. 430 (Note: power management support will enable this option 431 automatically on SMP systems. ) 432 Say N if you want to disable CPU hotplug. 433 434config NR_CPUS 435 int "Maximum number of CPUs (2-256)" 436 range 2 256 437 depends on SMP 438 default "64" 439 help 440 This allows you to specify the maximum number of CPUs which this 441 kernel will support. 442 443config NUMA 444 bool "NUMA Support" 445 select SMP 446 select ACPI_NUMA if ACPI 447 help 448 Say Y to compile the kernel with NUMA (Non-Uniform Memory Access) 449 support. This option improves performance on systems with more 450 than one NUMA node; on single node systems it is generally better 451 to leave it disabled. 452 453config NODES_SHIFT 454 int 455 default "6" 456 depends on NUMA 457 458config ARCH_FORCE_MAX_ORDER 459 int "Maximum zone order" 460 default "13" if PAGE_SIZE_64KB 461 default "11" if PAGE_SIZE_16KB 462 default "10" 463 help 464 The kernel memory allocator divides physically contiguous memory 465 blocks into "zones", where each zone is a power of two number of 466 pages. This option selects the largest power of two that the kernel 467 keeps in the memory allocator. If you need to allocate very large 468 blocks of physically contiguous memory, then you may need to 469 increase this value. 470 471 The page size is not necessarily 4KB. Keep this in mind 472 when choosing a value for this option. 473 474config ARCH_IOREMAP 475 bool "Enable LoongArch DMW-based ioremap()" 476 help 477 We use generic TLB-based ioremap() by default since it has page 478 protection support. However, you can enable LoongArch DMW-based 479 ioremap() for better performance. 480 481config ARCH_WRITECOMBINE 482 bool "Enable WriteCombine (WUC) for ioremap()" 483 help 484 LoongArch maintains cache coherency in hardware, but when paired 485 with LS7A chipsets the WUC attribute (Weak-ordered UnCached, which 486 is similar to WriteCombine) is out of the scope of cache coherency 487 machanism for PCIe devices (this is a PCIe protocol violation, which 488 may be fixed in newer chipsets). 489 490 This means WUC can only used for write-only memory regions now, so 491 this option is disabled by default, making WUC silently fallback to 492 SUC for ioremap(). You can enable this option if the kernel is ensured 493 to run on hardware without this bug. 494 495 You can override this setting via writecombine=on/off boot parameter. 496 497config ARCH_STRICT_ALIGN 498 bool "Enable -mstrict-align to prevent unaligned accesses" if EXPERT 499 default y 500 help 501 Not all LoongArch cores support h/w unaligned access, we can use 502 -mstrict-align build parameter to prevent unaligned accesses. 503 504 CPUs with h/w unaligned access support: 505 Loongson-2K2000/2K3000/3A5000/3C5000/3D5000. 506 507 CPUs without h/w unaligned access support: 508 Loongson-2K500/2K1000. 509 510 This option is enabled by default to make the kernel be able to run 511 on all LoongArch systems. But you can disable it manually if you want 512 to run kernel only on systems with h/w unaligned access support in 513 order to optimise for performance. 514 515config CPU_HAS_FPU 516 bool 517 default y 518 519config CPU_HAS_LSX 520 bool "Support for the Loongson SIMD Extension" 521 depends on AS_HAS_LSX_EXTENSION 522 help 523 Loongson SIMD Extension (LSX) introduces 128 bit wide vector registers 524 and a set of SIMD instructions to operate on them. When this option 525 is enabled the kernel will support allocating & switching LSX 526 vector register contexts. If you know that your kernel will only be 527 running on CPUs which do not support LSX or that your userland will 528 not be making use of it then you may wish to say N here to reduce 529 the size & complexity of your kernel. 530 531 If unsure, say Y. 532 533config CPU_HAS_LASX 534 bool "Support for the Loongson Advanced SIMD Extension" 535 depends on CPU_HAS_LSX 536 depends on AS_HAS_LASX_EXTENSION 537 help 538 Loongson Advanced SIMD Extension (LASX) introduces 256 bit wide vector 539 registers and a set of SIMD instructions to operate on them. When this 540 option is enabled the kernel will support allocating & switching LASX 541 vector register contexts. If you know that your kernel will only be 542 running on CPUs which do not support LASX or that your userland will 543 not be making use of it then you may wish to say N here to reduce 544 the size & complexity of your kernel. 545 546 If unsure, say Y. 547 548config CPU_HAS_LBT 549 bool "Support for the Loongson Binary Translation Extension" 550 depends on AS_HAS_LBT_EXTENSION 551 help 552 Loongson Binary Translation (LBT) introduces 4 scratch registers (SCR0 553 to SCR3), x86/ARM eflags (eflags) and x87 fpu stack pointer (ftop). 554 Enabling this option allows the kernel to allocate and switch registers 555 specific to LBT. 556 557 If you want to use this feature, such as the Loongson Architecture 558 Translator (LAT), say Y. 559 560config CPU_HAS_PREFETCH 561 bool 562 default y 563 564config ARCH_SUPPORTS_KEXEC 565 def_bool y 566 567config ARCH_SUPPORTS_CRASH_DUMP 568 def_bool y 569 570config ARCH_SELECTS_CRASH_DUMP 571 def_bool y 572 depends on CRASH_DUMP 573 select RELOCATABLE 574 575config RELOCATABLE 576 bool "Relocatable kernel" 577 help 578 This builds the kernel as a Position Independent Executable (PIE), 579 which retains all relocation metadata required, so as to relocate 580 the kernel binary at runtime to a different virtual address from 581 its link address. 582 583config RANDOMIZE_BASE 584 bool "Randomize the address of the kernel (KASLR)" 585 depends on RELOCATABLE 586 help 587 Randomizes the physical and virtual address at which the 588 kernel image is loaded, as a security feature that 589 deters exploit attempts relying on knowledge of the location 590 of kernel internals. 591 592 The kernel will be offset by up to RANDOMIZE_BASE_MAX_OFFSET. 593 594 If unsure, say N. 595 596config RANDOMIZE_BASE_MAX_OFFSET 597 hex "Maximum KASLR offset" if EXPERT 598 depends on RANDOMIZE_BASE 599 range 0x0 0x10000000 600 default "0x01000000" 601 help 602 When KASLR is active, this provides the maximum offset that will 603 be applied to the kernel image. It should be set according to the 604 amount of physical RAM available in the target system. 605 606 This is limited by the size of the lower address memory, 256MB. 607 608endmenu 609 610config ARCH_SELECT_MEMORY_MODEL 611 def_bool y 612 613config ARCH_FLATMEM_ENABLE 614 def_bool y 615 depends on !NUMA 616 617config ARCH_SPARSEMEM_ENABLE 618 def_bool y 619 select SPARSEMEM_VMEMMAP_ENABLE 620 help 621 Say Y to support efficient handling of sparse physical memory, 622 for architectures which are either NUMA (Non-Uniform Memory Access) 623 or have huge holes in the physical address space for other reasons. 624 See <file:Documentation/mm/numa.rst> for more. 625 626config ARCH_MEMORY_PROBE 627 def_bool y 628 depends on MEMORY_HOTPLUG 629 630config MMU 631 bool 632 default y 633 634config ARCH_MMAP_RND_BITS_MIN 635 default 12 636 637config ARCH_MMAP_RND_BITS_MAX 638 default 18 639 640config ARCH_SUPPORTS_UPROBES 641 def_bool y 642 643config KASAN_SHADOW_OFFSET 644 hex 645 default 0x0 646 depends on KASAN 647 648menu "Power management options" 649 650config ARCH_SUSPEND_POSSIBLE 651 def_bool y 652 653config ARCH_HIBERNATION_POSSIBLE 654 def_bool y 655 656source "kernel/power/Kconfig" 657source "drivers/acpi/Kconfig" 658 659endmenu 660