Commit d6e29083 authored by Amirreza Zarrabi's avatar Amirreza Zarrabi Committed by Jens Wiklander
Browse files

tee: add Qualcomm TEE driver



Introduce qcomtee_object, which represents an object in both QTEE and
the kernel. QTEE clients can invoke an instance of qcomtee_object to
access QTEE services. If this invocation produces a new object in QTEE,
an instance of qcomtee_object will be returned.

Similarly, QTEE can request services from by issuing a callback
request, which invokes an instance of qcomtee_object.

Implement initial support for exporting qcomtee_object to userspace
and QTEE, enabling the invocation of objects hosted in QTEE and userspace
through the TEE subsystem.

Tested-by: default avatarNeil Armstrong <neil.armstrong@linaro.org>
Tested-by: default avatarHarshal Dev <quic_hdev@quicinc.com>
Acked-by: default avatarSumit Garg <sumit.garg@oss.qualcomm.com>
Signed-off-by: default avatarAmirreza Zarrabi <amirreza.zarrabi@oss.qualcomm.com>
Signed-off-by: default avatarJens Wiklander <jens.wiklander@linaro.org>
parent bd513930
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -20856,6 +20856,12 @@ F: Documentation/networking/device_drivers/cellular/qualcomm/rmnet.rst
F:	drivers/net/ethernet/qualcomm/rmnet/
F:	include/linux/if_rmnet.h
QUALCOMM TEE (QCOMTEE) DRIVER
M:	Amirreza Zarrabi <amirreza.zarrabi@oss.qualcomm.com>
L:	linux-arm-msm@vger.kernel.org
S:	Maintained
F:	drivers/tee/qcomtee/
QUALCOMM TRUST ZONE MEMORY ALLOCATOR
M:	Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
L:	linux-arm-msm@vger.kernel.org
+1 −0
Original line number Diff line number Diff line
@@ -21,5 +21,6 @@ config TEE_DMABUF_HEAPS
source "drivers/tee/optee/Kconfig"
source "drivers/tee/amdtee/Kconfig"
source "drivers/tee/tstee/Kconfig"
source "drivers/tee/qcomtee/Kconfig"

endif
+1 −0
Original line number Diff line number Diff line
@@ -7,3 +7,4 @@ tee-objs += tee_shm_pool.o
obj-$(CONFIG_OPTEE) += optee/
obj-$(CONFIG_AMDTEE) += amdtee/
obj-$(CONFIG_ARM_TSTEE) += tstee/
obj-$(CONFIG_QCOMTEE) += qcomtee/
+12 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only
# Qualcomm Trusted Execution Environment Configuration
config QCOMTEE
	tristate "Qualcomm TEE Support"
	depends on !CPU_BIG_ENDIAN
	select QCOM_SCM
	select QCOM_TZMEM_MODE_SHMBRIDGE
	help
	  This option enables the Qualcomm Trusted Execution Environment (QTEE)
	  driver. It provides an API to access services offered by QTEE and
	  its loaded Trusted Applications (TAs). Additionally, it facilitates
	  the export of userspace services provided by supplicants to QTEE.
+7 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only
obj-$(CONFIG_QCOMTEE) += qcomtee.o
qcomtee-objs += async.o
qcomtee-objs += call.o
qcomtee-objs += core.o
qcomtee-objs += shm.o
qcomtee-objs += user_obj.o
Loading