[PATCH v2 3/6] arm64: dts: qcom: ipq6018: Add the IMEM node

Kathiravan Thirumoorthy posted 6 patches 3 months ago
[PATCH v2 3/6] arm64: dts: qcom: ipq6018: Add the IMEM node
Posted by Kathiravan Thirumoorthy 3 months ago
Add the IMEM node to the device tree to extract debugging information
like system restart reason, which is populated via IMEM. Define the
IMEM region to enable this functionality.

As described, overall IMEM region is 32KB but only initial 4KB is
accessible by all masters in the SoC.

Signed-off-by: Kathiravan Thirumoorthy <kathiravan.thirumoorthy@oss.qualcomm.com>
---
Changes in v2:
- Rounded off the size to 0x8000 (Konrad)
- Represent the reg's address space in hexadecimal format (Krzysztof)
---
In 'ranges' property 0 is used instead of 0x0 to align with the existing
format.
---
 arch/arm64/boot/dts/qcom/ipq6018.dtsi | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/ipq6018.dtsi b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
index bfe59b0208415902c69fd0c0c7565d97997d4207..3b9e40045906b26b94e2d2510b0570d3eaf084ce 100644
--- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
@@ -659,6 +659,15 @@ qpic_nand: nand-controller@79b0000 {
 			status = "disabled";
 		};
 
