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

RE: [Xen-devel] [PATCH] Unmodified VMX guest support (domain firmware)



  The building of the firmware fails on x86_64 systems. It needs the bcc
compiler to compile the rombios real mode code. RH fedora code does not
provide the dev86 package in the x86_64 distribution. If you are seeing
this issue on an x86_64 box, installing this i386 rpm will fix it.

 
ftp://fr2.rpmfind.net/linux/fedora/core/3/i386/os/Fedora/RPMS/dev86-0.16
.16-1.i386.rpm

Thanks & Regards,
Nitin 
__________________________________________________________ 
Senior Software Engineer
Intel Open Source Technology Center

>-----Original Message-----
>From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx [mailto:xen-devel-
>bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Leendert van Doorn
>Sent: Tuesday, June 07, 2005 12:18 PM
>To: xen-devel@xxxxxxxxxxxxxxxxxxx
>Cc: Ian Pratt
>Subject: [Xen-devel] [PATCH] Unmodified VMX guest support (domain
firmware)
>
>
>The following allows you to run unmodified guest operating systems
>under Xen on VMX (VT) enabled processors. The tree lives under
><ROOT>/tools/dfw. Instead of booting a guest kernel, boot vmxloader and
>specify the disk image in qemurc.
>
>       Leendert
>
>Signed-Off-By: Leendert van Doorn <leendert@xxxxxxxxxxxxxx>
>
>
>Domain FirmWare support
>-----------------------
>
>One of the key advantages of full virtualization hardware support (such
>as Intel's VT or AMD's Pacifica) is the ability to run unmodified guest
>operating systems.  However, since most OSes rely on BIOS support
during
>their early bringup, we need to provide a surrogate ROMBIOS and VGABIOS
>firmware layer.
>
>What's more, we need to support real-mode which is required by
>the firmware and bootstrap loaders. Real-mode support is especially
>challenging for Intel's VMX (VT) enabled CPUs where there is no
real-mode
>support for VMX guest partitions. In this case you either have to do
full
>emulation (full real-mode emulator; more complete but potentially
slower)
>or partial emulation (use the VM8086 extensions, emulate only those
>instructions that are missing; faster, but potentially incomplete). The
>vmxassist code below uses the later approach because it is smaller and
>faster.
>
>The approach is relatively straight forward. Vmxloader contains three
>payloads (rombios, vgabios and vmxassist) and it is bootstrapped as any
>other 32-bit OS. Vmxloader copies its payloads to the addresses below
>and transfers control to vmxassist.
>
>       vgabios         VGABIOS (standard and Cirrus).
>                       Resides at C000:0000.
>
>       vmxassist       VMXAssist VM86 realmode emulator for VMX.
>                       Resides at D000:0000.
>
>       rombios         ROMBIOS code. Derived from Bochs.
>                       Resides at F000:0000
>
>Vmxassist first sets up it own world (GDT, IDT, TR, etc), enables
>VM8086 mode and then transfers control to F000:FFF0 and executes 16-bit
>code. Unsupported instructions cause a general protection failure at
>which point vmxassist kicks in and emulates the offending instruction.
>Whever the emulated code transitions to 32-bit protected mode,
vmxassist
>will go away. Whenever 32-bit protected code transitions to real-mode,
>Xen/VMX will detect this and transfer control to vmxassist.
>
>Most of the vmxassist complexity comes from properly handling the
>real to protected mode and protected to real mode transitions and
>the proper emulation of the segment registers. Even though the Intel
>manual clearly states that you should immediately perform a jmp far
>after a mode transition, many operating systems execute additional
>instructions and some even refer to segment selectors and pop data
>from the stack. Vmxassist contains a number of work arounds for these
>OSes.
>
>
>Acknowledgements
>----------------
>
>The rombios was taken (largely unmodified) from Bochs, which was
written
>by Kevin Lawton. The VGABIOS was written by Christophe Bothamy.
>Arun Sharma, Asit Mallick and Nitin Kamble (Intel) provided the E820
>patches and lots of useful feedback.
>
>
>Contact
>-------
>
>Leendert van Doorn
>IBM T.J. Watson Research Center
>19 Skyline Drive
>Hawthorne, NY 10532
>leendert@xxxxxxxxxxxxxx
>
>
>Tested Operating Systems
>------------------------
>
>Since vmxassist uses partial emulation, it may always miss opcodes
>that are required by a particular OS. The table below lists the OSes
>I have tried.  The Install column indicates a full CD/DVD install into
>a VMX partition. The Disk column indicates booting from prefabricated
>disk image.
>
>Operating System                       Install         Disk
>------------------------------------------------------------
>RedHat Enterprise Linux (RHEL3_U5)     Yes             Yes
>Fedora Code (FC3)                      (-)             Yes
>FreeBSD 5.3                            (-)             Yes
>MS-DOS 5.0                             (-)             Yes
>
>(-) not tried yet.
>(*) other operating systems are left as an exercise for the reader.
>


_______________________________________________
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®.