Re: Why reassert ix86 NMI?

From: Maciej W. Rozycki (
Date: Tue Jun 06 2000 - 12:53:23 EST

On Tue, 6 Jun 2000, Richard B. Johnson wrote:

> Not correct. If you send a bad descriptor to INT 0x15, function 0x87,
> the processor will reset (crash). The shutdown-byte is checked early

 I can't recall Linux using INT 0x15, function 0x87... This is

> Now, imagine what happens if the machine was just started from a
> cold-boot and 0x09 was found in the CMOS shutdown byte. This will
> result in a crash requiring an on-site reset. The reset will work,
> because POST will have changed the shutdown byte to 0 before it
> did the '0x09 thing'. However, you need to physically be there.

 If you start from a cold-boot, the BIOS checks for a cold startup
condition in the 8042 before checking the shutdown byte. It's usually
just after executing a far jump at 0xf000:0xfff0. There is only a smsw
in-between to check the BIOS is really in the real mode. For a cold
startup the shutdown byte is ignored and the POST is performed. Zeroing
of the shutdown byte is a standard step of the POST.

 If your BIOS does not perform like this, complain to your vendor -- it's
a standard sequence since 80286.

> That is the purpose of the sequence. It is hardly dangerous. Its
> specific purpose is to cause another NMI if the latch is still set.

 Surely -- the problem is it cannot be easily done without a side effect
of reprogramming the index.

> You could have the time be off by a maximum of 59 seconds. Since
> it's BCD, there is an additional probability consideration since
> the registers will mask (not wrap) to '99', which is '99' - '59' ='40'
> so with all bits set on a crash, it's most likely that the time will
> be off by 40 seconds.

 If you use the RTC as a fallback NTP reference clock you may make your
network clients unhappy.

+  Maciej W. Rozycki, Technical University of Gdansk, Poland   +
+        e-mail:, PGP key available        +

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to Please read the FAQ at

This archive was generated by hypermail 2b29 : Wed Jun 07 2000 - 21:00:25 EST