On 11/21/25 12:01 PM, Mukesh Ojha wrote: > Most Qualcomm platforms feature Gunyah hypervisor, which typically > handles IOMMU configuration. This includes mapping memory regions and > device memory resources for remote processors by intercepting > qcom_scm_pas_auth_and_reset() calls. These mappings are later removed > during teardown. Additionally, SHM bridge setup is required to enable > memory protection for both remoteproc metadata and its memory regions. > When the aforementioned hypervisor is absent, the operating system must > perform these configurations instead. > > When Linux runs as the hypervisor (@ EL2) on a SoC, it will have its > own device tree overlay file that specifies the firmware stream ID now > managed by Linux for a particular remote processor. If the iommus > property is specified in the remoteproc device tree node, it indicates > that IOMMU configuration must be handled by Linux. In this case, the > has_iommu flag is set for the remote processor, which ensures that the > resource table, carveouts, and SHM bridge are properly configured before > memory is passed to TrustZone for authentication. Otherwise, the > has_iommu flag remains unset, which indicates default behavior. > > Enables Secure PAS support for remote processors when IOMMU configuration > is managed by Linux. > > Signed-off-by: Mukesh Ojha <[email protected]> > ---
[...] > + pas->pas_ctx->has_iommu = rproc->has_iommu; > + pas->dtb_pas_ctx->has_iommu = rproc->has_iommu; Sorry if we've been there before, but I see that IOMMU-mapping happens before ctx initialization.. can we drop this parameter and just use device_iommu_mapped(ctx->dev) in qcom_scm_pas_prepare_and_auth_reset()?

