Linux ARM-MSM sub-architecture
 help / color / mirror / Atom feed
* [PATCH v3 0/4] Add support for APPS SMMU on QCS615
@ 2024-10-25  3:07 Qingqing Zhou
  2024-10-25  3:07 ` [PATCH v3 1/4] dt-bindings: firmware: qcom,scm: document QCS615 SCM Qingqing Zhou
                   ` (4 more replies)
  0 siblings, 5 replies; 18+ messages in thread
From: Qingqing Zhou @ 2024-10-25  3:07 UTC (permalink / raw)
  To: andersson, konradybcio, robh, krzk+dt, conor+dt, robimarko, will,
	robin.murphy, joro
  Cc: linux-arm-msm, devicetree, linux-kernel, iommu, Qingqing Zhou

Enable APPS SMMU function on QCS615 platform. APPS SMMU is required
for address translation in devices including Ethernet/UFS/USB and
so on.

Add the SCM node for SMMU probing normally. SMMU driver probe will
check qcom_scm ready or not, without SCM node, SMMU driver probe will
defer.
The dmesg log without SCM node:
platform 15000000.iommu: deferred probe pending: arm-smmu: qcom_scm not ready

With the SCM node, SMMU can probe normally, but SCM driver still fails
to probe because of one SCM bug:
qcom_scm firmware:scm: error (____ptrval____): Failed to enable the TrustZone memory allocator
qcom_scm firmware:scm: probe with driver qcom_scm failed with error 4
The above SCM bug has been fixed and applied:
https://lore.kernel.org/all/172965696408.224417.2033308332604008573.b4-ty@kernel.org/#t
But above patch doesn't impact building of current patch series which
can build successfully without above patch.

This patch series depends on below patch series:
https://lore.kernel.org/linux-arm-msm/20241022-add_initial_support_for_qcs615-v4-0-0a551c6dd342@quicinc.com/

Changes in v3:
- Align the interrupts of the APPS SMMU node suggested by Konrad.
- Add the Acked-by tag in the commit message of SCM bindings patch.
- Update the dependency link, SCM bug fix link and base-commit in
  cover letter.
- Link to v2: https://lore.kernel.org/linux-arm-msm/20241015081603.30643-1-quic_qqzhou@quicinc.com/

Changes in v2:
- Add the compatible "qcom,qcs615-smmu-500" into no-clocks list for
  arm,smmu.yaml suggested by Krzysztof.
- Improve the commit messages and cover letter.
- Link to v1: https://lore.kernel.org/all/20241011063112.19087-1-quic_qqzhou@quicinc.com/

Qingqing Zhou (4):
  dt-bindings: firmware: qcom,scm: document QCS615 SCM
  dt-bindings: arm-smmu: document QCS615 APPS SMMU
  arm64: dts: qcom: qcs615: add the SCM node
  arm64: dts: qcom: qcs615: add the APPS SMMU node

 .../bindings/firmware/qcom,scm.yaml           |  1 +
 .../devicetree/bindings/iommu/arm,smmu.yaml   |  2 +
 arch/arm64/boot/dts/qcom/qcs615.dtsi          | 81 +++++++++++++++++++
 3 files changed, 84 insertions(+)


base-commit: 7436324ebd147598f940dde1335b7979dbccc339
prerequisite-patch-id: 3a76212d3a3e930d771312ff9349f87aee5c55d5
prerequisite-patch-id: 8a2454d5e07e56a6dd03f762f498051065635d85
prerequisite-patch-id: 46cdc5640598b60d2f5449af444d6d4e479c00b8
prerequisite-patch-id: 050d1dd8cc9397618e570e6de2d81d0c32c10d7a
prerequisite-patch-id: cd9fc0a399ab430e293764d0911a38109664ca91
prerequisite-patch-id: 07f2c7378c7bbd560f26b61785b6814270647f1b
prerequisite-patch-id: f9680e3c90d8f05babbcadd7b7f5174f484a8275
prerequisite-patch-id: f78398623b7f08ae1183a4e637045a081bc93ec8
prerequisite-patch-id: 54b4dd987711302b083f714c6f230726c7781042
prerequisite-patch-id: 624720e543d7857e46d3ee49b8cea413772deb4c
prerequisite-patch-id: 04ca722967256efddc402b7bab94136a5174b0b9
prerequisite-patch-id: ab88a42ec69ad90e8509c9c5b7c6bdd595a7f783
prerequisite-patch-id: 918724fafe43acaa4c4b980bfabe36e9c3212cd1
prerequisite-patch-id: 203a45a2f2a8c636ad88b6c0d4868721dc34633d
prerequisite-patch-id: fc1cfec4ecd56e669c161c4d2c3797fc0abff0ae
-- 
2.17.1


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH v3 1/4] dt-bindings: firmware: qcom,scm: document QCS615 SCM
  2024-10-25  3:07 [PATCH v3 0/4] Add support for APPS SMMU on QCS615 Qingqing Zhou
