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_SYSTEM_POWER_STATES_SUPPORT if ACPI 9 select ARCH_BINFMT_ELF_STATE 10 select ARCH_ENABLE_MEMORY_HOTPLUG 11 select ARCH_ENABLE_MEMORY_HOTREMOVE 12 select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI 13 select ARCH_HAS_PHYS_TO_DMA 14 select ARCH_HAS_PTE_SPECIAL 15 select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST 16 select ARCH_INLINE_READ_LOCK if !PREEMPTION 17 select ARCH_INLINE_READ_LOCK_BH if !PREEMPTION 18 select ARCH_INLINE_READ_LOCK_IRQ if !PREEMPTION 19 select ARCH_INLINE_READ_LOCK_IRQSAVE if !PREEMPTION 20 select ARCH_INLINE_READ_UNLOCK if !PREEMPTION 21 select ARCH_INLINE_READ_UNLOCK_BH if !PREEMPTION 22 select ARCH_INLINE_READ_UNLOCK_IRQ if !PREEMPTION 23 select ARCH_INLINE_READ_UNLOCK_IRQRESTORE if !PREEMPTION 24 select ARCH_INLINE_WRITE_LOCK if !PREEMPTION 25 select ARCH_INLINE_WRITE_LOCK_BH if !PREEMPTION 26 select ARCH_INLINE_WRITE_LOCK_IRQ if !PREEMPTION 27 select ARCH_INLINE_WRITE_LOCK_IRQSAVE if !PREEMPTION 28 select ARCH_INLINE_WRITE_UNLOCK if !PREEMPTION 29 select ARCH_INLINE_WRITE_UNLOCK_BH if !PREEMPTION 30 select ARCH_INLINE_WRITE_UNLOCK_IRQ if !PREEMPTION 31 select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE if !PREEMPTION 32 select ARCH_INLINE_SPIN_TRYLOCK if !PREEMPTION 33 select ARCH_INLINE_SPIN_TRYLOCK_BH if !PREEMPTION 34 select ARCH_INLINE_SPIN_LOCK if !PREEMPTION 35 select ARCH_INLINE_SPIN_LOCK_BH if !PREEMPTION 36 select ARCH_INLINE_SPIN_LOCK_IRQ if !PREEMPTION 37 select ARCH_INLINE_SPIN_LOCK_IRQSAVE if !PREEMPTION 38 select ARCH_INLINE_SPIN_UNLOCK if !PREEMPTION 39 select ARCH_INLINE_SPIN_UNLOCK_BH if !PREEMPTION 40 select ARCH_INLINE_SPIN_UNLOCK_IRQ if !PREEMPTION 41 select ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE if !PREEMPTION 42 select ARCH_KEEP_MEMBLOCK 43 select ARCH_MIGHT_HAVE_PC_PARPORT 44 select ARCH_MIGHT_HAVE_PC_SERIO 45 select ARCH_SPARSEMEM_ENABLE 46 select ARCH_STACKWALK 47 select ARCH_SUPPORTS_ACPI 48 select ARCH_SUPPORTS_ATOMIC_RMW 49 select ARCH_SUPPORTS_HUGETLBFS 50 select ARCH_SUPPORTS_NUMA_BALANCING 51 select ARCH_USE_BUILTIN_BSWAP 52 select ARCH_USE_CMPXCHG_LOCKREF 53 select ARCH_USE_QUEUED_RWLOCKS 54 select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT 55 select ARCH_WANT_LD_ORPHAN_WARN 56 select ARCH_WANTS_NO_INSTR 57 select BUILDTIME_TABLE_SORT 58 select COMMON_CLK 59 select EFI 60 select GENERIC_CLOCKEVENTS 61 select GENERIC_CMOS_UPDATE 62 select GENERIC_CPU_AUTOPROBE 63 select GENERIC_ENTRY 64 select GENERIC_GETTIMEOFDAY 65 select GENERIC_IRQ_MULTI_HANDLER 66 select GENERIC_IRQ_PROBE 67 select GENERIC_IRQ_SHOW 68 select GENERIC_LIB_ASHLDI3 69 select GENERIC_LIB_ASHRDI3 70 select GENERIC_LIB_CMPDI2 71 select GENERIC_LIB_LSHRDI3 72 select GENERIC_LIB_UCMPDI2 73 select GENERIC_PCI_IOMAP 74 select GENERIC_SCHED_CLOCK 75 select GENERIC_SMP_IDLE_THREAD 76 select GENERIC_TIME_VSYSCALL 77 select GPIOLIB 78 select HAVE_ARCH_AUDITSYSCALL 79 select HAVE_ARCH_MMAP_RND_BITS if MMU 80 select HAVE_ARCH_SECCOMP_FILTER 81 select HAVE_ARCH_TRACEHOOK 82 select HAVE_ARCH_TRANSPARENT_HUGEPAGE 83 select HAVE_ASM_MODVERSIONS 84 select HAVE_CONTEXT_TRACKING_USER 85 select HAVE_DEBUG_STACKOVERFLOW 86 select HAVE_DMA_CONTIGUOUS 87 select HAVE_EXIT_THREAD 88 select HAVE_FAST_GUP 89 select HAVE_GENERIC_VDSO 90 select HAVE_IOREMAP_PROT 91 select HAVE_IRQ_EXIT_ON_IRQ_STACK 92 select HAVE_IRQ_TIME_ACCOUNTING 93 select HAVE_MOD_ARCH_SPECIFIC 94 select HAVE_NMI 95 select HAVE_PCI 96 select HAVE_PERF_EVENTS 97 select HAVE_REGS_AND_STACK_ACCESS_API 98 select HAVE_RSEQ 99 select HAVE_SETUP_PER_CPU_AREA if NUMA 100 select HAVE_SYSCALL_TRACEPOINTS 101 select HAVE_TIF_NOHZ 102 select HAVE_VIRT_CPU_ACCOUNTING_GEN if !SMP 103 select IRQ_FORCED_THREADING 104 select IRQ_LOONGARCH_CPU 105 select MMU_GATHER_MERGE_VMAS if MMU 106 select MODULES_USE_ELF_RELA if MODULES 107 select NEED_PER_CPU_EMBED_FIRST_CHUNK 108 select NEED_PER_CPU_PAGE_FIRST_CHUNK 109 select PCI 110 select PCI_DOMAINS_GENERIC 111 select PCI_ECAM if ACPI 112 select PCI_LOONGSON 113 select PCI_MSI_ARCH_FALLBACKS 114 select PCI_QUIRKS 115 select PERF_USE_VMALLOC 116 select RTC_LIB 117 select SMP 118 select SPARSE_IRQ 119 select SYSCTL_EXCEPTION_TRACE 120 select SWIOTLB 121 select TRACE_IRQFLAGS_SUPPORT 122 select USE_PERCPU_NUMA_NODE_ID 123 select USER_STACKTRACE_SUPPORT 124 select ZONE_DMA32 125 126config 32BIT 127 bool 128 129config 64BIT 130 def_bool y 131 132config CPU_HAS_FPU 133 bool 134 default y 135 136config CPU_HAS_PREFETCH 137 bool 138 default y 139 140config GENERIC_CALIBRATE_DELAY 141 def_bool y 142 143config GENERIC_CSUM 144 def_bool y 145 146config GENERIC_HWEIGHT 147 def_bool y 148 149config L1_CACHE_SHIFT 150 int 151 default "6" 152 153config LOCKDEP_SUPPORT 154 bool 155 default y 156 157config STACKTRACE_SUPPORT 158 bool 159 default y 160 161# MACH_LOONGSON32 and MACH_LOONGSON64 are deliberately carried over from the 162# MIPS Loongson code, to preserve Loongson-specific code paths in drivers that 163# are shared between architectures, and specifically expecting the symbols. 164config MACH_LOONGSON32 165 def_bool 32BIT 166 167config MACH_LOONGSON64 168 def_bool 64BIT 169 170config PAGE_SIZE_4KB 171 bool 172 173config PAGE_SIZE_16KB 174 bool 175 176config PAGE_SIZE_64KB 177 bool 178 179config PGTABLE_2LEVEL 180 bool 181 182config PGTABLE_3LEVEL 183 bool 184 185config PGTABLE_4LEVEL 186 bool 187 188config PGTABLE_LEVELS 189 int 190 default 2 if PGTABLE_2LEVEL 191 default 3 if PGTABLE_3LEVEL 192 default 4 if PGTABLE_4LEVEL 193 194config SCHED_OMIT_FRAME_POINTER 195 bool 196 default y 197 198config AS_HAS_EXPLICIT_RELOCS 199 def_bool $(as-instr,x:pcalau12i \$t0$(comma)%pc_hi20(x)) 200 201menu "Kernel type and options" 202 203source "kernel/Kconfig.hz" 204 205choice 206 prompt "Page Table Layout" 207 default 16KB_2LEVEL if 32BIT 208 default 16KB_3LEVEL if 64BIT 209 help 210 Allows choosing the page table layout, which is a combination 211 of page size and page table levels. The size of virtual memory 212 address space are determined by the page table layout. 213 214config 4KB_3LEVEL 215 bool "4KB with 3 levels" 216 select PAGE_SIZE_4KB 217 select PGTABLE_3LEVEL 218 help 219 This option selects 4KB page size with 3 level page tables, which 220 support a maximum of 39 bits of application virtual memory. 221 222config 4KB_4LEVEL 223 bool "4KB with 4 levels" 224 select PAGE_SIZE_4KB 225 select PGTABLE_4LEVEL 226 help 227 This option selects 4KB page size with 4 level page tables, which 228 support a maximum of 48 bits of application virtual memory. 229 230config 16KB_2LEVEL 231 bool "16KB with 2 levels" 232 select PAGE_SIZE_16KB 233 select PGTABLE_2LEVEL 234 help 235 This option selects 16KB page size with 2 level page tables, which 236 support a maximum of 36 bits of application virtual memory. 237 238config 16KB_3LEVEL 239 bool "16KB with 3 levels" 240 select PAGE_SIZE_16KB 241 select PGTABLE_3LEVEL 242 help 243 This option selects 16KB page size with 3 level page tables, which 244 support a maximum of 47 bits of application virtual memory. 245 246config 64KB_2LEVEL 247 bool "64KB with 2 levels" 248 select PAGE_SIZE_64KB 249 select PGTABLE_2LEVEL 250 help 251 This option selects 64KB page size with 2 level page tables, which 252 support a maximum of 42 bits of application virtual memory. 253 254config 64KB_3LEVEL 255 bool "64KB with 3 levels" 256 select PAGE_SIZE_64KB 257 select PGTABLE_3LEVEL 258 help 259 This option selects 64KB page size with 3 level page tables, which 260 support a maximum of 55 bits of application virtual memory. 261 262endchoice 263 264config CMDLINE 265 string "Built-in kernel command line" 266 help 267 For most platforms, the arguments for the kernel's command line 268 are provided at run-time, during boot. However, there are cases 269 where either no arguments are being provided or the provided 270 arguments are insufficient or even invalid. 271 272 When that occurs, it is possible to define a built-in command 273 line here and choose how the kernel should use it later on. 274 275choice 276 prompt "Kernel command line type" 277 default CMDLINE_BOOTLOADER 278 help 279 Choose how the kernel will handle the provided built-in command 280 line. 281 282config CMDLINE_BOOTLOADER 283 bool "Use bootloader kernel arguments if available" 284 help 285 Prefer the command-line passed by the boot loader if available. 286 Use the built-in command line as fallback in case we get nothing 287 during boot. This is the default behaviour. 288 289config CMDLINE_EXTEND 290 bool "Use built-in to extend bootloader kernel arguments" 291 help 292 The command-line arguments provided during boot will be 293 appended to the built-in command line. This is useful in 294 cases where the provided arguments are insufficient and 295 you don't want to or cannot modify them. 296 297config CMDLINE_FORCE 298 bool "Always use the built-in kernel command string" 299 help 300 Always use the built-in command line, even if we get one during 301 boot. This is useful in case you need to override the provided 302 command line on systems where you don't have or want control 303 over it. 304 305endchoice 306 307config DMI 308 bool "Enable DMI scanning" 309 select DMI_SCAN_MACHINE_NON_EFI_FALLBACK 310 default y 311 help 312 This enables SMBIOS/DMI feature for systems, and scanning of 313 DMI to identify machine quirks. 314 315config EFI 316 bool "EFI runtime service support" 317 select UCS2_STRING 318 select EFI_RUNTIME_WRAPPERS 319 help 320 This enables the kernel to use EFI runtime services that are 321 available (such as the EFI variable services). 322 323config EFI_STUB 324 bool "EFI boot stub support" 325 default y 326 depends on EFI 327 select EFI_GENERIC_STUB 328 help 329 This kernel feature allows the kernel to be loaded directly by 330 EFI firmware without the use of a bootloader. 331 332config SMP 333 bool "Multi-Processing support" 334 help 335 This enables support for systems with more than one CPU. If you have 336 a system with only one CPU, say N. If you have a system with more 337 than one CPU, say Y. 338 339 If you say N here, the kernel will run on uni- and multiprocessor 340 machines, but will use only one CPU of a multiprocessor machine. If 341 you say Y here, the kernel will run on many, but not all, 342 uniprocessor machines. On a uniprocessor machine, the kernel 343 will run faster if you say N here. 344 345 See also the SMP-HOWTO available at <http://www.tldp.org/docs.html#howto>. 346 347 If you don't know what to do here, say N. 348 349config HOTPLUG_CPU 350 bool "Support for hot-pluggable CPUs" 351 depends on SMP 352 select GENERIC_IRQ_MIGRATION 353 help 354 Say Y here to allow turning CPUs off and on. CPUs can be 355 controlled through /sys/devices/system/cpu. 356 (Note: power management support will enable this option 357 automatically on SMP systems. ) 358 Say N if you want to disable CPU hotplug. 359 360config NR_CPUS 361 int "Maximum number of CPUs (2-256)" 362 range 2 256 363 depends on SMP 364 default "64" 365 help 366 This allows you to specify the maximum number of CPUs which this 367 kernel will support. 368 369config NUMA 370 bool "NUMA Support" 371 select SMP 372 select ACPI_NUMA if ACPI 373 help 374 Say Y to compile the kernel with NUMA (Non-Uniform Memory Access) 375 support. This option improves performance on systems with more 376 than one NUMA node; on single node systems it is generally better 377 to leave it disabled. 378 379config NODES_SHIFT 380 int 381 default "6" 382 depends on NUMA 383 384config FORCE_MAX_ZONEORDER 385 int "Maximum zone order" 386 range 14 64 if PAGE_SIZE_64KB 387 default "14" if PAGE_SIZE_64KB 388 range 12 64 if PAGE_SIZE_16KB 389 default "12" if PAGE_SIZE_16KB 390 range 11 64 391 default "11" 392 help 393 The kernel memory allocator divides physically contiguous memory 394 blocks into "zones", where each zone is a power of two number of 395 pages. This option selects the largest power of two that the kernel 396 keeps in the memory allocator. If you need to allocate very large 397 blocks of physically contiguous memory, then you may need to 398 increase this value. 399 400 This config option is actually maximum order plus one. For example, 401 a value of 11 means that the largest free memory block is 2^10 pages. 402 403 The page size is not necessarily 4KB. Keep this in mind 404 when choosing a value for this option. 405 406config SECCOMP 407 bool "Enable seccomp to safely compute untrusted bytecode" 408 depends on PROC_FS 409 default y 410 help 411 This kernel feature is useful for number crunching applications 412 that may need to compute untrusted bytecode during their 413 execution. By using pipes or other transports made available to 414 the process as file descriptors supporting the read/write 415 syscalls, it's possible to isolate those applications in 416 their own address space using seccomp. Once seccomp is 417 enabled via /proc/<pid>/seccomp, it cannot be disabled 418 and the task is only allowed to execute a few safe syscalls 419 defined by each seccomp mode. 420 421 If unsure, say Y. Only embedded should say N here. 422 423endmenu 424 425config ARCH_SELECT_MEMORY_MODEL 426 def_bool y 427 428config ARCH_FLATMEM_ENABLE 429 def_bool y 430 depends on !NUMA 431 432config ARCH_SPARSEMEM_ENABLE 433 def_bool y 434 help 435 Say Y to support efficient handling of sparse physical memory, 436 for architectures which are either NUMA (Non-Uniform Memory Access) 437 or have huge holes in the physical address space for other reasons. 438 See <file:Documentation/mm/numa.rst> for more. 439 440config ARCH_ENABLE_THP_MIGRATION 441 def_bool y 442 depends on TRANSPARENT_HUGEPAGE 443 444config ARCH_MEMORY_PROBE 445 def_bool y 446 depends on MEMORY_HOTPLUG 447 448config MMU 449 bool 450 default y 451 452config ARCH_MMAP_RND_BITS_MIN 453 default 12 454 455config ARCH_MMAP_RND_BITS_MAX 456 default 18 457 458menu "Power management options" 459 460source "drivers/acpi/Kconfig" 461 462endmenu 463 464source "drivers/firmware/Kconfig" 465