xref: /OK3568_Linux_fs/kernel/arch/s390/Kconfig (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyunconfig MMU
3*4882a593Smuzhiyun	def_bool y
4*4882a593Smuzhiyun
5*4882a593Smuzhiyunconfig ZONE_DMA
6*4882a593Smuzhiyun	def_bool y
7*4882a593Smuzhiyun
8*4882a593Smuzhiyunconfig CPU_BIG_ENDIAN
9*4882a593Smuzhiyun	def_bool y
10*4882a593Smuzhiyun
11*4882a593Smuzhiyunconfig LOCKDEP_SUPPORT
12*4882a593Smuzhiyun	def_bool y
13*4882a593Smuzhiyun
14*4882a593Smuzhiyunconfig STACKTRACE_SUPPORT
15*4882a593Smuzhiyun	def_bool y
16*4882a593Smuzhiyun
17*4882a593Smuzhiyunconfig ARCH_HAS_ILOG2_U32
18*4882a593Smuzhiyun	def_bool n
19*4882a593Smuzhiyun
20*4882a593Smuzhiyunconfig ARCH_HAS_ILOG2_U64
21*4882a593Smuzhiyun	def_bool n
22*4882a593Smuzhiyun
23*4882a593Smuzhiyunconfig GENERIC_HWEIGHT
24*4882a593Smuzhiyun	def_bool y
25*4882a593Smuzhiyun
26*4882a593Smuzhiyunconfig GENERIC_BUG
27*4882a593Smuzhiyun	def_bool y if BUG
28*4882a593Smuzhiyun
29*4882a593Smuzhiyunconfig GENERIC_BUG_RELATIVE_POINTERS
30*4882a593Smuzhiyun	def_bool y
31*4882a593Smuzhiyun
32*4882a593Smuzhiyunconfig GENERIC_LOCKBREAK
33*4882a593Smuzhiyun	def_bool y if PREEMPTION
34*4882a593Smuzhiyun
35*4882a593Smuzhiyunconfig PGSTE
36*4882a593Smuzhiyun	def_bool y if KVM
37*4882a593Smuzhiyun
38*4882a593Smuzhiyunconfig ARCH_SUPPORTS_DEBUG_PAGEALLOC
39*4882a593Smuzhiyun	def_bool y
40*4882a593Smuzhiyun
41*4882a593Smuzhiyunconfig AUDIT_ARCH
42*4882a593Smuzhiyun	def_bool y
43*4882a593Smuzhiyun
44*4882a593Smuzhiyunconfig NO_IOPORT_MAP
45*4882a593Smuzhiyun	def_bool y
46*4882a593Smuzhiyun
47*4882a593Smuzhiyunconfig PCI_QUIRKS
48*4882a593Smuzhiyun	def_bool n
49*4882a593Smuzhiyun
50*4882a593Smuzhiyunconfig ARCH_SUPPORTS_UPROBES
51*4882a593Smuzhiyun	def_bool y
52*4882a593Smuzhiyun
53*4882a593Smuzhiyunconfig KASAN_SHADOW_OFFSET
54*4882a593Smuzhiyun	hex
55*4882a593Smuzhiyun	depends on KASAN
56*4882a593Smuzhiyun	default 0x18000000000000 if KASAN_S390_4_LEVEL_PAGING
57*4882a593Smuzhiyun	default 0x30000000000
58*4882a593Smuzhiyun
59*4882a593Smuzhiyunconfig S390
60*4882a593Smuzhiyun	def_bool y
61*4882a593Smuzhiyun	select ARCH_BINFMT_ELF_STATE
62*4882a593Smuzhiyun	select ARCH_HAS_DEBUG_VM_PGTABLE
63*4882a593Smuzhiyun	select ARCH_HAS_DEBUG_WX
64*4882a593Smuzhiyun	select ARCH_HAS_DEVMEM_IS_ALLOWED
65*4882a593Smuzhiyun	select ARCH_HAS_ELF_RANDOMIZE
66*4882a593Smuzhiyun	select ARCH_HAS_FORTIFY_SOURCE
67*4882a593Smuzhiyun	select ARCH_HAS_GCOV_PROFILE_ALL
68*4882a593Smuzhiyun	select ARCH_HAS_GIGANTIC_PAGE
69*4882a593Smuzhiyun	select ARCH_HAS_KCOV
70*4882a593Smuzhiyun	select ARCH_HAS_MEM_ENCRYPT
71*4882a593Smuzhiyun	select ARCH_HAS_PTE_SPECIAL
72*4882a593Smuzhiyun	select ARCH_HAS_SET_MEMORY
73*4882a593Smuzhiyun	select ARCH_HAS_STRICT_KERNEL_RWX
74*4882a593Smuzhiyun	select ARCH_HAS_STRICT_MODULE_RWX
75*4882a593Smuzhiyun	select ARCH_HAS_SYSCALL_WRAPPER
76*4882a593Smuzhiyun	select ARCH_HAS_UBSAN_SANITIZE_ALL
77*4882a593Smuzhiyun	select ARCH_HAS_VDSO_DATA
78*4882a593Smuzhiyun	select ARCH_HAVE_NMI_SAFE_CMPXCHG
79*4882a593Smuzhiyun	select ARCH_INLINE_READ_LOCK
80*4882a593Smuzhiyun	select ARCH_INLINE_READ_LOCK_BH
81*4882a593Smuzhiyun	select ARCH_INLINE_READ_LOCK_IRQ
82*4882a593Smuzhiyun	select ARCH_INLINE_READ_LOCK_IRQSAVE
83*4882a593Smuzhiyun	select ARCH_INLINE_READ_TRYLOCK
84*4882a593Smuzhiyun	select ARCH_INLINE_READ_UNLOCK
85*4882a593Smuzhiyun	select ARCH_INLINE_READ_UNLOCK_BH
86*4882a593Smuzhiyun	select ARCH_INLINE_READ_UNLOCK_IRQ
87*4882a593Smuzhiyun	select ARCH_INLINE_READ_UNLOCK_IRQRESTORE
88*4882a593Smuzhiyun	select ARCH_INLINE_SPIN_LOCK
89*4882a593Smuzhiyun	select ARCH_INLINE_SPIN_LOCK_BH
90*4882a593Smuzhiyun	select ARCH_INLINE_SPIN_LOCK_IRQ
91*4882a593Smuzhiyun	select ARCH_INLINE_SPIN_LOCK_IRQSAVE
92*4882a593Smuzhiyun	select ARCH_INLINE_SPIN_TRYLOCK
93*4882a593Smuzhiyun	select ARCH_INLINE_SPIN_TRYLOCK_BH
94*4882a593Smuzhiyun	select ARCH_INLINE_SPIN_UNLOCK
95*4882a593Smuzhiyun	select ARCH_INLINE_SPIN_UNLOCK_BH
96*4882a593Smuzhiyun	select ARCH_INLINE_SPIN_UNLOCK_IRQ
97*4882a593Smuzhiyun	select ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE
98*4882a593Smuzhiyun	select ARCH_INLINE_WRITE_LOCK
99*4882a593Smuzhiyun	select ARCH_INLINE_WRITE_LOCK_BH
100*4882a593Smuzhiyun	select ARCH_INLINE_WRITE_LOCK_IRQ
101*4882a593Smuzhiyun	select ARCH_INLINE_WRITE_LOCK_IRQSAVE
102*4882a593Smuzhiyun	select ARCH_INLINE_WRITE_TRYLOCK
103*4882a593Smuzhiyun	select ARCH_INLINE_WRITE_UNLOCK
104*4882a593Smuzhiyun	select ARCH_INLINE_WRITE_UNLOCK_BH
105*4882a593Smuzhiyun	select ARCH_INLINE_WRITE_UNLOCK_IRQ
106*4882a593Smuzhiyun	select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
107*4882a593Smuzhiyun	select ARCH_STACKWALK
108*4882a593Smuzhiyun	select ARCH_SUPPORTS_ATOMIC_RMW
109*4882a593Smuzhiyun	select ARCH_SUPPORTS_NUMA_BALANCING
110*4882a593Smuzhiyun	select ARCH_USE_BUILTIN_BSWAP
111*4882a593Smuzhiyun	select ARCH_USE_CMPXCHG_LOCKREF
112*4882a593Smuzhiyun	select ARCH_WANTS_DYNAMIC_TASK_STRUCT
113*4882a593Smuzhiyun	select ARCH_WANT_DEFAULT_BPF_JIT
114*4882a593Smuzhiyun	select ARCH_WANT_IPC_PARSE_VERSION
115*4882a593Smuzhiyun	select BUILDTIME_TABLE_SORT
116*4882a593Smuzhiyun	select CLONE_BACKWARDS2
117*4882a593Smuzhiyun	select DMA_OPS if PCI
118*4882a593Smuzhiyun	select DYNAMIC_FTRACE if FUNCTION_TRACER
119*4882a593Smuzhiyun	select GENERIC_CLOCKEVENTS
120*4882a593Smuzhiyun	select GENERIC_CPU_AUTOPROBE
121*4882a593Smuzhiyun	select GENERIC_CPU_VULNERABILITIES
122*4882a593Smuzhiyun	select GENERIC_FIND_FIRST_BIT
123*4882a593Smuzhiyun	select GENERIC_GETTIMEOFDAY
124*4882a593Smuzhiyun	select GENERIC_PTDUMP
125*4882a593Smuzhiyun	select GENERIC_SMP_IDLE_THREAD
126*4882a593Smuzhiyun	select GENERIC_TIME_VSYSCALL
127*4882a593Smuzhiyun	select HAVE_ALIGNED_STRUCT_PAGE if SLUB
128*4882a593Smuzhiyun	select HAVE_ARCH_AUDITSYSCALL
129*4882a593Smuzhiyun	select HAVE_ARCH_JUMP_LABEL
130*4882a593Smuzhiyun	select HAVE_ARCH_JUMP_LABEL_RELATIVE
131*4882a593Smuzhiyun	select HAVE_ARCH_KASAN
132*4882a593Smuzhiyun	select HAVE_ARCH_KASAN_VMALLOC
133*4882a593Smuzhiyun	select CPU_NO_EFFICIENT_FFS if !HAVE_MARCH_Z9_109_FEATURES
134*4882a593Smuzhiyun	select HAVE_ARCH_SECCOMP_FILTER
135*4882a593Smuzhiyun	select HAVE_ARCH_SOFT_DIRTY
136*4882a593Smuzhiyun	select HAVE_ARCH_TRACEHOOK
137*4882a593Smuzhiyun	select HAVE_ARCH_TRANSPARENT_HUGEPAGE
138*4882a593Smuzhiyun	select HAVE_ARCH_VMAP_STACK
139*4882a593Smuzhiyun	select HAVE_ASM_MODVERSIONS
140*4882a593Smuzhiyun	select HAVE_EBPF_JIT if PACK_STACK && HAVE_MARCH_Z196_FEATURES
141*4882a593Smuzhiyun	select HAVE_CMPXCHG_DOUBLE
142*4882a593Smuzhiyun	select HAVE_CMPXCHG_LOCAL
143*4882a593Smuzhiyun	select HAVE_DEBUG_KMEMLEAK
144*4882a593Smuzhiyun	select HAVE_DMA_CONTIGUOUS
145*4882a593Smuzhiyun	select HAVE_DYNAMIC_FTRACE
146*4882a593Smuzhiyun	select HAVE_DYNAMIC_FTRACE_WITH_REGS
147*4882a593Smuzhiyun	select HAVE_FAST_GUP
148*4882a593Smuzhiyun	select HAVE_EFFICIENT_UNALIGNED_ACCESS
149*4882a593Smuzhiyun	select HAVE_FENTRY
150*4882a593Smuzhiyun	select HAVE_FTRACE_MCOUNT_RECORD
151*4882a593Smuzhiyun	select HAVE_FUNCTION_ERROR_INJECTION
152*4882a593Smuzhiyun	select HAVE_FUNCTION_GRAPH_TRACER
153*4882a593Smuzhiyun	select HAVE_FUNCTION_TRACER
154*4882a593Smuzhiyun	select HAVE_FUTEX_CMPXCHG if FUTEX
155*4882a593Smuzhiyun	select HAVE_GCC_PLUGINS
156*4882a593Smuzhiyun	select HAVE_GENERIC_VDSO
157*4882a593Smuzhiyun	select HAVE_IOREMAP_PROT if PCI
158*4882a593Smuzhiyun	select HAVE_IRQ_EXIT_ON_IRQ_STACK
159*4882a593Smuzhiyun	select HAVE_KERNEL_BZIP2
160*4882a593Smuzhiyun	select HAVE_KERNEL_GZIP
161*4882a593Smuzhiyun	select HAVE_KERNEL_LZ4
162*4882a593Smuzhiyun	select HAVE_KERNEL_LZMA
163*4882a593Smuzhiyun	select HAVE_KERNEL_LZO
164*4882a593Smuzhiyun	select HAVE_KERNEL_UNCOMPRESSED
165*4882a593Smuzhiyun	select HAVE_KERNEL_XZ
166*4882a593Smuzhiyun	select HAVE_KPROBES
167*4882a593Smuzhiyun	select HAVE_KPROBES_ON_FTRACE
168*4882a593Smuzhiyun	select HAVE_KRETPROBES
169*4882a593Smuzhiyun	select HAVE_KVM
170*4882a593Smuzhiyun	select HAVE_LIVEPATCH
171*4882a593Smuzhiyun	select HAVE_PERF_REGS
172*4882a593Smuzhiyun	select HAVE_PERF_USER_STACK_DUMP
173*4882a593Smuzhiyun	select HAVE_MEMBLOCK_PHYS_MAP
174*4882a593Smuzhiyun	select MMU_GATHER_NO_GATHER
175*4882a593Smuzhiyun	select HAVE_MOD_ARCH_SPECIFIC
176*4882a593Smuzhiyun	select HAVE_NOP_MCOUNT
177*4882a593Smuzhiyun	select HAVE_OPROFILE
178*4882a593Smuzhiyun	select HAVE_PCI
179*4882a593Smuzhiyun	select HAVE_PERF_EVENTS
180*4882a593Smuzhiyun	select MMU_GATHER_RCU_TABLE_FREE
181*4882a593Smuzhiyun	select HAVE_REGS_AND_STACK_ACCESS_API
182*4882a593Smuzhiyun	select HAVE_RELIABLE_STACKTRACE
183*4882a593Smuzhiyun	select HAVE_RSEQ
184*4882a593Smuzhiyun	select HAVE_SYSCALL_TRACEPOINTS
185*4882a593Smuzhiyun	select HAVE_VIRT_CPU_ACCOUNTING
186*4882a593Smuzhiyun	select IOMMU_HELPER		if PCI
187*4882a593Smuzhiyun	select IOMMU_SUPPORT		if PCI
188*4882a593Smuzhiyun	select MODULES_USE_ELF_RELA
189*4882a593Smuzhiyun	select NEED_DMA_MAP_STATE	if PCI
190*4882a593Smuzhiyun	select NEED_SG_DMA_LENGTH	if PCI
191*4882a593Smuzhiyun	select OLD_SIGACTION
192*4882a593Smuzhiyun	select OLD_SIGSUSPEND3
193*4882a593Smuzhiyun	select PCI_DOMAINS		if PCI
194*4882a593Smuzhiyun	select PCI_MSI			if PCI
195*4882a593Smuzhiyun	select PCI_MSI_ARCH_FALLBACKS	if PCI_MSI
196*4882a593Smuzhiyun	select SET_FS
197*4882a593Smuzhiyun	select SPARSE_IRQ
198*4882a593Smuzhiyun	select SYSCTL_EXCEPTION_TRACE
199*4882a593Smuzhiyun	select THREAD_INFO_IN_TASK
200*4882a593Smuzhiyun	select TTY
201*4882a593Smuzhiyun	select VIRT_CPU_ACCOUNTING
202*4882a593Smuzhiyun	select ARCH_HAS_SCALED_CPUTIME
203*4882a593Smuzhiyun	select HAVE_NMI
204*4882a593Smuzhiyun	select ARCH_HAS_FORCE_DMA_UNENCRYPTED
205*4882a593Smuzhiyun	select SWIOTLB
206*4882a593Smuzhiyun	select GENERIC_ALLOCATOR
207*4882a593Smuzhiyun	imply IMA_SECURE_AND_OR_TRUSTED_BOOT
208*4882a593Smuzhiyun
209*4882a593Smuzhiyun
210*4882a593Smuzhiyunconfig SCHED_OMIT_FRAME_POINTER
211*4882a593Smuzhiyun	def_bool y
212*4882a593Smuzhiyun
213*4882a593Smuzhiyunconfig PGTABLE_LEVELS
214*4882a593Smuzhiyun	int
215*4882a593Smuzhiyun	default 5
216*4882a593Smuzhiyun
217*4882a593Smuzhiyunsource "kernel/livepatch/Kconfig"
218*4882a593Smuzhiyun
219*4882a593Smuzhiyunmenu "Processor type and features"
220*4882a593Smuzhiyun
221*4882a593Smuzhiyunconfig HAVE_MARCH_Z900_FEATURES
222*4882a593Smuzhiyun	def_bool n
223*4882a593Smuzhiyun
224*4882a593Smuzhiyunconfig HAVE_MARCH_Z990_FEATURES
225*4882a593Smuzhiyun	def_bool n
226*4882a593Smuzhiyun	select HAVE_MARCH_Z900_FEATURES
227*4882a593Smuzhiyun
228*4882a593Smuzhiyunconfig HAVE_MARCH_Z9_109_FEATURES
229*4882a593Smuzhiyun	def_bool n
230*4882a593Smuzhiyun	select HAVE_MARCH_Z990_FEATURES
231*4882a593Smuzhiyun
232*4882a593Smuzhiyunconfig HAVE_MARCH_Z10_FEATURES
233*4882a593Smuzhiyun	def_bool n
234*4882a593Smuzhiyun	select HAVE_MARCH_Z9_109_FEATURES
235*4882a593Smuzhiyun
236*4882a593Smuzhiyunconfig HAVE_MARCH_Z196_FEATURES
237*4882a593Smuzhiyun	def_bool n
238*4882a593Smuzhiyun	select HAVE_MARCH_Z10_FEATURES
239*4882a593Smuzhiyun
240*4882a593Smuzhiyunconfig HAVE_MARCH_ZEC12_FEATURES
241*4882a593Smuzhiyun	def_bool n
242*4882a593Smuzhiyun	select HAVE_MARCH_Z196_FEATURES
243*4882a593Smuzhiyun
244*4882a593Smuzhiyunconfig HAVE_MARCH_Z13_FEATURES
245*4882a593Smuzhiyun	def_bool n
246*4882a593Smuzhiyun	select HAVE_MARCH_ZEC12_FEATURES
247*4882a593Smuzhiyun
248*4882a593Smuzhiyunconfig HAVE_MARCH_Z14_FEATURES
249*4882a593Smuzhiyun	def_bool n
250*4882a593Smuzhiyun	select HAVE_MARCH_Z13_FEATURES
251*4882a593Smuzhiyun
252*4882a593Smuzhiyunconfig HAVE_MARCH_Z15_FEATURES
253*4882a593Smuzhiyun	def_bool n
254*4882a593Smuzhiyun	select HAVE_MARCH_Z14_FEATURES
255*4882a593Smuzhiyun
256*4882a593Smuzhiyunchoice
257*4882a593Smuzhiyun	prompt "Processor type"
258*4882a593Smuzhiyun	default MARCH_Z196
259*4882a593Smuzhiyun
260*4882a593Smuzhiyunconfig MARCH_Z900
261*4882a593Smuzhiyun	bool "IBM zSeries model z800 and z900"
262*4882a593Smuzhiyun	select HAVE_MARCH_Z900_FEATURES
263*4882a593Smuzhiyun	depends on $(cc-option,-march=z900)
264*4882a593Smuzhiyun	help
265*4882a593Smuzhiyun	  Select this to enable optimizations for model z800/z900 (2064 and
266*4882a593Smuzhiyun	  2066 series). This will enable some optimizations that are not
267*4882a593Smuzhiyun	  available on older ESA/390 (31 Bit) only CPUs.
268*4882a593Smuzhiyun
269*4882a593Smuzhiyunconfig MARCH_Z990
270*4882a593Smuzhiyun	bool "IBM zSeries model z890 and z990"
271*4882a593Smuzhiyun	select HAVE_MARCH_Z990_FEATURES
272*4882a593Smuzhiyun	depends on $(cc-option,-march=z990)
273*4882a593Smuzhiyun	help
274*4882a593Smuzhiyun	  Select this to enable optimizations for model z890/z990 (2084 and
275*4882a593Smuzhiyun	  2086 series). The kernel will be slightly faster but will not work
276*4882a593Smuzhiyun	  on older machines.
277*4882a593Smuzhiyun
278*4882a593Smuzhiyunconfig MARCH_Z9_109
279*4882a593Smuzhiyun	bool "IBM System z9"
280*4882a593Smuzhiyun	select HAVE_MARCH_Z9_109_FEATURES
281*4882a593Smuzhiyun	depends on $(cc-option,-march=z9-109)
282*4882a593Smuzhiyun	help
283*4882a593Smuzhiyun	  Select this to enable optimizations for IBM System z9 (2094 and
284*4882a593Smuzhiyun	  2096 series). The kernel will be slightly faster but will not work
285*4882a593Smuzhiyun	  on older machines.
286*4882a593Smuzhiyun
287*4882a593Smuzhiyunconfig MARCH_Z10
288*4882a593Smuzhiyun	bool "IBM System z10"
289*4882a593Smuzhiyun	select HAVE_MARCH_Z10_FEATURES
290*4882a593Smuzhiyun	depends on $(cc-option,-march=z10)
291*4882a593Smuzhiyun	help
292*4882a593Smuzhiyun	  Select this to enable optimizations for IBM System z10 (2097 and
293*4882a593Smuzhiyun	  2098 series). The kernel will be slightly faster but will not work
294*4882a593Smuzhiyun	  on older machines.
295*4882a593Smuzhiyun
296*4882a593Smuzhiyunconfig MARCH_Z196
297*4882a593Smuzhiyun	bool "IBM zEnterprise 114 and 196"
298*4882a593Smuzhiyun	select HAVE_MARCH_Z196_FEATURES
299*4882a593Smuzhiyun	depends on $(cc-option,-march=z196)
300*4882a593Smuzhiyun	help
301*4882a593Smuzhiyun	  Select this to enable optimizations for IBM zEnterprise 114 and 196
302*4882a593Smuzhiyun	  (2818 and 2817 series). The kernel will be slightly faster but will
303*4882a593Smuzhiyun	  not work on older machines.
304*4882a593Smuzhiyun
305*4882a593Smuzhiyunconfig MARCH_ZEC12
306*4882a593Smuzhiyun	bool "IBM zBC12 and zEC12"
307*4882a593Smuzhiyun	select HAVE_MARCH_ZEC12_FEATURES
308*4882a593Smuzhiyun	depends on $(cc-option,-march=zEC12)
309*4882a593Smuzhiyun	help
310*4882a593Smuzhiyun	  Select this to enable optimizations for IBM zBC12 and zEC12 (2828 and
311*4882a593Smuzhiyun	  2827 series). The kernel will be slightly faster but will not work on
312*4882a593Smuzhiyun	  older machines.
313*4882a593Smuzhiyun
314*4882a593Smuzhiyunconfig MARCH_Z13
315*4882a593Smuzhiyun	bool "IBM z13s and z13"
316*4882a593Smuzhiyun	select HAVE_MARCH_Z13_FEATURES
317*4882a593Smuzhiyun	depends on $(cc-option,-march=z13)
318*4882a593Smuzhiyun	help
319*4882a593Smuzhiyun	  Select this to enable optimizations for IBM z13s and z13 (2965 and
320*4882a593Smuzhiyun	  2964 series). The kernel will be slightly faster but will not work on
321*4882a593Smuzhiyun	  older machines.
322*4882a593Smuzhiyun
323*4882a593Smuzhiyunconfig MARCH_Z14
324*4882a593Smuzhiyun	bool "IBM z14 ZR1 and z14"
325*4882a593Smuzhiyun	select HAVE_MARCH_Z14_FEATURES
326*4882a593Smuzhiyun	depends on $(cc-option,-march=z14)
327*4882a593Smuzhiyun	help
328*4882a593Smuzhiyun	  Select this to enable optimizations for IBM z14 ZR1 and z14 (3907
329*4882a593Smuzhiyun	  and 3906 series). The kernel will be slightly faster but will not
330*4882a593Smuzhiyun	  work on older machines.
331*4882a593Smuzhiyun
332*4882a593Smuzhiyunconfig MARCH_Z15
333*4882a593Smuzhiyun	bool "IBM z15"
334*4882a593Smuzhiyun	select HAVE_MARCH_Z15_FEATURES
335*4882a593Smuzhiyun	depends on $(cc-option,-march=z15)
336*4882a593Smuzhiyun	help
337*4882a593Smuzhiyun	  Select this to enable optimizations for IBM z15 (8562
338*4882a593Smuzhiyun	  and 8561 series). The kernel will be slightly faster but will not
339*4882a593Smuzhiyun	  work on older machines.
340*4882a593Smuzhiyun
341*4882a593Smuzhiyunendchoice
342*4882a593Smuzhiyun
343*4882a593Smuzhiyunconfig MARCH_Z900_TUNE
344*4882a593Smuzhiyun	def_bool TUNE_Z900 || MARCH_Z900 && TUNE_DEFAULT
345*4882a593Smuzhiyun
346*4882a593Smuzhiyunconfig MARCH_Z990_TUNE
347*4882a593Smuzhiyun	def_bool TUNE_Z990 || MARCH_Z990 && TUNE_DEFAULT
348*4882a593Smuzhiyun
349*4882a593Smuzhiyunconfig MARCH_Z9_109_TUNE
350*4882a593Smuzhiyun	def_bool TUNE_Z9_109 || MARCH_Z9_109 && TUNE_DEFAULT
351*4882a593Smuzhiyun
352*4882a593Smuzhiyunconfig MARCH_Z10_TUNE
353*4882a593Smuzhiyun	def_bool TUNE_Z10 || MARCH_Z10 && TUNE_DEFAULT
354*4882a593Smuzhiyun
355*4882a593Smuzhiyunconfig MARCH_Z196_TUNE
356*4882a593Smuzhiyun	def_bool TUNE_Z196 || MARCH_Z196 && TUNE_DEFAULT
357*4882a593Smuzhiyun
358*4882a593Smuzhiyunconfig MARCH_ZEC12_TUNE
359*4882a593Smuzhiyun	def_bool TUNE_ZEC12 || MARCH_ZEC12 && TUNE_DEFAULT
360*4882a593Smuzhiyun
361*4882a593Smuzhiyunconfig MARCH_Z13_TUNE
362*4882a593Smuzhiyun	def_bool TUNE_Z13 || MARCH_Z13 && TUNE_DEFAULT
363*4882a593Smuzhiyun
364*4882a593Smuzhiyunconfig MARCH_Z14_TUNE
365*4882a593Smuzhiyun	def_bool TUNE_Z14 || MARCH_Z14 && TUNE_DEFAULT
366*4882a593Smuzhiyun
367*4882a593Smuzhiyunconfig MARCH_Z15_TUNE
368*4882a593Smuzhiyun	def_bool TUNE_Z15 || MARCH_Z15 && TUNE_DEFAULT
369*4882a593Smuzhiyun
370*4882a593Smuzhiyunchoice
371*4882a593Smuzhiyun	prompt "Tune code generation"
372*4882a593Smuzhiyun	default TUNE_DEFAULT
373*4882a593Smuzhiyun	help
374*4882a593Smuzhiyun	  Cause the compiler to tune (-mtune) the generated code for a machine.
375*4882a593Smuzhiyun	  This will make the code run faster on the selected machine but
376*4882a593Smuzhiyun	  somewhat slower on other machines.
377*4882a593Smuzhiyun	  This option only changes how the compiler emits instructions, not the
378*4882a593Smuzhiyun	  selection of instructions itself, so the resulting kernel will run on
379*4882a593Smuzhiyun	  all other machines.
380*4882a593Smuzhiyun
381*4882a593Smuzhiyunconfig TUNE_DEFAULT
382*4882a593Smuzhiyun	bool "Default"
383*4882a593Smuzhiyun	help
384*4882a593Smuzhiyun	  Tune the generated code for the target processor for which the kernel
385*4882a593Smuzhiyun	  will be compiled.
386*4882a593Smuzhiyun
387*4882a593Smuzhiyunconfig TUNE_Z900
388*4882a593Smuzhiyun	bool "IBM zSeries model z800 and z900"
389*4882a593Smuzhiyun	depends on $(cc-option,-mtune=z900)
390*4882a593Smuzhiyun
391*4882a593Smuzhiyunconfig TUNE_Z990
392*4882a593Smuzhiyun	bool "IBM zSeries model z890 and z990"
393*4882a593Smuzhiyun	depends on $(cc-option,-mtune=z990)
394*4882a593Smuzhiyun
395*4882a593Smuzhiyunconfig TUNE_Z9_109
396*4882a593Smuzhiyun	bool "IBM System z9"
397*4882a593Smuzhiyun	depends on $(cc-option,-mtune=z9-109)
398*4882a593Smuzhiyun
399*4882a593Smuzhiyunconfig TUNE_Z10
400*4882a593Smuzhiyun	bool "IBM System z10"
401*4882a593Smuzhiyun	depends on $(cc-option,-mtune=z10)
402*4882a593Smuzhiyun
403*4882a593Smuzhiyunconfig TUNE_Z196
404*4882a593Smuzhiyun	bool "IBM zEnterprise 114 and 196"
405*4882a593Smuzhiyun	depends on $(cc-option,-mtune=z196)
406*4882a593Smuzhiyun
407*4882a593Smuzhiyunconfig TUNE_ZEC12
408*4882a593Smuzhiyun	bool "IBM zBC12 and zEC12"
409*4882a593Smuzhiyun	depends on $(cc-option,-mtune=zEC12)
410*4882a593Smuzhiyun
411*4882a593Smuzhiyunconfig TUNE_Z13
412*4882a593Smuzhiyun	bool "IBM z13s and z13"
413*4882a593Smuzhiyun	depends on $(cc-option,-mtune=z13)
414*4882a593Smuzhiyun
415*4882a593Smuzhiyunconfig TUNE_Z14
416*4882a593Smuzhiyun	bool "IBM z14 ZR1 and z14"
417*4882a593Smuzhiyun	depends on $(cc-option,-mtune=z14)
418*4882a593Smuzhiyun
419*4882a593Smuzhiyunconfig TUNE_Z15
420*4882a593Smuzhiyun	bool "IBM z15"
421*4882a593Smuzhiyun	depends on $(cc-option,-mtune=z15)
422*4882a593Smuzhiyun
423*4882a593Smuzhiyunendchoice
424*4882a593Smuzhiyun
425*4882a593Smuzhiyunconfig 64BIT
426*4882a593Smuzhiyun	def_bool y
427*4882a593Smuzhiyun
428*4882a593Smuzhiyunconfig COMPAT
429*4882a593Smuzhiyun	def_bool y
430*4882a593Smuzhiyun	prompt "Kernel support for 31 bit emulation"
431*4882a593Smuzhiyun	select COMPAT_BINFMT_ELF if BINFMT_ELF
432*4882a593Smuzhiyun	select ARCH_WANT_OLD_COMPAT_IPC
433*4882a593Smuzhiyun	select COMPAT_OLD_SIGACTION
434*4882a593Smuzhiyun	select HAVE_UID16
435*4882a593Smuzhiyun	depends on MULTIUSER
436*4882a593Smuzhiyun	help
437*4882a593Smuzhiyun	  Select this option if you want to enable your system kernel to
438*4882a593Smuzhiyun	  handle system-calls from ELF binaries for 31 bit ESA.  This option
439*4882a593Smuzhiyun	  (and some other stuff like libraries and such) is needed for
440*4882a593Smuzhiyun	  executing 31 bit applications.  It is safe to say "Y".
441*4882a593Smuzhiyun
442*4882a593Smuzhiyunconfig SYSVIPC_COMPAT
443*4882a593Smuzhiyun	def_bool y if COMPAT && SYSVIPC
444*4882a593Smuzhiyun
445*4882a593Smuzhiyunconfig SMP
446*4882a593Smuzhiyun	def_bool y
447*4882a593Smuzhiyun
448*4882a593Smuzhiyunconfig NR_CPUS
449*4882a593Smuzhiyun	int "Maximum number of CPUs (2-512)"
450*4882a593Smuzhiyun	range 2 512
451*4882a593Smuzhiyun	default "64"
452*4882a593Smuzhiyun	help
453*4882a593Smuzhiyun	  This allows you to specify the maximum number of CPUs which this
454*4882a593Smuzhiyun	  kernel will support. The maximum supported value is 512 and the
455*4882a593Smuzhiyun	  minimum value which makes sense is 2.
456*4882a593Smuzhiyun
457*4882a593Smuzhiyun	  This is purely to save memory - each supported CPU adds
458*4882a593Smuzhiyun	  approximately sixteen kilobytes to the kernel image.
459*4882a593Smuzhiyun
460*4882a593Smuzhiyunconfig HOTPLUG_CPU
461*4882a593Smuzhiyun	def_bool y
462*4882a593Smuzhiyun
463*4882a593Smuzhiyunconfig NUMA
464*4882a593Smuzhiyun	bool "NUMA support"
465*4882a593Smuzhiyun	depends on SCHED_TOPOLOGY
466*4882a593Smuzhiyun	default n
467*4882a593Smuzhiyun	help
468*4882a593Smuzhiyun	  Enable NUMA support
469*4882a593Smuzhiyun
470*4882a593Smuzhiyun	  This option adds NUMA support to the kernel.
471*4882a593Smuzhiyun
472*4882a593Smuzhiyunconfig NODES_SHIFT
473*4882a593Smuzhiyun	int
474*4882a593Smuzhiyun	depends on NEED_MULTIPLE_NODES
475*4882a593Smuzhiyun	default "1"
476*4882a593Smuzhiyun
477*4882a593Smuzhiyunconfig SCHED_SMT
478*4882a593Smuzhiyun	def_bool n
479*4882a593Smuzhiyun
480*4882a593Smuzhiyunconfig SCHED_MC
481*4882a593Smuzhiyun	def_bool n
482*4882a593Smuzhiyun
483*4882a593Smuzhiyunconfig SCHED_BOOK
484*4882a593Smuzhiyun	def_bool n
485*4882a593Smuzhiyun
486*4882a593Smuzhiyunconfig SCHED_DRAWER
487*4882a593Smuzhiyun	def_bool n
488*4882a593Smuzhiyun
489*4882a593Smuzhiyunconfig SCHED_TOPOLOGY
490*4882a593Smuzhiyun	def_bool y
491*4882a593Smuzhiyun	prompt "Topology scheduler support"
492*4882a593Smuzhiyun	select SCHED_SMT
493*4882a593Smuzhiyun	select SCHED_MC
494*4882a593Smuzhiyun	select SCHED_BOOK
495*4882a593Smuzhiyun	select SCHED_DRAWER
496*4882a593Smuzhiyun	help
497*4882a593Smuzhiyun	  Topology scheduler support improves the CPU scheduler's decision
498*4882a593Smuzhiyun	  making when dealing with machines that have multi-threading,
499*4882a593Smuzhiyun	  multiple cores or multiple books.
500*4882a593Smuzhiyun
501*4882a593Smuzhiyunsource "kernel/Kconfig.hz"
502*4882a593Smuzhiyun
503*4882a593Smuzhiyunconfig KEXEC
504*4882a593Smuzhiyun	def_bool y
505*4882a593Smuzhiyun	select KEXEC_CORE
506*4882a593Smuzhiyun
507*4882a593Smuzhiyunconfig KEXEC_FILE
508*4882a593Smuzhiyun	bool "kexec file based system call"
509*4882a593Smuzhiyun	select KEXEC_CORE
510*4882a593Smuzhiyun	depends on CRYPTO
511*4882a593Smuzhiyun	depends on CRYPTO_SHA256
512*4882a593Smuzhiyun	depends on CRYPTO_SHA256_S390
513*4882a593Smuzhiyun	help
514*4882a593Smuzhiyun	  Enable the kexec file based system call. In contrast to the normal
515*4882a593Smuzhiyun	  kexec system call this system call takes file descriptors for the
516*4882a593Smuzhiyun	  kernel and initramfs as arguments.
517*4882a593Smuzhiyun
518*4882a593Smuzhiyunconfig ARCH_HAS_KEXEC_PURGATORY
519*4882a593Smuzhiyun	def_bool y
520*4882a593Smuzhiyun	depends on KEXEC_FILE
521*4882a593Smuzhiyun
522*4882a593Smuzhiyunconfig KEXEC_SIG
523*4882a593Smuzhiyun	bool "Verify kernel signature during kexec_file_load() syscall"
524*4882a593Smuzhiyun	depends on KEXEC_FILE && MODULE_SIG_FORMAT
525*4882a593Smuzhiyun	help
526*4882a593Smuzhiyun	  This option makes kernel signature verification mandatory for
527*4882a593Smuzhiyun	  the kexec_file_load() syscall.
528*4882a593Smuzhiyun
529*4882a593Smuzhiyun	  In addition to that option, you need to enable signature
530*4882a593Smuzhiyun	  verification for the corresponding kernel image type being
531*4882a593Smuzhiyun	  loaded in order for this to work.
532*4882a593Smuzhiyun
533*4882a593Smuzhiyunconfig ARCH_RANDOM
534*4882a593Smuzhiyun	def_bool y
535*4882a593Smuzhiyun	prompt "s390 architectural random number generation API"
536*4882a593Smuzhiyun	help
537*4882a593Smuzhiyun	  Enable the s390 architectural random number generation API
538*4882a593Smuzhiyun	  to provide random data for all consumers within the Linux
539*4882a593Smuzhiyun	  kernel.
540*4882a593Smuzhiyun
541*4882a593Smuzhiyun	  When enabled the arch_random_* functions declared in linux/random.h
542*4882a593Smuzhiyun	  are implemented. The implementation is based on the s390 CPACF
543*4882a593Smuzhiyun	  instruction subfunction TRNG which provides a real true random
544*4882a593Smuzhiyun	  number generator.
545*4882a593Smuzhiyun
546*4882a593Smuzhiyun	  If unsure, say Y.
547*4882a593Smuzhiyun
548*4882a593Smuzhiyunconfig KERNEL_NOBP
549*4882a593Smuzhiyun	def_bool n
550*4882a593Smuzhiyun	prompt "Enable modified branch prediction for the kernel by default"
551*4882a593Smuzhiyun	help
552*4882a593Smuzhiyun	  If this option is selected the kernel will switch to a modified
553*4882a593Smuzhiyun	  branch prediction mode if the firmware interface is available.
554*4882a593Smuzhiyun	  The modified branch prediction mode improves the behaviour in
555*4882a593Smuzhiyun	  regard to speculative execution.
556*4882a593Smuzhiyun
557*4882a593Smuzhiyun	  With the option enabled the kernel parameter "nobp=0" or "nospec"
558*4882a593Smuzhiyun	  can be used to run the kernel in the normal branch prediction mode.
559*4882a593Smuzhiyun
560*4882a593Smuzhiyun	  With the option disabled the modified branch prediction mode is
561*4882a593Smuzhiyun	  enabled with the "nobp=1" kernel parameter.
562*4882a593Smuzhiyun
563*4882a593Smuzhiyun	  If unsure, say N.
564*4882a593Smuzhiyun
565*4882a593Smuzhiyunconfig EXPOLINE
566*4882a593Smuzhiyun	def_bool n
567*4882a593Smuzhiyun	prompt "Avoid speculative indirect branches in the kernel"
568*4882a593Smuzhiyun	help
569*4882a593Smuzhiyun	  Compile the kernel with the expoline compiler options to guard
570*4882a593Smuzhiyun	  against kernel-to-user data leaks by avoiding speculative indirect
571*4882a593Smuzhiyun	  branches.
572*4882a593Smuzhiyun	  Requires a compiler with -mindirect-branch=thunk support for full
573*4882a593Smuzhiyun	  protection. The kernel may run slower.
574*4882a593Smuzhiyun
575*4882a593Smuzhiyun	  If unsure, say N.
576*4882a593Smuzhiyun
577*4882a593Smuzhiyunchoice
578*4882a593Smuzhiyun	prompt "Expoline default"
579*4882a593Smuzhiyun	depends on EXPOLINE
580*4882a593Smuzhiyun	default EXPOLINE_FULL
581*4882a593Smuzhiyun
582*4882a593Smuzhiyunconfig EXPOLINE_OFF
583*4882a593Smuzhiyun	bool "spectre_v2=off"
584*4882a593Smuzhiyun
585*4882a593Smuzhiyunconfig EXPOLINE_AUTO
586*4882a593Smuzhiyun	bool "spectre_v2=auto"
587*4882a593Smuzhiyun
588*4882a593Smuzhiyunconfig EXPOLINE_FULL
589*4882a593Smuzhiyun	bool "spectre_v2=on"
590*4882a593Smuzhiyun
591*4882a593Smuzhiyunendchoice
592*4882a593Smuzhiyun
593*4882a593Smuzhiyunconfig RELOCATABLE
594*4882a593Smuzhiyun	bool "Build a relocatable kernel"
595*4882a593Smuzhiyun	select MODULE_REL_CRCS if MODVERSIONS
596*4882a593Smuzhiyun	default y
597*4882a593Smuzhiyun	help
598*4882a593Smuzhiyun	  This builds a kernel image that retains relocation information
599*4882a593Smuzhiyun	  so it can be loaded at an arbitrary address.
600*4882a593Smuzhiyun	  The kernel is linked as a position-independent executable (PIE)
601*4882a593Smuzhiyun	  and contains dynamic relocations which are processed early in the
602*4882a593Smuzhiyun	  bootup process.
603*4882a593Smuzhiyun	  The relocations make the kernel image about 15% larger (compressed
604*4882a593Smuzhiyun	  10%), but are discarded at runtime.
605*4882a593Smuzhiyun
606*4882a593Smuzhiyunconfig RANDOMIZE_BASE
607*4882a593Smuzhiyun	bool "Randomize the address of the kernel image (KASLR)"
608*4882a593Smuzhiyun	depends on RELOCATABLE
609*4882a593Smuzhiyun	default y
610*4882a593Smuzhiyun	help
611*4882a593Smuzhiyun	  In support of Kernel Address Space Layout Randomization (KASLR),
612*4882a593Smuzhiyun	  this randomizes the address at which the kernel image is loaded,
613*4882a593Smuzhiyun	  as a security feature that deters exploit attempts relying on
614*4882a593Smuzhiyun	  knowledge of the location of kernel internals.
615*4882a593Smuzhiyun
616*4882a593Smuzhiyunendmenu
617*4882a593Smuzhiyun
618*4882a593Smuzhiyunmenu "Memory setup"
619*4882a593Smuzhiyun
620*4882a593Smuzhiyunconfig ARCH_SPARSEMEM_ENABLE
621*4882a593Smuzhiyun	def_bool y
622*4882a593Smuzhiyun	select SPARSEMEM_VMEMMAP_ENABLE
623*4882a593Smuzhiyun	select SPARSEMEM_VMEMMAP
624*4882a593Smuzhiyun
625*4882a593Smuzhiyunconfig ARCH_SPARSEMEM_DEFAULT
626*4882a593Smuzhiyun	def_bool y
627*4882a593Smuzhiyun
628*4882a593Smuzhiyunconfig ARCH_ENABLE_MEMORY_HOTPLUG
629*4882a593Smuzhiyun	def_bool y if SPARSEMEM
630*4882a593Smuzhiyun
631*4882a593Smuzhiyunconfig ARCH_ENABLE_MEMORY_HOTREMOVE
632*4882a593Smuzhiyun	def_bool y
633*4882a593Smuzhiyun
634*4882a593Smuzhiyunconfig ARCH_ENABLE_SPLIT_PMD_PTLOCK
635*4882a593Smuzhiyun	def_bool y
636*4882a593Smuzhiyun
637*4882a593Smuzhiyunconfig MAX_PHYSMEM_BITS
638*4882a593Smuzhiyun	int "Maximum size of supported physical memory in bits (42-53)"
639*4882a593Smuzhiyun	range 42 53
640*4882a593Smuzhiyun	default "46"
641*4882a593Smuzhiyun	help
642*4882a593Smuzhiyun	  This option specifies the maximum supported size of physical memory
643*4882a593Smuzhiyun	  in bits. Supported is any size between 2^42 (4TB) and 2^53 (8PB).
644*4882a593Smuzhiyun	  Increasing the number of bits also increases the kernel image size.
645*4882a593Smuzhiyun	  By default 46 bits (64TB) are supported.
646*4882a593Smuzhiyun
647*4882a593Smuzhiyunconfig PACK_STACK
648*4882a593Smuzhiyun	def_bool y
649*4882a593Smuzhiyun	prompt "Pack kernel stack"
650*4882a593Smuzhiyun	help
651*4882a593Smuzhiyun	  This option enables the compiler option -mkernel-backchain if it
652*4882a593Smuzhiyun	  is available. If the option is available the compiler supports
653*4882a593Smuzhiyun	  the new stack layout which dramatically reduces the minimum stack
654*4882a593Smuzhiyun	  frame size. With an old compiler a non-leaf function needs a
655*4882a593Smuzhiyun	  minimum of 96 bytes on 31 bit and 160 bytes on 64 bit. With
656*4882a593Smuzhiyun	  -mkernel-backchain the minimum size drops to 16 byte on 31 bit
657*4882a593Smuzhiyun	  and 24 byte on 64 bit.
658*4882a593Smuzhiyun
659*4882a593Smuzhiyun	  Say Y if you are unsure.
660*4882a593Smuzhiyun
661*4882a593Smuzhiyunconfig CHECK_STACK
662*4882a593Smuzhiyun	def_bool y
663*4882a593Smuzhiyun	depends on !VMAP_STACK
664*4882a593Smuzhiyun	prompt "Detect kernel stack overflow"
665*4882a593Smuzhiyun	help
666*4882a593Smuzhiyun	  This option enables the compiler option -mstack-guard and
667*4882a593Smuzhiyun	  -mstack-size if they are available. If the compiler supports them
668*4882a593Smuzhiyun	  it will emit additional code to each function prolog to trigger
669*4882a593Smuzhiyun	  an illegal operation if the kernel stack is about to overflow.
670*4882a593Smuzhiyun
671*4882a593Smuzhiyun	  Say N if you are unsure.
672*4882a593Smuzhiyun
673*4882a593Smuzhiyunconfig STACK_GUARD
674*4882a593Smuzhiyun	int "Size of the guard area (128-1024)"
675*4882a593Smuzhiyun	range 128 1024
676*4882a593Smuzhiyun	depends on CHECK_STACK
677*4882a593Smuzhiyun	default "256"
678*4882a593Smuzhiyun	help
679*4882a593Smuzhiyun	  This allows you to specify the size of the guard area at the lower
680*4882a593Smuzhiyun	  end of the kernel stack. If the kernel stack points into the guard
681*4882a593Smuzhiyun	  area on function entry an illegal operation is triggered. The size
682*4882a593Smuzhiyun	  needs to be a power of 2. Please keep in mind that the size of an
683*4882a593Smuzhiyun	  interrupt frame is 184 bytes for 31 bit and 328 bytes on 64 bit.
684*4882a593Smuzhiyun	  The minimum size for the stack guard should be 256 for 31 bit and
685*4882a593Smuzhiyun	  512 for 64 bit.
686*4882a593Smuzhiyun
687*4882a593Smuzhiyunconfig WARN_DYNAMIC_STACK
688*4882a593Smuzhiyun	def_bool n
689*4882a593Smuzhiyun	prompt "Emit compiler warnings for function with dynamic stack usage"
690*4882a593Smuzhiyun	help
691*4882a593Smuzhiyun	  This option enables the compiler option -mwarn-dynamicstack. If the
692*4882a593Smuzhiyun	  compiler supports this options generates warnings for functions
693*4882a593Smuzhiyun	  that dynamically allocate stack space using alloca.
694*4882a593Smuzhiyun
695*4882a593Smuzhiyun	  Say N if you are unsure.
696*4882a593Smuzhiyun
697*4882a593Smuzhiyunendmenu
698*4882a593Smuzhiyun
699*4882a593Smuzhiyunmenu "I/O subsystem"
700*4882a593Smuzhiyun
701*4882a593Smuzhiyunconfig QDIO
702*4882a593Smuzhiyun	def_tristate y
703*4882a593Smuzhiyun	prompt "QDIO support"
704*4882a593Smuzhiyun	help
705*4882a593Smuzhiyun	  This driver provides the Queued Direct I/O base support for
706*4882a593Smuzhiyun	  IBM System z.
707*4882a593Smuzhiyun
708*4882a593Smuzhiyun	  To compile this driver as a module, choose M here: the
709*4882a593Smuzhiyun	  module will be called qdio.
710*4882a593Smuzhiyun
711*4882a593Smuzhiyun	  If unsure, say Y.
712*4882a593Smuzhiyun
713*4882a593Smuzhiyunif PCI
714*4882a593Smuzhiyun
715*4882a593Smuzhiyunconfig PCI_NR_FUNCTIONS
716*4882a593Smuzhiyun	int "Maximum number of PCI functions (1-4096)"
717*4882a593Smuzhiyun	range 1 4096
718*4882a593Smuzhiyun	default "128"
719*4882a593Smuzhiyun	help
720*4882a593Smuzhiyun	  This allows you to specify the maximum number of PCI functions which
721*4882a593Smuzhiyun	  this kernel will support.
722*4882a593Smuzhiyun
723*4882a593Smuzhiyunendif # PCI
724*4882a593Smuzhiyun
725*4882a593Smuzhiyunconfig HAS_IOMEM
726*4882a593Smuzhiyun	def_bool PCI
727*4882a593Smuzhiyun
728*4882a593Smuzhiyunconfig CHSC_SCH
729*4882a593Smuzhiyun	def_tristate m
730*4882a593Smuzhiyun	prompt "Support for CHSC subchannels"
731*4882a593Smuzhiyun	help
732*4882a593Smuzhiyun	  This driver allows usage of CHSC subchannels. A CHSC subchannel
733*4882a593Smuzhiyun	  is usually present on LPAR only.
734*4882a593Smuzhiyun	  The driver creates a device /dev/chsc, which may be used to
735*4882a593Smuzhiyun	  obtain I/O configuration information about the machine and
736*4882a593Smuzhiyun	  to issue asynchronous chsc commands (DANGEROUS).
737*4882a593Smuzhiyun	  You will usually only want to use this interface on a special
738*4882a593Smuzhiyun	  LPAR designated for system management.
739*4882a593Smuzhiyun
740*4882a593Smuzhiyun	  To compile this driver as a module, choose M here: the
741*4882a593Smuzhiyun	  module will be called chsc_sch.
742*4882a593Smuzhiyun
743*4882a593Smuzhiyun	  If unsure, say N.
744*4882a593Smuzhiyun
745*4882a593Smuzhiyunconfig SCM_BUS
746*4882a593Smuzhiyun	def_bool y
747*4882a593Smuzhiyun	prompt "SCM bus driver"
748*4882a593Smuzhiyun	help
749*4882a593Smuzhiyun	  Bus driver for Storage Class Memory.
750*4882a593Smuzhiyun
751*4882a593Smuzhiyunconfig EADM_SCH
752*4882a593Smuzhiyun	def_tristate m
753*4882a593Smuzhiyun	prompt "Support for EADM subchannels"
754*4882a593Smuzhiyun	depends on SCM_BUS
755*4882a593Smuzhiyun	help
756*4882a593Smuzhiyun	  This driver allows usage of EADM subchannels. EADM subchannels act
757*4882a593Smuzhiyun	  as a communication vehicle for SCM increments.
758*4882a593Smuzhiyun
759*4882a593Smuzhiyun	  To compile this driver as a module, choose M here: the
760*4882a593Smuzhiyun	  module will be called eadm_sch.
761*4882a593Smuzhiyun
762*4882a593Smuzhiyunconfig VFIO_CCW
763*4882a593Smuzhiyun	def_tristate n
764*4882a593Smuzhiyun	prompt "Support for VFIO-CCW subchannels"
765*4882a593Smuzhiyun	depends on S390_CCW_IOMMU && VFIO_MDEV
766*4882a593Smuzhiyun	help
767*4882a593Smuzhiyun	  This driver allows usage of I/O subchannels via VFIO-CCW.
768*4882a593Smuzhiyun
769*4882a593Smuzhiyun	  To compile this driver as a module, choose M here: the
770*4882a593Smuzhiyun	  module will be called vfio_ccw.
771*4882a593Smuzhiyun
772*4882a593Smuzhiyunconfig VFIO_AP
773*4882a593Smuzhiyun	def_tristate n
774*4882a593Smuzhiyun	prompt "VFIO support for AP devices"
775*4882a593Smuzhiyun	depends on S390_AP_IOMMU && VFIO_MDEV_DEVICE && KVM
776*4882a593Smuzhiyun	depends on ZCRYPT
777*4882a593Smuzhiyun	help
778*4882a593Smuzhiyun		This driver grants access to Adjunct Processor (AP) devices
779*4882a593Smuzhiyun		via the VFIO mediated device interface.
780*4882a593Smuzhiyun
781*4882a593Smuzhiyun		To compile this driver as a module, choose M here: the module
782*4882a593Smuzhiyun		will be called vfio_ap.
783*4882a593Smuzhiyun
784*4882a593Smuzhiyunendmenu
785*4882a593Smuzhiyun
786*4882a593Smuzhiyunmenu "Dump support"
787*4882a593Smuzhiyun
788*4882a593Smuzhiyunconfig CRASH_DUMP
789*4882a593Smuzhiyun	bool "kernel crash dumps"
790*4882a593Smuzhiyun	select KEXEC
791*4882a593Smuzhiyun	help
792*4882a593Smuzhiyun	  Generate crash dump after being started by kexec.
793*4882a593Smuzhiyun	  Crash dump kernels are loaded in the main kernel with kexec-tools
794*4882a593Smuzhiyun	  into a specially reserved region and then later executed after
795*4882a593Smuzhiyun	  a crash by kdump/kexec.
796*4882a593Smuzhiyun	  Refer to <file:Documentation/s390/zfcpdump.rst> for more details on this.
797*4882a593Smuzhiyun	  This option also enables s390 zfcpdump.
798*4882a593Smuzhiyun	  See also <file:Documentation/s390/zfcpdump.rst>
799*4882a593Smuzhiyun
800*4882a593Smuzhiyunendmenu
801*4882a593Smuzhiyun
802*4882a593Smuzhiyunconfig CCW
803*4882a593Smuzhiyun	def_bool y
804*4882a593Smuzhiyun
805*4882a593Smuzhiyunconfig HAVE_PNETID
806*4882a593Smuzhiyun	tristate
807*4882a593Smuzhiyun	default (SMC || CCWGROUP)
808*4882a593Smuzhiyun
809*4882a593Smuzhiyunmenu "Virtualization"
810*4882a593Smuzhiyun
811*4882a593Smuzhiyunconfig PROTECTED_VIRTUALIZATION_GUEST
812*4882a593Smuzhiyun	def_bool n
813*4882a593Smuzhiyun	prompt "Protected virtualization guest support"
814*4882a593Smuzhiyun	select ARCH_HAS_RESTRICTED_VIRTIO_MEMORY_ACCESS
815*4882a593Smuzhiyun	help
816*4882a593Smuzhiyun	  Select this option, if you want to be able to run this
817*4882a593Smuzhiyun	  kernel as a protected virtualization KVM guest.
818*4882a593Smuzhiyun	  Protected virtualization capable machines have a mini hypervisor
819*4882a593Smuzhiyun	  located at machine level (an ultravisor). With help of the
820*4882a593Smuzhiyun	  Ultravisor, KVM will be able to run "protected" VMs, special
821*4882a593Smuzhiyun	  VMs whose memory and management data are unavailable to KVM.
822*4882a593Smuzhiyun
823*4882a593Smuzhiyunconfig PFAULT
824*4882a593Smuzhiyun	def_bool y
825*4882a593Smuzhiyun	prompt "Pseudo page fault support"
826*4882a593Smuzhiyun	help
827*4882a593Smuzhiyun	  Select this option, if you want to use PFAULT pseudo page fault
828*4882a593Smuzhiyun	  handling under VM. If running native or in LPAR, this option
829*4882a593Smuzhiyun	  has no effect. If your VM does not support PFAULT, PAGEEX
830*4882a593Smuzhiyun	  pseudo page fault handling will be used.
831*4882a593Smuzhiyun	  Note that VM 4.2 supports PFAULT but has a bug in its
832*4882a593Smuzhiyun	  implementation that causes some problems.
833*4882a593Smuzhiyun	  Everybody who wants to run Linux under VM != VM4.2 should select
834*4882a593Smuzhiyun	  this option.
835*4882a593Smuzhiyun
836*4882a593Smuzhiyunconfig CMM
837*4882a593Smuzhiyun	def_tristate n
838*4882a593Smuzhiyun	prompt "Cooperative memory management"
839*4882a593Smuzhiyun	help
840*4882a593Smuzhiyun	  Select this option, if you want to enable the kernel interface
841*4882a593Smuzhiyun	  to reduce the memory size of the system. This is accomplished
842*4882a593Smuzhiyun	  by allocating pages of memory and put them "on hold". This only
843*4882a593Smuzhiyun	  makes sense for a system running under VM where the unused pages
844*4882a593Smuzhiyun	  will be reused by VM for other guest systems. The interface
845*4882a593Smuzhiyun	  allows an external monitor to balance memory of many systems.
846*4882a593Smuzhiyun	  Everybody who wants to run Linux under VM should select this
847*4882a593Smuzhiyun	  option.
848*4882a593Smuzhiyun
849*4882a593Smuzhiyunconfig CMM_IUCV
850*4882a593Smuzhiyun	def_bool y
851*4882a593Smuzhiyun	prompt "IUCV special message interface to cooperative memory management"
852*4882a593Smuzhiyun	depends on CMM && (SMSGIUCV=y || CMM=SMSGIUCV)
853*4882a593Smuzhiyun	help
854*4882a593Smuzhiyun	  Select this option to enable the special message interface to
855*4882a593Smuzhiyun	  the cooperative memory management.
856*4882a593Smuzhiyun
857*4882a593Smuzhiyunconfig APPLDATA_BASE
858*4882a593Smuzhiyun	def_bool n
859*4882a593Smuzhiyun	prompt "Linux - VM Monitor Stream, base infrastructure"
860*4882a593Smuzhiyun	depends on PROC_SYSCTL
861*4882a593Smuzhiyun	help
862*4882a593Smuzhiyun	  This provides a kernel interface for creating and updating z/VM APPLDATA
863*4882a593Smuzhiyun	  monitor records. The monitor records are updated at certain time
864*4882a593Smuzhiyun	  intervals, once the timer is started.
865*4882a593Smuzhiyun	  Writing 1 or 0 to /proc/appldata/timer starts(1) or stops(0) the timer,
866*4882a593Smuzhiyun	  i.e. enables or disables monitoring on the Linux side.
867*4882a593Smuzhiyun	  A custom interval value (in seconds) can be written to
868*4882a593Smuzhiyun	  /proc/appldata/interval.
869*4882a593Smuzhiyun
870*4882a593Smuzhiyun	  Defaults are 60 seconds interval and timer off.
871*4882a593Smuzhiyun	  The /proc entries can also be read from, showing the current settings.
872*4882a593Smuzhiyun
873*4882a593Smuzhiyunconfig APPLDATA_MEM
874*4882a593Smuzhiyun	def_tristate m
875*4882a593Smuzhiyun	prompt "Monitor memory management statistics"
876*4882a593Smuzhiyun	depends on APPLDATA_BASE && VM_EVENT_COUNTERS
877*4882a593Smuzhiyun	help
878*4882a593Smuzhiyun	  This provides memory management related data to the Linux - VM Monitor
879*4882a593Smuzhiyun	  Stream, like paging/swapping rate, memory utilisation, etc.
880*4882a593Smuzhiyun	  Writing 1 or 0 to /proc/appldata/memory creates(1) or removes(0) a z/VM
881*4882a593Smuzhiyun	  APPLDATA monitor record, i.e. enables or disables monitoring this record
882*4882a593Smuzhiyun	  on the z/VM side.
883*4882a593Smuzhiyun
884*4882a593Smuzhiyun	  Default is disabled.
885*4882a593Smuzhiyun	  The /proc entry can also be read from, showing the current settings.
886*4882a593Smuzhiyun
887*4882a593Smuzhiyun	  This can also be compiled as a module, which will be called
888*4882a593Smuzhiyun	  appldata_mem.o.
889*4882a593Smuzhiyun
890*4882a593Smuzhiyunconfig APPLDATA_OS
891*4882a593Smuzhiyun	def_tristate m
892*4882a593Smuzhiyun	prompt "Monitor OS statistics"
893*4882a593Smuzhiyun	depends on APPLDATA_BASE
894*4882a593Smuzhiyun	help
895*4882a593Smuzhiyun	  This provides OS related data to the Linux - VM Monitor Stream, like
896*4882a593Smuzhiyun	  CPU utilisation, etc.
897*4882a593Smuzhiyun	  Writing 1 or 0 to /proc/appldata/os creates(1) or removes(0) a z/VM
898*4882a593Smuzhiyun	  APPLDATA monitor record, i.e. enables or disables monitoring this record
899*4882a593Smuzhiyun	  on the z/VM side.
900*4882a593Smuzhiyun
901*4882a593Smuzhiyun	  Default is disabled.
902*4882a593Smuzhiyun	  This can also be compiled as a module, which will be called
903*4882a593Smuzhiyun	  appldata_os.o.
904*4882a593Smuzhiyun
905*4882a593Smuzhiyunconfig APPLDATA_NET_SUM
906*4882a593Smuzhiyun	def_tristate m
907*4882a593Smuzhiyun	prompt "Monitor overall network statistics"
908*4882a593Smuzhiyun	depends on APPLDATA_BASE && NET
909*4882a593Smuzhiyun	help
910*4882a593Smuzhiyun	  This provides network related data to the Linux - VM Monitor Stream,
911*4882a593Smuzhiyun	  currently there is only a total sum of network I/O statistics, no
912*4882a593Smuzhiyun	  per-interface data.
913*4882a593Smuzhiyun	  Writing 1 or 0 to /proc/appldata/net_sum creates(1) or removes(0) a z/VM
914*4882a593Smuzhiyun	  APPLDATA monitor record, i.e. enables or disables monitoring this record
915*4882a593Smuzhiyun	  on the z/VM side.
916*4882a593Smuzhiyun
917*4882a593Smuzhiyun	  Default is disabled.
918*4882a593Smuzhiyun	  This can also be compiled as a module, which will be called
919*4882a593Smuzhiyun	  appldata_net_sum.o.
920*4882a593Smuzhiyun
921*4882a593Smuzhiyunconfig S390_HYPFS_FS
922*4882a593Smuzhiyun	def_bool y
923*4882a593Smuzhiyun	prompt "s390 hypervisor file system support"
924*4882a593Smuzhiyun	select SYS_HYPERVISOR
925*4882a593Smuzhiyun	help
926*4882a593Smuzhiyun	  This is a virtual file system intended to provide accounting
927*4882a593Smuzhiyun	  information in an s390 hypervisor environment.
928*4882a593Smuzhiyun
929*4882a593Smuzhiyunsource "arch/s390/kvm/Kconfig"
930*4882a593Smuzhiyun
931*4882a593Smuzhiyunconfig S390_GUEST
932*4882a593Smuzhiyun	def_bool y
933*4882a593Smuzhiyun	prompt "s390 support for virtio devices"
934*4882a593Smuzhiyun	select TTY
935*4882a593Smuzhiyun	select VIRTUALIZATION
936*4882a593Smuzhiyun	select VIRTIO
937*4882a593Smuzhiyun	help
938*4882a593Smuzhiyun	  Enabling this option adds support for virtio based paravirtual device
939*4882a593Smuzhiyun	  drivers on s390.
940*4882a593Smuzhiyun
941*4882a593Smuzhiyun	  Select this option if you want to run the kernel as a guest under
942*4882a593Smuzhiyun	  the KVM hypervisor.
943*4882a593Smuzhiyun
944*4882a593Smuzhiyunendmenu
945*4882a593Smuzhiyun
946*4882a593Smuzhiyunmenu "Selftests"
947*4882a593Smuzhiyun
948*4882a593Smuzhiyunconfig S390_UNWIND_SELFTEST
949*4882a593Smuzhiyun	def_tristate n
950*4882a593Smuzhiyun	prompt "Test unwind functions"
951*4882a593Smuzhiyun	help
952*4882a593Smuzhiyun	  This option enables s390 specific stack unwinder testing kernel
953*4882a593Smuzhiyun	  module. This option is not useful for distributions or general
954*4882a593Smuzhiyun	  kernels, but only for kernel developers working on architecture code.
955*4882a593Smuzhiyun
956*4882a593Smuzhiyun	  Say N if you are unsure.
957*4882a593Smuzhiyun
958*4882a593Smuzhiyunendmenu
959