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