@ 2024-10-25  3:07 ` Qingqing Zhou
  2024-10-25  3:07 ` [PATCH v3 2/4] dt-bindings: arm-smmu: document QCS615 APPS SMMU Qingqing Zhou
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 18+ messages in thread
From: Qingqing Zhou @ 2024-10-25  3:07 UTC (permalink / raw)
  To: andersson, konradybcio, robh, krzk+dt, conor+dt, robimarko, will,
	robin.murphy, joro
  Cc: linux-arm-msm, devicetree, linux-kernel, iommu, Qingqing Zhou

Add the compatible for Qualcomm QCS615 SCM.

Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Qingqing Zhou <quic_qqzhou@quicinc.com>
---
 Documentation/devicetree/bindings/firmware/qcom,scm.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/firmware/qcom,scm.yaml b/Documentation/devicetree/bindings/firmware/qcom,scm.yaml
index 2cc83771d8e7..2a94d02f11a1 100644
--- a/Documentation/devicetree/bindings/firmware/qcom,scm.yaml
+++ b/Documentation/devicetree/bindings/firmware/qcom,scm.yaml
@@ -42,6 +42,7 @@ properties:
           - qcom,scm-msm8996
           - qcom,scm-msm8998
           - qcom,scm-qcm2290
+          - qcom,scm-qcs615
           - qcom,scm-qdu1000
           - qcom,scm-sa8775p
           - qcom,scm-sc7180
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v3 2/4] dt-bindings: arm-smmu: document QCS615 APPS SMMU
  2024-10-25  3:07 [PATCH v3 0/4] Add support for APPS SMMU on QCS615 Qingqing Zhou
  2024-10-25  3:07 ` [PATCH v3 1/4] dt-bindings: firmware: qcom,scm: document QCS615 SCM Qingqing Zhou
@ 2024-10-25  3:07 ` Qingqing Zhou
  2024-10-25 12:34   ` Krzysztof Kozlowski
  2024-10-25  3:07 ` [PATCH v3 3/4] arm64: dts: qcom: qcs615: add the SCM node Qingqing Zhou
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 18+ messages in thread
From: Qingqing Zhou @ 2024-10-25  3:07 UTC (permalink / raw)
  To: andersson, konradybcio, robh, krzk+dt, conor+dt, robimarko, will,
	robin.murphy, joro
  Cc: linux-arm-msm, devicetree, linux-kernel, iommu, Qingqing Zhou

Add the compatible for Qualcomm QCS615 APPS SMMU.

Signed-off-by: Qingqing Zhou <quic_qqzhou@quicinc.com>
---
 Documentation/devicetree/bindings/iommu/arm,smmu.yaml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/iommu/arm,smmu.yaml b/Documentation/devicetree/bindings/iommu/arm,smmu.yaml
index 92d350b8e01a..d3093263d888 100644
--- a/Documentation/devicetree/bindings/iommu/arm,smmu.yaml
+++ b/Documentation/devicetree/bindings/iommu/arm,smmu.yaml
@@ -36,6 +36,7 @@ properties:
         items:
           - enum:
               - qcom,qcm2290-smmu-500
+              - qcom,qcs615-smmu-500
               - qcom,qcs8300-smmu-500
               - qcom,qdu1000-smmu-500
               - qcom,sa8255p-smmu-500
@@ -555,6 +556,7 @@ allOf:
               - cavium,smmu-v2
               - marvell,ap806-smmu-500
               - nvidia,smmu-500
+              - qcom,qcs615-smmu-500
               - qcom,qcs8300-smmu-500
               - qcom,qdu1000-smmu-500
               - qcom,sa8255p-smmu-500
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v3 3/4] arm64: dts: qcom: qcs615: add the SCM node
  2024-10-25  3:07 [PATCH v3 0/4] Add support for APPS SMMU on QCS615 Qingqing Zhou
  2024-10-25  3:07 ` [PATCH v3 1/4] dt-bindings: firmware: qcom,scm: document QCS615 SCM Qingqing Zhou
  2024-10-25  3:07 ` [PATCH v3 2/4] dt-bindings: arm-smmu: document QCS615 APPS SMMU Qingqing Zhou
@ 2024-10-25  3:07 ` Qingqing Zhou
  2024-10-25  6:02   ` Dmitry Baryshkov
  2024-10-25  3:07 ` [PATCH v3 4/4] arm64: dts: qcom: qcs615: add the APPS SMMU node Qingqing Zhou
  2024-10-29 16:15 ` [PATCH v3 0/4] Add support for APPS SMMU on QCS615 Will Deacon
  4 siblings, 1 reply; 18+ messages in thread
From: Qingqing Zhou @ 2024-10-25  3:07 UTC (permalink / raw)
  To: andersson, konradybcio, robh, krzk+dt, conor+dt, robimarko, will,
	robin.murphy, joro
  Cc: linux-arm-msm, devicetree, linux-kernel, iommu, Qingqing Zhou

Add the SCM node for QCS615 platform. It is an interface to
communicate to the secure firmware.

Signed-off-by: Qingqing Zhou <quic_qqzhou@quicinc.com>
---
 arch/arm64/boot/dts/qcom/qcs615.dtsi | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/qcs615.dtsi b/arch/arm64/boot/dts/qcom/qcs615.dtsi
