Xen ARM with Virtualization Extensions

From Xen
Revision as of 12:26, 9 February 2012 by Ijc (talk | contribs) (Link to fast model guide)

The ARM v7-A architecture includes the optional virtualization extensions that allow a hypervisor to manage fully hardware virtualized guests. These extensions will be available in some ARM Cortex A15 and Cortex A7 processors.

This port is a work-in-progress and cannot yet start any guests (other than dom0).


Currently there are no processors available which implement the virtualisation extensions. Therefore we are currently targetting the Real-time System Model's provided by ARM. See Xen ARMv7 with Virtualization Extensions/FastModels for more information on obtaining and building the necessary model.


Real-time System Model
Either the v7-A Envelope Model or the Cortex A15/A7 models (single CPU only).
arm-v4 branch of git://xenbits.xen.org/people/sstabellini/xen-unstable.git/.git
Linux kernel for dom0
vexpress-dt branch of git://xenbits.xen.org/people/dvrabel/linux.git
dom0 userspace
(more details here)

Dom0 kernel

Enable at least ARCH_VEXPRESS, ARCH_VEXPRESS_DT, ARM_APPENDED_DTB and ARM_ATAG_DTB_COMPAT. Disable SPARSE_IRQ (it doesn't play nicely with device tree support).

A working configuration is available here.

Device Tree Blob (DTB)

Build the device tree blobs (flattened device tree binary files) with make dtbs. A suitable DTB file for the envelope model is vexpress-v2p-aem-v7a.dtb.

Flash Image

The dom0 kernel is loaded by Xen from the beginning of the flash. The kernel zImage and the DTB should be appended. e.g., cat zImage vexpress-v2p-aem-v7a.dtb > flash.bin.

Native boot

To boot the kernel natively use an updated boot-wrapper from git://xenbits.xen.org/people/dvrabel/boot-wrapper.git.

Developer FAQs

Use the Xen ARMv7 Dev FAQ page to cover commonly asked questions.