* [PATCH v2] arm64: dts: qcom: sm8750: Add adsp fastrpc nodes/support
@ 2025-08-05 16:20 Alexey Klimov
2025-08-05 16:51 ` Konrad Dybcio
2025-08-06 0:25 ` Bjorn Andersson
0 siblings, 2 replies; 4+ messages in thread
From: Alexey Klimov @ 2025-08-05 16:20 UTC (permalink / raw)
To: andersson, konradybcio, linux-arm-msm
Cc: robh, krzk+dt, conor+dt, devicetree, linux-kernel, srini,
quic_ekangupt, krzysztof.kozlowski, dmitry.baryshkov
While at this, also add required memory region for adsp fastrpc.
Tested on sm8750-mtp device with adsprpdcd.
Cc: Ekansh Gupta <quic_ekangupt@quicinc.com>
Cc: Srinivas Kandagatla <srini@kernel.org>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Alexey Klimov <alexey.klimov@linaro.org>
---
v2:
- removed qcom,non-secure-domain flag as requested by Srini.
Prev version: https://lore.kernel.org/linux-arm-msm/20250502011539.739937-1-alexey.klimov@linaro.org/
arch/arm64/boot/dts/qcom/sm8750.dtsi | 69 ++++++++++++++++++++++++++++
1 file changed, 69 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sm8750.dtsi b/arch/arm64/boot/dts/qcom/sm8750.dtsi
index 4643705021c6..cc74fb2e27de 100644
--- a/arch/arm64/boot/dts/qcom/sm8750.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8750.dtsi
@@ -7,6 +7,7 @@
#include <dt-bindings/clock/qcom,sm8750-gcc.h>
#include <dt-bindings/clock/qcom,sm8750-tcsr.h>
#include <dt-bindings/dma/qcom-gpi.h>
+#include <dt-bindings/firmware/qcom,scm.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interconnect/qcom,icc.h>
#include <dt-bindings/interconnect/qcom,sm8750-rpmh.h>
@@ -523,6 +524,14 @@ llcc_lpi_mem: llcc-lpi@ff800000 {
reg = <0x0 0xff800000 0x0 0x800000>;
no-map;
};
+
+ adsp_rpc_remote_heap_mem: adsp-rpc-remote-heap {
+ compatible = "shared-dma-pool";
+ alloc-ranges = <0x0 0x00000000 0x0 0xffffffff>;
+ alignment = <0x0 0x400000>;
+ size = <0x0 0xc00000>;
+ reusable;
+ };
};
smp2p-adsp {
@@ -2234,6 +2243,66 @@ q6prmcc: clock-controller {
};
};
};
+
+ fastrpc {
+ compatible = "qcom,fastrpc";
+ qcom,glink-channels = "fastrpcglink-apps-dsp";
+ label = "adsp";
+ memory-region = <&adsp_rpc_remote_heap_mem>;
+ qcom,vmids = <QCOM_SCM_VMID_LPASS
+ QCOM_SCM_VMID_ADSP_HEAP>;
+ #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;
+ };
+
+ compute-cb@8 {
+ compatible = "qcom,fastrpc-compute-cb";
+ reg = <8>;
+ iommus = <&apps_smmu 0x1008 0x80>,
+ <&apps_smmu 0x1048 0x20>;
+ dma-coherent;
+ };
+ };
};
};
--
2.47.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v2] arm64: dts: qcom: sm8750: Add adsp fastrpc nodes/support
2025-08-05 16:20 [PATCH v2] arm64: dts: qcom: sm8750: Add adsp fastrpc nodes/support Alexey Klimov
@ 2025-08-05 16:51 ` Konrad Dybcio
2025-08-06 0:25 ` Bjorn Andersson
1 sibling, 0 replies; 4+ messages in thread
From: Konrad Dybcio @ 2025-08-05 16:51 UTC (permalink / raw)
To: Alexey Klimov, andersson, konradybcio, linux-arm-msm
Cc: robh, krzk+dt, conor+dt, devicetree, linux-kernel, srini,
quic_ekangupt, krzysztof.kozlowski, dmitry.baryshkov
On 8/5/25 6:20 PM, Alexey Klimov wrote:
> While at this, also add required memory region for adsp fastrpc.
>
> Tested on sm8750-mtp device with adsprpdcd.
>
> Cc: Ekansh Gupta <quic_ekangupt@quicinc.com>
> Cc: Srinivas Kandagatla <srini@kernel.org>
> Cc: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> Signed-off-by: Alexey Klimov <alexey.klimov@linaro.org>
> ---
>
> v2:
> - removed qcom,non-secure-domain flag as requested by Srini.
>
> Prev version: https://lore.kernel.org/linux-arm-msm/20250502011539.739937-1-alexey.klimov@linaro.org/
>
> arch/arm64/boot/dts/qcom/sm8750.dtsi | 69 ++++++++++++++++++++++++++++
> 1 file changed, 69 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/sm8750.dtsi b/arch/arm64/boot/dts/qcom/sm8750.dtsi
> index 4643705021c6..cc74fb2e27de 100644
> --- a/arch/arm64/boot/dts/qcom/sm8750.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sm8750.dtsi
> @@ -7,6 +7,7 @@
> #include <dt-bindings/clock/qcom,sm8750-gcc.h>
> #include <dt-bindings/clock/qcom,sm8750-tcsr.h>
> #include <dt-bindings/dma/qcom-gpi.h>
> +#include <dt-bindings/firmware/qcom,scm.h>
> #include <dt-bindings/gpio/gpio.h>
> #include <dt-bindings/interconnect/qcom,icc.h>
> #include <dt-bindings/interconnect/qcom,sm8750-rpmh.h>
> @@ -523,6 +524,14 @@ llcc_lpi_mem: llcc-lpi@ff800000 {
> reg = <0x0 0xff800000 0x0 0x800000>;
> no-map;
> };
> +
> + adsp_rpc_remote_heap_mem: adsp-rpc-remote-heap {
> + compatible = "shared-dma-pool";
> + alloc-ranges = <0x0 0x00000000 0x0 0xffffffff>;
perhaps size=<0x1 0x0> (1<<32) is what we really want, unless the hw/sw
is allergic to accessing the very last byte in the 32-bit space
Konrad
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2] arm64: dts: qcom: sm8750: Add adsp fastrpc nodes/support
2025-08-05 16:20 [PATCH v2] arm64: dts: qcom: sm8750: Add adsp fastrpc nodes/support Alexey Klimov
2025-08-05 16:51 ` Konrad Dybcio
@ 2025-08-06 0:25 ` Bjorn Andersson
2025-08-06 12:47 ` Alexey Klimov
1 sibling, 1 reply; 4+ messages in thread
From: Bjorn Andersson @ 2025-08-06 0:25 UTC (permalink / raw)
To: Alexey Klimov
Cc: konradybcio, linux-arm-msm, robh, krzk+dt, conor+dt, devicetree,
linux-kernel, srini, quic_ekangupt, krzysztof.kozlowski,
dmitry.baryshkov
On Tue, Aug 05, 2025 at 05:20:41PM +0100, Alexey Klimov wrote:
> While at this, also add required memory region for adsp fastrpc.
Please https://docs.kernel.org/process/submitting-patches.html#describe-your-changes
rather than lazily continue the subject.
Also, the way you wrote this makes me believe adsp_rpc_remote_heap_mem
is optional, and as I don't know what it's for I don't understand why
that would be part of this patch.
>
> Tested on sm8750-mtp device with adsprpdcd.
Just adsprpdcd? Is that sufficient to say that fastrpc is functional? Or
at least that the information here is sufficiently tested?
Regards,
Bjorn
>
> Cc: Ekansh Gupta <quic_ekangupt@quicinc.com>
> Cc: Srinivas Kandagatla <srini@kernel.org>
> Cc: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> Signed-off-by: Alexey Klimov <alexey.klimov@linaro.org>
> ---
>
> v2:
> - removed qcom,non-secure-domain flag as requested by Srini.
>
> Prev version: https://lore.kernel.org/linux-arm-msm/20250502011539.739937-1-alexey.klimov@linaro.org/
>
> arch/arm64/boot/dts/qcom/sm8750.dtsi | 69 ++++++++++++++++++++++++++++
> 1 file changed, 69 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/sm8750.dtsi b/arch/arm64/boot/dts/qcom/sm8750.dtsi
> index 4643705021c6..cc74fb2e27de 100644
> --- a/arch/arm64/boot/dts/qcom/sm8750.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sm8750.dtsi
> @@ -7,6 +7,7 @@
> #include <dt-bindings/clock/qcom,sm8750-gcc.h>
> #include <dt-bindings/clock/qcom,sm8750-tcsr.h>
> #include <dt-bindings/dma/qcom-gpi.h>
> +#include <dt-bindings/firmware/qcom,scm.h>
> #include <dt-bindings/gpio/gpio.h>
> #include <dt-bindings/interconnect/qcom,icc.h>
> #include <dt-bindings/interconnect/qcom,sm8750-rpmh.h>
> @@ -523,6 +524,14 @@ llcc_lpi_mem: llcc-lpi@ff800000 {
> reg = <0x0 0xff800000 0x0 0x800000>;
> no-map;
> };
> +
> + adsp_rpc_remote_heap_mem: adsp-rpc-remote-heap {
> + compatible = "shared-dma-pool";
> + alloc-ranges = <0x0 0x00000000 0x0 0xffffffff>;
> + alignment = <0x0 0x400000>;
> + size = <0x0 0xc00000>;
> + reusable;
> + };
> };
>
> smp2p-adsp {
> @@ -2234,6 +2243,66 @@ q6prmcc: clock-controller {
> };
> };
> };
> +
> + fastrpc {
> + compatible = "qcom,fastrpc";
> + qcom,glink-channels = "fastrpcglink-apps-dsp";
> + label = "adsp";
> + memory-region = <&adsp_rpc_remote_heap_mem>;
> + qcom,vmids = <QCOM_SCM_VMID_LPASS
> + QCOM_SCM_VMID_ADSP_HEAP>;
> + #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;
> + };
> +
> + compute-cb@8 {
> + compatible = "qcom,fastrpc-compute-cb";
> + reg = <8>;
> + iommus = <&apps_smmu 0x1008 0x80>,
> + <&apps_smmu 0x1048 0x20>;
> + dma-coherent;
> + };
> + };
> };
> };
>
> --
> 2.47.2
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2] arm64: dts: qcom: sm8750: Add adsp fastrpc nodes/support
2025-08-06 0:25 ` Bjorn Andersson
@ 2025-08-06 12:47 ` Alexey Klimov
0 siblings, 0 replies; 4+ messages in thread
From: Alexey Klimov @ 2025-08-06 12:47 UTC (permalink / raw)
To: Bjorn Andersson
Cc: konradybcio, linux-arm-msm, robh, krzk+dt, conor+dt, devicetree,
linux-kernel, srini, quic_ekangupt, krzysztof.kozlowski,
dmitry.baryshkov
On Wed Aug 6, 2025 at 1:25 AM BST, Bjorn Andersson wrote:
Previous version was sent few months back.
> On Tue, Aug 05, 2025 at 05:20:41PM +0100, Alexey Klimov wrote:
>> While at this, also add required memory region for adsp fastrpc.
>
> Please https://docs.kernel.org/process/submitting-patches.html#describe-your-changes
> rather than lazily continue the subject.
Ok.
It also seems that some other commits that were merged doesn't
really describe addition of fastrpc nodes well.
> Also, the way you wrote this makes me believe adsp_rpc_remote_heap_mem
> is optional, and as I don't know what it's for I don't understand why
> that would be part of this patch.
Yeah, after looking further at the bindings I agree that this should be
described better.
Although some of this is confusing:
>required memory region
>adsp_rpc_remote_heap_mem is optional
Anyhow this mem region seems to be optional so I'll try to split it into
two patches (need to check that dtbs check will be happy with that).
It also seems that when adsp_rpc_remote_heap_mem was merged for other
dtsi-es then no questions were asked.
>> Tested on sm8750-mtp device with adsprpdcd.
>
> Just adsprpdcd?
Yeah, I forgot to mention that getserial can libcalculator tests.
> Is that sufficient to say that fastrpc is functional? Or
> at least that the information here is sufficiently tested?
The testing of fastrpc for adsp is quite limited. If you or Qualcomm can
provide the usable tests to run and verify then please do so.
I think what happens is that often the info for fastrpc nodes just being
copied and filled in with info from downstream with no requests to provide
test results.
Here it was tested with adsprpdcd with compressed playback and two tests
above I forgot to mention.
[..]
Thanks,
Alexey
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-08-06 12:47 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-05 16:20 [PATCH v2] arm64: dts: qcom: sm8750: Add adsp fastrpc nodes/support Alexey Klimov
2025-08-05 16:51 ` Konrad Dybcio
2025-08-06 0:25 ` Bjorn Andersson
2025-08-06 12:47 ` Alexey Klimov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).