AM6421: Watchdog (RTI0) Not Triggering System Reboot on Custom AM6421 Board

Part Number: AM6421

Tool/software:

Hello e2e Team,

We are experiencing an issue with the watchdog (RTI0) on our custom board featuring an AM6421 SoC. Unfortunately, the watchdog is not triggering a system reboot when activated via echo 1 > /dev/watchdog.

We compared the registers of RTI0, ESM, and the reset module between our custom board and the AM64-EVM board. We found discrepancies in some ESM module registers. Below is a list of the differing registers

# ESM_INTR_EN_SET

devmem 0x4204A8 32

# ESM_PIN_EN_SET

devmem 0x4204B4 32

# ESM_INT_PRIO

devmem 0x4204B0 32

# ESM_EN

devmem 0x420008 32

According to the TRM, the watchdog cannot function without setting the ESM_EN register. We set all the registers as per the TRM, but the system still does not reboot.

We adjusted the following registers to match the AM64-EVM configuration:

# ESM_INTR_EN_SET
devmem 0x4204A8 32 0x3
# ESM_PIN_EN_SET
devmem 0x4204B4 32 0x3
# ESM_INT_PRIO
devmem 0x4204B0 32
# Global Reset Enable
devmem 0x420008 32 0xF 

Despite these changes, the watchdog is still not triggering a reboot.

Our setup:

  • Linux 6.1.94+rt
  • Sysfw: 10.01.08
  • U-Boot: 2021.01

The same Linux, U-Boot, and Sysfw versions are running on an AM64-EVM board, where the watchdog (RTI0) functions correctly. Only the dts is different, we remove the second CPU, WD and the two R5 cores. 

We assume the following Signal flow for a RTI0 interrupt: RTI0 (RTI0_INTR_WWD_0) -> (EMS PIN 160) ESM ->  (ESM0 output reset) (main_esm_error_rstn) MAIN Domain Reset Locig. 

Any insights or suggestions would be greatly appreciated.

Thank you!