# SPDX-License-Identifier: GPL-2.0
config PPC_POWERNV
	depends on PPC64 && PPC_BOOK3S
	bool "IBM PowerNV (Non-Virtualized) platform support"
	select PPC_NATIVE
	select PPC_XICS
	select PPC_ICP_NATIVE
	select PPC_XIVE_NATIVE
	select PPC_P7_NAP
	select FORCE_PCI
	select PCI_MSI
	select EPAPR_BOOT
	select PPC_INDIRECT_PIO
	select PPC_UDBG_16550
	select ARCH_RANDOM
	select CPU_FREQ
	select PPC_DOORBELL
	select MMU_NOTIFIER
	select FORCE_SMP
	default y

config OPAL_PRD
	tristate 'OPAL PRD driver'
	depends on PPC_POWERNV
	help
	  This enables the opal-prd driver, a facility to run processor
	  recovery diagnostics on OpenPower machines

config PPC_MEMTRACE
	bool "Enable runtime allocation of RAM for tracing"
	depends on PPC_POWERNV && MEMORY_HOTPLUG && CONTIG_ALLOC
	help
	  Enabling this option allows for runtime allocation of memory (RAM)
	  for hardware tracing.

config PPC_VAS
	bool "IBM Virtual Accelerator Switchboard (VAS)"
	depends on PPC_POWERNV && PPC_64K_PAGES
	default y
	help
	  This enables support for IBM Virtual Accelerator Switchboard (VAS).

	  VAS allows accelerators in co-processors like NX-GZIP and NX-842
	  to be accessible to kernel subsystems and user processes.

	  VAS adapters are found in POWER9 based systems.

	  If unsure, say N.

config SCOM_DEBUGFS
	bool "Expose SCOM controllers via debugfs"
	depends on DEBUG_FS
