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