18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ciconfig LOONGARCH 38c2ecf20Sopenharmony_ci bool 48c2ecf20Sopenharmony_ci default y 58c2ecf20Sopenharmony_ci select ACPI_MCFG if ACPI 68c2ecf20Sopenharmony_ci select ACPI_PPTT if ACPI 78c2ecf20Sopenharmony_ci select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI 88c2ecf20Sopenharmony_ci select ARCH_BINFMT_ELF_STATE 98c2ecf20Sopenharmony_ci select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI 108c2ecf20Sopenharmony_ci select ARCH_HAS_CPU_FINALIZE_INIT 118c2ecf20Sopenharmony_ci select ARCH_HAS_FORTIFY_SOURCE 128c2ecf20Sopenharmony_ci select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE 138c2ecf20Sopenharmony_ci select ARCH_HAS_PTE_SPECIAL if !32BIT 148c2ecf20Sopenharmony_ci select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST 158c2ecf20Sopenharmony_ci select ARCH_INLINE_READ_LOCK if !PREEMPTION 168c2ecf20Sopenharmony_ci select ARCH_INLINE_READ_LOCK_BH if !PREEMPTION 178c2ecf20Sopenharmony_ci select ARCH_INLINE_READ_LOCK_IRQ if !PREEMPTION 188c2ecf20Sopenharmony_ci select ARCH_INLINE_READ_LOCK_IRQSAVE if !PREEMPTION 198c2ecf20Sopenharmony_ci select ARCH_INLINE_READ_UNLOCK if !PREEMPTION 208c2ecf20Sopenharmony_ci select ARCH_INLINE_READ_UNLOCK_BH if !PREEMPTION 218c2ecf20Sopenharmony_ci select ARCH_INLINE_READ_UNLOCK_IRQ if !PREEMPTION 228c2ecf20Sopenharmony_ci select ARCH_INLINE_READ_UNLOCK_IRQRESTORE if !PREEMPTION 238c2ecf20Sopenharmony_ci select ARCH_INLINE_WRITE_LOCK if !PREEMPTION 248c2ecf20Sopenharmony_ci select ARCH_INLINE_WRITE_LOCK_BH if !PREEMPTION 258c2ecf20Sopenharmony_ci select ARCH_INLINE_WRITE_LOCK_IRQ if !PREEMPTION 268c2ecf20Sopenharmony_ci select ARCH_INLINE_WRITE_LOCK_IRQSAVE if !PREEMPTION 278c2ecf20Sopenharmony_ci select ARCH_INLINE_WRITE_UNLOCK if !PREEMPTION 288c2ecf20Sopenharmony_ci select ARCH_INLINE_WRITE_UNLOCK_BH if !PREEMPTION 298c2ecf20Sopenharmony_ci select ARCH_INLINE_WRITE_UNLOCK_IRQ if !PREEMPTION 308c2ecf20Sopenharmony_ci select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE if !PREEMPTION 318c2ecf20Sopenharmony_ci select ARCH_INLINE_SPIN_TRYLOCK if !PREEMPTION 328c2ecf20Sopenharmony_ci select ARCH_INLINE_SPIN_TRYLOCK_BH if !PREEMPTION 338c2ecf20Sopenharmony_ci select ARCH_INLINE_SPIN_LOCK if !PREEMPTION 348c2ecf20Sopenharmony_ci select ARCH_INLINE_SPIN_LOCK_BH if !PREEMPTION 358c2ecf20Sopenharmony_ci select ARCH_INLINE_SPIN_LOCK_IRQ if !PREEMPTION 368c2ecf20Sopenharmony_ci select ARCH_INLINE_SPIN_LOCK_IRQSAVE if !PREEMPTION 378c2ecf20Sopenharmony_ci select ARCH_INLINE_SPIN_UNLOCK if !PREEMPTION 388c2ecf20Sopenharmony_ci select ARCH_INLINE_SPIN_UNLOCK_BH if !PREEMPTION 398c2ecf20Sopenharmony_ci select ARCH_INLINE_SPIN_UNLOCK_IRQ if !PREEMPTION 408c2ecf20Sopenharmony_ci select ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE if !PREEMPTION 418c2ecf20Sopenharmony_ci select ARCH_KEEP_MEMBLOCK 428c2ecf20Sopenharmony_ci select ARCH_SUPPORTS_ACPI 438c2ecf20Sopenharmony_ci select ARCH_SUPPORTS_NUMA_BALANCING 448c2ecf20Sopenharmony_ci select ARCH_SUPPORTS_UPROBES 458c2ecf20Sopenharmony_ci select ARCH_USE_BUILTIN_BSWAP 468c2ecf20Sopenharmony_ci select ARCH_USE_CMPXCHG_LOCKREF if 64BIT 478c2ecf20Sopenharmony_ci select ARCH_USE_QUEUED_RWLOCKS 488c2ecf20Sopenharmony_ci select ARCH_USE_QUEUED_SPINLOCKS 498c2ecf20Sopenharmony_ci select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT 508c2ecf20Sopenharmony_ci select ARCH_WANT_LD_ORPHAN_WARN 518c2ecf20Sopenharmony_ci select BUILDTIME_TABLE_SORT 528c2ecf20Sopenharmony_ci select COMMON_CLK 538c2ecf20Sopenharmony_ci select CPU_PM 548c2ecf20Sopenharmony_ci select GENERIC_ATOMIC64 if !64BIT 558c2ecf20Sopenharmony_ci select GENERIC_CLOCKEVENTS 568c2ecf20Sopenharmony_ci select GENERIC_CMOS_UPDATE 578c2ecf20Sopenharmony_ci select GENERIC_CPU_AUTOPROBE 588c2ecf20Sopenharmony_ci select GENERIC_ENTRY 598c2ecf20Sopenharmony_ci select GENERIC_FIND_FIRST_BIT 608c2ecf20Sopenharmony_ci select GENERIC_GETTIMEOFDAY 618c2ecf20Sopenharmony_ci select GENERIC_IOREMAP if !ARCH_IOREMAP 628c2ecf20Sopenharmony_ci select GENERIC_IRQ_MULTI_HANDLER 638c2ecf20Sopenharmony_ci select GENERIC_IRQ_PROBE 648c2ecf20Sopenharmony_ci select GENERIC_IRQ_SHOW 658c2ecf20Sopenharmony_ci select GENERIC_LIB_ASHLDI3 668c2ecf20Sopenharmony_ci select GENERIC_LIB_ASHRDI3 678c2ecf20Sopenharmony_ci select GENERIC_LIB_CMPDI2 688c2ecf20Sopenharmony_ci select GENERIC_LIB_LSHRDI3 698c2ecf20Sopenharmony_ci select GENERIC_LIB_UCMPDI2 708c2ecf20Sopenharmony_ci select GENERIC_LIB_DEVMEM_IS_ALLOWED 718c2ecf20Sopenharmony_ci select GENERIC_PCI_IOMAP 728c2ecf20Sopenharmony_ci select GENERIC_SCHED_CLOCK 738c2ecf20Sopenharmony_ci select GENERIC_SMP_IDLE_THREAD 748c2ecf20Sopenharmony_ci select GENERIC_STRNCPY_FROM_USER 758c2ecf20Sopenharmony_ci select GENERIC_STRNLEN_USER 768c2ecf20Sopenharmony_ci select GENERIC_TIME_VSYSCALL 778c2ecf20Sopenharmony_ci select GENERIC_VDSO_TIME_NS 788c2ecf20Sopenharmony_ci select HANDLE_DOMAIN_IRQ 798c2ecf20Sopenharmony_ci select HAVE_ARCH_AUDITSYSCALL 808c2ecf20Sopenharmony_ci select HAVE_ARCH_JUMP_LABEL 818c2ecf20Sopenharmony_ci select HAVE_ARCH_JUMP_LABEL_RELATIVE 828c2ecf20Sopenharmony_ci select HAVE_ARCH_KASAN if 64BIT 838c2ecf20Sopenharmony_ci select HAVE_ARCH_KGDB 848c2ecf20Sopenharmony_ci select HAVE_ARCH_MMAP_RND_BITS if MMU 858c2ecf20Sopenharmony_ci select HAVE_ARCH_SECCOMP 868c2ecf20Sopenharmony_ci select HAVE_ARCH_SECCOMP_FILTER 878c2ecf20Sopenharmony_ci select HAVE_ARCH_TRACEHOOK 888c2ecf20Sopenharmony_ci select HAVE_ARCH_TRANSPARENT_HUGEPAGE 898c2ecf20Sopenharmony_ci select HAVE_ASM_MODVERSIONS 908c2ecf20Sopenharmony_ci select HAVE_CONTEXT_TRACKING 918c2ecf20Sopenharmony_ci select HAVE_COPY_THREAD_TLS 928c2ecf20Sopenharmony_ci select HAVE_C_RECORDMCOUNT 938c2ecf20Sopenharmony_ci select HAVE_DEBUG_KMEMLEAK 948c2ecf20Sopenharmony_ci select HAVE_DEBUG_STACKOVERFLOW 958c2ecf20Sopenharmony_ci select HAVE_DMA_CONTIGUOUS 968c2ecf20Sopenharmony_ci select HAVE_DYNAMIC_FTRACE 978c2ecf20Sopenharmony_ci select HAVE_DYNAMIC_FTRACE_WITH_REGS 988c2ecf20Sopenharmony_ci select HAVE_EBPF_JIT if 64BIT 998c2ecf20Sopenharmony_ci select HAVE_EFFICIENT_UNALIGNED_ACCESS if !ARCH_STRICT_ALIGN 1008c2ecf20Sopenharmony_ci select HAVE_EXIT_THREAD 1018c2ecf20Sopenharmony_ci select HAVE_FAST_GUP 1028c2ecf20Sopenharmony_ci select HAVE_FTRACE_MCOUNT_RECORD 1038c2ecf20Sopenharmony_ci select HAVE_FUNCTION_GRAPH_TRACER 1048c2ecf20Sopenharmony_ci select HAVE_FUNCTION_TRACER 1058c2ecf20Sopenharmony_ci select HAVE_FUTEX_CMPXCHG if FUTEX 1068c2ecf20Sopenharmony_ci select HAVE_GENERIC_VDSO 1078c2ecf20Sopenharmony_ci select HAVE_IOREMAP_PROT 1088c2ecf20Sopenharmony_ci select HAVE_IRQ_EXIT_ON_IRQ_STACK 1098c2ecf20Sopenharmony_ci select HAVE_IRQ_TIME_ACCOUNTING 1108c2ecf20Sopenharmony_ci select HAVE_KPROBES 1118c2ecf20Sopenharmony_ci select HAVE_KPROBES_ON_FTRACE 1128c2ecf20Sopenharmony_ci select HAVE_KRETPROBES 1138c2ecf20Sopenharmony_ci select HAVE_LIVEPATCH 1148c2ecf20Sopenharmony_ci select HAVE_MEMBLOCK 1158c2ecf20Sopenharmony_ci select HAVE_MEMBLOCK_NODE_MAP 1168c2ecf20Sopenharmony_ci select HAVE_MOD_ARCH_SPECIFIC 1178c2ecf20Sopenharmony_ci select HAVE_NMI 1188c2ecf20Sopenharmony_ci select HAVE_PERF_EVENTS 1198c2ecf20Sopenharmony_ci select HAVE_PERF_REGS 1208c2ecf20Sopenharmony_ci select HAVE_PERF_USER_STACK_DUMP 1218c2ecf20Sopenharmony_ci select HAVE_REGS_AND_STACK_ACCESS_API 1228c2ecf20Sopenharmony_ci select HAVE_RSEQ 1238c2ecf20Sopenharmony_ci select HAVE_STACKPROTECTOR 1248c2ecf20Sopenharmony_ci select HAVE_STACK_VALIDATION 1258c2ecf20Sopenharmony_ci select HAVE_SYSCALL_TRACEPOINTS 1268c2ecf20Sopenharmony_ci select HAVE_TIF_NOHZ 1278c2ecf20Sopenharmony_ci select HAVE_VIRT_CPU_ACCOUNTING_GEN if 64BIT || !SMP 1288c2ecf20Sopenharmony_ci select IRQ_FORCED_THREADING 1298c2ecf20Sopenharmony_ci select MODULES_USE_ELF_RELA if MODULES 1308c2ecf20Sopenharmony_ci select OF 1318c2ecf20Sopenharmony_ci select OF_EARLY_FLATTREE 1328c2ecf20Sopenharmony_ci select PCI_DOMAINS_GENERIC if PCI 1338c2ecf20Sopenharmony_ci select PCI_ECAM if ACPI 1348c2ecf20Sopenharmony_ci select PCI_MSI_ARCH_FALLBACKS 1358c2ecf20Sopenharmony_ci select PERF_USE_VMALLOC 1368c2ecf20Sopenharmony_ci select RTC_LIB 1378c2ecf20Sopenharmony_ci select SYSCTL_ARCH_UNALIGN_ALLOW 1388c2ecf20Sopenharmony_ci select SYSCTL_ARCH_UNALIGN_NO_WARN 1398c2ecf20Sopenharmony_ci select SYSCTL_EXCEPTION_TRACE 1408c2ecf20Sopenharmony_ci select USER_STACKTRACE_SUPPORT 1418c2ecf20Sopenharmony_ci 1428c2ecf20Sopenharmony_cimenu "Machine selection" 1438c2ecf20Sopenharmony_ci 1448c2ecf20Sopenharmony_cichoice 1458c2ecf20Sopenharmony_ci prompt "System type" 1468c2ecf20Sopenharmony_ci default MACH_LOONGSON64 1478c2ecf20Sopenharmony_ci 1488c2ecf20Sopenharmony_ciconfig MACH_LOONGSON64 1498c2ecf20Sopenharmony_ci bool "Loongson 64-bit family of machines" 1508c2ecf20Sopenharmony_ci select ARCH_SPARSEMEM_ENABLE 1518c2ecf20Sopenharmony_ci select ARCH_MIGHT_HAVE_PC_PARPORT 1528c2ecf20Sopenharmony_ci select ARCH_MIGHT_HAVE_PC_SERIO 1538c2ecf20Sopenharmony_ci select HAVE_PCI 1548c2ecf20Sopenharmony_ci select PCI 1558c2ecf20Sopenharmony_ci select IRQ_LOONGARCH_CPU 1568c2ecf20Sopenharmony_ci select NR_CPUS_DEFAULT_64 1578c2ecf20Sopenharmony_ci select SPARSE_IRQ 1588c2ecf20Sopenharmony_ci select SYS_HAS_CPU_LOONGSON64 1598c2ecf20Sopenharmony_ci select SYS_SUPPORTS_SMP 1608c2ecf20Sopenharmony_ci select SYS_SUPPORTS_ZBOOT 1618c2ecf20Sopenharmony_ci select SYS_SUPPORTS_HOTPLUG_CPU 1628c2ecf20Sopenharmony_ci select SYS_SUPPORTS_NUMA 1638c2ecf20Sopenharmony_ci select SYS_SUPPORTS_64BIT_KERNEL 1648c2ecf20Sopenharmony_ci select SYS_SUPPORTS_HIGHMEM 1658c2ecf20Sopenharmony_ci select SYS_SUPPORTS_RELOCATABLE 1668c2ecf20Sopenharmony_ci select ZONE_DMA32 1678c2ecf20Sopenharmony_ci select USE_OF 1688c2ecf20Sopenharmony_ci select BUILTIN_DTB 1698c2ecf20Sopenharmony_ci help 1708c2ecf20Sopenharmony_ci This enables the support of Loongson 64-bit family of machines. These 1718c2ecf20Sopenharmony_ci machines are based on new Loongson-3 processors (Old Loongson is MIPS 1728c2ecf20Sopenharmony_ci compatible, while new Loongson is based on LoongArch ISA). 1738c2ecf20Sopenharmony_ci 1748c2ecf20Sopenharmony_ciendchoice 1758c2ecf20Sopenharmony_ci 1768c2ecf20Sopenharmony_ciendmenu 1778c2ecf20Sopenharmony_ci 1788c2ecf20Sopenharmony_ciconfig GENERIC_HWEIGHT 1798c2ecf20Sopenharmony_ci bool 1808c2ecf20Sopenharmony_ci default y 1818c2ecf20Sopenharmony_ci 1828c2ecf20Sopenharmony_ciconfig GENERIC_CALIBRATE_DELAY 1838c2ecf20Sopenharmony_ci bool 1848c2ecf20Sopenharmony_ci default y 1858c2ecf20Sopenharmony_ci 1868c2ecf20Sopenharmony_ciconfig SCHED_OMIT_FRAME_POINTER 1878c2ecf20Sopenharmony_ci bool 1888c2ecf20Sopenharmony_ci default y 1898c2ecf20Sopenharmony_ci 1908c2ecf20Sopenharmony_ciconfig AS_HAS_EXPLICIT_RELOCS 1918c2ecf20Sopenharmony_ci def_bool $(as-instr,x:pcalau12i \$t0$(comma)%pc_hi20(x)) 1928c2ecf20Sopenharmony_ci 1938c2ecf20Sopenharmony_ciconfig ARCH_SUPPORTS_UPROBES 1948c2ecf20Sopenharmony_ci bool 1958c2ecf20Sopenharmony_ci 1968c2ecf20Sopenharmony_ciconfig SYS_SUPPORTS_HOTPLUG_CPU 1978c2ecf20Sopenharmony_ci bool 1988c2ecf20Sopenharmony_ci 1998c2ecf20Sopenharmony_ciconfig GENERIC_CSUM 2008c2ecf20Sopenharmony_ci def_bool y 2018c2ecf20Sopenharmony_ci 2028c2ecf20Sopenharmony_ciconfig SYS_SUPPORTS_RELOCATABLE 2038c2ecf20Sopenharmony_ci bool 2048c2ecf20Sopenharmony_ci help 2058c2ecf20Sopenharmony_ci Selected if the platform supports relocating the kernel. 2068c2ecf20Sopenharmony_ci 2078c2ecf20Sopenharmony_ciconfig SYS_SUPPORTS_HUGETLBFS 2088c2ecf20Sopenharmony_ci def_bool y 2098c2ecf20Sopenharmony_ci 2108c2ecf20Sopenharmony_ciconfig L1_CACHE_SHIFT 2118c2ecf20Sopenharmony_ci int 2128c2ecf20Sopenharmony_ci default "6" 2138c2ecf20Sopenharmony_ci 2148c2ecf20Sopenharmony_cimenu "CPU selection" 2158c2ecf20Sopenharmony_ci 2168c2ecf20Sopenharmony_cichoice 2178c2ecf20Sopenharmony_ci prompt "CPU type" 2188c2ecf20Sopenharmony_ci default CPU_LOONGSON64 2198c2ecf20Sopenharmony_ci 2208c2ecf20Sopenharmony_ciconfig CPU_LOONGSON64 2218c2ecf20Sopenharmony_ci bool "Loongson 64-bit CPU" 2228c2ecf20Sopenharmony_ci depends on SYS_HAS_CPU_LOONGSON64 2238c2ecf20Sopenharmony_ci select CPU_SUPPORTS_64BIT_KERNEL 2248c2ecf20Sopenharmony_ci select CPU_SUPPORTS_HIGHMEM 2258c2ecf20Sopenharmony_ci select CPU_SUPPORTS_LSX 2268c2ecf20Sopenharmony_ci select CPU_SUPPORTS_LASX 2278c2ecf20Sopenharmony_ci select GPIOLIB 2288c2ecf20Sopenharmony_ci select SWIOTLB 2298c2ecf20Sopenharmony_ci select HAVE_KVM 2308c2ecf20Sopenharmony_ci select ARCH_SUPPORTS_ATOMIC_RMW 2318c2ecf20Sopenharmony_ci help 2328c2ecf20Sopenharmony_ci The Loongson 64-bit processor implements the LoongArch64 (the 64-bit 2338c2ecf20Sopenharmony_ci version of LoongArch) instruction set. 2348c2ecf20Sopenharmony_ci 2358c2ecf20Sopenharmony_ciendchoice 2368c2ecf20Sopenharmony_ci 2378c2ecf20Sopenharmony_ciconfig SYS_SUPPORTS_ZBOOT 2388c2ecf20Sopenharmony_ci bool 2398c2ecf20Sopenharmony_ci select HAVE_KERNEL_GZIP 2408c2ecf20Sopenharmony_ci select HAVE_KERNEL_BZIP2 2418c2ecf20Sopenharmony_ci select HAVE_KERNEL_LZ4 2428c2ecf20Sopenharmony_ci select HAVE_KERNEL_LZMA 2438c2ecf20Sopenharmony_ci select HAVE_KERNEL_LZO 2448c2ecf20Sopenharmony_ci select HAVE_KERNEL_XZ 2458c2ecf20Sopenharmony_ci select HAVE_KERNEL_ZSTD 2468c2ecf20Sopenharmony_ci 2478c2ecf20Sopenharmony_ciconfig SYS_HAS_CPU_LOONGSON64 2488c2ecf20Sopenharmony_ci bool 2498c2ecf20Sopenharmony_ci 2508c2ecf20Sopenharmony_ciendmenu 2518c2ecf20Sopenharmony_ci 2528c2ecf20Sopenharmony_ciconfig SYS_SUPPORTS_32BIT_KERNEL 2538c2ecf20Sopenharmony_ci bool 2548c2ecf20Sopenharmony_ciconfig SYS_SUPPORTS_64BIT_KERNEL 2558c2ecf20Sopenharmony_ci bool 2568c2ecf20Sopenharmony_ciconfig CPU_SUPPORTS_32BIT_KERNEL 2578c2ecf20Sopenharmony_ci bool 2588c2ecf20Sopenharmony_ciconfig CPU_SUPPORTS_64BIT_KERNEL 2598c2ecf20Sopenharmony_ci bool 2608c2ecf20Sopenharmony_ciconfig HARDWARE_WATCHPOINTS 2618c2ecf20Sopenharmony_ci bool 2628c2ecf20Sopenharmony_ci default y 2638c2ecf20Sopenharmony_ci 2648c2ecf20Sopenharmony_cimenu "Kernel type and options" 2658c2ecf20Sopenharmony_ci 2668c2ecf20Sopenharmony_cichoice 2678c2ecf20Sopenharmony_ci prompt "Kernel code model" 2688c2ecf20Sopenharmony_ci help 2698c2ecf20Sopenharmony_ci You should only select this option if you have a workload that 2708c2ecf20Sopenharmony_ci actually benefits from 64-bit processing or if your machine has 2718c2ecf20Sopenharmony_ci large memory. You will only be presented a single option in this 2728c2ecf20Sopenharmony_ci menu if your system does not support both 32-bit and 64-bit kernels. 2738c2ecf20Sopenharmony_ci 2748c2ecf20Sopenharmony_ciconfig 32BIT 2758c2ecf20Sopenharmony_ci bool "32-bit kernel" 2768c2ecf20Sopenharmony_ci depends on CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL 2778c2ecf20Sopenharmony_ci help 2788c2ecf20Sopenharmony_ci Select this option if you want to build a 32-bit kernel. 2798c2ecf20Sopenharmony_ci 2808c2ecf20Sopenharmony_ciconfig 64BIT 2818c2ecf20Sopenharmony_ci bool "64-bit kernel" 2828c2ecf20Sopenharmony_ci depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL 2838c2ecf20Sopenharmony_ci help 2848c2ecf20Sopenharmony_ci Select this option if you want to build a 64-bit kernel. 2858c2ecf20Sopenharmony_ci 2868c2ecf20Sopenharmony_ciendchoice 2878c2ecf20Sopenharmony_ci 2888c2ecf20Sopenharmony_ciconfig FIX_EARLYCON_MEM 2898c2ecf20Sopenharmony_ci def_bool y 2908c2ecf20Sopenharmony_ci 2918c2ecf20Sopenharmony_ciconfig PAGE_SIZE_4KB 2928c2ecf20Sopenharmony_ci bool 2938c2ecf20Sopenharmony_ci 2948c2ecf20Sopenharmony_ciconfig PAGE_SIZE_16KB 2958c2ecf20Sopenharmony_ci bool 2968c2ecf20Sopenharmony_ci 2978c2ecf20Sopenharmony_ciconfig PAGE_SIZE_64KB 2988c2ecf20Sopenharmony_ci bool 2998c2ecf20Sopenharmony_ci 3008c2ecf20Sopenharmony_ciconfig PGTABLE_2LEVEL 3018c2ecf20Sopenharmony_ci bool 3028c2ecf20Sopenharmony_ci 3038c2ecf20Sopenharmony_ciconfig PGTABLE_3LEVEL 3048c2ecf20Sopenharmony_ci bool 3058c2ecf20Sopenharmony_ci 3068c2ecf20Sopenharmony_ciconfig PGTABLE_4LEVEL 3078c2ecf20Sopenharmony_ci bool 3088c2ecf20Sopenharmony_ci 3098c2ecf20Sopenharmony_ciconfig PGTABLE_LEVELS 3108c2ecf20Sopenharmony_ci int 3118c2ecf20Sopenharmony_ci default 2 if PGTABLE_2LEVEL 3128c2ecf20Sopenharmony_ci default 3 if PGTABLE_3LEVEL 3138c2ecf20Sopenharmony_ci default 4 if PGTABLE_4LEVEL 3148c2ecf20Sopenharmony_ci 3158c2ecf20Sopenharmony_cichoice 3168c2ecf20Sopenharmony_ci prompt "Page Table Layout" 3178c2ecf20Sopenharmony_ci default 16KB_2LEVEL if 32BIT 3188c2ecf20Sopenharmony_ci default 16KB_3LEVEL if 64BIT 3198c2ecf20Sopenharmony_ci help 3208c2ecf20Sopenharmony_ci Allows choosing the page table layout, which is a combination 3218c2ecf20Sopenharmony_ci of page size and page table levels. The size of virtual memory 3228c2ecf20Sopenharmony_ci address space are determined by the page table layout. 3238c2ecf20Sopenharmony_ci 3248c2ecf20Sopenharmony_ciconfig 4KB_3LEVEL 3258c2ecf20Sopenharmony_ci bool "4KB with 3 levels" 3268c2ecf20Sopenharmony_ci select PAGE_SIZE_4KB 3278c2ecf20Sopenharmony_ci select PGTABLE_3LEVEL 3288c2ecf20Sopenharmony_ci help 3298c2ecf20Sopenharmony_ci This option selects 4KB page size with 3 level page tables, which 3308c2ecf20Sopenharmony_ci support a maximum of 39 bits of application virtual memory. 3318c2ecf20Sopenharmony_ci 3328c2ecf20Sopenharmony_ciconfig 4KB_4LEVEL 3338c2ecf20Sopenharmony_ci bool "4KB with 4 levels" 3348c2ecf20Sopenharmony_ci select PAGE_SIZE_4KB 3358c2ecf20Sopenharmony_ci select PGTABLE_4LEVEL 3368c2ecf20Sopenharmony_ci help 3378c2ecf20Sopenharmony_ci This option selects 4KB page size with 4 level page tables, which 3388c2ecf20Sopenharmony_ci support a maximum of 48 bits of application virtual memory. 3398c2ecf20Sopenharmony_ci 3408c2ecf20Sopenharmony_ciconfig 16KB_2LEVEL 3418c2ecf20Sopenharmony_ci bool "16KB with 2 levels" 3428c2ecf20Sopenharmony_ci select PAGE_SIZE_16KB 3438c2ecf20Sopenharmony_ci select PGTABLE_2LEVEL 3448c2ecf20Sopenharmony_ci help 3458c2ecf20Sopenharmony_ci This option selects 16KB page size with 2 level page tables, which 3468c2ecf20Sopenharmony_ci support a maximum of 36 bits of application virtual memory. 3478c2ecf20Sopenharmony_ci 3488c2ecf20Sopenharmony_ciconfig 16KB_3LEVEL 3498c2ecf20Sopenharmony_ci bool "16KB with 3 levels" 3508c2ecf20Sopenharmony_ci select PAGE_SIZE_16KB 3518c2ecf20Sopenharmony_ci select PGTABLE_3LEVEL 3528c2ecf20Sopenharmony_ci help 3538c2ecf20Sopenharmony_ci This option selects 16KB page size with 3 level page tables, which 3548c2ecf20Sopenharmony_ci support a maximum of 47 bits of application virtual memory. 3558c2ecf20Sopenharmony_ci 3568c2ecf20Sopenharmony_ciconfig 64KB_2LEVEL 3578c2ecf20Sopenharmony_ci bool "64KB with 2 levels" 3588c2ecf20Sopenharmony_ci select PAGE_SIZE_64KB 3598c2ecf20Sopenharmony_ci select PGTABLE_2LEVEL 3608c2ecf20Sopenharmony_ci help 3618c2ecf20Sopenharmony_ci This option selects 64KB page size with 2 level page tables, which 3628c2ecf20Sopenharmony_ci support a maximum of 42 bits of application virtual memory. 3638c2ecf20Sopenharmony_ci 3648c2ecf20Sopenharmony_ciconfig 64KB_3LEVEL 3658c2ecf20Sopenharmony_ci bool "64KB with 3 levels" 3668c2ecf20Sopenharmony_ci select PAGE_SIZE_64KB 3678c2ecf20Sopenharmony_ci select PGTABLE_3LEVEL 3688c2ecf20Sopenharmony_ci help 3698c2ecf20Sopenharmony_ci This option selects 64KB page size with 3 level page tables, which 3708c2ecf20Sopenharmony_ci support a maximum of 55 bits of application virtual memory. 3718c2ecf20Sopenharmony_ci 3728c2ecf20Sopenharmony_ciendchoice 3738c2ecf20Sopenharmony_ci 3748c2ecf20Sopenharmony_ciconfig FORCE_MAX_ZONEORDER 3758c2ecf20Sopenharmony_ci int "Maximum zone order" 3768c2ecf20Sopenharmony_ci range 14 64 if PAGE_SIZE_64KB 3778c2ecf20Sopenharmony_ci default "14" if PAGE_SIZE_64KB 3788c2ecf20Sopenharmony_ci range 12 64 if PAGE_SIZE_16KB 3798c2ecf20Sopenharmony_ci default "12" if PAGE_SIZE_16KB 3808c2ecf20Sopenharmony_ci range 11 64 3818c2ecf20Sopenharmony_ci default "11" 3828c2ecf20Sopenharmony_ci help 3838c2ecf20Sopenharmony_ci The kernel memory allocator divides physically contiguous memory 3848c2ecf20Sopenharmony_ci blocks into "zones", where each zone is a power of two number of 3858c2ecf20Sopenharmony_ci pages. This option selects the largest power of two that the kernel 3868c2ecf20Sopenharmony_ci keeps in the memory allocator. If you need to allocate very large 3878c2ecf20Sopenharmony_ci blocks of physically contiguous memory, then you may need to 3888c2ecf20Sopenharmony_ci increase this value. 3898c2ecf20Sopenharmony_ci 3908c2ecf20Sopenharmony_ci This config option is actually maximum order plus one. For example, 3918c2ecf20Sopenharmony_ci a value of 11 means that the largest free memory block is 2^10 pages. 3928c2ecf20Sopenharmony_ci 3938c2ecf20Sopenharmony_ci The page size is not necessarily 4KB. Keep this in mind 3948c2ecf20Sopenharmony_ci when choosing a value for this option. 3958c2ecf20Sopenharmony_ci 3968c2ecf20Sopenharmony_ciconfig CPU_HAS_PREFETCH 3978c2ecf20Sopenharmony_ci bool 3988c2ecf20Sopenharmony_ci default y 3998c2ecf20Sopenharmony_ci 4008c2ecf20Sopenharmony_ciconfig CPU_HAS_FPU 4018c2ecf20Sopenharmony_ci bool 4028c2ecf20Sopenharmony_ci default y 4038c2ecf20Sopenharmony_ci 4048c2ecf20Sopenharmony_ciconfig CPU_HAS_LSX 4058c2ecf20Sopenharmony_ci bool "Support for the Loongson SIMD Extension" 4068c2ecf20Sopenharmony_ci depends on CPU_SUPPORTS_LSX 4078c2ecf20Sopenharmony_ci depends on 64BIT 4088c2ecf20Sopenharmony_ci help 4098c2ecf20Sopenharmony_ci Loongson SIMD Extension (LSX) introduces 128 bit wide vector registers 4108c2ecf20Sopenharmony_ci and a set of SIMD instructions to operate on them. When this option 4118c2ecf20Sopenharmony_ci is enabled the kernel will support allocating & switching LSX 4128c2ecf20Sopenharmony_ci vector register contexts. If you know that your kernel will only be 4138c2ecf20Sopenharmony_ci running on CPUs which do not support LSX or that your userland will 4148c2ecf20Sopenharmony_ci not be making use of it then you may wish to say N here to reduce 4158c2ecf20Sopenharmony_ci the size & complexity of your kernel. 4168c2ecf20Sopenharmony_ci 4178c2ecf20Sopenharmony_ci If unsure, say Y. 4188c2ecf20Sopenharmony_ci 4198c2ecf20Sopenharmony_ciconfig CPU_HAS_LASX 4208c2ecf20Sopenharmony_ci bool "Support for the Loongson Advanced SIMD Extension" 4218c2ecf20Sopenharmony_ci depends on CPU_SUPPORTS_LASX 4228c2ecf20Sopenharmony_ci depends on 64BIT && CPU_HAS_LSX 4238c2ecf20Sopenharmony_ci help 4248c2ecf20Sopenharmony_ci Loongson Advanced SIMD Extension is 256 bit wide SIMD extension. 4258c2ecf20Sopenharmony_ci 4268c2ecf20Sopenharmony_ci If unsure, say Y. 4278c2ecf20Sopenharmony_ci 4288c2ecf20Sopenharmony_ciconfig CPU_HAS_LBT 4298c2ecf20Sopenharmony_ci bool "Support for the Loongson Binary Tranlatition" 4308c2ecf20Sopenharmony_ci 4318c2ecf20Sopenharmony_ci# 4328c2ecf20Sopenharmony_ci# - Highmem only makes sense for the 32-bit kernel. 4338c2ecf20Sopenharmony_ci# - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we 4348c2ecf20Sopenharmony_ci# know they might have memory configurations that could make use of highmem 4358c2ecf20Sopenharmony_ci# support. 4368c2ecf20Sopenharmony_ci# 4378c2ecf20Sopenharmony_ciconfig HIGHMEM 4388c2ecf20Sopenharmony_ci bool "High Memory Support" 4398c2ecf20Sopenharmony_ci depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM 4408c2ecf20Sopenharmony_ci 4418c2ecf20Sopenharmony_ciconfig CPU_SUPPORTS_HIGHMEM 4428c2ecf20Sopenharmony_ci bool 4438c2ecf20Sopenharmony_ci 4448c2ecf20Sopenharmony_ciconfig SYS_SUPPORTS_HIGHMEM 4458c2ecf20Sopenharmony_ci bool 4468c2ecf20Sopenharmony_ci 4478c2ecf20Sopenharmony_ciconfig CPU_SUPPORTS_LSX 4488c2ecf20Sopenharmony_ci bool 4498c2ecf20Sopenharmony_ci 4508c2ecf20Sopenharmony_ciconfig CPU_SUPPORTS_LASX 4518c2ecf20Sopenharmony_ci bool 4528c2ecf20Sopenharmony_ci 4538c2ecf20Sopenharmony_ciconfig ARCH_SELECT_MEMORY_MODEL 4548c2ecf20Sopenharmony_ci def_bool y 4558c2ecf20Sopenharmony_ci 4568c2ecf20Sopenharmony_ciconfig ARCH_FLATMEM_ENABLE 4578c2ecf20Sopenharmony_ci def_bool y 4588c2ecf20Sopenharmony_ci depends on !NUMA 4598c2ecf20Sopenharmony_ci 4608c2ecf20Sopenharmony_ciconfig ARCH_SPARSEMEM_ENABLE 4618c2ecf20Sopenharmony_ci def_bool y 4628c2ecf20Sopenharmony_ci select SPARSEMEM_VMEMMAP_ENABLE 4638c2ecf20Sopenharmony_ci help 4648c2ecf20Sopenharmony_ci Say Y to support efficient handling of sparse physical memory, 4658c2ecf20Sopenharmony_ci for architectures which are either NUMA (Non-Uniform Memory Access) 4668c2ecf20Sopenharmony_ci or have huge holes in the physical address space for other reasons. 4678c2ecf20Sopenharmony_ci See <file:Documentation/vm/numa.rst> for more. 4688c2ecf20Sopenharmony_ci 4698c2ecf20Sopenharmony_ciconfig NUMA 4708c2ecf20Sopenharmony_ci bool "NUMA Support" 4718c2ecf20Sopenharmony_ci depends on SYS_SUPPORTS_NUMA 4728c2ecf20Sopenharmony_ci select ACPI_NUMA if ACPI 4738c2ecf20Sopenharmony_ci help 4748c2ecf20Sopenharmony_ci Say Y to compile the kernel with NUMA (Non-Uniform Memory Access) 4758c2ecf20Sopenharmony_ci support. This option improves performance on systems with more 4768c2ecf20Sopenharmony_ci than one NUMA node; on single node systems it is generally better 4778c2ecf20Sopenharmony_ci to leave it disabled. 4788c2ecf20Sopenharmony_ci 4798c2ecf20Sopenharmony_ciconfig SYS_SUPPORTS_NUMA 4808c2ecf20Sopenharmony_ci bool 4818c2ecf20Sopenharmony_ci 4828c2ecf20Sopenharmony_ciconfig RELOCATABLE 4838c2ecf20Sopenharmony_ci bool "Relocatable kernel" 4848c2ecf20Sopenharmony_ci depends on SYS_SUPPORTS_RELOCATABLE 4858c2ecf20Sopenharmony_ci help 4868c2ecf20Sopenharmony_ci This builds a kernel image that retains relocation information 4878c2ecf20Sopenharmony_ci so it can be loaded someplace besides the default 1MB. 4888c2ecf20Sopenharmony_ci The relocations make the kernel binary about 15% larger, 4898c2ecf20Sopenharmony_ci but are discarded at runtime 4908c2ecf20Sopenharmony_ci 4918c2ecf20Sopenharmony_ciconfig RELOCATION_TABLE_SIZE 4928c2ecf20Sopenharmony_ci hex "Relocation table size" 4938c2ecf20Sopenharmony_ci depends on RELOCATABLE 4948c2ecf20Sopenharmony_ci range 0x0 0x01000000 4958c2ecf20Sopenharmony_ci default "0x00200000" 4968c2ecf20Sopenharmony_ci help 4978c2ecf20Sopenharmony_ci A table of relocation data will be appended to the kernel binary 4988c2ecf20Sopenharmony_ci and parsed at boot to fix up the relocated kernel. 4998c2ecf20Sopenharmony_ci 5008c2ecf20Sopenharmony_ci This option allows the amount of space reserved for the table to be 5018c2ecf20Sopenharmony_ci adjusted, although the default of 1Mb should be ok in most cases. 5028c2ecf20Sopenharmony_ci 5038c2ecf20Sopenharmony_ci The build will fail and a valid size suggested if this is too small. 5048c2ecf20Sopenharmony_ci 5058c2ecf20Sopenharmony_ci If unsure, leave at the default value. 5068c2ecf20Sopenharmony_ci 5078c2ecf20Sopenharmony_ciconfig RANDOMIZE_BASE 5088c2ecf20Sopenharmony_ci bool "Randomize the address of the kernel image" 5098c2ecf20Sopenharmony_ci depends on RELOCATABLE 5108c2ecf20Sopenharmony_ci help 5118c2ecf20Sopenharmony_ci Randomizes the physical and virtual address at which the 5128c2ecf20Sopenharmony_ci kernel image is loaded, as a security feature that 5138c2ecf20Sopenharmony_ci deters exploit attempts relying on knowledge of the location 5148c2ecf20Sopenharmony_ci of kernel internals. 5158c2ecf20Sopenharmony_ci 5168c2ecf20Sopenharmony_ci Entropy is generated using any coprocessor 0 registers available. 5178c2ecf20Sopenharmony_ci 5188c2ecf20Sopenharmony_ci The kernel will be offset by up to RANDOMIZE_BASE_MAX_OFFSET. 5198c2ecf20Sopenharmony_ci 5208c2ecf20Sopenharmony_ci If unsure, say N. 5218c2ecf20Sopenharmony_ci 5228c2ecf20Sopenharmony_ciconfig RANDOMIZE_BASE_MAX_OFFSET 5238c2ecf20Sopenharmony_ci hex "Maximum kASLR offset" if EXPERT 5248c2ecf20Sopenharmony_ci depends on RANDOMIZE_BASE 5258c2ecf20Sopenharmony_ci range 0x0 0x40000000 if 64BIT 5268c2ecf20Sopenharmony_ci range 0x0 0x08000000 5278c2ecf20Sopenharmony_ci default "0x01000000" 5288c2ecf20Sopenharmony_ci help 5298c2ecf20Sopenharmony_ci When kASLR is active, this provides the maximum offset that will 5308c2ecf20Sopenharmony_ci be applied to the kernel image. It should be set according to the 5318c2ecf20Sopenharmony_ci amount of physical RAM available in the target system. 5328c2ecf20Sopenharmony_ci 5338c2ecf20Sopenharmony_ci This is limited by the size of the lower address memory, 256MB. 5348c2ecf20Sopenharmony_ci 5358c2ecf20Sopenharmony_ciconfig NODES_SHIFT 5368c2ecf20Sopenharmony_ci int 5378c2ecf20Sopenharmony_ci default "6" 5388c2ecf20Sopenharmony_ci depends on NEED_MULTIPLE_NODES 5398c2ecf20Sopenharmony_ci 5408c2ecf20Sopenharmony_ciconfig USE_PERCPU_NUMA_NODE_ID 5418c2ecf20Sopenharmony_ci def_bool y 5428c2ecf20Sopenharmony_ci depends on NUMA 5438c2ecf20Sopenharmony_ci 5448c2ecf20Sopenharmony_ciconfig HAVE_SETUP_PER_CPU_AREA 5458c2ecf20Sopenharmony_ci def_bool y 5468c2ecf20Sopenharmony_ci depends on NUMA 5478c2ecf20Sopenharmony_ci 5488c2ecf20Sopenharmony_ciconfig NEED_PER_CPU_EMBED_FIRST_CHUNK 5498c2ecf20Sopenharmony_ci def_bool y 5508c2ecf20Sopenharmony_ci depends on NUMA 5518c2ecf20Sopenharmony_ci 5528c2ecf20Sopenharmony_ciconfig NEED_PER_CPU_PAGE_FIRST_CHUNK 5538c2ecf20Sopenharmony_ci def_bool y 5548c2ecf20Sopenharmony_ci depends on NUMA 5558c2ecf20Sopenharmony_ci 5568c2ecf20Sopenharmony_ciconfig CMDLINE 5578c2ecf20Sopenharmony_ci string "Built-in kernel command line" 5588c2ecf20Sopenharmony_ci help 5598c2ecf20Sopenharmony_ci For most platforms, the arguments for the kernel's command line 5608c2ecf20Sopenharmony_ci are provided at run-time, during boot. However, there are cases 5618c2ecf20Sopenharmony_ci where either no arguments are being provided or the provided 5628c2ecf20Sopenharmony_ci arguments are insufficient or even invalid. 5638c2ecf20Sopenharmony_ci 5648c2ecf20Sopenharmony_ci When that occurs, it is possible to define a built-in command 5658c2ecf20Sopenharmony_ci line here and choose how the kernel should use it later on. 5668c2ecf20Sopenharmony_ci 5678c2ecf20Sopenharmony_cichoice 5688c2ecf20Sopenharmony_ci prompt "Kernel command line type" 5698c2ecf20Sopenharmony_ci default CMDLINE_BOOTLOADER 5708c2ecf20Sopenharmony_ci help 5718c2ecf20Sopenharmony_ci Choose how the kernel will handle the provided built-in command 5728c2ecf20Sopenharmony_ci line. 5738c2ecf20Sopenharmony_ci 5748c2ecf20Sopenharmony_ciconfig CMDLINE_BOOTLOADER 5758c2ecf20Sopenharmony_ci bool "Use bootloader kernel arguments if available" 5768c2ecf20Sopenharmony_ci help 5778c2ecf20Sopenharmony_ci Prefer the command-line passed by the boot loader if available. 5788c2ecf20Sopenharmony_ci Use the built-in command line as fallback in case we get nothing 5798c2ecf20Sopenharmony_ci during boot. This is the default behaviour. 5808c2ecf20Sopenharmony_ci 5818c2ecf20Sopenharmony_ciconfig CMDLINE_EXTEND 5828c2ecf20Sopenharmony_ci bool "Use built-in to extend bootloader kernel arguments" 5838c2ecf20Sopenharmony_ci help 5848c2ecf20Sopenharmony_ci The command-line arguments provided during boot will be 5858c2ecf20Sopenharmony_ci appended to the built-in command line. This is useful in 5868c2ecf20Sopenharmony_ci cases where the provided arguments are insufficient and 5878c2ecf20Sopenharmony_ci you don't want to or cannot modify them. 5888c2ecf20Sopenharmony_ci 5898c2ecf20Sopenharmony_ciconfig CMDLINE_FORCE 5908c2ecf20Sopenharmony_ci bool "Always use the built-in kernel command string" 5918c2ecf20Sopenharmony_ci help 5928c2ecf20Sopenharmony_ci Always use the built-in command line, even if we get one during 5938c2ecf20Sopenharmony_ci boot. This is useful in case you need to override the provided 5948c2ecf20Sopenharmony_ci command line on systems where you don't have or want control 5958c2ecf20Sopenharmony_ci over it. 5968c2ecf20Sopenharmony_ci 5978c2ecf20Sopenharmony_ciendchoice 5988c2ecf20Sopenharmony_ci 5998c2ecf20Sopenharmony_ciconfig DMI 6008c2ecf20Sopenharmony_ci bool "Enable DMI scanning" 6018c2ecf20Sopenharmony_ci select DMI_SCAN_MACHINE_NON_EFI_FALLBACK 6028c2ecf20Sopenharmony_ci default y 6038c2ecf20Sopenharmony_ci help 6048c2ecf20Sopenharmony_ci This enables SMBIOS/DMI feature for systems, and scanning of 6058c2ecf20Sopenharmony_ci DMI to identify machine quirks. 6068c2ecf20Sopenharmony_ci 6078c2ecf20Sopenharmony_ciconfig EFI 6088c2ecf20Sopenharmony_ci bool "EFI runtime service support" 6098c2ecf20Sopenharmony_ci select UCS2_STRING 6108c2ecf20Sopenharmony_ci select EFI_RUNTIME_WRAPPERS 6118c2ecf20Sopenharmony_ci help 6128c2ecf20Sopenharmony_ci This enables the kernel to use EFI runtime services that are 6138c2ecf20Sopenharmony_ci available (such as the EFI variable services). 6148c2ecf20Sopenharmony_ci 6158c2ecf20Sopenharmony_ciconfig EFI_STUB 6168c2ecf20Sopenharmony_ci bool "EFI stub support" 6178c2ecf20Sopenharmony_ci default y 6188c2ecf20Sopenharmony_ci depends on EFI 6198c2ecf20Sopenharmony_ci select EFI_GENERIC_STUB 6208c2ecf20Sopenharmony_ci help 6218c2ecf20Sopenharmony_ci This kernel feature allows a vmlinuz.efi to be loaded directly 6228c2ecf20Sopenharmony_ci by EFI firmware without the use of a bootloader. 6238c2ecf20Sopenharmony_ci 6248c2ecf20Sopenharmony_ciconfig SCHED_SMT 6258c2ecf20Sopenharmony_ci bool "SMT scheduler support" 6268c2ecf20Sopenharmony_ci default y 6278c2ecf20Sopenharmony_ci help 6288c2ecf20Sopenharmony_ci Improves scheduler's performance when there are multiple 6298c2ecf20Sopenharmony_ci threads in one physical core. 6308c2ecf20Sopenharmony_ci 6318c2ecf20Sopenharmony_ciconfig SMP 6328c2ecf20Sopenharmony_ci bool "Multi-Processing support" 6338c2ecf20Sopenharmony_ci depends on SYS_SUPPORTS_SMP 6348c2ecf20Sopenharmony_ci help 6358c2ecf20Sopenharmony_ci This enables support for systems with more than one CPU. If you have 6368c2ecf20Sopenharmony_ci a system with only one CPU, say N. If you have a system with more 6378c2ecf20Sopenharmony_ci than one CPU, say Y. 6388c2ecf20Sopenharmony_ci 6398c2ecf20Sopenharmony_ci If you say N here, the kernel will run on uni- and multiprocessor 6408c2ecf20Sopenharmony_ci machines, but will use only one CPU of a multiprocessor machine. If 6418c2ecf20Sopenharmony_ci you say Y here, the kernel will run on many, but not all, 6428c2ecf20Sopenharmony_ci uniprocessor machines. On a uniprocessor machine, the kernel 6438c2ecf20Sopenharmony_ci will run faster if you say N here. 6448c2ecf20Sopenharmony_ci 6458c2ecf20Sopenharmony_ci See also the SMP-HOWTO available at <http://www.tldp.org/docs.html#howto>. 6468c2ecf20Sopenharmony_ci 6478c2ecf20Sopenharmony_ci If you don't know what to do here, say N. 6488c2ecf20Sopenharmony_ci 6498c2ecf20Sopenharmony_ciconfig HOTPLUG_CPU 6508c2ecf20Sopenharmony_ci bool "Support for hot-pluggable CPUs" 6518c2ecf20Sopenharmony_ci select GENERIC_IRQ_MIGRATION 6528c2ecf20Sopenharmony_ci depends on SMP && SYS_SUPPORTS_HOTPLUG_CPU 6538c2ecf20Sopenharmony_ci help 6548c2ecf20Sopenharmony_ci Say Y here to allow turning CPUs off and on. CPUs can be 6558c2ecf20Sopenharmony_ci controlled through /sys/devices/system/cpu. 6568c2ecf20Sopenharmony_ci (Note: power management support will enable this option 6578c2ecf20Sopenharmony_ci automatically on SMP systems. ) 6588c2ecf20Sopenharmony_ci Say N if you want to disable CPU hotplug. 6598c2ecf20Sopenharmony_ci 6608c2ecf20Sopenharmony_ciconfig SYS_SUPPORTS_SMP 6618c2ecf20Sopenharmony_ci bool 6628c2ecf20Sopenharmony_ci 6638c2ecf20Sopenharmony_ciconfig NR_CPUS_DEFAULT_4 6648c2ecf20Sopenharmony_ci bool 6658c2ecf20Sopenharmony_ci 6668c2ecf20Sopenharmony_ciconfig NR_CPUS_DEFAULT_8 6678c2ecf20Sopenharmony_ci bool 6688c2ecf20Sopenharmony_ci 6698c2ecf20Sopenharmony_ciconfig NR_CPUS_DEFAULT_16 6708c2ecf20Sopenharmony_ci bool 6718c2ecf20Sopenharmony_ci 6728c2ecf20Sopenharmony_ciconfig NR_CPUS_DEFAULT_32 6738c2ecf20Sopenharmony_ci bool 6748c2ecf20Sopenharmony_ci 6758c2ecf20Sopenharmony_ciconfig NR_CPUS_DEFAULT_64 6768c2ecf20Sopenharmony_ci bool 6778c2ecf20Sopenharmony_ci 6788c2ecf20Sopenharmony_ciconfig NR_CPUS 6798c2ecf20Sopenharmony_ci int "Maximum number of CPUs (2-256)" 6808c2ecf20Sopenharmony_ci range 2 256 6818c2ecf20Sopenharmony_ci depends on SMP 6828c2ecf20Sopenharmony_ci default "4" if NR_CPUS_DEFAULT_4 6838c2ecf20Sopenharmony_ci default "8" if NR_CPUS_DEFAULT_8 6848c2ecf20Sopenharmony_ci default "16" if NR_CPUS_DEFAULT_16 6858c2ecf20Sopenharmony_ci default "32" if NR_CPUS_DEFAULT_32 6868c2ecf20Sopenharmony_ci default "64" if NR_CPUS_DEFAULT_64 6878c2ecf20Sopenharmony_ci help 6888c2ecf20Sopenharmony_ci This allows you to specify the maximum number of CPUs which this 6898c2ecf20Sopenharmony_ci kernel will support. The maximum supported value is 32 for 32-bit 6908c2ecf20Sopenharmony_ci kernel and 64 for 64-bit kernels; the minimum value which makes 6918c2ecf20Sopenharmony_ci sense is 1 for Qemu (useful only for kernel debugging purposes) 6928c2ecf20Sopenharmony_ci and 2 for all others. 6938c2ecf20Sopenharmony_ci 6948c2ecf20Sopenharmony_ci This is purely to save memory - each supported CPU adds 6958c2ecf20Sopenharmony_ci approximately eight kilobytes to the kernel image. For best 6968c2ecf20Sopenharmony_ci performance should round up your number of processors to the next 6978c2ecf20Sopenharmony_ci power of two. 6988c2ecf20Sopenharmony_ci 6998c2ecf20Sopenharmony_cisource "kernel/Kconfig.hz" 7008c2ecf20Sopenharmony_ci 7018c2ecf20Sopenharmony_ciconfig KEXEC 7028c2ecf20Sopenharmony_ci bool "Kexec system call" 7038c2ecf20Sopenharmony_ci select KEXEC_CORE 7048c2ecf20Sopenharmony_ci help 7058c2ecf20Sopenharmony_ci kexec is a system call that implements the ability to shutdown your 7068c2ecf20Sopenharmony_ci current kernel, and to start another kernel. It is like a reboot 7078c2ecf20Sopenharmony_ci but it is independent of the system firmware. And like a reboot 7088c2ecf20Sopenharmony_ci you can start any kernel with it, not just Linux. 7098c2ecf20Sopenharmony_ci 7108c2ecf20Sopenharmony_ci The name comes from the similarity to the exec system call. 7118c2ecf20Sopenharmony_ci 7128c2ecf20Sopenharmony_ciconfig CRASH_DUMP 7138c2ecf20Sopenharmony_ci bool "Build kdump crash kernel" 7148c2ecf20Sopenharmony_ci select RELOCATABLE 7158c2ecf20Sopenharmony_ci help 7168c2ecf20Sopenharmony_ci Generate crash dump after being started by kexec. This should 7178c2ecf20Sopenharmony_ci be normally only set in special crash dump kernels which are 7188c2ecf20Sopenharmony_ci loaded in the main kernel with kexec-tools into a specially 7198c2ecf20Sopenharmony_ci reserved region and then later executed after a crash by 7208c2ecf20Sopenharmony_ci kdump/kexec. 7218c2ecf20Sopenharmony_ci 7228c2ecf20Sopenharmony_ci For more details see Documentation/admin-guide/kdump/kdump.rst 7238c2ecf20Sopenharmony_ci 7248c2ecf20Sopenharmony_ciconfig ARCH_IOREMAP 7258c2ecf20Sopenharmony_ci bool "Enable LoongArch DMW-based ioremap()" 7268c2ecf20Sopenharmony_ci help 7278c2ecf20Sopenharmony_ci We use generic TLB-based ioremap() by default since it has page 7288c2ecf20Sopenharmony_ci protection support. However, you can enable LoongArch DMW-based 7298c2ecf20Sopenharmony_ci ioremap() for better performance. 7308c2ecf20Sopenharmony_ci 7318c2ecf20Sopenharmony_ciconfig ARCH_WRITECOMBINE 7328c2ecf20Sopenharmony_ci bool "Enable WriteCombine (WUC) for ioremap()" 7338c2ecf20Sopenharmony_ci help 7348c2ecf20Sopenharmony_ci LoongArch maintains cache coherency in hardware, but when paired 7358c2ecf20Sopenharmony_ci with LS7A chipsets the WUC attribute (Weak-ordered UnCached, which 7368c2ecf20Sopenharmony_ci is similar to WriteCombine) is out of the scope of cache coherency 7378c2ecf20Sopenharmony_ci machanism for PCIe devices (this is a PCIe protocol violation, which 7388c2ecf20Sopenharmony_ci may be fixed in newer chipsets). 7398c2ecf20Sopenharmony_ci 7408c2ecf20Sopenharmony_ci This means WUC can only used for write-only memory regions now, so 7418c2ecf20Sopenharmony_ci this option is disabled by default, making WUC silently fallback to 7428c2ecf20Sopenharmony_ci SUC for ioremap(). You can enable this option if the kernel is ensured 7438c2ecf20Sopenharmony_ci to run on hardware without this bug. 7448c2ecf20Sopenharmony_ci 7458c2ecf20Sopenharmony_ci You can override this setting via writecombine=on/off boot parameter. 7468c2ecf20Sopenharmony_ci 7478c2ecf20Sopenharmony_ciconfig ARCH_STRICT_ALIGN 7488c2ecf20Sopenharmony_ci bool "Enable -mstrict-align to prevent unaligned accesses" if EXPERT 7498c2ecf20Sopenharmony_ci default y 7508c2ecf20Sopenharmony_ci help 7518c2ecf20Sopenharmony_ci Not all LoongArch cores support h/w unaligned access, we can use 7528c2ecf20Sopenharmony_ci -mstrict-align build parameter to prevent unaligned accesses. 7538c2ecf20Sopenharmony_ci 7548c2ecf20Sopenharmony_ci CPUs with h/w unaligned access support: 7558c2ecf20Sopenharmony_ci Loongson-2K2000/2K3000/3A5000/3C5000/3D5000. 7568c2ecf20Sopenharmony_ci 7578c2ecf20Sopenharmony_ci CPUs without h/w unaligned access support: 7588c2ecf20Sopenharmony_ci Loongson-2K500/2K1000. 7598c2ecf20Sopenharmony_ci 7608c2ecf20Sopenharmony_ci This option is enabled by default to make the kernel be able to run 7618c2ecf20Sopenharmony_ci on all LoongArch systems. But you can disable it manually if you want 7628c2ecf20Sopenharmony_ci to run kernel only on systems with h/w unaligned access support in 7638c2ecf20Sopenharmony_ci order to optimise for performance. 7648c2ecf20Sopenharmony_ci 7658c2ecf20Sopenharmony_ciconfig USE_OF 7668c2ecf20Sopenharmony_ci bool 7678c2ecf20Sopenharmony_ci select OF 7688c2ecf20Sopenharmony_ci select OF_EARLY_FLATTREE 7698c2ecf20Sopenharmony_ci select IRQ_DOMAIN 7708c2ecf20Sopenharmony_ci 7718c2ecf20Sopenharmony_ciconfig BUILTIN_DTB 7728c2ecf20Sopenharmony_ci bool 7738c2ecf20Sopenharmony_ci 7748c2ecf20Sopenharmony_cisource "kernel/livepatch/Kconfig" 7758c2ecf20Sopenharmony_ci 7768c2ecf20Sopenharmony_ciendmenu 7778c2ecf20Sopenharmony_ci 7788c2ecf20Sopenharmony_ciconfig ARCH_ENABLE_MEMORY_HOTPLUG 7798c2ecf20Sopenharmony_ci def_bool y 7808c2ecf20Sopenharmony_ci depends on LOONGARCH 7818c2ecf20Sopenharmony_ci 7828c2ecf20Sopenharmony_ciconfig ARCH_ENABLE_MEMORY_HOTREMOVE 7838c2ecf20Sopenharmony_ci def_bool y 7848c2ecf20Sopenharmony_ci depends on MEMORY_HOTPLUG 7858c2ecf20Sopenharmony_ci 7868c2ecf20Sopenharmony_ciconfig ARCH_ENABLE_THP_MIGRATION 7878c2ecf20Sopenharmony_ci def_bool y 7888c2ecf20Sopenharmony_ci depends on TRANSPARENT_HUGEPAGE 7898c2ecf20Sopenharmony_ci 7908c2ecf20Sopenharmony_ciconfig ARCH_MEMORY_PROBE 7918c2ecf20Sopenharmony_ci def_bool y 7928c2ecf20Sopenharmony_ci depends on MEMORY_HOTPLUG 7938c2ecf20Sopenharmony_ci 7948c2ecf20Sopenharmony_ciconfig GENERIC_BUG 7958c2ecf20Sopenharmony_ci def_bool y 7968c2ecf20Sopenharmony_ci depends on BUG 7978c2ecf20Sopenharmony_ci 7988c2ecf20Sopenharmony_ciconfig GENERIC_BUG_RELATIVE_POINTERS 7998c2ecf20Sopenharmony_ci def_bool y 8008c2ecf20Sopenharmony_ci depends on GENERIC_BUG 8018c2ecf20Sopenharmony_ci 8028c2ecf20Sopenharmony_ciconfig LOCKDEP_SUPPORT 8038c2ecf20Sopenharmony_ci bool 8048c2ecf20Sopenharmony_ci default y 8058c2ecf20Sopenharmony_ci 8068c2ecf20Sopenharmony_ciconfig STACKTRACE_SUPPORT 8078c2ecf20Sopenharmony_ci bool 8088c2ecf20Sopenharmony_ci default y 8098c2ecf20Sopenharmony_ci 8108c2ecf20Sopenharmony_ciconfig TRACE_IRQFLAGS_SUPPORT 8118c2ecf20Sopenharmony_ci bool 8128c2ecf20Sopenharmony_ci default y 8138c2ecf20Sopenharmony_ci 8148c2ecf20Sopenharmony_ciconfig MMU 8158c2ecf20Sopenharmony_ci bool 8168c2ecf20Sopenharmony_ci default y 8178c2ecf20Sopenharmony_ci 8188c2ecf20Sopenharmony_ciconfig ARCH_MMAP_RND_BITS_MIN 8198c2ecf20Sopenharmony_ci default 12 if 64BIT 8208c2ecf20Sopenharmony_ci default 8 8218c2ecf20Sopenharmony_ci 8228c2ecf20Sopenharmony_ciconfig ARCH_MMAP_RND_BITS_MAX 8238c2ecf20Sopenharmony_ci default 18 if 64BIT 8248c2ecf20Sopenharmony_ci default 15 8258c2ecf20Sopenharmony_ci 8268c2ecf20Sopenharmony_ciconfig ZONE_DMA 8278c2ecf20Sopenharmony_ci bool 8288c2ecf20Sopenharmony_ci 8298c2ecf20Sopenharmony_ciconfig ZONE_DMA32 8308c2ecf20Sopenharmony_ci bool 8318c2ecf20Sopenharmony_ci 8328c2ecf20Sopenharmony_ciconfig KASAN_SHADOW_OFFSET 8338c2ecf20Sopenharmony_ci hex 8348c2ecf20Sopenharmony_ci default 0x0 8358c2ecf20Sopenharmony_ci depends on KASAN 8368c2ecf20Sopenharmony_ci 8378c2ecf20Sopenharmony_cimenu "Power management options" 8388c2ecf20Sopenharmony_ci 8398c2ecf20Sopenharmony_ciconfig ARCH_SUSPEND_POSSIBLE 8408c2ecf20Sopenharmony_ci def_bool y 8418c2ecf20Sopenharmony_ci depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP 8428c2ecf20Sopenharmony_ci 8438c2ecf20Sopenharmony_ciconfig ARCH_HIBERNATION_POSSIBLE 8448c2ecf20Sopenharmony_ci def_bool y 8458c2ecf20Sopenharmony_ci depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP 8468c2ecf20Sopenharmony_ci 8478c2ecf20Sopenharmony_cisource "kernel/power/Kconfig" 8488c2ecf20Sopenharmony_cisource "drivers/acpi/Kconfig" 8498c2ecf20Sopenharmony_cisource "drivers/cpufreq/Kconfig" 8508c2ecf20Sopenharmony_ci 8518c2ecf20Sopenharmony_ciendmenu 8528c2ecf20Sopenharmony_ci 8538c2ecf20Sopenharmony_cisource "drivers/firmware/Kconfig" 8548c2ecf20Sopenharmony_cisource "arch/loongarch/kvm/Kconfig" 8558c2ecf20Sopenharmony_ci 8568c2ecf20Sopenharmony_ciconfig PARAVIRT 8578c2ecf20Sopenharmony_ci bool "Enable paravirtualization code" 8588c2ecf20Sopenharmony_ci help 8598c2ecf20Sopenharmony_ci This changes the kernel so it can modify itself when it is run 8608c2ecf20Sopenharmony_ci under a hypervisor, potentially improving performance significantly 8618c2ecf20Sopenharmony_ci over full virtualization. 8628c2ecf20Sopenharmony_ci 8638c2ecf20Sopenharmony_ciconfig PARAVIRT_SPINLOCKS 8648c2ecf20Sopenharmony_ci bool "Paravirtualization layer for spinlocks" 8658c2ecf20Sopenharmony_ci depends on PARAVIRT && SMP 8668c2ecf20Sopenharmony_ci help 8678c2ecf20Sopenharmony_ci Paravirtualized spinlocks allow a pvops backend to replace the 8688c2ecf20Sopenharmony_ci spinlock implementation with something virtualization-friendly 8698c2ecf20Sopenharmony_ci (for example, block the virtual CPU rather than spinning). 8708c2ecf20Sopenharmony_ci 8718c2ecf20Sopenharmony_ci It has a minimal impact on native kernels and gives a nice performance 8728c2ecf20Sopenharmony_ci benefit on paravirtualized KVM kernels. 8738c2ecf20Sopenharmony_ci 8748c2ecf20Sopenharmony_ci If you are unsure how to answer this question, answer Y. 8758c2ecf20Sopenharmony_ci 8768c2ecf20Sopenharmony_ciconfig QUEUED_LOCK_STAT 8778c2ecf20Sopenharmony_ci bool "Paravirt queued spinlock statistics" 8788c2ecf20Sopenharmony_ci depends on PARAVIRT_SPINLOCKS && DEBUG_FS 8798c2ecf20Sopenharmony_ci help 8808c2ecf20Sopenharmony_ci Enable the collection of statistical data on the slowpath 8818c2ecf20Sopenharmony_ci behavior of paravirtualized queued spinlocks and report 8828c2ecf20Sopenharmony_ci them on debugfs. 8838c2ecf20Sopenharmony_ci 8848c2ecf20Sopenharmony_ciconfig PARAVIRT_TIME_ACCOUNTING 8858c2ecf20Sopenharmony_ci bool "Paravirtual steal time accounting" 8868c2ecf20Sopenharmony_ci select PARAVIRT 8878c2ecf20Sopenharmony_ci default n 8888c2ecf20Sopenharmony_ci help 8898c2ecf20Sopenharmony_ci Select this option to enable fine granularity task steal time 8908c2ecf20Sopenharmony_ci accounting. Time spent executing other tasks in parallel with 8918c2ecf20Sopenharmony_ci the current vCPU is discounted from the vCPU power. To account for 8928c2ecf20Sopenharmony_ci that, there can be a small performance impact. 8938c2ecf20Sopenharmony_ci 8948c2ecf20Sopenharmony_ci If in doubt, say N here. 895