firmware: add Intel Stratix10 service layer driver
authorRichard Gong <richard.gong@intel.com>
Tue, 13 Nov 2018 18:14:01 +0000 (12:14 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 26 Nov 2018 19:13:50 +0000 (20:13 +0100)
commit7ca5ce896524f5292e610b27d168269e5ab74951
treee8cab2f009c19a7a557d66be6c73742511783ba9
parentadb9e3543d229484f5e7e5136b3f27e85b8a1675
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 <richard.gong@intel.com>
Signed-off-by: Alan Tull <atull@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/firmware/Kconfig
drivers/firmware/Makefile
drivers/firmware/stratix10-svc.c [new file with mode: 0644]
include/linux/firmware/intel/stratix10-smc.h [new file with mode: 0644]
include/linux/firmware/intel/stratix10-svc-client.h [new file with mode: 0644]