xen-devel
RE: [Xen-devel] [PATCH] Unmodified VMX guest support (domain firmware)
To: |
"Leendert van Doorn" <leendert@xxxxxxxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxx> |
Subject: |
RE: [Xen-devel] [PATCH] Unmodified VMX guest support (domain firmware) |
From: |
"Kamble, Nitin A" <nitin.a.kamble@xxxxxxxxx> |
Date: |
Thu, 9 Jun 2005 10:30:45 -0700 |
Cc: |
"Sharma, Arun" <arun.sharma@xxxxxxxxx>, Ian Pratt <m+Ian.Pratt@xxxxxxxxxxxx>, "Mallick, Asit K" <asit.k.mallick@xxxxxxxxx>, "Nakajima, Jun" <jun.nakajima@xxxxxxxxx> |
Delivery-date: |
Thu, 09 Jun 2005 17:30:02 +0000 |
Envelope-to: |
www-data@xxxxxxxxxxxxxxxxxxx |
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> |
Sender: |
xen-devel-bounces@xxxxxxxxxxxxxxxxxxx |
Thread-index: |
AcVrmudrQWSzMKcCTCWA8rN80uFbtwBfRryw |
Thread-topic: |
[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
|
|
|