[PATCH RFC 0/6] Add support to read the restart reason from IMEM

Kathiravan Thirumoorthy posted 6 patches 1 month ago
There is a newer version of this series
.../devicetree/bindings/sram/qcom,imem.yaml        | 25 ++++++++++++
.../bindings/watchdog/qcom,restart-reason.yaml     | 46 ++++++++++++++++++++++
arch/arm64/boot/dts/qcom/ipq5424.dtsi              | 14 +++++++
drivers/watchdog/qcom-wdt.c                        | 40 ++++++++++++++++++-
4 files changed, 124 insertions(+), 1 deletion(-)
[PATCH RFC 0/6] Add support to read the restart reason from IMEM
Posted by Kathiravan Thirumoorthy 1 month ago
In Qualcomm IPQ SoC, if the system is rebooted due to the watchdog
timeout, there is no way to identify it. Current approach of checking
the EXPIRED_STATUS in WDT_STS is not working.

To achieve this, if the system is rebooted due to watchdog timeout, the
information is captured in the IMEM by the bootloader (along with other
reason codes as well).

This series attempts to address this by adding the support to read the
IMEM and populate the information via bootstatus sysfs file. As of now,
we are handling only the non secure watchdog timeout reason.

Signed-off-by: Kathiravan Thirumoorthy <kathiravan.thirumoorthy@oss.qualcomm.com>
---
Kathiravan Thirumoorthy (6):
      dt-bindings: sram: qcom,imem: Document IPQ5424 compatible
      arm64: dts: qcom: ipq5424: Add the IMEM node
      dt-bindings: watchdog: Add Qualcomm restart reason binding
      dt-bindings: sram: qcom,imem: add the support for restart reason
      watchdog: qcom-wdt: add support to read the restart reason from IMEM
      arm64: dts: qcom: ipq5424: add node for the restart reason information

 .../devicetree/bindings/sram/qcom,imem.yaml        | 25 ++++++++++++
 .../bindings/watchdog/qcom,restart-reason.yaml     | 46 ++++++++++++++++++++++
 arch/arm64/boot/dts/qcom/ipq5424.dtsi              | 14 +++++++
 drivers/watchdog/qcom-wdt.c                        | 40 ++++++++++++++++++-
 4 files changed, 124 insertions(+), 1 deletion(-)
---
base-commit: 7702d0130dc002bab2c3571ddb6ff68f82d99aea
change-id: 20250408-wdt_reset_reason-e12921963fa6

Best regards,
-- 
Kathiravan Thirumoorthy <kathiravan.thirumoorthy@oss.qualcomm.com>
Re: [PATCH RFC 0/6] Add support to read the restart reason from IMEM
Posted by Konrad Dybcio 1 month ago
On 4/8/25 10:49 AM, Kathiravan Thirumoorthy wrote:
> In Qualcomm IPQ SoC, if the system is rebooted due to the watchdog
> timeout, there is no way to identify it. Current approach of checking
> the EXPIRED_STATUS in WDT_STS is not working.
> 
> To achieve this, if the system is rebooted due to watchdog timeout, the
> information is captured in the IMEM by the bootloader (along with other
> reason codes as well).
> 
> This series attempts to address this by adding the support to read the
> IMEM and populate the information via bootstatus sysfs file. As of now,
> we are handling only the non secure watchdog timeout reason.
> 
> Signed-off-by: Kathiravan Thirumoorthy <kathiravan.thirumoorthy@oss.qualcomm.com>
> ---

So I think it would be easier to model this as nvram (something like
"nvmem-rmem" with imem perhaps modeled as "mmio-sram") and then consume
that value through in-kernel APIs (or write to it, as necessary)

Taking a quick look at mobile, it seems like "reboot bootloader" and
friends use a similar mechanism

Konrad