Xref: utzoo comp.unix.aix:746 comp.unix.i386:3632 Path: utzoo!attcan!uunet!ibmpa!bass.tcspa.ibm.com!webb From: webb@bass.tcspa.ibm.com (Bill Webb) Newsgroups: comp.unix.aix,comp.unix.i386 Subject: Re: Rebooting a PS/2 Keywords: help help help Message-ID: <4518@ibmpa.UUCP> Date: 15 Mar 90 22:24:28 GMT References: <7191@lynx.UUCP> Sender: news@ibmpa.UUCP Distribution: na Organization: IBM AWD Paloalto Lines: 33 > I need help from a kind person who's successfully written code to > reset (cold reboot) a 386-based PS/2. What I've got so far is some > code that runs just fine on 386 AT machines. On the PS/2 it just > sits there. > Mike McNally Lynx Real-Time Systems Here's the code that I am using in our kernel debugger to cause the system to reboot. It causes a processor shutdown by clearing to interupt descriptor table pointer and then causing a level 3 interrupt. It appears to cause a hard reboot (e.g. the system goes thru the memory checking and re-initializes the processor). It has been used on PS/2 model 80, 70 and P70. Strictly "as is" but it might help you out. You will probably have to roll your own version of the assembler routines "lidt" and "int3" but they are pretty trivial. db_reboot(void) { struct dtinfo { short fill, limit; int addr } idtp; idtp.limit = 0; idtp.addr = 0; lidt(&idtp.limit); int3(); } ---------------------------------------------------------------- The above views are my own, not necessarily those of my employer. Bill Webb (IBM AWD Palo Alto), (415) 855-4457. UUCP: ...!uunet!ibmsupt!webb