+		sram@8600000 {
+			compatible = "qcom,ipq6018-imem", "syscon", "simple-mfd";
+			reg = <0x0 0x08600000 0x0 0x8000>;
+			ranges = <0 0 0x08600000 0x8000>;
+
+			#address-cells = <1>;
+			#size-cells = <1>;
+		};
+
 		usb3: usb@8af8800 {
 			compatible = "qcom,ipq6018-dwc3", "qcom,dwc3";
 			reg = <0x0 0x08af8800 0x0 0x400>;

-- 
2.34.1
Re: [PATCH v2 3/6] arm64: dts: qcom: ipq6018: Add the IMEM node
Posted by Konrad Dybcio 3 months ago
On 7/8/25 7:39 AM, Kathiravan Thirumoorthy wrote:
> Add the IMEM node to the device tree to extract debugging information
> like system restart reason, which is populated via IMEM. Define the
> IMEM region to enable this functionality.
> 
> As described, overall IMEM region is 32KB but only initial 4KB is
> accessible by all masters in the SoC.
> 
> Signed-off-by: Kathiravan Thirumoorthy <kathiravan.thirumoorthy@oss.qualcomm.com>
> ---
> Changes in v2:
> - Rounded off the size to 0x8000 (Konrad)
> - Represent the reg's address space in hexadecimal format (Krzysztof)
> ---
> In 'ranges' property 0 is used instead of 0x0 to align with the existing
> format.
> ---
>  arch/arm64/boot/dts/qcom/ipq6018.dtsi | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/ipq6018.dtsi b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
> index bfe59b0208415902c69fd0c0c7565d97997d4207..3b9e40045906b26b94e2d2510b0570d3eaf084ce 100644
> --- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi
> +++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
> @@ -659,6 +659,15 @@ qpic_nand: nand-controller@79b0000 {
>  			status = "disabled";
>  		};
>  
> +		sram@8600000 {
> +			compatible = "qcom,ipq6018-imem", "syscon", "simple-mfd";
> +			reg = <0x0 0x08600000 0x0 0x8000>;
> +			ranges = <0 0 0x08600000 0x8000>;
> +
> +			#address-cells = <1>;
> +			#size-cells = <1>;
> +		};

On this platform, shouldn't it be 0x6860_0000?

Konrad
Re: [PATCH v2 3/6] arm64: dts: qcom: ipq6018: Add the IMEM node
Posted by Kathiravan Thirumoorthy 3 months ago
On 7/8/2025 7:49 PM, Konrad Dybcio wrote:
> On 7/8/25 7:39 AM, Kathiravan Thirumoorthy wrote:
>> Add the IMEM node to the device tree to extract debugging information
>> like system restart reason, which is populated via IMEM. Define the
>> IMEM region to enable this functionality.
>>
>> As described, overall IMEM region is 32KB but only initial 4KB is
>> accessible by all masters in the SoC.
>>
>> Signed-off-by: Kathiravan Thirumoorthy <kathiravan.thirumoorthy@oss.qualcomm.com>
>> ---
>> Changes in v2:
>> - Rounded off the size to 0x8000 (Konrad)
>> - Represent the reg's address space in hexadecimal format (Krzysztof)
>> ---
>> In 'ranges' property 0 is used instead of 0x0 to align with the existing
>> format.
>> ---
>>   arch/arm64/boot/dts/qcom/ipq6018.dtsi | 9 +++++++++
>>   1 file changed, 9 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/ipq6018.dtsi b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
>> index bfe59b0208415902c69fd0c0c7565d97997d4207..3b9e40045906b26b94e2d2510b0570d3eaf084ce 100644
>> --- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
>> @@ -659,6 +659,15 @@ qpic_nand: nand-controller@79b0000 {
>>   			status = "disabled";
>>   		};
>>   
>> +		sram@8600000 {
>> +			compatible = "qcom,ipq6018-imem", "syscon", "simple-mfd";
>> +			reg = <0x0 0x08600000 0x0 0x8000>;
>> +			ranges = <0 0 0x08600000 0x8000>;
>> +
>> +			#address-cells = <1>;
>> +			#size-cells = <1>;
>> +		};
> On this platform, shouldn't it be 0x6860_0000?

Actually, that's from the RPM perspective. From the ARM side, the 
address is 0x0860_0000. The hardware docs show the RPM view by default, 
so please switch to the ARM view.

>
> Konrad
Re: [PATCH v2 3/6] arm64: dts: qcom: ipq6018: Add the IMEM node
Posted by Konrad Dybcio 2 months, 3 weeks ago
On 7/9/25 6:28 AM, Kathiravan Thirumoorthy wrote:
> 
> On 7/8/2025 7:49 PM, Konrad Dybcio wrote:
>> On 7/8/25 7:39 AM, Kathiravan Thirumoorthy wrote:
>>> Add the IMEM node to the device tree to extract debugging information
>>> like system restart reason, which is populated via IMEM. Define the
>>> IMEM region to enable this functionality.
>>>
>>> As described, overall IMEM region is 32KB but only initial 4KB is
>>> accessible by all masters in the SoC.
>>>
>>> Signed-off-by: Kathiravan Thirumoorthy <kathiravan.thirumoorthy@oss.qualcomm.com>
>>> ---
>>> Changes in v2:
>>> - Rounded off the size to 0x8000 (Konrad)
>>> - Represent the reg's address space in hexadecimal format (Krzysztof)
>>> ---
>>> In 'ranges' property 0 is used instead of 0x0 to align with the existing
>>> format.
>>> ---
>>>   arch/arm64/boot/dts/qcom/ipq6018.dtsi | 9 +++++++++
>>>   1 file changed, 9 insertions(+)
>>>
>>> diff --git a/arch/arm64/boot/dts/qcom/ipq6018.dtsi b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
>>> index bfe59b0208415902c69fd0c0c7565d97997d4207..3b9e40045906b26b94e2d2510b0570d3eaf084ce 100644
>>> --- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi
>>> +++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
>>> @@ -659,6 +659,15 @@ qpic_nand: nand-controller@79b0000 {
>>>               status = "disabled";
>>>           };
>>>   +        sram@8600000 {
>>> +            compatible = "qcom,ipq6018-imem", "syscon", "simple-mfd";
>>> +            reg = <0x0 0x08600000 0x0 0x8000>;
>>> +            ranges = <0 0 0x08600000 0x8000>;
>>> +
>>> +            #address-cells = <1>;
>>> +            #size-cells = <1>;
>>> +        };
>> On this platform, shouldn't it be 0x6860_0000?
> 
> Actually, that's from the RPM perspective. From the ARM side, the address is 0x0860_0000. The hardware docs show the RPM view by default, so please switch to the ARM view.

Right, this is an odd default..

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

Konrad