Skip to contentSkip to conversation

Add PAS and MSA based Modem support

PATCH Superseded Sibi Sankar 2 participants 11 messages Apr 17, 2020 – Apr 21, 2020

Subsystems (5)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

cover Add PAS and MSA based Modem support

Add PAS based modem support on SC7180 SoCs and update the device node to support MSA based modem boot.

Patch [1,2] - Add PAS based modem support
Patch [3] - Update reserved memory map
Patch [4,5] - Add PAS/MSA modem nodes

Sibi Sankar (5):
dt-bindings: remoteproc: qcom: Add SC7180 MPSS support
remoteproc: qcom: pas: Add SC7180 Modem support
arm64: dts: qcom: sc7180: Update reserved memory map
arm64: dts: qcom: sc7180: Add Q6V5 MSS node
arm64: dts: qcom: sc7180: Update Q6V5 MSS node

 .../bindings/remoteproc/qcom,adsp.txt         |   3 +
 arch/arm64/boot/dts/qcom/sc7180-idp.dts       | 105 +++++++++++++++
 arch/arm64/boot/dts/qcom/sc7180.dtsi          | 124 +++++++++++++++++-
 drivers/remoteproc/qcom_q6v5_pas.c            |   1 +
 4 files changed, 231 insertions(+), 2 deletions(-)
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
#1 lore raw

PATCH 1/5 dt-bindings: remoteproc: qcom: Add SC7180 MPSS support

Add MPSS PAS support for SC7180 SoCs.

---
 Documentation/devicetree/bindings/remoteproc/qcom,adsp.txt | 3 +++
 1 file changed, 3 insertions(+)
Documentation/devicetree/bindings/remoteproc/qcom,adsp.txt +3 -0
index 9938918b2fea3..22604d2cd3f87 100644
@@ -15,6 +15,7 @@ on the Qualcomm ADSP Hexagon core.
 		    "qcom,qcs404-adsp-pas"
 		    "qcom,qcs404-cdsp-pas"
 		    "qcom,qcs404-wcss-pas"
+		    "qcom,sc7180-mpss-pas"
 		    "qcom,sdm845-adsp-pas"
 		    "qcom,sdm845-cdsp-pas"
 		    "qcom,sm8150-adsp-pas"
@@ -46,6 +47,7 @@ on the Qualcomm ADSP Hexagon core.
 	qcom,sm8150-slpi-pas:
 		    must be "wdog", "fatal", "ready", "handover", "stop-ack"
 	qcom,qcs404-wcss-pas:
+	qcom,sc7180-mpss-pas:
 	qcom,sm8150-mpss-pas:
 		    must be "wdog", "fatal", "ready", "handover", "stop-ack",
 		    "shutdown-ack"
@@ -106,6 +108,7 @@ on the Qualcomm ADSP Hexagon core.
 	qcom,sm8150-adsp-pas:
 	qcom,sm8150-cdsp-pas:
 		    must be "cx", "load_state"
+	qcom,sc7180-mpss-pas:
 	qcom,sm8150-mpss-pas:
 		    must be "cx", "load_state", "mss"
 	qcom,sm8150-slpi-pas:
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
Reviewed-by on v1 1/5
#2 lore raw

Re: [PATCH 1/5] dt-bindings: remoteproc: qcom: Add SC7180 MPSS support

Quoted 3 lines · Sibi Sankar

Add MPSS PAS support for SC7180 SoCs.

Regards,
Bjorn

Quoted 35 lines
---
 Documentation/devicetree/bindings/remoteproc/qcom,adsp.txt | 3 +++
 1 file changed, 3 insertions(+)
Documentation/devicetree/bindings/remoteproc/qcom,adsp.txt +3 -0
index 9938918b2fea3..22604d2cd3f87 100644
@@ -15,6 +15,7 @@ on the Qualcomm ADSP Hexagon core.
 		    "qcom,qcs404-adsp-pas"
 		    "qcom,qcs404-cdsp-pas"
 		    "qcom,qcs404-wcss-pas"
