> # Using Linux 1.2.13 on Pentium 133Mhz with AWARD BIOS
> # After entering "reboot" or "ctrl-alt-del" linux shuts downs correctly.
> # The last thing printed on the screen is "rebooting". After that nothing
> # happens. The only way to recover is powerdown reboot.
> Another way is to press the reset button.
> This problem might be related to particular combinations of HW and BIOS.
> It has been known for some time that the optimization program of QEMM,
> which reboots the PC twice, prints a message stating that some systems
> may not reboot, and that the user may have to power down and power up.
> To rule out the liability of Linux, run the following test:
> Boot DOS, type
> echo g=ffff:0 | debug
> and if the system does not reboot, it must be a HW/BIOS problem.
I have the same problem as he. Linux pulses the keyboard controller's
reset line to reset the system. I have *several* DOS progames that work
with the same method that work.
Here's what I did (roughly) to fix the problem:
You have to hack the kernel a bit. Instead of using the keyboard
controller, we can simply cause a processor panic (for x86es that is).
The assembly source code is:
xor sp,sp
inc sp
push sp
Simple as that, works every time. It works by moving the stack pointer
to logical 1 and then pushing a register (push sp is a good way to crash
anyway). Since Intel *for some reason* made their CPUs little-endian
(why? why?) it gets halfway through the push and cannot decrement for
the next byte and crashes, causing the CPU to reset.
You have to remove the old reboot code (comment out the routine
hard_reboot_now) and put that code in someplace else. I added the new
routines to head.S and it worked fine. I *believe* that the code in
Linux is:
xor %sp,%sp
inc %sp
push %sp
I'm not sure, I don't have access to my box right now (I am at work and
I forgot to leave it up). I do remember that the old code was in
process.c, so you are welcome to try it. I have yet to find a computer
that this does not work on.
DISCLAIMER: AS FAR AS I KNOW THIS CODE IS HARMLESS, I HAVE BEEN USING IT
FOR A LONG TIME, BUT IF YOU MESS UP YOUR COMPUTER IN ANY WAY, DON'T
BLAME ME!