Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 25 Mar 2004 14:17:05 -0800 (PST)
From:      Doug Ambrisko <ambrisko@ambrisko.com>
To:        Don Bowman <don@sandvine.com>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: Intel i8xx watchdog driver
Message-ID:  <200403252217.i2PMH5nN089509@ambrisko.com>
In-Reply-To: <FE045D4D9F7AED4CBFF1B3B813C85337045D8734@mail.sandvine.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Don Bowman writes:
| The Intel ICH3 (and probably all) has the feature it can
| issue an SMI on first count-down to 0, then a hard reset
| on 2nd. What we did was implement an SMM handler (in bios)
| that, when called due to watchdog, issued an NMI and did
| a return from smm.
| In FreeBSD, an NMI handler caught this (sometimes :),
| poke around to send a bit of data out to serial, moved the
| timer to the maximum value without reseting it, and then
| called panic [after mucking with cpl etc to pretend to
| own all locks :]
| If the NMI handler didn't get run, the hardware counted
| to 0 again and reset.
| If the NMI handler did get run, and then wedged somehow
| in the panic or whatever, the hardware counted to 0,
| and the system reset.
| If all worked well, you got a core, but at a minimum
| the system reset, and usually you got at least the
| serial output of some of the 'why'.
| 
| The SMI is non-maskable (and higher priority than NMI).

That sounds pretty cool.  There was some bits in the ICH that
prevented an NMI to get to the CPU unless set a certain way.
I was generating an NMI via the PCI but.  BTW you can do the
paper clip trick on PCI.  The ICH seemed to be only one shot so
it de-bounced it.  I could get multiple on a CPU NMI pin. 

How hard is to setup and trap SMI via a FreeBSD only solution?

I haven't really looked much at that area but sounds useful.

Doug A.



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