diff mbox series

[v2,1/3] arm64: dts: qcom: sc7280: Add memory region for audiopd

Message ID 20250516110029.1637270-2-quic_lxu5@quicinc.com
State New
Headers show
Series [v2,1/3] arm64: dts: qcom: sc7280: Add memory region for audiopd | expand

Commit Message

Ling Xu May 16, 2025, 11 a.m. UTC
Add reserved memory region and VMIDs for audio PD dynamic loading and
remote heap memory requirements.

Signed-off-by: Ling Xu <quic_lxu5@quicinc.com>
---
 arch/arm64/boot/dts/qcom/sc7280.dtsi | 11 +++++++++++
 1 file changed, 11 insertions(+)

Comments

Ling Xu May 20, 2025, 6:41 a.m. UTC | #1
在 5/17/2025 5:47 AM, Dmitry Baryshkov 写道:
> On Fri, May 16, 2025 at 04:30:27PM +0530, Ling Xu wrote:
>> Add reserved memory region and VMIDs for audio PD dynamic loading and
>> remote heap memory requirements.
> 
> Why? Was it not working without this heap?

yes, it will not working without this heap.
Memory region is required for audio PD for dynamic loading and remote heap memory
requirements. For more info, please refer below patches, it has provided a more
detailed explanation.
https://lore.kernel.org/all/bb68da04-ef52-4172-8b6e-f4027bcc2786@oss.qualcomm.com/
https://lore.kernel.org/all/effea02f-6ffb-42e9-87df-081caafab728@oss.qualcomm.com/

