summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/panic_output.c10
-rw-r--r--common/system.c10
2 files changed, 10 insertions, 10 deletions
diff --git a/common/panic_output.c b/common/panic_output.c
index af98c5953d..a2c5e56b32 100644
--- a/common/panic_output.c
+++ b/common/panic_output.c
@@ -115,16 +115,6 @@ struct panic_data *panic_get_data(void)
return pdata_ptr->magic == PANIC_DATA_MAGIC ? pdata_ptr : NULL;
}
-#ifdef CONFIG_SOFTWARE_PANIC
-static void panic_init(void)
-{
- /* Log panic cause if watchdog caused reset */
- if (system_get_reset_flags() & RESET_FLAG_WATCHDOG)
- panic_log_watchdog();
-}
-DECLARE_HOOK(HOOK_INIT, panic_init, HOOK_PRIO_DEFAULT);
-#endif
-
#ifdef CONFIG_CMD_STACKOVERFLOW
static void stack_overflow_recurse(int n)
{
diff --git a/common/system.c b/common/system.c
index 39ccc29165..b257bc8594 100644
--- a/common/system.c
+++ b/common/system.c
@@ -575,6 +575,16 @@ void system_common_pre_init(void)
{
uintptr_t addr;
+#ifdef CONFIG_SOFTWARE_PANIC
+ /*
+ * Log panic cause if watchdog caused reset. This
+ * must happen before calculating jump_data address
+ * because it might change panic pointer.
+ */
+ if (system_get_reset_flags() & RESET_FLAG_WATCHDOG)
+ panic_log_watchdog();
+#endif
+
/*
* Put the jump data before the panic data, or at the end of RAM if
* panic data is not present.