[U-Boot-Users] watchdog usage in U-Boot
w.wegner at astro-kom.de
w.wegner at astro-kom.de
Thu Feb 21 14:46:27 CET 2008
Hi,
maybe this is again a stupid question, but I did not yet figure out
about it myself, so maybe somebody could give me some pointers
and/or correct my assumptions.
I want to use the watchdog in my MCF5373L board (which is
supported by U-Boot using the MCF532x code). I find
watchdog_init and so on but I did not see any of these being
called anywhere from within U-Boot. However, when enabling
the watchdog with CONFIG_WATCHDOG, the timer already
starts and will expire if any U-Boot internal task takes too long.
>From other posts I found some things that I would like to state
as assumptions, please correct me if any of these is wrong
- watchdog is not initialized by default, has to be done by
board-specific code
- watchdog servicing (reset the counter) is also not done
by default - has to be done by board-specific code
- I saw a patch by Wolfgang that splits udelay, but did not
see how the watchdog_reset is handled by this? Where
is this done?
My problem with this is:
- enabling watchdog with CONFIG_WATCHDOG will not
disable the (normally enabled) watchdog during startup
and thus it will time out with time-consuming tasks
(like bootdelay or loading a large FPGA)
- I have no defined "watchdog service" before control is
handed over to the linux kernel, so even when the linux
kernel would have support for the correct watchdog (which
I still have to implement), the timeout is never well defined
at this point.
I can implement watchdog_init() in my board-specific startup
code and call watchdog_reset from time to time during my
board-specific FPGA loader, but first this seems not to be
a very elegant way and second this does not solve the problem
of bootdelay and handing over control to the linux kernel.
I would be happy if anybody could give some hints despite
this long text...
Regards,
Wolfgang
More information about the U-Boot
mailing list