We have an i.MX6D-based board, and we are trying to use the watchdog timer to reboot the system in case of inactivity. The device enumerates correctly during boot:
imx2-wdt 20bc000.wdog: IMX2+ Watchdog Timer enabled. timeout=60s (nowayout=1)
However, when we measure it, the watchdog reboots the system after 25 seconds, not after 60 seconds. The register WDOG1_WCR contains the value 0x779F, which is consistent with a 60-second timeout. We're pretty sure it's nothing else that's rebooting the system since, if we tickle /dev/watchdog every 20 seconds, the system does not reboot.
Has anyone seen this before? Is it possible we've messed up on setting up some of the clocks?
Hi,
I have run into the same issue. Did anyone find the root cause in the meantime?
-- Sebastian
Hi,
I figured out, that the 32khz clock did run much faster than it should by using the SNVS RTC:
# cat /sys/class/rtc/rtc1/name
snvs_rtc 20cc000.snvs:snvs-rtc-lp
# cat /sys/class/rtc/rtc1/since_epoch ; sleep 60 ; cat /sys/class/rtc/rtc1/since_epoch
5534
5698
# echo "5698-5534 = 164 => 32khz clock was almost 3x faster than it should be"
In my case the imx6dl is mounted on a off-the-shelf system on module and the issue was fixed by a new revision of the custom carrier board. I do not know what carrier board change caused/fixed the issue. My guess is, that there were some power glitches.
-- Sebastian
Hi Leo,
Did you figure what is the issue by yourself? I am experiencing the same issue and nobody at Freescale seems to understand it.
Regards,
Nope. The issue does seem to have "gone away" in that watchdog timeouts now take the expected amount of time, but I've no idea what we changed/fixed to make that happen.
Hi Leo
you can add WDOG initialization ar very beginning of
processor start-up, say in uboot lowlevel_init.S and check.
Best regards
chip
ERROR: Non-sequitur (Response bears no relation to the question asked).