>>
>> Signed-off-by: Ling Xu <quic_lxu5@quicinc.com>
>> ---
>>  arch/arm64/boot/dts/qcom/sc7280.dtsi | 11 +++++++++++
>>  1 file changed, 11 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi
>> index 8e86d75cc6b4..d9af79ff8c4e 100644
>> --- a/arch/arm64/boot/dts/qcom/sc7280.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi
>> @@ -188,6 +188,14 @@ rmtfs_mem: rmtfs@9c900000 {
>>  			qcom,client-id = <1>;
>>  			qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
>>  		};
>> +
>> +		adsp_rpc_remote_heap_mem: adsp-rpc-remote-heap {
>> +			compatible = "shared-dma-pool";
>> +			size = <0x0 0x800000>;
>> +			alignment = <0x0 0x100000>;
>> +			alloc-ranges = <0x0 0x80000000 0x0 0x40000000>;
>> +			no-map;
>> +		};
>>  	};
>>  
>>  	cpus {
>> @@ -3863,6 +3871,9 @@ fastrpc {
>>  					qcom,glink-channels = "fastrpcglink-apps-dsp";
>>  					label = "adsp";
>>  					qcom,non-secure-domain;
>> +					memory-region = <&adsp_rpc_remote_heap_mem>;
>> +					qcom,vmids = <QCOM_SCM_VMID_LPASS>,
>> +							  <QCOM_SCM_VMID_ADSP_HEAP>;

Thanks. Will modify this.

> Please align '<' vertically.
> 
>>  					#address-cells = <1>;
>>  					#size-cells = <0>;
>>  
>> -- 
>> 2.34.1
>>
>
Dmitry Baryshkov May 20, 2025, 1:53 p.m. UTC | #2
On Tue, May 20, 2025 at 02:41:22PM +0800, Ling Xu wrote:
> 在 5/17/2025 5:47 AM, Dmitry Baryshkov 写道:
> > On Fri, May 16, 2025 at 04:30:27PM +0530, Ling Xu wrote:
> >> Add reserved memory region and VMIDs for audio PD dynamic loading and
> >> remote heap memory requirements.
> > 
> > Why? Was it not working without this heap?
> 
> yes, it will not working without this heap.
> Memory region is required for audio PD for dynamic loading and remote heap memory
> requirements. For more info, please refer below patches, it has provided a more
> detailed explanation.
> https://lore.kernel.org/all/bb68da04-ef52-4172-8b6e-f4027bcc2786@oss.qualcomm.com/
> https://lore.kernel.org/all/effea02f-6ffb-42e9-87df-081caafab728@oss.qualcomm.com/

This triggers a bunch of questions:

- What is audio PD?

- Is it a required component?

- For which platforms ?

- What happens if there is a memory region, but it is not used by the
  driver (SM8650, SM8550).

> 
> >>
> >> Signed-off-by: Ling Xu <quic_lxu5@quicinc.com>
> >> ---
> >>  arch/arm64/boot/dts/qcom/sc7280.dtsi | 11 +++++++++++
> >>  1 file changed, 11 insertions(+)
> >>
> >> diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi
> >> index 8e86d75cc6b4..d9af79ff8c4e 100644
> >> --- a/arch/arm64/boot/dts/qcom/sc7280.dtsi
> >> +++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi
> >> @@ -188,6 +188,14 @@ rmtfs_mem: rmtfs@9c900000 {
> >>  			qcom,client-id = <1>;
> >>  			qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
> >>  		};
> >> +
> >> +		adsp_rpc_remote_heap_mem: adsp-rpc-remote-heap {
> >> +			compatible = "shared-dma-pool";
> >> +			size = <0x0 0x800000>;
> >> +			alignment = <0x0 0x100000>;
> >> +			alloc-ranges = <0x0 0x80000000 0x0 0x40000000>;
> >> +			no-map;
> >> +		};
> >>  	};
> >>  
> >>  	cpus {
> >> @@ -3863,6 +3871,9 @@ fastrpc {
> >>  					qcom,glink-channels = "fastrpcglink-apps-dsp";
> >>  					label = "adsp";
> >>  					qcom,non-secure-domain;
> >> +					memory-region = <&adsp_rpc_remote_heap_mem>;
> >> +					qcom,vmids = <QCOM_SCM_VMID_LPASS>,
> >> +							  <QCOM_SCM_VMID_ADSP_HEAP>;
> 
> Thanks. Will modify this.
> 
> > Please align '<' vertically.
> > 
> >>  					#address-cells = <1>;
> >>  					#size-cells = <0>;
> >>  
> >> -- 
> >> 2.34.1
> >>
> > 
> 
> -- 
> Thx and BRs,
> Ling Xu
>
Ling Xu May 22, 2025, 10:44 a.m. UTC | #3
在 5/20/2025 9:53 PM, Dmitry Baryshkov 写道:
> On Tue, May 20, 2025 at 02:41:22PM +0800, Ling Xu wrote:
>> 在 5/17/2025 5:47 AM, Dmitry Baryshkov 写道:
>>> On Fri, May 16, 2025 at 04:30:27PM +0530, Ling Xu wrote:
>>>> Add reserved memory region and VMIDs for audio PD dynamic loading and
>>>> remote heap memory requirements.
>>>
>>> Why? Was it not working without this heap?
>>
>> yes, it will not working without this heap.
>> Memory region is required for audio PD for dynamic loading and remote heap memory
>> requirements. For more info, please refer below patches, it has provided a more
>> detailed explanation.
>> https://lore.kernel.org/all/bb68da04-ef52-4172-8b6e-f4027bcc2786@oss.qualcomm.com/
>> https://lore.kernel.org/all/effea02f-6ffb-42e9-87df-081caafab728@oss.qualcomm.com/
> 
> This triggers a bunch of questions:
> 
> - What is audio PD?
> 
Audio PD is a protection domain which is running on DSP for audio
specific processing.
> - Is it a required component?
yes. it is needed wherever there is some audio use cases where 
DSP audio PD dynamic loading is needed.
> - For which platforms ?
> 
For platforms that require dynamic loading of DSP audio PD.
> - What happens if there is a memory region, but it is not used by the
>   driver (SM8650, SM8550).
> 
It won't be used.
>>
>>>>
>>>> Signed-off-by: Ling Xu <quic_lxu5@quicinc.com>
>>>> ---
>>>>  arch/arm64/boot/dts/qcom/sc7280.dtsi | 11 +++++++++++
>>>>  1 file changed, 11 insertions(+)
>>>>
>>>> diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi
>>>> index 8e86d75cc6b4..d9af79ff8c4e 100644
>>>> --- a/arch/arm64/boot/dts/qcom/sc7280.dtsi
>>>> +++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi
>>>> @@ -188,6 +188,14 @@ rmtfs_mem: rmtfs@9c900000 {
>>>>  			qcom,client-id = <1>;
>>>>  			qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
>>>>  		};
>>>> +
>>>> +		adsp_rpc_remote_heap_mem: adsp-rpc-remote-heap {
>>>> +			compatible = "shared-dma-pool";
>>>> +			size = <0x0 0x800000>;
>>>> +			alignment = <0x0 0x100000>;
>>>> +			alloc-ranges = <0x0 0x80000000 0x0 0x40000000>;
>>>> +			no-map;
>>>> +		};
>>>>  	};
>>>>  
>>>>  	cpus {
>>>> @@ -3863,6 +3871,9 @@ fastrpc {
>>>>  					qcom,glink-channels = "fastrpcglink-apps-dsp";
>>>>  					label = "adsp";
>>>>  					qcom,non-secure-domain;
>>>> +					memory-region = <&adsp_rpc_remote_heap_mem>;
>>>> +					qcom,vmids = <QCOM_SCM_VMID_LPASS>,
>>>> +							  <QCOM_SCM_VMID_ADSP_HEAP>;
>>
>> Thanks. Will modify this.
>>
>>> Please align '<' vertically.
>>>
>>>>  					#address-cells = <1>;
>>>>  					#size-cells = <0>;
>>>>  
>>>> -- 
>>>> 2.34.1
>>>>
>>>
>>
>> -- 
>> Thx and BRs,
>> Ling Xu
>>
>
Konrad Dybcio May 22, 2025, 6:27 p.m. UTC | #4
On 5/22/25 2:16 PM, Dmitry Baryshkov wrote:
> On Thu, 22 May 2025 at 13:44, Ling Xu <quic_lxu5@quicinc.com> wrote:
>>
>> 在 5/20/2025 9:53 PM, Dmitry Baryshkov 写道:
>>> On Tue, May 20, 2025 at 02:41:22PM +0800, Ling Xu wrote:
>>>> 在 5/17/2025 5:47 AM, Dmitry Baryshkov 写道:
>>>>> On Fri, May 16, 2025 at 04:30:27PM +0530, Ling Xu wrote:
>>>>>> Add reserved memory region and VMIDs for audio PD dynamic loading and
>>>>>> remote heap memory requirements.
>>>>>
>>>>> Why? Was it not working without this heap?
>>>>
>>>> yes, it will not working without this heap.
>>>> Memory region is required for audio PD for dynamic loading and remote heap memory
>>>> requirements. For more info, please refer below patches, it has provided a more
>>>> detailed explanation.
>>>> https://lore.kernel.org/all/bb68da04-ef52-4172-8b6e-f4027bcc2786@oss.qualcomm.com/
>>>> https://lore.kernel.org/all/effea02f-6ffb-42e9-87df-081caafab728@oss.qualcomm.com/
>>>
>>> This triggers a bunch of questions:
>>>
>>> - What is audio PD?
>>>
>> Audio PD is a protection domain which is running on DSP for audio
>> specific processing.
>>> - Is it a required component?
>> yes. it is needed wherever there is some audio use cases where
>> DSP audio PD dynamic loading is needed.
> 
> Which use cases?
> 
>>> - For which platforms ?
>>>
>> For platforms that require dynamic loading of DSP audio PD.
> 
> Please be more specific, we are not playing a guessing game here.
> 
>>> - What happens if there is a memory region, but it is not used by the
>>>   driver (SM8650, SM8550).
>>>
>> It won't be used.
> 
> So, what happens? DSP crash? system reboot? blue smoke coming from the SoC?
> 
> I'm asking all those questions to understand:
> - whether this is applicable to previous SC7280 platforms or just RB3Gen2 / IDP
> - whether this needs to be backported or not
> - whether a similar fix should be applied to other platforms.

I wouldn't worry about FP5 too much (albeit it's apparently not easy
to test it out and even having spent some time trying to, I couldn't
figure out how these things connect), but the chromebooks may be
potentially problematic. That said, we can overwrite it in sc7280-chrome
if necessary

Konrad
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi
index 8e86d75cc6b4..d9af79ff8c4e 100644
--- a/arch/arm64/boot/dts/qcom/sc7280.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi
@@ -188,6 +188,14 @@  rmtfs_mem: rmtfs@9c900000 {
 			qcom,client-id = <1>;
 			qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
 		};
+
+		adsp_rpc_remote_heap_mem: adsp-rpc-remote-heap {
+			compatible = "shared-dma-pool";
+			size = <0x0 0x800000>;
+			alignment = <0x0 0x100000>;
+			alloc-ranges = <0x0 0x80000000 0x0 0x40000000>;
+			no-map;
+		};
 	};
 
 	cpus {
@@ -3863,6 +3871,9 @@  fastrpc {
 					qcom,glink-channels = "fastrpcglink-apps-dsp";
 					label = "adsp";
 					qcom,non-secure-domain;
+					memory-region = <&adsp_rpc_remote_heap_mem>;
+					qcom,vmids = <QCOM_SCM_VMID_LPASS>,
+							  <QCOM_SCM_VMID_ADSP_HEAP>;
 					#address-cells = <1>;
 					#size-cells = <0>;