index ac4c4c751da1..027c5125f36b 100644
--- a/arch/arm64/boot/dts/qcom/qcs615.dtsi
+++ b/arch/arm64/boot/dts/qcom/qcs615.dtsi
@@ -278,6 +278,13 @@
 		reg = <0 0x80000000 0 0>;
 	};
 
+	firmware {
+		scm {
+			compatible = "qcom,scm-qcs615", "qcom,scm";
+			qcom,dload-mode = <&tcsr 0x13000>;
+		};
+	};
+
 	camnoc_virt: interconnect-0 {
 		compatible = "qcom,qcs615-camnoc-virt";
 		#interconnect-cells = <2>;
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH v3 4/4] arm64: dts: qcom: qcs615: add the APPS SMMU node
  2024-10-25  3:07 [PATCH v3 0/4] Add support for APPS SMMU on QCS615 Qingqing Zhou
                   ` (2 preceding siblings ...)
  2024-10-25  3:07 ` [PATCH v3 3/4] arm64: dts: qcom: qcs615: add the SCM node Qingqing Zhou
@ 2024-10-25  3:07 ` Qingqing Zhou
  2024-10-25  8:54   ` Konrad Dybcio
  2024-10-29 16:15 ` [PATCH v3 0/4] Add support for APPS SMMU on QCS615 Will Deacon
  4 siblings, 1 reply; 18+ messages in thread
From: Qingqing Zhou @ 2024-10-25  3:07 UTC (permalink / raw)
  To: andersson, konradybcio, robh, krzk+dt, conor+dt, robimarko, will,
	robin.murphy, joro
  Cc: linux-arm-msm, devicetree, linux-kernel, iommu, Qingqing Zhou

Add the APPS SMMU node for QCS615 platform. Add the dma-ranges
to limit DMA address range to 36bit width to align with system
architecture.

Signed-off-by: Qingqing Zhou <quic_qqzhou@quicinc.com>
---
 arch/arm64/boot/dts/qcom/qcs615.dtsi | 74 ++++++++++++++++++++++++++++
 1 file changed, 74 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/qcs615.dtsi b/arch/arm64/boot/dts/qcom/qcs615.dtsi
index 027c5125f36b..38428e4537b7 100644
--- a/arch/arm64/boot/dts/qcom/qcs615.dtsi
+++ b/arch/arm64/boot/dts/qcom/qcs615.dtsi
@@ -379,6 +379,7 @@
 	soc: soc@0 {
 		compatible = "simple-bus";
 		ranges = <0 0 0 0 0x10 0>;
+		dma-ranges = <0 0 0 0 0x10 0>;
 		#address-cells = <2>;
 		#size-cells = <2>;
 
@@ -524,6 +525,79 @@
 			reg = <0x0 0x0c3f0000 0x0 0x400>;
 		};
 
+		apps_smmu: iommu@15000000 {
+			compatible = "qcom,qcs615-smmu-500", "qcom,smmu-500", "arm,mmu-500";
+			reg = <0x0 0x15000000 0x0 0x80000>;
+			#iommu-cells = <2>;
+			#global-interrupts = <1>;
+
+			interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>;
+		};
+
 		intc: interrupt-controller@17a00000 {
 			compatible = "arm,gic-v3";
 			reg = <0x0 0x17a00000 0x0 0x10000>,     /* GICD */
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [PATCH v3 3/4] arm64: dts: qcom: qcs615: add the SCM node
  2024-10-25  3:07 ` [PATCH v3 3/4] arm64: dts: qcom: qcs615: add the SCM node Qingqing Zhou
@ 2024-10-25  6:02   ` Dmitry Baryshkov
  2024-10-30  8:42     ` Qingqing Zhou
  0 siblings, 1 reply; 18+ messages in thread
From: Dmitry Baryshkov @ 2024-10-25  6:02 UTC (permalink / raw)
  To: Qingqing Zhou
  Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, robimarko, will,
	robin.murphy, joro, linux-arm-msm, devicetree, linux-kernel,
	iommu

