Skip to contentSkip to conversation

arm64: dts: qcom: sdm845: Add Q6V5 MSS node

PATCH Superseded Sibi Sankar 3 participants 3 messages Jan 9, 2019 – Jan 12, 2019

Subsystems (3)

v5 of 6 Superseded Latest is v6 →

lore
Share & tools
lore
#0 lore raw

PATCH v5 8/8 arm64: dts: qcom: sdm845: Add Q6V5 MSS node

This patch adds Q6V5 MSS remoteproc node for SDM845 SoCs.

---

v5:
* Use qmp_aop updated dt binding

v3:
* with shutdown-ack irq redesign make it mandatory, merge multiple patches into a single one

v2:
* Fixed style changes
* Added missing clocks in the dt-bindings
* Split mss remoteproc node into a number of patches

This patch depends on the following bindings:
https://patchwork.kernel.org/patch/10662089/ - mba/mpss reserved regions
https://patchwork.kernel.org/patch/10657325/ - pdc reset node
https://patchwork.kernel.org/patch/10753659/ - rpmhpd dt node
https://patchwork.kernel.org/patch/10749469/ - AOP QMP dt bindings
https://patchwork.kernel.org/patch/10751757/ - shutdown-irq binding

 arch/arm64/boot/dts/qcom/sdm845.dtsi | 60 ++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)
arch/arm64/boot/dts/qcom/sdm845.dtsi +60 -0
index 5da9fa1feb8a..e021b15f87fd 100644
@@ -1366,6 +1366,66 @@
 			};
 		};
 
+		remoteproc@4080000 {
+			compatible = "qcom,sdm845-mss-pil";
+			reg = <0x04080000 0x408>, <0x04180000 0x48>;
+			reg-names = "qdsp6", "rmb";
+
+			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 = <&gcc GCC_MSS_CFG_AHB_CLK>,
+				 <&gcc GCC_MSS_Q6_MEMNOC_AXI_CLK>,
+				 <&gcc GCC_BOOT_ROM_AHB_CLK>,
+				 <&gcc GCC_MSS_GPLL0_DIV_CLK_SRC>,
+				 <&gcc GCC_MSS_SNOC_AXI_CLK>,
+				 <&gcc GCC_MSS_MFAB_AXIS_CLK>,
+				 <&gcc GCC_PRNG_AHB_CLK>,
+				 <&rpmhcc RPMH_CXO_CLK>;
+			clock-names = "iface", "bus", "mem", "gpll0_mss",
+				      "snoc_axi", "mnoc_axi", "prng", "xo";
+
+			qcom,smem-states = <&modem_smp2p_out 0>;
+			qcom,smem-state-names = "stop";
+
+			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>;
+
+			power-domains = <&aoss_qmp AOSS_QMP_LS_MODEM>,
+					<&rpmhpd SDM845_CX>,
+					<&rpmhpd SDM845_MX>,
+					<&rpmhpd SDM845_MSS>;
+			power-domain-names = "load_state", "cx", "mx", "mss";
+
+			mba {
+				memory-region = <&mba_region>;
+			};
+
+			mpss {
+				memory-region = <&mpss_region>;
+			};
+
+			glink-edge {
+				interrupts = <GIC_SPI 449 IRQ_TYPE_EDGE_RISING>;
+				label = "modem";
+				qcom,remote-pid = <1>;
+				mboxes = <&apss_shared 12>;
+				mbox-names = "mpss_smem";
+			};
+		};
+
 		usb_1_hsphy: phy@88e2000 {
 			compatible = "qcom,sdm845-qusb2-phy";
 			reg = <0x88e2000 0x400>;
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
#1 lore raw

Hi,

Quoted 9 lines · Sibi Sankar

This patch adds Q6V5 MSS remoteproc node for SDM845 SoCs.

---

v5:
* Use qmp_aop updated dt binding

nit: since this is now a singleton patch in v5 (because patches #1 - #7 landed), the general policy is to drop the "8/8" in the subject. AKA I believe the subject of the patch ought to have been:

[PATCH v5] arm64: dts: qcom: sdm845: Add Q6V5 MSS node

Quoted 24 lines

v3:
* with shutdown-ack irq redesign make it mandatory, merge multiple patches into a single one

v2:
* Fixed style changes
* Added missing clocks in the dt-bindings
* Split mss remoteproc node into a number of patches

This patch depends on the following bindings:
https://patchwork.kernel.org/patch/10662089/ - mba/mpss reserved regions
https://patchwork.kernel.org/patch/10657325/ - pdc reset node
https://patchwork.kernel.org/patch/10753659/ - rpmhpd dt node
https://patchwork.kernel.org/patch/10749469/ - AOP QMP dt bindings
https://patchwork.kernel.org/patch/10751757/ - shutdown-irq binding

 arch/arm64/boot/dts/qcom/sdm845.dtsi | 60 ++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)
arch/arm64/boot/dts/qcom/sdm845.dtsi +0 -0
index 5da9fa1feb8a..e021b15f87fd 100644

arch/arm64/boot/dts/qcom/sdm845.dtsi line 1369

Quoted 4 lines
arch/arm64/boot/dts/qcom/sdm845.dtsi +1 -0
@@ -1366,6 +1366,66 @@
                        };
                };
 
