0001 Intel Service Layer Driver for Stratix10 SoC
0002 ============================================
0003 Intel Stratix10 SoC is composed of a 64 bit quad-core ARM Cortex A53 hard
0004 processor system (HPS) and Secure Device Manager (SDM). When the FPGA is
0005 configured from HPS, there needs to be a way for HPS to notify SDM the
0006 location and size of the configuration data. Then SDM will get the
0007 configuration data from that location and perform the FPGA configuration.
0008
0009 To meet the whole system security needs and support virtual machine requesting
0010 communication with SDM, only the secure world of software (EL3, Exception
0011 Layer 3) can interface with SDM. All software entities running on other
0012 exception layers must channel through the EL3 software whenever it needs
0013 service from SDM.
0014
0015 Intel Stratix10 service layer driver, running at privileged exception level
0016 (EL1, Exception Layer 1), interfaces with the service providers and provides
0017 the services for FPGA configuration, QSPI, Crypto and warm reset. Service layer
0018 driver also manages secure monitor call (SMC) to communicate with secure monitor
0019 code running in EL3.
0020
0021 Required properties:
0022 -------------------
0023 The svc node has the following mandatory properties, must be located under
0024 the firmware node.
0025
0026 - compatible: "intel,stratix10-svc" or "intel,agilex-svc"
0027 - method: smc or hvc
0028 smc - Secure Monitor Call
0029 hvc - Hypervisor Call
0030 - memory-region:
0031 phandle to the reserved memory node. See
0032 Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt
0033 for details
0034
0035 Example:
0036 -------
0037
0038 reserved-memory {
0039 #address-cells = <2>;
0040 #size-cells = <2>;
0041 ranges;
0042
0043 service_reserved: svcbuffer@0 {
0044 compatible = "shared-dma-pool";
0045 reg = <0x0 0x0 0x0 0x1000000>;
0046 alignment = <0x1000>;
0047 no-map;
0048 };
0049 };
0050
0051 firmware {
0052 svc {
0053 compatible = "intel,stratix10-svc";
0054 method = "smc";
0055 memory-region = <&service_reserved>;
0056 };
0057 };