Skip to content

Commit 286f3d3

Browse files
committed
[nrf toup] Saving boot reason on nRF54h20
-Use NRF_RESETINFO register to get boot reason Signed-off-by: Konrad Grucel <[email protected]>
1 parent 9cfd6e1 commit 286f3d3

File tree

1 file changed

+38
-1
lines changed

1 file changed

+38
-1
lines changed

src/platform/Zephyr/DiagnosticDataProviderImpl.cpp

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,16 +52,53 @@ const size_t kMaxHeapSize = CONFIG_SRAM_BASE_ADDRESS + KB(CONFIG_SRAM_SIZE) - PO
5252

5353
#endif
5454

55+
#ifdef CONFIG_SOC_SERIES_NRF54HX
56+
#include <hal/nrf_resetinfo.h>
57+
#endif
58+
5559
namespace chip {
5660
namespace DeviceLayer {
5761

5862
namespace {
5963

6064
BootReasonType DetermineBootReason()
6165
{
62-
#ifdef CONFIG_HWINFO
66+
#if defined(CONFIG_SOC_SERIES_NRF54HX) || defined(CONFIG_HWINFO)
6367
uint32_t reason;
68+
#endif
69+
70+
#ifdef CONFIG_SOC_SERIES_NRF54HX
71+
reason = nrf_resetinfo_resetreas_global_get(NRF_RESETINFO);
72+
73+
if (reason == RESETINFO_RESETREAS_GLOBAL_ResetValue)
74+
{
75+
return BootReasonType::kSoftwareReset;
76+
}
77+
78+
if (reason & RESETINFO_RESETREAS_GLOBAL_RESETPORONLY_Msk)
79+
{
80+
return BootReasonType::kBrownOutReset;
81+
}
6482

83+
if (reason & RESETINFO_RESETREAS_GLOBAL_DOG_Msk)
84+
{
85+
return BootReasonType::kHardwareWatchdogReset;
86+
}
87+
88+
if ((reason & (RESETINFO_RESETREAS_GLOBAL_RESETPIN_Msk | RESETINFO_RESETREAS_GLOBAL_RESETPOR_Msk)) ==
89+
(RESETINFO_RESETREAS_GLOBAL_RESETPIN_Msk | RESETINFO_RESETREAS_GLOBAL_RESETPOR_Msk))
90+
{
91+
return BootReasonType::kPowerOnReboot;
92+
}
93+
94+
if ((reason & (RESETINFO_RESETREAS_GLOBAL_RESETPOR_Msk | RESETINFO_RESETREAS_GLOBAL_SECSREQ_Msk)) ==
95+
(RESETINFO_RESETREAS_GLOBAL_RESETPOR_Msk | RESETINFO_RESETREAS_GLOBAL_SECSREQ_Msk))
96+
{
97+
return BootReasonType::kSoftwareUpdateCompleted;
98+
}
99+
#endif
100+
101+
#ifdef CONFIG_HWINFO
65102
if (hwinfo_get_reset_cause(&reason) != 0)
66103
{
67104
return BootReasonType::kUnspecified;

0 commit comments

Comments
 (0)