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 HV_PERF_CTRS
132	bool "Hypervisor supplied PMU events (24x7 & GPCI)"
133	default y
134	depends on PERF_EVENTS && PPC_PSERIES
135	help
136	  Enable access to hypervisor supplied counters in perf. Currently,
137	  this enables code that uses the hcall GetPerfCounterInfo and 24x7
138	  interfaces to retrieve counters. GPCI exists on Power 6 and later
139	  systems. 24x7 is available on Power 8 and later systems.
140
141	  If unsure, select Y.
142
143config IBMVIO
144	depends on PPC_PSERIES
145	bool
146	default y
147
148config IBMEBUS
149	depends on PPC_PSERIES && !CPU_LITTLE_ENDIAN
150	bool "Support for GX bus based adapters"
151	help
152	  Bus device driver for GX bus based adapters.
153
154config PSERIES_PLPKS
155	depends on PPC_PSERIES
156	select NLS
157	bool
158	# PowerVM provides an isolated Platform Keystore (PKS) storage
159	# allocation for each LPAR with individually managed access
160	# controls to store sensitive information securely. It can be
161	# used to store asymmetric public keys or secrets as required
162	# by different usecases.
163	#
164	# This option is selected by in-kernel consumers that require
165	# access to the PKS.
166
167config PSERIES_PLPKS_SED
168	depends on PPC_PSERIES
169	bool
170	# This option is selected by in-kernel consumers that require
171	# access to the SED PKS keystore.
172
173config PAPR_SCM
174	depends on PPC_PSERIES && MEMORY_HOTPLUG && LIBNVDIMM
175	tristate "Support for the PAPR Storage Class Memory interface"
176	help
177	  Enable access to hypervisor provided storage class memory.
178
179config PPC_SVM
180	bool "Secure virtual machine (SVM) support for POWER"
181	depends on PPC_PSERIES
182	select SWIOTLB
183	select ARCH_HAS_MEM_ENCRYPT
184	select ARCH_HAS_FORCE_DMA_UNENCRYPTED
185	select ARCH_HAS_CC_PLATFORM
186	help
187	 There are certain POWER platforms which support secure guests using
188	 the Protected Execution Facility, with the help of an Ultravisor
189	 executing below the hypervisor layer. This enables support for
190	 those guests.
191
192	 If unsure, say "N".
193