380 lines
10 KiB
Plaintext
380 lines
10 KiB
Plaintext
|
# SPDX-License-Identifier: GPL-2.0
|
||
|
config LOONGARCH
|
||
|
bool
|
||
|
default y
|
||
|
select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI
|
||
|
select ARCH_BINFMT_ELF_STATE
|
||
|
select ARCH_ENABLE_MEMORY_HOTPLUG
|
||
|
select ARCH_ENABLE_MEMORY_HOTREMOVE
|
||
|
select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI
|
||
|
select ARCH_HAS_PTE_SPECIAL
|
||
|
select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
|
||
|
select ARCH_INLINE_READ_LOCK if !PREEMPTION
|
||
|
select ARCH_INLINE_READ_LOCK_BH if !PREEMPTION
|
||
|
select ARCH_INLINE_READ_LOCK_IRQ if !PREEMPTION
|
||
|
select ARCH_INLINE_READ_LOCK_IRQSAVE if !PREEMPTION
|
||
|
select ARCH_INLINE_READ_UNLOCK if !PREEMPTION
|
||
|
select ARCH_INLINE_READ_UNLOCK_BH if !PREEMPTION
|
||
|
select ARCH_INLINE_READ_UNLOCK_IRQ if !PREEMPTION
|
||
|
select ARCH_INLINE_READ_UNLOCK_IRQRESTORE if !PREEMPTION
|
||
|
select ARCH_INLINE_WRITE_LOCK if !PREEMPTION
|
||
|
select ARCH_INLINE_WRITE_LOCK_BH if !PREEMPTION
|
||
|
select ARCH_INLINE_WRITE_LOCK_IRQ if !PREEMPTION
|
||
|
select ARCH_INLINE_WRITE_LOCK_IRQSAVE if !PREEMPTION
|
||
|
select ARCH_INLINE_WRITE_UNLOCK if !PREEMPTION
|
||
|
select ARCH_INLINE_WRITE_UNLOCK_BH if !PREEMPTION
|
||
|
select ARCH_INLINE_WRITE_UNLOCK_IRQ if !PREEMPTION
|
||
|
select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE if !PREEMPTION
|
||
|
select ARCH_INLINE_SPIN_TRYLOCK if !PREEMPTION
|
||
|
select ARCH_INLINE_SPIN_TRYLOCK_BH if !PREEMPTION
|
||
|
select ARCH_INLINE_SPIN_LOCK if !PREEMPTION
|
||
|
select ARCH_INLINE_SPIN_LOCK_BH if !PREEMPTION
|
||
|
select ARCH_INLINE_SPIN_LOCK_IRQ if !PREEMPTION
|
||
|
select ARCH_INLINE_SPIN_LOCK_IRQSAVE if !PREEMPTION
|
||
|
select ARCH_INLINE_SPIN_UNLOCK if !PREEMPTION
|
||
|
select ARCH_INLINE_SPIN_UNLOCK_BH if !PREEMPTION
|
||
|
select ARCH_INLINE_SPIN_UNLOCK_IRQ if !PREEMPTION
|
||
|
select ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE if !PREEMPTION
|
||
|
select ARCH_MIGHT_HAVE_PC_PARPORT
|
||
|
select ARCH_MIGHT_HAVE_PC_SERIO
|
||
|
select ARCH_SPARSEMEM_ENABLE
|
||
|
select ARCH_SUPPORTS_ACPI
|
||
|
select ARCH_SUPPORTS_ATOMIC_RMW
|
||
|
select ARCH_SUPPORTS_HUGETLBFS
|
||
|
select ARCH_USE_BUILTIN_BSWAP
|
||
|
select ARCH_USE_CMPXCHG_LOCKREF
|
||
|
select ARCH_USE_QUEUED_RWLOCKS
|
||
|
select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT
|
||
|
select ARCH_WANTS_NO_INSTR
|
||
|
select BUILDTIME_TABLE_SORT
|
||
|
select COMMON_CLK
|
||
|
select GENERIC_CLOCKEVENTS
|
||
|
select GENERIC_CMOS_UPDATE
|
||
|
select GENERIC_CPU_AUTOPROBE
|
||
|
select GENERIC_ENTRY
|
||
|
select GENERIC_FIND_FIRST_BIT
|
||
|
select GENERIC_GETTIMEOFDAY
|
||
|
select GENERIC_IRQ_MULTI_HANDLER
|
||
|
select GENERIC_IRQ_PROBE
|
||
|
select GENERIC_IRQ_SHOW
|
||
|
select GENERIC_LIB_ASHLDI3
|
||
|
select GENERIC_LIB_ASHRDI3
|
||
|
select GENERIC_LIB_CMPDI2
|
||
|
select GENERIC_LIB_LSHRDI3
|
||
|
select GENERIC_LIB_UCMPDI2
|
||
|
select GENERIC_PCI_IOMAP
|
||
|
select GENERIC_SCHED_CLOCK
|
||
|
select GENERIC_TIME_VSYSCALL
|
||
|
select GPIOLIB
|
||
|
select HAVE_ARCH_AUDITSYSCALL
|
||
|
select HAVE_ARCH_COMPILER_H
|
||
|
select HAVE_ARCH_MMAP_RND_BITS if MMU
|
||
|
select HAVE_ARCH_SECCOMP_FILTER
|
||
|
select HAVE_ARCH_TRACEHOOK
|
||
|
select HAVE_ARCH_TRANSPARENT_HUGEPAGE
|
||
|
select HAVE_ASM_MODVERSIONS
|
||
|
select HAVE_CONTEXT_TRACKING
|
||
|
select HAVE_COPY_THREAD_TLS
|
||
|
select HAVE_DEBUG_STACKOVERFLOW
|
||
|
select HAVE_DMA_CONTIGUOUS
|
||
|
select HAVE_EXIT_THREAD
|
||
|
select HAVE_FAST_GUP
|
||
|
select HAVE_GENERIC_VDSO
|
||
|
select HAVE_IOREMAP_PROT
|
||
|
select HAVE_IRQ_EXIT_ON_IRQ_STACK
|
||
|
select HAVE_IRQ_TIME_ACCOUNTING
|
||
|
select HAVE_MEMBLOCK
|
||
|
select HAVE_MEMBLOCK_NODE_MAP
|
||
|
select HAVE_MOD_ARCH_SPECIFIC
|
||
|
select HAVE_NMI
|
||
|
select HAVE_PERF_EVENTS
|
||
|
select HAVE_REGS_AND_STACK_ACCESS_API
|
||
|
select HAVE_RSEQ
|
||
|
select HAVE_SYSCALL_TRACEPOINTS
|
||
|
select HAVE_TIF_NOHZ
|
||
|
select HAVE_VIRT_CPU_ACCOUNTING_GEN
|
||
|
select IRQ_FORCED_THREADING
|
||
|
select IRQ_LOONGARCH_CPU
|
||
|
select MODULES_USE_ELF_RELA if MODULES
|
||
|
select OF
|
||
|
select OF_EARLY_FLATTREE
|
||
|
select PERF_USE_VMALLOC
|
||
|
select RTC_LIB
|
||
|
select SPARSE_IRQ
|
||
|
select SYSCTL_EXCEPTION_TRACE
|
||
|
select SWIOTLB
|
||
|
select TRACE_IRQFLAGS_SUPPORT
|
||
|
select ZONE_DMA32
|
||
|
|
||
|
config 32BIT
|
||
|
bool
|
||
|
|
||
|
config 64BIT
|
||
|
def_bool y
|
||
|
|
||
|
config CPU_HAS_FPU
|
||
|
bool
|
||
|
default y
|
||
|
|
||
|
config CPU_HAS_PREFETCH
|
||
|
bool
|
||
|
default y
|
||
|
|
||
|
config GENERIC_CALIBRATE_DELAY
|
||
|
def_bool y
|
||
|
|
||
|
config GENERIC_CSUM
|
||
|
def_bool y
|
||
|
|
||
|
config GENERIC_HWEIGHT
|
||
|
def_bool y
|
||
|
|
||
|
config L1_CACHE_SHIFT
|
||
|
int
|
||
|
default "6"
|
||
|
|
||
|
config LOCKDEP_SUPPORT
|
||
|
bool
|
||
|
default y
|
||
|
|
||
|
# MACH_LOONGSON32 and MACH_LOONGSON64 are delibrately carried over from the
|
||
|
# MIPS Loongson code, to preserve Loongson-specific code paths in drivers that
|
||
|
# are shared between architectures, and specifically expecting the symbols.
|
||
|
config MACH_LOONGSON32
|
||
|
def_bool 32BIT
|
||
|
|
||
|
config MACH_LOONGSON64
|
||
|
def_bool 64BIT
|
||
|
|
||
|
config PAGE_SIZE_4KB
|
||
|
bool
|
||
|
|
||
|
config PAGE_SIZE_16KB
|
||
|
bool
|
||
|
|
||
|
config PAGE_SIZE_64KB
|
||
|
bool
|
||
|
|
||
|
config PGTABLE_2LEVEL
|
||
|
bool
|
||
|
|
||
|
config PGTABLE_3LEVEL
|
||
|
bool
|
||
|
|
||
|
config PGTABLE_4LEVEL
|
||
|
bool
|
||
|
|
||
|
config PGTABLE_LEVELS
|
||
|
int
|
||
|
default 2 if PGTABLE_2LEVEL
|
||
|
default 3 if PGTABLE_3LEVEL
|
||
|
default 4 if PGTABLE_4LEVEL
|
||
|
|
||
|
config SCHED_OMIT_FRAME_POINTER
|
||
|
bool
|
||
|
default y
|
||
|
|
||
|
menu "Kernel type and options"
|
||
|
|
||
|
source "kernel/Kconfig.hz"
|
||
|
|
||
|
choice
|
||
|
prompt "Page Table Layout"
|
||
|
default 16KB_2LEVEL if 32BIT
|
||
|
default 16KB_3LEVEL if 64BIT
|
||
|
help
|
||
|
Allows choosing the page table layout, which is a combination
|
||
|
of page size and page table levels. The size of virtual memory
|
||
|
address space are determined by the page table layout.
|
||
|
|
||
|
config 4KB_3LEVEL
|
||
|
bool "4KB with 3 levels"
|
||
|
select PAGE_SIZE_4KB
|
||
|
select PGTABLE_3LEVEL
|
||
|
help
|
||
|
This option selects 4KB page size with 3 level page tables, which
|
||
|
support a maximum of 39 bits of application virtual memory.
|
||
|
|
||
|
config 4KB_4LEVEL
|
||
|
bool "4KB with 4 levels"
|
||
|
select PAGE_SIZE_4KB
|
||
|
select PGTABLE_4LEVEL
|
||
|
help
|
||
|
This option selects 4KB page size with 4 level page tables, which
|
||
|
support a maximum of 48 bits of application virtual memory.
|
||
|
|
||
|
config 16KB_2LEVEL
|
||
|
bool "16KB with 2 levels"
|
||
|
select PAGE_SIZE_16KB
|
||
|
select PGTABLE_2LEVEL
|
||
|
help
|
||
|
This option selects 16KB page size with 2 level page tables, which
|
||
|
support a maximum of 36 bits of application virtual memory.
|
||
|
|
||
|
config 16KB_3LEVEL
|
||
|
bool "16KB with 3 levels"
|
||
|
select PAGE_SIZE_16KB
|
||
|
select PGTABLE_3LEVEL
|
||
|
help
|
||
|
This option selects 16KB page size with 3 level page tables, which
|
||
|
support a maximum of 47 bits of application virtual memory.
|
||
|
|
||
|
config 64KB_2LEVEL
|
||
|
bool "64KB with 2 levels"
|
||
|
select PAGE_SIZE_64KB
|
||
|
select PGTABLE_2LEVEL
|
||
|
help
|
||
|
This option selects 64KB page size with 2 level page tables, which
|
||
|
support a maximum of 42 bits of application virtual memory.
|
||
|
|
||
|
config 64KB_3LEVEL
|
||
|
bool "64KB with 3 levels"
|
||
|
select PAGE_SIZE_64KB
|
||
|
select PGTABLE_3LEVEL
|
||
|
help
|
||
|
This option selects 64KB page size with 3 level page tables, which
|
||
|
support a maximum of 55 bits of application virtual memory.
|
||
|
|
||
|
endchoice
|
||
|
|
||
|
config CMDLINE
|
||
|
string "Built-in kernel command line"
|
||
|
help
|
||
|
For most platforms, the arguments for the kernel's command line
|
||
|
are provided at run-time, during boot. However, there are cases
|
||
|
where either no arguments are being provided or the provided
|
||
|
arguments are insufficient or even invalid.
|
||
|
|
||
|
When that occurs, it is possible to define a built-in command
|
||
|
line here and choose how the kernel should use it later on.
|
||
|
|
||
|
choice
|
||
|
prompt "Kernel command line type"
|
||
|
default CMDLINE_BOOTLOADER
|
||
|
help
|
||
|
Choose how the kernel will handle the provided built-in command
|
||
|
line.
|
||
|
|
||
|
config CMDLINE_BOOTLOADER
|
||
|
bool "Use bootloader kernel arguments if available"
|
||
|
help
|
||
|
Prefer the command-line passed by the boot loader if available.
|
||
|
Use the built-in command line as fallback in case we get nothing
|
||
|
during boot. This is the default behaviour.
|
||
|
|
||
|
config CMDLINE_EXTEND
|
||
|
bool "Use built-in to extend bootloader kernel arguments"
|
||
|
help
|
||
|
The command-line arguments provided during boot will be
|
||
|
appended to the built-in command line. This is useful in
|
||
|
cases where the provided arguments are insufficient and
|
||
|
you don't want to or cannot modify them.
|
||
|
|
||
|
config CMDLINE_FORCE
|
||
|
bool "Always use the built-in kernel command string"
|
||
|
help
|
||
|
Always use the built-in command line, even if we get one during
|
||
|
boot. This is useful in case you need to override the provided
|
||
|
command line on systems where you don't have or want control
|
||
|
over it.
|
||
|
|
||
|
endchoice
|
||
|
|
||
|
config DMI
|
||
|
bool "Enable DMI scanning"
|
||
|
select DMI_SCAN_MACHINE_NON_EFI_FALLBACK
|
||
|
default y
|
||
|
help
|
||
|
This enables SMBIOS/DMI feature for systems, and scanning of
|
||
|
DMI to identify machine quirks.
|
||
|
|
||
|
config EFI
|
||
|
bool "EFI runtime service support"
|
||
|
select UCS2_STRING
|
||
|
select EFI_PARAMS_FROM_FDT
|
||
|
select EFI_RUNTIME_WRAPPERS
|
||
|
help
|
||
|
This enables the kernel to use EFI runtime services that are
|
||
|
available (such as the EFI variable services).
|
||
|
|
||
|
config FORCE_MAX_ZONEORDER
|
||
|
int "Maximum zone order"
|
||
|
range 14 64 if PAGE_SIZE_64KB
|
||
|
default "14" if PAGE_SIZE_64KB
|
||
|
range 12 64 if PAGE_SIZE_16KB
|
||
|
default "12" if PAGE_SIZE_16KB
|
||
|
range 11 64
|
||
|
default "11"
|
||
|
help
|
||
|
The kernel memory allocator divides physically contiguous memory
|
||
|
blocks into "zones", where each zone is a power of two number of
|
||
|
pages. This option selects the largest power of two that the kernel
|
||
|
keeps in the memory allocator. If you need to allocate very large
|
||
|
blocks of physically contiguous memory, then you may need to
|
||
|
increase this value.
|
||
|
|
||
|
This config option is actually maximum order plus one. For example,
|
||
|
a value of 11 means that the largest free memory block is 2^10 pages.
|
||
|
|
||
|
The page size is not necessarily 4KB. Keep this in mind
|
||
|
when choosing a value for this option.
|
||
|
|
||
|
config SECCOMP
|
||
|
bool "Enable seccomp to safely compute untrusted bytecode"
|
||
|
depends on PROC_FS
|
||
|
default y
|
||
|
help
|
||
|
This kernel feature is useful for number crunching applications
|
||
|
that may need to compute untrusted bytecode during their
|
||
|
execution. By using pipes or other transports made available to
|
||
|
the process as file descriptors supporting the read/write
|
||
|
syscalls, it's possible to isolate those applications in
|
||
|
their own address space using seccomp. Once seccomp is
|
||
|
enabled via /proc/<pid>/seccomp, it cannot be disabled
|
||
|
and the task is only allowed to execute a few safe syscalls
|
||
|
defined by each seccomp mode.
|
||
|
|
||
|
If unsure, say Y. Only embedded should say N here.
|
||
|
|
||
|
endmenu
|
||
|
|
||
|
config ARCH_SELECT_MEMORY_MODEL
|
||
|
def_bool y
|
||
|
|
||
|
config ARCH_FLATMEM_ENABLE
|
||
|
def_bool y
|
||
|
|
||
|
config ARCH_SPARSEMEM_ENABLE
|
||
|
def_bool y
|
||
|
help
|
||
|
Say Y to support efficient handling of sparse physical memory,
|
||
|
for architectures which are either NUMA (Non-Uniform Memory Access)
|
||
|
or have huge holes in the physical address space for other reasons.
|
||
|
See <file:Documentation/vm/numa.rst> for more.
|
||
|
|
||
|
config ARCH_ENABLE_THP_MIGRATION
|
||
|
def_bool y
|
||
|
depends on TRANSPARENT_HUGEPAGE
|
||
|
|
||
|
config ARCH_MEMORY_PROBE
|
||
|
def_bool y
|
||
|
depends on MEMORY_HOTPLUG
|
||
|
|
||
|
config MMU
|
||
|
bool
|
||
|
default y
|
||
|
|
||
|
config ARCH_MMAP_RND_BITS_MIN
|
||
|
default 12
|
||
|
|
||
|
config ARCH_MMAP_RND_BITS_MAX
|
||
|
default 18
|
||
|
|
||
|
menu "Power management options"
|
||
|
|
||
|
source "drivers/acpi/Kconfig"
|
||
|
|
||
|
endmenu
|
||
|
|
||
|
source "drivers/firmware/Kconfig"
|