Re: [PATCH] Use correct x86 reboot vector

Jos Hulzink (josh@stack.nl)
Sun, 11 May 2003 11:37:29 +0200


On Sunday 11 May 2003 05:50, Linus Torvalds wrote:
> On Sat, 10 May 2003, Jamie Lokier wrote:
> > Jos Hulzink wrote:
> > > For the sake of bad behaving BIOSes however, I'd vote for the f000:fff0
> > > vector, unless someone can hand me a paper that says it is wrong.
> >
> > I agree, for the simple reason that it is what the chip does on a
> > hardware reset signal.
>
> Hmm.. Doesnt' a _real_ hardware reset actually use a magic segment that
> isn't even really true real mode? I have this memory that the reset value
> for a i386 has CS=0xf000, but the shadow base register actually contains
> 0xffff0000. In other words, the CPU actually starts up in "unreal" mode,
> and will fetch the first instruction from physical address 0xfffffff0.
>
> At least that was true on an original 386. It's something that could
> easily have changed since.
>
> In other words, you're all wrong. Nyaah, nyaah.
>
> Linus

Source: 80386 Programmers Reference Manual, Intel (1986)

EIP is set 0000FFF0H
CS is set F000H

After RESET, lines A31-A20 are FORCED high till a far JMP is done.

So, unfortunately we have to say Linus is right once again. Damn ;-) My
conclusion is that we are unable to use the CPU reset as the reference for
warm boots, for we can't control A312-A20 in real mode. But as far as I can
see, my arguments still hold...

Jos
Jos
-
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/