* [PATCH v11 0/3] Add support to read the watchdog bootstatus from IMEM
@ 2026-07-27 15:47 Kathiravan Thirumoorthy
2026-07-27 15:47 ` [PATCH v11 1/3] dt-bindings: sram: describe the IPQ5424 IMEM as mmio-sram Kathiravan Thirumoorthy
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Kathiravan Thirumoorthy @ 2026-07-27 15:47 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Konrad Dybcio
Cc: linux-arm-msm, devicetree, linux-kernel, Kathiravan Thirumoorthy,
Krzysztof Kozlowski, Dmitry Baryshkov, Konrad Dybcio
In Qualcomm IPQ SoCs, 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.
With the CONFIG_WATCHDOG_SYSFS enabled, user can extract the information
as below:
cat
/sys/devices/platform/soc@0/f410000.watchdog/watchdog/watchdog0/bootstatus
32
Upto V9, this series has changes targeted for both qcom and watchdog
tree. So V10 was sent with only watchdog changes and it is picked into
v7.2.
Signed-off-by: Kathiravan Thirumoorthy <kathiravan.thirumoorthy@oss.qualcomm.com>
---
Changes in v11:
- Rebase on linux-next tag:next-20260726
- Link to v10: https://patch.msgid.link/20260513-wdt_reset_reason-v10-0-cebda08ab1ef@oss.qualcomm.com
Changes in v10:
- Dropped the watchdog patches which are applied to watchdog's tree
- Link to v9: https://lore.kernel.org/all/20260228-wdt_reset_reason-v9-0-f96d7a4825d3@oss.qualcomm.com
Changes in v9:
- Picked up the R-b tag for 1/5
- In 4/5, if fetching the boot status failed, just log the error instead
of exiting the probe
- Link to v8: https://lore.kernel.org/r/20260226-wdt_reset_reason-v8-0-011c3a8cb6ff@oss.qualcomm.com
Changes in v8:
- Collected the tags
- Updated the commit msg with reasoning in 1/5
- Updated the comment in 4/5
- Link to v7: https://lore.kernel.org/r/20260225-wdt_reset_reason-v7-0-65d5b7e3e1eb@oss.qualcomm.com
Changes in v7:
- Collected the tags
- Added the reference link in 1/5
- Added the flag 'no-memory-wc' in 2/5
- Link to v6: https://lore.kernel.org/r/20260130-wdt_reset_reason-v6-0-417ab789cd97@oss.qualcomm.com
Changes in v6:
- Moved the IMEM compatible from qcom,imem to sram binding
- Updated the 'sram' property in watchdog binding to point to SRAM
region and update the watchdog driver accordingly
- Dropped the Konrad's R-b tag in 2/5
Changes in v5:
- Rename property 'qcom,imem' to 'sram'
- Use dev_err_probe instead of dev_err
- Link to v4:
https://lore.kernel.org/linux-arm-msm/20250519-wdt_reset_reason-v4-0-d59d21275c75@oss.qualcomm.com/
Changes in v4:
- Kept only the WDIOF_CARDRESET and dropped other codes (Guenter)
- Renamed qcom_wdt_get_restart_reason() to qcom_wdt_get_bootstatus()
- Dropped the device data and describe the required information in the
DT (Konrad)
- Link to v3:
https://lore.kernel.org/linux-arm-msm/20250502-wdt_reset_reason-v3-0-b2dc7ace38ca@oss.qualcomm.com/
Changes in v3:
- Picked up the relevant tags
- Dropped the fallback compatible handling
- Split the driver changes into 2. Introduce the device data in one and
extend the same in another for the use case
- Link to v2:
https://lore.kernel.org/linux-arm-msm/20250416-wdt_reset_reason-v2-0-c65bba312914@oss.qualcomm.com/
Changes in v2:
- Dropped the RFC tag
- Reworked the driver changes to use the syscon API
- Link to v1:
https://lore.kernel.org/linux-arm-msm/20250408-wdt_reset_reason-v1-0-e6ec30c2c926@oss.qualcomm.com/
To: Rob Herring <robh@kernel.org>
To: Krzysztof Kozlowski <krzk+dt@kernel.org>
To: Conor Dooley <conor+dt@kernel.org>
To: Bjorn Andersson <andersson@kernel.org>
To: Konrad Dybcio <konradybcio@kernel.org>
Cc: linux-arm-msm@vger.kernel.org
Cc: devicetree@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Kathiravan Thirumoorthy <kathiravan.thirumoorthy@oss.qualcomm.com>
---
Kathiravan Thirumoorthy (3):
dt-bindings: sram: describe the IPQ5424 IMEM as mmio-sram
arm64: dts: qcom: ipq5424: Add the IMEM node
arm64: dts: qcom: ipq5424: add support to get watchdog bootstatus from IMEM
Documentation/devicetree/bindings/sram/qcom,imem.yaml | 1 -
Documentation/devicetree/bindings/sram/sram.yaml | 1 +
arch/arm64/boot/dts/qcom/ipq5424.dtsi | 16 ++++++++++++++++
3 files changed, 17 insertions(+), 1 deletion(-)
---
base-commit: c5e32e86ca02b003f86e095d379b38148999293d
change-id: 20250610-wdt_reset_reason-7a5afe702075
Best regards,
--
Kathiravan Thirumoorthy <kathiravan.thirumoorthy@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH v11 1/3] dt-bindings: sram: describe the IPQ5424 IMEM as mmio-sram
2026-07-27 15:47 [PATCH v11 0/3] Add support to read the watchdog bootstatus from IMEM Kathiravan Thirumoorthy
@ 2026-07-27 15:47 ` Kathiravan Thirumoorthy
2026-07-27 15:47 ` [PATCH v11 2/3] arm64: dts: qcom: ipq5424: Add the IMEM node Kathiravan Thirumoorthy
2026-07-27 15:47 ` [PATCH v11 3/3] arm64: dts: qcom: ipq5424: add support to get watchdog bootstatus from IMEM Kathiravan Thirumoorthy
2 siblings, 0 replies; 6+ messages in thread
From: Kathiravan Thirumoorthy @ 2026-07-27 15:47 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Konrad Dybcio
Cc: linux-arm-msm, devicetree, linux-kernel, Kathiravan Thirumoorthy,
Krzysztof Kozlowski
IMEM shouldn’t be treated as a syscon or simple-mfd because it’s really
just on‑chip SRAM, not a block of control registers or a device with
multiple hardware functions.
Describing it as generic mmio‑sram keeps the model simple and closer to
what the hardware actually is.
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Kathiravan Thirumoorthy <kathiravan.thirumoorthy@oss.qualcomm.com>
---
Documentation/devicetree/bindings/sram/qcom,imem.yaml | 1 -
Documentation/devicetree/bindings/sram/sram.yaml | 1 +
2 files changed, 1 insertion(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/sram/qcom,imem.yaml b/Documentation/devicetree/bindings/sram/qcom,imem.yaml
index eaa8ef367ff4..95630871d957 100644
--- a/Documentation/devicetree/bindings/sram/qcom,imem.yaml
+++ b/Documentation/devicetree/bindings/sram/qcom,imem.yaml
@@ -18,7 +18,6 @@ properties:
items:
- enum:
- qcom,apq8064-imem
- - qcom,ipq5424-imem
- qcom,msm8226-imem
- qcom,msm8974-imem
- qcom,msm8976-imem
diff --git a/Documentation/devicetree/bindings/sram/sram.yaml b/Documentation/devicetree/bindings/sram/sram.yaml
index b83fc6831947..0acb7593045c 100644
--- a/Documentation/devicetree/bindings/sram/sram.yaml
+++ b/Documentation/devicetree/bindings/sram/sram.yaml
@@ -37,6 +37,7 @@ properties:
- qcom,eliza-imem
- qcom,glymur-imem
- qcom,hawi-imem
+ - qcom,ipq5424-imem
- qcom,kaanapali-imem
- qcom,maili-imem
- qcom,milos-imem
--
2.34.1
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH v11 2/3] arm64: dts: qcom: ipq5424: Add the IMEM node
2026-07-27 15:47 [PATCH v11 0/3] Add support to read the watchdog bootstatus from IMEM Kathiravan Thirumoorthy
2026-07-27 15:47 ` [PATCH v11 1/3] dt-bindings: sram: describe the IPQ5424 IMEM as mmio-sram Kathiravan Thirumoorthy
@ 2026-07-27 15:47 ` Kathiravan Thirumoorthy
2026-07-27 15:47 ` [PATCH v11 3/3] arm64: dts: qcom: ipq5424: add support to get watchdog bootstatus from IMEM Kathiravan Thirumoorthy
2 siblings, 0 replies; 6+ messages in thread
From: Kathiravan Thirumoorthy @ 2026-07-27 15:47 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Konrad Dybcio
Cc: linux-arm-msm, devicetree, linux-kernel, Kathiravan Thirumoorthy,
Dmitry Baryshkov, Konrad Dybcio
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 112KB but only initial 4KB is
accessible by all masters in the SoC.
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Kathiravan Thirumoorthy <kathiravan.thirumoorthy@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/ipq5424.dtsi | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/ipq5424.dtsi b/arch/arm64/boot/dts/qcom/ipq5424.dtsi
index 702061e16a58..ed61db0749f8 100644
--- a/arch/arm64/boot/dts/qcom/ipq5424.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq5424.dtsi
@@ -730,6 +730,17 @@ ssphy_0: phy@7d000 {
status = "disabled";
};
+ sram@8600000 {
+ compatible = "qcom,ipq5424-imem", "mmio-sram";
+ reg = <0 0x08600000 0 0x1c000>;
+ ranges = <0 0 0x08600000 0x1c000>;
+
+ no-memory-wc;
+
+ #address-cells = <1>;
+ #size-cells = <1>;
+ };
+
usb3: usb3@8af8800 {
compatible = "qcom,ipq5424-dwc3", "qcom,dwc3";
reg = <0 0x08af8800 0 0x400>;
--
2.34.1
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH v11 3/3] arm64: dts: qcom: ipq5424: add support to get watchdog bootstatus from IMEM
2026-07-27 15:47 [PATCH v11 0/3] Add support to read the watchdog bootstatus from IMEM Kathiravan Thirumoorthy
2026-07-27 15:47 ` [PATCH v11 1/3] dt-bindings: sram: describe the IPQ5424 IMEM as mmio-sram Kathiravan Thirumoorthy
2026-07-27 15:47 ` [PATCH v11 2/3] arm64: dts: qcom: ipq5424: Add the IMEM node Kathiravan Thirumoorthy
@ 2026-07-27 15:47 ` Kathiravan Thirumoorthy
2026-07-27 16:20 ` Mukesh Ojha
2 siblings, 1 reply; 6+ messages in thread
From: Kathiravan Thirumoorthy @ 2026-07-27 15:47 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Konrad Dybcio
Cc: linux-arm-msm, devicetree, linux-kernel, Kathiravan Thirumoorthy,
Dmitry Baryshkov, Konrad Dybcio
Add the "sram" property to the watchdog device node to enable
retrieval of the system restart reason from IMEM, populated by XBL.
Parse this information in the watchdog driver and update the bootstatus
sysFS if the restart was triggered by a watchdog timeout.
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Kathiravan Thirumoorthy <kathiravan.thirumoorthy@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/ipq5424.dtsi | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/ipq5424.dtsi b/arch/arm64/boot/dts/qcom/ipq5424.dtsi
index ed61db0749f8..23f851e9241f 100644
--- a/arch/arm64/boot/dts/qcom/ipq5424.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq5424.dtsi
@@ -624,6 +624,7 @@ watchdog@f410000 {
reg = <0 0x0f410000 0 0x1000>;
interrupts = <GIC_SPI 0 IRQ_TYPE_EDGE_RISING>;
clocks = <&sleep_clk>;
+ sram = <&restart_reason>;
};
qusb_phy_1: phy@71000 {
@@ -739,6 +740,10 @@ sram@8600000 {
#address-cells = <1>;
#size-cells = <1>;
+
+ restart_reason: restartreason-sram@7b0 {
+ reg = <0x7b0 0x4>;
+ };
};
usb3: usb3@8af8800 {
--
2.34.1
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH v11 3/3] arm64: dts: qcom: ipq5424: add support to get watchdog bootstatus from IMEM
2026-07-27 15:47 ` [PATCH v11 3/3] arm64: dts: qcom: ipq5424: add support to get watchdog bootstatus from IMEM Kathiravan Thirumoorthy
@ 2026-07-27 16:20 ` Mukesh Ojha
2026-07-27 16:40 ` Kathiravan Thirumoorthy
0 siblings, 1 reply; 6+ messages in thread
From: Mukesh Ojha @ 2026-07-27 16:20 UTC (permalink / raw)
To: Kathiravan Thirumoorthy
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Konrad Dybcio, linux-arm-msm, devicetree, linux-kernel,
Dmitry Baryshkov, Konrad Dybcio
On Mon, Jul 27, 2026 at 09:17:37PM +0530, Kathiravan Thirumoorthy wrote:
> Add the "sram" property to the watchdog device node to enable
> retrieval of the system restart reason from IMEM, populated by XBL.
Just checking if it's XBL and not TZ? who writes into IMEM.
As when unsure, mentioning boot firmware is a better choice.
> Parse this information in the watchdog driver and update the bootstatus
> sysFS if the restart was triggered by a watchdog timeout.
>
> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> Signed-off-by: Kathiravan Thirumoorthy <kathiravan.thirumoorthy@oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/ipq5424.dtsi | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/ipq5424.dtsi b/arch/arm64/boot/dts/qcom/ipq5424.dtsi
> index ed61db0749f8..23f851e9241f 100644
> --- a/arch/arm64/boot/dts/qcom/ipq5424.dtsi
> +++ b/arch/arm64/boot/dts/qcom/ipq5424.dtsi
> @@ -624,6 +624,7 @@ watchdog@f410000 {
> reg = <0 0x0f410000 0 0x1000>;
> interrupts = <GIC_SPI 0 IRQ_TYPE_EDGE_RISING>;
> clocks = <&sleep_clk>;
> + sram = <&restart_reason>;
> };
>
> qusb_phy_1: phy@71000 {
> @@ -739,6 +740,10 @@ sram@8600000 {
>
> #address-cells = <1>;
> #size-cells = <1>;
> +
> + restart_reason: restartreason-sram@7b0 {
> + reg = <0x7b0 0x4>;
> + };
> };
>
> usb3: usb3@8af8800 {
>
> --
> 2.34.1
>
--
-Mukesh Ojha
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH v11 3/3] arm64: dts: qcom: ipq5424: add support to get watchdog bootstatus from IMEM
2026-07-27 16:20 ` Mukesh Ojha
@ 2026-07-27 16:40 ` Kathiravan Thirumoorthy
0 siblings, 0 replies; 6+ messages in thread
From: Kathiravan Thirumoorthy @ 2026-07-27 16:40 UTC (permalink / raw)
To: Mukesh Ojha
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson,
Konrad Dybcio, linux-arm-msm, devicetree, linux-kernel,
Dmitry Baryshkov, Konrad Dybcio
On 7/27/2026 9:50 PM, Mukesh Ojha wrote:
> On Mon, Jul 27, 2026 at 09:17:37PM +0530, Kathiravan Thirumoorthy wrote:
>> Add the "sram" property to the watchdog device node to enable
>> retrieval of the system restart reason from IMEM, populated by XBL.
> Just checking if it's XBL and not TZ? who writes into IMEM.
>
> As when unsure, mentioning boot firmware is a better choice.
XBL consolidates the various SS reason codes and populates the final
reason via IMEM, which is consumed by the watchdog driver.
>
>> Parse this information in the watchdog driver and update the bootstatus
>> sysFS if the restart was triggered by a watchdog timeout.
>>
>> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
>> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
>> Signed-off-by: Kathiravan Thirumoorthy <kathiravan.thirumoorthy@oss.qualcomm.com>
>> ---
>> arch/arm64/boot/dts/qcom/ipq5424.dtsi | 5 +++++
>> 1 file changed, 5 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/ipq5424.dtsi b/arch/arm64/boot/dts/qcom/ipq5424.dtsi
>> index ed61db0749f8..23f851e9241f 100644
>> --- a/arch/arm64/boot/dts/qcom/ipq5424.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/ipq5424.dtsi
>> @@ -624,6 +624,7 @@ watchdog@f410000 {
>> reg = <0 0x0f410000 0 0x1000>;
>> interrupts = <GIC_SPI 0 IRQ_TYPE_EDGE_RISING>;
>> clocks = <&sleep_clk>;
>> + sram = <&restart_reason>;
>> };
>>
>> qusb_phy_1: phy@71000 {
>> @@ -739,6 +740,10 @@ sram@8600000 {
>>
>> #address-cells = <1>;
>> #size-cells = <1>;
>> +
>> + restart_reason: restartreason-sram@7b0 {
>> + reg = <0x7b0 0x4>;
>> + };
>> };
>>
>> usb3: usb3@8af8800 {
>>
>> --
>> 2.34.1
>>
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-07-27 16:40 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-27 15:47 [PATCH v11 0/3] Add support to read the watchdog bootstatus from IMEM Kathiravan Thirumoorthy
2026-07-27 15:47 ` [PATCH v11 1/3] dt-bindings: sram: describe the IPQ5424 IMEM as mmio-sram Kathiravan Thirumoorthy
2026-07-27 15:47 ` [PATCH v11 2/3] arm64: dts: qcom: ipq5424: Add the IMEM node Kathiravan Thirumoorthy
2026-07-27 15:47 ` [PATCH v11 3/3] arm64: dts: qcom: ipq5424: add support to get watchdog bootstatus from IMEM Kathiravan Thirumoorthy
2026-07-27 16:20 ` Mukesh Ojha
2026-07-27 16:40 ` Kathiravan Thirumoorthy
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®