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