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.

AM3517 watchdog not resetting board

All,

Please forgive me if this is has already been addressed.  I've searched away on these forums, but do you know how many different times "problems", "reset", "work", "watchdog", and similar are posted here?  :)  Needless to say, I saw a LOT of kernel boot dumps, but no one addressing my issue.  So, here goes:

We have both a Technexion TAM-3517 and a CompuLab CM-T3517 here at the shop.  Unfortunately, I cannot get either to be reset by their watchdog under Linux.

Kernel side:

I believe this is all built into the AM35xx chip and supported natively by the kernel, and I've tried several revisions of the kernel and tools to strobe the clock.  On the kernel side, I've tried versions 2.6.32, 2.6.37 (both based on TI's PSP), and our 3.2 as well.  In all cases, once I start the watchdog and then just stop it, nothing happens.

In all cases, my kernel config should have contained:

CONFIG_WATCHDOG=Y

CONFIG_OMAP_WATCHDOG=Y

I've also twiddled with CONFIG_WATCHDOG_NOWAYOUT to try to make sure I wasn't simply overlooking something.  No dice yet.

On the utility side:

From a userspace utility side, I tried a standalone watchdog app and Busybox's built-in 'watchdog' application.

For the standalone watchdog app, I simply downloaded some very basic source from (http://tomoyo.sourceforge.jp/cgi-bin/lxr/source/Documentation/watchdog/src/watchdog-simple.c), compiled it statically, and ran it on both boards. It gave no errors, but terminating the application did not cause the board to eventually reset as it should.

With Busybox's 'watchdog' app configured and installed, I got an error. When I ran it, I got an ioctl() error:

root@test:~# watchdog -F /dev/watchdog

watchdog: WDIOC_SETOPTIONS: Inappropriate ioctl for device


I spoke with a software engineer at Technexion, and he verified my results on his end; but had no solution.

I see no errata on the subject from TI.

Does anyone else have this working under Linux?  I've got to simply be doing something wrong.

Thanks!

  • Better later than never.

    I have this working on my CompuLab CM-T3517 using CompuLab's patched 2.6.32-cm-t3517 kernel. I configured my kernel like this:
    CONFIG_WATCHDOG=Y
    CONFIG_OMAP_WATCHDOG=Y
    CONFIG_WATCHDOG_NOWAYOUT=N

    And I installed Debian's watchdog package (apt-get install watchdog), then uncommented these lines in /etc/watchdog.conf:
    file = /var/log/messages
    watchdog-device = /dev/watchdog

    Then restarted the watchdog:
    /etc/init.d/watchdog restart

    Then tested it by pausing the process:
    killall -STOP watchdog

    Sure enough it reliably reboots about a minute later.

    Killing the process altogether will result in the device handle being closed, effectively disabling the watchdog. Maybe that's what went wrong in your case?