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