1# SPDX-License-Identifier: GPL-2.0 2config PPC_PSERIES 3 depends on PPC64 && PPC_BOOK3S 4 bool "IBM pSeries & new (POWER5-based) iSeries" 5 select HAVE_PCSPKR_PLATFORM 6 select MPIC 7 select OF_DYNAMIC 8 select FORCE_PCI 9 select PCI_MSI 10 select GENERIC_ALLOCATOR 11 select PPC_XICS 12 select PPC_XIVE_SPAPR 13 select PPC_ICP_NATIVE 14 select PPC_ICP_HV 15 select PPC_ICS_RTAS 16 select PPC_I8259 17 select PPC_RTAS 18 select PPC_RTAS_DAEMON 19 select RTAS_ERROR_LOGGING 20 select PPC_UDBG_16550 21 select PPC_DOORBELL 22 select HOTPLUG_CPU 23 select FORCE_SMP 24 select SWIOTLB 25 select ARCH_SUPPORTS_PER_VMA_LOCK 26 default y 27 28config PARAVIRT 29 bool 30 31config PARAVIRT_SPINLOCKS 32 bool 33 34config PARAVIRT_TIME_ACCOUNTING 35 select PARAVIRT 36 bool 37 38config PPC_SPLPAR 39 bool "Support for shared-processor logical partitions" 40 depends on PPC_PSERIES 41 select PARAVIRT_SPINLOCKS if PPC_QUEUED_SPINLOCKS 42 select PARAVIRT_TIME_ACCOUNTING if VIRT_CPU_ACCOUNTING_GEN 43 default y 44 help 45 Enabling this option will make the kernel run more efficiently 46 on logically-partitioned pSeries systems which use shared 47 processors, that is, which share physical processors between 48 two or more partitions. 49 50 Say Y if you are unsure. 51 52config DTL 53 bool "Dispatch Trace Log" 54 depends on PPC_SPLPAR && DEBUG_FS 55 help 56 SPLPAR machines can log hypervisor preempt & dispatch events to a 57 kernel buffer. Saying Y here will enable logging these events, 58 which are accessible through a debugfs file. 59 60 Say N if you are unsure. 61 62config PSERIES_ENERGY 63 tristate "pSeries energy management capabilities driver" 64 depends on PPC_PSERIES 65 default y 66 help 67 Provides interface to platform energy management capabilities 68 on supported PSERIES platforms. 69 Provides: /sys/devices/system/cpu/pseries_(de)activation_hint_list 70 and /sys/devices/system/cpu/cpuN/pseries_(de)activation_hint 71 72config IO_EVENT_IRQ 73 bool "IO Event Interrupt support" 74 depends on PPC_PSERIES 75 default y 76 help 77 Select this option, if you want to enable support for IO Event 78 interrupts. IO event interrupt is a mechanism provided by RTAS 79 to return information about hardware error and non-error events 80 which may need OS attention. RTAS returns events for multiple 81 event types and scopes. Device drivers can register their handlers 82 to receive events. 83 84 This option will only enable the IO event platform code. You 85 will still need to enable or compile the actual drivers 86 that use this infrastructure to handle IO event interrupts. 87 88 Say Y if you are unsure. 89 90config LPARCFG 91 bool "LPAR Configuration Data" 92 depends on PPC_PSERIES 93 help 94 Provide system capacity information via human readable 95 <key word>=<value> pairs through a /proc/ppc64/lparcfg interface. 96 97config PPC_PSERIES_DEBUG 98 depends on PPC_PSERIES && PPC_EARLY_DEBUG 99 bool "Enable extra debug logging in platforms/pseries" 100 default y 101 help 102 Say Y here if you want the pseries core to produce a bunch of 103 debug messages to the system log. Select this if you are having a 104 problem with the pseries core and want to see more of what is 105 going on. This does not enable debugging in lpar.c, which must 106 be manually done due to its verbosity. 107 108config PPC_SMLPAR 109 bool "Support for shared-memory logical partitions" 110 depends on PPC_PSERIES 111 select LPARCFG 112 help 113 Select this option to enable shared memory partition support. 114 With this option a system running in an LPAR can be given more 115 memory than physically available and will allow firmware to 116 balance memory across many LPARs. 117 118config CMM 119 tristate "Collaborative memory management" 120 depends on PPC_SMLPAR 121 select MEMORY_BALLOON 122 default y 123 help 124 Select this option, if you want to enable the kernel interface 125 to reduce the memory size of the system. This is accomplished 126 by allocating pages of memory and put them "on hold". This only 127 makes sense for a system running in an LPAR where the unused pages 128 will be reused for other LPARs. The interface allows firmware to 129 balance memory across many LPARs. 130 131config HTMDUMP 132 tristate "PowerVM data dumper" 133 depends on PPC_PSERIES && DEBUG_FS 134 default m 135 help 136 Select this option, if you want to enable the kernel debugfs 137 interface to dump the Hardware Trace Macro (HTM) function data 138 in the LPAR. 139 140config HV_PERF_CTRS 141 bool "Hypervisor supplied PMU events (24x7 & GPCI)" 142 default y 143 depends on PERF_EVENTS && PPC_PSERIES 144 help 145 Enable access to hypervisor supplied counters in perf. Currently, 146 this enables code that uses the hcall GetPerfCounterInfo and 24x7 147 interfaces to retrieve counters. GPCI exists on Power 6 and later 148 systems. 24x7 is available on Power 8 and later systems. 149 150 If unsure, select Y. 151 152config VPA_PMU 153 tristate "VPA PMU events" 154 depends on KVM_BOOK3S_64_HV && HV_PERF_CTRS 155 help 156 Enable access to the VPA PMU counters via perf. This enables 157 code that support measurement for KVM on PowerVM(KoP) feature. 158 PAPR hypervisor has introduced three new counters in the VPA area 159 of LPAR CPUs for KVM L2 guest observability. Two for context switches 160 from host to guest and vice versa, and one counter for getting 161 the total time spent inside the KVM guest. This config enables code 162 that access these software counters via perf. 163 164 If unsure, Select N. 165 166config IBMVIO 167 depends on PPC_PSERIES 168 bool 169 default y 170 171config IBMEBUS 172 depends on PPC_PSERIES && !CPU_LITTLE_ENDIAN 173 bool "Support for GX bus based adapters" 174 help 175 Bus device driver for GX bus based adapters. 176 177config PSERIES_PLPKS 178 depends on PPC_PSERIES 179 select NLS 180 bool 181 # PowerVM provides an isolated Platform Keystore (PKS) storage 182 # allocation for each LPAR with individually managed access 183 # controls to store sensitive information securely. It can be 184 # used to store asymmetric public keys or secrets as required 185 # by different usecases. 186 # 187 # This option is selected by in-kernel consumers that require 188 # access to the PKS. 189 190config PSERIES_PLPKS_SED 191 depends on PPC_PSERIES 192 bool 193 # This option is selected by in-kernel consumers that require 194 # access to the SED PKS keystore. 195 196config PAPR_SCM 197 depends on PPC_PSERIES && MEMORY_HOTPLUG && LIBNVDIMM 198 tristate "Support for the PAPR Storage Class Memory interface" 199 help 200 Enable access to hypervisor provided storage class memory. 201 202config PPC_SVM 203 bool "Secure virtual machine (SVM) support for POWER" 204 depends on PPC_PSERIES 205 select SWIOTLB 206 select ARCH_HAS_MEM_ENCRYPT 207 select ARCH_HAS_FORCE_DMA_UNENCRYPTED 208 select ARCH_HAS_CC_PLATFORM 209 help 210 There are certain POWER platforms which support secure guests using 211 the Protected Execution Facility, with the help of an Ultravisor 212 executing below the hypervisor layer. This enables support for 213 those guests. 214 215 If unsure, say "N". 216