Tool/software:
Due to other priorities, I was unable to follow up on information provided by Anil in the thread (now locked):
https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1483103/processor-sdk-am62x-m4-watchdog
I have done so now.
My objective is to cause a reset when the M4 watchdog expires. I have followed the information in that thread and have the watchdog expiring when I fail to use Watchdog_clear() to reset the watchdog down counter. The problem is that the processor isn't resetting.
I have periodically dumped registers:
WDSTATUS 0
DWDCNTR 16d601
MCU_CTRL_MMR_CFG0_RST_CTRL 400fff
-----------------------------------
WDSTATUS 0
DWDCNTR 11e4e9
MCU_CTRL_MMR_CFG0_RST_CTRL 400fff
-----------------------------------
WDSTATUS 0
DWDCNTR cf357
MCU_CTRL_MMR_CFG0_RST_CTRL 400fff
-----------------------------------
WDSTATUS 0
DWDCNTR 8021d
MCU_CTRL_MMR_CFG0_RST_CTRL 400fff
-----------------------------------
WDSTATUS 0
DWDCNTR 31115
MCU_CTRL_MMR_CFG0_RST_CTRL 400fff
-----------------------------------
WDSTATUS 32
DWDCNTR 1fe2056
MCU_CTRL_MMR_CFG0_RST_CTRL 400fff
This shows the down counter decrementing and then wrapped around. In the last capture, the status register shows that the watchdog has expired.
The dump also shows that the RST_CTRL_MCU_ESM_ERROR_RST_EN_Z bit (bit 17) of the register MCU_CTRL_MMR0 is clear, which means that the Reset of MCU by ESM is activated.
From TRM section 6.3.5.6 MCU ESM_ERRORz Reset, I gather that the ESM error is the correct bit to set in MCU_CTRL_MMR0. That section says that the ESM Error Reset is issued when a MCU WDT timeout occurs.
What am I missing? What else can prevent an MCU watchdog expiry from resetting the processor?
Thanks,
Steve