/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 | smc_abi.c | 137 static int optee_from_msg_param(struct optee *optee, struct tee_param *params, in optee_from_msg_param() argument 227 static int optee_to_msg_param(struct optee *optee, in optee_to_msg_param() argument 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() 306 static void __optee_disable_shm_cache(struct optee *optee, bool is_mapped) in __optee_disable_shm_cache() argument 311 optee_cq_wait_init(&optee->call_queue, &w); in __optee_disable_shm_cache() 318 optee->smc.invoke_fn(OPTEE_SMC_DISABLE_SHM_CACHE, in __optee_disable_shm_cache() [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 | 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 | call.c | 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() 199 if (optee->shm_arg_cache.flags & OPTEE_SHM_ARG_SHARED) 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 | optee_private.h | 102 struct optee *optee; member 143 struct optee; 158 int (*to_msg_param)(struct optee *optee, 161 int (*from_msg_param)(struct optee *optee, struct tee_param *params, 184 struct optee { struct 233 int optee_notif_init(struct optee *optee, u_int max_key); 234 void optee_notif_uninit(struct optee *optee); 235 int optee_notif_wait(struct optee *optee, u_int key); 236 int optee_notif_send(struct optee *optee, u_int key); 276 void optee_remove_common(struct optee *optee); [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
|
H A D | supp.c | 80 struct optee *optee = tee_get_drvdata(ctx->teedev); in optee_supp_thrd_req() local 81 struct optee_supp *supp = &optee->supp; in optee_supp_thrd_req() 233 struct optee *optee = tee_get_drvdata(teedev); in optee_supp_recv() local 234 struct optee_supp *supp = &optee->supp; in optee_supp_recv() 342 struct optee *optee = tee_get_drvdata(teedev); in optee_supp_send() local 343 struct optee_supp *supp = &optee->supp; in optee_supp_send()
|
/openbmc/openbmc/meta-arm/meta-arm/recipes-bsp/scp-firmware/files/ |
H A D | 0001-OPTEE-Private-Includes.patch | 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/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.3.0.bb | 1 require recipes-security/optee/optee-os.inc 9 file://0003-optee-enable-clang-support.patch \
|
/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/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/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-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"
|
/openbmc/openbmc/meta-arm/meta-arm/recipes-security/optee-ftpm/ |
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', \
|
H A D | optee-ftpm_git.bb | 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/
|
/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/u-boot/arch/arm/mach-rockchip/ |
H A D | fit_spl_optee.its | 4 * Simple U-boot fit source file containing U-Boot, dtb and optee 23 optee@1 { 45 firmware = "optee@1";
|
/openbmc/linux/Documentation/ABI/testing/ |
H A D | sysfs-bus-optee-devices | 1 What: /sys/bus/tee/devices/optee-ta-<uuid>/ 8 are free to create needed API under optee-ta-<uuid> directory. 10 What: /sys/bus/tee/devices/optee-ta-<uuid>/need_supplicant
|
/openbmc/openbmc/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/ |
H A D | trusted-firmware-a-corstone1000.inc | 26 # BL2 loads BL32 (optee). So, optee needs to be built first: 27 DEPENDS += "optee-os" 36 # as soon as optee driver starts initialization.
|