arch/arm64/boot/dts/qcom/sm8750.dtsi | 69 ++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+)
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
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
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 >
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
© 2016 - 2025 Red Hat, Inc.