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