/openbmc/linux/drivers/tee/optee/ |
H A D | notif.c | 21 static bool have_key(struct optee *optee, u_int key) in have_key() argument 25 list_for_each_entry(entry, &optee->notif.db, link) in have_key() 32 int optee_notif_wait(struct optee *optee, u_int key) in optee_notif_wait() argument 38 if (key > optee->notif.max_key) in optee_notif_wait() 47 spin_lock_irqsave(&optee->notif.lock, flags); in optee_notif_wait() 53 if (test_bit(key, optee->notif.bitmap)) { in optee_notif_wait() 54 clear_bit(key, optee->notif.bitmap); in optee_notif_wait() 62 if (have_key(optee, key)) { in optee_notif_wait() 67 list_add_tail(&entry->link, &optee->notif.db); in optee_notif_wait() 72 spin_unlock_irqrestore(&optee->notif.lock, flags); in optee_notif_wait() [all …]
|
H A D | ffa_abi.c | 58 static struct tee_shm *optee_shm_from_ffa_handle(struct optee *optee, in optee_shm_from_ffa_handle() argument 64 mutex_lock(&optee->ffa.mutex); in optee_shm_from_ffa_handle() 65 r = rhashtable_lookup_fast(&optee->ffa.global_ids, &global_id, in optee_shm_from_ffa_handle() 69 mutex_unlock(&optee->ffa.mutex); in optee_shm_from_ffa_handle() 74 static int optee_shm_add_ffa_handle(struct optee *optee, struct tee_shm *shm, in optee_shm_add_ffa_handle() argument 86 mutex_lock(&optee->ffa.mutex); in optee_shm_add_ffa_handle() 87 rc = rhashtable_lookup_insert_fast(&optee->ffa.global_ids, &r->linkage, in optee_shm_add_ffa_handle() 89 mutex_unlock(&optee->ffa.mutex); in optee_shm_add_ffa_handle() 97 static int optee_shm_rem_ffa_handle(struct optee *optee, u64 global_id) in optee_shm_rem_ffa_handle() argument 102 mutex_lock(&optee->ffa.mutex); in optee_shm_rem_ffa_handle() [all …]
|
H A D | smc_abi.c | 131 * @optee: main service struct 137 static int optee_from_msg_param(struct optee *optee, struct tee_param *params, in optee_from_msg_param() argument 221 * @optee: main service struct 227 static int optee_to_msg_param(struct optee *optee, in optee_to_msg_param() argument 279 * @optee: main service struct 281 static void optee_enable_shm_cache(struct optee *optee) in optee_enable_shm_cache() argument 286 optee_cq_wait_init(&optee->call_queue, &w); in optee_enable_shm_cache() 290 optee->smc.invoke_fn(OPTEE_SMC_ENABLE_SHM_CACHE, in optee_enable_shm_cache() 294 optee_cq_wait_for_completion(&optee->call_queue, &w); in optee_enable_shm_cache() 296 optee_cq_wait_final(&optee->call_queue, &w); in optee_enable_shm_cache() [all …]
|
H A D | core.c | 91 struct optee *optee = tee_get_drvdata(teedev); in optee_open() local 97 if (teedev == optee->supp_teedev) { in optee_open() 100 mutex_lock(&optee->supp.mutex); in optee_open() 101 if (!optee->supp.ctx) { in optee_open() 103 optee->supp.ctx = ctx; in optee_open() 105 mutex_unlock(&optee->supp.mutex); in optee_open() 111 if (!optee->scan_bus_done) { in optee_open() 112 INIT_WORK(&optee->scan_bus_work, optee_bus_scan); in optee_open() 113 optee->scan_bus_wq = create_workqueue("optee_bus_scan"); in optee_open() 114 if (!optee->scan_bus_wq) { in optee_open() [all …]
|
H A D | optee_private.h | 16 #define DRIVER_NAME "optee" 99 * @optee optee device reference 102 struct optee *optee; member 106 * struct optee_smc - optee smc communication struct 112 * @optee_pcpu per_cpu optee instance for per cpu work or NULL 143 struct optee; 158 int (*to_msg_param)(struct optee *optee, 161 int (*from_msg_param)(struct optee *optee, struct tee_param *params, 167 * struct optee - main service struct 181 * @scan_bus_wq workqueue to scan optee bus and register optee drivers [all …]
|
H A D | call.c | 34 * (optee->rpc_param_count). 135 void optee_shm_arg_cache_init(struct optee *optee, u32 flags) in optee_shm_arg_cache_init() argument 137 INIT_LIST_HEAD(&optee->shm_arg_cache.shm_args); in optee_shm_arg_cache_init() 138 mutex_init(&optee->shm_arg_cache.mutex); in optee_shm_arg_cache_init() 139 optee->shm_arg_cache.flags = flags; in optee_shm_arg_cache_init() 142 void optee_shm_arg_cache_uninit(struct optee *optee) in optee_shm_arg_cache_uninit() argument 144 struct list_head *head = &optee->shm_arg_cache.shm_args; in optee_shm_arg_cache_uninit() 147 mutex_destroy(&optee->shm_arg_cache.mutex); in optee_shm_arg_cache_uninit() 187 struct optee *optee = tee_get_drvdata(ctx->teedev); in optee_get_msg_arg() local 188 size_t sz = optee_msg_arg_size(optee->rpc_param_count); in optee_get_msg_arg() [all …]
|
H A D | rpc.c | 39 struct optee *optee = tee_get_drvdata(ctx->teedev); in handle_rpc_func_cmd_i2c_transfer() local 64 if (optee->ops->from_msg_param(optee, params, arg->num_params, in handle_rpc_func_cmd_i2c_transfer() 108 if (optee->ops->to_msg_param(optee, arg->params, in handle_rpc_func_cmd_i2c_transfer() 130 static void handle_rpc_func_cmd_wq(struct optee *optee, in handle_rpc_func_cmd_wq() argument 142 if (optee_notif_wait(optee, arg->params[0].u.value.b)) in handle_rpc_func_cmd_wq() 146 if (optee_notif_send(optee, arg->params[0].u.value.b)) in handle_rpc_func_cmd_wq() 181 static void handle_rpc_supp_cmd(struct tee_context *ctx, struct optee *optee, in handle_rpc_supp_cmd() argument 195 if (optee->ops->from_msg_param(optee, params, arg->num_params, in handle_rpc_supp_cmd() 203 if (optee->ops->to_msg_param(optee, arg->params, arg->num_params, in handle_rpc_supp_cmd() 214 struct optee *optee = tee_get_drvdata(ctx->teedev); in optee_rpc_cmd_alloc_suppl() local [all …]
|
H A D | Makefile | 2 obj-$(CONFIG_OPTEE) += optee.o 3 optee-objs += core.o 4 optee-objs += call.o 5 optee-objs += notif.o 6 optee-objs += rpc.o 7 optee-objs += supp.o 8 optee-objs += device.o 9 optee-objs += smc_abi.o 10 optee-objs += ffa_abi.o
|
/openbmc/u-boot/lib/optee/ |
H A D | Kconfig | 1 config OPTEE config 2 bool "Support OPTEE images" 4 U-Boot can be configured to boot OPTEE images. 5 Selecting this option will enable shared OPTEE library code and 6 enable an OPTEE specific bootm command that will perform additional 7 OPTEE specific checks before booting an OPTEE image created with 11 hex "OPTEE load address" 13 depends on OPTEE 15 The load address of the bootable OPTEE binary. 18 hex "Amount of Trust-Zone RAM for the OPTEE image" [all …]
|
/openbmc/openbmc/meta-arm/meta-arm/recipes-bsp/scp-firmware/files/ |
H A D | 0001-OPTEE-Private-Includes.patch | 4 Subject: [PATCH] OPTEE Private Includes 6 Change the optee module includes to be private instead of public, so they don't get used 14 product/optee/common/module/console/CMakeLists.txt | 2 +- 15 product/optee/common/module/mbx/CMakeLists.txt | 2 +- 18 diff --git a/product/optee/common/module/console/CMakeLists.txt b/product/optee/common/module/conso… 20 --- a/product/optee/common/module/console/CMakeLists.txt 21 +++ b/product/optee/common/module/console/CMakeLists.txt 31 diff --git a/product/optee/common/module/mbx/CMakeLists.txt b/product/optee/common/module/mbx/CMake… 33 --- a/product/optee/common/module/mbx/CMakeLists.txt 34 +++ b/product/optee/common/module/mbx/CMakeLists.txt
|
/openbmc/linux/Documentation/devicetree/bindings/arm/firmware/ |
H A D | linaro,optee-tz.yaml | 4 $id: http://devicetree.org/schemas/arm/firmware/linaro,optee-tz.yaml# 22 const: optee 25 const: linaro,optee-tz 42 register assignments are specified in drivers/tee/optee/optee_smc.h 54 optee { 55 compatible = "linaro,optee-tz"; 63 optee { 64 compatible = "linaro,optee-tz";
|
/openbmc/openbmc/meta-arm/meta-arm/recipes-security/optee/ |
H A D | optee-os-tadevkit_4.3.0.bb | 1 require recipes-security/optee/optee-os_${PV}.bb 11 install -d ${D}${includedir}/optee/export-user_ta/ 13 cp -aR $f ${D}${includedir}/optee/export-user_ta/ 18 echo "Do not inherit do_deploy from optee-os." 21 FILES:${PN} = "${includedir}/optee/" 25 EXTRA_OEMAKE:append = "${@bb.utils.contains('MACHINE_FEATURES', 'optee-spmc-test', \
|
H A D | optee-test.inc | 10 require optee.inc 12 DEPENDS = "optee-client optee-os-tadevkit python3-cryptography-native openssl" 42 # install path should match the value set in optee-client/tee-supplicant 51 install -d ${DEPLOYDIR}/${MLPREFIX}optee/ta 52 install -m 644 ${B}/ta/*/*.elf ${DEPLOYDIR}/${MLPREFIX}optee/ta
|
H A D | optee-test_4.3.0.bb | 1 require recipes-security/optee/optee-test.inc 8 EXTRA_OEMAKE:append = "${@bb.utils.contains('MACHINE_FEATURES', 'optee-spmc-test', \ 11 RDEPENDS:${PN} += "${@bb.utils.contains('MACHINE_FEATURES', 'optee-spmc-test', \
|
H A D | optee-os.inc | 9 require optee.inc 61 install -d ${DEPLOYDIR}/${MLPREFIX}optee 62 install -m 644 ${D}${nonarch_base_libdir}/firmware/* ${DEPLOYDIR}/${MLPREFIX}optee 64 install -d ${DEPLOYDIR}/${MLPREFIX}optee/ta 65 install -m 644 ${B}/ta/*/*.elf ${DEPLOYDIR}/${MLPREFIX}optee/ta
|
H A D | optee-os_4.%.bbappend | 2 require recipes-security/optee/optee-os-ts.inc 4 # Conditionally include platform specific Trusted Services related OPTEE build parameters
|
/openbmc/openbmc/meta-arm/documentation/ |
H A D | trusted-services.md | 10 These files are automatically included into optee-os image accordingly to defined MACHINE_FEATURES. 14 To include TS SPs into optee-os image you need to add into MACHINE_FEATURES 26 | spm-test[1-4] | optee-spmc-test | 35 enabled if the `ts-smm-gateway` and/or the `optee-spmc-test` machine features are enabled. 38 2. optee-os might require platform specific OP-TEE build parameters (for example what SEL the SPM C… 39 …You can find examples in `meta-arm/recipes-security/optee/optee-os_%.bbappend` for qemuarm64-secur… 40 …and in `meta-arm-bsp/recipes-security/optee/optee-os-corstone1000-common.inc` for the Corstone1000… 68 [^4]: https://optee.readthedocs.io/en/latest/building/gits/optee_test.html
|
/openbmc/openbmc/meta-arm/ci/ |
H A D | qemuarm-secureboot.yml | 14 optee: | 15 IMAGE_INSTALL:append = " optee-test optee-client optee-os-ta" 16 TEST_SUITES:append = " optee ftpm"
|
H A D | qemuarm64-secureboot.yml | 14 optee: | 15 IMAGE_INSTALL:append = " optee-test optee-client optee-os-ta" 16 TEST_SUITES:append = " optee ftpm"
|
/openbmc/u-boot/doc/device-tree-bindings/firmware/ |
H A D | linaro,optee-tz.txt | 12 - compatible : should contain "linaro,optee-tz" 18 in drivers/tee/optee/optee_smc.h 21 in drivers/tee/optee/optee_smc.h 27 optee { 28 compatible = "linaro,optee-tz";
|
/openbmc/linux/arch/arm/boot/dts/st/ |
H A D | stm32mp15-scmi.dtsi | 9 optee: optee { label 10 compatible = "linaro,optee-tz"; 15 compatible = "linaro,scmi-optee"; 18 linaro,optee-channel-id = <0>;
|
/openbmc/openbmc/meta-arm/meta-arm/recipes-security/optee-ftpm/ |
H A D | optee-ftpm_git.bb | 1 SUMMARY = "OPTEE fTPM Microsoft TA" 18 DEPENDS = "python3-pyelftools-native optee-os-tadevkit python3-cryptography-native " 32 TA_DEV_KIT_DIR = "${STAGING_INCDIR}/optee/export-user_ta" 38 CFLAGS="${CFLAGS} --sysroot=${STAGING_DIR_HOST} -I${WORKDIR}/optee-os" \ 71 install -d ${DEPLOYDIR}/optee 72 …0644 ${S}/Samples/ARM32-FirmwareTPM/optee_ta/out/fTPM/${FTPM_UUID}.stripped.elf ${DEPLOYDIR}/optee/
|
H A D | optee-os_%.bbappend | 4 ${@bb.utils.contains('MACHINE_FEATURES', 'optee-ftpm', 'optee-ftpm', '' , d)} \ 8 ${@bb.utils.contains('MACHINE_FEATURES', 'optee-ftpm', \
|
/openbmc/openbmc/meta-arm/meta-arm/recipes-security/trusted-services/libts/ |
H A D | 0001-Remove-TEE-driver-external-component.patch | 18 .../spm/optee/userspace-programs-on-fvp.rst | 3 +- 19 docs/quickstart/optee-testing.rst | 1 - 135 …environments/secure-partitions/spm/optee/userspace-programs-on-fvp.rst b/docs/environments/secure-… 137 --- a/docs/environments/secure-partitions/spm/optee/userspace-programs-on-fvp.rst 138 +++ b/docs/environments/secure-partitions/spm/optee/userspace-programs-on-fvp.rst 149 diff --git a/docs/quickstart/optee-testing.rst b/docs/quickstart/optee-testing.rst 151 --- a/docs/quickstart/optee-testing.rst 152 +++ b/docs/quickstart/optee-testing.rst
|
/openbmc/openbmc/meta-arm/meta-arm-bsp/recipes-security/optee/ |
H A D | optee-os_4.%.bbappend | 4 MACHINE_OPTEE_OS_REQUIRE:corstone1000 = "optee-os-corstone1000-common.inc" 5 MACHINE_OPTEE_OS_REQUIRE:fvp-base = "optee-os-fvp-base.inc" 6 MACHINE_OPTEE_OS_REQUIRE:sbsa-ref = "optee-os-sbsa-ref.inc"
|