Re: Questions about Watch Dog Timer under Linux.

From: Mark Brown
Date: Wed Dec 09 2009 - 09:59:25 EST


On Wed, Dec 09, 2009 at 10:47:28PM +0800, Cypher Wu wrote:
> I'm used to work on embedded systems, the Watch Dog Timer in our
> products is usually a seperate chip on the board wich will start to
> work after power reset and will time out in 2 seconds. The system has
> to start dog clearing from the very beginning and there have no way to
> disable WDT.

> Now I want to use WDT under Linux, while I read
> Documentation/watchdog/watchdog-api.txt and then look though some
> drivers of WDT under Linux, it seems WDT under Linux has to be able to
> be disabled, and it will be disabled from the beginning, and starting
> to work after the application open the special driver file? The
> sample code under Linux use a very bigger time span than our embedded
> system:

You don't *have* to be able to disable the watchdog - the API supports
it but you can always fail to do so (and even where you can Linux
watchdogs support a non-disabling mode, look for WATCHDOG_NOWAYOUT in
existing drivers). Similarly, there's no problem with having the
watchdog be live at system startup - if the watchdog is already enabled
when the driver is opened then the driver just needs to handle that
gracefully.

> while (1) {
> ret = write(fd, "\0", 1);

...

> sleep(10);
> }
>

> Is this the pattern we have to follow to use WDT under Linux? We have

You're free to update the watchdog as often as you like, the 10s is
just a number that was picked which is suitable for that application.

> to choose a chip as WDT, and it seems the chip we've familiar under
> embedded systems can't be used under Linux?

Nothing about your watchdog sounds particularly unusual for Linux.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/