[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20a922fb-6703-4712-9818-8e97c38b5148@roeck-us.net>
Date: Fri, 18 Oct 2024 03:09:10 -0700
From: Guenter Roeck <linux@...ck-us.net>
To: James Hilliard <james.hilliard1@...il.com>
Cc: linux-watchdog@...r.kernel.org, Wim Van Sebroeck
<wim@...ux-watchdog.org>, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] watchdog: it87_wdt: add quirks for some Qotom IT8786
boards
On 10/17/24 21:29, James Hilliard wrote:
> On Thu, Oct 17, 2024 at 9:59 PM Guenter Roeck <linux@...ck-us.net> wrote:
>>
>> On 10/17/24 20:09, James Hilliard wrote:
>>> For the watchdog timer to work properly on the QCML04 board we need to
>>> set PWRGD enable in the Environment Controller Configuration Registers
>>> Special Configuration Register 1 when it is not already set, this may
>>> be the case when the watchdog is not enabled from within the BIOS.
>>>
>>> For the Qotom QGLK02 board the vendor indicates that the IT8786
>>> watchdog hardware is not functional due to a conflict with the BIOS
>>> power-on function, with PWRGD set the watchdog will trigger but the
>>> board will poweroff rather than restart as expected. Disable the
>>> it87 driver on this broken hardware.
>>>
>>
>> This shouldn't be done in drivers, and it doesn't scale. The driver needs
>> to be disabled with the mechanism supported by the distribution, for example
>> in /etc/modprobe.d/blacklist-watchdog.conf, or by whatever other mechanism
>> the distribution supports for that purpose.
>
> There isn't really a good way that I've found with my setup since I use common
> images for both of these boards. I'm also worried that it's much easier to mess
> something critical like this up if user space is involved in hardware detection.
>
> Many other watchdog drivers do this sort of thing so I'm a bit confused why we
> would want to not do that here as well, for example:
> https://github.com/torvalds/linux/blob/v6.11/drivers/watchdog/renesas_wdt.c#L176-L207
> https://github.com/torvalds/linux/blob/v6.11/drivers/watchdog/ebc-c384_wdt.c#L125
> https://github.com/torvalds/linux/blob/v6.11/drivers/watchdog/lenovo_se10_wdt.c#L242-L285
> https://github.com/torvalds/linux/blob/v6.11/drivers/watchdog/sbc_fitpc2_wdt.c#L203-L206
>
Those are specialty watchdog drivers, which only work on a very limited number of boards
to start with. For the most part they use DMI data to determine if the watchdog is supported
on a board, not to determine if a watchdog isn't supported.
The it87 driver works on thousands of boards, and is not wired up on a substantial percentage
of them. In many cases, systems with ITE Super-IO chips have two Super-IO chips installed
(one of them typically being an IT8786), and only one of those (or none) will have the watchdog
wired up. Many boards with Intel CPUs use the iTCO watchdog and don't have the Super-IO
watchdog wired up at all. Trying to maintain a deny-list for all boards where the watchdog
isn't wired up would not scale.
Guenter
Powered by blists - more mailing lists