2021-09-26 19:08:12

by Yassine Oudjana

[permalink] [raw]
Subject: [PATCH v2 0/5] msm8996: Enable support for MSS and SLPI

This series fixes reserved memory regions, adds a missing power domain
for SLPI in qcom_q6v5_pas, and enables support for MSS and SLPI in DTS.

Changes since v1:
- Rebase on latest linux-next
- Rewrite MSS node
- Enable MSS and SLPI in some devices
Changes since v1 (2/5 remoteproc: qcom: pas: Use the same init resources for MSM8996 and MSM8998):
- Rename msm8998_adsp_resource to msm8996_adsp_resource
- Add power domains to slpi_resource_init and use that instead of msm8998_slpi_resource

Yassine Oudjana (5):
arm64: dts: qcom: msm8996: Revamp reserved memory
remoteproc: qcom: pas: Use the same init resources for MSM8996 and
MSM8998
arm64: dts: qcom: msm8996: Unify smp2p naming
arm64: dts: qcom: msm8996: Add MSS and SLPI
arm64: dts: qcom: msm8996-xiaomi-*: Enable MSS and SLPI

.../dts/qcom/msm8996-sony-xperia-tone.dtsi | 18 +-
.../boot/dts/qcom/msm8996-xiaomi-common.dtsi | 30 ++-
.../boot/dts/qcom/msm8996-xiaomi-gemini.dts | 9 +
.../boot/dts/qcom/msm8996-xiaomi-scorpio.dts | 9 +
arch/arm64/boot/dts/qcom/msm8996.dtsi | 195 ++++++++++++++----
drivers/remoteproc/qcom_q6v5_pas.c | 27 +--
6 files changed, 209 insertions(+), 79 deletions(-)

--
2.33.0



2021-09-26 19:08:27

by Yassine Oudjana

[permalink] [raw]
Subject: [PATCH v2 4/5] arm64: dts: qcom: msm8996: Add MSS and SLPI

Add nodes for the MSS and SLPI remoteprocs.

Signed-off-by: Yassine Oudjana <[email protected]>
---
arch/arm64/boot/dts/qcom/msm8996.dtsi | 99 +++++++++++++++++++++++++++
1 file changed, 99 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/msm8996.dtsi b/arch/arm64/boot/dts/qcom/msm8996.dtsi
index 7710ca6f3374..1301ffcf588b 100644
--- a/arch/arm64/boot/dts/qcom/msm8996.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8996.dtsi
@@ -2103,6 +2103,105 @@ lpass_q6_smmu: iommu@1600000 {
clock-names = "iface", "bus";
};

