Winbond Watchdog [Was Re: Supermicro BIOS's watchdog feature?]

Bjoern A. Zeeb bzeeb-lists at
Sat Aug 7 17:40:08 UTC 2010

On Sat, 7 Aug 2010, Xin LI wrote:


a bit unrealted but I faced some of those problems lately as well.

> On 2010/07/01 00:12, Dag-Erling Smørgrav wrote:
>> Xin LI <delphij at> writes:
>>> "Dag-Erling Smørgrav" <des at> writes:
>>>> Perhaps the motherboard has additional watchdog hardware?  If you
>>>> disable the watchdog in BIOS, does ichwd still work?
>>> If I kill -9 watchdogd the system do reset itself so I think ichwd(4)
>>> really works even if BIOS setting is 'Disabled' (but I'm not sure if
>>> this method is right?  Looking at the code I think the answer is
>>> probably "Yes" though)
>> Yes.  This confirms my hypothesis, which is that your motherboard has
>> additional watchdog hardware, and that the BIOS setting controls that,
>> not the ichwd watchdog timer.  Just disable the watchdog in BIOS and use
>> ichwd instead.
> Thanks, you are absolutely correct that they are using another watchdog
> (on Winbond Super I/O chip).
> With help from some datasheets floating around the Internet and playing
> with the motherboard a little bit, now I have a first cut of a
> watchdog(9) interfaced driver for the chip and have confirmed working on
> the motherboard.
> I'm still polishing up the driver, there seems to be no way to figure
> out the base port address directly (datasheet said it's either 0x2e and
> 0x4e) so for now I have its device identify method to do some dirty
> hacks (outb/inb directly) and only check if with appropriate key entered
> to the port we will get non-0xff value.  I'm not sure if that would be
> acceptable?  I'll try to further read the spec and see if we have some
> better way of doing this and publish the driver code hopefully in the
> next week.

I have a fintek locally but they all basically seem to operate after
the same scheme.

I had a very simple inb/outb /dev/io based user space solution for it
and went to the quick and dirty kernel module.

There are not many assertions put in place and it only checks one of
the two base ports as I had only done it for me so far.  Unfortunately
there is no ACPI WDRT entry here (either?). devinfo -r was to some use

In case it'll help you or someone else I just put it online:


Bjoern A. Zeeb                       This signature is about you not me.

More information about the freebsd-hackers mailing list