[PATCH] arm64: dts: qcom: sm8750: Add adsp fastrpc support

Alexey Klimov posted 1 patch 9 months, 1 week ago
arch/arm64/boot/dts/qcom/sm8750.dtsi | 70 ++++++++++++++++++++++++++++
1 file changed, 70 insertions(+)
[PATCH] arm64: dts: qcom: sm8750: Add adsp fastrpc support
Posted by Alexey Klimov 9 months, 1 week ago
While at this, also add required memory region for 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>
---
 arch/arm64/boot/dts/qcom/sm8750.dtsi | 70 ++++++++++++++++++++++++++++
 1 file changed, 70 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sm8750.dtsi b/arch/arm64/boot/dts/qcom/sm8750.dtsi
index 149d2ed17641..48ee66125a89 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/interconnect/qcom,icc.h>
 #include <dt-bindings/interconnect/qcom,sm8750-rpmh.h>
 #include <dt-bindings/interrupt-controller/arm-gic.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 {
@@ -2237,6 +2246,67 @@ 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>;
+					qcom,non-secure-domain;
+					#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
Re: [PATCH] arm64: dts: qcom: sm8750: Add adsp fastrpc support
Posted by Srinivas Kandagatla 9 months, 1 week ago
On 5/2/25 02:15, Alexey Klimov wrote:
> While at this, also add required memory region for 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>
> ---
>  arch/arm64/boot/dts/qcom/sm8750.dtsi | 70 ++++++++++++++++++++++++++++
>  1 file changed, 70 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/sm8750.dtsi b/arch/arm64/boot/dts/qcom/sm8750.dtsi
> index 149d2ed17641..48ee66125a89 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/interconnect/qcom,icc.h>
>  #include <dt-bindings/interconnect/qcom,sm8750-rpmh.h>
>  #include <dt-bindings/interrupt-controller/arm-gic.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 {
> @@ -2237,6 +2246,67 @@ 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>;
> +					qcom,non-secure-domain;

Any reason why we what to mark adsp as non-secure domain by default?

--srini

> +					#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;
> +					};
> +				};
>  			};
>  		};
>
Re: [PATCH] arm64: dts: qcom: sm8750: Add adsp fastrpc support
Posted by Alexey Klimov 9 months ago
On Fri May 2, 2025 at 11:51 AM BST, Srinivas Kandagatla wrote:
> On 5/2/25 02:15, Alexey Klimov wrote:
>> While at this, also add required memory region for 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>
>> ---
>>  arch/arm64/boot/dts/qcom/sm8750.dtsi | 70 ++++++++++++++++++++++++++++
>>  1 file changed, 70 insertions(+)
>> 
>> diff --git a/arch/arm64/boot/dts/qcom/sm8750.dtsi b/arch/arm64/boot/dts/qcom/sm8750.dtsi
>> index 149d2ed17641..48ee66125a89 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/interconnect/qcom,icc.h>
>>  #include <dt-bindings/interconnect/qcom,sm8750-rpmh.h>
>>  #include <dt-bindings/interrupt-controller/arm-gic.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 {
>> @@ -2237,6 +2246,67 @@ 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>;
>> +					qcom,non-secure-domain;
>
> Any reason why we what to mark adsp as non-secure domain by default?

No particular reason. That's what we went with on other platforms, so this just follows
the same. If we need to update this flag to secure then most likely that should be done
for some other platforms as well.
The only thing I know that adsprpcd + audio pd works with non-secure flag.
I can try to re-test with secure flag.

Ekansh, do we have any preference here regarding this?

Best regards,
Alexey
Re: [PATCH] arm64: dts: qcom: sm8750: Add adsp fastrpc support
Posted by Srinivas Kandagatla 9 months ago
On 5/9/25 14:16, Alexey Klimov wrote:
> On Fri May 2, 2025 at 11:51 AM BST, Srinivas Kandagatla wrote:
>> On 5/2/25 02:15, Alexey Klimov wrote:
>>> While at this, also add required memory region for 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>
>>> ---
>>>  arch/arm64/boot/dts/qcom/sm8750.dtsi | 70 ++++++++++++++++++++++++++++
>>>  1 file changed, 70 insertions(+)
>>>
>>> diff --git a/arch/arm64/boot/dts/qcom/sm8750.dtsi b/arch/arm64/boot/dts/qcom/sm8750.dtsi
>>> index 149d2ed17641..48ee66125a89 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/interconnect/qcom,icc.h>
>>>  #include <dt-bindings/interconnect/qcom,sm8750-rpmh.h>
>>>  #include <dt-bindings/interrupt-controller/arm-gic.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 {
>>> @@ -2237,6 +2246,67 @@ 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>;
>>> +					qcom,non-secure-domain;
>>
>> Any reason why we what to mark adsp as non-secure domain by default?
> 
> No particular reason. That's what we went with on other platforms, so this just follows
> the same. If we need to update this flag to secure then most likely that should be done
> for some other platforms as well.
> The only thing I know that adsprpcd + audio pd works with non-secure flag.
> I can try to re-test with secure flag.
> 
I know that this is loosely enforced in the current state.
We want adsp to be always in secure mode as it will have access to some
of the IP blocks inside the DSP other than just hexagon compute.


> Ekansh, do we have any preference here regarding this?

@Ekansh, we should provide that clarity in dt bindings.

