diff options
author | Bartosz Golaszewski <bartosz.golaszewski@linaro.org> | 2024-05-27 14:55:00 +0200 |
---|---|---|
committer | Bjorn Andersson <andersson@kernel.org> | 2024-06-23 16:08:20 -0500 |
commit | 178e19c0df1b1b27668fc6ca43b25a03eda01dad (patch) | |
tree | a30547e7b249ad426c18a8e37ae6286e9a5d8425 /include/linux/firmware | |
parent | 6612103ec35af6058bb85ab24dae28e119b3c055 (diff) | |
download | linux-178e19c0df1b1b27668fc6ca43b25a03eda01dad.tar.gz linux-178e19c0df1b1b27668fc6ca43b25a03eda01dad.tar.bz2 linux-178e19c0df1b1b27668fc6ca43b25a03eda01dad.zip |
firmware: qcom: scm: add support for SHM bridge operations
SHM Bridge is a safety mechanism allowing to limit the amount of memory
shared between the kernel and the TrustZone to regions explicitly marked
as such.
Add low-level primitives for enabling SHM bridge support as well as
creating and destroying SHM bridges to qcom-scm.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Acked-by: Andrew Halaney <ahalaney@redhat.com>
Tested-by: Andrew Halaney <ahalaney@redhat.com> # sc8280xp-lenovo-thinkpad-x13s
Tested-by: Deepti Jaggi <quic_djaggi@quicinc.com> #sa8775p-ride
Reviewed-by: Elliot Berman <quic_eberman@quicinc.com>
Link: https://lore.kernel.org/r/20240527-shm-bridge-v10-10-ce7afaa58d3a@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Diffstat (limited to 'include/linux/firmware')
-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 77be72d40200..9f14976399ab 100644 --- a/include/linux/firmware/qcom/qcom_scm.h +++ b/include/linux/firmware/qcom/qcom_scm.h @@ -138,6 +138,12 @@ bool qcom_scm_lmh_dcvsh_available(void); int qcom_scm_gpu_init_regs(u32 gpu_req); +int qcom_scm_shm_bridge_enable(void); +int qcom_scm_shm_bridge_create(struct device *dev, u64 pfn_and_ns_perm_flags, + u64 ipfn_and_s_perm_flags, u64 size_and_flags, + u64 ns_vmids, u64 *handle); +int qcom_scm_shm_bridge_delete(struct device *dev, u64 handle); + #ifdef CONFIG_QCOM_QSEECOM int qcom_scm_qseecom_app_get_id(const char *app_name, u32 *app_id); |