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