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