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