Commit 7ca5ce89 authored by Richard Gong's avatar Richard Gong Committed by Greg Kroah-Hartman
Browse files

firmware: add Intel Stratix10 service layer driver



Some features of the Intel Stratix10 SoC require a level of privilege
higher than the kernel is granted. Such secure features include
FPGA programming. In terms of the ARMv8 architecture, the kernel runs
at Exception Level 1 (EL1), access to the features requires
Exception Level 3 (EL3).

The Intel Stratix10 SoC service layer provides an in kernel API for
drivers to request access to the secure features. The requests are queued
and processed one by one. ARM’s SMCCC is used to pass the execution
of the requests on to a secure monitor (EL3).

The header file stratix10-sve-client.h defines the interface between
service providers (FPGA manager is one of them) and service layer.

The header file stratix10-smc.h defines the secure monitor call (SMC)
message protocols used for service layer driver in normal world
(EL1) to communicate with secure monitor SW in secure monitor exception
level 3 (EL3).

Signed-off-by: default avatarRichard Gong <richard.gong@intel.com>
Signed-off-by: default avatarAlan Tull <atull@kernel.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent adb9e354
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -216,6 +216,18 @@ config FW_CFG_SYSFS_CMDLINE
	  WARNING: Using incorrect parameters (base address in particular)
	  may crash your system.

config INTEL_STRATIX10_SERVICE
	tristate "Intel Stratix10 Service Layer"
	depends on HAVE_ARM_SMCCC
	default n
	help
	  Intel Stratix10 service layer runs at privileged exception level,
	  interfaces with the service providers (FPGA manager is one of them)
	  and manages secure monitor call to communicate with secure monitor
	  software at secure monitor exception level.

	  Say Y here if you want Stratix10 service layer support.

config QCOM_SCM
	bool
	depends on ARM || ARM64
+1 −0
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@ obj-$(CONFIG_DMI_SYSFS) += dmi-sysfs.o
obj-$(CONFIG_EDD)		+= edd.o
obj-$(CONFIG_EFI_PCDP)		+= pcdp.o
obj-$(CONFIG_DMIID)		+= dmi-id.o
obj-$(CONFIG_INTEL_STRATIX10_SERVICE) += stratix10-svc.o
obj-$(CONFIG_ISCSI_IBFT_FIND)	+= iscsi_ibft_find.o
obj-$(CONFIG_ISCSI_IBFT)	+= iscsi_ibft.o
obj-$(CONFIG_FIRMWARE_MEMMAP)	+= memmap.o