+		    "qcom,sc7180-mpss-pas"
 		    "qcom,sdm845-adsp-pas"
 		    "qcom,sdm845-cdsp-pas"
 		    "qcom,sm8150-adsp-pas"
@@ -46,6 +47,7 @@ on the Qualcomm ADSP Hexagon core.
 	qcom,sm8150-slpi-pas:
 		    must be "wdog", "fatal", "ready", "handover", "stop-ack"
 	qcom,qcs404-wcss-pas:
+	qcom,sc7180-mpss-pas:
 	qcom,sm8150-mpss-pas:
 		    must be "wdog", "fatal", "ready", "handover", "stop-ack",
 		    "shutdown-ack"
@@ -106,6 +108,7 @@ on the Qualcomm ADSP Hexagon core.
 	qcom,sm8150-adsp-pas:
 	qcom,sm8150-cdsp-pas:
 		    must be "cx", "load_state"
+	qcom,sc7180-mpss-pas:
 	qcom,sm8150-mpss-pas:
 		    must be "cx", "load_state", "mss"
 	qcom,sm8150-slpi-pas:
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
#3 lore raw

PATCH 2/5 remoteproc: qcom: pas: Add SC7180 Modem support

In reply to Sibi Sankar

Add support for booting the Modem DSP found on Qualcomm's SC7180 SoCs.

---
 drivers/remoteproc/qcom_q6v5_pas.c | 1 +
 1 file changed, 1 insertion(+)
