cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

Kconfig (12284B)


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