Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 8 Mar 2016 13:37:33 +0200
From:      Andriy Gapon <avg@FreeBSD.org>
To:        FreeBSD Hackers <freebsd-hackers@FreeBSD.org>
Subject:   hpet as nmi watchdog
Message-ID:  <56DEB97D.2010804@FreeBSD.org>

next in thread | raw e-mail | index | archive | help

I toyed a little bit with an idea of using a HPET timer as an NMI watchdog.
The idea is that a HPET timer is somehow configured to generate an NMI when it
fires. The timer normally would not fire, of course, as it is constantly being
reprogrammed to some future time as is the case for all watchdogs.

I have written some proof of concept code using two approaches.  One approach is
to use the "FSB" (MSI-like) mode of a HPET timer and program a corresponding FSB
data register (HPET_TIMER_FSB_VAL) with a value that sets NMI delivery mode
using the IO-APIC specification.  The other approach is to use legacy interrupt
mode for the HPET timer and program a corresponding IO-APIC pin for NMI deliver
mode.
In both cases I haven't got a desired result - instead of an NMI a test system
gets reset when the timer fires.  I wonder if this is a quirk of my old hardware
(HPET in AMD SB7xx, family 10h processor) or if my idea is a non-starter.

Thoughts, suggestions?..
Thanks!
-- 
Andriy Gapon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?56DEB97D.2010804>