I write something in source codes of watchdog,
struct watchdog_device *wdog = (struct watchdog_device *)arg;
struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog);
static int watchdog_reboot=0;
watchdog_reboot++;
pr_err("watchdog is ping....,time=%d \n",watchdog_reboot);
/* ping it every wdog->timeout / 2 seconds to prevent reboot */
if(watchdog_reboot<5)
imx2_wdt_ping(wdog);
else
pr_err("wdog isn't ping\n");
mod_timer(&wdev->timer, jiffies + wdog->timeout * HZ / 2);
and the console print
ls1046ardb login: root
root@ls1046ardb:~# [ 32.098606] watchdog is ping....,time=2
[ 62.178629] watchdog is ping....,time=3
[ 92.258654] watchdog is ping....,time=4
[ 122.338607] watchdog is ping....,time=5
[ 122.342538] wdog isn't ping
root@ls1046ardb:~#
root@ls1046ardb:~# [ 152.418606] watchdog is ping....,time=6
[ 152.422535] wdog isn't ping
[ 182.498647] watchdog is ping....,time=7
[ 182.502577] wdog isn't ping
the watchdog is timeout,and it can't reboot ,why???
已解决! 转到解答。
Please refer to the QorIQ LS1046A Reference Manual, Chapter 35 Watchdog Timer (WDOG), 35.1 Overview:
"the core WDOG timers expiry signals are used to raise reset request (RESET_REQ output of the chip)."
How RESET_REQ_B is connected in your case?
Which board is in question?