diff mbox series

[V2,3/3] arm64: dts: qcom: ipq5332: add few more reserved memory region

Message ID 20230518082934.24129-4-quic_kathirav@quicinc.com (mailing list archive)
State Superseded
Headers show
Series Minor updates in the IPQ5332 DTS files | expand

Commit Message

Kathiravan Thirumoorthy May 18, 2023, 8:29 a.m. UTC
In IPQ SoCs, U-boot will collect the system RAM contents upon crash for
the post morterm analysis. If we don't reserve the memory region used by
U-boot, obviously linux will consume it and upon next boot on crash, uboot
will be loaded in the same region, which will lead to loose some of the
data, sometimes we may miss out critical information. So lets reserve the
region used by the U-boot.

Similarly SBL copies some data into the reserved region and it will be
used in the crash scenario. So reserve 1MB for SBL as well.

While at it, drop the size padding in the smem memory region.

Signed-off-by: Kathiravan T <quic_kathirav@quicinc.com>
---
Changes in V2:
	- Dropped the size padding in smem memory region

 arch/arm64/boot/dts/qcom/ipq5332.dtsi | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

Comments

Bhupesh Sharma May 18, 2023, 11:25 a.m. UTC | #1
Hi,

On Thu, 18 May 2023 at 14:00, Kathiravan T <quic_kathirav@quicinc.com> wrote:
>
> In IPQ SoCs, U-boot will collect the system RAM contents upon crash for
> the post morterm analysis. If we don't reserve the memory region used by
> U-boot, obviously linux will consume it and upon next boot on crash, uboot
> will be loaded in the same region, which will lead to loose some of the
> data, sometimes we may miss out critical information. So lets reserve the
> region used by the U-boot.
>
> Similarly SBL copies some data into the reserved region and it will be
> used in the crash scenario. So reserve 1MB for SBL as well.
>
> While at it, drop the size padding in the smem memory region.
>
> Signed-off-by: Kathiravan T <quic_kathirav@quicinc.com>
> ---
> Changes in V2:
>         - Dropped the size padding in smem memory region
>
>  arch/arm64/boot/dts/qcom/ipq5332.dtsi | 12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/ipq5332.dtsi b/arch/arm64/boot/dts/qcom/ipq5332.dtsi
> index 753581e60604..7e0a2a674f09 100644
> --- a/arch/arm64/boot/dts/qcom/ipq5332.dtsi
> +++ b/arch/arm64/boot/dts/qcom/ipq5332.dtsi
> @@ -114,6 +114,16 @@
>                 #size-cells = <2>;
>                 ranges;
>
> +               uboot@4a100000 {

Shouldn't this be bootloader agnostic? AFAIK any bootloader ported on
IPQ SoCs and booting linux can access the system RAM.

I mean s/uboot/bootloader here and in the commit log.

Also which entity collects the post-crash data, is it some linux driver?
If yes, can you add more details about it in the commit log.

Thanks,
Bhupesh

> +                       reg = <0x0 0x4a100000 0x0 0x400000>;
> +                       no-map;
> +               };
> +
> +               sbl@4a500000 {
> +                       reg = <0x0 0x4a500000 0x0 0x100000>;
> +                       no-map;
> +               };
> +
>                 tz_mem: tz@4a600000 {
>                         reg = <0x0 0x4a600000 0x0 0x200000>;
>                         no-map;
> @@ -121,7 +131,7 @@
>
>                 smem@4a800000 {
>                         compatible = "qcom,smem";
> -                       reg = <0x0 0x4a800000 0x0 0x00100000>;
> +                       reg = <0x0 0x4a800000 0x0 0x100000>;
>                         no-map;
>
>                         hwlocks = <&tcsr_mutex 0>;
> --
> 2.17.1
>
Kathiravan Thirumoorthy May 18, 2023, 12:34 p.m. UTC | #2
On 5/18/2023 4:55 PM, Bhupesh Sharma wrote:
> Hi,
>
> On Thu, 18 May 2023 at 14:00, Kathiravan T <quic_kathirav@quicinc.com> wrote:
>> In IPQ SoCs, U-boot will collect the system RAM contents upon crash for
>> the post morterm analysis. If we don't reserve the memory region used by
>> U-boot, obviously linux will consume it and upon next boot on crash, uboot
>> will be loaded in the same region, which will lead to loose some of the
>> data, sometimes we may miss out critical information. So lets reserve the
>> region used by the U-boot.
>>
>> Similarly SBL copies some data into the reserved region and it will be
>> used in the crash scenario. So reserve 1MB for SBL as well.
>>
>> While at it, drop the size padding in the smem memory region.
>>
>> Signed-off-by: Kathiravan T <quic_kathirav@quicinc.com>
>> ---
>> Changes in V2:
>>          - Dropped the size padding in smem memory region
>>
>>   arch/arm64/boot/dts/qcom/ipq5332.dtsi | 12 +++++++++++-
>>   1 file changed, 11 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/ipq5332.dtsi b/arch/arm64/boot/dts/qcom/ipq5332.dtsi
>> index 753581e60604..7e0a2a674f09 100644
>> --- a/arch/arm64/boot/dts/qcom/ipq5332.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/ipq5332.dtsi
>> @@ -114,6 +114,16 @@
>>                  #size-cells = <2>;
>>                  ranges;
>>
>> +               uboot@4a100000 {
> Shouldn't this be bootloader agnostic? AFAIK any bootloader ported on
> IPQ SoCs and booting linux can access the system RAM.
>
> I mean s/uboot/bootloader here and in the commit log.


Ack.


>
> Also which entity collects the post-crash data, is it some linux driver?
> If yes, can you add more details about it in the commit log.


Bootloader is the one which collects the post-crash data. Below is the flow

System crash -> TZ -> Reset the system -> PBL -> SBL -> Bootloader,

During system boot, crashdump magic is set. Upon system reboot cases, 
these magic values will be cleared. In the system crash scenarios like 
panic,

the crashdump magic will not be cleared. Bootloader checks this value 
and collects the data and then reset the system.


Thanks,

Kathiravan T.


>
> Thanks,
> Bhupesh
>
>> +                       reg = <0x0 0x4a100000 0x0 0x400000>;
>> +                       no-map;
>> +               };
>> +
>> +               sbl@4a500000 {
>> +                       reg = <0x0 0x4a500000 0x0 0x100000>;
>> +                       no-map;
>> +               };
>> +
>>                  tz_mem: tz@4a600000 {
>>                          reg = <0x0 0x4a600000 0x0 0x200000>;
>>                          no-map;
>> @@ -121,7 +131,7 @@
>>
>>                  smem@4a800000 {
>>                          compatible = "qcom,smem";
>> -                       reg = <0x0 0x4a800000 0x0 0x00100000>;
>> +                       reg = <0x0 0x4a800000 0x0 0x100000>;
>>                          no-map;
>>
>>                          hwlocks = <&tcsr_mutex 0>;
>> --
>> 2.17.1
>>
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/qcom/ipq5332.dtsi b/arch/arm64/boot/dts/qcom/ipq5332.dtsi
index 753581e60604..7e0a2a674f09 100644
--- a/arch/arm64/boot/dts/qcom/ipq5332.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq5332.dtsi
@@ -114,6 +114,16 @@ 
 		#size-cells = <2>;
 		ranges;
 
+		uboot@4a100000 {
+			reg = <0x0 0x4a100000 0x0 0x400000>;
+			no-map;
+		};
+
+		sbl@4a500000 {
+			reg = <0x0 0x4a500000 0x0 0x100000>;
+			no-map;
+		};
+
 		tz_mem: tz@4a600000 {
 			reg = <0x0 0x4a600000 0x0 0x200000>;
 			no-map;
@@ -121,7 +131,7 @@ 
 
 		smem@4a800000 {
 			compatible = "qcom,smem";
-			reg = <0x0 0x4a800000 0x0 0x00100000>;
+			reg = <0x0 0x4a800000 0x0 0x100000>;
 			no-map;
 
 			hwlocks = <&tcsr_mutex 0>;