+               remoteproc@4080000 {

It would be handy if you added a label here, AKA:

mss_pil: remoteproc@4080000 {

It's expected that boards will need to refer to this node so that they can provide a firmware-name, so you need to give them a label to grab onto.

...and actually, I wonder if boards will also need to be able to set status = "okay"? Right now they don't because you don't have a status = "disabled" in sdm845.dtsi, but maybe you should? Are there ever going to be any boards with sdm845 that don't hook up the modem?

-Doug

#2 lore raw
Quoted 51 lines · Doug Anderson

Hi,

Quoted 9 lines · Sibi Sankar

This patch adds Q6V5 MSS remoteproc node for SDM845 SoCs.

---

v5:
* Use qmp_aop updated dt binding

nit: since this is now a singleton patch in v5 (because patches #1 - #7 landed), the general policy is to drop the "8/8" in the subject. AKA I believe the subject of the patch ought to have been:

[PATCH v5] arm64: dts: qcom: sdm845: Add Q6V5 MSS node

Quoted 24 lines

v3:
* with shutdown-ack irq redesign make it mandatory, merge multiple patches into a single one

v2:
* Fixed style changes
* Added missing clocks in the dt-bindings
* Split mss remoteproc node into a number of patches

This patch depends on the following bindings:
https://patchwork.kernel.org/patch/10662089/ - mba/mpss reserved regions
https://patchwork.kernel.org/patch/10657325/ - pdc reset node
https://patchwork.kernel.org/patch/10753659/ - rpmhpd dt node
https://patchwork.kernel.org/patch/10749469/ - AOP QMP dt bindings
https://patchwork.kernel.org/patch/10751757/ - shutdown-irq binding

 arch/arm64/boot/dts/qcom/sdm845.dtsi | 60 ++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)
arch/arm64/boot/dts/qcom/sdm845.dtsi +0 -0
index 5da9fa1feb8a..e021b15f87fd 100644

arch/arm64/boot/dts/qcom/sdm845.dtsi line 1369

Quoted 4 lines
arch/arm64/boot/dts/qcom/sdm845.dtsi +1 -0
@@ -1366,6 +1366,66 @@
                        };
                };
 
+               remoteproc@4080000 {

It would be handy if you added a label here, AKA:

Quoted 6 lines

mss_pil: remoteproc@4080000 {

It's expected that boards will need to refer to this node so that they can provide a firmware-name, so you need to give them a label to grab onto.

I agree.

Quoted 5 lines

...and actually, I wonder if boards will also need to be able to set status = "okay"? Right now they don't because you don't have a status = "disabled" in sdm845.dtsi, but maybe you should? Are there ever going to be any boards with sdm845 that don't hook up the modem?

The modem is status "ok" on my SDA845 device (but haven't verified upstream myself yet), so I think it's fine to leave it enabled.

But merging this as is will cause the modem to crash repeatedly until rmtfs is present. Sibi is making progress on tying this to rmtfs, which would be accompanied by the following commit:

https://lore.kernel.org/lkml/[email protected]/

I'm okay with merging that now, to unblock the merge of this patch. Would appreciate an Ack on this.

Also, Sibi, the glink-edge binding doesn't define the mbox-names property, so please drop it.

Regards,
Bjorn