162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ciconfig PPC_PSERIES
362306a36Sopenharmony_ci	depends on PPC64 && PPC_BOOK3S
462306a36Sopenharmony_ci	bool "IBM pSeries & new (POWER5-based) iSeries"
562306a36Sopenharmony_ci	select HAVE_PCSPKR_PLATFORM
662306a36Sopenharmony_ci	select MPIC
762306a36Sopenharmony_ci	select OF_DYNAMIC
862306a36Sopenharmony_ci	select FORCE_PCI
962306a36Sopenharmony_ci	select PCI_MSI
1062306a36Sopenharmony_ci	select GENERIC_ALLOCATOR
1162306a36Sopenharmony_ci	select PPC_XICS
1262306a36Sopenharmony_ci	select PPC_XIVE_SPAPR
1362306a36Sopenharmony_ci	select PPC_ICP_NATIVE
1462306a36Sopenharmony_ci	select PPC_ICP_HV
1562306a36Sopenharmony_ci	select PPC_ICS_RTAS
1662306a36Sopenharmony_ci	select PPC_I8259
1762306a36Sopenharmony_ci	select PPC_RTAS
1862306a36Sopenharmony_ci	select PPC_RTAS_DAEMON
1962306a36Sopenharmony_ci	select RTAS_ERROR_LOGGING
2062306a36Sopenharmony_ci	select PPC_UDBG_16550
2162306a36Sopenharmony_ci	select PPC_DOORBELL
2262306a36Sopenharmony_ci	select HOTPLUG_CPU
2362306a36Sopenharmony_ci	select FORCE_SMP
2462306a36Sopenharmony_ci	select SWIOTLB
2562306a36Sopenharmony_ci	select ARCH_SUPPORTS_PER_VMA_LOCK
2662306a36Sopenharmony_ci	default y
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ciconfig PARAVIRT
2962306a36Sopenharmony_ci	bool
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ciconfig PARAVIRT_SPINLOCKS
3262306a36Sopenharmony_ci	bool
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ciconfig PARAVIRT_TIME_ACCOUNTING
3562306a36Sopenharmony_ci	select PARAVIRT
3662306a36Sopenharmony_ci	bool
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ciconfig PPC_SPLPAR
3962306a36Sopenharmony_ci	bool "Support for shared-processor logical partitions"
4062306a36Sopenharmony_ci	depends on PPC_PSERIES
4162306a36Sopenharmony_ci	select PARAVIRT_SPINLOCKS if PPC_QUEUED_SPINLOCKS
4262306a36Sopenharmony_ci	select PARAVIRT_TIME_ACCOUNTING if VIRT_CPU_ACCOUNTING_GEN
4362306a36Sopenharmony_ci	default y
4462306a36Sopenharmony_ci	help
4562306a36Sopenharmony_ci	  Enabling this option will make the kernel run more efficiently
4662306a36Sopenharmony_ci	  on logically-partitioned pSeries systems which use shared
4762306a36Sopenharmony_ci	  processors, that is, which share physical processors between
4862306a36Sopenharmony_ci	  two or more partitions.
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci	  Say Y if you are unsure.
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ciconfig DTL
5362306a36Sopenharmony_ci	bool "Dispatch Trace Log"
5462306a36Sopenharmony_ci	depends on PPC_SPLPAR && DEBUG_FS
5562306a36Sopenharmony_ci	help
5662306a36Sopenharmony_ci	  SPLPAR machines can log hypervisor preempt & dispatch events to a
5762306a36Sopenharmony_ci	  kernel buffer. Saying Y here will enable logging these events,
5862306a36Sopenharmony_ci	  which are accessible through a debugfs file.
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci	  Say N if you are unsure.
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ciconfig PSERIES_ENERGY
6362306a36Sopenharmony_ci	tristate "pSeries energy management capabilities driver"
6462306a36Sopenharmony_ci	depends on PPC_PSERIES
6562306a36Sopenharmony_ci	default y
6662306a36Sopenharmony_ci	help
6762306a36Sopenharmony_ci	  Provides interface to platform energy management capabilities
6862306a36Sopenharmony_ci	  on supported PSERIES platforms.
6962306a36Sopenharmony_ci	  Provides: /sys/devices/system/cpu/pseries_(de)activation_hint_list
7062306a36Sopenharmony_ci	  and /sys/devices/system/cpu/cpuN/pseries_(de)activation_hint
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ciconfig IO_EVENT_IRQ
7362306a36Sopenharmony_ci	bool "IO Event Interrupt support"
7462306a36Sopenharmony_ci	depends on PPC_PSERIES
7562306a36Sopenharmony_ci	default y
7662306a36Sopenharmony_ci	help
7762306a36Sopenharmony_ci	  Select this option, if you want to enable support for IO Event
7862306a36Sopenharmony_ci	  interrupts. IO event interrupt is a mechanism provided by RTAS
7962306a36Sopenharmony_ci	  to return information about hardware error and non-error events
8062306a36Sopenharmony_ci	  which may need OS attention. RTAS returns events for multiple
8162306a36Sopenharmony_ci	  event types and scopes. Device drivers can register their handlers
8262306a36Sopenharmony_ci	  to receive events.
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ci	  This option will only enable the IO event platform code. You
8562306a36Sopenharmony_ci	  will still need to enable or compile the actual drivers
8662306a36Sopenharmony_ci	  that use this infrastructure to handle IO event interrupts.
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ci	  Say Y if you are unsure.
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ciconfig LPARCFG
9162306a36Sopenharmony_ci	bool "LPAR Configuration Data"
9262306a36Sopenharmony_ci	depends on PPC_PSERIES
9362306a36Sopenharmony_ci	help
9462306a36Sopenharmony_ci	  Provide system capacity information via human readable
9562306a36Sopenharmony_ci	  <key word>=<value> pairs through a /proc/ppc64/lparcfg interface.
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ciconfig PPC_PSERIES_DEBUG
9862306a36Sopenharmony_ci	depends on PPC_PSERIES && PPC_EARLY_DEBUG
9962306a36Sopenharmony_ci	bool "Enable extra debug logging in platforms/pseries"
10062306a36Sopenharmony_ci	default y
10162306a36Sopenharmony_ci	help
10262306a36Sopenharmony_ci	  Say Y here if you want the pseries core to produce a bunch of
10362306a36Sopenharmony_ci	  debug messages to the system log. Select this if you are having a
10462306a36Sopenharmony_ci	  problem with the pseries core and want to see more of what is
10562306a36Sopenharmony_ci	  going on. This does not enable debugging in lpar.c, which must
10662306a36Sopenharmony_ci	  be manually done due to its verbosity.
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_ciconfig PPC_SMLPAR
10962306a36Sopenharmony_ci	bool "Support for shared-memory logical partitions"
11062306a36Sopenharmony_ci	depends on PPC_PSERIES
11162306a36Sopenharmony_ci	select LPARCFG
11262306a36Sopenharmony_ci	help
11362306a36Sopenharmony_ci	  Select this option to enable shared memory partition support.
11462306a36Sopenharmony_ci	  With this option a system running in an LPAR can be given more
11562306a36Sopenharmony_ci	  memory than physically available and will allow firmware to
11662306a36Sopenharmony_ci	  balance memory across many LPARs.
11762306a36Sopenharmony_ci
11862306a36Sopenharmony_ciconfig CMM
11962306a36Sopenharmony_ci	tristate "Collaborative memory management"
12062306a36Sopenharmony_ci	depends on PPC_SMLPAR
12162306a36Sopenharmony_ci	select MEMORY_BALLOON
12262306a36Sopenharmony_ci	default y
12362306a36Sopenharmony_ci	help
12462306a36Sopenharmony_ci	  Select this option, if you want to enable the kernel interface
12562306a36Sopenharmony_ci	  to reduce the memory size of the system. This is accomplished
12662306a36Sopenharmony_ci	  by allocating pages of memory and put them "on hold". This only
12762306a36Sopenharmony_ci	  makes sense for a system running in an LPAR where the unused pages
12862306a36Sopenharmony_ci	  will be reused for other LPARs. The interface allows firmware to
12962306a36Sopenharmony_ci	  balance memory across many LPARs.
13062306a36Sopenharmony_ci
13162306a36Sopenharmony_ciconfig HV_PERF_CTRS
13262306a36Sopenharmony_ci	bool "Hypervisor supplied PMU events (24x7 & GPCI)"
13362306a36Sopenharmony_ci	default y
13462306a36Sopenharmony_ci	depends on PERF_EVENTS && PPC_PSERIES
13562306a36Sopenharmony_ci	help
13662306a36Sopenharmony_ci	  Enable access to hypervisor supplied counters in perf. Currently,
13762306a36Sopenharmony_ci	  this enables code that uses the hcall GetPerfCounterInfo and 24x7
13862306a36Sopenharmony_ci	  interfaces to retrieve counters. GPCI exists on Power 6 and later
13962306a36Sopenharmony_ci	  systems. 24x7 is available on Power 8 and later systems.
14062306a36Sopenharmony_ci
14162306a36Sopenharmony_ci	  If unsure, select Y.
14262306a36Sopenharmony_ci
14362306a36Sopenharmony_ciconfig IBMVIO
14462306a36Sopenharmony_ci	depends on PPC_PSERIES
14562306a36Sopenharmony_ci	bool
14662306a36Sopenharmony_ci	default y
14762306a36Sopenharmony_ci
14862306a36Sopenharmony_ciconfig IBMEBUS
14962306a36Sopenharmony_ci	depends on PPC_PSERIES && !CPU_LITTLE_ENDIAN
15062306a36Sopenharmony_ci	bool "Support for GX bus based adapters"
15162306a36Sopenharmony_ci	help
15262306a36Sopenharmony_ci	  Bus device driver for GX bus based adapters.
15362306a36Sopenharmony_ci
15462306a36Sopenharmony_ciconfig PSERIES_PLPKS
15562306a36Sopenharmony_ci	depends on PPC_PSERIES
15662306a36Sopenharmony_ci	select NLS
15762306a36Sopenharmony_ci	bool
15862306a36Sopenharmony_ci	# PowerVM provides an isolated Platform Keystore (PKS) storage
15962306a36Sopenharmony_ci	# allocation for each LPAR with individually managed access
16062306a36Sopenharmony_ci	# controls to store sensitive information securely. It can be
16162306a36Sopenharmony_ci	# used to store asymmetric public keys or secrets as required
16262306a36Sopenharmony_ci	# by different usecases.
16362306a36Sopenharmony_ci	#
16462306a36Sopenharmony_ci	# This option is selected by in-kernel consumers that require
16562306a36Sopenharmony_ci	# access to the PKS.
16662306a36Sopenharmony_ci
16762306a36Sopenharmony_ciconfig PAPR_SCM
16862306a36Sopenharmony_ci	depends on PPC_PSERIES && MEMORY_HOTPLUG && LIBNVDIMM
16962306a36Sopenharmony_ci	tristate "Support for the PAPR Storage Class Memory interface"
17062306a36Sopenharmony_ci	help
17162306a36Sopenharmony_ci	  Enable access to hypervisor provided storage class memory.
17262306a36Sopenharmony_ci
17362306a36Sopenharmony_ciconfig PPC_SVM
17462306a36Sopenharmony_ci	bool "Secure virtual machine (SVM) support for POWER"
17562306a36Sopenharmony_ci	depends on PPC_PSERIES
17662306a36Sopenharmony_ci	select SWIOTLB
17762306a36Sopenharmony_ci	select ARCH_HAS_MEM_ENCRYPT
17862306a36Sopenharmony_ci	select ARCH_HAS_FORCE_DMA_UNENCRYPTED
17962306a36Sopenharmony_ci	select ARCH_HAS_CC_PLATFORM
18062306a36Sopenharmony_ci	help
18162306a36Sopenharmony_ci	 There are certain POWER platforms which support secure guests using
18262306a36Sopenharmony_ci	 the Protected Execution Facility, with the help of an Ultravisor
18362306a36Sopenharmony_ci	 executing below the hypervisor layer. This enables support for
18462306a36Sopenharmony_ci	 those guests.
18562306a36Sopenharmony_ci
18662306a36Sopenharmony_ci	 If unsure, say "N".
187