Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 4 Apr 1995 20:27:56 +0200 (MET DST)
From:      J Wunsch <j@uriah.heep.sax.de>
To:        freebsd-hackers@FreeBSD.org (FreeBSD hackers)
Subject:   Re: NMI message
Message-ID:  <199504041827.UAA11387@uriah.heep.sax.de>
In-Reply-To: <199504040353.UAA24847@seagull.rtd.com> from "Don Yuniskis" at Apr 3, 95 08:53:38 pm

next in thread | previous in thread | raw e-mail | index | archive | help
As Don Yuniskis wrote:
> 
> 	NMI... going to debugger
> 	kernel: type 19 trap, code=0
> shall I assume this was an intermittent parity error (system had been
> up for 40 days or so...) like maybe a Vcc glitch or alpha particle, etc.?

Forget the alpha particles unless you have ceramics packaged RAMs. :) [*]

> Haven't dug out any schematics, etc. but I suspect parity is the only
> thing that would yank on NMI (looked like CPU was doing a memory to memory
> transfer at the time ... possibly faulting in a page, etc.)

It's perhaps only a glitch.  However, parity fail is not the only
reason that can cause an NMI.  The second common reason is the ISA
signal IOCHCK.  Any card on the bus can assert this signal.  There's a
register (0x62) to indicate which caused the NMI (0x80 -> RAM parity
failure, 0x40 -> I/O channel check).

There are some minor anomalities.  E.g., my (old) notebook asserts NMI
at power fail (battery low, or loss of external power), without
setting one of the bits in register 0x62.  I've symdeb'ed thru its
BIOS, but didn't find any reasonable logic how to determine between
parity fail and power fail for it.  (I'm running FreeBSD on it, but
have modified the NMI routine to simply beep instead of panic.)

[*]
The alpha particle story.

Back in old days where RAMs have been rather expensive, they've also
been packaged in expensive ceramics cases (with metal plate and gold
contacts).  Unfortunately, all the ceramics materials do contain minor
contaminations by metals like barium, which are slightly radioactive,
and emit a very low alpha radiation.  Since alpha particles are helium
nuclei, they do only have a low penetrance.  The usual workaround has
been to cover the die by a small piece of a plastics foil, this was
sufficient to adsorb the helium nuclei.  (If an alpha particle broke
through, it was sufficient to kill the whole charge of a dRAM
capacitor, at least for RAMs >= 64 kbit.)

Naturally, plastics packages do not emit alpha particles themselves,
and they are thick enough to even adsorb much larger amounts of alpha
radiation, so this is a non-issue these days.

-- 
cheers, J"org

joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/
Never trust an operating system you don't have sources for. ;-)



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