[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aVtZtoHzLNP4gmDz@sumit-xelite>
Date: Mon, 5 Jan 2026 11:57:02 +0530
From: Sumit Garg <sumit.garg@...nel.org>
To: Bjorn Andersson <andersson@...nel.org>
Cc: Dmitry Baryshkov <dmitry.baryshkov@....qualcomm.com>,
linux-arm-msm@...r.kernel.org, devicetree@...r.kernel.org,
konradybcio@...nel.org, robh@...nel.org, krzk+dt@...nel.org,
conor+dt@...nel.org, akhilpo@....qualcomm.com,
vikash.garodia@....qualcomm.com, dikshita.agarwal@....qualcomm.com,
robin.clark@....qualcomm.com, lumag@...nel.org,
linux-kernel@...r.kernel.org,
Sumit Garg <sumit.garg@....qualcomm.com>,
Prakash Gupta <guptap@....qualcomm.com>
Subject: Re: [PATCH 1/2] arm64: dts: qcom: agatti: Fix IOMMU DT properties
On Sat, Jan 03, 2026 at 09:43:57AM -0600, Bjorn Andersson wrote:
> On Tue, Dec 30, 2025 at 01:24:23PM +0530, Sumit Garg wrote:
> > On Tue, Dec 30, 2025 at 09:05:28AM +0200, Dmitry Baryshkov wrote:
> > > On Tue, Dec 30, 2025 at 10:45:38AM +0530, Sumit Garg wrote:
> > > > On Mon, Dec 29, 2025 at 10:00:02PM +0200, Dmitry Baryshkov wrote:
> > > > > On Mon, Dec 29, 2025 at 12:42:57PM +0530, Sumit Garg wrote:
> > > > > > From: Sumit Garg <sumit.garg@....qualcomm.com>
> > > > > >
> > > > > > Fix IOMMU DT propeties for GPU, display and video peripherals via
> > > > > > dropping SMMU stream IDs which relates to secure context bank.
> > > > > >
> > > > > > This problem only surfaced when the Gunyah based firmware stack is
> > > > > > ported on Agatti replacing the legacy QHEE based firmware stack. Assigning
> > > > > > Linux kernel (HLOS) VMID to secure context bank stream IDs is treated
> > > > > > as a fault by Gunyah hypervisor which were previously ignored by QHEE
> > > > > > hypervisor.
> > > > >
> > > > > We are porting the underlaying layer. Can we make it to behave in a way
> > > > > similar to the _existing_ software? If DT was a part of the firmware, it
> > > > > would have been fine to perform such updates. But as it is not, we
> > > > > really should try not to break the interface boundary between firmware
> > > > > and the kernel.
> > > >
> > > > I support your viewpoint. But in this current case Linux kernel VMID mapping
> > > > for secure context bank stream IDs is incorrect. As Konrad mentioned in the
> > > > other thread that for secure media streaming use-cases, it rather requires
> > > > proper representation via iommu-map such that appropriate VMID can be mapped.
> > >
> > > Yes, I understand this part. I'm basically suggesting that Gunyah should
> > > ignore this SID when programming the actual SMMU (probably like QHEE
> > > did).
> >
> > TBH, I generally dislike as to why the firmware based hypervisor
> > behaviour should be encoded in the DT.
>
> The DeviceTree describes the world to the operating system. If there is
> a hypervisor (or secure world, or other configuration) that is affecting
> the (hardware or firmware) interfaces that needs to either be
> discoverable at runtime, or represented in the description of those
> interfaces.
I would always favour discoverable firmware interfaces like EFI or
TEE/TZ based interfaces rather than encoding such information in the DT.
>
> > One can always argue that Gunyah
> > is doing the right thing given the purpose of SMMU stream IDs. And if
> > Gunyah has to change that behaviour since Agatti DT was based on QHEE
> > behaviour then the same behaviour will get replicated on all other Qcom
> > SoCs.
> >
>
> Yes, you can see that mess in sdm845, sc7180, sc7280, and the various
> *-el2.dtso; all cases where we need to describe the variations of the
> hardware and firmware interfaces presented to the operating system.
AFAIU, the major problem here is that the DT for Qcom platforms is a subset
of the hardware information for the OS to initially only run at non-secure
EL1. Then came in requirment that we need to run Linux at EL2 for which
the information wasn't there in DT leading to this *-el2.dtso mess.
I would rather like to see the DT descibing the overall hardware
applicable to the apps processor rather than a subset such that the TZ,
Hypervisor and the kernel can consume the same DT based on ownership
hints.
I suppose the Qcom IOMMU driver can be the first one to consume such DT
information based on the hints. However, this is something which is out
of scope for this patch-set which tries to fix DT as per existing
expectations.
>
> > So, I would suggest that kernel should follow the expected behaviour
> > which is to not program HLOS VMID for stream IDs dedicated for secure
> > context bank.
> >
>
> I agree. As discussed elsewhere, we might still need to manage the
> secure context banks in some cases, but that needs special handling
> anyways.
>
> Moreover, it's two context banks (unsecure and secure), but the current
> description defines a single context bank capturing both the unsecure
> and secure streams.
Agree, I will spin up a v2 with DT bindings changes.
-Sumit
Powered by blists - more mailing lists