Re: [PATCH v8 01/14] firmware: qcom: Add a generic PAS service
Konrad Dybcio via OP-TEE <[email protected]> Tue, 30 Jun 2026 14:21:36 +0200
| Newsgroups | org.trustedfirmware.lists.op-tee,org.freedesktop.lists.dri-devel,org.infradead.lists.ath12k,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-kernel,org.kernel.vger.linux-media,org.kernel.vger.linux-remoteproc,org.kernel.vger.linux-wireless,org.kernel.vger.netdev |
|---|---|
| Message-ID | <[email protected]> |
On 6/26/26 3:34 PM, Sumit Garg wrote: > From: Sumit Garg <[email protected]> > > 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 <[email protected]> > Tested-by: Mukesh Ojha <[email protected]> # Lemans > Reviewed-by: Harshal Dev <[email protected]> > Tested-by: Vignesh Viswanathan <[email protected]> # IPQ9650 > Signed-off-by: Sumit Garg <[email protected]> > --- [...] > +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