xref: /linux/Documentation/devicetree/bindings/firmware/intel,stratix10-svc.yaml (revision e78f70bad29c5ae1e1076698b690b15794e9b81e)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/firmware/intel,stratix10-svc.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Intel Service Layer Driver for Stratix10 SoC
8
9maintainers:
10  - Dinh Nguyen <dinguyen@kernel.org>
11  - Mahesh Rao <mahesh.rao@altera.com>
12
13description: >
14  Intel Stratix10 SoC is composed of a 64 bit quad-core ARM Cortex A53 hard
15  processor system (HPS) and Secure Device Manager (SDM). When the FPGA is
16  configured from HPS, there needs to be a way for HPS to notify SDM the
17  location and size of the configuration data. Then SDM will get the
18  configuration data from that location and perform the FPGA configuration.
19
20  To meet the whole system security needs and support virtual machine requesting
21  communication with SDM, only the secure world of software (EL3, Exception
22  Layer 3) can interface with SDM. All software entities running on other
23  exception layers must channel through the EL3 software whenever it needs
24  service from SDM.
25
26  Intel Stratix10 service layer driver, running at privileged exception level
27  (EL1, Exception Layer 1), interfaces with the service providers and provides
28  the services for FPGA configuration, QSPI, Crypto and warm reset. Service layer
29  driver also manages secure monitor call (SMC) to communicate with secure monitor
30  code running in EL3.
31
32properties:
33  compatible:
34    enum:
35      - intel,stratix10-svc
36      - intel,agilex-svc
37
38  method:
39    description: |
40      Supervisory call method to be used to communicate with the
41      secure service layer.
42      Permitted values are:
43      - "smc" : SMC #0, following the SMCCC
44      - "hvc" : HVC #0, following the SMCCC
45
46    $ref: /schemas/types.yaml#/definitions/string-array
47    enum:
48      - smc
49      - hvc
50
51  memory-region:
52    maxItems: 1
53    description:
54      reserved memory region for the service layer driver to
55      communicate with the secure device manager.
56
57  fpga-mgr:
58    $ref: /schemas/fpga/intel,stratix10-soc-fpga-mgr.yaml
59    description: Optional child node for fpga manager to perform fabric configuration.
60
61required:
62  - compatible
63  - method
64  - memory-region
65
66additionalProperties: false
67
68examples:
69  - |
70    reserved-memory {
71      #address-cells = <2>;
72      #size-cells = <2>;
73
74      service_reserved: svcbuffer@0 {
75              compatible = "shared-dma-pool";
76              reg = <0x0 0x0 0x0 0x1000000>;
77              alignment = <0x1000>;
78              no-map;
79      };
80    };
81
82    firmware {
83      svc {
84        compatible = "intel,stratix10-svc";
85        method = "smc";
86        memory-region = <&service_reserved>;
87
88        fpga-mgr {
89          compatible = "intel,stratix10-soc-fpga-mgr";
90        };
91      };
92    };
93
94