[comp.os.minix] Need help rebooting a PS/2

ackerman@porous.uvm.edu (Steve Ackerman) (03/22/90)

I need help in rebooting a PS/2 Model 55/sx reliably through software.
Specifically, I'm trying to get Minix 1.5.5 to reboot when the user hits
Cntrl-Alt-Del on PS/2s.  Minix can run in either real or protected
mode, so doing a "jmp ffff:0" is out.  Minix uses the keyboard
controller to reset the machine on PC/AT clones.  I'd like to do the
same thing on the PS/2 MCA machines.  If I do:

			out_byte(0x64, 0xFE);

Where 0x64 is the keyboard controller command port, and 0xFE is
(according to my info) the command to pulse bit 0 (which is attached
to system reset), it works fine on a Model 80.  However, on the Model
55/sx, it works half the time.  The other half, it hangs the machine.
I've done everything I can think of.  I've checked to make sure the
Ouput Buffer Bit and Busy Bit are both 0, and either read port 0x60 if
I find the former, or wait until not busy if I find the latter.
However, I've never found the controller with either bit set to 1.
Why does the model 55 hang?

After leafing through some more documentation, I found out that on
PS/2s, the System port A (0x92) can be used as an alternative reset
mechanism.  I have been able to reliably reboot the machine under DOS
by first writting a 0 to bit 0, and then a 1 to bit 0.  This appears
to work all the time.  However, if I try the same approach under
Minix, I get an invalid opcode exception (somehere around f000:fff0).
Is there some flag I'm not setting with this approach?

Finally, I tried digging into BIOS.  I did find an interesting looking
port (0x680).  For some reason, the BIOS outputs either a 0x0, or 0xDD
to that port.  I tried it, and found that it did reboot the machine (I
believe it was 0xdd) under DOS.  However, trying this under Minix also
hung the machine.  Since I have no idea what this port is or does, I
haven't pursued this approach.

If anyone has any clue, please tell me.  I prefer email, so I won't
miss anything.

After 4 days with this problem, I will never, ever, take
Contrl-Alt-Delete for granted again!  Any and all help is greatly
appreciated.  Thanks.

--
Steven Ackerman (ackerman@uvm.edu)