* [PATCH v4 0/3] Add ADSP and CDSP support for Nord SoC
@ 2026-07-28 8:40 Shawn Guo
2026-07-28 8:40 ` [PATCH v4 1/3] dt-bindings: soc: qcom,aoss-qmp: Document Nord AOSS side channel Shawn Guo
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Shawn Guo @ 2026-07-28 8:40 UTC (permalink / raw)
To: Bjorn Andersson
Cc: Mathieu Poirier, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Konrad Dybcio, Manivannan Sadhasivam, linux-arm-msm,
linux-remoteproc, devicetree, linux-kernel, Shawn Guo
The series documents AOSS side channel, adds ADSP (HPASS DSP) and
4 CDSPs support for Nord SoC.
Nord SoC actually has 3 ADSPs. This series only enables ADSP0 which
can work independently. The rest two instances have dependencies on
ADSP0 regarding start/stop and SSR. And remoteproc framework doesn't
seem to support such "slave" instances yet.
Changes for v4:
- Add Nord PAS entries to qcom_pas_of_match[] in alphabetical order
- Link to v3: https://lore.kernel.org/all/20260727074621.561661-1-shengchao.guo@oss.qualcomm.com/
Changes for v3:
- Fix qcom,nord-pas bindings to define "minItems: 3" for CDSPs with
an else clause
- Link to v2: https://lore.kernel.org/all/20260724103848.233804-1-shengchao.guo@oss.qualcomm.com/
Changes for v2:
- Create a new qcom,nord-pas.yaml to cover Nord ADSP and CDSP
- Include CDSPs support into the series
- Link to v1: https://lore.kernel.org/all/20260709085149.4072181-1-shengchao.guo@oss.qualcomm.com/
Shawn Guo (3):
dt-bindings: soc: qcom,aoss-qmp: Document Nord AOSS side channel
dt-bindings: remoteproc: qcom,nord-pas: Document Nord PAS
remoteproc: qcom: pas: Add Nord ADSP and CDSP support
.../bindings/remoteproc/qcom,nord-pas.yaml | 173 ++++++++++++++++++
.../bindings/soc/qcom/qcom,aoss-qmp.yaml | 1 +
drivers/remoteproc/qcom_q6v5_pas.c | 110 +++++++++++
3 files changed, 284 insertions(+)
create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,nord-pas.yaml
--
2.43.0
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v4 1/3] dt-bindings: soc: qcom,aoss-qmp: Document Nord AOSS side channel
2026-07-28 8:40 [PATCH v4 0/3] Add ADSP and CDSP support for Nord SoC Shawn Guo
@ 2026-07-28 8:40 ` Shawn Guo
2026-07-28 8:40 ` [PATCH v4 2/3] dt-bindings: remoteproc: qcom,nord-pas: Document Nord PAS Shawn Guo
2026-07-28 8:40 ` [PATCH v4 3/3] remoteproc: qcom: pas: Add Nord ADSP and CDSP support Shawn Guo
2 siblings, 0 replies; 9+ messages in thread
From: Shawn Guo @ 2026-07-28 8:40 UTC (permalink / raw)
To: Bjorn Andersson
Cc: Mathieu Poirier, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Konrad Dybcio, Manivannan Sadhasivam, linux-arm-msm,
linux-remoteproc, devicetree, linux-kernel, Shawn Guo,
Krzysztof Kozlowski
Document Always-on Subsystem side channel on Qualcomm Nord SoC.
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Shawn Guo <shengchao.guo@oss.qualcomm.com>
---
Documentation/devicetree/bindings/soc/qcom/qcom,aoss-qmp.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,aoss-qmp.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,aoss-qmp.yaml
index 9f9d9bcb66c4..d2ae2ae87a95 100644
--- a/Documentation/devicetree/bindings/soc/qcom/qcom,aoss-qmp.yaml
+++ b/Documentation/devicetree/bindings/soc/qcom/qcom,aoss-qmp.yaml
@@ -31,6 +31,7 @@ properties:
- qcom,kaanapali-aoss-qmp
- qcom,maili-aoss-qmp
- qcom,milos-aoss-qmp
+ - qcom,nord-aoss-qmp
- qcom,qcs615-aoss-qmp
- qcom,qcs8300-aoss-qmp
- qcom,qdu1000-aoss-qmp
--
2.43.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v4 2/3] dt-bindings: remoteproc: qcom,nord-pas: Document Nord PAS
2026-07-28 8:40 [PATCH v4 0/3] Add ADSP and CDSP support for Nord SoC Shawn Guo
2026-07-28 8:40 ` [PATCH v4 1/3] dt-bindings: soc: qcom,aoss-qmp: Document Nord AOSS side channel Shawn Guo
@ 2026-07-28 8:40 ` Shawn Guo
2026-07-28 8:49 ` sashiko-bot
2026-07-28 8:40 ` [PATCH v4 3/3] remoteproc: qcom: pas: Add Nord ADSP and CDSP support Shawn Guo
2 siblings, 1 reply; 9+ messages in thread
From: Shawn Guo @ 2026-07-28 8:40 UTC (permalink / raw)
To: Bjorn Andersson
Cc: Mathieu Poirier, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Konrad Dybcio, Manivannan Sadhasivam, linux-arm-msm,
linux-remoteproc, devicetree, linux-kernel, Shawn Guo,
Krzysztof Kozlowski
Add a dedicated binding for the Qualcomm Nord SoC PAS devices: ADSP
and CDSPs. Nord ADSP uses CX and MX power domains while the CDSPs
add an NSP domain on top of that.
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Shawn Guo <shengchao.guo@oss.qualcomm.com>
---
.../bindings/remoteproc/qcom,nord-pas.yaml | 173 ++++++++++++++++++
1 file changed, 173 insertions(+)
create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,nord-pas.yaml
diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,nord-pas.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,nord-pas.yaml
new file mode 100644
index 000000000000..e90d2953ba69
--- /dev/null
+++ b/Documentation/devicetree/bindings/remoteproc/qcom,nord-pas.yaml
@@ -0,0 +1,173 @@
+# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/remoteproc/qcom,nord-pas.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Nord SoC Peripheral Authentication Service
+
+maintainers:
+ - Shawn Guo <shengchao.guo@oss.qualcomm.com>
+
+description:
+ Qualcomm Nord SoC Peripheral Authentication Service loads and boots firmware
+ on the Qualcomm DSP Hexagon cores.
+
+properties:
+ compatible:
+ enum:
+ - qcom,nord-adsp-pas
+ - qcom,nord-cdsp0-pas
+ - qcom,nord-cdsp1-pas
+ - qcom,nord-cdsp2-pas
+ - qcom,nord-cdsp3-pas
+
+ power-domains:
+ minItems: 2
+ items:
+ - description: CX power domain
+ - description: MX power domain
+ - description: NSP power domain
+
+ power-domain-names:
+ minItems: 2
+ items:
+ - const: cx
+ - const: mx
+ - const: nsp
+
+ reg:
+ maxItems: 1
+
+ clocks:
+ items:
+ - description: XO clock
+
+ clock-names:
+ items:
+ - const: xo
+
+ qcom,qmp:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ description: Reference to the AOSS side-channel message RAM.
+
+ smd-edge: false
+
+ firmware-name:
+ items:
+ - description: Firmware name of the Hexagon core
+ - description: Firmware name of the Hexagon Devicetree
+
+ memory-region:
+ items:
+ - description: Memory region for main Firmware authentication
+ - description: Memory region for Devicetree Firmware authentication
+
+ interrupts:
+ items:
+ - description: Watchdog interrupt
+ - description: Fatal interrupt
+ - description: Ready interrupt
+ - description: Handover interrupt
+ - description: Stop acknowledge interrupt
+ - description: Shutdown acknowledge interrupt
+
+ interrupt-names:
+ items:
+ - const: wdog
+ - const: fatal
+ - const: ready
+ - const: handover
+ - const: stop-ack
+ - const: shutdown-ack
+
+ qcom,smem-states:
+ maxItems: 1
+ description: States used by the AP to signal the Hexagon core
+
+ qcom,smem-state-names:
+ maxItems: 1
+ description: The names of the state bits used for SMP2P output
+
+required:
+ - compatible
+ - reg
+ - memory-region
+
+allOf:
+ - $ref: /schemas/remoteproc/qcom,pas-common.yaml#
+ - if:
+ properties:
+ compatible:
+ enum:
+ - qcom,nord-adsp-pas
+ then:
+ properties:
+ power-domains:
+ maxItems: 2
+ power-domain-names:
+ maxItems: 2
+ else:
+ properties:
+ power-domains:
+ minItems: 3
+ power-domain-names:
+ minItems: 3
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/qcom,rpmh.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ #include <dt-bindings/interrupt-controller/irq.h>
+ #include <dt-bindings/mailbox/qcom-ipcc.h>
+ #include <dt-bindings/power/qcom,rpmhpd.h>
+ #define IPCC_MPROC_ADSP0
+
+ remoteproc@4c00000 {
+ compatible = "qcom,nord-adsp-pas";
+ reg = <0x04c00000 0x10000>;
+
+ clocks = <&rpmhcc RPMH_CXO_CLK>;
+ clock-names = "xo";
+
+ interrupts-extended = <&intc GIC_SPI 159 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>,
+ <&smp2p_adsp_in 7 IRQ_TYPE_EDGE_RISING>;
+ interrupt-names = "wdog",
+ "fatal",
+ "ready",
+ "handover",
+ "stop-ack",
+ "shutdown-ack";
+
+ memory-region = <&hpass_dsp0_mem>, <&hpass_dsp0_dtb_mem>;
+
+ firmware-name = "qcom/nord/adsp.mbn",
+ "qcom/nord/adsp_dtb.mbn";
+
+ power-domains = <&rpmhpd RPMHPD_CX>,
+ <&rpmhpd RPMHPD_MX>;
+ power-domain-names = "cx",
+ "mx";
+
+ qcom,qmp = <&aoss_qmp>;
+ qcom,smem-states = <&smp2p_adsp_out 0>;
+ qcom,smem-state-names = "stop";
+
+ glink-edge {
+ interrupts-extended = <&ipcc IPCC_MPROC_ADSP0
+ IPCC_MPROC_SIGNAL_GLINK_QMP
+ IRQ_TYPE_EDGE_RISING>;
+ mboxes = <&ipcc IPCC_MPROC_ADSP0 IPCC_MPROC_SIGNAL_GLINK_QMP>;
+
+ label = "adsp";
+ qcom,remote-pid = <2>;
+
+ /* ... */
+ };
+ };
--
2.43.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v4 3/3] remoteproc: qcom: pas: Add Nord ADSP and CDSP support
2026-07-28 8:40 [PATCH v4 0/3] Add ADSP and CDSP support for Nord SoC Shawn Guo
2026-07-28 8:40 ` [PATCH v4 1/3] dt-bindings: soc: qcom,aoss-qmp: Document Nord AOSS side channel Shawn Guo
2026-07-28 8:40 ` [PATCH v4 2/3] dt-bindings: remoteproc: qcom,nord-pas: Document Nord PAS Shawn Guo
@ 2026-07-28 8:40 ` Shawn Guo
2026-07-28 9:19 ` Konrad Dybcio
2026-07-28 9:27 ` Mukesh Ojha
2 siblings, 2 replies; 9+ messages in thread
From: Shawn Guo @ 2026-07-28 8:40 UTC (permalink / raw)
To: Bjorn Andersson
Cc: Mathieu Poirier, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Konrad Dybcio, Manivannan Sadhasivam, linux-arm-msm,
linux-remoteproc, devicetree, linux-kernel, Shawn Guo
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@oss.qualcomm.com>
---
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",
+ .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
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v4 2/3] dt-bindings: remoteproc: qcom,nord-pas: Document Nord PAS
2026-07-28 8:40 ` [PATCH v4 2/3] dt-bindings: remoteproc: qcom,nord-pas: Document Nord PAS Shawn Guo
@ 2026-07-28 8:49 ` sashiko-bot
0 siblings, 0 replies; 9+ messages in thread
From: sashiko-bot @ 2026-07-28 8:49 UTC (permalink / raw)
To: Shawn Guo; +Cc: devicetree, robh, conor+dt
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] The macro `IPCC_MPROC_ADSP0` is defined without a substitution value in the device tree example, causing it to expand to an empty string and break phandle cell counts.
--
--- Patch [2]: [PATCH v4 2/3] dt-bindings: remoteproc: qcom,nord-pas: Document Nord PAS ---
commit 8286180001504872f03eeec58c9b7bc74b5768d3
Author: Shawn Guo <shengchao.guo@oss.qualcomm.com>
dt-bindings: remoteproc: qcom,nord-pas: Document Nord PAS
This commit adds a dedicated binding for the Qualcomm Nord SoC Peripheral
Authentication Service devices. It documents the required power domains
and other properties for ADSP and CDSP instances.
> diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,nord-pas.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,nord-pas.yaml
> new file mode 100644
> index 0000000000000..e90d2953ba692
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/remoteproc/qcom,nord-pas.yaml
[ ... ]
> +examples:
> + - |
> + #include <dt-bindings/clock/qcom,rpmh.h>
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> + #include <dt-bindings/interrupt-controller/irq.h>
> + #include <dt-bindings/mailbox/qcom-ipcc.h>
> + #include <dt-bindings/power/qcom,rpmhpd.h>
> + #define IPCC_MPROC_ADSP0
[Severity: Low]
Does this macro need a substitution value? Defined this way, it evaluates
to nothing during C preprocessor expansion.
[ ... ]
> + qcom,qmp = <&aoss_qmp>;
> + qcom,smem-states = <&smp2p_adsp_out 0>;
> + qcom,smem-state-names = "stop";
> +
> + glink-edge {
> + interrupts-extended = <&ipcc IPCC_MPROC_ADSP0
> + IPCC_MPROC_SIGNAL_GLINK_QMP
> + IRQ_TYPE_EDGE_RISING>;
> + mboxes = <&ipcc IPCC_MPROC_ADSP0 IPCC_MPROC_SIGNAL_GLINK_QMP>;
[Severity: Low]
Since IPCC_MPROC_ADSP0 expands to an empty string, will the &ipcc phandles
receive one fewer argument cell than expected here? This might break the
required cell count structure when the example is evaluated.
> +
> + label = "adsp";
> + qcom,remote-pid = <2>;
> +
> + /* ... */
> + };
> + };
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260728084012.685036-1-shengchao.guo@oss.qualcomm.com?part=2
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v4 3/3] remoteproc: qcom: pas: Add Nord ADSP and CDSP support
2026-07-28 8:40 ` [PATCH v4 3/3] remoteproc: qcom: pas: Add Nord ADSP and CDSP support Shawn Guo
@ 2026-07-28 9:19 ` Konrad Dybcio
2026-07-28 9:31 ` Shawn Guo
2026-07-28 9:27 ` Mukesh Ojha
1 sibling, 1 reply; 9+ messages in thread
From: Konrad Dybcio @ 2026-07-28 9:19 UTC (permalink / raw)
To: Shawn Guo, Bjorn Andersson
Cc: Mathieu Poirier, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Konrad Dybcio, Manivannan Sadhasivam, linux-arm-msm,
linux-remoteproc, devicetree, linux-kernel
On 7/28/26 10:40 AM, 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@oss.qualcomm.com>
> ---
> +static const struct qcom_pas_data nord_adsp_resource = {
> + .crash_reason_smem = 423,
> + .firmware_name = "adsp.mdt",
Please use .mbn everywhere
with that:
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v4 3/3] remoteproc: qcom: pas: Add Nord ADSP and CDSP support
2026-07-28 8:40 ` [PATCH v4 3/3] remoteproc: qcom: pas: Add Nord ADSP and CDSP support Shawn Guo
2026-07-28 9:19 ` Konrad Dybcio
@ 2026-07-28 9:27 ` Mukesh Ojha
2026-07-28 9:38 ` Shawn Guo
1 sibling, 1 reply; 9+ messages in thread
From: Mukesh Ojha @ 2026-07-28 9:27 UTC (permalink / raw)
To: Shawn Guo
Cc: Bjorn Andersson, Mathieu Poirier, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
Manivannan Sadhasivam, linux-arm-msm, linux-remoteproc,
devicetree, linux-kernel
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@oss.qualcomm.com>
> ---
> 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
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v4 3/3] remoteproc: qcom: pas: Add Nord ADSP and CDSP support
2026-07-28 9:19 ` Konrad Dybcio
@ 2026-07-28 9:31 ` Shawn Guo
0 siblings, 0 replies; 9+ messages in thread
From: Shawn Guo @ 2026-07-28 9:31 UTC (permalink / raw)
To: Konrad Dybcio
Cc: Bjorn Andersson, Mathieu Poirier, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
Manivannan Sadhasivam, linux-arm-msm, linux-remoteproc,
devicetree, linux-kernel
On Tue, Jul 28, 2026 at 11:19:56AM +0200, Konrad Dybcio wrote:
> On 7/28/26 10:40 AM, 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@oss.qualcomm.com>
> > ---
>
> > +static const struct qcom_pas_data nord_adsp_resource = {
> > + .crash_reason_smem = 423,
> > + .firmware_name = "adsp.mdt",
>
> Please use .mbn everywhere
Ah, something copied over. Will update.
>
> with that:
>
> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Thank you, Konrad!
Shawn
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v4 3/3] remoteproc: qcom: pas: Add Nord ADSP and CDSP support
2026-07-28 9:27 ` Mukesh Ojha
@ 2026-07-28 9:38 ` Shawn Guo
0 siblings, 0 replies; 9+ messages in thread
From: Shawn Guo @ 2026-07-28 9:38 UTC (permalink / raw)
To: Mukesh Ojha
Cc: Bjorn Andersson, Mathieu Poirier, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
Manivannan Sadhasivam, linux-arm-msm, linux-remoteproc,
devicetree, linux-kernel
On Tue, Jul 28, 2026 at 02:57:49PM +0530, Mukesh Ojha wrote:
> 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@oss.qualcomm.com>
> > ---
> > drivers/remoteproc/qcom_q6v5_pas.c | 110 +++++++++++++++++++++++++++++
> > 1 file changed, 110 insertions(+)
...
> > +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 ?
This is what I found from downstream pil-rm code.
Shawn
>
> > + .ssr_name = "cdsp0",
> > + .sysmon_name = "cdsp0",
> > + .ssctl_id = 0x17,
> > + .smem_host_id = 5,
> > +};
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2026-07-28 9:38 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-28 8:40 [PATCH v4 0/3] Add ADSP and CDSP support for Nord SoC Shawn Guo
2026-07-28 8:40 ` [PATCH v4 1/3] dt-bindings: soc: qcom,aoss-qmp: Document Nord AOSS side channel Shawn Guo
2026-07-28 8:40 ` [PATCH v4 2/3] dt-bindings: remoteproc: qcom,nord-pas: Document Nord PAS Shawn Guo
2026-07-28 8:49 ` sashiko-bot
2026-07-28 8:40 ` [PATCH v4 3/3] remoteproc: qcom: pas: Add Nord ADSP and CDSP support Shawn Guo
2026-07-28 9:19 ` Konrad Dybcio
2026-07-28 9:31 ` Shawn Guo
2026-07-28 9:27 ` Mukesh Ojha
2026-07-28 9:38 ` Shawn Guo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox