Re: [PATCH 07/20] arm64: dts: qcom: kaanapali: Add remoteprocs for Kaanapali SoC

Alexey Klimov
2025-09-30T17:24:40Z

On Thu Sep 25, 2025 at 1:17 AM BST, Jingyi Wang wrote:
> Add remoteproc PAS loader for ADSP, CDSP, MPSS and SoCCP with
> its SMP2P and fastrpc nodes.
>
> Written with help from Kumari Pallavi(added fastrpc).

Co-developed-by tag then maybe?

Also I don't see this name in email addresses.

> Signed-off-by: Jingyi Wang <jingyi.wang@oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/kaanapali.dtsi | 484 ++++++++++++++++++++++++++++++++
> 1 file changed, 484 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/kaanapali.dtsi b/arch/arm64/boot/dts/qcom/kaanapali.dtsi
> index 08ab267bf9a7..c3b38fd851c5 100644
> --- a/arch/arm64/boot/dts/qcom/kaanapali.dtsi
> +++ b/arch/arm64/boot/dts/qcom/kaanapali.dtsi
> @@ -438,6 +438,121 @@ rmtfs_mem: rmtfs@d7c00000 {
> };
> };

[...]

> + remoteproc_adsp: remoteproc@6800000 {
> + compatible = "qcom,kaanapali-adsp-pas", "qcom,sm8550-adsp-pas";
> + reg = <0x0 0x06800000 0x0 0x10000>;
> +
> + interrupts-extended = <&pdc 6 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";
> +
> + clocks = <&rpmhcc RPMH_CXO_CLK>;
> + clock-names = "xo";
> +
> + interconnects = <&lpass_lpicx_noc MASTER_LPASS_PROC QCOM_ICC_TAG_ALWAYS
> + &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
> +
> + power-domains = <&rpmhpd RPMHPD_LCX>,
> + <&rpmhpd RPMHPD_LMX>;
> + power-domain-names = "lcx",
> + "lmx";
> +
> + memory-region = <&adspslpi_mem>, <&q6_adsp_dtb_mem>;
> +
> + qcom,qmp = <&aoss_qmp>;
> +
> + qcom,smem-states = <&smp2p_adsp_out 0>;
> + qcom,smem-state-names = "stop";
> +
> + status = "disabled";
> +
> + remoteproc_adsp_glink: glink-edge {
> + interrupts-extended = <&ipcc IPCC_MPROC_LPASS
> + IPCC_MPROC_SIGNAL_GLINK_QMP
> + IRQ_TYPE_EDGE_RISING>;
> +
> + mboxes = <&ipcc IPCC_MPROC_LPASS
> + IPCC_MPROC_SIGNAL_GLINK_QMP>;
> +
> + qcom,remote-pid = <2>;
> +
> + label = "lpass";
> +
> + fastrpc {
> + compatible = "qcom,fastrpc";
> + qcom,glink-channels = "fastrpcglink-apps-dsp";
> + label = "adsp";
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + compute-cb@3 {
> + compatible = "qcom,fastrpc-compute-cb";
> + reg = <3>;
> +
> + iommus = <&apps_smmu 0x1003 0x80>,
> + <&apps_smmu 0x1043 0x20>;
> + dma-coherent;
> + };
> +
> + compute-cb@4 {
> + compatible = "qcom,fastrpc-compute-cb";
> + reg = <4>;
> +
> + iommus = <&apps_smmu 0x1004 0x80>,
> + <&apps_smmu 0x1044 0x20>;
> + dma-coherent;
> + };
> +
> + compute-cb@5 {
> + compatible = "qcom,fastrpc-compute-cb";
> + reg = <5>;
> +
> + iommus = <&apps_smmu 0x1005 0x80>,
> + <&apps_smmu 0x1045 0x20>;
> + dma-coherent;
> + };
> +
> + compute-cb@6 {
> + compatible = "qcom,fastrpc-compute-cb";
> + reg = <6>;
> +
> + iommus = <&apps_smmu 0x1006 0x80>,
> + <&apps_smmu 0x1046 0x20>;
> + dma-coherent;
> + };
> +
> + compute-cb@7 {
> + compatible = "qcom,fastrpc-compute-cb";
> + reg = <7>;
> +
> + iommus = <&apps_smmu 0x1007 0x40>,
> + <&apps_smmu 0x1067 0x0>,
> + <&apps_smmu 0x1087 0x0>;
> + dma-coherent;
> + };
> + };
> + };
> + };

