[PATCH 0/5] Add support for a TEE agnostic Inline Crypto Engine service
From: Harshal Dev
Date: Wed Oct 21 2026 - 11:51:24 EST
Qualcomm platforms such as the IQ-9075 EVK now boot with both Qualcomm
Trusted Execution Environment (QTEE) and OP-TEE [1]. However, the Qualcomm
Inline Crypto Engine (ICE) driver currently only makes SCM calls into QTEE.
With the arrival of ICE support on OPTEE [2,3] for Qualcomm platforms,
there is a need for a generic layer which re-directs the call to the correct
TEE at runtime.
This patch series adds a generic ICE service which provides TEE agnostic
APIs to the ICE driver for requesting secure services from either QTEE
or OP-TEE depending on whether an SCM driver back-end or a TEE driver
back-end is registered with it at runtime. This series is logically similar
to the one introduced for Peripheral Authentication Service (PAS) [3]
which was recently merged to provide a generic PAS service for both QTEE
and OP-TEE.
The TEE bus based client driver introduced in this series which registers
with the ICE service has an ABI with OP-TEE that is 1-1 identical with the
SCM driver's ICE ABI with QTEE. This is because both TEEs implement logically
similar drivers with the exception that OP-TEE currently does not have
Hardware Key Manager v2 support and so the inline encryption functionality
with OP-TEE is currently limited to Qualcomm platforms with only Hardware
Key Manager v1.
Validation:
This series has been validated on a LeMans IQ-9075 EVK device by attempting
file system encryption via the fscrypt tool.
Merge Strategy:
All patches in this series touch Qualcomm firmware and soc drivers. Hence,
it should go via the QCOM-SoC tree.
[1] https://ldts.github.io/qcom-buildroot/index.html
[2] https://github.com/OP-TEE/optee_os/pull/7906 (In review)
[3] https://github.com/OP-TEE/optee_os/pull/8137 (Draft, depends on PR#7906)
[4] https://lore.kernel.org/all/20260702115835.167602-1-sumit.garg@xxxxxxxxxx/
Signed-off-by: Harshal Dev <harshal.dev@xxxxxxxxxxxxxxxx>
---
Harshal Dev (5):
firmware: qcom: Add a generic ICE service
firmware: qcom_scm: Transition to the generic ICE service
firmware: qcom: Add an TEE bus based ICE back-end
soc: qcom: ice: Migrate to the generic ICE service
firmware: qcom: scm: Drop exported ICE wrapper functions
MAINTAINERS | 10 +
drivers/firmware/qcom/Kconfig | 19 ++
drivers/firmware/qcom/Makefile | 2 +
drivers/firmware/qcom/qcom_ice.c | 125 +++++++++++
drivers/firmware/qcom/qcom_ice.h | 51 +++++
drivers/firmware/qcom/qcom_ice_tee.c | 384 +++++++++++++++++++++++++++++++++
drivers/firmware/qcom/qcom_scm.c | 83 ++++---
drivers/soc/qcom/Kconfig | 2 +-
drivers/soc/qcom/ice.c | 30 +--
include/linux/firmware/qcom/qcom_ice.h | 32 +++
include/linux/firmware/qcom/qcom_scm.h | 20 --
11 files changed, 690 insertions(+), 68 deletions(-)
---
base-commit: 8f7df005a7564bd7ffa75da9c3085d5b996f1e16
change-id: 20261021-ice-migrate-tee-svc-a5cd6959ae36
Best regards,
--
Harshal Dev <harshal.dev@xxxxxxxxxxxxxxxx>