powerpc/pseries: RTAS work area requires GENERIC_ALLOCATOR
[linux-block.git] / arch / powerpc / platforms / pseries / Kconfig
1 # SPDX-License-Identifier: GPL-2.0
2 config 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
27 config PARAVIRT
28         bool
29
30 config PARAVIRT_SPINLOCKS
31         bool
32
33 config PARAVIRT_TIME_ACCOUNTING
34         select PARAVIRT
35         bool
36
37 config 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
51 config 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
61 config 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
71 config 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
89 config 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
96 config 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
107 config 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
117 config 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
130 config 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
142 config IBMVIO
143         depends on PPC_PSERIES
144         bool
145         default y
146
147 config 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
153 config 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
166 config 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
172 config 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".