Fastrpc nodes here. Was this tested? If yes, then how?
Or was it just copied from somewhere from downstream?

The same questions basically go for cdsp fastrpc too.

[..]

> + label = "cdsp";
> +
> + fastrpc {
> + compatible = "qcom,fastrpc";
> + qcom,glink-channels = "fastrpcglink-apps-dsp";
> + label = "cdsp";
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + compute-cb@1 {
> + compatible = "qcom,fastrpc-compute-cb";
> + reg = <1>;
> + iommus = <&apps_smmu 0x19c1 0x0>,
> + <&apps_smmu 0x1961 0x0>,
> + <&apps_smmu 0x0c21 0x0>,
> + <&apps_smmu 0x0c01 0x40>;
> + dma-coherent;
> + };
> +
> + compute-cb@2 {
> + compatible = "qcom,fastrpc-compute-cb";
> + reg = <2>;
> + iommus = <&apps_smmu 0x1962 0x0>,
> + <&apps_smmu 0x0c02 0x20>,
> + <&apps_smmu 0x0c42 0x0>,
> + <&apps_smmu 0x19c2 0x0>;
> + dma-coherent;
> + };
> +
> + compute-cb@3 {
> + compatible = "qcom,fastrpc-compute-cb";
> + reg = <3>;
> + iommus = <&apps_smmu 0x1963 0x0>,
> + <&apps_smmu 0x0c23 0x0>,
> + <&apps_smmu 0x0c03 0x40>,
> + <&apps_smmu 0x19c3 0x0>;
> + dma-coherent;
> + };
> +
> + compute-cb@4 {
> + compatible = "qcom,fastrpc-compute-cb";
> + reg = <4>;
> + iommus = <&apps_smmu 0x1964 0x0>,
> + <&apps_smmu 0x0c44 0x0>,
> + <&apps_smmu 0x0c04 0x20>,
> + <&apps_smmu 0x19c4 0x0>;
> + dma-coherent;
> + };
> +
> + compute-cb@5 {
> + compatible = "qcom,fastrpc-compute-cb";
> + reg = <5>;
> + iommus = <&apps_smmu 0x1965 0x0>,
> + <&apps_smmu 0x0c45 0x0>,
> + <&apps_smmu 0x0c05 0x20>,
> + <&apps_smmu 0x19c5 0x0>;
> + dma-coherent;
> + };
> +
> + compute-cb@6 {
> + compatible = "qcom,fastrpc-compute-cb";
> + reg = <6>;
> + iommus = <&apps_smmu 0x1966 0x0>,
> + <&apps_smmu 0x0c06 0x20>,
> + <&apps_smmu 0x0c46 0x0>,
> + <&apps_smmu 0x19c6 0x0>;
> + dma-coherent;
> + };
> +
> + compute-cb@7 {
> + compatible = "qcom,fastrpc-compute-cb";
> + reg = <7>;
> + iommus = <&apps_smmu 0x1967 0x0>,
> + <&apps_smmu 0x0c27 0x0>,
> + <&apps_smmu 0x0c07 0x40>,
> + <&apps_smmu 0x19c7 0x0>;
> + dma-coherent;
> + };
> +
> + compute-cb@8 {
> + compatible = "qcom,fastrpc-compute-cb";
> + reg = <8>;
> + iommus = <&apps_smmu 0x1968 0x0>,
> + <&apps_smmu 0x0c08 0x20>,
> + <&apps_smmu 0x0c48 0x0>,
> + <&apps_smmu 0x19c8 0x0>;
> + dma-coherent;
> + };
> +
> + /* note: secure cb9 in downstream */
> +
> + compute-cb@12 {
> + compatible = "qcom,fastrpc-compute-cb";
> + reg = <12>;
> + iommus = <&apps_smmu 0x196c 0x0>,
> + <&apps_smmu 0x0c2c 0x00>,
> + <&apps_smmu 0x0c0c 0x40>,
> + <&apps_smmu 0x19cc 0x0>;
> + dma-coherent;
> + };
> +
> + compute-cb@13 {
> + compatible = "qcom,fastrpc-compute-cb";
> + reg = <13>;
> + iommus = <&apps_smmu 0x196d 0x0>,
> + <&apps_smmu 0x0c0d 0x40>,
> + <&apps_smmu 0x0c2e 0x0>,
> + <&apps_smmu 0x0c2d 0x0>,
> + <&apps_smmu 0x19cd 0x0>;
> + dma-coherent;
> + };
> + };
> + };
> + };
> +

Best regards,
Alexey