Re: reboot via bios on X86_64?

From: Miles Fidelman
Date: Mon Apr 09 2012 - 13:26:40 EST


Thanks for the quick response.

Matthew Garrett wrote:
On Mon, Apr 09, 2012 at 11:39:32AM -0400, Miles Fidelman wrote:

1. What's the logic behind this? Why not enable a bios reboot for 64bit
kernels? Is there any reason why the machine_real_restart code wouldn't
work just as well in 64bit mode? Anybody know the history?
The bios reboot code requires you to reprogram the CPU to real mode. I
don't think there's any fundamental reason you can't do that from 64-bit
mode, but nobody's ever written that code.

That would explain it. I guess there's a little bit of trickiness involved in setting things up before
switching to real mode.

2. Anybody know a workaround, short of patching and compiling a custom
kernel? Are there other paths through the reboot code that can
invoke a bios
reboot? [Note: someone suggested trying a kexec-reboot, but that's also
not supported on my configuration (running over a Xen hypervisor).]
Windows never uses the equivalent of the BIOS reboot method, so the
assumption is that if you ever need on Linux to it's because there's a
bug somewhere else. Does the platform reboot if you run the kernel on
bare metal rather than under Xen?

No. Tried all the combinations - w/ and w/o hypervisor, all the available kernel options. Seems
like the only thing that will reboot this particular hardware/bios combo is via the bios.

Miles

--
In theory, there is no difference between theory and practice.
In practice, there is. .... Yogi Berra


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/