On Fri, Oct 25, 2024 at 08:37:31AM +0530, Qingqing Zhou wrote:
> Add the SCM node for QCS615 platform. It is an interface to
> communicate to the secure firmware.
> 
> Signed-off-by: Qingqing Zhou <quic_qqzhou@quicinc.com>
> ---
>  arch/arm64/boot/dts/qcom/qcs615.dtsi | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/qcs615.dtsi b/arch/arm64/boot/dts/qcom/qcs615.dtsi
> index ac4c4c751da1..027c5125f36b 100644
> --- a/arch/arm64/boot/dts/qcom/qcs615.dtsi
> +++ b/arch/arm64/boot/dts/qcom/qcs615.dtsi
> @@ -278,6 +278,13 @@
>  		reg = <0 0x80000000 0 0>;
>  	};
>  
> +	firmware {
> +		scm {
> +			compatible = "qcom,scm-qcs615", "qcom,scm";
> +			qcom,dload-mode = <&tcsr 0x13000>;

No CRYPTO clock?

> +		};
> +	};
> +
>  	camnoc_virt: interconnect-0 {
>  		compatible = "qcom,qcs615-camnoc-virt";
>  		#interconnect-cells = <2>;
> -- 
> 2.17.1
> 

-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v3 4/4] arm64: dts: qcom: qcs615: add the APPS SMMU node
  2024-10-25  3:07 ` [PATCH v3 4/4] arm64: dts: qcom: qcs615: add the APPS SMMU node Qingqing Zhou
@ 2024-10-25  8:54   ` Konrad Dybcio
  2024-10-25 11:06     ` Dmitry Baryshkov
  0 siblings, 1 reply; 18+ messages in thread
From: Konrad Dybcio @ 2024-10-25  8:54 UTC (permalink / raw)
  To: Qingqing Zhou, andersson, konradybcio, robh, krzk+dt, conor+dt,
	robimarko, will, robin.murphy, joro
  Cc: linux-arm-msm, devicetree, linux-kernel, iommu

On 25.10.2024 5:07 AM, Qingqing Zhou wrote:
> Add the APPS SMMU node for QCS615 platform. Add the dma-ranges
> to limit DMA address range to 36bit width to align with system
> architecture.
> 
> Signed-off-by: Qingqing Zhou <quic_qqzhou@quicinc.com>
> ---

You probably also want to mark it `dma-coherent` (see e.g.
x1e80100.dtsi)

Konrad

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v3 4/4] arm64: dts: qcom: qcs615: add the APPS SMMU node
  2024-10-25  8:54   ` Konrad Dybcio
@ 2024-10-25 11:06     ` Dmitry Baryshkov
  2024-10-25 16:45       ` Konrad Dybcio
  0 siblings, 1 reply; 18+ messages in thread
From: Dmitry Baryshkov @ 2024-10-25 11:06 UTC (permalink / raw)
  To: Konrad Dybcio
  Cc: Qingqing Zhou, andersson, konradybcio, robh, krzk+dt, conor+dt,
	robimarko, will, robin.murphy, joro, linux-arm-msm, devicetree,
	linux-kernel, iommu

On Fri, Oct 25, 2024 at 10:54:24AM +0200, Konrad Dybcio wrote:
> On 25.10.2024 5:07 AM, Qingqing Zhou wrote:
> > Add the APPS SMMU node for QCS615 platform. Add the dma-ranges
> > to limit DMA address range to 36bit width to align with system
> > architecture.
> > 
> > Signed-off-by: Qingqing Zhou <quic_qqzhou@quicinc.com>
> > ---
> 
> You probably also want to mark it `dma-coherent` (see e.g.
> x1e80100.dtsi)

Is it? I don't think SM6150 had dma-coherent SMMU, at least it wasn't
marked as such.

-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v3 2/4] dt-bindings: arm-smmu: document QCS615 APPS SMMU
  2024-10-25  3:07 ` [PATCH v3 2/4] dt-bindings: arm-smmu: document QCS615 APPS SMMU Qingqing Zhou
@ 2024-10-25 12:34   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 18+ messages in thread
From: Krzysztof Kozlowski @ 2024-10-25 12:34 UTC (permalink / raw)
  To: Qingqing Zhou
  Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, robimarko, will,
	robin.murphy, joro, linux-arm-msm, devicetree, linux-kernel,
	iommu

On Fri, Oct 25, 2024 at 08:37:30AM +0530, Qingqing Zhou wrote:
> Add the compatible for Qualcomm QCS615 APPS SMMU.
> 
> Signed-off-by: Qingqing Zhou <quic_qqzhou@quicinc.com>
> ---
>  Documentation/devicetree/bindings/iommu/arm,smmu.yaml | 2 ++
>  1 file changed, 2 insertions(+)

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v3 4/4] arm64: dts: qcom: qcs615: add the APPS SMMU node
  2024-10-25 11:06     ` Dmitry Baryshkov
@ 2024-10-25 16:45       ` Konrad Dybcio
  2024-10-26 18:18         ` Dmitry Baryshkov
  0 siblings, 1 reply; 18+ messages in thread
From: Konrad Dybcio @ 2024-10-25 16:45 UTC (permalink / raw)
  To: Dmitry Baryshkov, Konrad Dybcio
  Cc: Qingqing Zhou, andersson, konradybcio, robh, krzk+dt, conor+dt,
	robimarko, will, robin.murphy, joro, linux-arm-msm, devicetree,
	linux-kernel, iommu

On 25.10.2024 1:06 PM, Dmitry Baryshkov wrote:
> On Fri, Oct 25, 2024 at 10:54:24AM +0200, Konrad Dybcio wrote:
>> On 25.10.2024 5:07 AM, Qingqing Zhou wrote:
>>> Add the APPS SMMU node for QCS615 platform. Add the dma-ranges
>>> to limit DMA address range to 36bit width to align with system
>>> architecture.
>>>
>>> Signed-off-by: Qingqing Zhou <quic_qqzhou@quicinc.com>
>>> ---
>>
>> You probably also want to mark it `dma-coherent` (see e.g.
>> x1e80100.dtsi)
> 
> Is it? I don't think SM6150 had dma-coherent SMMU, at least it wasn't
> marked as such.