--srini
> 
> Best regards,
> Alexey
Re: [PATCH] arm64: dts: qcom: sm8750: Add adsp fastrpc support
Posted by Ekansh Gupta 9 months ago

On 5/9/2025 7:01 PM, Srinivas Kandagatla wrote:
> On 5/9/25 14:16, Alexey Klimov wrote:
>> On Fri May 2, 2025 at 11:51 AM BST, Srinivas Kandagatla wrote:
>>> On 5/2/25 02:15, Alexey Klimov wrote:
>>>> While at this, also add required memory region for 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>
>>>> ---
>>>>  arch/arm64/boot/dts/qcom/sm8750.dtsi | 70 ++++++++++++++++++++++++++++
>>>>  1 file changed, 70 insertions(+)
>>>>
>>>> diff --git a/arch/arm64/boot/dts/qcom/sm8750.dtsi b/arch/arm64/boot/dts/qcom/sm8750.dtsi
>>>> index 149d2ed17641..48ee66125a89 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/interconnect/qcom,icc.h>
>>>>  #include <dt-bindings/interconnect/qcom,sm8750-rpmh.h>
>>>>  #include <dt-bindings/interrupt-controller/arm-gic.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 {
>>>> @@ -2237,6 +2246,67 @@ 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>;
>>>> +					qcom,non-secure-domain;
>>> Any reason why we what to mark adsp as non-secure domain by default?
>> No particular reason. That's what we went with on other platforms, so this just follows
>> the same. If we need to update this flag to secure then most likely that should be done
>> for some other platforms as well.
>> The only thing I know that adsprpcd + audio pd works with non-secure flag.
>> I can try to re-test with secure flag.
>>
> I know that this is loosely enforced in the current state.
> We want adsp to be always in secure mode as it will have access to some
> of the IP blocks inside the DSP other than just hexagon compute.
>
>
>> Ekansh, do we have any preference here regarding this?
> @Ekansh, we should provide that clarity in dt bindings.

qcom,non-secure-domain should actually represent the DSPs supporting
unsigned PD(low privileged) and secure only supports Signed PD(privileged).
I had added some details here[1] also.

I agree with Srini's point about providing clarity in dt bindings for this
property. I'll send some changes for this.

[1] https://lore.kernel.org/all/412fe24e-ce70-4733-ace5-d3fbe43476c4@oss.qualcomm.com/

//Ekansh

