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