162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ciconfig LOONGARCH 362306a36Sopenharmony_ci bool 462306a36Sopenharmony_ci default y 562306a36Sopenharmony_ci select ACPI 662306a36Sopenharmony_ci select ACPI_GENERIC_GSI if ACPI 762306a36Sopenharmony_ci select ACPI_MCFG if ACPI 862306a36Sopenharmony_ci select ACPI_PPTT if ACPI 962306a36Sopenharmony_ci select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI 1062306a36Sopenharmony_ci select ARCH_BINFMT_ELF_STATE 1162306a36Sopenharmony_ci select ARCH_DISABLE_KASAN_INLINE 1262306a36Sopenharmony_ci select ARCH_ENABLE_MEMORY_HOTPLUG 1362306a36Sopenharmony_ci select ARCH_ENABLE_MEMORY_HOTREMOVE 1462306a36Sopenharmony_ci select ARCH_ENABLE_THP_MIGRATION if TRANSPARENT_HUGEPAGE 1562306a36Sopenharmony_ci select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI 1662306a36Sopenharmony_ci select ARCH_HAS_CPU_FINALIZE_INIT 1762306a36Sopenharmony_ci select ARCH_HAS_FORTIFY_SOURCE 1862306a36Sopenharmony_ci select ARCH_HAS_KCOV 1962306a36Sopenharmony_ci select ARCH_HAS_NMI_SAFE_THIS_CPU_OPS 2062306a36Sopenharmony_ci select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE 2162306a36Sopenharmony_ci select ARCH_HAS_PTE_SPECIAL 2262306a36Sopenharmony_ci select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST 2362306a36Sopenharmony_ci select ARCH_INLINE_READ_LOCK if !PREEMPTION 2462306a36Sopenharmony_ci select ARCH_INLINE_READ_LOCK_BH if !PREEMPTION 2562306a36Sopenharmony_ci select ARCH_INLINE_READ_LOCK_IRQ if !PREEMPTION 2662306a36Sopenharmony_ci select ARCH_INLINE_READ_LOCK_IRQSAVE if !PREEMPTION 2762306a36Sopenharmony_ci select ARCH_INLINE_READ_UNLOCK if !PREEMPTION 2862306a36Sopenharmony_ci select ARCH_INLINE_READ_UNLOCK_BH if !PREEMPTION 2962306a36Sopenharmony_ci select ARCH_INLINE_READ_UNLOCK_IRQ if !PREEMPTION 3062306a36Sopenharmony_ci select ARCH_INLINE_READ_UNLOCK_IRQRESTORE if !PREEMPTION 3162306a36Sopenharmony_ci select ARCH_INLINE_WRITE_LOCK if !PREEMPTION 3262306a36Sopenharmony_ci select ARCH_INLINE_WRITE_LOCK_BH if !PREEMPTION 3362306a36Sopenharmony_ci select ARCH_INLINE_WRITE_LOCK_IRQ if !PREEMPTION 3462306a36Sopenharmony_ci select ARCH_INLINE_WRITE_LOCK_IRQSAVE if !PREEMPTION 3562306a36Sopenharmony_ci select ARCH_INLINE_WRITE_UNLOCK if !PREEMPTION 3662306a36Sopenharmony_ci select ARCH_INLINE_WRITE_UNLOCK_BH if !PREEMPTION 3762306a36Sopenharmony_ci select ARCH_INLINE_WRITE_UNLOCK_IRQ if !PREEMPTION 3862306a36Sopenharmony_ci select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE if !PREEMPTION 3962306a36Sopenharmony_ci select ARCH_INLINE_SPIN_TRYLOCK if !PREEMPTION 4062306a36Sopenharmony_ci select ARCH_INLINE_SPIN_TRYLOCK_BH if !PREEMPTION 4162306a36Sopenharmony_ci select ARCH_INLINE_SPIN_LOCK if !PREEMPTION 4262306a36Sopenharmony_ci select ARCH_INLINE_SPIN_LOCK_BH if !PREEMPTION 4362306a36Sopenharmony_ci select ARCH_INLINE_SPIN_LOCK_IRQ if !PREEMPTION 4462306a36Sopenharmony_ci select ARCH_INLINE_SPIN_LOCK_IRQSAVE if !PREEMPTION 4562306a36Sopenharmony_ci select ARCH_INLINE_SPIN_UNLOCK if !PREEMPTION 4662306a36Sopenharmony_ci select ARCH_INLINE_SPIN_UNLOCK_BH if !PREEMPTION 4762306a36Sopenharmony_ci select ARCH_INLINE_SPIN_UNLOCK_IRQ if !PREEMPTION 4862306a36Sopenharmony_ci select ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE if !PREEMPTION 4962306a36Sopenharmony_ci select ARCH_KEEP_MEMBLOCK 5062306a36Sopenharmony_ci select ARCH_MIGHT_HAVE_PC_PARPORT 5162306a36Sopenharmony_ci select ARCH_MIGHT_HAVE_PC_SERIO 5262306a36Sopenharmony_ci select ARCH_SPARSEMEM_ENABLE 5362306a36Sopenharmony_ci select ARCH_STACKWALK 5462306a36Sopenharmony_ci select ARCH_SUPPORTS_ACPI 5562306a36Sopenharmony_ci select ARCH_SUPPORTS_ATOMIC_RMW 5662306a36Sopenharmony_ci select ARCH_SUPPORTS_HUGETLBFS 5762306a36Sopenharmony_ci select ARCH_SUPPORTS_LTO_CLANG 5862306a36Sopenharmony_ci select ARCH_SUPPORTS_LTO_CLANG_THIN 5962306a36Sopenharmony_ci select ARCH_SUPPORTS_NUMA_BALANCING 6062306a36Sopenharmony_ci select ARCH_USE_BUILTIN_BSWAP 6162306a36Sopenharmony_ci select ARCH_USE_CMPXCHG_LOCKREF 6262306a36Sopenharmony_ci select ARCH_USE_QUEUED_RWLOCKS 6362306a36Sopenharmony_ci select ARCH_USE_QUEUED_SPINLOCKS 6462306a36Sopenharmony_ci select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT 6562306a36Sopenharmony_ci select ARCH_WANT_LD_ORPHAN_WARN 6662306a36Sopenharmony_ci select ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP 6762306a36Sopenharmony_ci select ARCH_WANTS_NO_INSTR 6862306a36Sopenharmony_ci select BUILDTIME_TABLE_SORT 6962306a36Sopenharmony_ci select COMMON_CLK 7062306a36Sopenharmony_ci select CPU_PM 7162306a36Sopenharmony_ci select EFI 7262306a36Sopenharmony_ci select GENERIC_CLOCKEVENTS 7362306a36Sopenharmony_ci select GENERIC_CMOS_UPDATE 7462306a36Sopenharmony_ci select GENERIC_CPU_AUTOPROBE 7562306a36Sopenharmony_ci select GENERIC_ENTRY 7662306a36Sopenharmony_ci select GENERIC_GETTIMEOFDAY 7762306a36Sopenharmony_ci select GENERIC_IOREMAP if !ARCH_IOREMAP 7862306a36Sopenharmony_ci select GENERIC_IRQ_MULTI_HANDLER 7962306a36Sopenharmony_ci select GENERIC_IRQ_PROBE 8062306a36Sopenharmony_ci select GENERIC_IRQ_SHOW 8162306a36Sopenharmony_ci select GENERIC_LIB_ASHLDI3 8262306a36Sopenharmony_ci select GENERIC_LIB_ASHRDI3 8362306a36Sopenharmony_ci select GENERIC_LIB_CMPDI2 8462306a36Sopenharmony_ci select GENERIC_LIB_LSHRDI3 8562306a36Sopenharmony_ci select GENERIC_LIB_UCMPDI2 8662306a36Sopenharmony_ci select GENERIC_LIB_DEVMEM_IS_ALLOWED 8762306a36Sopenharmony_ci select GENERIC_PCI_IOMAP 8862306a36Sopenharmony_ci select GENERIC_SCHED_CLOCK 8962306a36Sopenharmony_ci select GENERIC_SMP_IDLE_THREAD 9062306a36Sopenharmony_ci select GENERIC_TIME_VSYSCALL 9162306a36Sopenharmony_ci select GENERIC_VDSO_TIME_NS 9262306a36Sopenharmony_ci select GPIOLIB 9362306a36Sopenharmony_ci select HAS_IOPORT 9462306a36Sopenharmony_ci select HAVE_ARCH_AUDITSYSCALL 9562306a36Sopenharmony_ci select HAVE_ARCH_JUMP_LABEL 9662306a36Sopenharmony_ci select HAVE_ARCH_JUMP_LABEL_RELATIVE 9762306a36Sopenharmony_ci select HAVE_ARCH_KASAN 9862306a36Sopenharmony_ci select HAVE_ARCH_KFENCE 9962306a36Sopenharmony_ci select HAVE_ARCH_KGDB if PERF_EVENTS 10062306a36Sopenharmony_ci select HAVE_ARCH_MMAP_RND_BITS if MMU 10162306a36Sopenharmony_ci select HAVE_ARCH_SECCOMP 10262306a36Sopenharmony_ci select HAVE_ARCH_SECCOMP_FILTER 10362306a36Sopenharmony_ci select HAVE_ARCH_TRACEHOOK 10462306a36Sopenharmony_ci select HAVE_ARCH_TRANSPARENT_HUGEPAGE 10562306a36Sopenharmony_ci select HAVE_ASM_MODVERSIONS 10662306a36Sopenharmony_ci select HAVE_CONTEXT_TRACKING_USER 10762306a36Sopenharmony_ci select HAVE_C_RECORDMCOUNT 10862306a36Sopenharmony_ci select HAVE_DEBUG_KMEMLEAK 10962306a36Sopenharmony_ci select HAVE_DEBUG_STACKOVERFLOW 11062306a36Sopenharmony_ci select HAVE_DMA_CONTIGUOUS 11162306a36Sopenharmony_ci select HAVE_DYNAMIC_FTRACE 11262306a36Sopenharmony_ci select HAVE_DYNAMIC_FTRACE_WITH_ARGS 11362306a36Sopenharmony_ci select HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS 11462306a36Sopenharmony_ci select HAVE_DYNAMIC_FTRACE_WITH_REGS 11562306a36Sopenharmony_ci select HAVE_EBPF_JIT 11662306a36Sopenharmony_ci select HAVE_EFFICIENT_UNALIGNED_ACCESS if !ARCH_STRICT_ALIGN 11762306a36Sopenharmony_ci select HAVE_EXIT_THREAD 11862306a36Sopenharmony_ci select HAVE_FAST_GUP 11962306a36Sopenharmony_ci select HAVE_FTRACE_MCOUNT_RECORD 12062306a36Sopenharmony_ci select HAVE_FUNCTION_ARG_ACCESS_API 12162306a36Sopenharmony_ci select HAVE_FUNCTION_ERROR_INJECTION 12262306a36Sopenharmony_ci select HAVE_FUNCTION_GRAPH_RETVAL if HAVE_FUNCTION_GRAPH_TRACER 12362306a36Sopenharmony_ci select HAVE_FUNCTION_GRAPH_TRACER 12462306a36Sopenharmony_ci select HAVE_FUNCTION_TRACER 12562306a36Sopenharmony_ci select HAVE_GCC_PLUGINS 12662306a36Sopenharmony_ci select HAVE_GENERIC_VDSO 12762306a36Sopenharmony_ci select HAVE_HW_BREAKPOINT if PERF_EVENTS 12862306a36Sopenharmony_ci select HAVE_IOREMAP_PROT 12962306a36Sopenharmony_ci select HAVE_IRQ_EXIT_ON_IRQ_STACK 13062306a36Sopenharmony_ci select HAVE_IRQ_TIME_ACCOUNTING 13162306a36Sopenharmony_ci select HAVE_KPROBES 13262306a36Sopenharmony_ci select HAVE_KPROBES_ON_FTRACE 13362306a36Sopenharmony_ci select HAVE_KRETPROBES 13462306a36Sopenharmony_ci select HAVE_MOD_ARCH_SPECIFIC 13562306a36Sopenharmony_ci select HAVE_NMI 13662306a36Sopenharmony_ci select HAVE_PCI 13762306a36Sopenharmony_ci select HAVE_PERF_EVENTS 13862306a36Sopenharmony_ci select HAVE_PERF_REGS 13962306a36Sopenharmony_ci select HAVE_PERF_USER_STACK_DUMP 14062306a36Sopenharmony_ci select HAVE_REGS_AND_STACK_ACCESS_API 14162306a36Sopenharmony_ci select HAVE_RETHOOK 14262306a36Sopenharmony_ci select HAVE_RSEQ 14362306a36Sopenharmony_ci select HAVE_SAMPLE_FTRACE_DIRECT 14462306a36Sopenharmony_ci select HAVE_SAMPLE_FTRACE_DIRECT_MULTI 14562306a36Sopenharmony_ci select HAVE_SETUP_PER_CPU_AREA if NUMA 14662306a36Sopenharmony_ci select HAVE_STACKPROTECTOR 14762306a36Sopenharmony_ci select HAVE_SYSCALL_TRACEPOINTS 14862306a36Sopenharmony_ci select HAVE_TIF_NOHZ 14962306a36Sopenharmony_ci select HAVE_VIRT_CPU_ACCOUNTING_GEN if !SMP 15062306a36Sopenharmony_ci select IRQ_FORCED_THREADING 15162306a36Sopenharmony_ci select IRQ_LOONGARCH_CPU 15262306a36Sopenharmony_ci select LOCK_MM_AND_FIND_VMA 15362306a36Sopenharmony_ci select MMU_GATHER_MERGE_VMAS if MMU 15462306a36Sopenharmony_ci select MODULES_USE_ELF_RELA if MODULES 15562306a36Sopenharmony_ci select NEED_PER_CPU_EMBED_FIRST_CHUNK 15662306a36Sopenharmony_ci select NEED_PER_CPU_PAGE_FIRST_CHUNK 15762306a36Sopenharmony_ci select OF 15862306a36Sopenharmony_ci select OF_EARLY_FLATTREE 15962306a36Sopenharmony_ci select PCI 16062306a36Sopenharmony_ci select PCI_DOMAINS_GENERIC 16162306a36Sopenharmony_ci select PCI_ECAM if ACPI 16262306a36Sopenharmony_ci select PCI_LOONGSON 16362306a36Sopenharmony_ci select PCI_MSI_ARCH_FALLBACKS 16462306a36Sopenharmony_ci select PCI_QUIRKS 16562306a36Sopenharmony_ci select PERF_USE_VMALLOC 16662306a36Sopenharmony_ci select RTC_LIB 16762306a36Sopenharmony_ci select SMP 16862306a36Sopenharmony_ci select SPARSE_IRQ 16962306a36Sopenharmony_ci select SYSCTL_ARCH_UNALIGN_ALLOW 17062306a36Sopenharmony_ci select SYSCTL_ARCH_UNALIGN_NO_WARN 17162306a36Sopenharmony_ci select SYSCTL_EXCEPTION_TRACE 17262306a36Sopenharmony_ci select SWIOTLB 17362306a36Sopenharmony_ci select TRACE_IRQFLAGS_SUPPORT 17462306a36Sopenharmony_ci select USE_PERCPU_NUMA_NODE_ID 17562306a36Sopenharmony_ci select USER_STACKTRACE_SUPPORT 17662306a36Sopenharmony_ci select ZONE_DMA32 17762306a36Sopenharmony_ci 17862306a36Sopenharmony_ciconfig 32BIT 17962306a36Sopenharmony_ci bool 18062306a36Sopenharmony_ci 18162306a36Sopenharmony_ciconfig 64BIT 18262306a36Sopenharmony_ci def_bool y 18362306a36Sopenharmony_ci 18462306a36Sopenharmony_ciconfig GENERIC_BUG 18562306a36Sopenharmony_ci def_bool y 18662306a36Sopenharmony_ci depends on BUG 18762306a36Sopenharmony_ci 18862306a36Sopenharmony_ciconfig GENERIC_BUG_RELATIVE_POINTERS 18962306a36Sopenharmony_ci def_bool y 19062306a36Sopenharmony_ci depends on GENERIC_BUG 19162306a36Sopenharmony_ci 19262306a36Sopenharmony_ciconfig GENERIC_CALIBRATE_DELAY 19362306a36Sopenharmony_ci def_bool y 19462306a36Sopenharmony_ci 19562306a36Sopenharmony_ciconfig GENERIC_CSUM 19662306a36Sopenharmony_ci def_bool y 19762306a36Sopenharmony_ci 19862306a36Sopenharmony_ciconfig GENERIC_HWEIGHT 19962306a36Sopenharmony_ci def_bool y 20062306a36Sopenharmony_ci 20162306a36Sopenharmony_ciconfig L1_CACHE_SHIFT 20262306a36Sopenharmony_ci int 20362306a36Sopenharmony_ci default "6" 20462306a36Sopenharmony_ci 20562306a36Sopenharmony_ciconfig LOCKDEP_SUPPORT 20662306a36Sopenharmony_ci bool 20762306a36Sopenharmony_ci default y 20862306a36Sopenharmony_ci 20962306a36Sopenharmony_ciconfig STACKTRACE_SUPPORT 21062306a36Sopenharmony_ci bool 21162306a36Sopenharmony_ci default y 21262306a36Sopenharmony_ci 21362306a36Sopenharmony_ci# MACH_LOONGSON32 and MACH_LOONGSON64 are deliberately carried over from the 21462306a36Sopenharmony_ci# MIPS Loongson code, to preserve Loongson-specific code paths in drivers that 21562306a36Sopenharmony_ci# are shared between architectures, and specifically expecting the symbols. 21662306a36Sopenharmony_ciconfig MACH_LOONGSON32 21762306a36Sopenharmony_ci def_bool 32BIT 21862306a36Sopenharmony_ci 21962306a36Sopenharmony_ciconfig MACH_LOONGSON64 22062306a36Sopenharmony_ci def_bool 64BIT 22162306a36Sopenharmony_ci 22262306a36Sopenharmony_ciconfig FIX_EARLYCON_MEM 22362306a36Sopenharmony_ci def_bool y 22462306a36Sopenharmony_ci 22562306a36Sopenharmony_ciconfig PAGE_SIZE_4KB 22662306a36Sopenharmony_ci bool 22762306a36Sopenharmony_ci 22862306a36Sopenharmony_ciconfig PAGE_SIZE_16KB 22962306a36Sopenharmony_ci bool 23062306a36Sopenharmony_ci 23162306a36Sopenharmony_ciconfig PAGE_SIZE_64KB 23262306a36Sopenharmony_ci bool 23362306a36Sopenharmony_ci 23462306a36Sopenharmony_ciconfig PGTABLE_2LEVEL 23562306a36Sopenharmony_ci bool 23662306a36Sopenharmony_ci 23762306a36Sopenharmony_ciconfig PGTABLE_3LEVEL 23862306a36Sopenharmony_ci bool 23962306a36Sopenharmony_ci 24062306a36Sopenharmony_ciconfig PGTABLE_4LEVEL 24162306a36Sopenharmony_ci bool 24262306a36Sopenharmony_ci 24362306a36Sopenharmony_ciconfig PGTABLE_LEVELS 24462306a36Sopenharmony_ci int 24562306a36Sopenharmony_ci default 2 if PGTABLE_2LEVEL 24662306a36Sopenharmony_ci default 3 if PGTABLE_3LEVEL 24762306a36Sopenharmony_ci default 4 if PGTABLE_4LEVEL 24862306a36Sopenharmony_ci 24962306a36Sopenharmony_ciconfig SCHED_OMIT_FRAME_POINTER 25062306a36Sopenharmony_ci bool 25162306a36Sopenharmony_ci default y 25262306a36Sopenharmony_ci 25362306a36Sopenharmony_ciconfig AS_HAS_EXPLICIT_RELOCS 25462306a36Sopenharmony_ci def_bool $(as-instr,x:pcalau12i \$t0$(comma)%pc_hi20(x)) 25562306a36Sopenharmony_ci 25662306a36Sopenharmony_ciconfig AS_HAS_FCSR_CLASS 25762306a36Sopenharmony_ci def_bool $(as-instr,movfcsr2gr \$t0$(comma)\$fcsr0) 25862306a36Sopenharmony_ci 25962306a36Sopenharmony_ciconfig AS_HAS_LSX_EXTENSION 26062306a36Sopenharmony_ci def_bool $(as-instr,vld \$vr0$(comma)\$a0$(comma)0) 26162306a36Sopenharmony_ci 26262306a36Sopenharmony_ciconfig AS_HAS_LASX_EXTENSION 26362306a36Sopenharmony_ci def_bool $(as-instr,xvld \$xr0$(comma)\$a0$(comma)0) 26462306a36Sopenharmony_ci 26562306a36Sopenharmony_ciconfig AS_HAS_LBT_EXTENSION 26662306a36Sopenharmony_ci def_bool $(as-instr,movscr2gr \$a0$(comma)\$scr0) 26762306a36Sopenharmony_ci 26862306a36Sopenharmony_cimenu "Kernel type and options" 26962306a36Sopenharmony_ci 27062306a36Sopenharmony_cisource "kernel/Kconfig.hz" 27162306a36Sopenharmony_ci 27262306a36Sopenharmony_cichoice 27362306a36Sopenharmony_ci prompt "Page Table Layout" 27462306a36Sopenharmony_ci default 16KB_2LEVEL if 32BIT 27562306a36Sopenharmony_ci default 16KB_3LEVEL if 64BIT 27662306a36Sopenharmony_ci help 27762306a36Sopenharmony_ci Allows choosing the page table layout, which is a combination 27862306a36Sopenharmony_ci of page size and page table levels. The size of virtual memory 27962306a36Sopenharmony_ci address space are determined by the page table layout. 28062306a36Sopenharmony_ci 28162306a36Sopenharmony_ciconfig 4KB_3LEVEL 28262306a36Sopenharmony_ci bool "4KB with 3 levels" 28362306a36Sopenharmony_ci select PAGE_SIZE_4KB 28462306a36Sopenharmony_ci select PGTABLE_3LEVEL 28562306a36Sopenharmony_ci help 28662306a36Sopenharmony_ci This option selects 4KB page size with 3 level page tables, which 28762306a36Sopenharmony_ci support a maximum of 39 bits of application virtual memory. 28862306a36Sopenharmony_ci 28962306a36Sopenharmony_ciconfig 4KB_4LEVEL 29062306a36Sopenharmony_ci bool "4KB with 4 levels" 29162306a36Sopenharmony_ci select PAGE_SIZE_4KB 29262306a36Sopenharmony_ci select PGTABLE_4LEVEL 29362306a36Sopenharmony_ci help 29462306a36Sopenharmony_ci This option selects 4KB page size with 4 level page tables, which 29562306a36Sopenharmony_ci support a maximum of 48 bits of application virtual memory. 29662306a36Sopenharmony_ci 29762306a36Sopenharmony_ciconfig 16KB_2LEVEL 29862306a36Sopenharmony_ci bool "16KB with 2 levels" 29962306a36Sopenharmony_ci select PAGE_SIZE_16KB 30062306a36Sopenharmony_ci select PGTABLE_2LEVEL 30162306a36Sopenharmony_ci help 30262306a36Sopenharmony_ci This option selects 16KB page size with 2 level page tables, which 30362306a36Sopenharmony_ci support a maximum of 36 bits of application virtual memory. 30462306a36Sopenharmony_ci 30562306a36Sopenharmony_ciconfig 16KB_3LEVEL 30662306a36Sopenharmony_ci bool "16KB with 3 levels" 30762306a36Sopenharmony_ci select PAGE_SIZE_16KB 30862306a36Sopenharmony_ci select PGTABLE_3LEVEL 30962306a36Sopenharmony_ci help 31062306a36Sopenharmony_ci This option selects 16KB page size with 3 level page tables, which 31162306a36Sopenharmony_ci support a maximum of 47 bits of application virtual memory. 31262306a36Sopenharmony_ci 31362306a36Sopenharmony_ciconfig 64KB_2LEVEL 31462306a36Sopenharmony_ci bool "64KB with 2 levels" 31562306a36Sopenharmony_ci select PAGE_SIZE_64KB 31662306a36Sopenharmony_ci select PGTABLE_2LEVEL 31762306a36Sopenharmony_ci help 31862306a36Sopenharmony_ci This option selects 64KB page size with 2 level page tables, which 31962306a36Sopenharmony_ci support a maximum of 42 bits of application virtual memory. 32062306a36Sopenharmony_ci 32162306a36Sopenharmony_ciconfig 64KB_3LEVEL 32262306a36Sopenharmony_ci bool "64KB with 3 levels" 32362306a36Sopenharmony_ci select PAGE_SIZE_64KB 32462306a36Sopenharmony_ci select PGTABLE_3LEVEL 32562306a36Sopenharmony_ci help 32662306a36Sopenharmony_ci This option selects 64KB page size with 3 level page tables, which 32762306a36Sopenharmony_ci support a maximum of 55 bits of application virtual memory. 32862306a36Sopenharmony_ci 32962306a36Sopenharmony_ciendchoice 33062306a36Sopenharmony_ci 33162306a36Sopenharmony_ciconfig CMDLINE 33262306a36Sopenharmony_ci string "Built-in kernel command line" 33362306a36Sopenharmony_ci help 33462306a36Sopenharmony_ci For most platforms, the arguments for the kernel's command line 33562306a36Sopenharmony_ci are provided at run-time, during boot. However, there are cases 33662306a36Sopenharmony_ci where either no arguments are being provided or the provided 33762306a36Sopenharmony_ci arguments are insufficient or even invalid. 33862306a36Sopenharmony_ci 33962306a36Sopenharmony_ci When that occurs, it is possible to define a built-in command 34062306a36Sopenharmony_ci line here and choose how the kernel should use it later on. 34162306a36Sopenharmony_ci 34262306a36Sopenharmony_cichoice 34362306a36Sopenharmony_ci prompt "Kernel command line type" 34462306a36Sopenharmony_ci default CMDLINE_BOOTLOADER 34562306a36Sopenharmony_ci help 34662306a36Sopenharmony_ci Choose how the kernel will handle the provided built-in command 34762306a36Sopenharmony_ci line. 34862306a36Sopenharmony_ci 34962306a36Sopenharmony_ciconfig CMDLINE_BOOTLOADER 35062306a36Sopenharmony_ci bool "Use bootloader kernel arguments if available" 35162306a36Sopenharmony_ci help 35262306a36Sopenharmony_ci Prefer the command-line passed by the boot loader if available. 35362306a36Sopenharmony_ci Use the built-in command line as fallback in case we get nothing 35462306a36Sopenharmony_ci during boot. This is the default behaviour. 35562306a36Sopenharmony_ci 35662306a36Sopenharmony_ciconfig CMDLINE_EXTEND 35762306a36Sopenharmony_ci bool "Use built-in to extend bootloader kernel arguments" 35862306a36Sopenharmony_ci help 35962306a36Sopenharmony_ci The command-line arguments provided during boot will be 36062306a36Sopenharmony_ci appended to the built-in command line. This is useful in 36162306a36Sopenharmony_ci cases where the provided arguments are insufficient and 36262306a36Sopenharmony_ci you don't want to or cannot modify them. 36362306a36Sopenharmony_ci 36462306a36Sopenharmony_ciconfig CMDLINE_FORCE 36562306a36Sopenharmony_ci bool "Always use the built-in kernel command string" 36662306a36Sopenharmony_ci help 36762306a36Sopenharmony_ci Always use the built-in command line, even if we get one during 36862306a36Sopenharmony_ci boot. This is useful in case you need to override the provided 36962306a36Sopenharmony_ci command line on systems where you don't have or want control 37062306a36Sopenharmony_ci over it. 37162306a36Sopenharmony_ci 37262306a36Sopenharmony_ciendchoice 37362306a36Sopenharmony_ci 37462306a36Sopenharmony_ciconfig DMI 37562306a36Sopenharmony_ci bool "Enable DMI scanning" 37662306a36Sopenharmony_ci select DMI_SCAN_MACHINE_NON_EFI_FALLBACK 37762306a36Sopenharmony_ci default y 37862306a36Sopenharmony_ci help 37962306a36Sopenharmony_ci This enables SMBIOS/DMI feature for systems, and scanning of 38062306a36Sopenharmony_ci DMI to identify machine quirks. 38162306a36Sopenharmony_ci 38262306a36Sopenharmony_ciconfig EFI 38362306a36Sopenharmony_ci bool "EFI runtime service support" 38462306a36Sopenharmony_ci select UCS2_STRING 38562306a36Sopenharmony_ci select EFI_RUNTIME_WRAPPERS 38662306a36Sopenharmony_ci help 38762306a36Sopenharmony_ci This enables the kernel to use EFI runtime services that are 38862306a36Sopenharmony_ci available (such as the EFI variable services). 38962306a36Sopenharmony_ci 39062306a36Sopenharmony_ciconfig EFI_STUB 39162306a36Sopenharmony_ci bool "EFI boot stub support" 39262306a36Sopenharmony_ci default y 39362306a36Sopenharmony_ci depends on EFI 39462306a36Sopenharmony_ci select EFI_GENERIC_STUB 39562306a36Sopenharmony_ci help 39662306a36Sopenharmony_ci This kernel feature allows the kernel to be loaded directly by 39762306a36Sopenharmony_ci EFI firmware without the use of a bootloader. 39862306a36Sopenharmony_ci 39962306a36Sopenharmony_ciconfig SCHED_SMT 40062306a36Sopenharmony_ci bool "SMT scheduler support" 40162306a36Sopenharmony_ci default y 40262306a36Sopenharmony_ci help 40362306a36Sopenharmony_ci Improves scheduler's performance when there are multiple 40462306a36Sopenharmony_ci threads in one physical core. 40562306a36Sopenharmony_ci 40662306a36Sopenharmony_ciconfig SMP 40762306a36Sopenharmony_ci bool "Multi-Processing support" 40862306a36Sopenharmony_ci help 40962306a36Sopenharmony_ci This enables support for systems with more than one CPU. If you have 41062306a36Sopenharmony_ci a system with only one CPU, say N. If you have a system with more 41162306a36Sopenharmony_ci than one CPU, say Y. 41262306a36Sopenharmony_ci 41362306a36Sopenharmony_ci If you say N here, the kernel will run on uni- and multiprocessor 41462306a36Sopenharmony_ci machines, but will use only one CPU of a multiprocessor machine. If 41562306a36Sopenharmony_ci you say Y here, the kernel will run on many, but not all, 41662306a36Sopenharmony_ci uniprocessor machines. On a uniprocessor machine, the kernel 41762306a36Sopenharmony_ci will run faster if you say N here. 41862306a36Sopenharmony_ci 41962306a36Sopenharmony_ci See also the SMP-HOWTO available at <http://www.tldp.org/docs.html#howto>. 42062306a36Sopenharmony_ci 42162306a36Sopenharmony_ci If you don't know what to do here, say N. 42262306a36Sopenharmony_ci 42362306a36Sopenharmony_ciconfig HOTPLUG_CPU 42462306a36Sopenharmony_ci bool "Support for hot-pluggable CPUs" 42562306a36Sopenharmony_ci depends on SMP 42662306a36Sopenharmony_ci select GENERIC_IRQ_MIGRATION 42762306a36Sopenharmony_ci help 42862306a36Sopenharmony_ci Say Y here to allow turning CPUs off and on. CPUs can be 42962306a36Sopenharmony_ci controlled through /sys/devices/system/cpu. 43062306a36Sopenharmony_ci (Note: power management support will enable this option 43162306a36Sopenharmony_ci automatically on SMP systems. ) 43262306a36Sopenharmony_ci Say N if you want to disable CPU hotplug. 43362306a36Sopenharmony_ci 43462306a36Sopenharmony_ciconfig NR_CPUS 43562306a36Sopenharmony_ci int "Maximum number of CPUs (2-256)" 43662306a36Sopenharmony_ci range 2 256 43762306a36Sopenharmony_ci depends on SMP 43862306a36Sopenharmony_ci default "64" 43962306a36Sopenharmony_ci help 44062306a36Sopenharmony_ci This allows you to specify the maximum number of CPUs which this 44162306a36Sopenharmony_ci kernel will support. 44262306a36Sopenharmony_ci 44362306a36Sopenharmony_ciconfig NUMA 44462306a36Sopenharmony_ci bool "NUMA Support" 44562306a36Sopenharmony_ci select SMP 44662306a36Sopenharmony_ci select ACPI_NUMA if ACPI 44762306a36Sopenharmony_ci help 44862306a36Sopenharmony_ci Say Y to compile the kernel with NUMA (Non-Uniform Memory Access) 44962306a36Sopenharmony_ci support. This option improves performance on systems with more 45062306a36Sopenharmony_ci than one NUMA node; on single node systems it is generally better 45162306a36Sopenharmony_ci to leave it disabled. 45262306a36Sopenharmony_ci 45362306a36Sopenharmony_ciconfig NODES_SHIFT 45462306a36Sopenharmony_ci int 45562306a36Sopenharmony_ci default "6" 45662306a36Sopenharmony_ci depends on NUMA 45762306a36Sopenharmony_ci 45862306a36Sopenharmony_ciconfig ARCH_FORCE_MAX_ORDER 45962306a36Sopenharmony_ci int "Maximum zone order" 46062306a36Sopenharmony_ci default "13" if PAGE_SIZE_64KB 46162306a36Sopenharmony_ci default "11" if PAGE_SIZE_16KB 46262306a36Sopenharmony_ci default "10" 46362306a36Sopenharmony_ci help 46462306a36Sopenharmony_ci The kernel memory allocator divides physically contiguous memory 46562306a36Sopenharmony_ci blocks into "zones", where each zone is a power of two number of 46662306a36Sopenharmony_ci pages. This option selects the largest power of two that the kernel 46762306a36Sopenharmony_ci keeps in the memory allocator. If you need to allocate very large 46862306a36Sopenharmony_ci blocks of physically contiguous memory, then you may need to 46962306a36Sopenharmony_ci increase this value. 47062306a36Sopenharmony_ci 47162306a36Sopenharmony_ci The page size is not necessarily 4KB. Keep this in mind 47262306a36Sopenharmony_ci when choosing a value for this option. 47362306a36Sopenharmony_ci 47462306a36Sopenharmony_ciconfig ARCH_IOREMAP 47562306a36Sopenharmony_ci bool "Enable LoongArch DMW-based ioremap()" 47662306a36Sopenharmony_ci help 47762306a36Sopenharmony_ci We use generic TLB-based ioremap() by default since it has page 47862306a36Sopenharmony_ci protection support. However, you can enable LoongArch DMW-based 47962306a36Sopenharmony_ci ioremap() for better performance. 48062306a36Sopenharmony_ci 48162306a36Sopenharmony_ciconfig ARCH_WRITECOMBINE 48262306a36Sopenharmony_ci bool "Enable WriteCombine (WUC) for ioremap()" 48362306a36Sopenharmony_ci help 48462306a36Sopenharmony_ci LoongArch maintains cache coherency in hardware, but when paired 48562306a36Sopenharmony_ci with LS7A chipsets the WUC attribute (Weak-ordered UnCached, which 48662306a36Sopenharmony_ci is similar to WriteCombine) is out of the scope of cache coherency 48762306a36Sopenharmony_ci machanism for PCIe devices (this is a PCIe protocol violation, which 48862306a36Sopenharmony_ci may be fixed in newer chipsets). 48962306a36Sopenharmony_ci 49062306a36Sopenharmony_ci This means WUC can only used for write-only memory regions now, so 49162306a36Sopenharmony_ci this option is disabled by default, making WUC silently fallback to 49262306a36Sopenharmony_ci SUC for ioremap(). You can enable this option if the kernel is ensured 49362306a36Sopenharmony_ci to run on hardware without this bug. 49462306a36Sopenharmony_ci 49562306a36Sopenharmony_ci You can override this setting via writecombine=on/off boot parameter. 49662306a36Sopenharmony_ci 49762306a36Sopenharmony_ciconfig ARCH_STRICT_ALIGN 49862306a36Sopenharmony_ci bool "Enable -mstrict-align to prevent unaligned accesses" if EXPERT 49962306a36Sopenharmony_ci default y 50062306a36Sopenharmony_ci help 50162306a36Sopenharmony_ci Not all LoongArch cores support h/w unaligned access, we can use 50262306a36Sopenharmony_ci -mstrict-align build parameter to prevent unaligned accesses. 50362306a36Sopenharmony_ci 50462306a36Sopenharmony_ci CPUs with h/w unaligned access support: 50562306a36Sopenharmony_ci Loongson-2K2000/2K3000/3A5000/3C5000/3D5000. 50662306a36Sopenharmony_ci 50762306a36Sopenharmony_ci CPUs without h/w unaligned access support: 50862306a36Sopenharmony_ci Loongson-2K500/2K1000. 50962306a36Sopenharmony_ci 51062306a36Sopenharmony_ci This option is enabled by default to make the kernel be able to run 51162306a36Sopenharmony_ci on all LoongArch systems. But you can disable it manually if you want 51262306a36Sopenharmony_ci to run kernel only on systems with h/w unaligned access support in 51362306a36Sopenharmony_ci order to optimise for performance. 51462306a36Sopenharmony_ci 51562306a36Sopenharmony_ciconfig CPU_HAS_FPU 51662306a36Sopenharmony_ci bool 51762306a36Sopenharmony_ci default y 51862306a36Sopenharmony_ci 51962306a36Sopenharmony_ciconfig CPU_HAS_LSX 52062306a36Sopenharmony_ci bool "Support for the Loongson SIMD Extension" 52162306a36Sopenharmony_ci depends on AS_HAS_LSX_EXTENSION 52262306a36Sopenharmony_ci help 52362306a36Sopenharmony_ci Loongson SIMD Extension (LSX) introduces 128 bit wide vector registers 52462306a36Sopenharmony_ci and a set of SIMD instructions to operate on them. When this option 52562306a36Sopenharmony_ci is enabled the kernel will support allocating & switching LSX 52662306a36Sopenharmony_ci vector register contexts. If you know that your kernel will only be 52762306a36Sopenharmony_ci running on CPUs which do not support LSX or that your userland will 52862306a36Sopenharmony_ci not be making use of it then you may wish to say N here to reduce 52962306a36Sopenharmony_ci the size & complexity of your kernel. 53062306a36Sopenharmony_ci 53162306a36Sopenharmony_ci If unsure, say Y. 53262306a36Sopenharmony_ci 53362306a36Sopenharmony_ciconfig CPU_HAS_LASX 53462306a36Sopenharmony_ci bool "Support for the Loongson Advanced SIMD Extension" 53562306a36Sopenharmony_ci depends on CPU_HAS_LSX 53662306a36Sopenharmony_ci depends on AS_HAS_LASX_EXTENSION 53762306a36Sopenharmony_ci help 53862306a36Sopenharmony_ci Loongson Advanced SIMD Extension (LASX) introduces 256 bit wide vector 53962306a36Sopenharmony_ci registers and a set of SIMD instructions to operate on them. When this 54062306a36Sopenharmony_ci option is enabled the kernel will support allocating & switching LASX 54162306a36Sopenharmony_ci vector register contexts. If you know that your kernel will only be 54262306a36Sopenharmony_ci running on CPUs which do not support LASX or that your userland will 54362306a36Sopenharmony_ci not be making use of it then you may wish to say N here to reduce 54462306a36Sopenharmony_ci the size & complexity of your kernel. 54562306a36Sopenharmony_ci 54662306a36Sopenharmony_ci If unsure, say Y. 54762306a36Sopenharmony_ci 54862306a36Sopenharmony_ciconfig CPU_HAS_LBT 54962306a36Sopenharmony_ci bool "Support for the Loongson Binary Translation Extension" 55062306a36Sopenharmony_ci depends on AS_HAS_LBT_EXTENSION 55162306a36Sopenharmony_ci help 55262306a36Sopenharmony_ci Loongson Binary Translation (LBT) introduces 4 scratch registers (SCR0 55362306a36Sopenharmony_ci to SCR3), x86/ARM eflags (eflags) and x87 fpu stack pointer (ftop). 55462306a36Sopenharmony_ci Enabling this option allows the kernel to allocate and switch registers 55562306a36Sopenharmony_ci specific to LBT. 55662306a36Sopenharmony_ci 55762306a36Sopenharmony_ci If you want to use this feature, such as the Loongson Architecture 55862306a36Sopenharmony_ci Translator (LAT), say Y. 55962306a36Sopenharmony_ci 56062306a36Sopenharmony_ciconfig CPU_HAS_PREFETCH 56162306a36Sopenharmony_ci bool 56262306a36Sopenharmony_ci default y 56362306a36Sopenharmony_ci 56462306a36Sopenharmony_ciconfig ARCH_SUPPORTS_KEXEC 56562306a36Sopenharmony_ci def_bool y 56662306a36Sopenharmony_ci 56762306a36Sopenharmony_ciconfig ARCH_SUPPORTS_CRASH_DUMP 56862306a36Sopenharmony_ci def_bool y 56962306a36Sopenharmony_ci 57062306a36Sopenharmony_ciconfig ARCH_SELECTS_CRASH_DUMP 57162306a36Sopenharmony_ci def_bool y 57262306a36Sopenharmony_ci depends on CRASH_DUMP 57362306a36Sopenharmony_ci select RELOCATABLE 57462306a36Sopenharmony_ci 57562306a36Sopenharmony_ciconfig RELOCATABLE 57662306a36Sopenharmony_ci bool "Relocatable kernel" 57762306a36Sopenharmony_ci help 57862306a36Sopenharmony_ci This builds the kernel as a Position Independent Executable (PIE), 57962306a36Sopenharmony_ci which retains all relocation metadata required, so as to relocate 58062306a36Sopenharmony_ci the kernel binary at runtime to a different virtual address from 58162306a36Sopenharmony_ci its link address. 58262306a36Sopenharmony_ci 58362306a36Sopenharmony_ciconfig RANDOMIZE_BASE 58462306a36Sopenharmony_ci bool "Randomize the address of the kernel (KASLR)" 58562306a36Sopenharmony_ci depends on RELOCATABLE 58662306a36Sopenharmony_ci help 58762306a36Sopenharmony_ci Randomizes the physical and virtual address at which the 58862306a36Sopenharmony_ci kernel image is loaded, as a security feature that 58962306a36Sopenharmony_ci deters exploit attempts relying on knowledge of the location 59062306a36Sopenharmony_ci of kernel internals. 59162306a36Sopenharmony_ci 59262306a36Sopenharmony_ci The kernel will be offset by up to RANDOMIZE_BASE_MAX_OFFSET. 59362306a36Sopenharmony_ci 59462306a36Sopenharmony_ci If unsure, say N. 59562306a36Sopenharmony_ci 59662306a36Sopenharmony_ciconfig RANDOMIZE_BASE_MAX_OFFSET 59762306a36Sopenharmony_ci hex "Maximum KASLR offset" if EXPERT 59862306a36Sopenharmony_ci depends on RANDOMIZE_BASE 59962306a36Sopenharmony_ci range 0x0 0x10000000 60062306a36Sopenharmony_ci default "0x01000000" 60162306a36Sopenharmony_ci help 60262306a36Sopenharmony_ci When KASLR is active, this provides the maximum offset that will 60362306a36Sopenharmony_ci be applied to the kernel image. It should be set according to the 60462306a36Sopenharmony_ci amount of physical RAM available in the target system. 60562306a36Sopenharmony_ci 60662306a36Sopenharmony_ci This is limited by the size of the lower address memory, 256MB. 60762306a36Sopenharmony_ci 60862306a36Sopenharmony_ciendmenu 60962306a36Sopenharmony_ci 61062306a36Sopenharmony_ciconfig ARCH_SELECT_MEMORY_MODEL 61162306a36Sopenharmony_ci def_bool y 61262306a36Sopenharmony_ci 61362306a36Sopenharmony_ciconfig ARCH_FLATMEM_ENABLE 61462306a36Sopenharmony_ci def_bool y 61562306a36Sopenharmony_ci depends on !NUMA 61662306a36Sopenharmony_ci 61762306a36Sopenharmony_ciconfig ARCH_SPARSEMEM_ENABLE 61862306a36Sopenharmony_ci def_bool y 61962306a36Sopenharmony_ci select SPARSEMEM_VMEMMAP_ENABLE 62062306a36Sopenharmony_ci help 62162306a36Sopenharmony_ci Say Y to support efficient handling of sparse physical memory, 62262306a36Sopenharmony_ci for architectures which are either NUMA (Non-Uniform Memory Access) 62362306a36Sopenharmony_ci or have huge holes in the physical address space for other reasons. 62462306a36Sopenharmony_ci See <file:Documentation/mm/numa.rst> for more. 62562306a36Sopenharmony_ci 62662306a36Sopenharmony_ciconfig ARCH_MEMORY_PROBE 62762306a36Sopenharmony_ci def_bool y 62862306a36Sopenharmony_ci depends on MEMORY_HOTPLUG 62962306a36Sopenharmony_ci 63062306a36Sopenharmony_ciconfig MMU 63162306a36Sopenharmony_ci bool 63262306a36Sopenharmony_ci default y 63362306a36Sopenharmony_ci 63462306a36Sopenharmony_ciconfig ARCH_MMAP_RND_BITS_MIN 63562306a36Sopenharmony_ci default 12 63662306a36Sopenharmony_ci 63762306a36Sopenharmony_ciconfig ARCH_MMAP_RND_BITS_MAX 63862306a36Sopenharmony_ci default 18 63962306a36Sopenharmony_ci 64062306a36Sopenharmony_ciconfig ARCH_SUPPORTS_UPROBES 64162306a36Sopenharmony_ci def_bool y 64262306a36Sopenharmony_ci 64362306a36Sopenharmony_ciconfig KASAN_SHADOW_OFFSET 64462306a36Sopenharmony_ci hex 64562306a36Sopenharmony_ci default 0x0 64662306a36Sopenharmony_ci depends on KASAN 64762306a36Sopenharmony_ci 64862306a36Sopenharmony_cimenu "Power management options" 64962306a36Sopenharmony_ci 65062306a36Sopenharmony_ciconfig ARCH_SUSPEND_POSSIBLE 65162306a36Sopenharmony_ci def_bool y 65262306a36Sopenharmony_ci 65362306a36Sopenharmony_ciconfig ARCH_HIBERNATION_POSSIBLE 65462306a36Sopenharmony_ci def_bool y 65562306a36Sopenharmony_ci 65662306a36Sopenharmony_cisource "kernel/power/Kconfig" 65762306a36Sopenharmony_cisource "drivers/acpi/Kconfig" 65862306a36Sopenharmony_ci 65962306a36Sopenharmony_ciendmenu 660