Re: [PATCH] Use correct x86 reboot vector

Jamie Lokier (jamie@shareable.org)
Sat, 10 May 2003 17:15:29 +0100


Andi Kleen wrote:
> Extensive discussion by various experts on the discuss@x86-64.org
> mailing list concluded that the correct vector to restart an 286+
> CPU is f000:fff0, not ffff:0000. Both seem to work on current systems,
> but the first is correct.

You are right. That's what a 286 does when the RESET signal is asserted.

Which is amazing, because I wrote that ffff:0000 and I was reading
from the Phoenix BIOS book at the time. It was long ago but I'm
fairly sure I got that address from the book.

I just did some Googling and found that there examples of DOS code
fragments using both vectors. Also, the original IBM BIOS (as they
say) had a long jump at the vector, which is presumably one of the
many de facto ABIs which real mode programmers grew to depend on.

> See the "DPMI on AMD64" and "Warm reboot for x86-64 linux" threads
> on http://www.x86-64.org/mailing_lists/list?listname=discuss&listnum=0
> for more details.

One would hope that AMD64 systems, being a new design and all, offer a
documented and reliable method of rebooting.

It should never be necessary to have to write "reboot=..." on the
kernel command line to choose which legacy method works on different
AMD64 motherboards. Am I too idealistic?

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