mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
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: Richard Gong <[email protected]> Signed-off-by: Alan Tull <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
This commit is contained in:
parent
adb9e3543d
commit
7ca5ce8965
5 changed files with 1492 additions and 0 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
1013
drivers/firmware/stratix10-svc.c
Normal file
1013
drivers/firmware/stratix10-svc.c
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue