Skip to contentSkip to conversation

arm: socfpga: Change watchdog timeout

PATCH New Stefan Roese 2 participants 2 messages Dec 19, 2014 – Dec 21, 2014 Arm (32-bit)

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 arm: socfpga: Change watchdog timeout

The current current watchdog timeout of 12 seconds is a bit small for booting into Linux, especially when using a NFS based rootfs. So lets change this timeout to a more defensive value of 30 seconds.

Also we now call the hw_watchdog_init() function so that we override the value already configured from the Preloader.

Cc Vince Bridgers <[email protected]>
Cc Dinh Nguyen <[email protected]>
Cc Chin Liang See <[email protected]>
Cc Marek Vasut <[email protected]>
Cc Pavel Machek <[email protected]>

---
v2:
- Invert logic so that we can use #ifdef instead of #ifndef as suggested by Marek (thanks)

 arch/arm/cpu/armv7/socfpga/misc.c | 12 +++++++++++-
 include/configs/socfpga_common.h  |  2 +-
 2 files changed, 12 insertions(+), 2 deletions(-)
arch/arm/cpu/armv7/socfpga/misc.c +11 -1
index 73cffd3..7873c38 100644
@@ -9,6 +9,7 @@
 #include <altera.h>
 #include <miiphy.h>
 #include <netdev.h>
+#include <watchdog.h>
 #include <asm/arch/reset_manager.h>
 #include <asm/arch/system_manager.h>
 #include <asm/arch/dwmmc.h>
@@ -150,14 +151,23 @@ static inline void socfpga_fpga_add(void) {}
 
 int arch_cpu_init(void)
 {
+#ifdef CONFIG_HW_WATCHDOG
+	/*
+	 * In case the watchdog is enabled, make sure to (re-)configure it
+	 * so that the defined timeout is valid. Otherwise the SPL (Perloader)
+	 * timeout value is still active which might too short for Linux
+	 * booting.
+	 */
+	hw_watchdog_init();
+#else
 	/*
 	 * If the HW watchdog is NOT enabled, make sure it is not running,
 	 * for example because it was enabled in the preloader. This might
 	 * trigger a watchdog-triggered reboot of Linux kernel later.
 	 */
-#ifndef CONFIG_HW_WATCHDOG
 	socfpga_watchdog_reset();
 #endif
+
 	return 0;
 }
 
include/configs/socfpga_common.h +1 -1
index 6bb9473..6b1f967 100644
@@ -139,7 +139,7 @@
 #define CONFIG_DESIGNWARE_WATCHDOG
 #define CONFIG_DW_WDT_BASE		SOCFPGA_L4WD0_ADDRESS
 #define CONFIG_DW_WDT_CLOCK_KHZ		25000
-#define CONFIG_HW_WATCHDOG_TIMEOUT_MS	12000
+#define CONFIG_HW_WATCHDOG_TIMEOUT_MS	30000
 #endif
 
 /*
Signature · 1 line
2.2.1
Applied
#1 lore raw

PATCH v2 1/1 arm: socfpga: Change watchdog timeout

Quoted 7 lines · Stefan Roese

The current current watchdog timeout of 12 seconds is a bit small for booting into Linux, especially when using a NFS based rootfs. So lets change this timeout to a more defensive value of 30 seconds.

Also we now call the hw_watchdog_init() function so that we override the value already configured from the Preloader.

Quoted 6 lines
Cc Vince Bridgers <[email protected]>
Cc Dinh Nguyen <[email protected]>
Cc Chin Liang See <[email protected]>
Cc Marek Vasut <[email protected]>
Cc Pavel Machek <[email protected]>

Applied, thank you!

Best regards,
Marek Vasut