Re: reboot auf IBM 315

From: Joerg Wunsch <j(at)uriah.heep.sax.de>
Date: Sat, 26 Jan 2002 11:38:13 +0100

As Anselm Garbe wrote:

> On Tue, Jan 22, 2002 at 12:08:44PM +1030, Greg Lehey wrote:
> > Versuch's mit einer anderen Tastatur, am besten einer
> > No-Name-Tastatur. Mich würde auf jeden Fall interessieren, ob's daran
> > liegt.
>
> Nein, leider nicht. Dafür würde ja wie gesagt die Kernel-Option
> BROKEN_KEYBOARD_RESET Sorge tragen - auch mit einer anderen Tastatur
> hängt der Rechner :-(

Nein, der BROKEN_KEYBOARD_RESET hat mit der angesteckten Tastatur
nichts zu tun. Eigentlich müßte die Option besser
BROKEN_KEYBOARD_CONTROLLER_RESET heißen. ;-)

Beim ursprünglichen PeeCee war man nicht auf die Idee gekommen, daß
der Rechner selbst einen Reset auslösen können soll. (Ctrl-Alt-Del im
DOS lädt ja nur den Bootstrap, macht aber keinen Hardware-Reset.)
Beim 80286 zeigte sich dann, daß man sowas brauchen kann, da es der
einzige Weg war, um bei dieser CPU aus dem protected mode wieder in
den real mode zurückzukommen. Die iNtel-Entwickler hatten offenbar
nicht damit gerechnet, daß sich der Schrott namens real mode
angesichts eines geschützten Speichermodells noch so lange halten
würde... war der real mode beim 286 doch eigentlich nur noch für den
Bootstrap gedacht. Wenn man nun aber in einem real mode System wie
DOS den Speicher (weit) oberhalb 1 MB nutzen wollte, der nur aus dem
protected mode zugreifbar war, brauchte man einen Weg zurück. Aus
diesem Grunde wurde ab dem PC-AT der CPU-Reset dann auf ein noch
freies Pin des Keyboard controllers gelegt, so daß man über diesen
einen Reset auslösen konnte. (Das BIOS hat dann anhand eines
bestimmten Speichermusters nachgesehen, ob das ein manueller oder ein
gesteuerter Reset war und je nachdem das Betriebssystem nicht neu
geladen. So hatte man einen -- allerdings schweinisch langsamen --
Weg, um Daten zwischen dem real mode memory und dem Bereich > 1 MB
auszutauschen.) Diese Variante Reset /sollte/ also eigentlich bei
jedem PC-AT funktionieren. Manche BIOSe geraten aber offenbar dabei
in Konfusion oder manche Hardware löst aus was auch immer für Gründen
gar keinen Reset aus.

Ab dem 80386 gab's dann auch einen weiteren Rückweg. Wenn man im
paging mode ist, dem Prozessor alle page tables entzieht und einen TLB
flush macht, dann löst der nächste Befehl einen page fault aus. Da es
keine page table gibt, bleibt dem Prozessor nur noch die Notbremse: er
muß einen Reset auslösen, da er einfach nicht weiterarbeiten kann.
Das nennt sich `CPU shutdown'. (Wenn mich nicht alles täuscht,
erkennt die restliche Hardware diesen shutdown und löst zusätzlich
noch einen Reset auch auf den angeschlossenen Bussen aus.) Das ist
das, was FreeBSD macht, wenn es nach dem keyboard controller reset
feststellt, daß es immer noch aktiv ist. Mit der Option
BROKEN_KEYBOARD_RESET wird der kbdc-initiierte Reset gar nicht erst
versucht, so daß er gleich in den CPU shutdown fällt.

Wenn bei Dir aber beides nicht tut, ist natürlich guter Rat teuer.
Du wirst jemanden bei IBM nerven müssen, Dir zu sagen, wie man da
verfährt...

-- 
cheers, J"org               .-.-.   --... ...--   -.. .  DL8DTL
http://www.sax.de/~joerg/                        NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Sat 26 Jan 2002 - 17:19:49 CET

search this site