162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/arm/firmware/linaro,optee-tz.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: OP-TEE 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Jens Wiklander <jens.wiklander@linaro.org> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cidescription: | 1362306a36Sopenharmony_ci OP-TEE is a piece of software using hardware features to provide a Trusted 1462306a36Sopenharmony_ci Execution Environment. The security can be provided with ARM TrustZone, but 1562306a36Sopenharmony_ci also by virtualization or a separate chip. 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci We're using "linaro" as the first part of the compatible property for 1862306a36Sopenharmony_ci the reference implementation maintained by Linaro. 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ciproperties: 2162306a36Sopenharmony_ci $nodename: 2262306a36Sopenharmony_ci const: optee 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci compatible: 2562306a36Sopenharmony_ci const: linaro,optee-tz 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci interrupts: 2862306a36Sopenharmony_ci maxItems: 1 2962306a36Sopenharmony_ci description: | 3062306a36Sopenharmony_ci This interrupt which is used to signal an event by the secure world 3162306a36Sopenharmony_ci software is expected to be either a per-cpu interrupt or an 3262306a36Sopenharmony_ci edge-triggered peripheral interrupt. 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ci method: 3562306a36Sopenharmony_ci enum: [smc, hvc] 3662306a36Sopenharmony_ci description: | 3762306a36Sopenharmony_ci The method of calling the OP-TEE Trusted OS depending on smc or hvc 3862306a36Sopenharmony_ci instruction usage. 3962306a36Sopenharmony_ci SMC #0, register assignments 4062306a36Sopenharmony_ci or 4162306a36Sopenharmony_ci HVC #0, register assignments 4262306a36Sopenharmony_ci register assignments are specified in drivers/tee/optee/optee_smc.h 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_cirequired: 4562306a36Sopenharmony_ci - compatible 4662306a36Sopenharmony_ci - method 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ciadditionalProperties: false 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ciexamples: 5162306a36Sopenharmony_ci - | 5262306a36Sopenharmony_ci #include <dt-bindings/interrupt-controller/arm-gic.h> 5362306a36Sopenharmony_ci firmware { 5462306a36Sopenharmony_ci optee { 5562306a36Sopenharmony_ci compatible = "linaro,optee-tz"; 5662306a36Sopenharmony_ci method = "smc"; 5762306a36Sopenharmony_ci interrupts = <GIC_SPI 187 IRQ_TYPE_EDGE_RISING>; 5862306a36Sopenharmony_ci }; 5962306a36Sopenharmony_ci }; 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ci - | 6262306a36Sopenharmony_ci firmware { 6362306a36Sopenharmony_ci optee { 6462306a36Sopenharmony_ci compatible = "linaro,optee-tz"; 6562306a36Sopenharmony_ci method = "hvc"; 6662306a36Sopenharmony_ci }; 6762306a36Sopenharmony_ci }; 68