Hello,
I am running Linux 5.4 and attempting to use both Watchdog 1 and Watchdog 2 on the iMX6ULL for resetting the system under different circumstances. Watchdog 1 successfully resets the system, but Watchdog 2 does not. I have Watchdog 2 enabled in my devicetree:
&wdog2 {
status = "okay";
};
and both watchdogs do successfully initialize on boot:
[ 0.439700] imx2-wdt 20bc000.wdog: timeout 60 sec (nowayout=0)
[ 0.440656] imx2-wdt 20c0000.wdog: timeout 60 sec (nowayout=0)
and also both show up under /dev:
# ls -l /dev/watchdog*
crw------- 1 root root 10, 130 Nov 13 15:46 /dev/watchdog
crw------- 1 root root 247, 0 Nov 13 15:46 /dev/watchdog0
crw------- 1 root root 247, 1 Nov 13 15:46 /dev/watchdog1
If I kill the application that is kicking Watchdog 1, I see this message in the logs and a minute later, the system resets:
watchdog: watchdog0: watchdog did not stop!
Watchdog 2 is inactive by default, but becomes active once it is kicked for the first time. If I leave it without kicking it after setting it active, I see a similar log message, but no system reset ever occurs:
watchdog: watchdog1: watchdog did not stop!
In addition to these tests, I have made modifications to the driver to dump register values and have confirmed that both watchdogs are configured in the same manner, and I have also attempted to use Watchdog 3 rather than Watchdog 2 and had the same result.
Any ideas as to why this is the case? Is there any extra configuration that needs to occur to allow Watchdog 2 to also reset the system alongside Watchdog 1? From reading the reference manual, it does not seems like it should be necessary, but I may have missed something.
Any information or guidance would be much appreciated.