|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] Re: Xen 3.2 and Big Real Mode support?
On 6/2/08 08:20, "Guillaume Thouvenin" <guillaume.thouvenin@xxxxxxxxxxxx>
wrote:
>> By the way, this is now fixed with tip of the xen-unstable tree (changeset
>> 16980), obtainable from http://xenbits.xensource.com/staging/xen-unstable.hg
>
> Waow. I don't understand everything (and especially how you find that
> the problem was here) but it works now.
I found the bug because I tracked down the real-mode -> protected-mode
transition code in the SuSE bootloader and it did something like this at
start of protected mode:
mov %ss,%eax
shl $4,%eax
add %eax,%esp
mov <protected mode flat segment>,%bx
mov %bx,%ss
.....
The problem was that the bottom bits of %ss got cleared on exit from real
mode, to satisfy vmenter checks that the processor does. But this deliberate
corruption of state can of course affect program execution and in this case
we end up with a bad stack pointer! So the fix had to be to emulate far
enough into protected mode that %cs and %ss both get reloaded with valid
protected-mode segment data.
-- Keir
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|