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).
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)
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.
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.
To boot the kernel natively use an updated boot-wrapper from git://xenbits.xen.org/people/dvrabel/boot-wrapper.git.
Use the Xen ARMv7 Dev FAQ page to cover commonly asked questions.