Message ID | 20240919-topic-apps_smmu_coherent-v1-2-5b3a8662403d@quicinc.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 3d89c1984000171665d8091c7fdf20f9cf814786 |
Headers | show |
Series | Affirm SMMU coherent pagetable walker capability on RPMh SoCs | expand |
Hi, On Wed, Sep 18, 2024 at 3:58 PM 'Konrad Dybcio' via cros-qcom-dts-watchers <cros-qcom-dts-watchers@chromium.org> wrote: > > From: Konrad Dybcio <quic_kdybcio@quicinc.com> > > On RPMh-based SoCs, the APPS SMMU advertizes support for cache-coherent FWIW, the "RPMh-based" confused me a bit. This isn't really related to RPMh, right? I think you're just using "RPMh-based" to establish a point in time and that Qualcomm added RPMh in the same generation of SoCs that they added cache-coherent pagetable walk? > pagetable walk via the IDR0 register. This however is not respected by > the arm-smmu driver unless dma-coherent is set. > > Mark the node as dma-coherent to ensure this (and other) implementations > take this coherency into account. > > Signed-off-by: Konrad Dybcio <quic_kdybcio@quicinc.com> > --- > arch/arm64/boot/dts/qcom/sc7180.dtsi | 1 + > 1 file changed, 1 insertion(+) I remotely booted this on sc7180-trogdor-lazor. Since I'm working remotely at the moment I can't check the screen, but I can at least confirm that nothing seemed to go boom. I can also confirm that without your patch I see: [ 1.580607] arm-smmu 15000000.iommu: non-coherent table walk [ 1.580612] arm-smmu 15000000.iommu: (IDR0.CTTW overridden by FW configuration) ...and after your patch I see: [ 1.569350] arm-smmu 15000000.iommu: coherent table walk Thus: Tested-by: Douglas Anderson <dianders@chromium.org> I'm curious: can this also be turned on for the Adreno SMMU also? dmesg still has this after your patch (which makes sense since your patch didn't touch the Adreno SMMU): [ 2.423521] arm-smmu 5040000.iommu: non-coherent table walk [ 2.423526] arm-smmu 5040000.iommu: (IDR0.CTTW overridden by FW configuration) -Doug
diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi b/arch/arm64/boot/dts/qcom/sc7180.dtsi index b5ebf89803251203a8d38f6a4690aa052a9e8e61..ed258b4ab486af1765b882164962c56935210898 100644 --- a/arch/arm64/boot/dts/qcom/sc7180.dtsi +++ b/arch/arm64/boot/dts/qcom/sc7180.dtsi @@ -3625,6 +3625,7 @@ apps_smmu: iommu@15000000 { <GIC_SPI 410 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 411 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 412 IRQ_TYPE_LEVEL_HIGH>; + dma-coherent; }; intc: interrupt-controller@17a00000 {