watchdog/imx_watchdog: do not set WCR_WDW
with WCR_WDW set, the watchdog won't trigger if we bootet linux and idle around while the watchdog is not triggered. It seems the timer makes progress very slowly if at all. I managed to remain 20minutes alive while the timeout was set to 60secs. It reboots within 60secs if I start a busyloop in userland (something like "while (1) { }"). While I don't see a reason why the WDT should not be running while the CPU is in idle, I'm dropping this bit. Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Acked-by: Stefano Babic <sbabic@denx.de>
This commit is contained in:
parent
27d3608076
commit
5cab874052
@ -20,7 +20,6 @@ struct watchdog_regs {
|
|||||||
#define WCR_WDE 0x04 /* WDOG enable */
|
#define WCR_WDE 0x04 /* WDOG enable */
|
||||||
#define WCR_WDT 0x08
|
#define WCR_WDT 0x08
|
||||||
#define WCR_SRS 0x10
|
#define WCR_SRS 0x10
|
||||||
#define WCR_WDW 0x80
|
|
||||||
#define SET_WCR_WT(x) (x << 8)
|
#define SET_WCR_WT(x) (x << 8)
|
||||||
|
|
||||||
#ifdef CONFIG_IMX_WATCHDOG
|
#ifdef CONFIG_IMX_WATCHDOG
|
||||||
@ -47,7 +46,7 @@ void hw_watchdog_init(void)
|
|||||||
#endif
|
#endif
|
||||||
timeout = (CONFIG_WATCHDOG_TIMEOUT_MSECS / 500) - 1;
|
timeout = (CONFIG_WATCHDOG_TIMEOUT_MSECS / 500) - 1;
|
||||||
writew(WCR_WDZST | WCR_WDBG | WCR_WDE | WCR_WDT | WCR_SRS |
|
writew(WCR_WDZST | WCR_WDBG | WCR_WDE | WCR_WDT | WCR_SRS |
|
||||||
WCR_WDW | SET_WCR_WT(timeout), &wdog->wcr);
|
SET_WCR_WT(timeout), &wdog->wcr);
|
||||||
hw_watchdog_reset();
|
hw_watchdog_reset();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user