This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM62L: Watchdog not working

Part Number: AM62L

Tool/software:

Hi,

Reference: 3.2.2.19. Watchdog — Linux SDK for AM62L Documentation

After triggering a crash with the command echo c > /proc/sysrq-trigger, the system does not reboot.

root@am62lxx-evm:~# lsmod | grep rti
rti_wdt 12288 0
root@am62lxx-evm:~# rmmod rti_wdt
root@am62lxx-evm:~# modprobe rti_wdt heartbeat=30

root@am62lxx-evm:~# echo c > /proc/sysrq-trigger
[ 201.279618] sysrq: Trigger a crash
[ 201.283045] Kernel panic - not syncing: sysrq triggered crash
[ 201.288783] CPU: 1 UID: 0 PID: 504 Comm: sh Tainted: G O 6.12.13-ti-g1a2d611ee02d #1
[ 201.297900] Tainted: [O]=OOT_MODULE
[ 201.301376] Hardware name: Texas Instruments AM62L3 EVM (DT)
[ 201.307020] Call trace:
[ 201.309456] dump_backtrace+0x90/0xe8
[ 201.313123] show_stack+0x18/0x24
[ 201.316432] dump_stack_lvl+0x34/0x8c
[ 201.320088] dump_stack+0x18/0x24
[ 201.323394] panic+0x390/0x3a4
[ 201.326444] sysrq_reset_seq_param_set+0x0/0x98
[ 201.330971] __handle_sysrq+0xe4/0x1cc
[ 201.334715] write_sysrq_trigger+0xc0/0xd0
[ 201.338803] proc_reg_write+0x9c/0xf0
[ 201.342458] vfs_write+0xd4/0x378
[ 201.345768] ksys_write+0x74/0x10c
[ 201.349161] __arm64_sys_write+0x1c/0x28
[ 201.353075] invoke_syscall+0x48/0x10c
[ 201.356817] el0_svc_common.constprop.0+0xc0/0xe0
[ 201.361511] do_el0_svc+0x1c/0x28
[ 201.364819] el0_svc+0x28/0x98
[ 201.367867] el0t_64_sync_handler+0x120/0x12c
[ 201.372214] el0t_64_sync+0x190/0x194
[ 201.375870] SMP: stopping secondary CPUs
[ 201.379790] Kernel Offset: disabled
[ 201.383265] CPU features: 0x00,00000080,00200000,4200420b
[ 201.388651] Memory Limit: none
[ 201.391700] ---[ end Kernel panic - not syncing: sysrq triggered crash ]---

  • Hello,

    I am working on getting an AM62L board to verify. If the watchdog is working, you should not need to crash the board. You should be able to just start the watchdog counter and wait 30 seconds or a minute.

    Regards,

    Nick

  • Hello Mazel,

    I am able to replicate your observation that watchdog is not rebooting the board. Can you please verify for me exactly which revision of the AM62L board you are using? (just in case that matters) Feel free to attach a picture of the EVM.

    Regards,

    Nick

  • Hi,

    Thanks for the test, I don't have the version info for EVM but the picture is below:

  • Hello Mazel,

    Thank you for posting.

    It sounds like the code adding AM62L watchdog support did not make it into ti-linux-kernel-6.12.y in time for the SDK 11.0 release.

    I will be on vacation the last week of May, but I have asked a team member to post the watchdog patches here for you to test. If you have not heard anything from us, please ping the thread on June 3-4 to make sure I see your message after I return.

    Regards,

    Nick

  • Hi,

    Can you please try the following in Linux driver:

    diff --git a/drivers/watchdog/rti_wdt.c b/drivers/watchdog/rti_wdt.c
    index 4895a69015a8..04b5072c4bc5 100644
    --- a/drivers/watchdog/rti_wdt.c
    +++ b/drivers/watchdog/rti_wdt.c
    @@ -35,7 +35,7 @@
     #define RTIWWDRXCTRL   0xa4
     #define RTIWWDSIZECTRL 0xa8
     
    -#define RTIWWDRX_NMI   0xa
    +#define RTIWWDRX_NMI   0x5
     
     #define RTIWWDSIZE_50P         0x50
     #define RTIWWDSIZE_25P         0x500

    Please know that this will break watchog reset for other platforms besides am62lx.

  • Hi,

    After the modifications, performing the action will trigger a restart.​

    root@am62lxx-evm:~# rmmod rti_wdt
    root@am62lxx-evm:~# modprobe rti_wdt heartbeat=10
    root@am62lxx-evm:~# echo s > /dev/watchdog0