xref: /freebsd/sys/contrib/device-tree/Bindings/firmware/intel,stratix10-svc.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel VadotIntel Service Layer Driver for Stratix10 SoC
2*c66ec88fSEmmanuel Vadot============================================
3*c66ec88fSEmmanuel VadotIntel Stratix10 SoC is composed of a 64 bit quad-core ARM Cortex A53 hard
4*c66ec88fSEmmanuel Vadotprocessor system (HPS) and Secure Device Manager (SDM). When the FPGA is
5*c66ec88fSEmmanuel Vadotconfigured from HPS, there needs to be a way for HPS to notify SDM the
6*c66ec88fSEmmanuel Vadotlocation and size of the configuration data. Then SDM will get the
7*c66ec88fSEmmanuel Vadotconfiguration data from that location and perform the FPGA configuration.
8*c66ec88fSEmmanuel Vadot
9*c66ec88fSEmmanuel VadotTo meet the whole system security needs and support virtual machine requesting
10*c66ec88fSEmmanuel Vadotcommunication with SDM, only the secure world of software (EL3, Exception
11*c66ec88fSEmmanuel VadotLayer 3) can interface with SDM. All software entities running on other
12*c66ec88fSEmmanuel Vadotexception layers must channel through the EL3 software whenever it needs
13*c66ec88fSEmmanuel Vadotservice from SDM.
14*c66ec88fSEmmanuel Vadot
15*c66ec88fSEmmanuel VadotIntel Stratix10 service layer driver, running at privileged exception level
16*c66ec88fSEmmanuel Vadot(EL1, Exception Layer 1), interfaces with the service providers and provides
17*c66ec88fSEmmanuel Vadotthe services for FPGA configuration, QSPI, Crypto and warm reset. Service layer
18*c66ec88fSEmmanuel Vadotdriver also manages secure monitor call (SMC) to communicate with secure monitor
19*c66ec88fSEmmanuel Vadotcode running in EL3.
20*c66ec88fSEmmanuel Vadot
21*c66ec88fSEmmanuel VadotRequired properties:
22*c66ec88fSEmmanuel Vadot-------------------
23*c66ec88fSEmmanuel VadotThe svc node has the following mandatory properties, must be located under
24*c66ec88fSEmmanuel Vadotthe firmware node.
25*c66ec88fSEmmanuel Vadot
26*c66ec88fSEmmanuel Vadot- compatible: "intel,stratix10-svc" or "intel,agilex-svc"
27*c66ec88fSEmmanuel Vadot- method: smc or hvc
28*c66ec88fSEmmanuel Vadot        smc - Secure Monitor Call
29*c66ec88fSEmmanuel Vadot        hvc - Hypervisor Call
30*c66ec88fSEmmanuel Vadot- memory-region:
31*c66ec88fSEmmanuel Vadot	phandle to the reserved memory node. See
32*c66ec88fSEmmanuel Vadot	Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt
33*c66ec88fSEmmanuel Vadot	for details
34*c66ec88fSEmmanuel Vadot
35*c66ec88fSEmmanuel VadotExample:
36*c66ec88fSEmmanuel Vadot-------
37*c66ec88fSEmmanuel Vadot
38*c66ec88fSEmmanuel Vadot	reserved-memory {
39*c66ec88fSEmmanuel Vadot                #address-cells = <2>;
40*c66ec88fSEmmanuel Vadot                #size-cells = <2>;
41*c66ec88fSEmmanuel Vadot                ranges;
42*c66ec88fSEmmanuel Vadot
43*c66ec88fSEmmanuel Vadot                service_reserved: svcbuffer@0 {
44*c66ec88fSEmmanuel Vadot                        compatible = "shared-dma-pool";
45*c66ec88fSEmmanuel Vadot                        reg = <0x0 0x0 0x0 0x1000000>;
46*c66ec88fSEmmanuel Vadot                        alignment = <0x1000>;
47*c66ec88fSEmmanuel Vadot                        no-map;
48*c66ec88fSEmmanuel Vadot                };
49*c66ec88fSEmmanuel Vadot        };
50*c66ec88fSEmmanuel Vadot
51*c66ec88fSEmmanuel Vadot	firmware {
52*c66ec88fSEmmanuel Vadot		svc {
53*c66ec88fSEmmanuel Vadot			compatible = "intel,stratix10-svc";
54*c66ec88fSEmmanuel Vadot			method = "smc";
55*c66ec88fSEmmanuel Vadot			memory-region = <&service_reserved>;
56*c66ec88fSEmmanuel Vadot		};
57*c66ec88fSEmmanuel Vadot	};
58