+ slpi_pil: remoteproc@1c00000 {
+ compatible = "qcom,msm8996-slpi-pil";
+ reg = <0x01c00000 0x4000>;
+
+ interrupts-extended = <&intc 0 390 IRQ_TYPE_EDGE_RISING>,
+ <&slpi_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+ <&slpi_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
+ <&slpi_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
+ <&slpi_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
+ interrupt-names = "wdog",
+ "fatal",
+ "ready",
+ "handover",
+ "stop-ack";
+
+ clocks = <&xo_board>,
+ <&rpmcc RPM_SMD_AGGR2_NOC_CLK>;
+ clock-names = "xo", "aggre2";
+
+ memory-region = <&slpi_mem>;
+
+ qcom,smem-states = <&slpi_smp2p_out 0>;
+ qcom,smem-state-names = "stop";
+
+ power-domains = <&rpmpd MSM8996_VDDSSCX>;
+ power-domain-names = "ssc_cx";
+
+ status = "disabled";
+
+ smd-edge {
+ interrupts = <GIC_SPI 176 IRQ_TYPE_EDGE_RISING>;
+
+ label = "dsps";
+ mboxes = <&apcs_glb 25>;
+ qcom,smd-edge = <3>;
+ qcom,remote-pid = <3>;
+ };
+ };
+
+ mss_pil: remoteproc@2080000 {
+ compatible = "qcom,msm8996-mss-pil";
+ reg = <0x2080000 0x100>,
+ <0x2180000 0x020>;
+ reg-names = "qdsp6", "rmb";
+
+ interrupts-extended = <&intc 0 448 IRQ_TYPE_EDGE_RISING>,
+ <&mpss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+ <&mpss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
+ <&mpss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
+ <&mpss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
+ <&mpss_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_BIMC_AXI_CLK>,
+ <&gcc GCC_BOOT_ROM_AHB_CLK>,
+ <&xo_board>,
+ <&gcc GCC_MSS_GPLL0_DIV_CLK>,
+ <&gcc GCC_MSS_SNOC_AXI_CLK>,
+ <&gcc GCC_MSS_MNOC_BIMC_AXI_CLK>,
+ <&rpmcc RPM_SMD_PCNOC_CLK>,
+ <&rpmcc RPM_SMD_QDSS_CLK>;
+ clock-names = "iface", "bus", "mem", "xo", "gpll0_mss",
+ "snoc_axi", "mnoc_axi", "pnoc", "qdss";
+
+ resets = <&gcc GCC_MSS_RESTART>;
+ reset-names = "mss_restart";
+
+ power-domains = <&rpmpd MSM8996_VDDCX>,
+ <&rpmpd MSM8996_VDDMX>;
+ power-domain-names = "cx", "mx";
+
+ qcom,smem-states = <&mpss_smp2p_out 0>;
+ qcom,smem-state-names = "stop";
+
+ qcom,halt-regs = <&tcsr_mutex_regs 0x23000 0x25000 0x24000>;
+
+ status = "disabled";
+
+ mba {
+ memory-region = <&mba_mem>;
+ };
+
+ mpss {
+ memory-region = <&mpss_mem>;
+ };
+
+ smd-edge {
+ interrupts = <GIC_SPI 449 IRQ_TYPE_EDGE_RISING>;
+
+ label = "mpss";
+ mboxes = <&apcs_glb 12>;
+ qcom,smd-edge = <0>;
+ qcom,remote-pid = <1>;
+ };
+ };
+
stm@3002000 {
compatible = "arm,coresight-stm", "arm,primecell";
reg = <0x3002000 0x1000>,
--
2.33.0


2021-09-26 19:08:33

by Yassine Oudjana

[permalink] [raw]
Subject: [PATCH v2 3/5] arm64: dts: qcom: msm8996: Unify smp2p naming

Rename smp2p-modem to smp2p-mpss, and make the subnode labels of smp2p_adsp
and smp2p_slpi follow the <name>_smp2p_<out/in> layout.
Also move smp2p_slpi_out above smp2p_slpi_in to make it match mpss and adsp
where master-kernel is the first subnode.

This patch brings no functional change.

Signed-off-by: Yassine Oudjana <[email protected]>
---
arch/arm64/boot/dts/qcom/msm8996.dtsi | 33 ++++++++++++++-------------
1 file changed, 17 insertions(+), 16 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/msm8996.dtsi b/arch/arm64/boot/dts/qcom/msm8996.dtsi
index 1495fff6ffc9..7710ca6f3374 100644
--- a/arch/arm64/boot/dts/qcom/msm8996.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8996.dtsi
@@ -518,12 +518,12 @@ smp2p-adsp {
qcom,local-pid = <0>;
qcom,remote-pid = <2>;

- smp2p_adsp_out: master-kernel {
+ adsp_smp2p_out: master-kernel {
qcom,entry-name = "master-kernel";
#qcom,smem-state-cells = <1>;
};

- smp2p_adsp_in: slave-kernel {
+ adsp_smp2p_in: slave-kernel {
qcom,entry-name = "slave-kernel";

interrupt-controller;
@@ -531,7 +531,7 @@ smp2p_adsp_in: slave-kernel {
};
};

- smp2p-modem {
+ smp2p-mpss {
compatible = "qcom,smp2p";
qcom,smem = <435>, <428>;

@@ -542,12 +542,12 @@ smp2p-modem {
qcom,local-pid = <0>;
qcom,remote-pid = <1>;

- modem_smp2p_out: master-kernel {
+ mpss_smp2p_out: master-kernel {
qcom,entry-name = "master-kernel";
#qcom,smem-state-cells = <1>;
};

- modem_smp2p_in: slave-kernel {
+ mpss_smp2p_in: slave-kernel {
qcom,entry-name = "slave-kernel";

interrupt-controller;
@@ -566,16 +566,17 @@ smp2p-slpi {
qcom,local-pid = <0>;
qcom,remote-pid = <3>;

- smp2p_slpi_in: slave-kernel {
+ slpi_smp2p_out: master-kernel {
+ qcom,entry-name = "master-kernel";
+ #qcom,smem-state-cells = <1>;
+ };
+
+ slpi_smp2p_in: slave-kernel {
qcom,entry-name = "slave-kernel";
+
interrupt-controller;
#interrupt-cells = <2>;
};
-
- smp2p_slpi_out: master-kernel {
- qcom,entry-name = "master-kernel";
- #qcom,smem-state-cells = <1>;
- };
};

soc: soc {
@@ -3003,10 +3004,10 @@ adsp_pil: remoteproc@9300000 {
reg = <0x09300000 0x80000>;

interrupts-extended = <&intc 0 162 IRQ_TYPE_EDGE_RISING>,
- <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>,
- <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>,
- <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>,
- <&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>;
+ <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+ <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
+ <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
+ <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "wdog", "fatal", "ready",
"handover", "stop-ack";

@@ -3015,7 +3016,7 @@ adsp_pil: remoteproc@9300000 {

memory-region = <&adsp_mem>;

- qcom,smem-states = <&smp2p_adsp_out 0>;
+ qcom,smem-states = <&adsp_smp2p_out 0>;
qcom,smem-state-names = "stop";

power-domains = <&rpmpd MSM8996_VDDCX>;
--
2.33.0


2021-09-26 19:08:38

by Yassine Oudjana

[permalink] [raw]
Subject: [PATCH v2 5/5] arm64: dts: qcom: msm8996-xiaomi-*: Enable MSS and SLPI

Enable mss_pil and slpi_pil and set their firmware paths.

Signed-off-by: Yassine Oudjana <[email protected]>
---
arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi | 12 ++++++++++++
arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts | 9 +++++++++
arch/arm64/boot/dts/qcom/msm8996-xiaomi-scorpio.dts | 9 +++++++++
3 files changed, 30 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi b/arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi
index a5e7bccadba2..863537f504f1 100644
--- a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi
@@ -267,6 +267,12 @@ &mmcc {
vdd-gfx-supply = <&vdd_gfx>;
};

+&mss_pil {
+ status = "okay";
+
+ pll-supply = <&vreg_l12a_1p8>;
+};
+
&pcie0 {
status = "okay";

@@ -291,6 +297,12 @@ &pm8994_resin {
linux,code = <KEY_VOLUMEDOWN>;
};

+&slpi_pil {
+ status = "okay";
+
+ px-supply = <&vreg_lvs2a_1p8>;
+};
+
&usb3 {
status = "okay";
extcon = <&typec>;
diff --git a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts b/arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts
index 77d508e5164a..c0d14bd0f25b 100644
--- a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts
+++ b/arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts
@@ -96,6 +96,11 @@ zap-shader {
};
};

+&mss_pil {
+ firmware-name = "qcom/msm8996/gemini/mba.mbn",
+ "qcom/msm8996/gemini/modem.mbn";
+};
+
&q6asmdai {
dai@0 {
reg = <0>;
@@ -110,6 +115,10 @@ dai@2 {
};
};

+&slpi_pil {
+ firmware-name = "qcom/msm8996/gemini/slpi.mbn";
+};
+
&sound {
compatible = "qcom,apq8096-sndcard";
model = "gemini";
diff --git a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-scorpio.dts b/arch/arm64/boot/dts/qcom/msm8996-xiaomi-scorpio.dts
index ea2ca271fe7d..7f1523f66d38 100644
--- a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-scorpio.dts
+++ b/arch/arm64/boot/dts/qcom/msm8996-xiaomi-scorpio.dts
@@ -96,6 +96,11 @@ &mdss {
status = "disabled";
};

+&mss_pil {
+ firmware-name = "qcom/msm8996/scorpio/mba.mbn",
+ "qcom/msm8996/scorpio/modem.mbn";
+};
+
&q6asmdai {
dai@0 {
reg = <0>;
@@ -110,6 +115,10 @@ dai@2 {
};
};

+&slpi_pil {
+ firmware-name = "qcom/msm8996/scorpio/slpi.mbn";
+};
+
&sound {
compatible = "qcom,apq8096-sndcard";
model = "scorpio";
--
2.33.0


2022-04-04 21:18:12

by Dmitry Baryshkov

[permalink] [raw]
Subject: Re: [PATCH v2 5/5] arm64: dts: qcom: msm8996-xiaomi-*: Enable MSS and SLPI

On 26/09/2021 22:06, Yassine Oudjana wrote:
> Enable mss_pil and slpi_pil and set their firmware paths.
>
> Signed-off-by: Yassine Oudjana <[email protected]>

Tested-by: Dmitry Baryshkov <[email protected]> #db820c


--
With best wishes
Dmitry

2022-04-04 23:52:17

by Dmitry Baryshkov

[permalink] [raw]
Subject: Re: [PATCH v2 4/5] arm64: dts: qcom: msm8996: Add MSS and SLPI

On 26/09/2021 22:06, Yassine Oudjana wrote:
> Add nodes for the MSS and SLPI remoteprocs.
>
> Signed-off-by: Yassine Oudjana <[email protected]>

Tested-by: Dmitry Baryshkov <[email protected]> #db820c


--
With best wishes
Dmitry

2022-04-05 02:39:32

by Dmitry Baryshkov

[permalink] [raw]
Subject: Re: [PATCH v2 3/5] arm64: dts: qcom: msm8996: Unify smp2p naming

On 26/09/2021 22:06, Yassine Oudjana wrote:
> Rename smp2p-modem to smp2p-mpss, and make the subnode labels of smp2p_adsp
> and smp2p_slpi follow the <name>_smp2p_<out/in> layout.
> Also move smp2p_slpi_out above smp2p_slpi_in to make it match mpss and adsp
> where master-kernel is the first subnode.
>
> This patch brings no functional change.
>
> Signed-off-by: Yassine Oudjana <[email protected]>

Tested-by: Dmitry Baryshkov <[email protected]> #db820c


--
With best wishes
Dmitry