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