Messages in this thread | | | Date | Sun, 11 May 2003 15:01:44 +0100 | From | Jamie Lokier <> | Subject | Re: [PATCH] Use correct x86 reboot vector |
| |
Jos Hulzink wrote: > On Sunday 11 May 2003 05:50, Linus Torvalds wrote: > > 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.
I got my info from an article on the net which says that a 386 does behave as you say, but it is possible for the system designer to arrange that it boots into the 286-compatible vector at physical address 0x000ffff0. It states that the feature is specifically so that system designers don't have to create a "memory hole" (that's as much detail as it gives).
I can't be arsed to look in a real 386 manual though :)
> 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...
You can set up unreal mode but it is quite fiddly.
-- 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/
| |