linux-l: NMI received ...
Marco Tidow
martidow at cs.tu-berlin.de
Mo Sep 29 20:06:32 CEST 1997
(26 Sep 97:Oliver Bandel <linux-l at mlists.in-berlin.de>:)
>
>Hi!
>
>On Thu, 25 Sep 1997, Christoph Lange wrote:
>
>>
>> Hallo, Leute!
>>
>> Ich habe da mal wieder ein garstiges Problem: Ich bekomme von einem
>> 486dx50, auf dem ich Linux installieren will folgende Meldung beim
>> Booten, kurz bevor der Kernel panict: NMI received usw.
>>
>> Was ist NMI? Was kann falsch sein?
>
>NMI heißt: Non Maskable Interrupt, also: nicht-maskierbarer Interrupt.
>
>Das ist ein interrupt, der z.B.
> von Peripherie-Geräten,
Steckkarten im (ISA-) bus: Speichererweiterungskarten mit parity Logik,
Alt-Grafikkarten (VGA,EGA) benutzen ihn als Hintertuer zum Modewechsel, (das
Realmode-ROM der Grafikkarte biegt die Register der Karte nach direkten
Portzugriffen seitens der Applikationssoftware zurecht, auf diesen Karten
ist i.d.R. ein Jumper zum Deaktivieren des NMIs vorhanden)
>dem Reset-Taster
no. jedenfalls nicht in 100%igen Nachbauten
>oder den Speicherbausteinen gegeben wird.
der parity-check Logik des mainboards
>Der ist nicht-maskierbar, weil er sehr hohe Priorität hat und
>normalerweise auf arge Funktionsstörungen hinweist. Die
>Nicht-Maskierbarkeit bedeutet: Man kann diesen Interrupt nicht per
>Software ausblenden/inaktivieren.
in der NMI-Leitung zum Intelprozessor sitzen bei kompatiblen ein paar
Gatter. Ueber sie kann per Registerbit 7 der IO-Adr. 0x70 der NMI
hardware-seitig "maskiert" werden
>> Es schein ein Speicherproblem zu sein,
>
>> ich habe alte SIMMS, 4MB in
>> Bank0 und 16MB in Bank1. Der Computer findet's gut, keine Probleme mit
>> dem Memory-Check, aber Linux ...
>
>Der NMI sollte eigentlich per Hardware gesendet werden (Paritäts-Prüfung
>der Speicher-Bits). Das sollte zwischen Linux und anderer Software kein
>Unterschied bestehen.
Doch. Folgender Fall:
ein 25MHz 486er board mit altem ISA-Opti chipset spielte jahrelang unter
WfW3.11 ohne Macken als 24h-Dauerlaeufer (das gibt's :-).
Booten der SuSe 4.4.1 Installationskernel (2.0.29) von Diskette ging auch.
Beim boot von der IDE-Platte produzierte derselbe kernel NMI's und die Kiste
hing. Der Speicher-refresh-timeout-counter lief ab und produzierte den
parity-NMI. Der Fehler steckte im bus-timing-setup des chipsets.
(Meine Vermutung: IO/DMA-Zugriffe auf den floppy controller blockierten die
bus-Logik, weil ein extended IO-ready Modus im CMOS-Setup aktiviert war, und
der chipset macht seinen RAM refresh noch per DMA Kanal nach Alt-IBM-Vaeter
Sitte)
Der Unterschied zu Linux ist wohl, das im Ggs. zu WfW einiges mehr
nebeneinanderher passiert, statt traege nacheinander.
Marco
Mehr Informationen über die Mailingliste linux-l