Re: [PATCH v4 3/3] remoteproc: qcom: pas: Add Nord ADSP and CDSP support
Mukesh Ojha <[email protected]> Tue, 28 Jul 2026 14:57:49 +0530
| Newsgroups | org.kernel.vger.linux-remoteproc,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On Tue, Jul 28, 2026 at 04:40:12PM +0800, Shawn Guo wrote: > Add support for ADSP (HPASS DSP) and 4 CDSPs found on Nord SoC. The ADSP > is pre-booted by XBL before Linux starts, so set early_boot flag for > attach path rather than a cold boot sequence. > > Signed-off-by: Shawn Guo <[email protected]> > --- > drivers/remoteproc/qcom_q6v5_pas.c | 110 +++++++++++++++++++++++++++++ > 1 file changed, 110 insertions(+) > > diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q6v5_pas.c > index 25599d728208..63a26c6ced8c 100644 > --- a/drivers/remoteproc/qcom_q6v5_pas.c > +++ b/drivers/remoteproc/qcom_q6v5_pas.c > @@ -1434,6 +1434,111 @@ static const struct qcom_pas_data milos_cdsp_resource = { > .smem_host_id = 5, > }; > > +static const struct qcom_pas_data nord_adsp_resource = { > + .crash_reason_smem = 423, > + .firmware_name = "adsp.mdt", > + .dtb_firmware_name = "adsp_dtb.mbn", > + .pas_id = 1, > + .dtb_pas_id = 36, > + .minidump_id = 5, > + .auto_boot = true, > + .early_boot = true, > + .proxy_pd_names = (char*[]){ > + "cx", > + "mx", > + NULL > + }, > + .load_state = "adsp", > + .ssr_name = "lpass", > + .sysmon_name = "adsp", > + .ssctl_id = 0x14, > + .smem_host_id = 2, > +}; > + > +static const struct qcom_pas_data nord_cdsp0_resource = { > + .crash_reason_smem = 601, > + .firmware_name = "cdsp.mdt", > + .dtb_firmware_name = "cdsp_dtb.mbn", > + .pas_id = 18, > + .dtb_pas_id = 37, > + .minidump_id = 7, > + .auto_boot = true, > + .proxy_pd_names = (char*[]){ > + "cx", > + "mx", > + "nsp", > + NULL > + }, > + .load_state = "cdsp", is this a miss or a known thing to not use cdsp0 here but use X it at other cdspX instances ? > + .ssr_name = "cdsp0", > + .sysmon_name = "cdsp0", > + .ssctl_id = 0x17, > + .smem_host_id = 5, > +}; > + > +static const struct qcom_pas_data nord_cdsp1_resource = { > + .crash_reason_smem = 633, > + .firmware_name = "cdsp1.mdt", > + .dtb_firmware_name = "cdsp1_dtb.mbn", > + .pas_id = 30, > + .dtb_pas_id = 59, > + .minidump_id = 20, > + .auto_boot = true, > + .proxy_pd_names = (char*[]){ > + "cx", > + "mx", > + "nsp", > + NULL > + }, > + .load_state = "cdsp1", > + .ssr_name = "cdsp1", > + .sysmon_name = "cdsp1", > + .ssctl_id = 0x20, > + .smem_host_id = 69, > +}; > + > +static const struct qcom_pas_data nord_cdsp2_resource = { > + .crash_reason_smem = 665, > + .firmware_name = "cdsp2.mdt", > + .dtb_firmware_name = "cdsp2_dtb.mbn", > + .pas_id = 57, > + .dtb_pas_id = 60, > + .minidump_id = 29, > + .auto_boot = true, > + .proxy_pd_names = (char*[]){ > + "cx", > + "mx", > + "nsp", > + NULL > + }, > + .load_state = "cdsp2", > + .ssr_name = "cdsp2", > + .sysmon_name = "cdsp2", > + .ssctl_id = 0x1f, > + .smem_host_id = 133, > +}; > + > +static const struct qcom_pas_data nord_cdsp3_resource = { > + .crash_reason_smem = 666, > + .firmware_name = "cdsp3.mdt", > + .dtb_firmware_name = "cdsp3_dtb.mbn", > + .pas_id = 58, > + .dtb_pas_id = 61, > + .minidump_id = 30, > + .auto_boot = true, > + .proxy_pd_names = (char*[]){ > + "cx", > + "mx", > + "nsp", > + NULL > + }, > + .load_state = "cdsp3", > + .ssr_name = "cdsp3", > + .sysmon_name = "cdsp3", > + .ssctl_id = 0x1a, > + .smem_host_id = 197, > +}; > + > static const struct qcom_pas_data sm8450_mpss_resource = { > .crash_reason_smem = 421, > .firmware_name = "modem.mdt", > @@ -1702,6 +1807,11 @@ static const struct of_device_id qcom_pas_of_match[] = { > { .compatible = "qcom,msm8996-slpi-pil", .data = &msm8996_slpi_resource_init }, > { .compatible = "qcom,msm8998-adsp-pas", .data = &msm8996_adsp_resource }, > { .compatible = "qcom,msm8998-slpi-pas", .data = &msm8996_slpi_resource_init }, > + { .compatible = "qcom,nord-adsp-pas", .data = &nord_adsp_resource }, > + { .compatible = "qcom,nord-cdsp0-pas", .data = &nord_cdsp0_resource }, > + { .compatible = "qcom,nord-cdsp1-pas", .data = &nord_cdsp1_resource }, > + { .compatible = "qcom,nord-cdsp2-pas", .data = &nord_cdsp2_resource }, > + { .compatible = "qcom,nord-cdsp3-pas", .data = &nord_cdsp3_resource }, > { .compatible = "qcom,qcs404-adsp-pas", .data = &adsp_resource_init }, > { .compatible = "qcom,qcs404-cdsp-pas", .data = &cdsp_resource_init }, > { .compatible = "qcom,qcs404-wcss-pas", .data = &wcss_resource_init }, > -- > 2.43.0 > -- -Mukesh Ojha