Back in november we announced our effort to port Xen to the ARM Cortex-A15 / ARMv7 with virt extensions. I am very pleased to say that as of xen-unstable.hg changeset 24741:fb71a97fe339 the initial patches for this port are now part of the mainline Xen code base and will be release (albeit in highly experimental form) in the Xen 4.2 release.
The main archtectural decision which underlies this port is that it requires the ARM virtualisation extensions and has been built from the ground up to follow a hyrbid model which both makes maximum use of the hardware’s capabilities and exploits paravirtualisation where appropriate. We’ve found the virtualisation extensions to be very well thought out and easy to use which has contributed massively to our ability to get something up and running so quickly with so little effort. For example the extensions include instructions for walking each of the various page tables which you might be using as well as proving a decode of the faulting instruction when trapping to the hypervisor. These allow us to skip writing both our own page table walkers and instruction decoders — both of which are often large chunks of code which are subtle to get right.
The current state of the port is that it will boot a Linux domain 0 kernel to a command line prompt in a Cortex-A15 simulator (no actual hardware is available yet). Next on our list is to get basic Xen tools support working so that we can start work on bringing up our first proper guest.
For more information on this port of Xen please see the Xen ARMv7 with Virtualization Extensions wiki page. We also have a DevFAQ and a guide to obtaining and building the FastModels simulator platform.