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