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_MIGHT_HAVE_PC_PARPORT 43 select ARCH_MIGHT_HAVE_PC_SERIO 44 select ARCH_SPARSEMEM_ENABLE 45 select ARCH_STACKWALK 46 select ARCH_SUPPORTS_ACPI 47 select ARCH_SUPPORTS_ATOMIC_RMW 48 select ARCH_SUPPORTS_HUGETLBFS 49 select ARCH_SUPPORTS_NUMA_BALANCING 50 select ARCH_USE_BUILTIN_BSWAP 51 select ARCH_USE_CMPXCHG_LOCKREF 52 select ARCH_USE_QUEUED_RWLOCKS 53 select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT 54 select ARCH_WANTS_NO_INSTR 55 select BUILDTIME_TABLE_SORT 56 select COMMON_CLK 57 select EFI 58 select GENERIC_CLOCKEVENTS 59 select GENERIC_CMOS_UPDATE 60 select GENERIC_CPU_AUTOPROBE 61 select GENERIC_ENTRY 62 select GENERIC_GETTIMEOFDAY 63 select GENERIC_IRQ_MULTI_HANDLER 64 select GENERIC_IRQ_PROBE 65 select GENERIC_IRQ_SHOW 66 select GENERIC_LIB_ASHLDI3 67 select GENERIC_LIB_ASHRDI3 68 select GENERIC_LIB_CMPDI2 69 select GENERIC_LIB_LSHRDI3 70 select GENERIC_LIB_UCMPDI2 71 select GENERIC_PCI_IOMAP 72 select GENERIC_SCHED_CLOCK 73 select GENERIC_SMP_IDLE_THREAD 74 select GENERIC_TIME_VSYSCALL 75 select GPIOLIB 76 select HAVE_ARCH_AUDITSYSCALL 77 select HAVE_ARCH_MMAP_RND_BITS if MMU 78 select HAVE_ARCH_SECCOMP_FILTER 79 select HAVE_ARCH_TRACEHOOK 80 select HAVE_ARCH_TRANSPARENT_HUGEPAGE 81 select HAVE_ASM_MODVERSIONS 82 select HAVE_CONTEXT_TRACKING_USER 83 select HAVE_DEBUG_STACKOVERFLOW 84 select HAVE_DMA_CONTIGUOUS 85 select HAVE_EXIT_THREAD 86 select HAVE_FAST_GUP 87 select HAVE_GENERIC_VDSO 88 select HAVE_IOREMAP_PROT 89 select HAVE_IRQ_EXIT_ON_IRQ_STACK 90 select HAVE_IRQ_TIME_ACCOUNTING 91 select HAVE_MOD_ARCH_SPECIFIC 92 select HAVE_NMI 93 select HAVE_PCI 94 select HAVE_PERF_EVENTS 95 select HAVE_REGS_AND_STACK_ACCESS_API 96 select HAVE_RSEQ 97 select HAVE_SETUP_PER_CPU_AREA if NUMA 98 select HAVE_SYSCALL_TRACEPOINTS 99 select HAVE_TIF_NOHZ 100 select HAVE_VIRT_CPU_ACCOUNTING_GEN if !SMP 101 select IRQ_FORCED_THREADING 102 select IRQ_LOONGARCH_CPU 103 select MMU_GATHER_MERGE_VMAS if MMU 104 select MODULES_USE_ELF_RELA if MODULES 105 select NEED_PER_CPU_EMBED_FIRST_CHUNK 106 select NEED_PER_CPU_PAGE_FIRST_CHUNK 107 select OF 108 select OF_EARLY_FLATTREE 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 delibrately 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 198menu "Kernel type and options" 199 200source "kernel/Kconfig.hz" 201 202choice 203 prompt "Page Table Layout" 204 default 16KB_2LEVEL if 32BIT 205 default 16KB_3LEVEL if 64BIT 206 help 207 Allows choosing the page table layout, which is a combination 208 of page size and page table levels. The size of virtual memory 209 address space are determined by the page table layout. 210 211config 4KB_3LEVEL 212 bool "4KB with 3 levels" 213 select PAGE_SIZE_4KB 214 select PGTABLE_3LEVEL 215 help 216 This option selects 4KB page size with 3 level page tables, which 217 support a maximum of 39 bits of application virtual memory. 218 219config 4KB_4LEVEL 220 bool "4KB with 4 levels" 221 select PAGE_SIZE_4KB 222 select PGTABLE_4LEVEL 223 help 224 This option selects 4KB page size with 4 level page tables, which 225 support a maximum of 48 bits of application virtual memory. 226 227config 16KB_2LEVEL 228 bool "16KB with 2 levels" 229 select PAGE_SIZE_16KB 230 select PGTABLE_2LEVEL 231 help 232 This option selects 16KB page size with 2 level page tables, which 233 support a maximum of 36 bits of application virtual memory. 234 235config 16KB_3LEVEL 236 bool "16KB with 3 levels" 237 select PAGE_SIZE_16KB 238 select PGTABLE_3LEVEL 239 help 240 This option selects 16KB page size with 3 level page tables, which 241 support a maximum of 47 bits of application virtual memory. 242 243config 64KB_2LEVEL 244 bool "64KB with 2 levels" 245 select PAGE_SIZE_64KB 246 select PGTABLE_2LEVEL 247 help 248 This option selects 64KB page size with 2 level page tables, which 249 support a maximum of 42 bits of application virtual memory. 250 251config 64KB_3LEVEL 252 bool "64KB with 3 levels" 253 select PAGE_SIZE_64KB 254 select PGTABLE_3LEVEL 255 help 256 This option selects 64KB page size with 3 level page tables, which 257 support a maximum of 55 bits of application virtual memory. 258 259endchoice 260 261config CMDLINE 262 string "Built-in kernel command line" 263 help 264 For most platforms, the arguments for the kernel's command line 265 are provided at run-time, during boot. However, there are cases 266 where either no arguments are being provided or the provided 267 arguments are insufficient or even invalid. 268 269 When that occurs, it is possible to define a built-in command 270 line here and choose how the kernel should use it later on. 271 272choice 273 prompt "Kernel command line type" 274 default CMDLINE_BOOTLOADER 275 help 276 Choose how the kernel will handle the provided built-in command 277 line. 278 279config CMDLINE_BOOTLOADER 280 bool "Use bootloader kernel arguments if available" 281 help 282 Prefer the command-line passed by the boot loader if available. 283 Use the built-in command line as fallback in case we get nothing 284 during boot. This is the default behaviour. 285 286config CMDLINE_EXTEND 287 bool "Use built-in to extend bootloader kernel arguments" 288 help 289 The command-line arguments provided during boot will be 290 appended to the built-in command line. This is useful in 291 cases where the provided arguments are insufficient and 292 you don't want to or cannot modify them. 293 294config CMDLINE_FORCE 295 bool "Always use the built-in kernel command string" 296 help 297 Always use the built-in command line, even if we get one during 298 boot. This is useful in case you need to override the provided 299 command line on systems where you don't have or want control 300 over it. 301 302endchoice 303 304config DMI 305 bool "Enable DMI scanning" 306 select DMI_SCAN_MACHINE_NON_EFI_FALLBACK 307 default y 308 help 309 This enables SMBIOS/DMI feature for systems, and scanning of 310 DMI to identify machine quirks. 311 312config EFI 313 bool "EFI runtime service support" 314 select UCS2_STRING 315 select EFI_PARAMS_FROM_FDT 316 select EFI_RUNTIME_WRAPPERS 317 help 318 This enables the kernel to use EFI runtime services that are 319 available (such as the EFI variable services). 320 321config SMP 322 bool "Multi-Processing support" 323 help 324 This enables support for systems with more than one CPU. If you have 325 a system with only one CPU, say N. If you have a system with more 326 than one CPU, say Y. 327 328 If you say N here, the kernel will run on uni- and multiprocessor 329 machines, but will use only one CPU of a multiprocessor machine. If 330 you say Y here, the kernel will run on many, but not all, 331 uniprocessor machines. On a uniprocessor machine, the kernel 332 will run faster if you say N here. 333 334 See also the SMP-HOWTO available at <http://www.tldp.org/docs.html#howto>. 335 336 If you don't know what to do here, say N. 337 338config HOTPLUG_CPU 339 bool "Support for hot-pluggable CPUs" 340 depends on SMP 341 select GENERIC_IRQ_MIGRATION 342 help 343 Say Y here to allow turning CPUs off and on. CPUs can be 344 controlled through /sys/devices/system/cpu. 345 (Note: power management support will enable this option 346 automatically on SMP systems. ) 347 Say N if you want to disable CPU hotplug. 348 349config NR_CPUS 350 int "Maximum number of CPUs (2-256)" 351 range 2 256 352 depends on SMP 353 default "64" 354 help 355 This allows you to specify the maximum number of CPUs which this 356 kernel will support. 357 358config NUMA 359 bool "NUMA Support" 360 select SMP 361 select ACPI_NUMA if ACPI 362 help 363 Say Y to compile the kernel with NUMA (Non-Uniform Memory Access) 364 support. This option improves performance on systems with more 365 than one NUMA node; on single node systems it is generally better 366 to leave it disabled. 367 368config NODES_SHIFT 369 int 370 default "6" 371 depends on NUMA 372 373config FORCE_MAX_ZONEORDER 374 int "Maximum zone order" 375 range 14 64 if PAGE_SIZE_64KB 376 default "14" if PAGE_SIZE_64KB 377 range 12 64 if PAGE_SIZE_16KB 378 default "12" if PAGE_SIZE_16KB 379 range 11 64 380 default "11" 381 help 382 The kernel memory allocator divides physically contiguous memory 383 blocks into "zones", where each zone is a power of two number of 384 pages. This option selects the largest power of two that the kernel 385 keeps in the memory allocator. If you need to allocate very large 386 blocks of physically contiguous memory, then you may need to 387 increase this value. 388 389 This config option is actually maximum order plus one. For example, 390 a value of 11 means that the largest free memory block is 2^10 pages. 391 392 The page size is not necessarily 4KB. Keep this in mind 393 when choosing a value for this option. 394 395config SECCOMP 396 bool "Enable seccomp to safely compute untrusted bytecode" 397 depends on PROC_FS 398 default y 399 help 400 This kernel feature is useful for number crunching applications 401 that may need to compute untrusted bytecode during their 402 execution. By using pipes or other transports made available to 403 the process as file descriptors supporting the read/write 404 syscalls, it's possible to isolate those applications in 405 their own address space using seccomp. Once seccomp is 406 enabled via /proc/<pid>/seccomp, it cannot be disabled 407 and the task is only allowed to execute a few safe syscalls 408 defined by each seccomp mode. 409 410 If unsure, say Y. Only embedded should say N here. 411 412endmenu 413 414config ARCH_SELECT_MEMORY_MODEL 415 def_bool y 416 417config ARCH_FLATMEM_ENABLE 418 def_bool y 419 depends on !NUMA 420 421config ARCH_SPARSEMEM_ENABLE 422 def_bool y 423 help 424 Say Y to support efficient handling of sparse physical memory, 425 for architectures which are either NUMA (Non-Uniform Memory Access) 426 or have huge holes in the physical address space for other reasons. 427 See <file:Documentation/mm/numa.rst> for more. 428 429config ARCH_ENABLE_THP_MIGRATION 430 def_bool y 431 depends on TRANSPARENT_HUGEPAGE 432 433config ARCH_MEMORY_PROBE 434 def_bool y 435 depends on MEMORY_HOTPLUG 436 437config MMU 438 bool 439 default y 440 441config ARCH_MMAP_RND_BITS_MIN 442 default 12 443 444config ARCH_MMAP_RND_BITS_MAX 445 default 18 446 447menu "Power management options" 448 449source "drivers/acpi/Kconfig" 450 451endmenu 452 453source "drivers/firmware/Kconfig" 454