drivers/remoteproc/qcom_q6v5_pas.c +1 -0
index 7a63efb854052..33b0bff770a7f 100644
@@ -637,6 +637,7 @@ static const struct of_device_id adsp_of_match[] = {
 	{ .compatible = "qcom,qcs404-adsp-pas", .data = &adsp_resource_init },
 	{ .compatible = "qcom,qcs404-cdsp-pas", .data = &cdsp_resource_init },
 	{ .compatible = "qcom,qcs404-wcss-pas", .data = &wcss_resource_init },
+	{ .compatible = "qcom,sc7180-mpss-pas", .data = &mpss_resource_init},
 	{ .compatible = "qcom,sdm845-adsp-pas", .data = &adsp_resource_init},
 	{ .compatible = "qcom,sdm845-cdsp-pas", .data = &cdsp_resource_init},
 	{ .compatible = "qcom,sm8150-adsp-pas", .data = &sm8150_adsp_resource},
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
Reviewed-by on v1 2/5
#4 lore raw

Re: [PATCH 2/5] remoteproc: qcom: pas: Add SC7180 Modem support

Quoted 3 lines · Sibi Sankar

Add support for booting the Modem DSP found on Qualcomm's SC7180 SoCs.

Regards,
Bjorn

Quoted 19 lines
---
 drivers/remoteproc/qcom_q6v5_pas.c | 1 +
 1 file changed, 1 insertion(+)
drivers/remoteproc/qcom_q6v5_pas.c +1 -0
index 7a63efb854052..33b0bff770a7f 100644
@@ -637,6 +637,7 @@ static const struct of_device_id adsp_of_match[] = {
 	{ .compatible = "qcom,qcs404-adsp-pas", .data = &adsp_resource_init },
 	{ .compatible = "qcom,qcs404-cdsp-pas", .data = &cdsp_resource_init },
 	{ .compatible = "qcom,qcs404-wcss-pas", .data = &wcss_resource_init },
+	{ .compatible = "qcom,sc7180-mpss-pas", .data = &mpss_resource_init},
 	{ .compatible = "qcom,sdm845-adsp-pas", .data = &adsp_resource_init},
 	{ .compatible = "qcom,sdm845-cdsp-pas", .data = &cdsp_resource_init},
 	{ .compatible = "qcom,sm8150-adsp-pas", .data = &sm8150_adsp_resource},
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
#5 lore raw

PATCH 3/5 arm64: dts: qcom: sc7180: Update reserved memory map

In reply to Sibi Sankar

Add missing regions and remove unused regions from the reserved memory map, as described in version 5.

---
 arch/arm64/boot/dts/qcom/sc7180-idp.dts | 63 +++++++++++++++++++
 arch/arm64/boot/dts/qcom/sc7180.dtsi    | 83 ++++++++++++++++++++++++-
 2 files changed, 144 insertions(+), 2 deletions(-)
arch/arm64/boot/dts/qcom/sc7180-idp.dts +63 -0
index 17eadd80f15de..e613d70cc0198 100644
@@ -28,6 +28,69 @@ chosen {
 	};
 };
 
+/*
+ * Reserved memory changes
+ *
+ * Keep all modifications to the memory map (from sc7180.dtsi) in one place.
+ * Delete all unused memory nodes and re-create atf_mem/venus_mem/camera_mem
+ * and wlan_mem memory nodes.
+ *
+ */
+
+/delete-node/ &hyp_mem;
+/delete-node/ &xbl_mem;
+/delete-node/ &aop_mem;
+/delete-node/ &sec_apps_mem;
+/delete-node/ &tz_mem;
+/delete-node/ &camera_mem;
+/delete-node/ &npu_mem;
+/delete-node/ &venus_mem;
+/delete-node/ &cdsp_mem;
+/delete-node/ &adsp_mem;
+/delete-node/ &wlan_mem;
+/delete-node/ &ipa_fw_mem;
+/delete-node/ &ipa_gsi_mem;
+/delete-node/ &gpu_mem;
+
+/* Increase the size from 132 MB to 140 MB */
+&mpss_mem {
+	reg = <0x0 0x86000000 0x0 0x8c00000>;
+};
+
+/* Increase the size from 2MB to 8MB */
+&rmtfs_mem {
+	reg = <0x0 0x84400000 0x0 0x800000>;
+};
+
+/ {
+	reserved-memory {
+		atf_mem: memory@80b00000 {
+			reg = <0x0 0x80b00000 0x0 0x100000>;
+			no-map;
+		};
+
+		camera_mem: memory@8ec00000 {
+			reg = <0x0 0x8ec00000 0x0 0x500000>;
+			no-map;
+		};
+
+		venus_mem: memory@8f600000 {
+			reg = <0 0x8f600000 0 0x500000>;
+			no-map;
+		};
+
+		wlan_mem: memory@94100000 {
+			reg = <0x0 0x94100000 0x0 0x200000>;
+			no-map;
+		};
+
+		mba_mem: memory@94400000 {
+			reg = <0x0 0x94400000 0x0 0x200000>;
+			no-map;
+		};
+	};
+};
+
 &apps_rsc {
 	pm6150-rpmh-regulators {
 		compatible = "qcom,pm6150-rpmh-regulators";
arch/arm64/boot/dts/qcom/sc7180.dtsi +81 -2

99 lines not on this page · raw message

Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
#6 lore raw

Re: [PATCH 3/5] arm64: dts: qcom: sc7180: Update reserved memory map

Quoted 3 lines · Sibi Sankar

Add missing regions and remove unused regions from the reserved memory map, as described in version 5.

Your patch looks good, but I'm quite unhappy with the way these turns out and we have been ignoring the fact that different devices on the same platform (with TZ) might come with different firmware versions and hence different layout of the peripheral memory region.

So how about pushing out at least the peripheral regions to the device's dts (the others are pretty much static, except when using coreboot)? That should reduce your patch to 4(?) delete-nodes?

Regards,
Bjorn

Quoted 187 lines
---
 arch/arm64/boot/dts/qcom/sc7180-idp.dts | 63 +++++++++++++++++++
 arch/arm64/boot/dts/qcom/sc7180.dtsi    | 83 ++++++++++++++++++++++++-
 2 files changed, 144 insertions(+), 2 deletions(-)
arch/arm64/boot/dts/qcom/sc7180-idp.dts +63 -0
index 17eadd80f15de..e613d70cc0198 100644
@@ -28,6 +28,69 @@ chosen {
 	};
 };
 
+/*
+ * Reserved memory changes
+ *
+ * Keep all modifications to the memory map (from sc7180.dtsi) in one place.
+ * Delete all unused memory nodes and re-create atf_mem/venus_mem/camera_mem
+ * and wlan_mem memory nodes.
+ *
+ */
+
+/delete-node/ &hyp_mem;
+/delete-node/ &xbl_mem;
+/delete-node/ &aop_mem;
+/delete-node/ &sec_apps_mem;
+/delete-node/ &tz_mem;
+/delete-node/ &camera_mem;
+/delete-node/ &npu_mem;
+/delete-node/ &venus_mem;
+/delete-node/ &cdsp_mem;
+/delete-node/ &adsp_mem;
+/delete-node/ &wlan_mem;
+/delete-node/ &ipa_fw_mem;
+/delete-node/ &ipa_gsi_mem;
+/delete-node/ &gpu_mem;
+
+/* Increase the size from 132 MB to 140 MB */
+&mpss_mem {
+	reg = <0x0 0x86000000 0x0 0x8c00000>;
+};
+
+/* Increase the size from 2MB to 8MB */
+&rmtfs_mem {
+	reg = <0x0 0x84400000 0x0 0x800000>;
+};
+
+/ {
+	reserved-memory {
+		atf_mem: memory@80b00000 {
+			reg = <0x0 0x80b00000 0x0 0x100000>;
+			no-map;
+		};
+
+		camera_mem: memory@8ec00000 {
+			reg = <0x0 0x8ec00000 0x0 0x500000>;
+			no-map;
+		};
+
+		venus_mem: memory@8f600000 {
+			reg = <0 0x8f600000 0 0x500000>;
+			no-map;
+		};
+
+		wlan_mem: memory@94100000 {
+			reg = <0x0 0x94100000 0x0 0x200000>;
+			no-map;
+		};
+
+		mba_mem: memory@94400000 {
+			reg = <0x0 0x94400000 0x0 0x200000>;
+			no-map;
+		};
+	};
+};
+
 &apps_rsc {
 	pm6150-rpmh-regulators {
 		compatible = "qcom,pm6150-rpmh-regulators";
arch/arm64/boot/dts/qcom/sc7180.dtsi +81 -2
index 853ba6e8a53ca..f73ffd74d4fcd 100644
@@ -69,18 +69,97 @@ reserved_memory: reserved-memory {
 		#size-cells = <2>;
 		ranges;
 
+		hyp_mem: memory@80000000 {
+			reg = <0x0 0x80000000 0x0 0x600000>;
+			no-map;
+		};
+
+		xbl_mem: memory@80600000 {
+			reg = <0x0 0x80600000 0x0 0x200000>;
+			no-map;
+		};
+
+		aop_mem: memory@80800000 {
+			reg = <0x0 0x80800000 0x0 0x20000>;
+			no-map;
+		};
+
 		aop_cmd_db_mem: memory@80820000 {
 			reg = <0x0 0x80820000 0x0 0x20000>;
 			compatible = "qcom,cmd-db";
 		};
 
+		sec_apps_mem: memory@808ff000 {
+			reg = <0x0 0x808ff000 0x0 0x1000>;
+			no-map;
+		};
+
 		smem_mem: memory@80900000 {
 			reg = <0x0 0x80900000 0x0 0x200000>;
 			no-map;
 		};
 
-		venus_mem: memory@8f600000 {
-			reg = <0 0x8f600000 0 0x500000>;
+		tz_mem: memory@80b00000 {
+			reg = <0x0 0x80b00000 0x0 0x3900000>;
+			no-map;
+		};
+
+		rmtfs_mem: memory@84400000 {
+			compatible = "qcom,rmtfs-mem";
+			reg = <0x0 0x84400000 0x0 0x200000>;
+			no-map;
+
+			qcom,client-id = <1>;
+			qcom,vmid = <15>;
+		};
+
+		mpss_mem: memory@86000000 {
+			reg = <0x0 0x86000000 0x0 0x8400000>;
+			no-map;
+		};
+
+		camera_mem: memory@8e400000 {
+			reg = <0x0 0x8e400000 0x0 0x500000>;
+			no-map;
+		};
+
+		npu_mem: memory@8e900000 {
+			reg = <0x0 0x8e900000 0x0 0x500000>;
+			no-map;
+		};
+
+		venus_mem: memory@8ee00000 {
+			reg = <0x0 0x8ee00000 0x0 0x500000>;
+			no-map;
+		};
+
+		cdsp_mem: memory@8f300000 {
+			reg = <0x0 0x8f300000 0x0 0x1e00000>;
+			no-map;
+		};
+
+		adsp_mem: memory@91100000 {
+			reg = <0x0 0x91100000 0x0 0x2800000>;
+			no-map;
+		};
+
+		wlan_mem: memory@93900000 {
+			reg = <0x0 0x93900000 0x0 0x200000>;
+			no-map;
+		};
+
+		ipa_fw_mem: memory@93b00000 {
+			reg = <0x0 0x93b00000 0x0 0x10000>;
+			no-map;
+		};
+
+		ipa_gsi_mem: memory@93b10000 {
+			reg = <0x0 0x93b10000 0x0 0x5000>;
+			no-map;
+		};
+
+		gpu_mem: memory@93b15000 {
+			reg = <0x0 0x93b15000 0x0 0x2000>;
 			no-map;
 		};
 	};
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
#7 lore raw

PATCH 4/5 arm64: dts: qcom: sc7180: Add Q6V5 MSS node

In reply to Sibi Sankar

This patch adds Q6V5 MSS PAS remoteproc node for SC7180 SoCs.

---
 arch/arm64/boot/dts/qcom/sc7180.dtsi | 36 ++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)
arch/arm64/boot/dts/qcom/sc7180.dtsi +36 -0
index f73ffd74d4fcd..e319762a0bffc 100644
@@ -1372,6 +1372,42 @@ sd-cd {
 			};
 		};
 
+		remoteproc_mpss: remoteproc@4080000 {
+			compatible = "qcom,sc7180-mpss-pas";
+			reg = <0x0 0x04080000 0x0 0x4040>;
+
+			interrupts-extended = <&intc GIC_SPI 266 IRQ_TYPE_EDGE_RISING>,
+					      <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+					      <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
+					      <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
+					      <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
+					      <&modem_smp2p_in 7 IRQ_TYPE_EDGE_RISING>;
+			interrupt-names = "wdog", "fatal", "ready", "handover",
+					  "stop-ack", "shutdown-ack";
+
+			clocks = <&rpmhcc RPMH_CXO_CLK>;
+			clock-names = "xo";
+
+			power-domains = <&aoss_qmp AOSS_QMP_LS_MODEM>,
+					<&rpmhpd SC7180_CX>,
+					<&rpmhpd SC7180_MSS>;
+			power-domain-names = "load_state", "cx", "mss";
+
+			memory-region = <&mpss_mem>;
+
+			qcom,smem-states = <&modem_smp2p_out 0>;
+			qcom,smem-state-names = "stop";
+
+			status = "disabled";
+
+			glink-edge {
+				interrupts = <GIC_SPI 449 IRQ_TYPE_EDGE_RISING>;
+				label = "modem";
+				qcom,remote-pid = <1>;
+				mboxes = <&apss_shared 12>;
+			};
+		};
+
 		sdhc_2: sdhci@8804000 {
 			compatible = "qcom,sc7180-sdhci", "qcom,sdhci-msm-v5";
 			reg = <0 0x08804000 0 0x1000>;
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
#8 lore raw

PATCH 5/5 arm64: dts: qcom: sc7180: Update Q6V5 MSS node

In reply to Sibi Sankar

Add TCSR node and update MSS node to support MSA based Modem boot on SC7180 SoCs.

---

Depends on the following bindings:
iommus: https://patchwork.kernel.org/patch/11443101/
spare-regs: https://patchwork.kernel.org/patch/11491425/

 arch/arm64/boot/dts/qcom/sc7180-idp.dts | 42 +++++++++++++++++++++++++
 arch/arm64/boot/dts/qcom/sc7180.dtsi    |  5 +++
 2 files changed, 47 insertions(+)
arch/arm64/boot/dts/qcom/sc7180-idp.dts +42 -0
index e613d70cc0198..6f472872be1a3 100644
@@ -319,6 +319,48 @@ &qupv3_id_1 {
 	status = "okay";
 };
 
+&remoteproc_mpss {
+	compatible = "qcom,sc7180-mss-pil";
+	reg = <0 0x04080000 0 0x410>, <0 0x04180000 0 0x48>;
+	reg-names = "qdsp6", "rmb";
+
+	clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
+		 <&gcc GCC_MSS_Q6_MEMNOC_AXI_CLK>,
+		 <&gcc GCC_MSS_NAV_AXI_CLK>,
+		 <&gcc GCC_MSS_SNOC_AXI_CLK>,
+		 <&gcc GCC_MSS_MFAB_AXIS_CLK>,
+		 <&rpmhcc RPMH_CXO_CLK>;
+	clock-names = "iface", "bus", "nav", "snoc_axi",
+		      "mnoc_axi", "xo";
+
+	iommus = <&apps_smmu 0x460 0x1>, <&apps_smmu 0x444 0x2>;
+
+	resets = <&aoss_reset AOSS_CC_MSS_RESTART>,
+		 <&pdc_reset PDC_MODEM_SYNC_RESET>;
+	reset-names = "mss_restart", "pdc_reset";
+
+	qcom,halt-regs = <&tcsr_mutex_regs 0x23000 0x25000 0x24000>;
+	qcom,spare-regs = <&tcsr_regs 0xb3e4>;
+
+	power-domains = <&aoss_qmp AOSS_QMP_LS_MODEM>,
+			<&rpmhpd SC7180_CX>,
+			<&rpmhpd SC7180_MX>,
+			<&rpmhpd SC7180_MSS>;
+	power-domain-names = "load_state", "cx", "mx", "mss";
+
+	/delete-property/memory-region;
+
+	status = "okay";
+
+	mba {
+		memory-region = <&mba_mem>;
+	};
+
+	mpss {
+		memory-region = <&mpss_mem>;
+	};
+};
+
 &uart3 {
 	status = "okay";
 
arch/arm64/boot/dts/qcom/sc7180.dtsi +5 -0
index e319762a0bffc..c49801ddb9d70 100644
@@ -981,6 +981,11 @@ tcsr_mutex_regs: syscon@1f40000 {
 			reg = <0 0x01f40000 0 0x40000>;
 		};
 
+		tcsr_regs: syscon@1fc0000 {
+			compatible = "syscon";
+			reg = <0 0x01fc0000 0 0x40000>;
+		};
+
 		tlmm: pinctrl@3500000 {
 			compatible = "qcom,sc7180-pinctrl";
 			reg = <0 0x03500000 0 0x300000>,
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
#9 lore raw

Re: [PATCH 5/5] arm64: dts: qcom: sc7180: Update Q6V5 MSS node

Quoted 19 lines · Sibi Sankar

Add TCSR node and update MSS node to support MSA based Modem boot on SC7180 SoCs.

---

Depends on the following bindings:
iommus: https://patchwork.kernel.org/patch/11443101/
spare-regs: https://patchwork.kernel.org/patch/11491425/

 arch/arm64/boot/dts/qcom/sc7180-idp.dts | 42 +++++++++++++++++++++++++
 arch/arm64/boot/dts/qcom/sc7180.dtsi    |  5 +++
 2 files changed, 47 insertions(+)
arch/arm64/boot/dts/qcom/sc7180-idp.dts +0 -0
index e613d70cc0198..6f472872be1a3 100644

arch/arm64/boot/dts/qcom/sc7180-idp.dts &qupv3_id_1 { · line 324

Quoted 6 lines
arch/arm64/boot/dts/qcom/sc7180-idp.dts +3 -0
@@ -319,6 +319,48 @@ &qupv3_id_1 {
 	status = "okay";
 };
 
+&remoteproc_mpss {
+	compatible = "qcom,sc7180-mss-pil";
+	reg = <0 0x04080000 0 0x410>, <0 0x04180000 0 0x48>;

I think we should overspecify the properties in the platform dtsi, whenever possible - it shouldn't be a problem that the pas driver doesn't use all the properties provided by the binding.

As such I think you should move the reg, clocks, resets, halt regs and power-domains to the platform.

Quoted 22 lines
arch/arm64/boot/dts/qcom/sc7180-idp.dts +22 -0
+	reg-names = "qdsp6", "rmb";
+
+	clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
+		 <&gcc GCC_MSS_Q6_MEMNOC_AXI_CLK>,
+		 <&gcc GCC_MSS_NAV_AXI_CLK>,
+		 <&gcc GCC_MSS_SNOC_AXI_CLK>,
+		 <&gcc GCC_MSS_MFAB_AXIS_CLK>,
+		 <&rpmhcc RPMH_CXO_CLK>;
+	clock-names = "iface", "bus", "nav", "snoc_axi",
+		      "mnoc_axi", "xo";
+
+	iommus = <&apps_smmu 0x460 0x1>, <&apps_smmu 0x444 0x2>;
+
+	resets = <&aoss_reset AOSS_CC_MSS_RESTART>,
+		 <&pdc_reset PDC_MODEM_SYNC_RESET>;
+	reset-names = "mss_restart", "pdc_reset";
+
+	qcom,halt-regs = <&tcsr_mutex_regs 0x23000 0x25000 0x24000>;
+	qcom,spare-regs = <&tcsr_regs 0xb3e4>;
+
+	power-domains = <&aoss_qmp AOSS_QMP_LS_MODEM>,
+			<&rpmhpd SC7180_CX>,

arch/arm64/boot/dts/qcom/sc7180-idp.dts &qupv3_id_1 { · line 356

Quoted 10 lines
arch/arm64/boot/dts/qcom/sc7180-idp.dts +10 -0
+			<&rpmhpd SC7180_MX>,
+			<&rpmhpd SC7180_MSS>;
+	power-domain-names = "load_state", "cx", "mx", "mss";
+
+	/delete-property/memory-region;
+
+	status = "okay";
+
+	mba {
+		memory-region = <&mba_mem>;

When I wrote this I was under the impression that memory-region wasn't allowed to take an array of regions, perhaps we can make the mss binding and driver support a multi-cell memory-region in the of_node directly and drop these sub children.

Then it would be a cleaner update of the pas' memory-region.

But I'm fine with us putting this part on the todo list for the time being...

Regards,
Bjorn

Quoted 29 lines
arch/arm64/boot/dts/qcom/sc7180-idp.dts +7 -0
+	};
+
+	mpss {
+		memory-region = <&mpss_mem>;
+	};
+};
+
 &uart3 {
 	status = "okay";
 
arch/arm64/boot/dts/qcom/sc7180.dtsi +5 -0
index e319762a0bffc..c49801ddb9d70 100644
@@ -981,6 +981,11 @@ tcsr_mutex_regs: syscon@1f40000 {
 			reg = <0 0x01f40000 0 0x40000>;
 		};
 
+		tcsr_regs: syscon@1fc0000 {
+			compatible = "syscon";
+			reg = <0 0x01fc0000 0 0x40000>;
+		};
+
 		tlmm: pinctrl@3500000 {
 			compatible = "qcom,sc7180-pinctrl";
 			reg = <0 0x03500000 0 0x300000>,
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
#10 lore raw

Re: [PATCH 5/5] arm64: dts: qcom: sc7180: Update Q6V5 MSS node

Hey Bjorn,

Thanks for reviewing the series!
Addressed all the review comments
in v3.

Quoted 74 lines · Bjorn Andersson
Quoted 20 lines · Sibi Sankar

Add TCSR node and update MSS node to support MSA based Modem boot on SC7180 SoCs.

---

Depends on the following bindings:
iommus: https://patchwork.kernel.org/patch/11443101/
spare-regs: https://patchwork.kernel.org/patch/11491425/

 arch/arm64/boot/dts/qcom/sc7180-idp.dts | 42 
+++++++++++++++++++++++++
 arch/arm64/boot/dts/qcom/sc7180.dtsi    |  5 +++
 2 files changed, 47 insertions(+)
arch/arm64/boot/dts/qcom/sc7180-idp.dts +0 -0
index e613d70cc0198..6f472872be1a3 100644

arch/arm64/boot/dts/qcom/sc7180-idp.dts &qupv3_id_1 { · line 324

Quoted 6 lines
arch/arm64/boot/dts/qcom/sc7180-idp.dts +3 -0
@@ -319,6 +319,48 @@ &qupv3_id_1 {
 	status = "okay";
 };
 
+&remoteproc_mpss {
+	compatible = "qcom,sc7180-mss-pil";
+	reg = <0 0x04080000 0 0x410>, <0 0x04180000 0 0x48>;

I think we should overspecify the properties in the platform dtsi, whenever possible - it shouldn't be a problem that the pas driver doesn't use all the properties provided by the binding.

As such I think you should move the reg, clocks, resets, halt regs and power-domains to the platform.

Quoted 22 lines
arch/arm64/boot/dts/qcom/sc7180-idp.dts +22 -0
+	reg-names = "qdsp6", "rmb";
+
+	clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
+		 <&gcc GCC_MSS_Q6_MEMNOC_AXI_CLK>,
+		 <&gcc GCC_MSS_NAV_AXI_CLK>,
+		 <&gcc GCC_MSS_SNOC_AXI_CLK>,
+		 <&gcc GCC_MSS_MFAB_AXIS_CLK>,
+		 <&rpmhcc RPMH_CXO_CLK>;
+	clock-names = "iface", "bus", "nav", "snoc_axi",
+		      "mnoc_axi", "xo";
+
+	iommus = <&apps_smmu 0x460 0x1>, <&apps_smmu 0x444 0x2>;
+
+	resets = <&aoss_reset AOSS_CC_MSS_RESTART>,
+		 <&pdc_reset PDC_MODEM_SYNC_RESET>;
+	reset-names = "mss_restart", "pdc_reset";
+
+	qcom,halt-regs = <&tcsr_mutex_regs 0x23000 0x25000 0x24000>;
+	qcom,spare-regs = <&tcsr_regs 0xb3e4>;
+
+	power-domains = <&aoss_qmp AOSS_QMP_LS_MODEM>,
+			<&rpmhpd SC7180_CX>,

arch/arm64/boot/dts/qcom/sc7180-idp.dts &qupv3_id_1 { · line 356

Quoted 10 lines
arch/arm64/boot/dts/qcom/sc7180-idp.dts +10 -0
+			<&rpmhpd SC7180_MX>,
+			<&rpmhpd SC7180_MSS>;
+	power-domain-names = "load_state", "cx", "mx", "mss";
+
+	/delete-property/memory-region;
+
+	status = "okay";
+
+	mba {
+		memory-region = <&mba_mem>;

When I wrote this I was under the impression that memory-region wasn't allowed to take an array of regions, perhaps we can make the mss binding and driver support a multi-cell memory-region in the of_node directly and drop these sub children.

Quoted 4 lines

Then it would be a cleaner update of the pas' memory-region.

But I'm fine with us putting this part on the todo list for the time being...

I've switched to using memory-region
in v3. I'll plan to convert the doc
to yaml after the remaining bindings
changes land.

Quoted 33 lines

Regards,
Bjorn

Quoted 29 lines
arch/arm64/boot/dts/qcom/sc7180-idp.dts +7 -0
+	};
+
+	mpss {
+		memory-region = <&mpss_mem>;
+	};
+};
+
 &uart3 {
 	status = "okay";
 
arch/arm64/boot/dts/qcom/sc7180.dtsi +5 -1
index e319762a0bffc..c49801ddb9d70 100644
@@ -981,6 +981,11 @@ tcsr_mutex_regs: syscon@1f40000 {
 			reg = <0 0x01f40000 0 0x40000>;
 		};
 
+		tcsr_regs: syscon@1fc0000 {
+			compatible = "syscon";
+			reg = <0 0x01fc0000 0 0x40000>;
+		};
+
 		tlmm: pinctrl@3500000 {
 			compatible = "qcom,sc7180-pinctrl";
 			reg = <0 0x03500000 0 0x300000>,
--

The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project

Signature · 2 lines
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project.