u-boot leaves watchdog enabled by default
Stefan Roese
sr at denx.de
Mon Sep 21 11:01:37 CEST 2020
Hi Michael,
Hi Chris,
On 15.09.20 12:44, Chris Packham wrote:
>
>
> On Tue, 15 Sep 2020, 7:54 PM Michael Walle, <michael at walle.cc> wrote:
>
> Am 2020-09-15 09:44, schrieb Rayagonda Kokatanur:
> > On Tue, Sep 15, 2020 at 12:56 PM Michael Walle <michael at walle.cc>
> > wrote:
> >>
> >> Hi Stefan,
> >>
> >> it appears that since commit 06985289d45 ("watchdog: Implement
> generic
> >> watchdog_reset() version") - by default - the first watchdog is
> >> started
> >> unconditionally if CONFIG_WDT is set but never stopped before
> booting
> >> the operating system.
> >>
> >> Shouldn't it also be stopped uncondionally? What's worse is that on
> >> one
> >> board/arch the watchdog is stopped in arch_preboot_os() which is
> never
> >> called in the bootefi case. So even if I'd do a workaround and
> stop it
> >> manually in my board code, I couldn't do that consistently for
> >> bootm/bootefi.
> >>
> >> Or am I missing something here?
> >
> > Define CONFIG_WATCHDOG.
> > This takes care of resetting wdt.
>
> Yes as along as you're inside the bootloader, but when u-boot hands
> control over the OS the watchdog is not serviced anymore; which wouldn't
> be a problem per se, but it is enabled unconditionally by u-boot.
>
>
> Just to add some data. At $dayjob we use this behaviour as a failsafe to
> make sure our userspace gets to a point where it is servicing the
> watchdog.
Yes, this is exactly how this is supposed to work AFAIK.
Michael, are you sure that the watchdog was disabled in U-Boot when
booting into the OS before this patch?
> That said having a leave-wdt-running environment variable
> would work for our use case.
I would rather use it the other way around. Something like "wdt-stop-
pre-os" to optionally stop the WDT before booting into the OS.
Remark:
IMHO, if you don't use the WDT in the OS, it does not make much sense
to enable the WDT in U-Boot.
Thanks,
Stefan
More information about the U-Boot
mailing list