Messages in this thread | | | From | Yuri Per <> | Subject | Re: Linux reboot | Date | Thu, 28 Mar 1996 14:42:21 +0300 (GMT+0300) |
| |
On Mar, 27 Ulrich Windl wrote: > The code (all from meory) tried to reset the system via keyboard > controller and hardware reset. If that fails the system goes into a > busy loop (not cli; hlt). Maybe we can have some fancy keyboard light > show instead (to notify the user that the system is ready for reset)?
On Intel motherboards (both 486 and Pentium) keyboard controller is not able to reboot the system. There is a special port on such boards. Here is a fragment from Ralf Brown's Port List:
----------P0CF9------------------------------ PORT 0CF9 - Intel 82420EX chipset - TURBO/RESET CONTROL REGISTER Notes: this port can only be accessed via 8-bit IN or OUT instructions by the CPU also supported by the Intel "Saturn" and "Neptune" chipsets SeeAlso: PORT C051h
0CF9 RW reboot system, optionally selecting de-turbo mode (see #P182)
(Table P182) Call Intel 82420EX turbo/reset control register with: 7-3 reserved (0) 2 reset CPU 1 reset mode 0 soft reset 1 hard reset 0 deturbo mode Note: when resetting the CPU, two writes are required: the first sets the state of bit 1 while keeping bit 2 cleared, and the second sets bit 2; the reset occurs on bit 2's transition from 0 to 1. ---------------------------------------------
The simplest way to reboot, in my opinion, is to generate triple fault (LIDT with zero limit, then any INT). It should work everywhere.
Yuri Per
| |