Message ID | 20240820085517.435566-4-quic_gokulsri@quicinc.com |
---|---|
State | Superseded |
Headers | show |
Series | Add new driver for WCSS secure PIL loading | expand |
On Tue, Aug 20, 2024 at 02:25:16PM +0530, Gokul Sriram Palanisamy wrote: > From: Manikanta Mylavarapu <quic_mmanikan@quicinc.com> > > Enable nodes required for q6 remoteproc bring up. > > Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com> > Signed-off-by: Gokul Sriram Palanisamy <quic_gokulsri@quicinc.com> > --- > arch/arm64/boot/dts/qcom/ipq5332.dtsi | 62 +++++++++++++++++++++++++++ > 1 file changed, 62 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/ipq5332.dtsi b/arch/arm64/boot/dts/qcom/ipq5332.dtsi > index 0a74ed4f72cc..ec93e7b64b9e 100644 > --- a/arch/arm64/boot/dts/qcom/ipq5332.dtsi > +++ b/arch/arm64/boot/dts/qcom/ipq5332.dtsi > @@ -145,6 +145,11 @@ smem@4a800000 { > > hwlocks = <&tcsr_mutex 3>; > }; > + > + q6_region: wcnss@4a900000 { Why here it is wcnss... > + reg = <0x0 0x4a900000 0x0 0x2b00000>; > + no-map; > + }; > }; > > soc@0 { > @@ -476,6 +481,39 @@ frame@b128000 { > status = "disabled"; > }; > }; > + > + q6v5_wcss: remoteproc@d100000 { but everywhere else is wcss? > + compatible = "qcom,ipq5332-wcss-sec-pil"; > + reg = <0xd100000 0x4040>; > + firmware-name = "ath12k/IPQ5332/hw1.0/q6_fw0.mdt"; It's one firmware independent of board? Best regards, Krzysztof
On 8/20/2024 4:51 PM, Krzysztof Kozlowski wrote: > On Tue, Aug 20, 2024 at 02:25:16PM +0530, Gokul Sriram Palanisamy wrote: >> From: Manikanta Mylavarapu <quic_mmanikan@quicinc.com> >> >> Enable nodes required for q6 remoteproc bring up. >> >> Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com> >> Signed-off-by: Gokul Sriram Palanisamy <quic_gokulsri@quicinc.com> >> --- >> arch/arm64/boot/dts/qcom/ipq5332.dtsi | 62 +++++++++++++++++++++++++++ >> 1 file changed, 62 insertions(+) >> >> diff --git a/arch/arm64/boot/dts/qcom/ipq5332.dtsi b/arch/arm64/boot/dts/qcom/ipq5332.dtsi >> index 0a74ed4f72cc..ec93e7b64b9e 100644 >> --- a/arch/arm64/boot/dts/qcom/ipq5332.dtsi >> +++ b/arch/arm64/boot/dts/qcom/ipq5332.dtsi >> @@ -145,6 +145,11 @@ smem@4a800000 { >> >> hwlocks = <&tcsr_mutex 3>; >> }; >> + >> + q6_region: wcnss@4a900000 { > Why here it is wcnss... will change it to wcss. >> + reg = <0x0 0x4a900000 0x0 0x2b00000>; >> + no-map; >> + }; >> }; >> >> soc@0 { >> @@ -476,6 +481,39 @@ frame@b128000 { >> status = "disabled"; >> }; >> }; >> + >> + q6v5_wcss: remoteproc@d100000 { > but everywhere else is wcss? yes, will stick to wcss everywhere. > >> + compatible = "qcom,ipq5332-wcss-sec-pil"; >> + reg = <0xd100000 0x4040>; >> + firmware-name = "ath12k/IPQ5332/hw1.0/q6_fw0.mdt"; > It's one firmware independent of board? Yes, we have only one firmware across all our boards. Regards, Gokul > > Best regards, > Krzysztof >
diff --git a/arch/arm64/boot/dts/qcom/ipq5332.dtsi b/arch/arm64/boot/dts/qcom/ipq5332.dtsi index 0a74ed4f72cc..ec93e7b64b9e 100644 --- a/arch/arm64/boot/dts/qcom/ipq5332.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq5332.dtsi @@ -145,6 +145,11 @@ smem@4a800000 { hwlocks = <&tcsr_mutex 3>; }; + + q6_region: wcnss@4a900000 { + reg = <0x0 0x4a900000 0x0 0x2b00000>; + no-map; + }; }; soc@0 { @@ -476,6 +481,39 @@ frame@b128000 { status = "disabled"; }; }; + + q6v5_wcss: remoteproc@d100000 { + compatible = "qcom,ipq5332-wcss-sec-pil"; + reg = <0xd100000 0x4040>; + firmware-name = "ath12k/IPQ5332/hw1.0/q6_fw0.mdt"; + interrupts-extended = <&intc GIC_SPI 421 IRQ_TYPE_EDGE_RISING>, + <&wcss_smp2p_in 0 IRQ_TYPE_NONE>, + <&wcss_smp2p_in 1 IRQ_TYPE_NONE>, + <&wcss_smp2p_in 2 IRQ_TYPE_NONE>, + <&wcss_smp2p_in 3 IRQ_TYPE_NONE>; + interrupt-names = "wdog", + "fatal", + "ready", + "handover", + "stop-ack"; + + clocks = <&gcc GCC_IM_SLEEP_CLK>; + clock-names = "im_sleep"; + + 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 417 IRQ_TYPE_EDGE_RISING>; + label = "rtr"; + qcom,remote-pid = <1>; + mboxes = <&apcs_glb 8>; + }; + }; }; timer { @@ -485,4 +523,28 @@ timer { <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 418 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>; + }; + }; };