2024-06-06 15:04:14

by Naina Mehta

[permalink] [raw]
Subject: [PATCH 0/5] Add MPSS remoteproc support for SDX75

Add modem support to SDX75 using the PAS remoteproc driver.
Also, add qlink_logging memory region and split MPSS DSM
region into 2 separate regions.

These patches were co-authored by Rohit Agarwal while at
Qualcomm.

Naina Mehta (5):
dt-bindings: remoteproc: qcom,sm8550-pas: document the SDX75 PAS
remoteproc: qcom: pas: Add SDX75 remoteproc support
arm64: dts: qcom: sdx75: add missing qlink_logging reserved memory for
mpss
arm64: dts: qcom: sdx75: Add remoteproc node
arm64: dts: qcom: sdx75-idp: enable MPSS remoteproc node

.../bindings/remoteproc/qcom,sm8550-pas.yaml | 1 +
arch/arm64/boot/dts/qcom/sdx75-idp.dts | 6 ++
arch/arm64/boot/dts/qcom/sdx75.dtsi | 64 +++++++++++++++++--
drivers/remoteproc/qcom_q6v5_pas.c | 1 +
4 files changed, 68 insertions(+), 4 deletions(-)

--
2.17.1



2024-06-06 15:04:48

by Naina Mehta

[permalink] [raw]
Subject: [PATCH 2/5] remoteproc: qcom: pas: Add SDX75 remoteproc support

Add MPSS Peripheral Authentication Service support for SDX75 platform.

Signed-off-by: Naina Mehta <[email protected]>
---
drivers/remoteproc/qcom_q6v5_pas.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q6v5_pas.c
index 8458bcfe9e19..833e2f9c2c5e 100644
--- a/drivers/remoteproc/qcom_q6v5_pas.c
+++ b/drivers/remoteproc/qcom_q6v5_pas.c
@@ -1343,6 +1343,7 @@ static const struct of_device_id adsp_of_match[] = {
{ .compatible = "qcom,sdm845-cdsp-pas", .data = &sdm845_cdsp_resource_init},
{ .compatible = "qcom,sdm845-slpi-pas", .data = &sdm845_slpi_resource_init},
{ .compatible = "qcom,sdx55-mpss-pas", .data = &sdx55_mpss_resource},
+ { .compatible = "qcom,sdx75-mpss-pas", .data = &sm8650_mpss_resource},
{ .compatible = "qcom,sm6115-adsp-pas", .data = &adsp_resource_init},
{ .compatible = "qcom,sm6115-cdsp-pas", .data = &cdsp_resource_init},
{ .compatible = "qcom,sm6115-mpss-pas", .data = &sc8180x_mpss_resource},
--
2.17.1


2024-06-06 15:08:19

by Naina Mehta

[permalink] [raw]
Subject: [PATCH 3/5] arm64: dts: qcom: sdx75: add missing qlink_logging reserved memory for mpss

The qlink_logging memory region is also used by the modem firmware,
add it to reserved memory regions.
Also split MPSS DSM region into 2 separate regions.

Signed-off-by: Naina Mehta <[email protected]>
---
arch/arm64/boot/dts/qcom/sdx75.dtsi | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/sdx75.dtsi b/arch/arm64/boot/dts/qcom/sdx75.dtsi
index 9b93f6501d55..9349b1c4e196 100644
--- a/arch/arm64/boot/dts/qcom/sdx75.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdx75.dtsi
@@ -366,7 +366,12 @@
no-map;
};

- qdss_mem: qdss@88800000 {
+ qdss_mem: qdss@88500000 {
+ reg = <0x0 0x88500000 0x0 0x300000>;
+ no-map;
+ };
+
+ qlink_logging_mem: qlink_logging@88800000 {
reg = <0x0 0x88800000 0x0 0x300000>;
no-map;
};
@@ -377,18 +382,22 @@
no-map;
};

