reboot fails-- 630e or C3?
Steve M. Gehlbach
steve at nexpath.com
Mon Sep 23 18:01:01 CEST 2002
I have an interesting problem with the pcchips m787cl+ motherboard: it won't
do a reboot. If you use the three finger salute or issue an init 6, it
hangs at the "Restarting system" message at the bottom of the shutdown
I traced the code to the machine_restart sub in arch/i386/kernel/process.c.
It seems that linux tries to reset using a keyboard command (out 0xfe,0x64)
and if that fails it forces a triple fault. Neither seem to work. I tried
setting b0 of reg 0x46 in the ISA bridge (-d 1039:8), on the sis630e, which
is labeled "Enable Keyboard Hardware Reset", but it didn't work. So I put
in a patch to process.c that sets b6,7 of reg 0x46 of the ISA bridge, and
this works, it causes a reset (per the data sheet). But of course that is a
kernel patch and I would like to avoid that.
Anyone run into this issue before, or know if I should blame the sis630 or
the via C3? Seems like a poor design if you can't reboot without a kernel
patch, although it is a simple one. Hanging on a reboot is a problem for my
embedded system, not sure about large clusters but it seems like that would
be a problem. For my project, I can live with the patch, but would like to
find a more robust solution for the linuxbios project.
The three finger salute does work with the orig BIOS and DOS, but I suspect
that is because DOS makes a BIOS call that sets the correct bits in the ISA
bridge. Linux with the orig BIOS hangs at the same place, though.
More information about the coreboot