xref: /linux/arch/powerpc/platforms/pseries/Kconfig (revision 417552999d0b6681ac30e117ae890828ca7e46b3)
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 MEMORY_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	help
158	  Enable access to the VPA PMU counters via perf. This enables
159	  code that support measurement for KVM on PowerVM(KoP) feature.
160	  PAPR hypervisor has introduced three new counters in the VPA area
161	  of LPAR CPUs for KVM L2 guest observability. Two for context switches
162	  from host to guest and vice versa, and one counter for getting
163	  the total time spent inside the KVM guest. This config enables code
164	  that access these software counters via perf.
165
166	  If unsure, Select N.
167
168config IBMVIO
169	depends on PPC_PSERIES
170	bool
171	default y
172
173config IBMEBUS
174	depends on PPC_PSERIES && !CPU_LITTLE_ENDIAN
175	bool "Support for GX bus based adapters"
176	help
177	  Bus device driver for GX bus based adapters.
178
179config PSERIES_PLPKS
180	depends on PPC_PSERIES
181	select NLS
182	bool
183	# PowerVM provides an isolated Platform Keystore (PKS) storage
184	# allocation for each LPAR with individually managed access
185	# controls to store sensitive information securely. It can be
186	# used to store asymmetric public keys or secrets as required
187	# by different usecases.
188	#
189	# This option is selected by in-kernel consumers that require
190	# access to the PKS.
191
192config PSERIES_PLPKS_SED
193	depends on PPC_PSERIES
194	bool
195	# This option is selected by in-kernel consumers that require
196	# access to the SED PKS keystore.
197
198config PAPR_SCM
199	depends on PPC_PSERIES && MEMORY_HOTPLUG && LIBNVDIMM
200	tristate "Support for the PAPR Storage Class Memory interface"
201	help
202	  Enable access to hypervisor provided storage class memory.
203
204config PPC_SVM
205	bool "Secure virtual machine (SVM) support for POWER"
206	depends on PPC_PSERIES
207	select SWIOTLB
208	select ARCH_HAS_MEM_ENCRYPT
209	select ARCH_HAS_FORCE_DMA_UNENCRYPTED
210	select ARCH_HAS_CC_PLATFORM
211	help
212	 There are certain POWER platforms which support secure guests using
213	 the Protected Execution Facility, with the help of an Ultravisor
214	 executing below the hypervisor layer. This enables support for
215	 those guests.
216
217	 If unsure, say "N".
218