Re: [PATCH] Use correct x86 reboot vector
Randy.Dunlap (rddunlap@osdl.org)
Sat, 10 May 2003 10:09:31 -0700 (PDT)
> 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.
This seems to be a difference from 8086/8088 to the 286.
My iAPX 286 Hardware Reference Manual says that the RESET signal initializes
CS to 0FF0000H and IP to 0FFF0H, while my iAPX 86,88 User's Manual says
that RESET sets CS to 0FFFFh and IP to 0.
~Randy
-
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/