| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/firmware/intel,stratix10-svc.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Intel Service Layer Driver for Stratix10 SoC |
| |
| maintainers: |
| - Dinh Nguyen <dinguyen@kernel.org> |
| - Mahesh Rao <mahesh.rao@altera.com> |
| |
| description: > |
| Intel Stratix10 SoC is composed of a 64 bit quad-core ARM Cortex A53 hard |
| processor system (HPS) and Secure Device Manager (SDM). When the FPGA is |
| configured from HPS, there needs to be a way for HPS to notify SDM the |
| location and size of the configuration data. Then SDM will get the |
| configuration data from that location and perform the FPGA configuration. |
| |
| To meet the whole system security needs and support virtual machine requesting |
| communication with SDM, only the secure world of software (EL3, Exception |
| Layer 3) can interface with SDM. All software entities running on other |
| exception layers must channel through the EL3 software whenever it needs |
| service from SDM. |
| |
| Intel Stratix10 service layer driver, running at privileged exception level |
| (EL1, Exception Layer 1), interfaces with the service providers and provides |
| the services for FPGA configuration, QSPI, Crypto and warm reset. Service layer |
| driver also manages secure monitor call (SMC) to communicate with secure monitor |
| code running in EL3. |
| |
| properties: |
| compatible: |
| enum: |
| - intel,stratix10-svc |
| - intel,agilex-svc |
| - intel,agilex5-svc |
| |
| method: |
| description: | |
| Supervisory call method to be used to communicate with the |
| secure service layer. |
| Permitted values are: |
| - "smc" : SMC #0, following the SMCCC |
| - "hvc" : HVC #0, following the SMCCC |
| |
| $ref: /schemas/types.yaml#/definitions/string-array |
| enum: |
| - smc |
| - hvc |
| |
| memory-region: |
| maxItems: 1 |
| description: |
| reserved memory region for the service layer driver to |
| communicate with the secure device manager. |
| |
| iommus: |
| maxItems: 1 |
| |
| fpga-mgr: |
| $ref: /schemas/fpga/intel,stratix10-soc-fpga-mgr.yaml |
| description: Optional child node for fpga manager to perform fabric configuration. |
| |
| required: |
| - compatible |
| - method |
| - memory-region |
| |
| allOf: |
| - if: |
| properties: |
| compatible: |
| contains: |
| enum: |
| - intel,agilex5-svc |
| then: |
| required: |
| - iommus |
| |
| additionalProperties: false |
| |
| examples: |
| - | |
| reserved-memory { |
| #address-cells = <2>; |
| #size-cells = <2>; |
| |
| service_reserved: svcbuffer@0 { |
| compatible = "shared-dma-pool"; |
| reg = <0x0 0x0 0x0 0x1000000>; |
| alignment = <0x1000>; |
| no-map; |
| }; |
| }; |
| |
| firmware { |
| svc { |
| compatible = "intel,stratix10-svc"; |
| method = "smc"; |
| memory-region = <&service_reserved>; |
| |
| fpga-mgr { |
| compatible = "intel,stratix10-soc-fpga-mgr"; |
| }; |
| }; |
| }; |
| |