162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ciconfig MMU
362306a36Sopenharmony_ci	def_bool y
462306a36Sopenharmony_ci
562306a36Sopenharmony_ciconfig CPU_BIG_ENDIAN
662306a36Sopenharmony_ci	def_bool y
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciconfig LOCKDEP_SUPPORT
962306a36Sopenharmony_ci	def_bool y
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ciconfig STACKTRACE_SUPPORT
1262306a36Sopenharmony_ci	def_bool y
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciconfig ARCH_HAS_ILOG2_U32
1562306a36Sopenharmony_ci	def_bool n
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ciconfig ARCH_HAS_ILOG2_U64
1862306a36Sopenharmony_ci	def_bool n
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciconfig GENERIC_HWEIGHT
2162306a36Sopenharmony_ci	def_bool y
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ciconfig GENERIC_BUG
2462306a36Sopenharmony_ci	def_bool y if BUG
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ciconfig GENERIC_BUG_RELATIVE_POINTERS
2762306a36Sopenharmony_ci	def_bool y
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ciconfig GENERIC_LOCKBREAK
3062306a36Sopenharmony_ci	def_bool y if PREEMPTION
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ciconfig PGSTE
3362306a36Sopenharmony_ci	def_bool y if KVM
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ciconfig AUDIT_ARCH
3662306a36Sopenharmony_ci	def_bool y
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ciconfig NO_IOPORT_MAP
3962306a36Sopenharmony_ci	def_bool y
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ciconfig PCI_QUIRKS
4262306a36Sopenharmony_ci	def_bool n
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ciconfig ARCH_SUPPORTS_UPROBES
4562306a36Sopenharmony_ci	def_bool y
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ciconfig KASAN_SHADOW_OFFSET
4862306a36Sopenharmony_ci	hex
4962306a36Sopenharmony_ci	depends on KASAN
5062306a36Sopenharmony_ci	default 0x1C000000000000
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ciconfig S390
5362306a36Sopenharmony_ci	def_bool y
5462306a36Sopenharmony_ci	#
5562306a36Sopenharmony_ci	# Note: keep this list sorted alphabetically
5662306a36Sopenharmony_ci	#
5762306a36Sopenharmony_ci	imply IMA_SECURE_AND_OR_TRUSTED_BOOT
5862306a36Sopenharmony_ci	select ALTERNATE_USER_ADDRESS_SPACE
5962306a36Sopenharmony_ci	select ARCH_32BIT_USTAT_F_TINODE
6062306a36Sopenharmony_ci	select ARCH_BINFMT_ELF_STATE
6162306a36Sopenharmony_ci	select ARCH_CORRECT_STACKTRACE_ON_KRETPROBE
6262306a36Sopenharmony_ci	select ARCH_ENABLE_MEMORY_HOTPLUG if SPARSEMEM
6362306a36Sopenharmony_ci	select ARCH_ENABLE_MEMORY_HOTREMOVE
6462306a36Sopenharmony_ci	select ARCH_ENABLE_SPLIT_PMD_PTLOCK if PGTABLE_LEVELS > 2
6562306a36Sopenharmony_ci	select ARCH_HAS_CURRENT_STACK_POINTER
6662306a36Sopenharmony_ci	select ARCH_HAS_DEBUG_VM_PGTABLE
6762306a36Sopenharmony_ci	select ARCH_HAS_DEBUG_WX
6862306a36Sopenharmony_ci	select ARCH_HAS_DEVMEM_IS_ALLOWED
6962306a36Sopenharmony_ci	select ARCH_HAS_ELF_RANDOMIZE
7062306a36Sopenharmony_ci	select ARCH_HAS_FORCE_DMA_UNENCRYPTED
7162306a36Sopenharmony_ci	select ARCH_HAS_FORTIFY_SOURCE
7262306a36Sopenharmony_ci	select ARCH_HAS_GCOV_PROFILE_ALL
7362306a36Sopenharmony_ci	select ARCH_HAS_GIGANTIC_PAGE
7462306a36Sopenharmony_ci	select ARCH_HAS_KCOV
7562306a36Sopenharmony_ci	select ARCH_HAS_MEMBARRIER_SYNC_CORE
7662306a36Sopenharmony_ci	select ARCH_HAS_MEM_ENCRYPT
7762306a36Sopenharmony_ci	select ARCH_HAS_NMI_SAFE_THIS_CPU_OPS
7862306a36Sopenharmony_ci	select ARCH_HAS_PTE_SPECIAL
7962306a36Sopenharmony_ci	select ARCH_HAS_SCALED_CPUTIME
8062306a36Sopenharmony_ci	select ARCH_HAS_SET_DIRECT_MAP
8162306a36Sopenharmony_ci	select ARCH_HAS_SET_MEMORY
8262306a36Sopenharmony_ci	select ARCH_HAS_STRICT_KERNEL_RWX
8362306a36Sopenharmony_ci	select ARCH_HAS_STRICT_MODULE_RWX
8462306a36Sopenharmony_ci	select ARCH_HAS_SYSCALL_WRAPPER
8562306a36Sopenharmony_ci	select ARCH_HAS_UBSAN_SANITIZE_ALL
8662306a36Sopenharmony_ci	select ARCH_HAS_VDSO_DATA
8762306a36Sopenharmony_ci	select ARCH_HAVE_NMI_SAFE_CMPXCHG
8862306a36Sopenharmony_ci	select ARCH_INLINE_READ_LOCK
8962306a36Sopenharmony_ci	select ARCH_INLINE_READ_LOCK_BH
9062306a36Sopenharmony_ci	select ARCH_INLINE_READ_LOCK_IRQ
9162306a36Sopenharmony_ci	select ARCH_INLINE_READ_LOCK_IRQSAVE
9262306a36Sopenharmony_ci	select ARCH_INLINE_READ_TRYLOCK
9362306a36Sopenharmony_ci	select ARCH_INLINE_READ_UNLOCK
9462306a36Sopenharmony_ci	select ARCH_INLINE_READ_UNLOCK_BH
9562306a36Sopenharmony_ci	select ARCH_INLINE_READ_UNLOCK_IRQ
9662306a36Sopenharmony_ci	select ARCH_INLINE_READ_UNLOCK_IRQRESTORE
9762306a36Sopenharmony_ci	select ARCH_INLINE_SPIN_LOCK
9862306a36Sopenharmony_ci	select ARCH_INLINE_SPIN_LOCK_BH
9962306a36Sopenharmony_ci	select ARCH_INLINE_SPIN_LOCK_IRQ
10062306a36Sopenharmony_ci	select ARCH_INLINE_SPIN_LOCK_IRQSAVE
10162306a36Sopenharmony_ci	select ARCH_INLINE_SPIN_TRYLOCK
10262306a36Sopenharmony_ci	select ARCH_INLINE_SPIN_TRYLOCK_BH
10362306a36Sopenharmony_ci	select ARCH_INLINE_SPIN_UNLOCK
10462306a36Sopenharmony_ci	select ARCH_INLINE_SPIN_UNLOCK_BH
10562306a36Sopenharmony_ci	select ARCH_INLINE_SPIN_UNLOCK_IRQ
10662306a36Sopenharmony_ci	select ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE
10762306a36Sopenharmony_ci	select ARCH_INLINE_WRITE_LOCK
10862306a36Sopenharmony_ci	select ARCH_INLINE_WRITE_LOCK_BH
10962306a36Sopenharmony_ci	select ARCH_INLINE_WRITE_LOCK_IRQ
11062306a36Sopenharmony_ci	select ARCH_INLINE_WRITE_LOCK_IRQSAVE
11162306a36Sopenharmony_ci	select ARCH_INLINE_WRITE_TRYLOCK
11262306a36Sopenharmony_ci	select ARCH_INLINE_WRITE_UNLOCK
11362306a36Sopenharmony_ci	select ARCH_INLINE_WRITE_UNLOCK_BH
11462306a36Sopenharmony_ci	select ARCH_INLINE_WRITE_UNLOCK_IRQ
11562306a36Sopenharmony_ci	select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
11662306a36Sopenharmony_ci	select ARCH_STACKWALK
11762306a36Sopenharmony_ci	select ARCH_SUPPORTS_ATOMIC_RMW
11862306a36Sopenharmony_ci	select ARCH_SUPPORTS_DEBUG_PAGEALLOC
11962306a36Sopenharmony_ci	select ARCH_SUPPORTS_HUGETLBFS
12062306a36Sopenharmony_ci	select ARCH_SUPPORTS_INT128 if CC_HAS_INT128 && CC_IS_CLANG
12162306a36Sopenharmony_ci	select ARCH_SUPPORTS_NUMA_BALANCING
12262306a36Sopenharmony_ci	select ARCH_SUPPORTS_PER_VMA_LOCK
12362306a36Sopenharmony_ci	select ARCH_USE_BUILTIN_BSWAP
12462306a36Sopenharmony_ci	select ARCH_USE_CMPXCHG_LOCKREF
12562306a36Sopenharmony_ci	select ARCH_USE_SYM_ANNOTATIONS
12662306a36Sopenharmony_ci	select ARCH_WANTS_DYNAMIC_TASK_STRUCT
12762306a36Sopenharmony_ci	select ARCH_WANTS_NO_INSTR
12862306a36Sopenharmony_ci	select ARCH_WANT_DEFAULT_BPF_JIT
12962306a36Sopenharmony_ci	select ARCH_WANT_IPC_PARSE_VERSION
13062306a36Sopenharmony_ci	select ARCH_WANT_KERNEL_PMD_MKWRITE
13162306a36Sopenharmony_ci	select ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP
13262306a36Sopenharmony_ci	select BUILDTIME_TABLE_SORT
13362306a36Sopenharmony_ci	select CLONE_BACKWARDS2
13462306a36Sopenharmony_ci	select DMA_OPS if PCI
13562306a36Sopenharmony_ci	select DYNAMIC_FTRACE if FUNCTION_TRACER
13662306a36Sopenharmony_ci	select FUNCTION_ALIGNMENT_8B if CC_IS_GCC
13762306a36Sopenharmony_ci	select FUNCTION_ALIGNMENT_16B if !CC_IS_GCC
13862306a36Sopenharmony_ci	select GENERIC_ALLOCATOR
13962306a36Sopenharmony_ci	select GENERIC_CPU_AUTOPROBE
14062306a36Sopenharmony_ci	select GENERIC_CPU_VULNERABILITIES
14162306a36Sopenharmony_ci	select GENERIC_ENTRY
14262306a36Sopenharmony_ci	select GENERIC_GETTIMEOFDAY
14362306a36Sopenharmony_ci	select GENERIC_PTDUMP
14462306a36Sopenharmony_ci	select GENERIC_SMP_IDLE_THREAD
14562306a36Sopenharmony_ci	select GENERIC_TIME_VSYSCALL
14662306a36Sopenharmony_ci	select GENERIC_VDSO_TIME_NS
14762306a36Sopenharmony_ci	select GENERIC_IOREMAP if PCI
14862306a36Sopenharmony_ci	select HAVE_ALIGNED_STRUCT_PAGE if SLUB
14962306a36Sopenharmony_ci	select HAVE_ARCH_AUDITSYSCALL
15062306a36Sopenharmony_ci	select HAVE_ARCH_JUMP_LABEL
15162306a36Sopenharmony_ci	select HAVE_ARCH_JUMP_LABEL_RELATIVE
15262306a36Sopenharmony_ci	select HAVE_ARCH_KASAN
15362306a36Sopenharmony_ci	select HAVE_ARCH_KASAN_VMALLOC
15462306a36Sopenharmony_ci	select HAVE_ARCH_KCSAN
15562306a36Sopenharmony_ci	select HAVE_ARCH_KFENCE
15662306a36Sopenharmony_ci	select HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET
15762306a36Sopenharmony_ci	select HAVE_ARCH_SECCOMP_FILTER
15862306a36Sopenharmony_ci	select HAVE_ARCH_SOFT_DIRTY
15962306a36Sopenharmony_ci	select HAVE_ARCH_STACKLEAK
16062306a36Sopenharmony_ci	select HAVE_ARCH_TRACEHOOK
16162306a36Sopenharmony_ci	select HAVE_ARCH_TRANSPARENT_HUGEPAGE
16262306a36Sopenharmony_ci	select HAVE_ARCH_VMAP_STACK
16362306a36Sopenharmony_ci	select HAVE_ASM_MODVERSIONS
16462306a36Sopenharmony_ci	select HAVE_CMPXCHG_DOUBLE
16562306a36Sopenharmony_ci	select HAVE_CMPXCHG_LOCAL
16662306a36Sopenharmony_ci	select HAVE_DEBUG_KMEMLEAK
16762306a36Sopenharmony_ci	select HAVE_DMA_CONTIGUOUS
16862306a36Sopenharmony_ci	select HAVE_DYNAMIC_FTRACE
16962306a36Sopenharmony_ci	select HAVE_DYNAMIC_FTRACE_WITH_ARGS
17062306a36Sopenharmony_ci	select HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
17162306a36Sopenharmony_ci	select HAVE_DYNAMIC_FTRACE_WITH_REGS
17262306a36Sopenharmony_ci	select HAVE_EBPF_JIT if HAVE_MARCH_Z196_FEATURES
17362306a36Sopenharmony_ci	select HAVE_EFFICIENT_UNALIGNED_ACCESS
17462306a36Sopenharmony_ci	select HAVE_FAST_GUP
17562306a36Sopenharmony_ci	select HAVE_FENTRY
17662306a36Sopenharmony_ci	select HAVE_FTRACE_MCOUNT_RECORD
17762306a36Sopenharmony_ci	select HAVE_FUNCTION_ARG_ACCESS_API
17862306a36Sopenharmony_ci	select HAVE_FUNCTION_ERROR_INJECTION
17962306a36Sopenharmony_ci	select HAVE_FUNCTION_GRAPH_RETVAL
18062306a36Sopenharmony_ci	select HAVE_FUNCTION_GRAPH_TRACER
18162306a36Sopenharmony_ci	select HAVE_FUNCTION_TRACER
18262306a36Sopenharmony_ci	select HAVE_GCC_PLUGINS
18362306a36Sopenharmony_ci	select HAVE_GENERIC_VDSO
18462306a36Sopenharmony_ci	select HAVE_IOREMAP_PROT if PCI
18562306a36Sopenharmony_ci	select HAVE_KERNEL_BZIP2
18662306a36Sopenharmony_ci	select HAVE_KERNEL_GZIP
18762306a36Sopenharmony_ci	select HAVE_KERNEL_LZ4
18862306a36Sopenharmony_ci	select HAVE_KERNEL_LZMA
18962306a36Sopenharmony_ci	select HAVE_KERNEL_LZO
19062306a36Sopenharmony_ci	select HAVE_KERNEL_UNCOMPRESSED
19162306a36Sopenharmony_ci	select HAVE_KERNEL_XZ
19262306a36Sopenharmony_ci	select HAVE_KERNEL_ZSTD
19362306a36Sopenharmony_ci	select HAVE_KPROBES
19462306a36Sopenharmony_ci	select HAVE_KPROBES_ON_FTRACE
19562306a36Sopenharmony_ci	select HAVE_KRETPROBES
19662306a36Sopenharmony_ci	select HAVE_KVM
19762306a36Sopenharmony_ci	select HAVE_LIVEPATCH
19862306a36Sopenharmony_ci	select HAVE_MEMBLOCK_PHYS_MAP
19962306a36Sopenharmony_ci	select HAVE_MOD_ARCH_SPECIFIC
20062306a36Sopenharmony_ci	select HAVE_NMI
20162306a36Sopenharmony_ci	select HAVE_NOP_MCOUNT
20262306a36Sopenharmony_ci	select HAVE_PCI
20362306a36Sopenharmony_ci	select HAVE_PERF_EVENTS
20462306a36Sopenharmony_ci	select HAVE_PERF_REGS
20562306a36Sopenharmony_ci	select HAVE_PERF_USER_STACK_DUMP
20662306a36Sopenharmony_ci	select HAVE_REGS_AND_STACK_ACCESS_API
20762306a36Sopenharmony_ci	select HAVE_RELIABLE_STACKTRACE
20862306a36Sopenharmony_ci	select HAVE_RETHOOK
20962306a36Sopenharmony_ci	select HAVE_RSEQ
21062306a36Sopenharmony_ci	select HAVE_SAMPLE_FTRACE_DIRECT
21162306a36Sopenharmony_ci	select HAVE_SAMPLE_FTRACE_DIRECT_MULTI
21262306a36Sopenharmony_ci	select HAVE_SETUP_PER_CPU_AREA
21362306a36Sopenharmony_ci	select HAVE_SOFTIRQ_ON_OWN_STACK
21462306a36Sopenharmony_ci	select HAVE_SYSCALL_TRACEPOINTS
21562306a36Sopenharmony_ci	select HAVE_VIRT_CPU_ACCOUNTING
21662306a36Sopenharmony_ci	select HAVE_VIRT_CPU_ACCOUNTING_IDLE
21762306a36Sopenharmony_ci	select IOMMU_HELPER		if PCI
21862306a36Sopenharmony_ci	select IOMMU_SUPPORT		if PCI
21962306a36Sopenharmony_ci	select KEXEC
22062306a36Sopenharmony_ci	select MMU_GATHER_MERGE_VMAS
22162306a36Sopenharmony_ci	select MMU_GATHER_NO_GATHER
22262306a36Sopenharmony_ci	select MMU_GATHER_RCU_TABLE_FREE
22362306a36Sopenharmony_ci	select MODULES_USE_ELF_RELA
22462306a36Sopenharmony_ci	select NEED_DMA_MAP_STATE	if PCI
22562306a36Sopenharmony_ci	select NEED_PER_CPU_EMBED_FIRST_CHUNK
22662306a36Sopenharmony_ci	select NEED_SG_DMA_LENGTH	if PCI
22762306a36Sopenharmony_ci	select OLD_SIGACTION
22862306a36Sopenharmony_ci	select OLD_SIGSUSPEND3
22962306a36Sopenharmony_ci	select PCI_DOMAINS		if PCI
23062306a36Sopenharmony_ci	select PCI_MSI			if PCI
23162306a36Sopenharmony_ci	select PCI_MSI_ARCH_FALLBACKS	if PCI_MSI
23262306a36Sopenharmony_ci	select SPARSE_IRQ
23362306a36Sopenharmony_ci	select SWIOTLB
23462306a36Sopenharmony_ci	select SYSCTL_EXCEPTION_TRACE
23562306a36Sopenharmony_ci	select THREAD_INFO_IN_TASK
23662306a36Sopenharmony_ci	select TRACE_IRQFLAGS_SUPPORT
23762306a36Sopenharmony_ci	select TTY
23862306a36Sopenharmony_ci	select VIRT_CPU_ACCOUNTING
23962306a36Sopenharmony_ci	select ZONE_DMA
24062306a36Sopenharmony_ci	# Note: keep the above list sorted alphabetically
24162306a36Sopenharmony_ci
24262306a36Sopenharmony_ciconfig SCHED_OMIT_FRAME_POINTER
24362306a36Sopenharmony_ci	def_bool y
24462306a36Sopenharmony_ci
24562306a36Sopenharmony_ciconfig PGTABLE_LEVELS
24662306a36Sopenharmony_ci	int
24762306a36Sopenharmony_ci	default 5
24862306a36Sopenharmony_ci
24962306a36Sopenharmony_cisource "kernel/livepatch/Kconfig"
25062306a36Sopenharmony_ci
25162306a36Sopenharmony_ciconfig ARCH_SUPPORTS_KEXEC
25262306a36Sopenharmony_ci	def_bool y
25362306a36Sopenharmony_ci
25462306a36Sopenharmony_ciconfig ARCH_SUPPORTS_KEXEC_FILE
25562306a36Sopenharmony_ci	def_bool y
25662306a36Sopenharmony_ci
25762306a36Sopenharmony_ciconfig ARCH_SUPPORTS_KEXEC_SIG
25862306a36Sopenharmony_ci	def_bool MODULE_SIG_FORMAT
25962306a36Sopenharmony_ci
26062306a36Sopenharmony_ciconfig ARCH_SUPPORTS_KEXEC_PURGATORY
26162306a36Sopenharmony_ci	def_bool y
26262306a36Sopenharmony_ci
26362306a36Sopenharmony_ciconfig ARCH_SUPPORTS_CRASH_DUMP
26462306a36Sopenharmony_ci	def_bool y
26562306a36Sopenharmony_ci	help
26662306a36Sopenharmony_ci	  Refer to <file:Documentation/arch/s390/zfcpdump.rst> for more details on this.
26762306a36Sopenharmony_ci	  This option also enables s390 zfcpdump.
26862306a36Sopenharmony_ci	  See also <file:Documentation/arch/s390/zfcpdump.rst>
26962306a36Sopenharmony_ci
27062306a36Sopenharmony_cimenu "Processor type and features"
27162306a36Sopenharmony_ci
27262306a36Sopenharmony_ciconfig HAVE_MARCH_Z10_FEATURES
27362306a36Sopenharmony_ci	def_bool n
27462306a36Sopenharmony_ci
27562306a36Sopenharmony_ciconfig HAVE_MARCH_Z196_FEATURES
27662306a36Sopenharmony_ci	def_bool n
27762306a36Sopenharmony_ci	select HAVE_MARCH_Z10_FEATURES
27862306a36Sopenharmony_ci
27962306a36Sopenharmony_ciconfig HAVE_MARCH_ZEC12_FEATURES
28062306a36Sopenharmony_ci	def_bool n
28162306a36Sopenharmony_ci	select HAVE_MARCH_Z196_FEATURES
28262306a36Sopenharmony_ci
28362306a36Sopenharmony_ciconfig HAVE_MARCH_Z13_FEATURES
28462306a36Sopenharmony_ci	def_bool n
28562306a36Sopenharmony_ci	select HAVE_MARCH_ZEC12_FEATURES
28662306a36Sopenharmony_ci
28762306a36Sopenharmony_ciconfig HAVE_MARCH_Z14_FEATURES
28862306a36Sopenharmony_ci	def_bool n
28962306a36Sopenharmony_ci	select HAVE_MARCH_Z13_FEATURES
29062306a36Sopenharmony_ci
29162306a36Sopenharmony_ciconfig HAVE_MARCH_Z15_FEATURES
29262306a36Sopenharmony_ci	def_bool n
29362306a36Sopenharmony_ci	select HAVE_MARCH_Z14_FEATURES
29462306a36Sopenharmony_ci
29562306a36Sopenharmony_ciconfig HAVE_MARCH_Z16_FEATURES
29662306a36Sopenharmony_ci	def_bool n
29762306a36Sopenharmony_ci	select HAVE_MARCH_Z15_FEATURES
29862306a36Sopenharmony_ci
29962306a36Sopenharmony_cichoice
30062306a36Sopenharmony_ci	prompt "Processor type"
30162306a36Sopenharmony_ci	default MARCH_Z196
30262306a36Sopenharmony_ci
30362306a36Sopenharmony_ciconfig MARCH_Z10
30462306a36Sopenharmony_ci	bool "IBM System z10"
30562306a36Sopenharmony_ci	select HAVE_MARCH_Z10_FEATURES
30662306a36Sopenharmony_ci	depends on $(cc-option,-march=z10)
30762306a36Sopenharmony_ci	help
30862306a36Sopenharmony_ci	  Select this to enable optimizations for IBM System z10 (2097 and 2098
30962306a36Sopenharmony_ci	  series). This is the oldest machine generation currently supported.
31062306a36Sopenharmony_ci
31162306a36Sopenharmony_ciconfig MARCH_Z196
31262306a36Sopenharmony_ci	bool "IBM zEnterprise 114 and 196"
31362306a36Sopenharmony_ci	select HAVE_MARCH_Z196_FEATURES
31462306a36Sopenharmony_ci	depends on $(cc-option,-march=z196)
31562306a36Sopenharmony_ci	help
31662306a36Sopenharmony_ci	  Select this to enable optimizations for IBM zEnterprise 114 and 196
31762306a36Sopenharmony_ci	  (2818 and 2817 series). The kernel will be slightly faster but will
31862306a36Sopenharmony_ci	  not work on older machines.
31962306a36Sopenharmony_ci
32062306a36Sopenharmony_ciconfig MARCH_ZEC12
32162306a36Sopenharmony_ci	bool "IBM zBC12 and zEC12"
32262306a36Sopenharmony_ci	select HAVE_MARCH_ZEC12_FEATURES
32362306a36Sopenharmony_ci	depends on $(cc-option,-march=zEC12)
32462306a36Sopenharmony_ci	help
32562306a36Sopenharmony_ci	  Select this to enable optimizations for IBM zBC12 and zEC12 (2828 and
32662306a36Sopenharmony_ci	  2827 series). The kernel will be slightly faster but will not work on
32762306a36Sopenharmony_ci	  older machines.
32862306a36Sopenharmony_ci
32962306a36Sopenharmony_ciconfig MARCH_Z13
33062306a36Sopenharmony_ci	bool "IBM z13s and z13"
33162306a36Sopenharmony_ci	select HAVE_MARCH_Z13_FEATURES
33262306a36Sopenharmony_ci	depends on $(cc-option,-march=z13)
33362306a36Sopenharmony_ci	help
33462306a36Sopenharmony_ci	  Select this to enable optimizations for IBM z13s and z13 (2965 and
33562306a36Sopenharmony_ci	  2964 series). The kernel will be slightly faster but will not work on
33662306a36Sopenharmony_ci	  older machines.
33762306a36Sopenharmony_ci
33862306a36Sopenharmony_ciconfig MARCH_Z14
33962306a36Sopenharmony_ci	bool "IBM z14 ZR1 and z14"
34062306a36Sopenharmony_ci	select HAVE_MARCH_Z14_FEATURES
34162306a36Sopenharmony_ci	depends on $(cc-option,-march=z14)
34262306a36Sopenharmony_ci	help
34362306a36Sopenharmony_ci	  Select this to enable optimizations for IBM z14 ZR1 and z14 (3907
34462306a36Sopenharmony_ci	  and 3906 series). The kernel will be slightly faster but will not
34562306a36Sopenharmony_ci	  work on older machines.
34662306a36Sopenharmony_ci
34762306a36Sopenharmony_ciconfig MARCH_Z15
34862306a36Sopenharmony_ci	bool "IBM z15"
34962306a36Sopenharmony_ci	select HAVE_MARCH_Z15_FEATURES
35062306a36Sopenharmony_ci	depends on $(cc-option,-march=z15)
35162306a36Sopenharmony_ci	help
35262306a36Sopenharmony_ci	  Select this to enable optimizations for IBM z15 (8562
35362306a36Sopenharmony_ci	  and 8561 series). The kernel will be slightly faster but will not
35462306a36Sopenharmony_ci	  work on older machines.
35562306a36Sopenharmony_ci
35662306a36Sopenharmony_ciconfig MARCH_Z16
35762306a36Sopenharmony_ci	bool "IBM z16"
35862306a36Sopenharmony_ci	select HAVE_MARCH_Z16_FEATURES
35962306a36Sopenharmony_ci	depends on $(cc-option,-march=z16)
36062306a36Sopenharmony_ci	help
36162306a36Sopenharmony_ci	  Select this to enable optimizations for IBM z16 (3931 and
36262306a36Sopenharmony_ci	  3932 series).
36362306a36Sopenharmony_ci
36462306a36Sopenharmony_ciendchoice
36562306a36Sopenharmony_ci
36662306a36Sopenharmony_ciconfig MARCH_Z10_TUNE
36762306a36Sopenharmony_ci	def_bool TUNE_Z10 || MARCH_Z10 && TUNE_DEFAULT
36862306a36Sopenharmony_ci
36962306a36Sopenharmony_ciconfig MARCH_Z196_TUNE
37062306a36Sopenharmony_ci	def_bool TUNE_Z196 || MARCH_Z196 && TUNE_DEFAULT
37162306a36Sopenharmony_ci
37262306a36Sopenharmony_ciconfig MARCH_ZEC12_TUNE
37362306a36Sopenharmony_ci	def_bool TUNE_ZEC12 || MARCH_ZEC12 && TUNE_DEFAULT
37462306a36Sopenharmony_ci
37562306a36Sopenharmony_ciconfig MARCH_Z13_TUNE
37662306a36Sopenharmony_ci	def_bool TUNE_Z13 || MARCH_Z13 && TUNE_DEFAULT
37762306a36Sopenharmony_ci
37862306a36Sopenharmony_ciconfig MARCH_Z14_TUNE
37962306a36Sopenharmony_ci	def_bool TUNE_Z14 || MARCH_Z14 && TUNE_DEFAULT
38062306a36Sopenharmony_ci
38162306a36Sopenharmony_ciconfig MARCH_Z15_TUNE
38262306a36Sopenharmony_ci	def_bool TUNE_Z15 || MARCH_Z15 && TUNE_DEFAULT
38362306a36Sopenharmony_ci
38462306a36Sopenharmony_ciconfig MARCH_Z16_TUNE
38562306a36Sopenharmony_ci	def_bool TUNE_Z16 || MARCH_Z16 && TUNE_DEFAULT
38662306a36Sopenharmony_ci
38762306a36Sopenharmony_cichoice
38862306a36Sopenharmony_ci	prompt "Tune code generation"
38962306a36Sopenharmony_ci	default TUNE_DEFAULT
39062306a36Sopenharmony_ci	help
39162306a36Sopenharmony_ci	  Cause the compiler to tune (-mtune) the generated code for a machine.
39262306a36Sopenharmony_ci	  This will make the code run faster on the selected machine but
39362306a36Sopenharmony_ci	  somewhat slower on other machines.
39462306a36Sopenharmony_ci	  This option only changes how the compiler emits instructions, not the
39562306a36Sopenharmony_ci	  selection of instructions itself, so the resulting kernel will run on
39662306a36Sopenharmony_ci	  all other machines.
39762306a36Sopenharmony_ci
39862306a36Sopenharmony_ciconfig TUNE_DEFAULT
39962306a36Sopenharmony_ci	bool "Default"
40062306a36Sopenharmony_ci	help
40162306a36Sopenharmony_ci	  Tune the generated code for the target processor for which the kernel
40262306a36Sopenharmony_ci	  will be compiled.
40362306a36Sopenharmony_ci
40462306a36Sopenharmony_ciconfig TUNE_Z10
40562306a36Sopenharmony_ci	bool "IBM System z10"
40662306a36Sopenharmony_ci
40762306a36Sopenharmony_ciconfig TUNE_Z196
40862306a36Sopenharmony_ci	bool "IBM zEnterprise 114 and 196"
40962306a36Sopenharmony_ci	depends on $(cc-option,-mtune=z196)
41062306a36Sopenharmony_ci
41162306a36Sopenharmony_ciconfig TUNE_ZEC12
41262306a36Sopenharmony_ci	bool "IBM zBC12 and zEC12"
41362306a36Sopenharmony_ci	depends on $(cc-option,-mtune=zEC12)
41462306a36Sopenharmony_ci
41562306a36Sopenharmony_ciconfig TUNE_Z13
41662306a36Sopenharmony_ci	bool "IBM z13s and z13"
41762306a36Sopenharmony_ci	depends on $(cc-option,-mtune=z13)
41862306a36Sopenharmony_ci
41962306a36Sopenharmony_ciconfig TUNE_Z14
42062306a36Sopenharmony_ci	bool "IBM z14 ZR1 and z14"
42162306a36Sopenharmony_ci	depends on $(cc-option,-mtune=z14)
42262306a36Sopenharmony_ci
42362306a36Sopenharmony_ciconfig TUNE_Z15
42462306a36Sopenharmony_ci	bool "IBM z15"
42562306a36Sopenharmony_ci	depends on $(cc-option,-mtune=z15)
42662306a36Sopenharmony_ci
42762306a36Sopenharmony_ciconfig TUNE_Z16
42862306a36Sopenharmony_ci	bool "IBM z16"
42962306a36Sopenharmony_ci	depends on $(cc-option,-mtune=z16)
43062306a36Sopenharmony_ci
43162306a36Sopenharmony_ciendchoice
43262306a36Sopenharmony_ci
43362306a36Sopenharmony_ciconfig 64BIT
43462306a36Sopenharmony_ci	def_bool y
43562306a36Sopenharmony_ci
43662306a36Sopenharmony_ciconfig COMMAND_LINE_SIZE
43762306a36Sopenharmony_ci	int "Maximum size of kernel command line"
43862306a36Sopenharmony_ci	default 4096
43962306a36Sopenharmony_ci	range 896 1048576
44062306a36Sopenharmony_ci	help
44162306a36Sopenharmony_ci	  This allows you to specify the maximum length of the kernel command
44262306a36Sopenharmony_ci	  line.
44362306a36Sopenharmony_ci
44462306a36Sopenharmony_ciconfig COMPAT
44562306a36Sopenharmony_ci	def_bool y
44662306a36Sopenharmony_ci	prompt "Kernel support for 31 bit emulation"
44762306a36Sopenharmony_ci	select ARCH_WANT_OLD_COMPAT_IPC
44862306a36Sopenharmony_ci	select COMPAT_OLD_SIGACTION
44962306a36Sopenharmony_ci	select HAVE_UID16
45062306a36Sopenharmony_ci	depends on MULTIUSER
45162306a36Sopenharmony_ci	depends on !CC_IS_CLANG
45262306a36Sopenharmony_ci	help
45362306a36Sopenharmony_ci	  Select this option if you want to enable your system kernel to
45462306a36Sopenharmony_ci	  handle system-calls from ELF binaries for 31 bit ESA.  This option
45562306a36Sopenharmony_ci	  (and some other stuff like libraries and such) is needed for
45662306a36Sopenharmony_ci	  executing 31 bit applications.  It is safe to say "Y".
45762306a36Sopenharmony_ci
45862306a36Sopenharmony_ciconfig SMP
45962306a36Sopenharmony_ci	def_bool y
46062306a36Sopenharmony_ci
46162306a36Sopenharmony_ciconfig NR_CPUS
46262306a36Sopenharmony_ci	int "Maximum number of CPUs (2-512)"
46362306a36Sopenharmony_ci	range 2 512
46462306a36Sopenharmony_ci	default "64"
46562306a36Sopenharmony_ci	help
46662306a36Sopenharmony_ci	  This allows you to specify the maximum number of CPUs which this
46762306a36Sopenharmony_ci	  kernel will support. The maximum supported value is 512 and the
46862306a36Sopenharmony_ci	  minimum value which makes sense is 2.
46962306a36Sopenharmony_ci
47062306a36Sopenharmony_ci	  This is purely to save memory - each supported CPU adds
47162306a36Sopenharmony_ci	  approximately sixteen kilobytes to the kernel image.
47262306a36Sopenharmony_ci
47362306a36Sopenharmony_ciconfig HOTPLUG_CPU
47462306a36Sopenharmony_ci	def_bool y
47562306a36Sopenharmony_ci
47662306a36Sopenharmony_ciconfig NUMA
47762306a36Sopenharmony_ci	bool "NUMA support"
47862306a36Sopenharmony_ci	depends on SCHED_TOPOLOGY
47962306a36Sopenharmony_ci	default n
48062306a36Sopenharmony_ci	help
48162306a36Sopenharmony_ci	  Enable NUMA support
48262306a36Sopenharmony_ci
48362306a36Sopenharmony_ci	  This option adds NUMA support to the kernel.
48462306a36Sopenharmony_ci
48562306a36Sopenharmony_ciconfig NODES_SHIFT
48662306a36Sopenharmony_ci	int
48762306a36Sopenharmony_ci	depends on NUMA
48862306a36Sopenharmony_ci	default "1"
48962306a36Sopenharmony_ci
49062306a36Sopenharmony_ciconfig SCHED_SMT
49162306a36Sopenharmony_ci	def_bool n
49262306a36Sopenharmony_ci
49362306a36Sopenharmony_ciconfig SCHED_MC
49462306a36Sopenharmony_ci	def_bool n
49562306a36Sopenharmony_ci
49662306a36Sopenharmony_ciconfig SCHED_TOPOLOGY
49762306a36Sopenharmony_ci	def_bool y
49862306a36Sopenharmony_ci	prompt "Topology scheduler support"
49962306a36Sopenharmony_ci	select SCHED_SMT
50062306a36Sopenharmony_ci	select SCHED_MC
50162306a36Sopenharmony_ci	help
50262306a36Sopenharmony_ci	  Topology scheduler support improves the CPU scheduler's decision
50362306a36Sopenharmony_ci	  making when dealing with machines that have multi-threading,
50462306a36Sopenharmony_ci	  multiple cores or multiple books.
50562306a36Sopenharmony_ci
50662306a36Sopenharmony_cisource "kernel/Kconfig.hz"
50762306a36Sopenharmony_ci
50862306a36Sopenharmony_ciconfig CERT_STORE
50962306a36Sopenharmony_ci	bool "Get user certificates via DIAG320"
51062306a36Sopenharmony_ci	depends on KEYS
51162306a36Sopenharmony_ci	select CRYPTO_LIB_SHA256
51262306a36Sopenharmony_ci	help
51362306a36Sopenharmony_ci	  Enable this option if you want to access user-provided secure boot
51462306a36Sopenharmony_ci	  certificates via DIAG 0x320.
51562306a36Sopenharmony_ci
51662306a36Sopenharmony_ci	  These certificates will be made available via the keyring named
51762306a36Sopenharmony_ci	  'cert_store'.
51862306a36Sopenharmony_ci
51962306a36Sopenharmony_ciconfig KERNEL_NOBP
52062306a36Sopenharmony_ci	def_bool n
52162306a36Sopenharmony_ci	prompt "Enable modified branch prediction for the kernel by default"
52262306a36Sopenharmony_ci	help
52362306a36Sopenharmony_ci	  If this option is selected the kernel will switch to a modified
52462306a36Sopenharmony_ci	  branch prediction mode if the firmware interface is available.
52562306a36Sopenharmony_ci	  The modified branch prediction mode improves the behaviour in
52662306a36Sopenharmony_ci	  regard to speculative execution.
52762306a36Sopenharmony_ci
52862306a36Sopenharmony_ci	  With the option enabled the kernel parameter "nobp=0" or "nospec"
52962306a36Sopenharmony_ci	  can be used to run the kernel in the normal branch prediction mode.
53062306a36Sopenharmony_ci
53162306a36Sopenharmony_ci	  With the option disabled the modified branch prediction mode is
53262306a36Sopenharmony_ci	  enabled with the "nobp=1" kernel parameter.
53362306a36Sopenharmony_ci
53462306a36Sopenharmony_ci	  If unsure, say N.
53562306a36Sopenharmony_ci
53662306a36Sopenharmony_ciconfig EXPOLINE
53762306a36Sopenharmony_ci	def_bool n
53862306a36Sopenharmony_ci	depends on $(cc-option,-mindirect-branch=thunk)
53962306a36Sopenharmony_ci	prompt "Avoid speculative indirect branches in the kernel"
54062306a36Sopenharmony_ci	help
54162306a36Sopenharmony_ci	  Compile the kernel with the expoline compiler options to guard
54262306a36Sopenharmony_ci	  against kernel-to-user data leaks by avoiding speculative indirect
54362306a36Sopenharmony_ci	  branches.
54462306a36Sopenharmony_ci	  Requires a compiler with -mindirect-branch=thunk support for full
54562306a36Sopenharmony_ci	  protection. The kernel may run slower.
54662306a36Sopenharmony_ci
54762306a36Sopenharmony_ci	  If unsure, say N.
54862306a36Sopenharmony_ci
54962306a36Sopenharmony_ciconfig EXPOLINE_EXTERN
55062306a36Sopenharmony_ci	def_bool n
55162306a36Sopenharmony_ci	depends on EXPOLINE
55262306a36Sopenharmony_ci	depends on CC_IS_GCC && GCC_VERSION >= 110200
55362306a36Sopenharmony_ci	depends on $(success,$(srctree)/arch/s390/tools/gcc-thunk-extern.sh $(CC))
55462306a36Sopenharmony_ci	prompt "Generate expolines as extern functions."
55562306a36Sopenharmony_ci	help
55662306a36Sopenharmony_ci	  This option is required for some tooling like kpatch. The kernel is
55762306a36Sopenharmony_ci	  compiled with -mindirect-branch=thunk-extern and requires a newer
55862306a36Sopenharmony_ci	  compiler.
55962306a36Sopenharmony_ci
56062306a36Sopenharmony_ci	  If unsure, say N.
56162306a36Sopenharmony_ci
56262306a36Sopenharmony_cichoice
56362306a36Sopenharmony_ci	prompt "Expoline default"
56462306a36Sopenharmony_ci	depends on EXPOLINE
56562306a36Sopenharmony_ci	default EXPOLINE_FULL
56662306a36Sopenharmony_ci
56762306a36Sopenharmony_ciconfig EXPOLINE_OFF
56862306a36Sopenharmony_ci	bool "spectre_v2=off"
56962306a36Sopenharmony_ci
57062306a36Sopenharmony_ciconfig EXPOLINE_AUTO
57162306a36Sopenharmony_ci	bool "spectre_v2=auto"
57262306a36Sopenharmony_ci
57362306a36Sopenharmony_ciconfig EXPOLINE_FULL
57462306a36Sopenharmony_ci	bool "spectre_v2=on"
57562306a36Sopenharmony_ci
57662306a36Sopenharmony_ciendchoice
57762306a36Sopenharmony_ci
57862306a36Sopenharmony_ciconfig RELOCATABLE
57962306a36Sopenharmony_ci	def_bool y
58062306a36Sopenharmony_ci	help
58162306a36Sopenharmony_ci	  This builds a kernel image that retains relocation information
58262306a36Sopenharmony_ci	  so it can be loaded at an arbitrary address.
58362306a36Sopenharmony_ci	  The kernel is linked as a position-independent executable (PIE)
58462306a36Sopenharmony_ci	  and contains dynamic relocations which are processed early in the
58562306a36Sopenharmony_ci	  bootup process.
58662306a36Sopenharmony_ci	  The relocations make the kernel image about 15% larger (compressed
58762306a36Sopenharmony_ci	  10%), but are discarded at runtime.
58862306a36Sopenharmony_ci	  Note: this option exists only for documentation purposes, please do
58962306a36Sopenharmony_ci	  not remove it.
59062306a36Sopenharmony_ci
59162306a36Sopenharmony_ciconfig RANDOMIZE_BASE
59262306a36Sopenharmony_ci	bool "Randomize the address of the kernel image (KASLR)"
59362306a36Sopenharmony_ci	default y
59462306a36Sopenharmony_ci	help
59562306a36Sopenharmony_ci	  In support of Kernel Address Space Layout Randomization (KASLR),
59662306a36Sopenharmony_ci	  this randomizes the address at which the kernel image is loaded,
59762306a36Sopenharmony_ci	  as a security feature that deters exploit attempts relying on
59862306a36Sopenharmony_ci	  knowledge of the location of kernel internals.
59962306a36Sopenharmony_ci
60062306a36Sopenharmony_ciendmenu
60162306a36Sopenharmony_ci
60262306a36Sopenharmony_cimenu "Memory setup"
60362306a36Sopenharmony_ci
60462306a36Sopenharmony_ciconfig ARCH_SPARSEMEM_ENABLE
60562306a36Sopenharmony_ci	def_bool y
60662306a36Sopenharmony_ci	select SPARSEMEM_VMEMMAP_ENABLE
60762306a36Sopenharmony_ci	select SPARSEMEM_VMEMMAP
60862306a36Sopenharmony_ci
60962306a36Sopenharmony_ciconfig ARCH_SPARSEMEM_DEFAULT
61062306a36Sopenharmony_ci	def_bool y
61162306a36Sopenharmony_ci
61262306a36Sopenharmony_ciconfig MAX_PHYSMEM_BITS
61362306a36Sopenharmony_ci	int "Maximum size of supported physical memory in bits (42-53)"
61462306a36Sopenharmony_ci	range 42 53
61562306a36Sopenharmony_ci	default "46"
61662306a36Sopenharmony_ci	help
61762306a36Sopenharmony_ci	  This option specifies the maximum supported size of physical memory
61862306a36Sopenharmony_ci	  in bits. Supported is any size between 2^42 (4TB) and 2^53 (8PB).
61962306a36Sopenharmony_ci	  Increasing the number of bits also increases the kernel image size.
62062306a36Sopenharmony_ci	  By default 46 bits (64TB) are supported.
62162306a36Sopenharmony_ci
62262306a36Sopenharmony_ciconfig CHECK_STACK
62362306a36Sopenharmony_ci	def_bool y
62462306a36Sopenharmony_ci	depends on !VMAP_STACK
62562306a36Sopenharmony_ci	prompt "Detect kernel stack overflow"
62662306a36Sopenharmony_ci	help
62762306a36Sopenharmony_ci	  This option enables the compiler option -mstack-guard and
62862306a36Sopenharmony_ci	  -mstack-size if they are available. If the compiler supports them
62962306a36Sopenharmony_ci	  it will emit additional code to each function prolog to trigger
63062306a36Sopenharmony_ci	  an illegal operation if the kernel stack is about to overflow.
63162306a36Sopenharmony_ci
63262306a36Sopenharmony_ci	  Say N if you are unsure.
63362306a36Sopenharmony_ci
63462306a36Sopenharmony_ciconfig STACK_GUARD
63562306a36Sopenharmony_ci	int "Size of the guard area (128-1024)"
63662306a36Sopenharmony_ci	range 128 1024
63762306a36Sopenharmony_ci	depends on CHECK_STACK
63862306a36Sopenharmony_ci	default "256"
63962306a36Sopenharmony_ci	help
64062306a36Sopenharmony_ci	  This allows you to specify the size of the guard area at the lower
64162306a36Sopenharmony_ci	  end of the kernel stack. If the kernel stack points into the guard
64262306a36Sopenharmony_ci	  area on function entry an illegal operation is triggered. The size
64362306a36Sopenharmony_ci	  needs to be a power of 2. Please keep in mind that the size of an
64462306a36Sopenharmony_ci	  interrupt frame is 184 bytes for 31 bit and 328 bytes on 64 bit.
64562306a36Sopenharmony_ci	  The minimum size for the stack guard should be 256 for 31 bit and
64662306a36Sopenharmony_ci	  512 for 64 bit.
64762306a36Sopenharmony_ci
64862306a36Sopenharmony_ciendmenu
64962306a36Sopenharmony_ci
65062306a36Sopenharmony_cimenu "I/O subsystem"
65162306a36Sopenharmony_ci
65262306a36Sopenharmony_ciconfig QDIO
65362306a36Sopenharmony_ci	def_tristate y
65462306a36Sopenharmony_ci	prompt "QDIO support"
65562306a36Sopenharmony_ci	help
65662306a36Sopenharmony_ci	  This driver provides the Queued Direct I/O base support for
65762306a36Sopenharmony_ci	  IBM System z.
65862306a36Sopenharmony_ci
65962306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
66062306a36Sopenharmony_ci	  module will be called qdio.
66162306a36Sopenharmony_ci
66262306a36Sopenharmony_ci	  If unsure, say Y.
66362306a36Sopenharmony_ci
66462306a36Sopenharmony_ciif PCI
66562306a36Sopenharmony_ci
66662306a36Sopenharmony_ciconfig PCI_NR_FUNCTIONS
66762306a36Sopenharmony_ci	int "Maximum number of PCI functions (1-4096)"
66862306a36Sopenharmony_ci	range 1 4096
66962306a36Sopenharmony_ci	default "512"
67062306a36Sopenharmony_ci	help
67162306a36Sopenharmony_ci	  This allows you to specify the maximum number of PCI functions which
67262306a36Sopenharmony_ci	  this kernel will support.
67362306a36Sopenharmony_ci
67462306a36Sopenharmony_ciendif # PCI
67562306a36Sopenharmony_ci
67662306a36Sopenharmony_ciconfig HAS_IOMEM
67762306a36Sopenharmony_ci	def_bool PCI
67862306a36Sopenharmony_ci
67962306a36Sopenharmony_ciconfig CHSC_SCH
68062306a36Sopenharmony_ci	def_tristate m
68162306a36Sopenharmony_ci	prompt "Support for CHSC subchannels"
68262306a36Sopenharmony_ci	help
68362306a36Sopenharmony_ci	  This driver allows usage of CHSC subchannels. A CHSC subchannel
68462306a36Sopenharmony_ci	  is usually present on LPAR only.
68562306a36Sopenharmony_ci	  The driver creates a device /dev/chsc, which may be used to
68662306a36Sopenharmony_ci	  obtain I/O configuration information about the machine and
68762306a36Sopenharmony_ci	  to issue asynchronous chsc commands (DANGEROUS).
68862306a36Sopenharmony_ci	  You will usually only want to use this interface on a special
68962306a36Sopenharmony_ci	  LPAR designated for system management.
69062306a36Sopenharmony_ci
69162306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
69262306a36Sopenharmony_ci	  module will be called chsc_sch.
69362306a36Sopenharmony_ci
69462306a36Sopenharmony_ci	  If unsure, say N.
69562306a36Sopenharmony_ci
69662306a36Sopenharmony_ciconfig SCM_BUS
69762306a36Sopenharmony_ci	def_bool y
69862306a36Sopenharmony_ci	prompt "SCM bus driver"
69962306a36Sopenharmony_ci	help
70062306a36Sopenharmony_ci	  Bus driver for Storage Class Memory.
70162306a36Sopenharmony_ci
70262306a36Sopenharmony_ciconfig EADM_SCH
70362306a36Sopenharmony_ci	def_tristate m
70462306a36Sopenharmony_ci	prompt "Support for EADM subchannels"
70562306a36Sopenharmony_ci	depends on SCM_BUS
70662306a36Sopenharmony_ci	help
70762306a36Sopenharmony_ci	  This driver allows usage of EADM subchannels. EADM subchannels act
70862306a36Sopenharmony_ci	  as a communication vehicle for SCM increments.
70962306a36Sopenharmony_ci
71062306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
71162306a36Sopenharmony_ci	  module will be called eadm_sch.
71262306a36Sopenharmony_ci
71362306a36Sopenharmony_ciconfig VFIO_CCW
71462306a36Sopenharmony_ci	def_tristate n
71562306a36Sopenharmony_ci	prompt "Support for VFIO-CCW subchannels"
71662306a36Sopenharmony_ci	depends on VFIO
71762306a36Sopenharmony_ci	select VFIO_MDEV
71862306a36Sopenharmony_ci	help
71962306a36Sopenharmony_ci	  This driver allows usage of I/O subchannels via VFIO-CCW.
72062306a36Sopenharmony_ci
72162306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
72262306a36Sopenharmony_ci	  module will be called vfio_ccw.
72362306a36Sopenharmony_ci
72462306a36Sopenharmony_ciconfig VFIO_AP
72562306a36Sopenharmony_ci	def_tristate n
72662306a36Sopenharmony_ci	prompt "VFIO support for AP devices"
72762306a36Sopenharmony_ci	depends on KVM
72862306a36Sopenharmony_ci	depends on VFIO
72962306a36Sopenharmony_ci	depends on ZCRYPT
73062306a36Sopenharmony_ci	select VFIO_MDEV
73162306a36Sopenharmony_ci	help
73262306a36Sopenharmony_ci	  This driver grants access to Adjunct Processor (AP) devices
73362306a36Sopenharmony_ci	  via the VFIO mediated device interface.
73462306a36Sopenharmony_ci
73562306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
73662306a36Sopenharmony_ci	  will be called vfio_ap.
73762306a36Sopenharmony_ci
73862306a36Sopenharmony_ciendmenu
73962306a36Sopenharmony_ci
74062306a36Sopenharmony_ciconfig CCW
74162306a36Sopenharmony_ci	def_bool y
74262306a36Sopenharmony_ci
74362306a36Sopenharmony_ciconfig HAVE_PNETID
74462306a36Sopenharmony_ci	tristate
74562306a36Sopenharmony_ci	default (SMC || CCWGROUP)
74662306a36Sopenharmony_ci
74762306a36Sopenharmony_cimenu "Virtualization"
74862306a36Sopenharmony_ci
74962306a36Sopenharmony_ciconfig PROTECTED_VIRTUALIZATION_GUEST
75062306a36Sopenharmony_ci	def_bool n
75162306a36Sopenharmony_ci	prompt "Protected virtualization guest support"
75262306a36Sopenharmony_ci	help
75362306a36Sopenharmony_ci	  Select this option, if you want to be able to run this
75462306a36Sopenharmony_ci	  kernel as a protected virtualization KVM guest.
75562306a36Sopenharmony_ci	  Protected virtualization capable machines have a mini hypervisor
75662306a36Sopenharmony_ci	  located at machine level (an ultravisor). With help of the
75762306a36Sopenharmony_ci	  Ultravisor, KVM will be able to run "protected" VMs, special
75862306a36Sopenharmony_ci	  VMs whose memory and management data are unavailable to KVM.
75962306a36Sopenharmony_ci
76062306a36Sopenharmony_ciconfig PFAULT
76162306a36Sopenharmony_ci	def_bool y
76262306a36Sopenharmony_ci	prompt "Pseudo page fault support"
76362306a36Sopenharmony_ci	help
76462306a36Sopenharmony_ci	  Select this option, if you want to use PFAULT pseudo page fault
76562306a36Sopenharmony_ci	  handling under VM. If running native or in LPAR, this option
76662306a36Sopenharmony_ci	  has no effect. If your VM does not support PFAULT, PAGEEX
76762306a36Sopenharmony_ci	  pseudo page fault handling will be used.
76862306a36Sopenharmony_ci	  Note that VM 4.2 supports PFAULT but has a bug in its
76962306a36Sopenharmony_ci	  implementation that causes some problems.
77062306a36Sopenharmony_ci	  Everybody who wants to run Linux under VM != VM4.2 should select
77162306a36Sopenharmony_ci	  this option.
77262306a36Sopenharmony_ci
77362306a36Sopenharmony_ciconfig CMM
77462306a36Sopenharmony_ci	def_tristate n
77562306a36Sopenharmony_ci	prompt "Cooperative memory management"
77662306a36Sopenharmony_ci	help
77762306a36Sopenharmony_ci	  Select this option, if you want to enable the kernel interface
77862306a36Sopenharmony_ci	  to reduce the memory size of the system. This is accomplished
77962306a36Sopenharmony_ci	  by allocating pages of memory and put them "on hold". This only
78062306a36Sopenharmony_ci	  makes sense for a system running under VM where the unused pages
78162306a36Sopenharmony_ci	  will be reused by VM for other guest systems. The interface
78262306a36Sopenharmony_ci	  allows an external monitor to balance memory of many systems.
78362306a36Sopenharmony_ci	  Everybody who wants to run Linux under VM should select this
78462306a36Sopenharmony_ci	  option.
78562306a36Sopenharmony_ci
78662306a36Sopenharmony_ciconfig CMM_IUCV
78762306a36Sopenharmony_ci	def_bool y
78862306a36Sopenharmony_ci	prompt "IUCV special message interface to cooperative memory management"
78962306a36Sopenharmony_ci	depends on CMM && (SMSGIUCV=y || CMM=SMSGIUCV)
79062306a36Sopenharmony_ci	help
79162306a36Sopenharmony_ci	  Select this option to enable the special message interface to
79262306a36Sopenharmony_ci	  the cooperative memory management.
79362306a36Sopenharmony_ci
79462306a36Sopenharmony_ciconfig APPLDATA_BASE
79562306a36Sopenharmony_ci	def_bool n
79662306a36Sopenharmony_ci	prompt "Linux - VM Monitor Stream, base infrastructure"
79762306a36Sopenharmony_ci	depends on PROC_SYSCTL
79862306a36Sopenharmony_ci	help
79962306a36Sopenharmony_ci	  This provides a kernel interface for creating and updating z/VM APPLDATA
80062306a36Sopenharmony_ci	  monitor records. The monitor records are updated at certain time
80162306a36Sopenharmony_ci	  intervals, once the timer is started.
80262306a36Sopenharmony_ci	  Writing 1 or 0 to /proc/appldata/timer starts(1) or stops(0) the timer,
80362306a36Sopenharmony_ci	  i.e. enables or disables monitoring on the Linux side.
80462306a36Sopenharmony_ci	  A custom interval value (in seconds) can be written to
80562306a36Sopenharmony_ci	  /proc/appldata/interval.
80662306a36Sopenharmony_ci
80762306a36Sopenharmony_ci	  Defaults are 60 seconds interval and timer off.
80862306a36Sopenharmony_ci	  The /proc entries can also be read from, showing the current settings.
80962306a36Sopenharmony_ci
81062306a36Sopenharmony_ciconfig APPLDATA_MEM
81162306a36Sopenharmony_ci	def_tristate m
81262306a36Sopenharmony_ci	prompt "Monitor memory management statistics"
81362306a36Sopenharmony_ci	depends on APPLDATA_BASE && VM_EVENT_COUNTERS
81462306a36Sopenharmony_ci	help
81562306a36Sopenharmony_ci	  This provides memory management related data to the Linux - VM Monitor
81662306a36Sopenharmony_ci	  Stream, like paging/swapping rate, memory utilisation, etc.
81762306a36Sopenharmony_ci	  Writing 1 or 0 to /proc/appldata/memory creates(1) or removes(0) a z/VM
81862306a36Sopenharmony_ci	  APPLDATA monitor record, i.e. enables or disables monitoring this record
81962306a36Sopenharmony_ci	  on the z/VM side.
82062306a36Sopenharmony_ci
82162306a36Sopenharmony_ci	  Default is disabled.
82262306a36Sopenharmony_ci	  The /proc entry can also be read from, showing the current settings.
82362306a36Sopenharmony_ci
82462306a36Sopenharmony_ci	  This can also be compiled as a module, which will be called
82562306a36Sopenharmony_ci	  appldata_mem.o.
82662306a36Sopenharmony_ci
82762306a36Sopenharmony_ciconfig APPLDATA_OS
82862306a36Sopenharmony_ci	def_tristate m
82962306a36Sopenharmony_ci	prompt "Monitor OS statistics"
83062306a36Sopenharmony_ci	depends on APPLDATA_BASE
83162306a36Sopenharmony_ci	help
83262306a36Sopenharmony_ci	  This provides OS related data to the Linux - VM Monitor Stream, like
83362306a36Sopenharmony_ci	  CPU utilisation, etc.
83462306a36Sopenharmony_ci	  Writing 1 or 0 to /proc/appldata/os creates(1) or removes(0) a z/VM
83562306a36Sopenharmony_ci	  APPLDATA monitor record, i.e. enables or disables monitoring this record
83662306a36Sopenharmony_ci	  on the z/VM side.
83762306a36Sopenharmony_ci
83862306a36Sopenharmony_ci	  Default is disabled.
83962306a36Sopenharmony_ci	  This can also be compiled as a module, which will be called
84062306a36Sopenharmony_ci	  appldata_os.o.
84162306a36Sopenharmony_ci
84262306a36Sopenharmony_ciconfig APPLDATA_NET_SUM
84362306a36Sopenharmony_ci	def_tristate m
84462306a36Sopenharmony_ci	prompt "Monitor overall network statistics"
84562306a36Sopenharmony_ci	depends on APPLDATA_BASE && NET
84662306a36Sopenharmony_ci	help
84762306a36Sopenharmony_ci	  This provides network related data to the Linux - VM Monitor Stream,
84862306a36Sopenharmony_ci	  currently there is only a total sum of network I/O statistics, no
84962306a36Sopenharmony_ci	  per-interface data.
85062306a36Sopenharmony_ci	  Writing 1 or 0 to /proc/appldata/net_sum creates(1) or removes(0) a z/VM
85162306a36Sopenharmony_ci	  APPLDATA monitor record, i.e. enables or disables monitoring this record
85262306a36Sopenharmony_ci	  on the z/VM side.
85362306a36Sopenharmony_ci
85462306a36Sopenharmony_ci	  Default is disabled.
85562306a36Sopenharmony_ci	  This can also be compiled as a module, which will be called
85662306a36Sopenharmony_ci	  appldata_net_sum.o.
85762306a36Sopenharmony_ci
85862306a36Sopenharmony_ciconfig S390_HYPFS
85962306a36Sopenharmony_ci	def_bool y
86062306a36Sopenharmony_ci	prompt "s390 hypervisor information"
86162306a36Sopenharmony_ci	help
86262306a36Sopenharmony_ci	  This provides several binary files at (debugfs)/s390_hypfs/ to
86362306a36Sopenharmony_ci	  provide accounting information in an s390 hypervisor environment.
86462306a36Sopenharmony_ci
86562306a36Sopenharmony_ciconfig S390_HYPFS_FS
86662306a36Sopenharmony_ci	def_bool n
86762306a36Sopenharmony_ci	prompt "s390 hypervisor file system support"
86862306a36Sopenharmony_ci	select SYS_HYPERVISOR
86962306a36Sopenharmony_ci	depends on S390_HYPFS
87062306a36Sopenharmony_ci	help
87162306a36Sopenharmony_ci	  This is a virtual file system intended to provide accounting
87262306a36Sopenharmony_ci	  information in an s390 hypervisor environment. This file system
87362306a36Sopenharmony_ci	  is deprecated and should not be used.
87462306a36Sopenharmony_ci
87562306a36Sopenharmony_ci	  Say N if you are unsure.
87662306a36Sopenharmony_ci
87762306a36Sopenharmony_cisource "arch/s390/kvm/Kconfig"
87862306a36Sopenharmony_ci
87962306a36Sopenharmony_ciconfig S390_GUEST
88062306a36Sopenharmony_ci	def_bool y
88162306a36Sopenharmony_ci	prompt "s390 support for virtio devices"
88262306a36Sopenharmony_ci	select TTY
88362306a36Sopenharmony_ci	select VIRTUALIZATION
88462306a36Sopenharmony_ci	select VIRTIO
88562306a36Sopenharmony_ci	help
88662306a36Sopenharmony_ci	  Enabling this option adds support for virtio based paravirtual device
88762306a36Sopenharmony_ci	  drivers on s390.
88862306a36Sopenharmony_ci
88962306a36Sopenharmony_ci	  Select this option if you want to run the kernel as a guest under
89062306a36Sopenharmony_ci	  the KVM hypervisor.
89162306a36Sopenharmony_ci
89262306a36Sopenharmony_ciendmenu
89362306a36Sopenharmony_ci
89462306a36Sopenharmony_ciconfig S390_MODULES_SANITY_TEST_HELPERS
89562306a36Sopenharmony_ci	def_bool n
89662306a36Sopenharmony_ci
89762306a36Sopenharmony_cimenu "Selftests"
89862306a36Sopenharmony_ci
89962306a36Sopenharmony_ciconfig S390_UNWIND_SELFTEST
90062306a36Sopenharmony_ci	def_tristate n
90162306a36Sopenharmony_ci	depends on KUNIT
90262306a36Sopenharmony_ci	default KUNIT_ALL_TESTS
90362306a36Sopenharmony_ci	prompt "Test unwind functions"
90462306a36Sopenharmony_ci	help
90562306a36Sopenharmony_ci	  This option enables s390 specific stack unwinder testing kernel
90662306a36Sopenharmony_ci	  module. This option is not useful for distributions or general
90762306a36Sopenharmony_ci	  kernels, but only for kernel developers working on architecture code.
90862306a36Sopenharmony_ci
90962306a36Sopenharmony_ci	  Say N if you are unsure.
91062306a36Sopenharmony_ci
91162306a36Sopenharmony_ciconfig S390_KPROBES_SANITY_TEST
91262306a36Sopenharmony_ci	def_tristate n
91362306a36Sopenharmony_ci	prompt "Enable s390 specific kprobes tests"
91462306a36Sopenharmony_ci	depends on KPROBES
91562306a36Sopenharmony_ci	depends on KUNIT
91662306a36Sopenharmony_ci	help
91762306a36Sopenharmony_ci	  This option enables an s390 specific kprobes test module. This option
91862306a36Sopenharmony_ci	  is not useful for distributions or general kernels, but only for kernel
91962306a36Sopenharmony_ci	  developers working on architecture code.
92062306a36Sopenharmony_ci
92162306a36Sopenharmony_ci	  Say N if you are unsure.
92262306a36Sopenharmony_ci
92362306a36Sopenharmony_ciconfig S390_MODULES_SANITY_TEST
92462306a36Sopenharmony_ci	def_tristate n
92562306a36Sopenharmony_ci	depends on KUNIT
92662306a36Sopenharmony_ci	default KUNIT_ALL_TESTS
92762306a36Sopenharmony_ci	prompt "Enable s390 specific modules tests"
92862306a36Sopenharmony_ci	select S390_MODULES_SANITY_TEST_HELPERS
92962306a36Sopenharmony_ci	help
93062306a36Sopenharmony_ci	  This option enables an s390 specific modules test. This option is
93162306a36Sopenharmony_ci	  not useful for distributions or general kernels, but only for
93262306a36Sopenharmony_ci	  kernel developers working on architecture code.
93362306a36Sopenharmony_ci
93462306a36Sopenharmony_ci	  Say N if you are unsure.
93562306a36Sopenharmony_ciendmenu
936