On 6/26/26 3:34 PM, Sumit Garg wrote:
From: Sumit Garg sumit.garg@oss.qualcomm.com
Qcom platforms has the legacy of using non-standard SCM calls splintered over the various kernel drivers. These SCM calls aren't compliant with the standard SMC calling conventions which is a prerequisite to enable migration to the FF-A specifications from Arm.
OP-TEE as an alternative trusted OS to Qualcomm TEE (QTEE) can't support these non-standard SCM calls. And even for newer architectures using S-EL2 with Hafnium support, QTEE won't be able to support SCM calls either with FF-A requirements coming in. And with both OP-TEE and QTEE drivers well integrated in the TEE subsystem, it makes further sense to reuse the TEE bus client drivers infrastructure.
The added benefit of TEE bus infrastructure is that there is support for discoverable/enumerable services. With that client drivers don't have to manually invoke a special SCM call to know the service status.
So enable the generic Peripheral Authentication Service (PAS) provided by the firmware. It acts as the common layer with different TZ backends plugged in whether it's an SCM implementation or a proper TEE bus based PAS service implementation.
Reviewed-by: Mukesh Ojha mukesh.ojha@oss.qualcomm.com Tested-by: Mukesh Ojha mukesh.ojha@oss.qualcomm.com # Lemans Reviewed-by: Harshal Dev harshal.dev@oss.qualcomm.com Tested-by: Vignesh Viswanathan vignesh.viswanathan@oss.qualcomm.com # IPQ9650 Signed-off-by: Sumit Garg sumit.garg@oss.qualcomm.com
[...]
+struct qcom_pas_context {
- struct device *dev;
- u32 pas_id;
- phys_addr_t mem_phys;
- size_t mem_size;
- void *ptr;
- dma_addr_t phys;
- ssize_t size;
- bool use_tzmem;
+};
Redefining this instead of moving the definition (this is a cross- subsystem merge anyway) makes things more difficult, as there are patches from another team touching this struct.. hopefully no kaboom..
Konrad