Message ID | 20241206-dts-qcom-cdsp-mpss-base-address-v1-7-2f349e4d5a63@linaro.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | arm64: dts: qcom: Fix remoteproc memory base and length | expand |
On 06/12/2024 16:32, Krzysztof Kozlowski wrote: > The address space in ADSP PAS (Peripheral Authentication Service) > remoteproc node should point to the QDSP PUB address space > (QDSP6...SS_PUB): 0x0680_0000 with length of 0x10000. > > 0x3000_0000, value used so far, is the main region of CDSP. Downstream > DTS uses 0x0300_0000, which is oddly similar to 0x3000_0000, yet quite > different and points to unused area. > > Correct the base address and length, which also moves the node to > different place to keep things sorted by unit address. The diff looks > big, but only the unit address and "reg" property were changed. This > should have no functional impact on Linux users, because PAS loader does > not use this address space at all. > > Fixes: d0c061e366ed ("arm64: dts: qcom: sm8550: add adsp, cdsp & mdss nodes") > Cc: <stable@vger.kernel.org> > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> > --- > arch/arm64/boot/dts/qcom/sm8550.dtsi | 262 +++++++++++++++++------------------ > 1 file changed, 131 insertions(+), 131 deletions(-) > > diff --git a/arch/arm64/boot/dts/qcom/sm8550.dtsi b/arch/arm64/boot/dts/qcom/sm8550.dtsi > index e7774d32fb6d2288748ecec00bf525b2b3c40fbb..f454015c5b90c7d792c01bf85256812857d79c64 100644 > --- a/arch/arm64/boot/dts/qcom/sm8550.dtsi > +++ b/arch/arm64/boot/dts/qcom/sm8550.dtsi > @@ -2354,6 +2354,137 @@ IPCC_MPROC_SIGNAL_GLINK_QMP > }; > }; > > + remoteproc_adsp: remoteproc@6800000 { > + compatible = "qcom,sm8550-adsp-pas"; > + reg = <0x0 0x06800000 0x0 0x10000>; > + > + interrupts-extended = <&pdc 6 IRQ_TYPE_EDGE_RISING>, > + <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>, > + <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>, > + <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>, > + <&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>; > + interrupt-names = "wdog", "fatal", "ready", > + "handover", "stop-ack"; > + > + clocks = <&rpmhcc RPMH_CXO_CLK>; > + clock-names = "xo"; > + > + power-domains = <&rpmhpd RPMHPD_LCX>, > + <&rpmhpd RPMHPD_LMX>; > + power-domain-names = "lcx", "lmx"; > + > + interconnects = <&lpass_lpicx_noc MASTER_LPASS_PROC 0 &mc_virt SLAVE_EBI1 0>; > + > + memory-region = <&adspslpi_mem>, <&q6_adsp_dtb_mem>; > + > + qcom,qmp = <&aoss_qmp>; > + > + qcom,smem-states = <&smp2p_adsp_out 0>; > + qcom,smem-state-names = "stop"; > + > + status = "disabled"; > + > + remoteproc_adsp_glink: glink-edge { > + interrupts-extended = <&ipcc IPCC_CLIENT_LPASS > + IPCC_MPROC_SIGNAL_GLINK_QMP > + IRQ_TYPE_EDGE_RISING>; > + mboxes = <&ipcc IPCC_CLIENT_LPASS > + IPCC_MPROC_SIGNAL_GLINK_QMP>; > + > + label = "lpass"; > + qcom,remote-pid = <2>; > + > + fastrpc { > + compatible = "qcom,fastrpc"; > + qcom,glink-channels = "fastrpcglink-apps-dsp"; > + label = "adsp"; > + qcom,non-secure-domain; > + #address-cells = <1>; > + #size-cells = <0>; > + > + compute-cb@3 { > + compatible = "qcom,fastrpc-compute-cb"; > + reg = <3>; > + iommus = <&apps_smmu 0x1003 0x80>, > + <&apps_smmu 0x1063 0x0>; > + dma-coherent; > + }; > + > + compute-cb@4 { > + compatible = "qcom,fastrpc-compute-cb"; > + reg = <4>; > + iommus = <&apps_smmu 0x1004 0x80>, > + <&apps_smmu 0x1064 0x0>; > + dma-coherent; > + }; > + > + compute-cb@5 { > + compatible = "qcom,fastrpc-compute-cb"; > + reg = <5>; > + iommus = <&apps_smmu 0x1005 0x80>, > + <&apps_smmu 0x1065 0x0>; > + dma-coherent; > + }; > + > + compute-cb@6 { > + compatible = "qcom,fastrpc-compute-cb"; > + reg = <6>; > + iommus = <&apps_smmu 0x1006 0x80>, > + <&apps_smmu 0x1066 0x0>; > + dma-coherent; > + }; > + > + compute-cb@7 { > + compatible = "qcom,fastrpc-compute-cb"; > + reg = <7>; > + iommus = <&apps_smmu 0x1007 0x80>, > + <&apps_smmu 0x1067 0x0>; > + dma-coherent; > + }; > + }; > + > + gpr { > + compatible = "qcom,gpr"; > + qcom,glink-channels = "adsp_apps"; > + qcom,domain = <GPR_DOMAIN_ID_ADSP>; > + qcom,intents = <512 20>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + q6apm: service@1 { > + compatible = "qcom,q6apm"; > + reg = <GPR_APM_MODULE_IID>; > + #sound-dai-cells = <0>; > + qcom,protection-domain = "avs/audio", > + "msm/adsp/audio_pd"; > + > + q6apmdai: dais { > + compatible = "qcom,q6apm-dais"; > + iommus = <&apps_smmu 0x1001 0x80>, > + <&apps_smmu 0x1061 0x0>; > + }; > + > + q6apmbedai: bedais { > + compatible = "qcom,q6apm-lpass-dais"; > + #sound-dai-cells = <1>; > + }; > + }; > + > + q6prm: service@2 { > + compatible = "qcom,q6prm"; > + reg = <GPR_PRM_MODULE_IID>; > + qcom,protection-domain = "avs/audio", > + "msm/adsp/audio_pd"; > + > + q6prmcc: clock-controller { > + compatible = "qcom,q6prm-lpass-clocks"; > + #clock-cells = <2>; > + }; > + }; > + }; > + }; > + }; > + > lpass_wsa2macro: codec@6aa0000 { > compatible = "qcom,sm8550-lpass-wsa-macro"; > reg = <0 0x06aa0000 0 0x1000>; > @@ -4576,137 +4707,6 @@ system-cache-controller@25000000 { > interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>; > }; > > - remoteproc_adsp: remoteproc@30000000 { > - compatible = "qcom,sm8550-adsp-pas"; > - reg = <0x0 0x30000000 0x0 0x100>; > - > - interrupts-extended = <&pdc 6 IRQ_TYPE_EDGE_RISING>, > - <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>, > - <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>, > - <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>, > - <&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>; > - interrupt-names = "wdog", "fatal", "ready", > - "handover", "stop-ack"; > - > - clocks = <&rpmhcc RPMH_CXO_CLK>; > - clock-names = "xo"; > - > - power-domains = <&rpmhpd RPMHPD_LCX>, > - <&rpmhpd RPMHPD_LMX>; > - power-domain-names = "lcx", "lmx"; > - > - interconnects = <&lpass_lpicx_noc MASTER_LPASS_PROC 0 &mc_virt SLAVE_EBI1 0>; > - > - memory-region = <&adspslpi_mem>, <&q6_adsp_dtb_mem>; > - > - qcom,qmp = <&aoss_qmp>; > - > - qcom,smem-states = <&smp2p_adsp_out 0>; > - qcom,smem-state-names = "stop"; > - > - status = "disabled"; > - > - remoteproc_adsp_glink: glink-edge { > - interrupts-extended = <&ipcc IPCC_CLIENT_LPASS > - IPCC_MPROC_SIGNAL_GLINK_QMP > - IRQ_TYPE_EDGE_RISING>; > - mboxes = <&ipcc IPCC_CLIENT_LPASS > - IPCC_MPROC_SIGNAL_GLINK_QMP>; > - > - label = "lpass"; > - qcom,remote-pid = <2>; > - > - fastrpc { > - compatible = "qcom,fastrpc"; > - qcom,glink-channels = "fastrpcglink-apps-dsp"; > - label = "adsp"; > - qcom,non-secure-domain; > - #address-cells = <1>; > - #size-cells = <0>; > - > - compute-cb@3 { > - compatible = "qcom,fastrpc-compute-cb"; > - reg = <3>; > - iommus = <&apps_smmu 0x1003 0x80>, > - <&apps_smmu 0x1063 0x0>; > - dma-coherent; > - }; > - > - compute-cb@4 { > - compatible = "qcom,fastrpc-compute-cb"; > - reg = <4>; > - iommus = <&apps_smmu 0x1004 0x80>, > - <&apps_smmu 0x1064 0x0>; > - dma-coherent; > - }; > - > - compute-cb@5 { > - compatible = "qcom,fastrpc-compute-cb"; > - reg = <5>; > - iommus = <&apps_smmu 0x1005 0x80>, > - <&apps_smmu 0x1065 0x0>; > - dma-coherent; > - }; > - > - compute-cb@6 { > - compatible = "qcom,fastrpc-compute-cb"; > - reg = <6>; > - iommus = <&apps_smmu 0x1006 0x80>, > - <&apps_smmu 0x1066 0x0>; > - dma-coherent; > - }; > - > - compute-cb@7 { > - compatible = "qcom,fastrpc-compute-cb"; > - reg = <7>; > - iommus = <&apps_smmu 0x1007 0x80>, > - <&apps_smmu 0x1067 0x0>; > - dma-coherent; > - }; > - }; > - > - gpr { > - compatible = "qcom,gpr"; > - qcom,glink-channels = "adsp_apps"; > - qcom,domain = <GPR_DOMAIN_ID_ADSP>; > - qcom,intents = <512 20>; > - #address-cells = <1>; > - #size-cells = <0>; > - > - q6apm: service@1 { > - compatible = "qcom,q6apm"; > - reg = <GPR_APM_MODULE_IID>; > - #sound-dai-cells = <0>; > - qcom,protection-domain = "avs/audio", > - "msm/adsp/audio_pd"; > - > - q6apmdai: dais { > - compatible = "qcom,q6apm-dais"; > - iommus = <&apps_smmu 0x1001 0x80>, > - <&apps_smmu 0x1061 0x0>; > - }; > - > - q6apmbedai: bedais { > - compatible = "qcom,q6apm-lpass-dais"; > - #sound-dai-cells = <1>; > - }; > - }; > - > - q6prm: service@2 { > - compatible = "qcom,q6prm"; > - reg = <GPR_PRM_MODULE_IID>; > - qcom,protection-domain = "avs/audio", > - "msm/adsp/audio_pd"; > - > - q6prmcc: clock-controller { > - compatible = "qcom,q6prm-lpass-clocks"; > - #clock-cells = <2>; > - }; > - }; > - }; > - }; > - }; > - > nsp_noc: interconnect@320c0000 { > compatible = "qcom,sm8550-nsp-noc"; > reg = <0 0x320c0000 0 0xe080>; > Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
diff --git a/arch/arm64/boot/dts/qcom/sm8550.dtsi b/arch/arm64/boot/dts/qcom/sm8550.dtsi index e7774d32fb6d2288748ecec00bf525b2b3c40fbb..f454015c5b90c7d792c01bf85256812857d79c64 100644 --- a/arch/arm64/boot/dts/qcom/sm8550.dtsi +++ b/arch/arm64/boot/dts/qcom/sm8550.dtsi @@ -2354,6 +2354,137 @@ IPCC_MPROC_SIGNAL_GLINK_QMP }; }; + remoteproc_adsp: remoteproc@6800000 { + compatible = "qcom,sm8550-adsp-pas"; + reg = <0x0 0x06800000 0x0 0x10000>; + + interrupts-extended = <&pdc 6 IRQ_TYPE_EDGE_RISING>, + <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>, + <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>, + <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>, + <&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>; + interrupt-names = "wdog", "fatal", "ready", + "handover", "stop-ack"; + + clocks = <&rpmhcc RPMH_CXO_CLK>; + clock-names = "xo"; + + power-domains = <&rpmhpd RPMHPD_LCX>, + <&rpmhpd RPMHPD_LMX>; + power-domain-names = "lcx", "lmx"; + + interconnects = <&lpass_lpicx_noc MASTER_LPASS_PROC 0 &mc_virt SLAVE_EBI1 0>; + + memory-region = <&adspslpi_mem>, <&q6_adsp_dtb_mem>; + + qcom,qmp = <&aoss_qmp>; + + qcom,smem-states = <&smp2p_adsp_out 0>; + qcom,smem-state-names = "stop"; + + status = "disabled"; + + remoteproc_adsp_glink: glink-edge { + interrupts-extended = <&ipcc IPCC_CLIENT_LPASS + IPCC_MPROC_SIGNAL_GLINK_QMP + IRQ_TYPE_EDGE_RISING>; + mboxes = <&ipcc IPCC_CLIENT_LPASS + IPCC_MPROC_SIGNAL_GLINK_QMP>; + + label = "lpass"; + qcom,remote-pid = <2>; + + fastrpc { + compatible = "qcom,fastrpc"; + qcom,glink-channels = "fastrpcglink-apps-dsp"; + label = "adsp"; + qcom,non-secure-domain; + #address-cells = <1>; + #size-cells = <0>; + + compute-cb@3 { + compatible = "qcom,fastrpc-compute-cb"; + reg = <3>; + iommus = <&apps_smmu 0x1003 0x80>, + <&apps_smmu 0x1063 0x0>; + dma-coherent; + }; + + compute-cb@4 { + compatible = "qcom,fastrpc-compute-cb"; + reg = <4>; + iommus = <&apps_smmu 0x1004 0x80>, + <&apps_smmu 0x1064 0x0>; + dma-coherent; + }; + + compute-cb@5 { + compatible = "qcom,fastrpc-compute-cb"; + reg = <5>; + iommus = <&apps_smmu 0x1005 0x80>, + <&apps_smmu 0x1065 0x0>; + dma-coherent; + }; + + compute-cb@6 { + compatible = "qcom,fastrpc-compute-cb"; + reg = <6>; + iommus = <&apps_smmu 0x1006 0x80>, + <&apps_smmu 0x1066 0x0>; + dma-coherent; + }; + + compute-cb@7 { + compatible = "qcom,fastrpc-compute-cb"; + reg = <7>; + iommus = <&apps_smmu 0x1007 0x80>, + <&apps_smmu 0x1067 0x0>; + dma-coherent; + }; + }; + + gpr { + compatible = "qcom,gpr"; + qcom,glink-channels = "adsp_apps"; + qcom,domain = <GPR_DOMAIN_ID_ADSP>; + qcom,intents = <512 20>; + #address-cells = <1>; + #size-cells = <0>; + + q6apm: service@1 { + compatible = "qcom,q6apm"; + reg = <GPR_APM_MODULE_IID>; + #sound-dai-cells = <0>; + qcom,protection-domain = "avs/audio", + "msm/adsp/audio_pd"; + + q6apmdai: dais { + compatible = "qcom,q6apm-dais"; + iommus = <&apps_smmu 0x1001 0x80>, + <&apps_smmu 0x1061 0x0>; + }; + + q6apmbedai: bedais { + compatible = "qcom,q6apm-lpass-dais"; + #sound-dai-cells = <1>; + }; + }; + + q6prm: service@2 { + compatible = "qcom,q6prm"; + reg = <GPR_PRM_MODULE_IID>; + qcom,protection-domain = "avs/audio", + "msm/adsp/audio_pd"; + + q6prmcc: clock-controller { + compatible = "qcom,q6prm-lpass-clocks"; + #clock-cells = <2>; + }; + }; + }; + }; + }; + lpass_wsa2macro: codec@6aa0000 { compatible = "qcom,sm8550-lpass-wsa-macro"; reg = <0 0x06aa0000 0 0x1000>; @@ -4576,137 +4707,6 @@ system-cache-controller@25000000 { interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>; }; - remoteproc_adsp: remoteproc@30000000 { - compatible = "qcom,sm8550-adsp-pas"; - reg = <0x0 0x30000000 0x0 0x100>; - - interrupts-extended = <&pdc 6 IRQ_TYPE_EDGE_RISING>, - <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>, - <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>, - <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>, - <&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>; - interrupt-names = "wdog", "fatal", "ready", - "handover", "stop-ack"; - - clocks = <&rpmhcc RPMH_CXO_CLK>; - clock-names = "xo"; - - power-domains = <&rpmhpd RPMHPD_LCX>, - <&rpmhpd RPMHPD_LMX>; - power-domain-names = "lcx", "lmx"; - - interconnects = <&lpass_lpicx_noc MASTER_LPASS_PROC 0 &mc_virt SLAVE_EBI1 0>; - - memory-region = <&adspslpi_mem>, <&q6_adsp_dtb_mem>; - - qcom,qmp = <&aoss_qmp>; - - qcom,smem-states = <&smp2p_adsp_out 0>; - qcom,smem-state-names = "stop"; - - status = "disabled"; - - remoteproc_adsp_glink: glink-edge { - interrupts-extended = <&ipcc IPCC_CLIENT_LPASS - IPCC_MPROC_SIGNAL_GLINK_QMP - IRQ_TYPE_EDGE_RISING>; - mboxes = <&ipcc IPCC_CLIENT_LPASS - IPCC_MPROC_SIGNAL_GLINK_QMP>; - - label = "lpass"; - qcom,remote-pid = <2>; - - fastrpc { - compatible = "qcom,fastrpc"; - qcom,glink-channels = "fastrpcglink-apps-dsp"; - label = "adsp"; - qcom,non-secure-domain; - #address-cells = <1>; - #size-cells = <0>; - - compute-cb@3 { - compatible = "qcom,fastrpc-compute-cb"; - reg = <3>; - iommus = <&apps_smmu 0x1003 0x80>, - <&apps_smmu 0x1063 0x0>; - dma-coherent; - }; - - compute-cb@4 { - compatible = "qcom,fastrpc-compute-cb"; - reg = <4>; - iommus = <&apps_smmu 0x1004 0x80>, - <&apps_smmu 0x1064 0x0>; - dma-coherent; - }; - - compute-cb@5 { - compatible = "qcom,fastrpc-compute-cb"; - reg = <5>; - iommus = <&apps_smmu 0x1005 0x80>, - <&apps_smmu 0x1065 0x0>; - dma-coherent; - }; - - compute-cb@6 { - compatible = "qcom,fastrpc-compute-cb"; - reg = <6>; - iommus = <&apps_smmu 0x1006 0x80>, - <&apps_smmu 0x1066 0x0>; - dma-coherent; - }; - - compute-cb@7 { - compatible = "qcom,fastrpc-compute-cb"; - reg = <7>; - iommus = <&apps_smmu 0x1007 0x80>, - <&apps_smmu 0x1067 0x0>; - dma-coherent; - }; - }; - - gpr { - compatible = "qcom,gpr"; - qcom,glink-channels = "adsp_apps"; - qcom,domain = <GPR_DOMAIN_ID_ADSP>; - qcom,intents = <512 20>; - #address-cells = <1>; - #size-cells = <0>; - - q6apm: service@1 { - compatible = "qcom,q6apm"; - reg = <GPR_APM_MODULE_IID>; - #sound-dai-cells = <0>; - qcom,protection-domain = "avs/audio", - "msm/adsp/audio_pd"; - - q6apmdai: dais { - compatible = "qcom,q6apm-dais"; - iommus = <&apps_smmu 0x1001 0x80>, - <&apps_smmu 0x1061 0x0>; - }; - - q6apmbedai: bedais { - compatible = "qcom,q6apm-lpass-dais"; - #sound-dai-cells = <1>; - }; - }; - - q6prm: service@2 { - compatible = "qcom,q6prm"; - reg = <GPR_PRM_MODULE_IID>; - qcom,protection-domain = "avs/audio", - "msm/adsp/audio_pd"; - - q6prmcc: clock-controller { - compatible = "qcom,q6prm-lpass-clocks"; - #clock-cells = <2>; - }; - }; - }; - }; - }; - nsp_noc: interconnect@320c0000 { compatible = "qcom,sm8550-nsp-noc"; reg = <0 0x320c0000 0 0xe080>;
The address space in ADSP PAS (Peripheral Authentication Service) remoteproc node should point to the QDSP PUB address space (QDSP6...SS_PUB): 0x0680_0000 with length of 0x10000. 0x3000_0000, value used so far, is the main region of CDSP. Downstream DTS uses 0x0300_0000, which is oddly similar to 0x3000_0000, yet quite different and points to unused area. Correct the base address and length, which also moves the node to different place to keep things sorted by unit address. The diff looks big, but only the unit address and "reg" property were changed. This should have no functional impact on Linux users, because PAS loader does not use this address space at all. Fixes: d0c061e366ed ("arm64: dts: qcom: sm8550: add adsp, cdsp & mdss nodes") Cc: <stable@vger.kernel.org> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> --- arch/arm64/boot/dts/qcom/sm8550.dtsi | 262 +++++++++++++++++------------------ 1 file changed, 131 insertions(+), 131 deletions(-)