I don't think I have any documentation on this, so.. one way to find out!

Konrad

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v3 4/4] arm64: dts: qcom: qcs615: add the APPS SMMU node
  2024-10-25 16:45       ` Konrad Dybcio
@ 2024-10-26 18:18         ` Dmitry Baryshkov
  2024-10-28 15:46           ` Konrad Dybcio
  0 siblings, 1 reply; 18+ messages in thread
From: Dmitry Baryshkov @ 2024-10-26 18:18 UTC (permalink / raw)
  To: Konrad Dybcio
  Cc: Qingqing Zhou, andersson, konradybcio, robh, krzk+dt, conor+dt,
	robimarko, will, robin.murphy, joro, linux-arm-msm, devicetree,
	linux-kernel, iommu

On Fri, Oct 25, 2024 at 06:45:01PM +0200, Konrad Dybcio wrote:
> On 25.10.2024 1:06 PM, Dmitry Baryshkov wrote:
> > On Fri, Oct 25, 2024 at 10:54:24AM +0200, Konrad Dybcio wrote:
> >> On 25.10.2024 5:07 AM, Qingqing Zhou wrote:
> >>> Add the APPS SMMU node for QCS615 platform. Add the dma-ranges
> >>> to limit DMA address range to 36bit width to align with system
> >>> architecture.
> >>>
> >>> Signed-off-by: Qingqing Zhou <quic_qqzhou@quicinc.com>
> >>> ---
> >>
> >> You probably also want to mark it `dma-coherent` (see e.g.
> >> x1e80100.dtsi)
> > 
> > Is it? I don't think SM6150 had dma-coherent SMMU, at least it wasn't
> > marked as such.
> 
> I don't think I have any documentation on this, so.. one way to find out!

I don't have qcs615 at hand, so a purely theoretical question. But how
should it break if we mark it as dma-coherent, while it is not?

-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v3 4/4] arm64: dts: qcom: qcs615: add the APPS SMMU node
  2024-10-26 18:18         ` Dmitry Baryshkov
@ 2024-10-28 15:46           ` Konrad Dybcio
  2024-10-30  8:21             ` Qingqing Zhou
  0 siblings, 1 reply; 18+ messages in thread
From: Konrad Dybcio @ 2024-10-28 15:46 UTC (permalink / raw)
  To: Dmitry Baryshkov, Konrad Dybcio
  Cc: Qingqing Zhou, andersson, konradybcio, robh, krzk+dt, conor+dt,
	robimarko, will, robin.murphy, joro, linux-arm-msm, devicetree,
	linux-kernel, iommu

On 26.10.2024 8:18 PM, Dmitry Baryshkov wrote:
> On Fri, Oct 25, 2024 at 06:45:01PM +0200, Konrad Dybcio wrote:
>> On 25.10.2024 1:06 PM, Dmitry Baryshkov wrote:
>>> On Fri, Oct 25, 2024 at 10:54:24AM +0200, Konrad Dybcio wrote:
>>>> On 25.10.2024 5:07 AM, Qingqing Zhou wrote:
>>>>> Add the APPS SMMU node for QCS615 platform. Add the dma-ranges
>>>>> to limit DMA address range to 36bit width to align with system
>>>>> architecture.
>>>>>
>>>>> Signed-off-by: Qingqing Zhou <quic_qqzhou@quicinc.com>
>>>>> ---
>>>>
>>>> You probably also want to mark it `dma-coherent` (see e.g.
>>>> x1e80100.dtsi)
>>>
>>> Is it? I don't think SM6150 had dma-coherent SMMU, at least it wasn't
>>> marked as such.
>>
>> I don't think I have any documentation on this, so.. one way to find out!
> 
> I don't have qcs615 at hand, so a purely theoretical question. But how
> should it break if we mark it as dma-coherent, while it is not?

The board will hang rather quickly

Konrad

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v3 0/4] Add support for APPS SMMU on QCS615
  2024-10-25  3:07 [PATCH v3 0/4] Add support for APPS SMMU on QCS615 Qingqing Zhou
                   ` (3 preceding siblings ...)
  2024-10-25  3:07 ` [PATCH v3 4/4] arm64: dts: qcom: qcs615: add the APPS SMMU node Qingqing Zhou