>
> --srini
>> Best regards,
>> Alexey
Re: [PATCH] arm64: dts: qcom: sm8750: Add adsp fastrpc support
Posted by Konrad Dybcio 9 months, 1 week ago
On 5/2/25 3:15 AM, Alexey Klimov wrote:
> While at this, also add required memory region for 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>
> ---
>  arch/arm64/boot/dts/qcom/sm8750.dtsi | 70 ++++++++++++++++++++++++++++
>  1 file changed, 70 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/sm8750.dtsi b/arch/arm64/boot/dts/qcom/sm8750.dtsi
> index 149d2ed17641..48ee66125a89 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/interconnect/qcom,icc.h>
>  #include <dt-bindings/interconnect/qcom,sm8750-rpmh.h>
>  #include <dt-bindings/interrupt-controller/arm-gic.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 {
> @@ -2237,6 +2246,67 @@ q6prmcc: clock-controller {
>  						};
>  					};
>  				};
> +
> +				fastrpc {
> +					compatible = "qcom,fastrpc";
> +					qcom,glink-channels = "fastrpcglink-apps-dsp";
> +					label = "adsp";
> +					memory-region = <&adsp_rpc_remote_heap_mem>;

IIUC the driver only considers this on the sensor DSP

Konrad
Re: [PATCH] arm64: dts: qcom: sm8750: Add adsp fastrpc support
Posted by Alexey Klimov 9 months ago
On Fri May 2, 2025 at 10:38 AM BST, Konrad Dybcio wrote:
> On 5/2/25 3:15 AM, Alexey Klimov wrote:
>> While at this, also add required memory region for 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>
>> ---
>>  arch/arm64/boot/dts/qcom/sm8750.dtsi | 70 ++++++++++++++++++++++++++++
>>  1 file changed, 70 insertions(+)
>> 
>> diff --git a/arch/arm64/boot/dts/qcom/sm8750.dtsi b/arch/arm64/boot/dts/qcom/sm8750.dtsi
>> index 149d2ed17641..48ee66125a89 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/interconnect/qcom,icc.h>
>>  #include <dt-bindings/interconnect/qcom,sm8750-rpmh.h>
>>  #include <dt-bindings/interrupt-controller/arm-gic.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 {
>> @@ -2237,6 +2246,67 @@ q6prmcc: clock-controller {
>>  						};
>>  					};
>>  				};
>> +
>> +				fastrpc {
>> +					compatible = "qcom,fastrpc";
>> +					qcom,glink-channels = "fastrpcglink-apps-dsp";
>> +					label = "adsp";
>> +					memory-region = <&adsp_rpc_remote_heap_mem>;
>
> IIUC the driver only considers this on the sensor DSP

Memory region is required for audio protection domain + adsprpdcd as far as I know.

Thanks,
Alexey
Re: [PATCH] arm64: dts: qcom: sm8750: Add adsp fastrpc support
Posted by Konrad Dybcio 9 months ago
On 5/9/25 12:20 AM, Alexey Klimov wrote:
> On Fri May 2, 2025 at 10:38 AM BST, Konrad Dybcio wrote:
>> On 5/2/25 3:15 AM, Alexey Klimov wrote:
>>> While at this, also add required memory region for 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>
>>> ---
>>>  arch/arm64/boot/dts/qcom/sm8750.dtsi | 70 ++++++++++++++++++++++++++++
>>>  1 file changed, 70 insertions(+)
>>>
>>> diff --git a/arch/arm64/boot/dts/qcom/sm8750.dtsi b/arch/arm64/boot/dts/qcom/sm8750.dtsi
>>> index 149d2ed17641..48ee66125a89 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/interconnect/qcom,icc.h>
>>>  #include <dt-bindings/interconnect/qcom,sm8750-rpmh.h>
>>>  #include <dt-bindings/interrupt-controller/arm-gic.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 {
>>> @@ -2237,6 +2246,67 @@ q6prmcc: clock-controller {
>>>  						};
>>>  					};
>>>  				};
>>> +
>>> +				fastrpc {
>>> +					compatible = "qcom,fastrpc";
>>> +					qcom,glink-channels = "fastrpcglink-apps-dsp";
>>> +					label = "adsp";
>>> +					memory-region = <&adsp_rpc_remote_heap_mem>;
>>
>> IIUC the driver only considers this on the sensor DSP
> 
> Memory region is required for audio protection domain + adsprpdcd as far as I know.

next-20250508

rmem_node = of_parse_phandle(rdev->of_node, "memory-region", 0);
if (domain_id == SDSP_DOMAIN_ID && rmem_node) {
	// ...
}

maybe some driver changes are still pending?

Konrad
Re: [PATCH] arm64: dts: qcom: sm8750: Add adsp fastrpc support
Posted by Ekansh Gupta 9 months ago

On 5/9/2025 4:27 AM, Konrad Dybcio wrote:
> On 5/9/25 12:20 AM, Alexey Klimov wrote:
>> On Fri May 2, 2025 at 10:38 AM BST, Konrad Dybcio wrote:
>>> On 5/2/25 3:15 AM, Alexey Klimov wrote:
>>>> While at this, also add required memory region for 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>
>>>> ---
>>>>  arch/arm64/boot/dts/qcom/sm8750.dtsi | 70 ++++++++++++++++++++++++++++
>>>>  1 file changed, 70 insertions(+)
>>>>
>>>> diff --git a/arch/arm64/boot/dts/qcom/sm8750.dtsi b/arch/arm64/boot/dts/qcom/sm8750.dtsi
>>>> index 149d2ed17641..48ee66125a89 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/interconnect/qcom,icc.h>
>>>>  #include <dt-bindings/interconnect/qcom,sm8750-rpmh.h>
>>>>  #include <dt-bindings/interrupt-controller/arm-gic.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 {
>>>> @@ -2237,6 +2246,67 @@ q6prmcc: clock-controller {
>>>>  						};
>>>>  					};
>>>>  				};
>>>> +
>>>> +				fastrpc {
>>>> +					compatible = "qcom,fastrpc";
>>>> +					qcom,glink-channels = "fastrpcglink-apps-dsp";
>>>> +					label = "adsp";
>>>> +					memory-region = <&adsp_rpc_remote_heap_mem>;
>>> IIUC the driver only considers this on the sensor DSP
>> Memory region is required for audio protection domain + adsprpdcd as far as I know.
> next-20250508
>
> rmem_node = of_parse_phandle(rdev->of_node, "memory-region", 0);
> if (domain_id == SDSP_DOMAIN_ID && rmem_node) {
> 	// ...
> }
>
> maybe some driver changes are still pending?

Would like to add some more details here:

Memory region is required for audio PD for dynamic loading and remote heap memory
requirements. Some initial memory(~2MB) is allocated initially when audio daemon
is getting attached[1] and this memory is added to audio PD memory pool.

Additionally, if there is some additional memory requirement from audio PD, the
PD can request for more memory using remote heap request[2]

The support for SDSP was added sometime back[3] to support SDSP usecases on some old
platform as there were no dedicated context banks for SDSP there. On recent platforms,
context banks are available wherever SDSP is supported. 

[1] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/misc/fastrpc.c#n1273
[2] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/misc/fastrpc.c#n1884
[3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/misc/fastrpc.c?id=c3c0363bc72d4d0907a6d446d7424b3f022ce82a

//Ekansh

>
> Konrad
>
Re: [PATCH] arm64: dts: qcom: sm8750: Add adsp fastrpc support
Posted by Konrad Dybcio 9 months ago
On 5/9/25 5:42 AM, Ekansh Gupta wrote:
> 
> 
> On 5/9/2025 4:27 AM, Konrad Dybcio wrote:
>> On 5/9/25 12:20 AM, Alexey Klimov wrote:
>>> On Fri May 2, 2025 at 10:38 AM BST, Konrad Dybcio wrote:
>>>> On 5/2/25 3:15 AM, Alexey Klimov wrote:
>>>>> While at this, also add required memory region for 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>
>>>>> ---
>>>>>  arch/arm64/boot/dts/qcom/sm8750.dtsi | 70 ++++++++++++++++++++++++++++
>>>>>  1 file changed, 70 insertions(+)
>>>>>
>>>>> diff --git a/arch/arm64/boot/dts/qcom/sm8750.dtsi b/arch/arm64/boot/dts/qcom/sm8750.dtsi
>>>>> index 149d2ed17641..48ee66125a89 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/interconnect/qcom,icc.h>
>>>>>  #include <dt-bindings/interconnect/qcom,sm8750-rpmh.h>
>>>>>  #include <dt-bindings/interrupt-controller/arm-gic.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 {
>>>>> @@ -2237,6 +2246,67 @@ q6prmcc: clock-controller {
>>>>>  						};
>>>>>  					};
>>>>>  				};
>>>>> +
>>>>> +				fastrpc {
>>>>> +					compatible = "qcom,fastrpc";
>>>>> +					qcom,glink-channels = "fastrpcglink-apps-dsp";
>>>>> +					label = "adsp";
>>>>> +					memory-region = <&adsp_rpc_remote_heap_mem>;
>>>> IIUC the driver only considers this on the sensor DSP
>>> Memory region is required for audio protection domain + adsprpdcd as far as I know.
>> next-20250508
>>
>> rmem_node = of_parse_phandle(rdev->of_node, "memory-region", 0);
>> if (domain_id == SDSP_DOMAIN_ID && rmem_node) {
>> 	// ...
>> }
>>
>> maybe some driver changes are still pending?
> 
> Would like to add some more details here:
> 
> Memory region is required for audio PD for dynamic loading and remote heap memory
> requirements. Some initial memory(~2MB) is allocated initially when audio daemon
> is getting attached[1] and this memory is added to audio PD memory pool.
> 
> Additionally, if there is some additional memory requirement from audio PD, the
> PD can request for more memory using remote heap request[2]
> 
> The support for SDSP was added sometime back[3] to support SDSP usecases on some old
> platform as there were no dedicated context banks for SDSP there. On recent platforms,
> context banks are available wherever SDSP is supported. 
> 
> [1] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/misc/fastrpc.c#n1273
> [2] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/misc/fastrpc.c#n1884
> [3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/misc/fastrpc.c?id=c3c0363bc72d4d0907a6d446d7424b3f022ce82a

Ok, this was mildly confusing given there's specific "normal" region
handling, but the DMA allocator takes care of this one

Konrad
Re: [PATCH] arm64: dts: qcom: sm8750: Add adsp fastrpc support
Posted by Alexey Klimov 8 months ago
On Tue May 13, 2025 at 2:09 PM BST, Konrad Dybcio wrote:
> On 5/9/25 5:42 AM, Ekansh Gupta wrote:
>> 
>> On 5/9/2025 4:27 AM, Konrad Dybcio wrote:
>>> On 5/9/25 12:20 AM, Alexey Klimov wrote:
>>>> On Fri May 2, 2025 at 10:38 AM BST, Konrad Dybcio wrote:
>>>>> On 5/2/25 3:15 AM, Alexey Klimov wrote:
>>>>>> While at this, also add required memory region for 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>
>>>>>> ---
>>>>>>  arch/arm64/boot/dts/qcom/sm8750.dtsi | 70 ++++++++++++++++++++++++++++
>>>>>>  1 file changed, 70 insertions(+)

[...]

>>>>> IIUC the driver only considers this on the sensor DSP
>>>> Memory region is required for audio protection domain + adsprpdcd as far as I know.
>>> next-20250508
>>>
>>> rmem_node = of_parse_phandle(rdev->of_node, "memory-region", 0);
>>> if (domain_id == SDSP_DOMAIN_ID && rmem_node) {
>>> 	// ...
>>> }
>>>
>>> maybe some driver changes are still pending?
>> 
>> Would like to add some more details here:
>> 
>> Memory region is required for audio PD for dynamic loading and remote heap memory
>> requirements. Some initial memory(~2MB) is allocated initially when audio daemon
>> is getting attached[1] and this memory is added to audio PD memory pool.
>> 
>> Additionally, if there is some additional memory requirement from audio PD, the
>> PD can request for more memory using remote heap request[2]
>> 
>> The support for SDSP was added sometime back[3] to support SDSP usecases on some old
>> platform as there were no dedicated context banks for SDSP there. On recent platforms,
>> context banks are available wherever SDSP is supported. 
>> 
>> [1] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/misc/fastrpc.c#n1273
>> [2] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/misc/fastrpc.c#n1884
>> [3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/misc/fastrpc.c?id=c3c0363bc72d4d0907a6d446d7424b3f022ce82a
>
> Ok, this was mildly confusing given there's specific "normal" region
> handling, but the DMA allocator takes care of this one

Konrad, Srini, Ekansh,
what's left here -- I guess memory region is needed, 
so do you want me to test with secure flag as the only required change at this point?

Best regards,
Alexey
Re: [PATCH] arm64: dts: qcom: sm8750: Add adsp fastrpc support
Posted by Konrad Dybcio 7 months, 4 weeks ago
On 6/13/25 4:48 PM, Alexey Klimov wrote:
> On Tue May 13, 2025 at 2:09 PM BST, Konrad Dybcio wrote:
>> On 5/9/25 5:42 AM, Ekansh Gupta wrote:
>>>
>>> On 5/9/2025 4:27 AM, Konrad Dybcio wrote:
>>>> On 5/9/25 12:20 AM, Alexey Klimov wrote:
>>>>> On Fri May 2, 2025 at 10:38 AM BST, Konrad Dybcio wrote:
>>>>>> On 5/2/25 3:15 AM, Alexey Klimov wrote:
>>>>>>> While at this, also add required memory region for 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>
>>>>>>> ---
>>>>>>>  arch/arm64/boot/dts/qcom/sm8750.dtsi | 70 ++++++++++++++++++++++++++++
>>>>>>>  1 file changed, 70 insertions(+)
> 
> [...]
> 
>>>>>> IIUC the driver only considers this on the sensor DSP
>>>>> Memory region is required for audio protection domain + adsprpdcd as far as I know.
>>>> next-20250508
>>>>
>>>> rmem_node = of_parse_phandle(rdev->of_node, "memory-region", 0);
>>>> if (domain_id == SDSP_DOMAIN_ID && rmem_node) {
>>>> 	// ...
>>>> }
>>>>
>>>> maybe some driver changes are still pending?
>>>
>>> Would like to add some more details here:
>>>
>>> Memory region is required for audio PD for dynamic loading and remote heap memory
>>> requirements. Some initial memory(~2MB) is allocated initially when audio daemon
>>> is getting attached[1] and this memory is added to audio PD memory pool.
>>>
>>> Additionally, if there is some additional memory requirement from audio PD, the
>>> PD can request for more memory using remote heap request[2]
>>>
>>> The support for SDSP was added sometime back[3] to support SDSP usecases on some old
>>> platform as there were no dedicated context banks for SDSP there. On recent platforms,
>>> context banks are available wherever SDSP is supported. 
>>>
>>> [1] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/misc/fastrpc.c#n1273
>>> [2] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/misc/fastrpc.c#n1884
>>> [3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/misc/fastrpc.c?id=c3c0363bc72d4d0907a6d446d7424b3f022ce82a
>>
>> Ok, this was mildly confusing given there's specific "normal" region
>> handling, but the DMA allocator takes care of this one
> 
> Konrad, Srini, Ekansh,
> what's left here -- I guess memory region is needed, 
> so do you want me to test with secure flag as the only required change at this point?

I think so, please give it a shot

Konrad
Re: [PATCH] arm64: dts: qcom: sm8750: Add adsp fastrpc support
Posted by Dmitry Baryshkov 9 months ago
On Fri, May 09, 2025 at 09:12:30AM +0530, Ekansh Gupta wrote:
> 
> 
> On 5/9/2025 4:27 AM, Konrad Dybcio wrote:
> > On 5/9/25 12:20 AM, Alexey Klimov wrote:
> >> On Fri May 2, 2025 at 10:38 AM BST, Konrad Dybcio wrote:
> >>> On 5/2/25 3:15 AM, Alexey Klimov wrote:
> >>>> While at this, also add required memory region for 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>
> >>>> ---
> >>>>  arch/arm64/boot/dts/qcom/sm8750.dtsi | 70 ++++++++++++++++++++++++++++
> >>>>  1 file changed, 70 insertions(+)
> >>>>
> >>>> diff --git a/arch/arm64/boot/dts/qcom/sm8750.dtsi b/arch/arm64/boot/dts/qcom/sm8750.dtsi
> >>>> index 149d2ed17641..48ee66125a89 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/interconnect/qcom,icc.h>
> >>>>  #include <dt-bindings/interconnect/qcom,sm8750-rpmh.h>
> >>>>  #include <dt-bindings/interrupt-controller/arm-gic.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 {
> >>>> @@ -2237,6 +2246,67 @@ q6prmcc: clock-controller {
> >>>>  						};
> >>>>  					};
> >>>>  				};
> >>>> +
> >>>> +				fastrpc {
> >>>> +					compatible = "qcom,fastrpc";
> >>>> +					qcom,glink-channels = "fastrpcglink-apps-dsp";
> >>>> +					label = "adsp";
> >>>> +					memory-region = <&adsp_rpc_remote_heap_mem>;
> >>> IIUC the driver only considers this on the sensor DSP
> >> Memory region is required for audio protection domain + adsprpdcd as far as I know.
> > next-20250508
> >
> > rmem_node = of_parse_phandle(rdev->of_node, "memory-region", 0);
> > if (domain_id == SDSP_DOMAIN_ID && rmem_node) {
> > 	// ...
> > }
> >
> > maybe some driver changes are still pending?
> 
> Would like to add some more details here:
> 
> Memory region is required for audio PD for dynamic loading and remote heap memory
> requirements. Some initial memory(~2MB) is allocated initially when audio daemon
> is getting attached[1] and this memory is added to audio PD memory pool.

How is being handled for the audio PD case? Could you please point it
out in? Currently, as Konrad pointed out, it is only being used for
Sensors domain (unless I miss some obvious usage handled by the core).

> 
> Additionally, if there is some additional memory requirement from audio PD, the
> PD can request for more memory using remote heap request[2]
> 
> The support for SDSP was added sometime back[3] to support SDSP usecases on some old
> platform as there were no dedicated context banks for SDSP there. On recent platforms,
> context banks are available wherever SDSP is supported. 
> 
> [1] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/misc/fastrpc.c#n1273
> [2] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/misc/fastrpc.c#n1884
> [3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/misc/fastrpc.c?id=c3c0363bc72d4d0907a6d446d7424b3f022ce82a
> 
> //Ekansh
> 
> >
> > Konrad
> >
> 

-- 
With best wishes
Dmitry
Re: [PATCH] arm64: dts: qcom: sm8750: Add adsp fastrpc support
Posted by Ekansh Gupta 9 months ago

On 5/10/2025 1:19 AM, Dmitry Baryshkov wrote:
> On Fri, May 09, 2025 at 09:12:30AM +0530, Ekansh Gupta wrote:
>>
>> On 5/9/2025 4:27 AM, Konrad Dybcio wrote:
>>> On 5/9/25 12:20 AM, Alexey Klimov wrote:
>>>> On Fri May 2, 2025 at 10:38 AM BST, Konrad Dybcio wrote:
>>>>> On 5/2/25 3:15 AM, Alexey Klimov wrote:
>>>>>> While at this, also add required memory region for 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>
>>>>>> ---
>>>>>>  arch/arm64/boot/dts/qcom/sm8750.dtsi | 70 ++++++++++++++++++++++++++++
>>>>>>  1 file changed, 70 insertions(+)
>>>>>>
>>>>>> diff --git a/arch/arm64/boot/dts/qcom/sm8750.dtsi b/arch/arm64/boot/dts/qcom/sm8750.dtsi
>>>>>> index 149d2ed17641..48ee66125a89 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/interconnect/qcom,icc.h>
>>>>>>  #include <dt-bindings/interconnect/qcom,sm8750-rpmh.h>
>>>>>>  #include <dt-bindings/interrupt-controller/arm-gic.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 {
>>>>>> @@ -2237,6 +2246,67 @@ q6prmcc: clock-controller {
>>>>>>  						};
>>>>>>  					};
>>>>>>  				};
>>>>>> +
>>>>>> +				fastrpc {
>>>>>> +					compatible = "qcom,fastrpc";
>>>>>> +					qcom,glink-channels = "fastrpcglink-apps-dsp";
>>>>>> +					label = "adsp";
>>>>>> +					memory-region = <&adsp_rpc_remote_heap_mem>;
>>>>> IIUC the driver only considers this on the sensor DSP
>>>> Memory region is required for audio protection domain + adsprpdcd as far as I know.
>>> next-20250508
>>>
>>> rmem_node = of_parse_phandle(rdev->of_node, "memory-region", 0);
>>> if (domain_id == SDSP_DOMAIN_ID && rmem_node) {
>>> 	// ...
>>> }
>>>
>>> maybe some driver changes are still pending?
>> Would like to add some more details here:
>>
>> Memory region is required for audio PD for dynamic loading and remote heap memory
>> requirements. Some initial memory(~2MB) is allocated initially when audio daemon
>> is getting attached[1] and this memory is added to audio PD memory pool.
> How is being handled for the audio PD case? Could you please point it
> out in? Currently, as Konrad pointed out, it is only being used for
> Sensors domain (unless I miss some obvious usage handled by the core).

The reserved-memory support was actually first added for audio PD only[1].

The usage of reserved-memory is audio PD:

This memory is used by audio PD for it's dynamic loading and remote heap
requirements as I had mentioned earlier. I'll give more details here:
When audio PD starts, it expects some initial memory for it's dynamic
loading and other allocation requirements. To fulfill this, the audio
daemon allocates[2] some initial memory(~2MB) and moves the ownership to
the audio specific VMIDs that are configured in DT[3]. Audio PD then uses
this memory for it's initial operations. If there is any more memory
needed, audio PD makes a request to allocate memory from HLOS which is
again allocated from the same region[4] and then the ownership is moved
to the configured VMIDs[5].

The sensors domain that you are pointing was an extension of this and as
pointed earlier, it was added to support SDSP use cases on some old platform
where there are no dedicated SDSP context banks.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/misc/fastrpc.c?id=1ce91d45ba77a4f6bf9209d142d5c89c42cf877a
[2] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/misc/fastrpc.c#n1274
[3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/arch/arm64/boot/dts/qcom/sa8775p.dtsi#n5334
[4] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/misc/fastrpc.c#n1884
[5] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/misc/fastrpc.c#n1927

//Ekansh

>
>> Additionally, if there is some additional memory requirement from audio PD, the
>> PD can request for more memory using remote heap request[2]
>>
>> The support for SDSP was added sometime back[3] to support SDSP usecases on some old
>> platform as there were no dedicated context banks for SDSP there. On recent platforms,
>> context banks are available wherever SDSP is supported. 
>>
>> [1] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/misc/fastrpc.c#n1273
>> [2] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/misc/fastrpc.c#n1884
>> [3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/misc/fastrpc.c?id=c3c0363bc72d4d0907a6d446d7424b3f022ce82a
>>
>> //Ekansh
>>
>>> Konrad
>>>
Re: [PATCH] arm64: dts: qcom: sm8750: Add adsp fastrpc support
Posted by Dmitry Baryshkov 9 months ago
On Mon, May 12, 2025 at 09:25:13AM +0530, Ekansh Gupta wrote:
> 
> 
> On 5/10/2025 1:19 AM, Dmitry Baryshkov wrote:
> > On Fri, May 09, 2025 at 09:12:30AM +0530, Ekansh Gupta wrote:
> >>
> >> On 5/9/2025 4:27 AM, Konrad Dybcio wrote:
> >>> On 5/9/25 12:20 AM, Alexey Klimov wrote:
> >>>> On Fri May 2, 2025 at 10:38 AM BST, Konrad Dybcio wrote:
> >>>>> On 5/2/25 3:15 AM, Alexey Klimov wrote:
> >>>>>> While at this, also add required memory region for 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>
> >>>>>> ---
> >>>>>>  arch/arm64/boot/dts/qcom/sm8750.dtsi | 70 ++++++++++++++++++++++++++++
> >>>>>>  1 file changed, 70 insertions(+)
> >>>>>>
> >>>>>> diff --git a/arch/arm64/boot/dts/qcom/sm8750.dtsi b/arch/arm64/boot/dts/qcom/sm8750.dtsi
> >>>>>> index 149d2ed17641..48ee66125a89 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/interconnect/qcom,icc.h>
> >>>>>>  #include <dt-bindings/interconnect/qcom,sm8750-rpmh.h>
> >>>>>>  #include <dt-bindings/interrupt-controller/arm-gic.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 {
> >>>>>> @@ -2237,6 +2246,67 @@ q6prmcc: clock-controller {
> >>>>>>  						};
> >>>>>>  					};
> >>>>>>  				};
> >>>>>> +
> >>>>>> +				fastrpc {
> >>>>>> +					compatible = "qcom,fastrpc";
> >>>>>> +					qcom,glink-channels = "fastrpcglink-apps-dsp";
> >>>>>> +					label = "adsp";
> >>>>>> +					memory-region = <&adsp_rpc_remote_heap_mem>;
> >>>>> IIUC the driver only considers this on the sensor DSP
> >>>> Memory region is required for audio protection domain + adsprpdcd as far as I know.
> >>> next-20250508
> >>>
> >>> rmem_node = of_parse_phandle(rdev->of_node, "memory-region", 0);
> >>> if (domain_id == SDSP_DOMAIN_ID && rmem_node) {
> >>> 	// ...
> >>> }
> >>>
> >>> maybe some driver changes are still pending?
> >> Would like to add some more details here:
> >>
> >> Memory region is required for audio PD for dynamic loading and remote heap memory
> >> requirements. Some initial memory(~2MB) is allocated initially when audio daemon
> >> is getting attached[1] and this memory is added to audio PD memory pool.
> > How is being handled for the audio PD case? Could you please point it
> > out in? Currently, as Konrad pointed out, it is only being used for
> > Sensors domain (unless I miss some obvious usage handled by the core).
> 
> The reserved-memory support was actually first added for audio PD only[1].

Okay, so it uses an API which I missed, excuse me. But then... How does
it work? of_reserved_mem_device_init_by_idx() requires
rmem->ops->device_init() to be present, which is not set for a
reserved-memory nodes without a compat string. However on all two and a
half platforms where I see the ADSP remote heap, it is declared without
extra compat.

> 
> The usage of reserved-memory is audio PD:
> 
> This memory is used by audio PD for it's dynamic loading and remote heap
> requirements as I had mentioned earlier. I'll give more details here:
> When audio PD starts, it expects some initial memory for it's dynamic
> loading and other allocation requirements. To fulfill this, the audio
> daemon allocates[2] some initial memory(~2MB) and moves the ownership to
> the audio specific VMIDs that are configured in DT[3]. Audio PD then uses
> this memory for it's initial operations. If there is any more memory
> needed, audio PD makes a request to allocate memory from HLOS which is
> again allocated from the same region[4] and then the ownership is moved
> to the configured VMIDs[5].
> 
> The sensors domain that you are pointing was an extension of this and as
> pointed earlier, it was added to support SDSP use cases on some old platform
> where there are no dedicated SDSP context banks.
> 
> [1] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/misc/fastrpc.c?id=1ce91d45ba77a4f6bf9209d142d5c89c42cf877a
> [2] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/misc/fastrpc.c#n1274
> [3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/arch/arm64/boot/dts/qcom/sa8775p.dtsi#n5334
> [4] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/misc/fastrpc.c#n1884
> [5] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/misc/fastrpc.c#n1927
> 
> //Ekansh
> 
> >
> >> Additionally, if there is some additional memory requirement from audio PD, the
> >> PD can request for more memory using remote heap request[2]
> >>
> >> The support for SDSP was added sometime back[3] to support SDSP usecases on some old
> >> platform as there were no dedicated context banks for SDSP there. On recent platforms,
> >> context banks are available wherever SDSP is supported. 
> >>
> >> [1] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/misc/fastrpc.c#n1273
> >> [2] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/misc/fastrpc.c#n1884
> >> [3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/misc/fastrpc.c?id=c3c0363bc72d4d0907a6d446d7424b3f022ce82a
> >>
> >> //Ekansh
> >>
> >>> Konrad
> >>>
> 

-- 
With best wishes
Dmitry
Re: [PATCH] arm64: dts: qcom: sm8750: Add adsp fastrpc support
Posted by Ekansh Gupta 9 months ago

On 5/12/2025 9:25 PM, Dmitry Baryshkov wrote:
> On Mon, May 12, 2025 at 09:25:13AM +0530, Ekansh Gupta wrote:
>>
>> On 5/10/2025 1:19 AM, Dmitry Baryshkov wrote:
>>> On Fri, May 09, 2025 at 09:12:30AM +0530, Ekansh Gupta wrote:
>>>> On 5/9/2025 4:27 AM, Konrad Dybcio wrote:
>>>>> On 5/9/25 12:20 AM, Alexey Klimov wrote:
>>>>>> On Fri May 2, 2025 at 10:38 AM BST, Konrad Dybcio wrote:
>>>>>>> On 5/2/25 3:15 AM, Alexey Klimov wrote:
>>>>>>>> While at this, also add required memory region for 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>
>>>>>>>> ---
>>>>>>>>  arch/arm64/boot/dts/qcom/sm8750.dtsi | 70 ++++++++++++++++++++++++++++
>>>>>>>>  1 file changed, 70 insertions(+)
>>>>>>>>
>>>>>>>> diff --git a/arch/arm64/boot/dts/qcom/sm8750.dtsi b/arch/arm64/boot/dts/qcom/sm8750.dtsi
>>>>>>>> index 149d2ed17641..48ee66125a89 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/interconnect/qcom,icc.h>
>>>>>>>>  #include <dt-bindings/interconnect/qcom,sm8750-rpmh.h>
>>>>>>>>  #include <dt-bindings/interrupt-controller/arm-gic.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 {
>>>>>>>> @@ -2237,6 +2246,67 @@ q6prmcc: clock-controller {
>>>>>>>>  						};
>>>>>>>>  					};
>>>>>>>>  				};
>>>>>>>> +
>>>>>>>> +				fastrpc {
>>>>>>>> +					compatible = "qcom,fastrpc";
>>>>>>>> +					qcom,glink-channels = "fastrpcglink-apps-dsp";
>>>>>>>> +					label = "adsp";
>>>>>>>> +					memory-region = <&adsp_rpc_remote_heap_mem>;
>>>>>>> IIUC the driver only considers this on the sensor DSP
>>>>>> Memory region is required for audio protection domain + adsprpdcd as far as I know.
>>>>> next-20250508
>>>>>
>>>>> rmem_node = of_parse_phandle(rdev->of_node, "memory-region", 0);
>>>>> if (domain_id == SDSP_DOMAIN_ID && rmem_node) {
>>>>> 	// ...
>>>>> }
>>>>>
>>>>> maybe some driver changes are still pending?
>>>> Would like to add some more details here:
>>>>
>>>> Memory region is required for audio PD for dynamic loading and remote heap memory
>>>> requirements. Some initial memory(~2MB) is allocated initially when audio daemon
>>>> is getting attached[1] and this memory is added to audio PD memory pool.
>>> How is being handled for the audio PD case? Could you please point it
>>> out in? Currently, as Konrad pointed out, it is only being used for
>>> Sensors domain (unless I miss some obvious usage handled by the core).
>> The reserved-memory support was actually first added for audio PD only[1].
> Okay, so it uses an API which I missed, excuse me. But then... How does
> it work? of_reserved_mem_device_init_by_idx() requires
> rmem->ops->device_init() to be present, which is not set for a
> reserved-memory nodes without a compat string. However on all two and a
> half platforms where I see the ADSP remote heap, it is declared without
> extra compat.

Yes, of_reserved_mem_device_init_by_idx() will fail if the compat
string is not included in the reserved-memory nodes. To understand
this better, I tested the reserved-memory both with and without the
compat string. Despite this, I did not observe any allocation
failures in either case. The only difference was the appearance of
the log message "no reserved DMA memory for FASTRPC" when the compat
string was not added, although the allocation was still successful.
The correct approach is to include the compat string, and it's
unclear why it was omitted for existing platforms.

//Ekansh

>
>> The usage of reserved-memory is audio PD:
>>
>> This memory is used by audio PD for it's dynamic loading and remote heap
>> requirements as I had mentioned earlier. I'll give more details here:
>> When audio PD starts, it expects some initial memory for it's dynamic
>> loading and other allocation requirements. To fulfill this, the audio
>> daemon allocates[2] some initial memory(~2MB) and moves the ownership to
>> the audio specific VMIDs that are configured in DT[3]. Audio PD then uses
>> this memory for it's initial operations. If there is any more memory
>> needed, audio PD makes a request to allocate memory from HLOS which is
>> again allocated from the same region[4] and then the ownership is moved
>> to the configured VMIDs[5].
>>
>> The sensors domain that you are pointing was an extension of this and as
>> pointed earlier, it was added to support SDSP use cases on some old platform
>> where there are no dedicated SDSP context banks.
>>
>> [1] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/misc/fastrpc.c?id=1ce91d45ba77a4f6bf9209d142d5c89c42cf877a
>> [2] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/misc/fastrpc.c#n1274
>> [3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/arch/arm64/boot/dts/qcom/sa8775p.dtsi#n5334
>> [4] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/misc/fastrpc.c#n1884
>> [5] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/misc/fastrpc.c#n1927
>>
>> //Ekansh
>>
>>>> Additionally, if there is some additional memory requirement from audio PD, the
>>>> PD can request for more memory using remote heap request[2]
>>>>
>>>> The support for SDSP was added sometime back[3] to support SDSP usecases on some old
>>>> platform as there were no dedicated context banks for SDSP there. On recent platforms,
>>>> context banks are available wherever SDSP is supported. 
>>>>
>>>> [1] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/misc/fastrpc.c#n1273
>>>> [2] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/misc/fastrpc.c#n1884
>>>> [3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/misc/fastrpc.c?id=c3c0363bc72d4d0907a6d446d7424b3f022ce82a
>>>>
>>>> //Ekansh
>>>>
>>>>> Konrad
>>>>>
Re: [PATCH] arm64: dts: qcom: sm8750: Add adsp fastrpc support
Posted by Dmitry Baryshkov 9 months, 1 week ago
On Fri, May 02, 2025 at 02:15:39AM +0100, Alexey Klimov wrote:
> While at this, also add required memory region for 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>
> ---
>  arch/arm64/boot/dts/qcom/sm8750.dtsi | 70 ++++++++++++++++++++++++++++
>  1 file changed, 70 insertions(+)

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>

-- 
With best wishes
Dmitry