Some platforms may need warm reboot support when kernel crashed
for post mortem analysis instead of cold reboot. So use config
CONFIG_WARM_REBOOT_ON_PANIC and SYSTEM_RESET2 psci command
support for warm reset.

Signed-off-by: Prasad Sodagudi <psoda...@codeaurora.org>
---
 kernel/panic.c    |  4 ++++
 lib/Kconfig.debug | 10 ++++++++++
 2 files changed, 14 insertions(+)

diff --git a/kernel/panic.c b/kernel/panic.c
index c1fcaad..6ab6675 100644
--- a/kernel/panic.c
+++ b/kernel/panic.c
@@ -198,6 +198,10 @@ void panic(const char *fmt, ...)
 
        console_verbose();
        bust_spinlocks(1);
+#ifdef CONFIG_WARM_REBOOT_ON_PANIC
+       /* Configure for warm reboot instead of cold reboot. */
+       reboot_mode = REBOOT_WARM;
+#endif
        va_start(args, fmt);
        len = vscnprintf(buf, sizeof(buf), fmt, args);
        va_end(args);
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index d695ec1..2a727d8 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -1000,6 +1000,16 @@ config PANIC_TIMEOUT
          value n > 0 will wait n seconds before rebooting, while a timeout
          value n < 0 will reboot immediately.
 
+config WARM_REBOOT_ON_PANIC
+       bool "Warm reboot instead of cold reboot for panic"
+       default n
+       help
+         Some vendor platform may need warm reboot instead of cold reboot
+         for debugging. Before vendor specific power off driver is
+         probed, platform always gets cold reset. By setting Y here and
+         support for PSCI V1.1 is present from firmware, platform would
+         get warm reset instead of cold reset.
+
 config SCHED_DEBUG
        bool "Collect scheduler debugging info"
        depends on DEBUG_KERNEL && PROC_FS
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,\na 
Linux Foundation Collaborative Project

Reply via email to