Colibri iMX7 hardware Watchdog usage issue

Trying to use the Colibri iMX7-Solo hardware Watchdog feature:-

  1. Ran the example demo program ‘ToradexCElibraries_2.4-20200306\libdemos\dotNet\WdgDemo’, as it is, on the iMX7 board. The program just keeps running and the board does not get Reset even after the Watchdog Refresh time of 5 seconds has been exceeded.

  2. Replaced all the generic Watchdog API calls(for e.g, wdg.Wdg_Init("WDG1");) with iMX7 specific calls: For e.g, wdg_imx7.Imx7Wdg_Init("WDG1");
    Same behavior and board does not get Reset.

Please help with this issue.
Many thanks in advance.

Update:- If my understanding is corrrect the Watchdog reset signal line of the SoC is connected to PMIC for doing actual system reset and so changed the ‘GPIO1_IO00’ pin from ALT0 to first ALT3(wdog1.WDOG_B) and tried. Later to ALT4(wdog1.WDOG_RST_B_DE_B).
But no success.

Update2:- OK, WEC7 release notes mentions: “Watchdog on IMX7 only supports timeout of 1,8,32 or 128 seconds”. But again tried 1,8,32 seconds as the Watchdog timeout but still no success,

Let me test it. Allow me some time

Hi @sahil.tx , any update on this?

Hi,
I am able to reproduce the issue. Watchdog is not resetting the iMX7.
I am debugging it and will update you asap.

Hi @Vijay.pst,

Thank you for pointing it out.

It was actually a small configuration issue related to the I2C attached to PMIC.
I have made the changes and compiled the watchdog lib. Download it from here and try it out.

Hi @sahil.tx ,
OK, so iMX7 built-in Watchdog timer is not used because of hardware bugs and instead PMIC Watchdog timer is used similar to what is done in Colibri Linux.

Tested your updated Watchdog library and found the Watchdog timer working fine now. Thanks for the solution!

Hi @sahil.tx , actually we needed this hardware Watchdog solution as part of .Net-CF/C# libraries.

Also, knowing the iMX7 system reset/restart reason(software-reset, watchdog-reset, over-temperature-reset etc.) is another requirement which is not supported in CE libraries.

Anyways, we managed to directly interact with the onboard PMIC through I2C and able to successfully use it’s internal watchdog timer as well as the ‘Power-off History Register’ to support our product softwware requirements.

Hi @vijay

Nice to hear that you solved it.

In case you still need the DLL for your C# project, download it from here

Hi @sahil.tx Sure, thanks.

You are welcome.

Best regards,
Jaski