reboot fails-- 630e or C3?

Steve M. Gehlbach steve at
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 mailing list