| /kernel/linux/linux-6.6/Documentation/staging/ |
| D | tee.rst | 2 TEE subsystem 5 This document describes the TEE subsystem in Linux. 7 A TEE (Trusted Execution Environment) is a trusted OS running in some 9 secure co-processor etc. A TEE driver handles the details needed to 10 communicate with the TEE. 14 - Registration of TEE drivers 16 - Managing shared memory between Linux and the TEE 18 - Providing a generic API to the TEE 20 The TEE interface 23 include/uapi/linux/tee.h defines the generic interface to a TEE. [all …]
|
| /kernel/linux/linux-5.10/Documentation/staging/ |
| D | tee.rst | 2 TEE subsystem 5 This document describes the TEE subsystem in Linux. 7 A TEE (Trusted Execution Environment) is a trusted OS running in some 9 secure co-processor etc. A TEE driver handles the details needed to 10 communicate with the TEE. 14 - Registration of TEE drivers 16 - Managing shared memory between Linux and the TEE 18 - Providing a generic API to the TEE 20 The TEE interface 23 include/uapi/linux/tee.h defines the generic interface to a TEE. [all …]
|
| /kernel/linux/linux-6.6/drivers/tee/optee/ |
| D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 2 # OP-TEE Trusted Execution Environment Configuration 4 tristate "OP-TEE" 8 This implements the OP-TEE Trusted Execution Environment (TEE) 12 bool "Load OP-TEE image as firmware" 16 This loads the BL32 image for OP-TEE as firmware when the driver is 17 probed. This returns -EPROBE_DEFER until the firmware is loadable from 23 https://trustedfirmware-a.readthedocs.io/en/latest/threat_model/threat_model.html 26 Documentation/staging/tee.rst.
|
| D | smc_abi.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (c) 2015-2021, Linaro Limited 9 #include <linux/arm-smccc.h> 38 * OP-TEE OS via raw SMCs. 49 * A typical OP-TEE private shm allocation is 224 bytes (argument struct 58 /* SMC ABI considers at most a single TEE firmware */ 89 p->attr = TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INPUT + in from_msg_param_tmp_mem() 90 attr - OPTEE_MSG_ATTR_TYPE_TMEM_INPUT; in from_msg_param_tmp_mem() 91 p->u.memref.size = mp->u.tmem.size; in from_msg_param_tmp_mem() 92 shm = (struct tee_shm *)(unsigned long)mp->u.tmem.shm_ref; in from_msg_param_tmp_mem() [all …]
|
| D | optee_private.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 3 * Copyright (c) 2015-2021, Linaro Limited 9 #include <linux/arm-smccc.h> 73 * struct optee_supp - supplicant synchronization struct 79 * communication, else -1 98 * struct optee_pcpu - per cpu notif private struct passed to work functions 106 * struct optee_smc - optee smc communication struct 111 * @notif_irq interrupt used as async notification by OP-TEE or 0 129 * struct optee_ffa_data - FFA communication struct 131 * OP-TEE in secure world [all …]
|
| /kernel/linux/linux-5.10/Documentation/ABI/testing/ |
| D | sysfs-bus-optee-devices | 1 What: /sys/bus/tee/devices/optee-ta-<uuid>/ 4 Contact: op-tee@lists.trustedfirmware.org 6 OP-TEE bus provides reference to registered drivers under this directory. The <uuid> 8 are free to create needed API under optee-ta-<uuid> directory. 10 What: /sys/bus/tee/devices/optee-ta-<uuid>/need_supplicant 13 Contact: op-tee@lists.trustedfirmware.org 15 Allows to distinguish whether an OP-TEE based TA/device requires user-space 16 tee-supplicant to function properly or not. This attribute will be present for 17 devices which depend on tee-supplicant to be running.
|
| /kernel/linux/linux-6.6/Documentation/ABI/testing/ |
| D | sysfs-bus-optee-devices | 1 What: /sys/bus/tee/devices/optee-ta-<uuid>/ 4 Contact: op-tee@lists.trustedfirmware.org 6 OP-TEE bus provides reference to registered drivers under this directory. The <uuid> 8 are free to create needed API under optee-ta-<uuid> directory. 10 What: /sys/bus/tee/devices/optee-ta-<uuid>/need_supplicant 13 Contact: op-tee@lists.trustedfirmware.org 15 Allows to distinguish whether an OP-TEE based TA/device requires user-space 16 tee-supplicant to function properly or not. This attribute will be present for 17 devices which depend on tee-supplicant to be running.
|
| /kernel/linux/linux-5.10/drivers/tee/optee/ |
| D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 2 # OP-TEE Trusted Execution Environment Configuration 4 tristate "OP-TEE" 8 This implements the OP-TEE Trusted Execution Environment (TEE) 17 used by OP-TEE TEE driver.
|
| D | call.c | 1 // SPDX-License-Identifier: GPL-2.0-only 5 #include <linux/arm-smccc.h> 34 mutex_lock(&cq->mutex); in optee_cq_wait_init() 42 init_completion(&w->c); in optee_cq_wait_init() 43 list_add_tail(&w->list_node, &cq->waiters); in optee_cq_wait_init() 45 mutex_unlock(&cq->mutex); in optee_cq_wait_init() 51 wait_for_completion(&w->c); in optee_cq_wait_for_completion() 53 mutex_lock(&cq->mutex); in optee_cq_wait_for_completion() 56 list_del(&w->list_node); in optee_cq_wait_for_completion() 57 reinit_completion(&w->c); in optee_cq_wait_for_completion() [all …]
|
| D | shm_pool.c | 1 // SPDX-License-Identifier: GPL-2.0-only 7 #include <linux/dma-buf.h> 24 return -ENOMEM; in pool_op_alloc() 26 shm->kaddr = page_address(page); in pool_op_alloc() 27 shm->paddr = page_to_phys(page); in pool_op_alloc() 28 shm->size = PAGE_SIZE << order; in pool_op_alloc() 31 * Shared memory private to the OP-TEE driver doesn't need in pool_op_alloc() 32 * to be registered with OP-TEE. in pool_op_alloc() 34 if (!(shm->flags & TEE_SHM_PRIV)) { in pool_op_alloc() 40 rc = -ENOMEM; in pool_op_alloc() [all …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/arm/firmware/ |
| D | linaro,optee-tz.txt | 1 OP-TEE Device Tree Bindings 3 OP-TEE is a piece of software using hardware features to provide a Trusted 10 * OP-TEE based on ARM TrustZone required properties: 12 - compatible : should contain "linaro,optee-tz" 14 - method : The method of calling the OP-TEE Trusted OS. Permitted 18 in drivers/tee/optee/optee_smc.h 21 in drivers/tee/optee/optee_smc.h 28 compatible = "linaro,optee-tz";
|
| /kernel/linux/linux-6.6/drivers/nvmem/ |
| D | stm32-bsec-optee-ta.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 3 * OP-TEE STM32MP BSEC PTA interface, used by STM32 ROMEM driver 5 * Copyright (C) 2022, STMicroelectronics - All Rights Reserved 10 * stm32_bsec_optee_ta_open() - initialize the STM32 BSEC TA 11 * @ctx: the OP-TEE context on success 14 * On success, 0. On failure, -errno. 19 * stm32_bsec_optee_ta_close() - release the STM32 BSEC TA 20 * @ctx: the OP-TEE context 22 * This function used to clean the OP-TEE resources initialized in 29 * stm32_bsec_optee_ta_read() - nvmem read access using TA client driver [all …]
|
| D | stm32-bsec-optee-ta.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * OP-TEE STM32MP BSEC PTA interface, used by STM32 ROMEM driver 5 * Copyright (C) 2022, STMicroelectronics - All Rights Reserved 10 #include "stm32-bsec-optee-ta.h" 21 * TEE_SUCCESS - Invoke command success 22 * TEE_ERROR_BAD_PARAMETERS - Incorrect input param 23 * TEE_ERROR_ACCESS_DENIED - OTP not accessible by caller 36 * TEE_SUCCESS - Invoke command success 37 * TEE_ERROR_BAD_PARAMETERS - Incorrect input param 38 * TEE_ERROR_ACCESS_DENIED - OTP not accessible by caller [all …]
|
| /kernel/linux/linux-6.6/drivers/firmware/arm_scmi/ |
| D | optee.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Copyright (C) 2019-2021 Linaro Ltd. 15 #include <uapi/linux/tee.h> 23 * PTA_SCMI_CMD_CAPABILITIES - Get channel capabilities 31 * PTA_SCMI_CMD_PROCESS_SMT_CHANNEL - Process SCMI message in SMT buffer 37 * and SCMI server (OP-TEE) parts. 38 * The memory uses SMT header to carry SCMI meta-data (protocol ID and 44 * PTA_SCMI_CMD_PROCESS_SMT_CHANNEL_MESSAGE - Process SMT/SCMI message 52 * The memory uses SMT header to carry SCMI meta-data (protocol ID and 58 * PTA_SCMI_CMD_GET_CHANNEL - Get channel handle [all …]
|
| /kernel/linux/linux-6.6/arch/arm/mach-at91/ |
| D | sam_secure.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 6 #include <linux/arm-smccc.h> 19 struct arm_smccc_res res = {.a0 = -1}; in sam_smccc_call() 41 * We only check that the OP-TEE node is present and available. The in sam_secure_init() 42 * OP-TEE kernel driver is not needed for the type of interaction made in sam_secure_init() 43 * with OP-TEE here so the driver's status is not checked. in sam_secure_init() 51 pr_info("Running under OP-TEE firmware\n"); in sam_secure_init()
|
| /kernel/linux/linux-5.10/drivers/firmware/broadcom/ |
| D | tee_bnxt_fw.c | 1 // SPDX-License-Identifier: GPL-2.0 21 * TA_CMD_BNXT_FASTBOOT - boot bnxt device by copying f/w into sram 29 * TEE_SUCCESS - Invoke command success 30 * TEE_ERROR_ITEM_NOT_FOUND - Corrupt f/w image found on memory 35 * TA_CMD_BNXT_COPY_COREDUMP - copy the core dump into shm 37 * param[0] (inout memref) - Coredump buffer memory reference 38 * param[1] (in value) - value.a: offset, data to be copied from 44 * TEE_SUCCESS - Invoke command success 45 * TEE_ERROR_BAD_PARAMETERS - Incorrect input param 46 * TEE_ERROR_ITEM_NOT_FOUND - Corrupt core dump [all …]
|
| /kernel/linux/linux-6.6/drivers/firmware/broadcom/ |
| D | tee_bnxt_fw.c | 1 // SPDX-License-Identifier: GPL-2.0 21 * TA_CMD_BNXT_FASTBOOT - boot bnxt device by copying f/w into sram 29 * TEE_SUCCESS - Invoke command success 30 * TEE_ERROR_ITEM_NOT_FOUND - Corrupt f/w image found on memory 35 * TA_CMD_BNXT_COPY_COREDUMP - copy the core dump into shm 37 * param[0] (inout memref) - Coredump buffer memory reference 38 * param[1] (in value) - value.a: offset, data to be copied from 44 * TEE_SUCCESS - Invoke command success 45 * TEE_ERROR_BAD_PARAMETERS - Incorrect input param 46 * TEE_ERROR_ITEM_NOT_FOUND - Corrupt core dump [all …]
|
| /kernel/linux/linux-6.6/drivers/tee/amdtee/ |
| D | amdtee_if.h | 1 /* SPDX-License-Identifier: MIT */ 8 * This file has definitions related to Host and AMD-TEE Trusted OS interface. 9 * These definitions must match the definitions on the TEE side. 18 ** TEE Param 23 * struct memref - memory reference structure 52 /* Must be same as in GP TEE specification */ 67 ** TEE Commands 72 * non-contiguous. Below structures are meant to describe a shared memory region 77 * struct tee_sg_desc - sg descriptor for a physically contiguous buffer 89 * struct tee_sg_list - structure describing a scatter/gather list [all …]
|
| D | call.c | 1 // SPDX-License-Identifier: MIT 7 #include <linux/tee.h> 9 #include <linux/psp-tee.h> 15 static int tee_params_to_amd_params(struct tee_param *tee, u32 count, in tee_params_to_amd_params() argument 24 if (!tee || !amd || count > TEE_MAX_PARAMS) in tee_params_to_amd_params() 25 return -EINVAL; in tee_params_to_amd_params() 27 amd->param_types = 0; in tee_params_to_amd_params() 29 /* AMD TEE does not support meta parameter */ in tee_params_to_amd_params() 30 if (tee[i].attr > TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INOUT) in tee_params_to_amd_params() 31 return -EINVAL; in tee_params_to_amd_params() [all …]
|
| /kernel/linux/linux-5.10/drivers/tee/amdtee/ |
| D | amdtee_if.h | 1 /* SPDX-License-Identifier: MIT */ 8 * This file has definitions related to Host and AMD-TEE Trusted OS interface. 9 * These definitions must match the definitions on the TEE side. 18 ** TEE Param 23 * struct memref - memory reference structure 52 /* Must be same as in GP TEE specification */ 67 ** TEE Commands 72 * non-contiguous. Below structures are meant to describe a shared memory region 77 * struct tee_sg_desc - sg descriptor for a physically contiguous buffer 89 * struct tee_sg_list - structure describing a scatter/gather list [all …]
|
| D | call.c | 1 // SPDX-License-Identifier: MIT 7 #include <linux/tee.h> 9 #include <linux/psp-tee.h> 11 #include <linux/psp-sev.h> 15 static int tee_params_to_amd_params(struct tee_param *tee, u32 count, in tee_params_to_amd_params() argument 24 if (!tee || !amd || count > TEE_MAX_PARAMS) in tee_params_to_amd_params() 25 return -EINVAL; in tee_params_to_amd_params() 27 amd->param_types = 0; in tee_params_to_amd_params() 29 /* AMD TEE does not support meta parameter */ in tee_params_to_amd_params() 30 if (tee[i].attr > TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INOUT) in tee_params_to_amd_params() [all …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/arm/firmware/ |
| D | linaro,optee-tz.yaml | 1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/arm/firmware/linaro,optee-tz.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: OP-TEE 10 - Jens Wiklander <jens.wiklander@linaro.org> 13 OP-TEE is a piece of software using hardware features to provide a Trusted 25 const: linaro,optee-tz 31 software is expected to be either a per-cpu interrupt or an 32 edge-triggered peripheral interrupt. [all …]
|
| /kernel/linux/linux-6.6/drivers/char/hw_random/ |
| D | optee-rng.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Copyright (C) 2018-2019 Linaro Ltd. 15 #define DRIVER_NAME "optee-rng" 20 * TA_CMD_GET_ENTROPY - Get Entropy from RNG 22 * param[0] (inout memref) - Entropy buffer memory reference 28 * TEE_SUCCESS - Invoke command success 29 * TEE_ERROR_BAD_PARAMETERS - Incorrect input param 30 * TEE_ERROR_NOT_SUPPORTED - Requested entropy size greater than size of pool 31 * TEE_ERROR_HEALTH_TEST_FAIL - Continuous health testing failed 36 * TA_CMD_GET_RNG_INFO - Get RNG information [all …]
|
| /kernel/linux/linux-5.10/drivers/char/hw_random/ |
| D | optee-rng.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Copyright (C) 2018-2019 Linaro Ltd. 15 #define DRIVER_NAME "optee-rng" 20 * TA_CMD_GET_ENTROPY - Get Entropy from RNG 22 * param[0] (inout memref) - Entropy buffer memory reference 28 * TEE_SUCCESS - Invoke command success 29 * TEE_ERROR_BAD_PARAMETERS - Incorrect input param 30 * TEE_ERROR_NOT_SUPPORTED - Requested entropy size greater than size of pool 31 * TEE_ERROR_HEALTH_TEST_FAIL - Continuous health testing failed 36 * TA_CMD_GET_RNG_INFO - Get RNG information [all …]
|
| /kernel/linux/linux-6.6/drivers/rtc/ |
| D | rtc-optee.c | 1 // SPDX-License-Identifier: GPL-2.0 40 * struct optee_rtc - OP-TEE RTC private data 41 * @dev: OP-TEE based RTC device. 42 * @ctx: OP-TEE context handler. 64 inv_arg.session = priv->session_id; in optee_rtc_readtime() 69 param[0].u.memref.shm = priv->shm; in optee_rtc_readtime() 72 ret = tee_client_invoke_func(priv->ctx, &inv_arg, param); in optee_rtc_readtime() 74 return ret ? ret : -EPROTO; in optee_rtc_readtime() 76 optee_tm = tee_shm_get_va(priv->shm, 0); in optee_rtc_readtime() 81 return -EPROTO; in optee_rtc_readtime() [all …]
|