Re: [PATCH v2 1/6] arm64: dts: qcom: nord: Add support for ADSP and CDSPs

From: Shawn Guo

Date: Sun Sep 20 2026 - 00:51:24 EST


On Fri, Sep 04, 2026 at 04:16:14PM +0800, Shawn Guo wrote:
> Add device tree nodes to support ADSP (HPASS DSP) and CDSPs remoteproc
> on Nord SoC.
>
> This includes:
> - SMEM memory reservation used by the inter-processor communication
> infrastructure
> - IPCC mailbox controller for inter-processor signalling
> - AOSS QMP node for load state power management
> - SMP2P nodes providing stop control and fault/crash interrupt signals
> - Remoteproc nodes with a GLINK edge and FastRPC compute contexts for
> userspace offload
>
> The embedded variant specific power domains, XO clock, and interconnect
> paths are filled in nord-embedded.dtsi.
>
> Reviewed-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxxxx>
> Signed-off-by: Shawn Guo <shengchao.guo@xxxxxxxxxxxxxxxx>
> ---
> arch/arm64/boot/dts/qcom/nord-embedded.dtsi | 63 ++
> arch/arm64/boot/dts/qcom/nord-ipcc.h | 144 ++++
> arch/arm64/boot/dts/qcom/nord.dtsi | 884 ++++++++++++++++++++
> 3 files changed, 1091 insertions(+)
> create mode 100644 arch/arm64/boot/dts/qcom/nord-ipcc.h

[...]

> @@ -1518,6 +1639,103 @@ tcsr: syscon@1f60000 {
> reg = <0x0 0x01f60000 0x0 0xa0000>;
> };
>
> + remoteproc_adsp: remoteproc@4c00000 {
> + compatible = "qcom,nord-adsp-pas";
> + reg = <0x0 0x04c00000 0x0 0x10000>;
> +
> + 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>;
> +
> + qcom,qmp = <&aoss_qmp>;
> +
> + qcom,smem-states = <&smp2p_adsp_out 0>;
> + qcom,smem-state-names = "stop";
> +
> + status = "disabled";
> +
> + glink-edge {
> + interrupts-extended = <&ipcc0 IPCC_MPROC_ADSP0
> + IPCC_MPROC_SIGNAL_GLINK_QMP
> + IRQ_TYPE_EDGE_RISING>;
> + mboxes = <&ipcc0 IPCC_MPROC_ADSP0
> + IPCC_MPROC_SIGNAL_GLINK_QMP>;
> + qcom,remote-pid = <2>;
> + label = "adsp";
> +
> + fastrpc {
> + compatible = "qcom,nord-fastrpc",
> + "qcom,kaanapali-fastrpc";
> + qcom,glink-channels = "fastrpcglink-apps-dsp";
> + label = "adsp";

With commit 9981fbe599e8 ("misc: fastrpc: Allocate entire reserved memory
for Audio PD in probe") landed in linux-next, we are getting repeated
error messages.

qcom,fastrpc-cb 4c00000.remoteproc:glink-edge:fastrpc:compute-cb@6: remote heap memory region is not added

Adding memory-region fixes the problem.

memory-region = <&hpass_rpc_remote_heap_mem>;

Will send v3 for that.

Shawn

> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + compute-cb@3 {
> + compatible = "qcom,fastrpc-compute-cb";
> + reg = <3>;
> + iommus = <&apps_smmu_0 0x09e3 0x0000>,
> + <&apps_smmu_0 0x0a43 0x0020>,
> + <&apps_smmu_0 0x0a63 0x0020>,
> + <&apps_smmu_0 0x0a83 0x0000>;
> + dma-coherent;
> + };
> +
> + compute-cb@4 {
> + compatible = "qcom,fastrpc-compute-cb";
> + reg = <4>;
> + iommus = <&apps_smmu_0 0x09e4 0x0000>,
> + <&apps_smmu_0 0x0a44 0x0020>,
> + <&apps_smmu_0 0x0a64 0x0020>,
> + <&apps_smmu_0 0x0a84 0x0000>;
> + dma-coherent;
> + };
> +
> + compute-cb@5 {
> + compatible = "qcom,fastrpc-compute-cb";
> + reg = <5>;
> + iommus = <&apps_smmu_0 0x09e5 0x0000>,
> + <&apps_smmu_0 0x0a45 0x0020>,
> + <&apps_smmu_0 0x0a65 0x0020>,
> + <&apps_smmu_0 0x0a85 0x0000>;
> + dma-coherent;
> + };
> +
> + compute-cb@6 {
> + compatible = "qcom,fastrpc-compute-cb";
> + reg = <6>;
> + iommus = <&apps_smmu_0 0x09e6 0x0000>,
> + <&apps_smmu_0 0x0a46 0x0020>,
> + <&apps_smmu_0 0x0a66 0x0020>,
> + <&apps_smmu_0 0x0a86 0x0000>;
> + dma-coherent;
> + };
> + };
> + };
> + };