Message ID | 20230521222852.5740-14-quic_mmanikan@quicinc.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Series | Add multipd remoteproc support | expand |
On 22/05/2023 00:28, Manikanta Mylavarapu wrote: > Enable nodes required for multipd remoteproc bring up. > > Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com> > --- > Changes in V2: > - Corrected syntax like alignmnet and kept nodes in sorted order. > - Added 'firmware-name' property. > > arch/arm64/boot/dts/qcom/ipq9574.dtsi | 118 ++++++++++++++++++++++++++ > 1 file changed, 118 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi > index 0e04549c69a5..ff0da53ba05f 100644 > --- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi > +++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi > @@ -160,6 +160,11 @@ > no-map; > }; > > + q6_region: wcnss@4ab00000 { > + reg = <0x0 0x4ab00000 0x0 0x2b00000>; > + no-map; > + }; > + > smem@4aa00000 { > compatible = "qcom,smem"; > reg = <0x0 0x4aa00000 0x0 0x00100000>; > @@ -697,6 +702,95 @@ > }; > }; > > + q6v5_wcss: remoteproc@cd00000 { > + compatible = "qcom,ipq9574-q6-mpd"; > + reg = <0x0cd00000 0x4040>; > + firmware-name = "IPQ9574/q6_fw.mdt", > + "IPQ9574/m3_fw.mdt"; Here and... > + interrupts-extended = <&intc GIC_SPI 325 IRQ_TYPE_EDGE_RISING>, > + <&wcss_smp2p_in 0 0>, > + <&wcss_smp2p_in 1 0>, > + <&wcss_smp2p_in 2 0>, > + <&wcss_smp2p_in 3 0>; > + interrupt-names = "wdog", > + "fatal", > + "ready", > + "handover", > + "stop-ack"; > + > + qcom,smem-states = <&wcss_smp2p_out 0>, > + <&wcss_smp2p_out 1>; > + qcom,smem-state-names = "shutdown", > + "stop"; > + memory-region = <&q6_region>; > + > + glink-edge { > + interrupts = <GIC_SPI 321 IRQ_TYPE_EDGE_RISING>; > + label = "rtr"; > + qcom,remote-pid = <1>; > + mboxes = <&apcs_glb 8>; > + }; > + > + pd-1 { > + compatible = "qcom,ipq9574-wcss-ahb-mpd"; > + firmware-name = "IPQ9574/q6_fw.mdt"; ... here - why do you have firmware in both places? > + interrupts-extended = <&wcss_smp2p_in 8 0>, > + <&wcss_smp2p_in 9 0>, > + <&wcss_smp2p_in 12 0>, > + <&wcss_smp2p_in 11 0>; > + interrupt-names = "fatal", > + "ready", > + "spawn-ack", > + "stop-ack"; > + qcom,smem-states = <&wcss_smp2p_out 8>, > + <&wcss_smp2p_out 9>, > + <&wcss_smp2p_out 10>; > + qcom,smem-state-names = "shutdown", > + "stop", > + "spawn"; > + }; > + > + pd-2 { > + compatible = "qcom,ipq5018-wcss-pcie-mpd"; This compatible is confusing for this device. Best regards, Krzysztof
On 6/27/2023 1:14 PM, Manikanta Mylavarapu wrote: > > > On 6/24/2023 12:31 PM, Krzysztof Kozlowski wrote: >> On 22/05/2023 00:28, Manikanta Mylavarapu wrote: >>> Enable nodes required for multipd remoteproc bring up. >>> >>> Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com> >>> --- >>> Changes in V2: >>> - Corrected syntax like alignmnet and kept nodes in sorted order. >>> - Added 'firmware-name' property. >>> >>> arch/arm64/boot/dts/qcom/ipq9574.dtsi | 118 ++++++++++++++++++++++++++ >>> 1 file changed, 118 insertions(+) >>> >>> diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi >>> b/arch/arm64/boot/dts/qcom/ipq9574.dtsi >>> index 0e04549c69a5..ff0da53ba05f 100644 >>> --- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi >>> +++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi >>> @@ -160,6 +160,11 @@ >>> no-map; >>> }; >>> >>> + q6_region: wcnss@4ab00000 { >>> + reg = <0x0 0x4ab00000 0x0 0x2b00000>; >>> + no-map; >>> + }; >>> + >>> smem@4aa00000 { >>> compatible = "qcom,smem"; >>> reg = <0x0 0x4aa00000 0x0 0x00100000>; >>> @@ -697,6 +702,95 @@ >>> }; >>> }; >>> >>> + q6v5_wcss: remoteproc@cd00000 { >>> + compatible = "qcom,ipq9574-q6-mpd"; >>> + reg = <0x0cd00000 0x4040>; >>> + firmware-name = "IPQ9574/q6_fw.mdt", >>> + "IPQ9574/m3_fw.mdt"; >> >> Here and... >> >>> + interrupts-extended = <&intc GIC_SPI 325 >>> IRQ_TYPE_EDGE_RISING>, >>> + <&wcss_smp2p_in 0 0>, >>> + <&wcss_smp2p_in 1 0>, >>> + <&wcss_smp2p_in 2 0>, >>> + <&wcss_smp2p_in 3 0>; >>> + interrupt-names = "wdog", >>> + "fatal", >>> + "ready", >>> + "handover", >>> + "stop-ack"; >>> + >>> + qcom,smem-states = <&wcss_smp2p_out 0>, >>> + <&wcss_smp2p_out 1>; >>> + qcom,smem-state-names = "shutdown", >>> + "stop"; >>> + memory-region = <&q6_region>; >>> + >>> + glink-edge { >>> + interrupts = <GIC_SPI 321 IRQ_TYPE_EDGE_RISING>; >>> + label = "rtr"; >>> + qcom,remote-pid = <1>; >>> + mboxes = <&apcs_glb 8>; >>> + }; >>> + >>> + pd-1 { >>> + compatible = "qcom,ipq9574-wcss-ahb-mpd"; >>> + firmware-name = "IPQ9574/q6_fw.mdt"; >> >> ... here - why do you have firmware in both places? >> In multipd model, Q6 & WCSS uses different firmware. I will correct the firmware-name. Thanks for catching. >>> + interrupts-extended = <&wcss_smp2p_in 8 0>, >>> + <&wcss_smp2p_in 9 0>, >>> + <&wcss_smp2p_in 12 0>, >>> + <&wcss_smp2p_in 11 0>; >>> + interrupt-names = "fatal", >>> + "ready", >>> + "spawn-ack", >>> + "stop-ack"; >>> + qcom,smem-states = <&wcss_smp2p_out 8>, >>> + <&wcss_smp2p_out 9>, >>> + <&wcss_smp2p_out 10>; >>> + qcom,smem-state-names = "shutdown", >>> + "stop", >>> + "spawn"; >>> + }; >>> + >>> + pd-2 { >>> + compatible = "qcom,ipq5018-wcss-pcie-mpd"; >> >> This compatible is confusing for this device. >> I will clean up all SOC specific compatibles and have only device specific compatibles for Q6 & WCSS radio's as i mentioned on other thread. Thanks & Regards, Manikanta.
diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi index 0e04549c69a5..ff0da53ba05f 100644 --- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi @@ -160,6 +160,11 @@ no-map; }; + q6_region: wcnss@4ab00000 { + reg = <0x0 0x4ab00000 0x0 0x2b00000>; + no-map; + }; + smem@4aa00000 { compatible = "qcom,smem"; reg = <0x0 0x4aa00000 0x0 0x00100000>; @@ -697,6 +702,95 @@ }; }; + q6v5_wcss: remoteproc@cd00000 { + compatible = "qcom,ipq9574-q6-mpd"; + reg = <0x0cd00000 0x4040>; + firmware-name = "IPQ9574/q6_fw.mdt", + "IPQ9574/m3_fw.mdt"; + interrupts-extended = <&intc GIC_SPI 325 IRQ_TYPE_EDGE_RISING>, + <&wcss_smp2p_in 0 0>, + <&wcss_smp2p_in 1 0>, + <&wcss_smp2p_in 2 0>, + <&wcss_smp2p_in 3 0>; + interrupt-names = "wdog", + "fatal", + "ready", + "handover", + "stop-ack"; + + qcom,smem-states = <&wcss_smp2p_out 0>, + <&wcss_smp2p_out 1>; + qcom,smem-state-names = "shutdown", + "stop"; + memory-region = <&q6_region>; + + glink-edge { + interrupts = <GIC_SPI 321 IRQ_TYPE_EDGE_RISING>; + label = "rtr"; + qcom,remote-pid = <1>; + mboxes = <&apcs_glb 8>; + }; + + pd-1 { + compatible = "qcom,ipq9574-wcss-ahb-mpd"; + firmware-name = "IPQ9574/q6_fw.mdt"; + interrupts-extended = <&wcss_smp2p_in 8 0>, + <&wcss_smp2p_in 9 0>, + <&wcss_smp2p_in 12 0>, + <&wcss_smp2p_in 11 0>; + interrupt-names = "fatal", + "ready", + "spawn-ack", + "stop-ack"; + qcom,smem-states = <&wcss_smp2p_out 8>, + <&wcss_smp2p_out 9>, + <&wcss_smp2p_out 10>; + qcom,smem-state-names = "shutdown", + "stop", + "spawn"; + }; + + pd-2 { + compatible = "qcom,ipq5018-wcss-pcie-mpd"; + interrupts-extended = <&wcss_smp2p_in 16 0>, + <&wcss_smp2p_in 17 0>, + <&wcss_smp2p_in 20 0>, + <&wcss_smp2p_in 19 0>; + interrupt-names = "fatal", + "ready", + "spawn-ack", + "stop-ack"; + + qcom,smem-states = <&wcss_smp2p_out 16>, + <&wcss_smp2p_out 17>, + <&wcss_smp2p_out 18>; + qcom,smem-state-names = "shutdown", + "stop", + "spawn"; + status = "disabled"; + }; + + pd-3 { + compatible = "qcom,ipq5018-wcss-pcie-mpd"; + interrupts-extended = <&wcss_smp2p_in 24 0>, + <&wcss_smp2p_in 25 0>, + <&wcss_smp2p_in 28 0>, + <&wcss_smp2p_in 27 0>; + interrupt-names = "fatal", + "ready", + "spawn-ack", + "stop-ack"; + + qcom,smem-states = <&wcss_smp2p_out 24>, + <&wcss_smp2p_out 25>, + <&wcss_smp2p_out 26>; + qcom,smem-state-names = "shutdown", + "stop", + "spawn"; + status = "disabled"; + }; + }; + pcie1: pci@10000000 { compatible = "qcom,pcie-ipq9574"; reg = <0x10000000 0xf1d>, @@ -966,4 +1060,28 @@ <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; }; + + wcss: wcss-smp2p { + compatible = "qcom,smp2p"; + qcom,smem = <435>, <428>; + + interrupt-parent = <&intc>; + interrupts = <GIC_SPI 322 IRQ_TYPE_EDGE_RISING>; + + mboxes = <&apcs_glb 9>; + + qcom,local-pid = <0>; + qcom,remote-pid = <1>; + + wcss_smp2p_out: master-kernel { + qcom,entry-name = "master-kernel"; + #qcom,smem-state-cells = <1>; + }; + + wcss_smp2p_in: slave-kernel { + qcom,entry-name = "slave-kernel"; + interrupt-controller; + #interrupt-cells = <2>; + }; + }; };
Enable nodes required for multipd remoteproc bring up. Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com> --- Changes in V2: - Corrected syntax like alignmnet and kept nodes in sorted order. - Added 'firmware-name' property. arch/arm64/boot/dts/qcom/ipq9574.dtsi | 118 ++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) -- 2.17.1