diff options
| author | Amirreza Zarrabi <amirreza.zarrabi@oss.qualcomm.com> | 2025-09-11 21:07:41 -0700 |
|---|---|---|
| committer | Bjorn Andersson <andersson@kernel.org> | 2025-09-15 08:42:53 -0500 |
| commit | 4b700098c0fc4a76c5c1e54465c8f35e13755294 (patch) | |
| tree | ef4b6bf85c721520d71fea17bae8426c640338ba /include | |
| parent | firmware: qcom: tzmem: export shm_bridge create/delete (diff) | |
| download | linux-4b700098c0fc4a76c5c1e54465c8f35e13755294.tar.gz linux-4b700098c0fc4a76c5c1e54465c8f35e13755294.zip | |
firmware: qcom: scm: add support for object invocation
Qualcomm TEE (QTEE) hosts Trusted Applications (TAs) and services in
the secure world, accessed via objects. A QTEE client can invoke these
objects to request services. Similarly, QTEE can request services from
the nonsecure world using objects exported to the secure world.
Add low-level primitives to facilitate the invocation of objects hosted
in QTEE, as well as those hosted in the nonsecure world.
If support for object invocation is available, the qcom_scm allocates
a dedicated child platform device. The driver for this device communicates
with QTEE using low-level primitives.
Tested-by: Neil Armstrong <neil.armstrong@linaro.org>
Tested-by: Harshal Dev <quic_hdev@quicinc.com>
Signed-off-by: Amirreza Zarrabi <amirreza.zarrabi@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250911-qcom-tee-using-tee-ss-without-mem-obj-v12-2-17f07a942b8d@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/firmware/qcom/qcom_scm.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/firmware/qcom/qcom_scm.h b/include/linux/firmware/qcom/qcom_scm.h index 0f667bf1d4d9..a55ca771286b 100644 --- a/include/linux/firmware/qcom/qcom_scm.h +++ b/include/linux/firmware/qcom/qcom_scm.h @@ -175,4 +175,10 @@ static inline int qcom_scm_qseecom_app_send(u32 app_id, #endif /* CONFIG_QCOM_QSEECOM */ +int qcom_scm_qtee_invoke_smc(phys_addr_t inbuf, size_t inbuf_size, + phys_addr_t outbuf, size_t outbuf_size, + u64 *result, u64 *response_type); +int qcom_scm_qtee_callback_response(phys_addr_t buf, size_t buf_size, + u64 *result, u64 *response_type); + #endif |
