Re: [PATCH v3 1/6] dt-bindings: iommu: arm,smmu: Document interconnects property
Dmitry Baryshkov <[email protected]>
| Newsgroups | org.kernel.vger.linux-devicetree,dev.linux.lists.iommu,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <haajolsmvil7adq4pfanmdrkvgqygwioncpikawhbvvar5kpnp@rese34d5wt5j> |
On Tue, Aug 11, 2026 at 08:39:41PM +0530, Bibek Kumar Patro wrote:
>
>
> On 7/20/2026 8:10 PM, Dmitry Baryshkov wrote:
> > On Mon, Jul 20, 2026 at 07:41:35PM +0530, Bibek Kumar Patro wrote:
> > >
> > >
> > > On 7/8/2026 8:48 PM, Bjorn Andersson wrote:
> > > > On Wed, Jul 08, 2026 at 08:22:00PM +0530, Bibek Kumar Patro wrote:
> > > > >
> > > > >
> > > > > On 7/7/2026 10:12 PM, Dmitry Baryshkov wrote:
> > > > > > On Tue, Jul 07, 2026 at 06:06:59PM +0530, Bibek Kumar Patro wrote:
> > > > > > >
> > > > > > >
> > > > > > > On 7/6/2026 11:09 PM, Dmitry Baryshkov wrote:
> > > > > > > > On Mon, Jul 06, 2026 at 10:26:34PM +0530, Bibek Kumar Patro wrote:
> > > > > > > > > Some SoC implementations require a bandwidth vote on an interconnect
> > > > > > > > > path before the SMMU register space is accessible. Add the optional
> > > > > > > >
> > > > > > > > Why is it limited only to those SoCs? Is it also applicable to other
> > > > > > > > Qualcomm SoCs?
> > > > > > > >
> > > > > > >
> > > > > > > I was hoping to keep this series focused on the core infrastructure
> > > > > > > changes: the bindings, base ICC bandwidth-voting support, and DT
> > > > > > > interconnect properties for the platforms currently supported on
> > > > > > > Qualcomm Linux and have been validated so far.
> > > > > > >
> > > > > > > The additional targets have not been tested yet, so I'd prefer
> > > > > > > to add their support in a separate follow-up series once validation
> > > > > > > is complete, rather than growing this series further. WDYT?
> > > > > >
> > > > > > Then it should be a part of the commit message. All SoCs since SDM12345
> > > > > > need to vote on the interconnect (and then, in the cover letter mention
> > > > > > that you convert only a few of the SoCs). We possibly can help with
> > > > > > testing on other platforms.
> > > > > >
> > > > >
> > > > > Ack, sounds reasonable.
> > > > > I'll add the first platform onwards which interconnect voting is required in
> > > > > commit description.
> > > >
> > > > But to what degree is this related to a specific set of platforms? If we
> > > > look ahead, aren't we expecting the list to grow to include all
> > > > platforms in the end - resulting in a lot of noise and churn.
> > > >
> > >
> > > We have seen this issue consistently on SM8750 and later platforms, along
> > > with at least one customer-reported instance on SM8550. As a result,
> > > downstream Android implementations already vote for the required
> > > interconnect bandwidth explicitly on these platforms.
> > >
> > > On Qualcomm Linux targets, we have observed similar issues on Kodiak, with a
> > > few occurrences on Talos as well.
> > >
> > > My understanding is that the interconnects property remains optional, but in
> > > practice it is needed for Adreno SMMU operation on these platforms.
> >
> > So, it goes back to Kodiak and Talos. What about SM8150? SDM845? Earlier
> > platforms? Is it limited to MMU-500? A6xx+?
> >
>
> Thanks for waiting this long for response,
> I rechecked all the legacy platforms which are present in upstream.
Thanks for your effort and for the very detailed explanations below.
>
> As per the design it will be applicable to all targets with MMU-500,
> (Even though issue hasn't been reported for all the targets on MMU-500,
> e.g sm8650/sm8250 but the nodes will still be needed).
> It's independent of adreno version i.e A6xx+/A5xx+.
Ack, this sounds reasonable and allows you to easility select if the fix
is to be applied or not by using the generic compat strings.
>
> Adreno SMMU — upstream Qualcomm targets
>
> SMMU-v2 (QSMMU)
> Platform Compatible
> --------- ------------------------------------
> MSM8996 qcom,msm8996-smmu-v2, qcom,adreno-smmu
> SDM670 qcom,sdm670-smmu-v2, qcom,adreno-smmu
> SDM845 qcom,sdm845-smmu-v2, qcom,adreno-smmu
> SC7180 qcom,sc7180-smmu-v2, qcom,adreno-smmu
> SM6350 qcom,sm6350-smmu-v2, qcom,adreno-smmu
> SM7150 qcom,sm7150-smmu-v2, qcom,adreno-smmu
> SM6375 qcom,sm6375-smmu-v2 (apps only, no adreno-smmu node)
adreno_smmu: iommu@5940000 {
compatible = "qcom,sm6375-smmu-v2", "qcom,smmu-v2";
> MSM8998 qcom,msm8998-smmu-v2 (apps only, no adreno-smmu node)
adreno_smmu: iommu@5040000 {
compatible = "qcom,msm8998-smmu-v2", "qcom,smmu-v2";
> SDM630 qcom,sdm630-smmu-v2 (adreno binding to be fixed)
What exactly needs to be fixed?
kgsl_smmu: iommu@5040000 {
compatible = "qcom,sdm630-smmu-v2", "qcom,adreno-smmu",
"qcom,smmu-v2";
>
> SMMU-500 (MMU-500) — with qcom,adreno-smmu
> Platform Compatible
> --------- ------------------------------------
> SM6115 qcom,sm6115-smmu-500, qcom,adreno-smmu
> QCM2290 qcom,qcm2290-smmu-500, qcom,adreno-smmu
> SM8150 qcom,sm8150-smmu-500, qcom,adreno-smmu
> SM8250 qcom,sm8250-smmu-500, qcom,adreno-smmu
> SC8180x qcom,sc8180x-smmu-500, qcom,adreno-smmu
> SM8350 qcom,sm8350-smmu-500, qcom,adreno-smmu
> SC7280 qcom,sc7280-smmu-500, qcom,adreno-smmu ← our patch series
> SM8450 qcom,sm8450-smmu-500, qcom,adreno-smmu
> SC8280xp qcom,sc8280xp-smmu-500, qcom,adreno-smmu
> QCS615 qcom,qcs615-smmu-500, qcom,adreno-smmu ← our patch series
> SM8550 qcom,sm8550-smmu-500, qcom,adreno-smmu
> SA8775P qcom,sa8775p-smmu-500, qcom,adreno-smmu ← our patch series
> SM8650 qcom,sm8650-smmu-500, qcom,adreno-smmu
> QCS8300 qcom,qcs8300-smmu-500, qcom,adreno-smmu ← our patch series
> SAR2130P qcom,sar2130p-smmu-500, qcom,adreno-smmu
> X1E80100 qcom,x1e80100-smmu-500, qcom,adreno-smmu
> Glymur qcom,glymur-smmu-500, qcom,adreno-smmu
> Milos qcom,milos-smmu-500, qcom,adreno-smmu
>
> SMMU-500 — without qcom,adreno-smmu (apps SMMU only)
> SDM670 qcom,sdm670-smmu-500 (apps)
> SDM845 qcom,sdm845-smmu-500 (apps)
> SC7180 qcom,sc7180-smmu-500 (apps)
> SM6350 qcom,sm6350-smmu-500 (apps)
All these platforms use a separate v2 QSMMU for Adreno
> SM8450 qcom,sm8450-smmu-500 (apps)
adreno_smmu: iommu@3da0000 {
compatible = "qcom,sm8450-smmu-500", "qcom,adreno-smmu",
"qcom,smmu-500", "arm,mmu-500";
> SC8280xp qcom,sc8280xp-smmu-500 (apps)
gpu_smmu: iommu@3da0000 {
compatible = "qcom,sc8280xp-smmu-500", "qcom,adreno-smmu",
"qcom,smmu-500", "arm,mmu-500";
> SM8750 qcom,sm8750-smmu-500 (adreno-smmu not available yet)
Yes, patches pending, I think.
--
With best wishes
Dmitry