@ 2024-10-29 16:15 ` Will Deacon
  4 siblings, 0 replies; 18+ messages in thread
From: Will Deacon @ 2024-10-29 16:15 UTC (permalink / raw)
  To: andersson, konradybcio, robh, krzk+dt, conor+dt, robimarko,
	robin.murphy, joro, Qingqing Zhou
  Cc: catalin.marinas, kernel-team, Will Deacon, linux-arm-msm,
	devicetree, linux-kernel, iommu

On Fri, 25 Oct 2024 08:37:28 +0530, Qingqing Zhou wrote:
> Enable APPS SMMU function on QCS615 platform. APPS SMMU is required
> for address translation in devices including Ethernet/UFS/USB and
> so on.
> 
> Add the SCM node for SMMU probing normally. SMMU driver probe will
> check qcom_scm ready or not, without SCM node, SMMU driver probe will
> defer.
> The dmesg log without SCM node:
> platform 15000000.iommu: deferred probe pending: arm-smmu: qcom_scm not ready
> 
> [...]

Applied SMMU bindings change to will (for-joerg/arm-smmu/bindings), thanks!

[2/4] dt-bindings: arm-smmu: document QCS615 APPS SMMU
      https://git.kernel.org/will/c/515c8ff024ba

Cheers,
-- 
Will

https://fixes.arm64.dev
https://next.arm64.dev
https://will.arm64.dev

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v3 4/4] arm64: dts: qcom: qcs615: add the APPS SMMU node
  2024-10-28 15:46           ` Konrad Dybcio
@ 2024-10-30  8:21             ` Qingqing Zhou
  0 siblings, 0 replies; 18+ messages in thread
From: Qingqing Zhou @ 2024-10-30  8:21 UTC (permalink / raw)
  To: Konrad Dybcio, Dmitry Baryshkov
  Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, robimarko, will,
	robin.murphy, joro, linux-arm-msm, devicetree, linux-kernel,
	iommu



在 10/28/2024 11:46 PM, Konrad Dybcio 写道:
> On 26.10.2024 8:18 PM, Dmitry Baryshkov wrote:
>> On Fri, Oct 25, 2024 at 06:45:01PM +0200, Konrad Dybcio wrote:
>>> On 25.10.2024 1:06 PM, Dmitry Baryshkov wrote:
>>>> On Fri, Oct 25, 2024 at 10:54:24AM +0200, Konrad Dybcio wrote:
>>>>> On 25.10.2024 5:07 AM, Qingqing Zhou wrote:
>>>>>> Add the APPS SMMU node for QCS615 platform. Add the dma-ranges
>>>>>> to limit DMA address range to 36bit width to align with system
>>>>>> architecture.
>>>>>>
>>>>>> Signed-off-by: Qingqing Zhou <quic_qqzhou@quicinc.com>
>>>>>> ---
>>>>>
>>>>> You probably also want to mark it `dma-coherent` (see e.g.
>>>>> x1e80100.dtsi)
>>>>
>>>> Is it? I don't think SM6150 had dma-coherent SMMU, at least it wasn't
>>>> marked as such.
>>>
>>> I don't think I have any documentation on this, so.. one way to find out!
>>
>> I don't have qcs615 at hand, so a purely theoretical question. But how
>> should it break if we mark it as dma-coherent, while it is not?
> 
> The board will hang rather quickly
> 
> Konrad
Thanks for review comments from Konrad and Dmitry!
QCS615 SMMU hardware supports IO-coherency after confirming with Qualcomm hardware team.
We also try to add "dma-coherent" for APPS SMMU node and test some SMMU clients, such as UFS and Ethernet, these SMMU clients work well on QCS615.
Do you advise and agree to add "dma-coherent" for SMMU node?


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v3 3/4] arm64: dts: qcom: qcs615: add the SCM node
  2024-10-25  6:02   ` Dmitry Baryshkov
@ 2024-10-30  8:42     ` Qingqing Zhou
  2024-10-31 18:59       ` Dmitry Baryshkov
  0 siblings, 1 reply; 18+ messages in thread
From: Qingqing Zhou @ 2024-10-30  8:42 UTC (permalink / raw)
  To: Dmitry Baryshkov
  Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, robimarko, will,
	robin.murphy, joro, linux-arm-msm, devicetree, linux-kernel,
	iommu



