Xref: utzoo comp.sys.ibm.pc.programmer:517 comp.os.minix:9729 Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!uvm-gen!ackerman From: ackerman@porous.uvm.edu (Steve Ackerman) Newsgroups: comp.sys.ibm.pc.programmer,comp.os.minix Subject: Need help rebooting a PS/2 Message-ID: <1437@uvm-gen.UUCP> Date: 21 Mar 90 22:52:18 GMT Sender: nobody@uvm-gen.UUCP Organization: Division of EMBA, University of Vermont Lines: 44 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)