[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Re: [PATCH][RFC] Emulating real mode with x86_emulate



Anthony,
eip of 0x0 is the right address.

Because the trampoline_Start code is relocated to address 0.

    /* Relocate real-mode trampoline to 0x0. */
    "    mov  $trampoline_start,%esi \n"
    "    xor  %edi,%edi              \n"
    "    mov  $trampoline_end,%ecx   \n"
    "    sub  %esi,%ecx              \n"
    "    rep  movsb                  \n"

Still there is no progress in the emulation. The guest is dying with triple-fault just like before.

Thanks & Regards,
Nitin
Open Source Technology Center, Intel Corporation.
-------------------------------------------------------------------------
The mind is like a parachute; it works much better when it's open.

On Fri, 2007-03-30 at 14:08 -0700, Nitin A Kamble wrote:
Hi Anthony,

On Fri, 2007-03-30 at 14:00 -0500, Anthony Liguori wrote:
    /* Enter real mode, reload all segment registers and IDT. */
    "    ljmp $0x8,$0x0              \n"
    "trampoline_start: .code16       \n"
    "    mov  %eax,%cr0              \n"

That change was pretty recent so unless it was reverted it should Just Work.

Regards,

Anthony Liguori
Now I see cr0 is updated after returning from main.
   I enabled the debug log in the xen code now.

(XEN) HVM2: Creating MP tables ...                                             
(XEN) HVM2: Loading Cirrus VGABIOS ...                                         
(XEN) HVM2: Loading ACPI ...                                                   
(XEN) HVM2: Loading VMXAssist ... deadbeef                                     
(XEN) HVM2: foo                                                                
(XEN) hvmop_emulate_realmode                                                   
(XEN) guest requests real mode emulation                                       
(XEN) foo 221                                                                  
(XEN) HVM2: Invoking ROMBIOS ...                                               
(XEN) vmx_vmexit_handler called. eip = 0x0                                     
(XEN) vmx_cr_access called eip=0x0                                             
(XEN) mov_to_cr 0 called eip=0x0                                               
(XEN) vmx_set_cr0 called eip=0x0                                               
(XEN) Transfering -- control to x86_emulate eip 0x0                            
(XEN) hvm.c:446:d2 Triple fault on VCPU0 - invoking HVM system reset. 

It shows cr0 is getting modified. But the eip is still 0x0.


Thanks & Regards,
Nitin
Open Source Technology Center, Intel Corporation.
-------------------------------------------------------------------------
The mind is like a parachute; it works much better when it's open.

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.