Hi Michael,
Hi Chris,

On 15.09.20 12:44, Chris Packham wrote:


On Tue, 15 Sep 2020, 7:54 PM Michael Walle, <mich...@walle.cc> wrote:

    Am 2020-09-15 09:44, schrieb Rayagonda Kokatanur:
     > On Tue, Sep 15, 2020 at 12:56 PM Michael Walle <mich...@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

Reply via email to