在 10/25/2024 2:02 PM, Dmitry Baryshkov 写道:
> On Fri, Oct 25, 2024 at 08:37:31AM +0530, Qingqing Zhou wrote:
>> Add the SCM node for QCS615 platform. It is an interface to
>> communicate to the secure firmware.
>>
>> Signed-off-by: Qingqing Zhou <quic_qqzhou@quicinc.com>
>> ---
>>  arch/arm64/boot/dts/qcom/qcs615.dtsi | 7 +++++++
>>  1 file changed, 7 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/qcs615.dtsi b/arch/arm64/boot/dts/qcom/qcs615.dtsi
>> index ac4c4c751da1..027c5125f36b 100644
>> --- a/arch/arm64/boot/dts/qcom/qcs615.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/qcs615.dtsi
>> @@ -278,6 +278,13 @@
>>  		reg = <0 0x80000000 0 0>;
>>  	};
>>  
>> +	firmware {
>> +		scm {
>> +			compatible = "qcom,scm-qcs615", "qcom,scm";
>> +			qcom,dload-mode = <&tcsr 0x13000>;
> 
> No CRYPTO clock?
NO, response from Qualcomm clock team is "the current QCS615 RPMH code does not have the clock support for CE clock", so we don't configure clocks here.
> 
>> +		};
>> +	};
>> +
>>  	camnoc_virt: interconnect-0 {
>>  		compatible = "qcom,qcs615-camnoc-virt";
>>  		#interconnect-cells = <2>;
>> -- 
>> 2.17.1
>>
> 


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v3 3/4] arm64: dts: qcom: qcs615: add the SCM node
  2024-10-30  8:42     ` Qingqing Zhou
@ 2024-10-31 18:59       ` Dmitry Baryshkov
  2024-11-04  7:36         ` Qingqing Zhou
  0 siblings, 1 reply; 18+ messages in thread
From: Dmitry Baryshkov @ 2024-10-31 18:59 UTC (permalink / raw)
  To: Qingqing Zhou
  Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, robimarko, will,
	robin.murphy, joro, linux-arm-msm, devicetree, linux-kernel,
	iommu

On Wed, Oct 30, 2024 at 04:42:19PM +0800, Qingqing Zhou wrote:
> 
> 
> 在 10/25/2024 2:02 PM, Dmitry Baryshkov 写道:
> > On Fri, Oct 25, 2024 at 08:37:31AM +0530, Qingqing Zhou wrote:
> >> Add the SCM node for QCS615 platform. It is an interface to
> >> communicate to the secure firmware.
> >>
> >> Signed-off-by: Qingqing Zhou <quic_qqzhou@quicinc.com>
> >> ---
> >>  arch/arm64/boot/dts/qcom/qcs615.dtsi | 7 +++++++
> >>  1 file changed, 7 insertions(+)
> >>
> >> diff --git a/arch/arm64/boot/dts/qcom/qcs615.dtsi b/arch/arm64/boot/dts/qcom/qcs615.dtsi
> >> index ac4c4c751da1..027c5125f36b 100644
> >> --- a/arch/arm64/boot/dts/qcom/qcs615.dtsi
> >> +++ b/arch/arm64/boot/dts/qcom/qcs615.dtsi
> >> @@ -278,6 +278,13 @@
> >>  		reg = <0 0x80000000 0 0>;
> >>  	};
> >>  
> >> +	firmware {
> >> +		scm {
> >> +			compatible = "qcom,scm-qcs615", "qcom,scm";
> >> +			qcom,dload-mode = <&tcsr 0x13000>;
> > 
> > No CRYPTO clock?
> NO, response from Qualcomm clock team is "the current QCS615 RPMH code does not have the clock support for CE clock", so we don't configure clocks here.

Is this going to change in future?

> > 
> >> +		};
> >> +	};
> >> +
> >>  	camnoc_virt: interconnect-0 {
> >>  		compatible = "qcom,qcs615-camnoc-virt";
> >>  		#interconnect-cells = <2>;
> >> -- 
> >> 2.17.1
> >>
> > 
> 

-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v3 3/4] arm64: dts: qcom: qcs615: add the SCM node
  2024-10-31 18:59       ` Dmitry Baryshkov
@ 2024-11-04  7:36         ` Qingqing Zhou
  2024-11-04 10:54           ` Dmitry Baryshkov
  0 siblings, 1 reply; 18+ messages in thread
From: Qingqing Zhou @ 2024-11-04  7:36 UTC (permalink / raw)
  To: Dmitry Baryshkov
  Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, robimarko, will,
	robin.murphy, joro, linux-arm-msm, devicetree, linux-kernel,
	iommu



在 11/1/2024 2:59 AM, Dmitry Baryshkov 写道:
> On Wed, Oct 30, 2024 at 04:42:19PM +0800, Qingqing Zhou wrote:
>>
>>
>> 在 10/25/2024 2:02 PM, Dmitry Baryshkov 写道:
>>> On Fri, Oct 25, 2024 at 08:37:31AM +0530, Qingqing Zhou wrote:
>>>> Add the SCM node for QCS615 platform. It is an interface to
>>>> communicate to the secure firmware.
>>>>
>>>> Signed-off-by: Qingqing Zhou <quic_qqzhou@quicinc.com>
>>>> ---
>>>>  arch/arm64/boot/dts/qcom/qcs615.dtsi | 7 +++++++
>>>>  1 file changed, 7 insertions(+)
>>>>
>>>> diff --git a/arch/arm64/boot/dts/qcom/qcs615.dtsi b/arch/arm64/boot/dts/qcom/qcs615.dtsi
>>>> index ac4c4c751da1..027c5125f36b 100644
>>>> --- a/arch/arm64/boot/dts/qcom/qcs615.dtsi
>>>> +++ b/arch/arm64/boot/dts/qcom/qcs615.dtsi
>>>> @@ -278,6 +278,13 @@
>>>>  		reg = <0 0x80000000 0 0>;
>>>>  	};
>>>>  
>>>> +	firmware {
>>>> +		scm {
>>>> +			compatible = "qcom,scm-qcs615", "qcom,scm";
>>>> +			qcom,dload-mode = <&tcsr 0x13000>;
>>>
>>> No CRYPTO clock?
>> NO, response from Qualcomm clock team is "the current QCS615 RPMH code does not have the clock support for CE clock", so we don't configure clocks here.
> 
> Is this going to change in future?
NO, from Qualcomm clock team, the clock/BW is handled internally in our trustzone and do not see any requirement change going forward to move the clocks/BW vote to HLOS driver.
> 
>>>
>>>> +		};
>>>> +	};
>>>> +
>>>>  	camnoc_virt: interconnect-0 {
>>>>  		compatible = "qcom,qcs615-camnoc-virt";
>>>>  		#interconnect-cells = <2>;
>>>> -- 
>>>> 2.17.1
>>>>
>>>
>>
> 


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v3 3/4] arm64: dts: qcom: qcs615: add the SCM node
  2024-11-04  7:36         ` Qingqing Zhou
@ 2024-11-04 10:54           ` Dmitry Baryshkov
  0 siblings, 0 replies; 18+ messages in thread
