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 (11086B)


      1# SPDX-License-Identifier: GPL-2.0
      2config PGTABLE_LEVELS
      3	int "Page Table Levels" if !IA64_PAGE_SIZE_64KB
      4	range 3 4 if !IA64_PAGE_SIZE_64KB
      5	default 3
      6
      7menu "Processor type and features"
      8
      9config IA64
     10	bool
     11	select ARCH_BINFMT_ELF_EXTRA_PHDRS
     12	select ARCH_HAS_DMA_MARK_CLEAN
     13	select ARCH_HAS_STRNCPY_FROM_USER
     14	select ARCH_HAS_STRNLEN_USER
     15	select ARCH_MIGHT_HAVE_PC_PARPORT
     16	select ARCH_MIGHT_HAVE_PC_SERIO
     17	select ACPI
     18	select ACPI_NUMA if NUMA
     19	select ARCH_ENABLE_MEMORY_HOTPLUG
     20	select ARCH_ENABLE_MEMORY_HOTREMOVE
     21	select ARCH_SUPPORTS_ACPI
     22	select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI
     23	select ARCH_MIGHT_HAVE_ACPI_PDC if ACPI
     24	select FORCE_PCI
     25	select PCI_DOMAINS if PCI
     26	select PCI_MSI
     27	select PCI_SYSCALL if PCI
     28	select HAVE_ASM_MODVERSIONS
     29	select HAVE_UNSTABLE_SCHED_CLOCK
     30	select HAVE_EXIT_THREAD
     31	select HAVE_KPROBES
     32	select HAVE_KRETPROBES
     33	select HAVE_FTRACE_MCOUNT_RECORD
     34	select HAVE_DYNAMIC_FTRACE if (!ITANIUM)
     35	select HAVE_FUNCTION_TRACER
     36	select HAVE_SETUP_PER_CPU_AREA
     37	select TTY
     38	select HAVE_ARCH_TRACEHOOK
     39	select HAVE_FUNCTION_DESCRIPTORS
     40	select HAVE_VIRT_CPU_ACCOUNTING
     41	select HUGETLB_PAGE_SIZE_VARIABLE if HUGETLB_PAGE
     42	select VIRT_TO_BUS
     43	select GENERIC_IRQ_PROBE
     44	select GENERIC_PENDING_IRQ if SMP
     45	select GENERIC_IRQ_SHOW
     46	select GENERIC_IRQ_LEGACY
     47	select ARCH_HAVE_NMI_SAFE_CMPXCHG
     48	select GENERIC_IOMAP
     49	select GENERIC_SMP_IDLE_THREAD
     50	select ARCH_TASK_STRUCT_ON_STACK
     51	select ARCH_TASK_STRUCT_ALLOCATOR
     52	select ARCH_THREAD_STACK_ALLOCATOR
     53	select ARCH_CLOCKSOURCE_DATA
     54	select GENERIC_TIME_VSYSCALL
     55	select LEGACY_TIMER_TICK
     56	select SWIOTLB
     57	select SYSCTL_ARCH_UNALIGN_NO_WARN
     58	select HAVE_MOD_ARCH_SPECIFIC
     59	select MODULES_USE_ELF_RELA
     60	select ARCH_USE_CMPXCHG_LOCKREF
     61	select HAVE_ARCH_AUDITSYSCALL
     62	select NEED_DMA_MAP_STATE
     63	select NEED_SG_DMA_LENGTH
     64	select NUMA if !FLATMEM
     65	select PCI_MSI_ARCH_FALLBACKS if PCI_MSI
     66	select ZONE_DMA32
     67	default y
     68	help
     69	  The Itanium Processor Family is Intel's 64-bit successor to
     70	  the 32-bit X86 line.  The IA-64 Linux project has a home
     71	  page at <http://www.linuxia64.org/> and a mailing list at
     72	  <linux-ia64@vger.kernel.org>.
     73
     74config 64BIT
     75	bool
     76	select ATA_NONSTANDARD if ATA
     77	default y
     78
     79config MMU
     80	bool
     81	default y
     82
     83config STACKTRACE_SUPPORT
     84	def_bool y
     85
     86config GENERIC_LOCKBREAK
     87	def_bool n
     88
     89config GENERIC_CALIBRATE_DELAY
     90	bool
     91	default y
     92
     93config DMI
     94	bool
     95	default y
     96	select DMI_SCAN_MACHINE_NON_EFI_FALLBACK
     97
     98config EFI
     99	bool
    100	select UCS2_STRING
    101	default y
    102
    103config SCHED_OMIT_FRAME_POINTER
    104	bool
    105	default y
    106
    107config IA64_UNCACHED_ALLOCATOR
    108	bool
    109	select GENERIC_ALLOCATOR
    110
    111config ARCH_USES_PG_UNCACHED
    112	def_bool y
    113	depends on IA64_UNCACHED_ALLOCATOR
    114
    115config AUDIT_ARCH
    116	bool
    117	default y
    118
    119choice
    120	prompt "Processor type"
    121	default ITANIUM
    122
    123config ITANIUM
    124	bool "Itanium"
    125	help
    126	  Select your IA-64 processor type.  The default is Itanium.
    127	  This choice is safe for all IA-64 systems, but may not perform
    128	  optimally on systems with, say, Itanium 2 or newer processors.
    129
    130config MCKINLEY
    131	bool "Itanium 2"
    132	help
    133	  Select this to configure for an Itanium 2 (McKinley) processor.
    134
    135endchoice
    136
    137choice
    138	prompt "Kernel page size"
    139	default IA64_PAGE_SIZE_16KB
    140
    141config IA64_PAGE_SIZE_4KB
    142	bool "4KB"
    143	help
    144	  This lets you select the page size of the kernel.  For best IA-64
    145	  performance, a page size of 8KB or 16KB is recommended.  For best
    146	  IA-32 compatibility, a page size of 4KB should be selected (the vast
    147	  majority of IA-32 binaries work perfectly fine with a larger page
    148	  size).  For Itanium 2 or newer systems, a page size of 64KB can also
    149	  be selected.
    150
    151	  4KB                For best IA-32 compatibility
    152	  8KB                For best IA-64 performance
    153	  16KB               For best IA-64 performance
    154	  64KB               Requires Itanium 2 or newer processor.
    155
    156	  If you don't know what to do, choose 16KB.
    157
    158config IA64_PAGE_SIZE_8KB
    159	bool "8KB"
    160
    161config IA64_PAGE_SIZE_16KB
    162	bool "16KB"
    163
    164config IA64_PAGE_SIZE_64KB
    165	depends on !ITANIUM
    166	bool "64KB"
    167
    168endchoice
    169
    170source "kernel/Kconfig.hz"
    171
    172config IA64_BRL_EMU
    173	bool
    174	depends on ITANIUM
    175	default y
    176
    177# align cache-sensitive data to 128 bytes
    178config IA64_L1_CACHE_SHIFT
    179	int
    180	default "7" if MCKINLEY
    181	default "6" if ITANIUM
    182
    183config IA64_SGI_UV
    184	bool "SGI-UV support"
    185	help
    186	  Selecting this option will add specific support for running on SGI
    187	  UV based systems.  If you have an SGI UV system or are building a
    188	  distro kernel, select this option.
    189
    190config IA64_HP_SBA_IOMMU
    191	bool "HP SBA IOMMU support"
    192	select DMA_OPS
    193	default y
    194	help
    195	  Say Y here to add support for the SBA IOMMU found on HP zx1 and
    196	  sx1000 systems.  If you're unsure, answer Y.
    197
    198config IA64_CYCLONE
    199	bool "Cyclone (EXA) Time Source support"
    200	help
    201	  Say Y here to enable support for IBM EXA Cyclone time source.
    202	  If you're unsure, answer N.
    203
    204config FORCE_MAX_ZONEORDER
    205	int "MAX_ORDER (11 - 17)"  if !HUGETLB_PAGE
    206	range 11 17  if !HUGETLB_PAGE
    207	default "17" if HUGETLB_PAGE
    208	default "11"
    209
    210config SMP
    211	bool "Symmetric multi-processing support"
    212	help
    213	  This enables support for systems with more than one CPU. If you have
    214	  a system with only one CPU, say N.  If you have a system with more
    215	  than one CPU, say Y.
    216
    217	  If you say N here, the kernel will run on single and multiprocessor
    218	  systems, but will use only one CPU of a multiprocessor system.  If
    219	  you say Y here, the kernel will run on many, but not all,
    220	  single processor systems.  On a single processor system, the kernel
    221	  will run faster if you say N here.
    222
    223	  See also the SMP-HOWTO available at
    224	  <http://www.tldp.org/docs.html#howto>.
    225
    226	  If you don't know what to do here, say N.
    227
    228config NR_CPUS
    229	int "Maximum number of CPUs (2-4096)"
    230	range 2 4096
    231	depends on SMP
    232	default "4096"
    233	help
    234	  You should set this to the number of CPUs in your system, but
    235	  keep in mind that a kernel compiled for, e.g., 2 CPUs will boot but
    236	  only use 2 CPUs on a >2 CPU system.  Setting this to a value larger
    237	  than 64 will cause the use of a CPU mask array, causing a small
    238	  performance hit.
    239
    240config HOTPLUG_CPU
    241	bool "Support for hot-pluggable CPUs"
    242	depends on SMP
    243	default n
    244	help
    245	  Say Y here to experiment with turning CPUs off and on.  CPUs
    246	  can be controlled through /sys/devices/system/cpu/cpu#.
    247	  Say N if you want to disable CPU hotplug.
    248
    249config SCHED_SMT
    250	bool "SMT scheduler support"
    251	depends on SMP
    252	help
    253	  Improves the CPU scheduler's decision making when dealing with
    254	  Intel IA64 chips with MultiThreading at a cost of slightly increased
    255	  overhead in some places. If unsure say N here.
    256
    257config PERMIT_BSP_REMOVE
    258	bool "Support removal of Bootstrap Processor"
    259	depends on HOTPLUG_CPU
    260	default n
    261	help
    262	Say Y here if your platform SAL will support removal of BSP with HOTPLUG_CPU
    263	support. 
    264
    265config FORCE_CPEI_RETARGET
    266	bool "Force assumption that CPEI can be re-targeted"
    267	depends on PERMIT_BSP_REMOVE
    268	default n
    269	help
    270	Say Y if you need to force the assumption that CPEI can be re-targeted to
    271	any cpu in the system. This hint is available via ACPI 3.0 specifications.
    272	Tiger4 systems are capable of re-directing CPEI to any CPU other than BSP.
    273	This option it useful to enable this feature on older BIOS's as well.
    274	You can also enable this by using boot command line option force_cpei=1.
    275
    276config ARCH_SELECT_MEMORY_MODEL
    277	def_bool y
    278
    279config ARCH_FLATMEM_ENABLE
    280	def_bool y
    281
    282config ARCH_SPARSEMEM_ENABLE
    283	def_bool y
    284	select SPARSEMEM_VMEMMAP_ENABLE
    285
    286config ARCH_SPARSEMEM_DEFAULT
    287	def_bool y
    288	depends on ARCH_SPARSEMEM_ENABLE
    289
    290config NUMA
    291	bool "NUMA support"
    292	depends on !FLATMEM
    293	select SMP
    294	select USE_PERCPU_NUMA_NODE_ID
    295	help
    296	  Say Y to compile the kernel to support NUMA (Non-Uniform Memory
    297	  Access).  This option is for configuring high-end multiprocessor
    298	  server systems.  If in doubt, say N.
    299
    300config NODES_SHIFT
    301	int "Max num nodes shift(3-10)"
    302	range 3 10
    303	default "10"
    304	depends on NUMA
    305	help
    306	  This option specifies the maximum number of nodes in your SSI system.
    307	  MAX_NUMNODES will be 2^(This value).
    308	  If in doubt, use the default.
    309
    310config HAVE_ARCH_NODEDATA_EXTENSION
    311	def_bool y
    312	depends on NUMA
    313
    314config HAVE_MEMORYLESS_NODES
    315	def_bool NUMA
    316
    317config ARCH_PROC_KCORE_TEXT
    318	def_bool y
    319	depends on PROC_KCORE
    320
    321config IA64_MCA_RECOVERY
    322	bool "MCA recovery from errors other than TLB."
    323
    324config IA64_PALINFO
    325	tristate "/proc/pal support"
    326	help
    327	  If you say Y here, you are able to get PAL (Processor Abstraction
    328	  Layer) information in /proc/pal.  This contains useful information
    329	  about the processors in your systems, such as cache and TLB sizes
    330	  and the PAL firmware version in use.
    331
    332	  To use this option, you have to ensure that the "/proc file system
    333	  support" (CONFIG_PROC_FS) is enabled, too.
    334
    335config IA64_MC_ERR_INJECT
    336	tristate "MC error injection support"
    337	help
    338	  Adds support for MC error injection. If enabled, the kernel 
    339	  will provide a sysfs interface for user applications to
    340	  call MC error injection PAL procedures to inject various errors.
    341	  This is a useful tool for MCA testing.
    342
    343	  If you're unsure, do not select this option.
    344
    345config IA64_ESI
    346	bool "ESI (Extensible SAL Interface) support"
    347	help
    348	  If you say Y here, support is built into the kernel to
    349	  make ESI calls.  ESI calls are used to support vendor-specific
    350	  firmware extensions, such as the ability to inject memory-errors
    351	  for test-purposes.  If you're unsure, say N.
    352
    353config IA64_HP_AML_NFW
    354	bool "Support ACPI AML calls to native firmware"
    355	help
    356	  This driver installs a global ACPI Operation Region handler for
    357	  region 0xA1.  AML methods can use this OpRegion to call arbitrary
    358	  native firmware functions.  The driver installs the OpRegion
    359	  handler if there is an HPQ5001 device or if the user supplies
    360	  the "force" module parameter, e.g., with the "aml_nfw.force"
    361	  kernel command line option.
    362
    363config KEXEC
    364	bool "kexec system call"
    365	depends on !SMP || HOTPLUG_CPU
    366	select KEXEC_CORE
    367	help
    368	  kexec is a system call that implements the ability to shutdown your
    369	  current kernel, and to start another kernel.  It is like a reboot
    370	  but it is independent of the system firmware.   And like a reboot
    371	  you can start any kernel with it, not just Linux.
    372
    373	  The name comes from the similarity to the exec system call.
    374
    375	  It is an ongoing process to be certain the hardware in a machine
    376	  is properly shutdown, so do not be surprised if this code does not
    377	  initially work for you.  As of this writing the exact hardware
    378	  interface is strongly in flux, so no good recommendation can be
    379	  made.
    380
    381config CRASH_DUMP
    382	  bool "kernel crash dumps"
    383	  depends on IA64_MCA_RECOVERY && (!SMP || HOTPLUG_CPU)
    384	  help
    385	    Generate crash dump after being started by kexec.
    386
    387endmenu
    388
    389menu "Power management and ACPI options"
    390
    391source "kernel/power/Kconfig"
    392
    393source "drivers/acpi/Kconfig"
    394
    395if PM
    396menu "CPU Frequency scaling"
    397source "drivers/cpufreq/Kconfig"
    398endmenu
    399endif
    400
    401endmenu
    402
    403config MSPEC
    404	tristate "Memory special operations driver"
    405	depends on IA64
    406	select IA64_UNCACHED_ALLOCATOR
    407	help
    408	  If you have an ia64 and you want to enable memory special
    409	  operations support (formerly known as fetchop), say Y here,
    410	  otherwise say N.