Xen 
 
Home About Xen.org Xen Xen Summit Wiki Mailing List Bug Tracker Xen Downloads
 
   
 

xen-devel

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

To: "Anthony Liguori" <aliguori@xxxxxxxxxx>
Subject: [Xen-devel] Re: [PATCH][RFC] Emulating real mode with x86_emulate
From: "Kamble, Nitin A" <nitin.a.kamble@xxxxxxxxx>
Date: Fri, 30 Mar 2007 14:24:46 -0700
Cc: "Yu, Wilfred" <wilfred.yu@xxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxx, Keir Fraser <keir@xxxxxxxxxxxxx>, "Nakajima, Jun" <jun.nakajima@xxxxxxxxx>
Delivery-date: Fri, 30 Mar 2007 22:26:33 +0100
Envelope-to: Keir.Fraser@xxxxxxxxxxxx
In-reply-to: <1175288913.32115.20.camel@xxxxxxxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <4607074E.1030807@xxxxxxxxxx> <1175203075.27076.17.camel@xxxxxxxxxxxxxxxxxxxxxxxxxx> <460C4AAE.5020707@xxxxxxxxxx> <1175212362.27076.32.camel@xxxxxxxxxxxxxxxxxxxxxxxxxx> <460C55BD.5050202@xxxxxxxxxx> <1175216381.27076.39.camel@xxxxxxxxxxxxxxxxxxxxxxxxxx> <1175221214.27076.43.camel@xxxxxxxxxxxxxxxxxxxxxxxxxx> <460C8207.8000604@xxxxxxxxxx> <1175280781.32115.13.camel@xxxxxxxxxxxxxxxxxxxxxxxxxx> <460D5E34.2080803@xxxxxxxxxx> <1175288913.32115.20.camel@xxxxxxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcdzEddA7h4+OLjASEuuqK9G3KWq9g==
Thread-topic: [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