From: Dmitry Baryshkov @ 2024-11-04 10:54 UTC (permalink / raw)
  To: Qingqing Zhou
  Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, robimarko, will,
	robin.murphy, joro, linux-arm-msm, devicetree, linux-kernel,
	iommu

On Mon, Nov 04, 2024 at 03:36:37PM +0800, Qingqing Zhou wrote:
> 
> 
> 在 11/1/2024 2:59 AM, Dmitry Baryshkov 写道:
> > On Wed, Oct 30, 2024 at 04:42:19PM +0800, Qingqing Zhou wrote:
> >>
> >>
> >> 在 10/25/2024 2:02 PM, Dmitry Baryshkov 写道:
> >>> On Fri, Oct 25, 2024 at 08:37:31AM +0530, Qingqing Zhou wrote:
> >>>> Add the SCM node for QCS615 platform. It is an interface to
> >>>> communicate to the secure firmware.
> >>>>
> >>>> Signed-off-by: Qingqing Zhou <quic_qqzhou@quicinc.com>
> >>>> ---
> >>>>  arch/arm64/boot/dts/qcom/qcs615.dtsi | 7 +++++++
> >>>>  1 file changed, 7 insertions(+)
> >>>>
> >>>> diff --git a/arch/arm64/boot/dts/qcom/qcs615.dtsi b/arch/arm64/boot/dts/qcom/qcs615.dtsi
> >>>> index ac4c4c751da1..027c5125f36b 100644
> >>>> --- a/arch/arm64/boot/dts/qcom/qcs615.dtsi
> >>>> +++ b/arch/arm64/boot/dts/qcom/qcs615.dtsi
> >>>> @@ -278,6 +278,13 @@
> >>>>  		reg = <0 0x80000000 0 0>;
> >>>>  	};
> >>>>  
> >>>> +	firmware {
> >>>> +		scm {
> >>>> +			compatible = "qcom,scm-qcs615", "qcom,scm";
> >>>> +			qcom,dload-mode = <&tcsr 0x13000>;
> >>>
> >>> No CRYPTO clock?
> >> NO, response from Qualcomm clock team is "the current QCS615 RPMH code does not have the clock support for CE clock", so we don't configure clocks here.
> > 
> > Is this going to change in future?
> NO, from Qualcomm clock team, the clock/BW is handled internally in our trustzone and do not see any requirement change going forward to move the clocks/BW vote to HLOS driver.

Nit: please wrap your replies at some sensible line length (72-75
chars). Normal email clients do that for you.

For the patch itself:

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>


> > 
> >>>
> >>>> +		};
> >>>> +	};
> >>>> +
> >>>>  	camnoc_virt: interconnect-0 {
> >>>>  		compatible = "qcom,qcs615-camnoc-virt";
> >>>>  		#interconnect-cells = <2>;
> >>>> -- 
> >>>> 2.17.1
> >>>>
> >>>
> >>
> > 
> 

-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2024-11-04 10:54 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-25  3:07 [PATCH v3 0/4] Add support for APPS SMMU on QCS615 Qingqing Zhou
2024-10-25  3:07 ` [PATCH v3 1/4] dt-bindings: firmware: qcom,scm: document QCS615 SCM Qingqing Zhou
2024-10-25  3:07 ` [PATCH v3 2/4] dt-bindings: arm-smmu: document QCS615 APPS SMMU Qingqing Zhou
2024-10-25 12:34   ` Krzysztof Kozlowski
2024-10-25  3:07 ` [PATCH v3 3/4] arm64: dts: qcom: qcs615: add the SCM node Qingqing Zhou
2024-10-25  6:02   ` Dmitry Baryshkov
2024-10-30  8:42     ` Qingqing Zhou
2024-10-31 18:59       ` Dmitry Baryshkov
2024-11-04  7:36         ` Qingqing Zhou
2024-11-04 10:54           ` Dmitry Baryshkov
2024-10-25  3:07 ` [PATCH v3 4/4] arm64: dts: qcom: qcs615: add the APPS SMMU node Qingqing Zhou
2024-10-25  8:54   ` Konrad Dybcio
2024-10-25 11:06     ` Dmitry Baryshkov
2024-10-25 16:45       ` Konrad Dybcio
2024-10-26 18:18         ` Dmitry Baryshkov
2024-10-28 15:46           ` Konrad Dybcio
2024-10-30  8:21             ` Qingqing Zhou
2024-10-29 16:15 ` [PATCH v3 0/4] Add support for APPS SMMU on QCS615 Will Deacon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox