Date: Tue, 30 Jun 1998 21:50:22 +0000 (GMT) From: Terry Lambert <tlambert@primenet.com> To: labrinop@pop.vaniercollege.qc.ca Cc: belkovic@albert.osu.cz, freebsd-hackers@FreeBSD.ORG Subject: Re: BROKEN_KEYBOARD_RESET Message-ID: <199806302150.OAA21588@usr02.primenet.com> In-Reply-To: <199806301108.HAA23527@pteradactyl> from "labrinop@pop.vaniercollege.qc.ca" at Jun 30, 98 07:07:32 am
next in thread | previous in thread | raw e-mail | index | archive | help
> A software reset is generated by asserting a bit in the 8042 > keyboard controller (thats why its called KEYBOARD_RESET), > ie: > MOV AL , 0xFE ; pulse 8042 output port with bit 0 must be low > OUT 0x64 , AL ; output to 8042 command register > > this is how it has been done since the PC/AT (PC & PC/XT doesn't have > this) and is still done. The above sequence has the same effect as > the RESET button (internally their wired together). But some > motherboard/chipsets are broken and don't work correctly. No. There is a BIOS vector on the other end of this. Some BIOS reset implementations are incapable of operating in protected mode, because of one assumption or another. If the system were returned to real mode, or the reset was triggered in a VM86, and allowed to run to completion instead of trapping whatever the BIOS poked (ie: I/O address space, outb, CMOS, whatever), then you could reset. > Another way to reset the system while still in protected mode is to > generate a triple fault: clear IDT entries 8 (Double Fault) and 10 > (Invalid TSS) and then load TR with an illegal selector. > > > invalid tss > double fault > triple fault > cpu shutdown > reset This presumes that the CPU reset is wired correctly. The "correct" wiring is undefined in the ISA/PC architecture documents that were widely circulated when ISA was renamed "ISA"; in my experience, a full 30% of motherboards fail to wire the reset such that a triple fault results in the machine resetting. See the Van Gilluwe book for details. Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199806302150.OAA21588>