15956d97fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 25956d97fSEmmanuel Vadot%YAML 1.2 35956d97fSEmmanuel Vadot--- 45956d97fSEmmanuel Vadot$id: http://devicetree.org/schemas/arm/firmware/linaro,optee-tz.yaml# 55956d97fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 65956d97fSEmmanuel Vadot 78bab661aSEmmanuel Vadottitle: OP-TEE 85956d97fSEmmanuel Vadot 95956d97fSEmmanuel Vadotmaintainers: 105956d97fSEmmanuel Vadot - Jens Wiklander <jens.wiklander@linaro.org> 115956d97fSEmmanuel Vadot 125956d97fSEmmanuel Vadotdescription: | 135956d97fSEmmanuel Vadot OP-TEE is a piece of software using hardware features to provide a Trusted 145956d97fSEmmanuel Vadot Execution Environment. The security can be provided with ARM TrustZone, but 155956d97fSEmmanuel Vadot also by virtualization or a separate chip. 165956d97fSEmmanuel Vadot 175956d97fSEmmanuel Vadot We're using "linaro" as the first part of the compatible property for 185956d97fSEmmanuel Vadot the reference implementation maintained by Linaro. 195956d97fSEmmanuel Vadot 205956d97fSEmmanuel Vadotproperties: 215956d97fSEmmanuel Vadot $nodename: 225956d97fSEmmanuel Vadot const: optee 235956d97fSEmmanuel Vadot 245956d97fSEmmanuel Vadot compatible: 255956d97fSEmmanuel Vadot const: linaro,optee-tz 265956d97fSEmmanuel Vadot 27e67e8565SEmmanuel Vadot interrupts: 28e67e8565SEmmanuel Vadot maxItems: 1 29e67e8565SEmmanuel Vadot description: | 30e67e8565SEmmanuel Vadot This interrupt which is used to signal an event by the secure world 31*fac71e4eSEmmanuel Vadot software is expected to be either a per-cpu interrupt or an 32*fac71e4eSEmmanuel Vadot edge-triggered peripheral interrupt. 33e67e8565SEmmanuel Vadot 345956d97fSEmmanuel Vadot method: 355956d97fSEmmanuel Vadot enum: [smc, hvc] 365956d97fSEmmanuel Vadot description: | 375956d97fSEmmanuel Vadot The method of calling the OP-TEE Trusted OS depending on smc or hvc 385956d97fSEmmanuel Vadot instruction usage. 395956d97fSEmmanuel Vadot SMC #0, register assignments 405956d97fSEmmanuel Vadot or 415956d97fSEmmanuel Vadot HVC #0, register assignments 425956d97fSEmmanuel Vadot register assignments are specified in drivers/tee/optee/optee_smc.h 435956d97fSEmmanuel Vadot 445956d97fSEmmanuel Vadotrequired: 455956d97fSEmmanuel Vadot - compatible 465956d97fSEmmanuel Vadot - method 475956d97fSEmmanuel Vadot 485956d97fSEmmanuel VadotadditionalProperties: false 495956d97fSEmmanuel Vadot 505956d97fSEmmanuel Vadotexamples: 515956d97fSEmmanuel Vadot - | 52e67e8565SEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 535956d97fSEmmanuel Vadot firmware { 545956d97fSEmmanuel Vadot optee { 555956d97fSEmmanuel Vadot compatible = "linaro,optee-tz"; 565956d97fSEmmanuel Vadot method = "smc"; 57e67e8565SEmmanuel Vadot interrupts = <GIC_SPI 187 IRQ_TYPE_EDGE_RISING>; 585956d97fSEmmanuel Vadot }; 595956d97fSEmmanuel Vadot }; 605956d97fSEmmanuel Vadot 615956d97fSEmmanuel Vadot - | 625956d97fSEmmanuel Vadot firmware { 635956d97fSEmmanuel Vadot optee { 645956d97fSEmmanuel Vadot compatible = "linaro,optee-tz"; 655956d97fSEmmanuel Vadot method = "hvc"; 665956d97fSEmmanuel Vadot }; 675956d97fSEmmanuel Vadot }; 68