Xen ARM with Virtualization Extensions
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).
Hardware
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.
Requirements
- ARM Fast Model
- Either the v7-A ARM Envelope Model (AEM) or the Cortex A15/A7 models (single CPU only).
- Device Tree
- A device tree in the flat device tree format (.dtb). The device tree source for the AEM is here: git://xenbits.xen.org/people/dvrabel/device-trees.git.
- Xen
- xen-unstable as of 10 Feb 2012.
- Linux kernel for dom0
- vexpress-dt branch of git://xenbits.xen.org/people/dvrabel/linux.git
- dom0 userspace
- (more details here)
Device Trees
Xen needs the device trees to be in the flat device tree format. This is built by the device tree compiler (dtc) from the device tree source files (.dts and .dtsi.
Version 1.3 or later of dtc is required.
Build the .dtb files with make.
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.