Re: [PATCH] arm64: dts: qcom: sm8750: Add adsp fastrpc support
From: Konrad Dybcio
Date: Thu May 08 2025 - 18:57:58 EST
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@xxxxxxxxxxx>
>>> Cc: Srinivas Kandagatla <srini@xxxxxxxxxx>
>>> Cc: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>
>>> Signed-off-by: Alexey Klimov <alexey.klimov@xxxxxxxxxx>
>>> ---
>>> 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