xref: /linux/arch/powerpc/platforms/pseries/Kconfig (revision 81bb6490b78aab8cbfc2d0670f177233d2fa15f5)
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