# SPDX-License-Identifier: GPL-2.0-only

source "drivers/firmware/arm/ffa/Kconfig"
source "drivers/firmware/arm/psci/Kconfig"
source "drivers/firmware/arm/rmm/Kconfig"
source "drivers/firmware/arm/scmi/Kconfig"
source "drivers/firmware/arm/smccc/Kconfig"

config ARM_SCPI_PROTOCOL
	tristate "ARM System Control and Power Interface (SCPI) Message Protocol"
	depends on ARM || ARM64 || COMPILE_TEST
	depends on MAILBOX
	help
	  System Control and Power Interface (SCPI) Message Protocol is
	  defined for the purpose of communication between the Application
	  Cores(AP) and the System Control Processor(SCP). The MHU peripheral
	  provides a mechanism for inter-processor communication between SCP
	  and AP.

	  SCP controls most of the power management on the Application
	  Processors. It offers control and management of: the core/cluster
	  power states, various power domain DVFS including the core/cluster,
	  certain system clocks configuration, thermal sensors and many
	  others.

	  This protocol library provides interface for all the client drivers
	  making use of the features offered by the SCP.

config ARM_SDE_INTERFACE
	bool "ARM Software Delegated Exception Interface (SDEI)"
	depends on ARM64
	help
	  The Software Delegated Exception Interface (SDEI) is an ARM
	  standard for registering callbacks from the platform firmware
	  into the OS. This is typically used to implement RAS notifications.

config ARM_SDEI_NMI
	bool "SDEI-based cross-CPU NMI service (arm64)"
	depends on ARM_SDE_INTERFACE
	help
	  Provides SDEI-based cross-CPU NMI delivery for hooks that need
	  to reach interrupt-masked CPUs on silicon that lacks FEAT_NMI:

	    - arch_trigger_cpumask_backtrace()  (sysrq-l, RCU stalls,
	      hardlockup_all_cpu_backtrace, soft-lockup secondary dumps,
	      hung-task auxiliary dumps)
	    - smp_send_stop() escalation         (reboot/halt and the
	      panic / kdump crash stop)

	  The driver registers a handler for the SDEI software-signalled
	  event (event 0) and reaches a target CPU by signalling it with
	  SDEI_EVENT_SIGNAL. Firmware delivers the event out of EL3
	  regardless of the target's PSTATE.DAIF -- forced delivery into a
	  CPU wedged with interrupts locally masked.

	  If unsure, say N.
