Tool/software:
The WWDT function has issues on the HS-SE board, while it works properly on the HS-FS board. The verification method is as follows: Add logic to the watchdog - feeding function to feed the watchdog only twice. When verified on the non - fuse board, the system will trigger a watchdog restart after two times of feeding. However, on the fuse board, the restart will not be triggered.
drivers/watchdog/rti_wdt.c
static int count = 2 ;
static int rti_wdt_ping(struct watchdog_device *wdd)
{
struct rti_wdt_device *wdt = watchdog_get_drvdata(wdd);
printk("enter %s, count=%d\n", __func__, count);
if(count-- <= 0)
return 0;
/* put watchdog in service state */
writel_relaxed(WDKEY_SEQ0, wdt->base + RTIWDKEY);
/* put watchdog in active state */
writel_relaxed(WDKEY_SEQ1, wdt->base + RTIWDKEY);
printk("leave %s, count=%d\n", __func__, count);
return 0;
}

