Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 1 | # SPDX-License-Identifier: GPL-2.0 |
| 2 | config LOONGARCH |
| 3 | bool |
| 4 | default y |
Huacai Chen | f30d1f4 | 2022-08-06 15:19:32 +0800 | [diff] [blame] | 5 | select ACPI |
Jianmin Lv | cd05766 | 2022-07-20 18:51:24 +0800 | [diff] [blame] | 6 | select ACPI_GENERIC_GSI if ACPI |
Huacai Chen | 57fc732 | 2022-08-06 15:19:33 +0800 | [diff] [blame] | 7 | select ACPI_MCFG if ACPI |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 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 |
Paul E. McKenney | 3f48f3d | 2022-09-28 11:21:54 -0700 | [diff] [blame] | 13 | select ARCH_HAS_NMI_SAFE_THIS_CPU_OPS |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 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 |
Huacai Chen | e0fba87 | 2022-09-02 22:33:42 +0800 | [diff] [blame] | 42 | select ARCH_KEEP_MEMBLOCK |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 43 | select ARCH_MIGHT_HAVE_PC_PARPORT |
| 44 | select ARCH_MIGHT_HAVE_PC_SERIO |
| 45 | select ARCH_SPARSEMEM_ENABLE |
Qing Zhang | 93a4fa6 | 2022-08-06 16:10:04 +0800 | [diff] [blame] | 46 | select ARCH_STACKWALK |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 47 | select ARCH_SUPPORTS_ACPI |
| 48 | select ARCH_SUPPORTS_ATOMIC_RMW |
| 49 | select ARCH_SUPPORTS_HUGETLBFS |
Huacai Chen | d4b6f156 | 2022-05-31 18:04:12 +0800 | [diff] [blame] | 50 | select ARCH_SUPPORTS_NUMA_BALANCING |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 51 | select ARCH_USE_BUILTIN_BSWAP |
| 52 | select ARCH_USE_CMPXCHG_LOCKREF |
| 53 | select ARCH_USE_QUEUED_RWLOCKS |
Huacai Chen | 5f1e001 | 2022-10-12 16:36:14 +0800 | [diff] [blame] | 54 | select ARCH_USE_QUEUED_SPINLOCKS |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 55 | select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT |
Feiyang Chen | c5a303a | 2022-10-27 20:52:53 +0800 | [diff] [blame] | 56 | select ARCH_WANT_HUGETLB_PAGE_OPTIMIZE_VMEMMAP |
Ard Biesheuvel | 1429cfd | 2022-08-24 17:31:10 +0200 | [diff] [blame] | 57 | select ARCH_WANT_LD_ORPHAN_WARN |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 58 | select ARCH_WANTS_NO_INSTR |
| 59 | select BUILDTIME_TABLE_SORT |
| 60 | select COMMON_CLK |
Huacai Chen | 366bb35 | 2022-12-10 22:40:15 +0800 | [diff] [blame] | 61 | select CPU_PM |
Huacai Chen | f30d1f4 | 2022-08-06 15:19:32 +0800 | [diff] [blame] | 62 | select EFI |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 63 | select GENERIC_CLOCKEVENTS |
| 64 | select GENERIC_CMOS_UPDATE |
| 65 | select GENERIC_CPU_AUTOPROBE |
| 66 | select GENERIC_ENTRY |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 67 | select GENERIC_GETTIMEOFDAY |
Huacai Chen | d279134 | 2022-10-12 16:36:14 +0800 | [diff] [blame] | 68 | select GENERIC_IOREMAP if !ARCH_IOREMAP |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 69 | select GENERIC_IRQ_MULTI_HANDLER |
| 70 | select GENERIC_IRQ_PROBE |
| 71 | select GENERIC_IRQ_SHOW |
| 72 | select GENERIC_LIB_ASHLDI3 |
| 73 | select GENERIC_LIB_ASHRDI3 |
| 74 | select GENERIC_LIB_CMPDI2 |
| 75 | select GENERIC_LIB_LSHRDI3 |
| 76 | select GENERIC_LIB_UCMPDI2 |
Huacai Chen | 235d074 | 2022-10-12 16:36:14 +0800 | [diff] [blame] | 77 | select GENERIC_LIB_DEVMEM_IS_ALLOWED |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 78 | select GENERIC_PCI_IOMAP |
| 79 | select GENERIC_SCHED_CLOCK |
Huacai Chen | 46859ac | 2022-05-31 18:04:12 +0800 | [diff] [blame] | 80 | select GENERIC_SMP_IDLE_THREAD |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 81 | select GENERIC_TIME_VSYSCALL |
| 82 | select GPIOLIB |
Niklas Schnelle | fcbfe81 | 2023-03-23 17:33:52 +0100 | [diff] [blame] | 83 | select HAS_IOPORT |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 84 | select HAVE_ARCH_AUDITSYSCALL |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 85 | select HAVE_ARCH_MMAP_RND_BITS if MMU |
| 86 | select HAVE_ARCH_SECCOMP_FILTER |
| 87 | select HAVE_ARCH_TRACEHOOK |
| 88 | select HAVE_ARCH_TRANSPARENT_HUGEPAGE |
| 89 | select HAVE_ASM_MODVERSIONS |
Frederic Weisbecker | 24a9c541 | 2022-06-08 16:40:24 +0200 | [diff] [blame] | 90 | select HAVE_CONTEXT_TRACKING_USER |
Qing Zhang | a0a458f | 2022-12-10 22:40:15 +0800 | [diff] [blame] | 91 | select HAVE_C_RECORDMCOUNT |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 92 | select HAVE_DEBUG_STACKOVERFLOW |
| 93 | select HAVE_DMA_CONTIGUOUS |
Qing Zhang | 4733f09 | 2022-12-10 22:40:15 +0800 | [diff] [blame] | 94 | select HAVE_DYNAMIC_FTRACE |
Qing Zhang | ac7127e | 2022-12-10 22:40:16 +0800 | [diff] [blame] | 95 | select HAVE_DYNAMIC_FTRACE_WITH_ARGS |
Qing Zhang | 8778ba2 | 2022-12-10 22:40:15 +0800 | [diff] [blame] | 96 | select HAVE_DYNAMIC_FTRACE_WITH_REGS |
Tiezhu Yang | 5dc6155 | 2022-10-12 16:36:20 +0800 | [diff] [blame] | 97 | select HAVE_EBPF_JIT |
Huacai Chen | 4159680 | 2023-02-25 15:52:56 +0800 | [diff] [blame] | 98 | select HAVE_EFFICIENT_UNALIGNED_ACCESS if !ARCH_STRICT_ALIGN |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 99 | select HAVE_EXIT_THREAD |
| 100 | select HAVE_FAST_GUP |
Qing Zhang | a0a458f | 2022-12-10 22:40:15 +0800 | [diff] [blame] | 101 | select HAVE_FTRACE_MCOUNT_RECORD |
Qing Zhang | 356bd6f | 2023-02-25 15:52:57 +0800 | [diff] [blame] | 102 | select HAVE_FUNCTION_ARG_ACCESS_API |
Qing Zhang | dbe3ba3 | 2022-12-10 22:40:15 +0800 | [diff] [blame] | 103 | select HAVE_FUNCTION_GRAPH_TRACER |
| 104 | select HAVE_FUNCTION_TRACER |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 105 | select HAVE_GENERIC_VDSO |
Qing Zhang | edffa33 | 2023-02-25 15:52:57 +0800 | [diff] [blame] | 106 | select HAVE_HW_BREAKPOINT if PERF_EVENTS |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 107 | select HAVE_IOREMAP_PROT |
| 108 | select HAVE_IRQ_EXIT_ON_IRQ_STACK |
| 109 | select HAVE_IRQ_TIME_ACCOUNTING |
Tiezhu Yang | 6d4cc40 | 2023-02-25 15:52:57 +0800 | [diff] [blame] | 110 | select HAVE_KPROBES |
Tiezhu Yang | 09e679c | 2023-02-25 15:52:57 +0800 | [diff] [blame] | 111 | select HAVE_KPROBES_ON_FTRACE |
Tiezhu Yang | 3f55368 | 2023-02-25 15:52:57 +0800 | [diff] [blame] | 112 | select HAVE_KRETPROBES |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 113 | select HAVE_MOD_ARCH_SPECIFIC |
| 114 | select HAVE_NMI |
Huacai Chen | 57fc732 | 2022-08-06 15:19:33 +0800 | [diff] [blame] | 115 | select HAVE_PCI |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 116 | select HAVE_PERF_EVENTS |
Huacai Chen | b37042b | 2022-10-12 16:36:14 +0800 | [diff] [blame] | 117 | select HAVE_PERF_REGS |
| 118 | select HAVE_PERF_USER_STACK_DUMP |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 119 | select HAVE_REGS_AND_STACK_ACCESS_API |
| 120 | select HAVE_RSEQ |
Huacai Chen | d4b6f156 | 2022-05-31 18:04:12 +0800 | [diff] [blame] | 121 | select HAVE_SETUP_PER_CPU_AREA if NUMA |
Huacai Chen | 09f3360 | 2022-12-10 22:40:15 +0800 | [diff] [blame] | 122 | select HAVE_STACKPROTECTOR |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 123 | select HAVE_SYSCALL_TRACEPOINTS |
| 124 | select HAVE_TIF_NOHZ |
Huacai Chen | 46859ac | 2022-05-31 18:04:12 +0800 | [diff] [blame] | 125 | select HAVE_VIRT_CPU_ACCOUNTING_GEN if !SMP |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 126 | select IRQ_FORCED_THREADING |
| 127 | select IRQ_LOONGARCH_CPU |
Huacai Chen | f30d1f4 | 2022-08-06 15:19:32 +0800 | [diff] [blame] | 128 | select MMU_GATHER_MERGE_VMAS if MMU |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 129 | select MODULES_USE_ELF_RELA if MODULES |
Huacai Chen | d4b6f156 | 2022-05-31 18:04:12 +0800 | [diff] [blame] | 130 | select NEED_PER_CPU_EMBED_FIRST_CHUNK |
| 131 | select NEED_PER_CPU_PAGE_FIRST_CHUNK |
Binbin Zhou | 88d4d95 | 2022-12-10 22:40:05 +0800 | [diff] [blame] | 132 | select OF |
| 133 | select OF_EARLY_FLATTREE |
Huacai Chen | 57fc732 | 2022-08-06 15:19:33 +0800 | [diff] [blame] | 134 | select PCI |
| 135 | select PCI_DOMAINS_GENERIC |
| 136 | select PCI_ECAM if ACPI |
| 137 | select PCI_LOONGSON |
| 138 | select PCI_MSI_ARCH_FALLBACKS |
Huacai Chen | 7c12bb8 | 2022-08-25 19:34:59 +0800 | [diff] [blame] | 139 | select PCI_QUIRKS |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 140 | select PERF_USE_VMALLOC |
| 141 | select RTC_LIB |
Huacai Chen | f30d1f4 | 2022-08-06 15:19:32 +0800 | [diff] [blame] | 142 | select SMP |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 143 | select SPARSE_IRQ |
Huacai Chen | 61a6fcc | 2022-12-10 22:39:59 +0800 | [diff] [blame] | 144 | select SYSCTL_ARCH_UNALIGN_ALLOW |
| 145 | select SYSCTL_ARCH_UNALIGN_NO_WARN |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 146 | select SYSCTL_EXCEPTION_TRACE |
| 147 | select SWIOTLB |
| 148 | select TRACE_IRQFLAGS_SUPPORT |
Huacai Chen | d4b6f156 | 2022-05-31 18:04:12 +0800 | [diff] [blame] | 149 | select USE_PERCPU_NUMA_NODE_ID |
Qing Zhang | 4d7bf93 | 2022-08-06 16:10:05 +0800 | [diff] [blame] | 150 | select USER_STACKTRACE_SUPPORT |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 151 | select ZONE_DMA32 |
| 152 | |
| 153 | config 32BIT |
| 154 | bool |
| 155 | |
| 156 | config 64BIT |
| 157 | def_bool y |
| 158 | |
| 159 | config CPU_HAS_FPU |
| 160 | bool |
| 161 | default y |
| 162 | |
| 163 | config CPU_HAS_PREFETCH |
| 164 | bool |
| 165 | default y |
| 166 | |
Youling Tang | 2d2c395 | 2022-10-12 16:36:19 +0800 | [diff] [blame] | 167 | config GENERIC_BUG |
| 168 | def_bool y |
| 169 | depends on BUG |
| 170 | |
| 171 | config GENERIC_BUG_RELATIVE_POINTERS |
| 172 | def_bool y |
| 173 | depends on GENERIC_BUG |
| 174 | |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 175 | config GENERIC_CALIBRATE_DELAY |
| 176 | def_bool y |
| 177 | |
| 178 | config GENERIC_CSUM |
| 179 | def_bool y |
| 180 | |
| 181 | config GENERIC_HWEIGHT |
| 182 | def_bool y |
| 183 | |
| 184 | config L1_CACHE_SHIFT |
| 185 | int |
| 186 | default "6" |
| 187 | |
| 188 | config LOCKDEP_SUPPORT |
| 189 | bool |
| 190 | default y |
| 191 | |
Qing Zhang | 93a4fa6 | 2022-08-06 16:10:04 +0800 | [diff] [blame] | 192 | config STACKTRACE_SUPPORT |
| 193 | bool |
| 194 | default y |
| 195 | |
Colin Ian King | 9550dfd | 2022-10-12 16:36:08 +0800 | [diff] [blame] | 196 | # MACH_LOONGSON32 and MACH_LOONGSON64 are deliberately carried over from the |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 197 | # MIPS Loongson code, to preserve Loongson-specific code paths in drivers that |
| 198 | # are shared between architectures, and specifically expecting the symbols. |
| 199 | config MACH_LOONGSON32 |
| 200 | def_bool 32BIT |
| 201 | |
| 202 | config MACH_LOONGSON64 |
| 203 | def_bool 64BIT |
| 204 | |
Huacai Chen | d279134 | 2022-10-12 16:36:14 +0800 | [diff] [blame] | 205 | config FIX_EARLYCON_MEM |
| 206 | def_bool y |
| 207 | |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 208 | config PAGE_SIZE_4KB |
| 209 | bool |
| 210 | |
| 211 | config PAGE_SIZE_16KB |
| 212 | bool |
| 213 | |
| 214 | config PAGE_SIZE_64KB |
| 215 | bool |
| 216 | |
| 217 | config PGTABLE_2LEVEL |
| 218 | bool |
| 219 | |
| 220 | config PGTABLE_3LEVEL |
| 221 | bool |
| 222 | |
| 223 | config PGTABLE_4LEVEL |
| 224 | bool |
| 225 | |
| 226 | config PGTABLE_LEVELS |
| 227 | int |
| 228 | default 2 if PGTABLE_2LEVEL |
| 229 | default 3 if PGTABLE_3LEVEL |
| 230 | default 4 if PGTABLE_4LEVEL |
| 231 | |
| 232 | config SCHED_OMIT_FRAME_POINTER |
| 233 | bool |
| 234 | default y |
| 235 | |
Xi Ruoyao | 0d8dad7 | 2022-10-12 16:36:08 +0800 | [diff] [blame] | 236 | config AS_HAS_EXPLICIT_RELOCS |
| 237 | def_bool $(as-instr,x:pcalau12i \$t0$(comma)%pc_hi20(x)) |
| 238 | |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 239 | menu "Kernel type and options" |
| 240 | |
| 241 | source "kernel/Kconfig.hz" |
| 242 | |
| 243 | choice |
| 244 | prompt "Page Table Layout" |
| 245 | default 16KB_2LEVEL if 32BIT |
| 246 | default 16KB_3LEVEL if 64BIT |
| 247 | help |
| 248 | Allows choosing the page table layout, which is a combination |
| 249 | of page size and page table levels. The size of virtual memory |
| 250 | address space are determined by the page table layout. |
| 251 | |
| 252 | config 4KB_3LEVEL |
| 253 | bool "4KB with 3 levels" |
| 254 | select PAGE_SIZE_4KB |
| 255 | select PGTABLE_3LEVEL |
| 256 | help |
| 257 | This option selects 4KB page size with 3 level page tables, which |
| 258 | support a maximum of 39 bits of application virtual memory. |
| 259 | |
| 260 | config 4KB_4LEVEL |
| 261 | bool "4KB with 4 levels" |
| 262 | select PAGE_SIZE_4KB |
| 263 | select PGTABLE_4LEVEL |
| 264 | help |
| 265 | This option selects 4KB page size with 4 level page tables, which |
| 266 | support a maximum of 48 bits of application virtual memory. |
| 267 | |
| 268 | config 16KB_2LEVEL |
| 269 | bool "16KB with 2 levels" |
| 270 | select PAGE_SIZE_16KB |
| 271 | select PGTABLE_2LEVEL |
| 272 | help |
| 273 | This option selects 16KB page size with 2 level page tables, which |
| 274 | support a maximum of 36 bits of application virtual memory. |
| 275 | |
| 276 | config 16KB_3LEVEL |
| 277 | bool "16KB with 3 levels" |
| 278 | select PAGE_SIZE_16KB |
| 279 | select PGTABLE_3LEVEL |
| 280 | help |
| 281 | This option selects 16KB page size with 3 level page tables, which |
| 282 | support a maximum of 47 bits of application virtual memory. |
| 283 | |
| 284 | config 64KB_2LEVEL |
| 285 | bool "64KB with 2 levels" |
| 286 | select PAGE_SIZE_64KB |
| 287 | select PGTABLE_2LEVEL |
| 288 | help |
| 289 | This option selects 64KB page size with 2 level page tables, which |
| 290 | support a maximum of 42 bits of application virtual memory. |
| 291 | |
| 292 | config 64KB_3LEVEL |
| 293 | bool "64KB with 3 levels" |
| 294 | select PAGE_SIZE_64KB |
| 295 | select PGTABLE_3LEVEL |
| 296 | help |
| 297 | This option selects 64KB page size with 3 level page tables, which |
| 298 | support a maximum of 55 bits of application virtual memory. |
| 299 | |
| 300 | endchoice |
| 301 | |
| 302 | config CMDLINE |
| 303 | string "Built-in kernel command line" |
| 304 | help |
| 305 | For most platforms, the arguments for the kernel's command line |
| 306 | are provided at run-time, during boot. However, there are cases |
| 307 | where either no arguments are being provided or the provided |
| 308 | arguments are insufficient or even invalid. |
| 309 | |
| 310 | When that occurs, it is possible to define a built-in command |
| 311 | line here and choose how the kernel should use it later on. |
| 312 | |
| 313 | choice |
| 314 | prompt "Kernel command line type" |
| 315 | default CMDLINE_BOOTLOADER |
| 316 | help |
| 317 | Choose how the kernel will handle the provided built-in command |
| 318 | line. |
| 319 | |
| 320 | config CMDLINE_BOOTLOADER |
| 321 | bool "Use bootloader kernel arguments if available" |
| 322 | help |
| 323 | Prefer the command-line passed by the boot loader if available. |
| 324 | Use the built-in command line as fallback in case we get nothing |
| 325 | during boot. This is the default behaviour. |
| 326 | |
| 327 | config CMDLINE_EXTEND |
| 328 | bool "Use built-in to extend bootloader kernel arguments" |
| 329 | help |
| 330 | The command-line arguments provided during boot will be |
| 331 | appended to the built-in command line. This is useful in |
| 332 | cases where the provided arguments are insufficient and |
| 333 | you don't want to or cannot modify them. |
| 334 | |
| 335 | config CMDLINE_FORCE |
| 336 | bool "Always use the built-in kernel command string" |
| 337 | help |
| 338 | Always use the built-in command line, even if we get one during |
| 339 | boot. This is useful in case you need to override the provided |
| 340 | command line on systems where you don't have or want control |
| 341 | over it. |
| 342 | |
| 343 | endchoice |
| 344 | |
| 345 | config DMI |
| 346 | bool "Enable DMI scanning" |
| 347 | select DMI_SCAN_MACHINE_NON_EFI_FALLBACK |
| 348 | default y |
| 349 | help |
| 350 | This enables SMBIOS/DMI feature for systems, and scanning of |
| 351 | DMI to identify machine quirks. |
| 352 | |
| 353 | config EFI |
| 354 | bool "EFI runtime service support" |
| 355 | select UCS2_STRING |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 356 | select EFI_RUNTIME_WRAPPERS |
| 357 | help |
| 358 | This enables the kernel to use EFI runtime services that are |
| 359 | available (such as the EFI variable services). |
| 360 | |
Huacai Chen | ead384d | 2022-08-19 18:20:37 +0800 | [diff] [blame] | 361 | config EFI_STUB |
| 362 | bool "EFI boot stub support" |
| 363 | default y |
| 364 | depends on EFI |
| 365 | select EFI_GENERIC_STUB |
| 366 | help |
| 367 | This kernel feature allows the kernel to be loaded directly by |
| 368 | EFI firmware without the use of a bootloader. |
| 369 | |
Huacai Chen | 46859ac | 2022-05-31 18:04:12 +0800 | [diff] [blame] | 370 | config SMP |
| 371 | bool "Multi-Processing support" |
| 372 | help |
| 373 | This enables support for systems with more than one CPU. If you have |
| 374 | a system with only one CPU, say N. If you have a system with more |
| 375 | than one CPU, say Y. |
| 376 | |
| 377 | If you say N here, the kernel will run on uni- and multiprocessor |
| 378 | machines, but will use only one CPU of a multiprocessor machine. If |
| 379 | you say Y here, the kernel will run on many, but not all, |
| 380 | uniprocessor machines. On a uniprocessor machine, the kernel |
| 381 | will run faster if you say N here. |
| 382 | |
| 383 | See also the SMP-HOWTO available at <http://www.tldp.org/docs.html#howto>. |
| 384 | |
| 385 | If you don't know what to do here, say N. |
| 386 | |
| 387 | config HOTPLUG_CPU |
| 388 | bool "Support for hot-pluggable CPUs" |
| 389 | depends on SMP |
| 390 | select GENERIC_IRQ_MIGRATION |
| 391 | help |
| 392 | Say Y here to allow turning CPUs off and on. CPUs can be |
| 393 | controlled through /sys/devices/system/cpu. |
| 394 | (Note: power management support will enable this option |
| 395 | automatically on SMP systems. ) |
| 396 | Say N if you want to disable CPU hotplug. |
| 397 | |
| 398 | config NR_CPUS |
| 399 | int "Maximum number of CPUs (2-256)" |
| 400 | range 2 256 |
| 401 | depends on SMP |
| 402 | default "64" |
| 403 | help |
| 404 | This allows you to specify the maximum number of CPUs which this |
| 405 | kernel will support. |
| 406 | |
Huacai Chen | d4b6f156 | 2022-05-31 18:04:12 +0800 | [diff] [blame] | 407 | config NUMA |
| 408 | bool "NUMA Support" |
Huacai Chen | 255b465 | 2022-06-05 16:19:53 +0800 | [diff] [blame] | 409 | select SMP |
Huacai Chen | d4b6f156 | 2022-05-31 18:04:12 +0800 | [diff] [blame] | 410 | select ACPI_NUMA if ACPI |
| 411 | help |
| 412 | Say Y to compile the kernel with NUMA (Non-Uniform Memory Access) |
| 413 | support. This option improves performance on systems with more |
| 414 | than one NUMA node; on single node systems it is generally better |
| 415 | to leave it disabled. |
| 416 | |
| 417 | config NODES_SHIFT |
| 418 | int |
| 419 | default "6" |
| 420 | depends on NUMA |
| 421 | |
Zi Yan | 0192445 | 2022-08-15 10:39:59 -0400 | [diff] [blame] | 422 | config ARCH_FORCE_MAX_ORDER |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 423 | int "Maximum zone order" |
| 424 | range 14 64 if PAGE_SIZE_64KB |
| 425 | default "14" if PAGE_SIZE_64KB |
| 426 | range 12 64 if PAGE_SIZE_16KB |
| 427 | default "12" if PAGE_SIZE_16KB |
| 428 | range 11 64 |
| 429 | default "11" |
| 430 | help |
| 431 | The kernel memory allocator divides physically contiguous memory |
| 432 | blocks into "zones", where each zone is a power of two number of |
| 433 | pages. This option selects the largest power of two that the kernel |
| 434 | keeps in the memory allocator. If you need to allocate very large |
| 435 | blocks of physically contiguous memory, then you may need to |
| 436 | increase this value. |
| 437 | |
| 438 | This config option is actually maximum order plus one. For example, |
| 439 | a value of 11 means that the largest free memory block is 2^10 pages. |
| 440 | |
| 441 | The page size is not necessarily 4KB. Keep this in mind |
| 442 | when choosing a value for this option. |
| 443 | |
Huacai Chen | d279134 | 2022-10-12 16:36:14 +0800 | [diff] [blame] | 444 | config ARCH_IOREMAP |
| 445 | bool "Enable LoongArch DMW-based ioremap()" |
| 446 | help |
| 447 | We use generic TLB-based ioremap() by default since it has page |
| 448 | protection support. However, you can enable LoongArch DMW-based |
| 449 | ioremap() for better performance. |
| 450 | |
Huacai Chen | 16c52e5 | 2023-04-18 19:38:58 +0800 | [diff] [blame] | 451 | config ARCH_WRITECOMBINE |
| 452 | bool "Enable WriteCombine (WUC) for ioremap()" |
| 453 | help |
| 454 | LoongArch maintains cache coherency in hardware, but when paired |
| 455 | with LS7A chipsets the WUC attribute (Weak-ordered UnCached, which |
| 456 | is similar to WriteCombine) is out of the scope of cache coherency |
| 457 | machanism for PCIe devices (this is a PCIe protocol violation, which |
| 458 | may be fixed in newer chipsets). |
| 459 | |
| 460 | This means WUC can only used for write-only memory regions now, so |
| 461 | this option is disabled by default, making WUC silently fallback to |
| 462 | SUC for ioremap(). You can enable this option if the kernel is ensured |
| 463 | to run on hardware without this bug. |
| 464 | |
| 465 | You can override this setting via writecombine=on/off boot parameter. |
| 466 | |
Huacai Chen | 4159680 | 2023-02-25 15:52:56 +0800 | [diff] [blame] | 467 | config ARCH_STRICT_ALIGN |
| 468 | bool "Enable -mstrict-align to prevent unaligned accesses" if EXPERT |
| 469 | default y |
| 470 | help |
| 471 | Not all LoongArch cores support h/w unaligned access, we can use |
| 472 | -mstrict-align build parameter to prevent unaligned accesses. |
| 473 | |
| 474 | CPUs with h/w unaligned access support: |
| 475 | Loongson-2K2000/2K3000/3A5000/3C5000/3D5000. |
| 476 | |
| 477 | CPUs without h/w unaligned access support: |
| 478 | Loongson-2K500/2K1000. |
| 479 | |
| 480 | This option is enabled by default to make the kernel be able to run |
| 481 | on all LoongArch systems. But you can disable it manually if you want |
| 482 | to run kernel only on systems with h/w unaligned access support in |
| 483 | order to optimise for performance. |
| 484 | |
Youling Tang | 4a03b2a | 2022-10-12 16:36:19 +0800 | [diff] [blame] | 485 | config KEXEC |
| 486 | bool "Kexec system call" |
| 487 | select KEXEC_CORE |
| 488 | help |
| 489 | kexec is a system call that implements the ability to shutdown your |
| 490 | current kernel, and to start another kernel. It is like a reboot |
| 491 | but it is independent of the system firmware. And like a reboot |
| 492 | you can start any kernel with it, not just Linux. |
| 493 | |
| 494 | The name comes from the similarity to the exec system call. |
| 495 | |
Youling Tang | 4e62d1d | 2022-10-12 16:36:19 +0800 | [diff] [blame] | 496 | config CRASH_DUMP |
| 497 | bool "Build kdump crash kernel" |
Youling Tang | 3f89765 | 2023-02-25 15:52:56 +0800 | [diff] [blame] | 498 | select RELOCATABLE |
Youling Tang | 4e62d1d | 2022-10-12 16:36:19 +0800 | [diff] [blame] | 499 | help |
| 500 | Generate crash dump after being started by kexec. This should |
| 501 | be normally only set in special crash dump kernels which are |
| 502 | loaded in the main kernel with kexec-tools into a specially |
| 503 | reserved region and then later executed after a crash by |
| 504 | kdump/kexec. |
| 505 | |
| 506 | For more details see Documentation/admin-guide/kdump/kdump.rst |
| 507 | |
Youling Tang | d8da19f | 2023-02-25 15:52:56 +0800 | [diff] [blame] | 508 | config RELOCATABLE |
| 509 | bool "Relocatable kernel" |
| 510 | help |
| 511 | This builds the kernel as a Position Independent Executable (PIE), |
| 512 | which retains all relocation metadata required, so as to relocate |
| 513 | the kernel binary at runtime to a different virtual address from |
| 514 | its link address. |
| 515 | |
Youling Tang | e5f02b5 | 2023-02-25 15:52:56 +0800 | [diff] [blame] | 516 | config RANDOMIZE_BASE |
| 517 | bool "Randomize the address of the kernel (KASLR)" |
| 518 | depends on RELOCATABLE |
| 519 | help |
| 520 | Randomizes the physical and virtual address at which the |
| 521 | kernel image is loaded, as a security feature that |
| 522 | deters exploit attempts relying on knowledge of the location |
| 523 | of kernel internals. |
| 524 | |
| 525 | The kernel will be offset by up to RANDOMIZE_BASE_MAX_OFFSET. |
| 526 | |
| 527 | If unsure, say N. |
| 528 | |
| 529 | config RANDOMIZE_BASE_MAX_OFFSET |
| 530 | hex "Maximum KASLR offset" if EXPERT |
| 531 | depends on RANDOMIZE_BASE |
| 532 | range 0x0 0x10000000 |
| 533 | default "0x01000000" |
| 534 | help |
| 535 | When KASLR is active, this provides the maximum offset that will |
| 536 | be applied to the kernel image. It should be set according to the |
| 537 | amount of physical RAM available in the target system. |
| 538 | |
| 539 | This is limited by the size of the lower address memory, 256MB. |
| 540 | |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 541 | config SECCOMP |
| 542 | bool "Enable seccomp to safely compute untrusted bytecode" |
| 543 | depends on PROC_FS |
| 544 | default y |
| 545 | help |
| 546 | This kernel feature is useful for number crunching applications |
| 547 | that may need to compute untrusted bytecode during their |
| 548 | execution. By using pipes or other transports made available to |
| 549 | the process as file descriptors supporting the read/write |
| 550 | syscalls, it's possible to isolate those applications in |
| 551 | their own address space using seccomp. Once seccomp is |
| 552 | enabled via /proc/<pid>/seccomp, it cannot be disabled |
| 553 | and the task is only allowed to execute a few safe syscalls |
| 554 | defined by each seccomp mode. |
| 555 | |
| 556 | If unsure, say Y. Only embedded should say N here. |
| 557 | |
| 558 | endmenu |
| 559 | |
| 560 | config ARCH_SELECT_MEMORY_MODEL |
| 561 | def_bool y |
| 562 | |
| 563 | config ARCH_FLATMEM_ENABLE |
| 564 | def_bool y |
Huacai Chen | d4b6f156 | 2022-05-31 18:04:12 +0800 | [diff] [blame] | 565 | depends on !NUMA |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 566 | |
| 567 | config ARCH_SPARSEMEM_ENABLE |
| 568 | def_bool y |
Feiyang Chen | 7b09f5a | 2022-10-27 20:52:51 +0800 | [diff] [blame] | 569 | select SPARSEMEM_VMEMMAP_ENABLE |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 570 | help |
| 571 | Say Y to support efficient handling of sparse physical memory, |
| 572 | for architectures which are either NUMA (Non-Uniform Memory Access) |
| 573 | or have huge holes in the physical address space for other reasons. |
Mike Rapoport | ee65728 | 2022-06-27 09:00:26 +0300 | [diff] [blame] | 574 | See <file:Documentation/mm/numa.rst> for more. |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 575 | |
| 576 | config ARCH_ENABLE_THP_MIGRATION |
| 577 | def_bool y |
| 578 | depends on TRANSPARENT_HUGEPAGE |
| 579 | |
| 580 | config ARCH_MEMORY_PROBE |
| 581 | def_bool y |
| 582 | depends on MEMORY_HOTPLUG |
| 583 | |
| 584 | config MMU |
| 585 | bool |
| 586 | default y |
| 587 | |
| 588 | config ARCH_MMAP_RND_BITS_MIN |
| 589 | default 12 |
| 590 | |
| 591 | config ARCH_MMAP_RND_BITS_MAX |
| 592 | default 18 |
| 593 | |
| 594 | menu "Power management options" |
| 595 | |
Huacai Chen | 366bb35 | 2022-12-10 22:40:15 +0800 | [diff] [blame] | 596 | config ARCH_SUSPEND_POSSIBLE |
| 597 | def_bool y |
| 598 | |
Huacai Chen | 7db54bf | 2022-12-10 22:40:15 +0800 | [diff] [blame] | 599 | config ARCH_HIBERNATION_POSSIBLE |
| 600 | def_bool y |
| 601 | |
Huacai Chen | 366bb35 | 2022-12-10 22:40:15 +0800 | [diff] [blame] | 602 | source "kernel/power/Kconfig" |
Huacai Chen | fa96b57 | 2022-05-31 18:04:11 +0800 | [diff] [blame] | 603 | source "drivers/acpi/Kconfig" |
| 604 | |
| 605 | endmenu |
| 606 | |
| 607 | source "drivers/firmware/Kconfig" |