Re: [PATCH v4 3/3] remoteproc: qcom: pas: Add Nord ADSP and CDSP support
From: Mukesh Ojha
Date: Tue Jul 28 2026 - 05:51:03 EST
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 <shengchao.guo@xxxxxxxxxxxxxxxx>
> ---
> 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