
bugfix: the watchdog post for lwmon5 doesn't work. This Patch fix it. To trigger and activate the watchdog correct it is necessary to create 2 pulses. Lowpegel on GPIO62 point to a voltagefailure.
Signed-off-by: Sascha Laue sascha.laue@liebherr.com --- post/board/lwmon5/watchdog.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/post/board/lwmon5/watchdog.c b/post/board/lwmon5/watchdog.c index 48ff687..014aae4 100644 --- a/post/board/lwmon5/watchdog.c +++ b/post/board/lwmon5/watchdog.c @@ -55,7 +55,7 @@ static void watchdog_magic_write(uint value)
int sysmon1_post_test(int flags) { - if (gpio_read_in_bit(CFG_GPIO_SYSMON_STATUS)) { + if (0 == gpio_read_in_bit(CFG_GPIO_SYSMON_STATUS)) { /* * 3.1. GPIO62 is low * Assuming system voltage failure. @@ -99,6 +99,9 @@ int lwmon5_watchdog_post_test(int flags) ints = disable_interrupts (); /* 3.2.2. strobe watchdog once */ WATCHDOG_RESET(); + base = post_time_ms (0); + while (post_time_ms (base) < 2) + WATCHDOG_RESET(); out_be32((void *)CFG_WATCHDOG_TIME_ADDR, 0); /* 3.2.3. save time of strobe in scratch register 2 */ base = post_time_ms (0);