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; }