From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Roese Date: Mon, 21 Sep 2020 11:01:37 +0200 Subject: u-boot leaves watchdog enabled by default In-Reply-To: References: <2a15bff36a6ab3a36dfb20f3db220e14@walle.cc> <86a5f3864db6f5eebe9dbf8c0b5ad05b@walle.cc> Message-ID: <685c3886-643f-7f33-3226-ba6814ba0dc0@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Michael, Hi Chris, On 15.09.20 12:44, Chris Packham wrote: > > > On Tue, 15 Sep 2020, 7:54 PM Michael Walle, wrote: > > Am 2020-09-15 09:44, schrieb Rayagonda Kokatanur: > > On Tue, Sep 15, 2020 at 12:56 PM Michael Walle > > 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