- mpss_dsmharq_mem: mpss-dsmharq@88f00000 {
- reg = <0x0 0x88f00000 0x0 0x5080000>;
+ mpss_dsm_mem_2: mpss-dsmharq-2@88f00000 {
+ reg = <0x0 0x88f00000 0x0 0x2500000>;
no-map;
};

+ mpss_dsm_mem: mpss-dsmharq@8b400000 {
+ reg = <0x0 0x8b400000 0x0 0x2b80000>;
+ };
+
q6_mpss_dtb_mem: q6-mpss-dtb@8df80000 {
reg = <0x0 0x8df80000 0x0 0x80000>;
no-map;
};

mpssadsp_mem: mpssadsp@8e000000 {
- reg = <0x0 0x8e000000 0x0 0xf400000>;
+ reg = <0x0 0x8e000000 0x0 0xf100000>;
no-map;
};

--
2.17.1


2024-06-06 15:10:21

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH 3/5] arm64: dts: qcom: sdx75: add missing qlink_logging reserved memory for mpss

On 06/06/2024 16:38, Naina Mehta wrote:
> The qlink_logging memory region is also used by the modem firmware,
> add it to reserved memory regions.
> Also split MPSS DSM region into 2 separate regions.
>
> Signed-off-by: Naina Mehta <[email protected]>
> ---
> arch/arm64/boot/dts/qcom/sdx75.dtsi | 17 +++++++++++++----
> 1 file changed, 13 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/sdx75.dtsi b/arch/arm64/boot/dts/qcom/sdx75.dtsi
> index 9b93f6501d55..9349b1c4e196 100644
> --- a/arch/arm64/boot/dts/qcom/sdx75.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sdx75.dtsi
> @@ -366,7 +366,12 @@
> no-map;
> };
>
> - qdss_mem: qdss@88800000 {
> + qdss_mem: qdss@88500000 {
> + reg = <0x0 0x88500000 0x0 0x300000>;
> + no-map;
> + };
> +
> + qlink_logging_mem: qlink_logging@88800000 {

Sorry, no downstream code.

Please follow DTS coding style - no underscores in node names. This
applies to all work sent upstream.



Best regards,
Krzysztof


2024-06-06 15:32:02

by Naina Mehta

[permalink] [raw]
Subject: [PATCH 4/5] arm64: dts: qcom: sdx75: Add remoteproc node

Add MPSS remoteproc node for SDX75 SoC.

Signed-off-by: Naina Mehta <[email protected]>
---
arch/arm64/boot/dts/qcom/sdx75.dtsi | 47 +++++++++++++++++++++++++++++
1 file changed, 47 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sdx75.dtsi b/arch/arm64/boot/dts/qcom/sdx75.dtsi
index 9349b1c4e196..25d3f110abe1 100644
--- a/arch/arm64/boot/dts/qcom/sdx75.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdx75.dtsi
@@ -890,6 +890,53 @@
reg = <0x0 0x01fc0000 0x0 0x30000>;
};

+ remoteproc_mpss: remoteproc@4080000 {
+ compatible = "qcom,sdx75-mpss-pas";
+ reg = <0 0x04080000 0 0x4040>;
+
+ interrupts-extended = <&intc GIC_SPI 250 IRQ_TYPE_EDGE_RISING>,
+ <&smp2p_modem_in 0 IRQ_TYPE_EDGE_RISING>,
+ <&smp2p_modem_in 1 IRQ_TYPE_EDGE_RISING>,
+ <&smp2p_modem_in 2 IRQ_TYPE_EDGE_RISING>,
+ <&smp2p_modem_in 3 IRQ_TYPE_EDGE_RISING>,
+ <&smp2p_modem_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 = <&rpmhpd RPMHPD_CX>,
+ <&rpmhpd RPMHPD_MSS>;
+ power-domain-names = "cx",
+ "mss";
+
+ memory-region = <&mpssadsp_mem>, <&q6_mpss_dtb_mem>,
+ <&mpss_dsm_mem>, <&mpss_dsm_mem_2>,
+ <&qlink_logging_mem>;
+
+ qcom,qmp = <&aoss_qmp>;
+
+ qcom,smem-states = <&smp2p_modem_out 0>;
+ qcom,smem-state-names = "stop";
+
+ status = "disabled";
+
+ glink-edge {
+ interrupts-extended = <&ipcc IPCC_CLIENT_MPSS
+ IPCC_MPROC_SIGNAL_PING
+ IRQ_TYPE_EDGE_RISING>;
+ mboxes = <&ipcc IPCC_CLIENT_MPSS
+ IPCC_MPROC_SIGNAL_PING>;
+ label = "mpss";
+ qcom,remote-pid = <1>;
+ };
+ };
+
sdhc: mmc@8804000 {
compatible = "qcom,sdx75-sdhci", "qcom,sdhci-msm-v5";
reg = <0x0 0x08804000 0x0 0x1000>;
--
2.17.1


2024-06-06 15:49:57

by Naina Mehta

[permalink] [raw]
Subject: [PATCH 5/5] arm64: dts: qcom: sdx75-idp: enable MPSS remoteproc node

Enable MPSS remoteproc node on sdx75-idp platform.

Signed-off-by: Naina Mehta <[email protected]>
---
arch/arm64/boot/dts/qcom/sdx75-idp.dts | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sdx75-idp.dts b/arch/arm64/boot/dts/qcom/sdx75-idp.dts
index fde16308c7e2..f1bbe7ab01ab 100644
--- a/arch/arm64/boot/dts/qcom/sdx75-idp.dts
+++ b/arch/arm64/boot/dts/qcom/sdx75-idp.dts
@@ -282,6 +282,12 @@
status = "okay";
};

+&remoteproc_mpss {
+ firmware-name = "qcom/sdx75/modem.mbn",
+ "qcom/sdx75/modem_dtb.mbn";
+ status = "okay";
+};
+
&sdhc {
cd-gpios = <&tlmm 103 GPIO_ACTIVE_LOW>;
vmmc-supply = <&reg_2v95_vdd>;
--
2.17.1


2024-06-07 06:52:56

by Naina Mehta

[permalink] [raw]
Subject: Re: [PATCH 3/5] arm64: dts: qcom: sdx75: add missing qlink_logging reserved memory for mpss

On 6/6/2024 8:20 PM, Krzysztof Kozlowski wrote:
> On 06/06/2024 16:38, Naina Mehta wrote:
>> The qlink_logging memory region is also used by the modem firmware,
>> add it to reserved memory regions.
>> Also split MPSS DSM region into 2 separate regions.
>>
>> Signed-off-by: Naina Mehta <[email protected]>
>> ---
>> arch/arm64/boot/dts/qcom/sdx75.dtsi | 17 +++++++++++++----
>> 1 file changed, 13 insertions(+), 4 deletions(-)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/sdx75.dtsi b/arch/arm64/boot/dts/qcom/sdx75.dtsi
>> index 9b93f6501d55..9349b1c4e196 100644
>> --- a/arch/arm64/boot/dts/qcom/sdx75.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/sdx75.dtsi
>> @@ -366,7 +366,12 @@
>> no-map;
>> };
>>
>> - qdss_mem: qdss@88800000 {
>> + qdss_mem: qdss@88500000 {
>> + reg = <0x0 0x88500000 0x0 0x300000>;
>> + no-map;
>> + };
>> +
>> + qlink_logging_mem: qlink_logging@88800000 {
>
> Sorry, no downstream code.
>
> Please follow DTS coding style - no underscores in node names. This
> applies to all work sent upstream.
>

Thanks for pointing this out. I will update in next revision.

Regards,
Naina

>
>
> Best regards,
> Krzysztof
>