stefano.stabellini at eu
Nov 25, 2011, 6:06 AM
Post #1 of 2
[RFC] [ANNOUNCE] Xen port to Cortex-A15 / ARMv7 with virt extensions
a few weeks ago a small group of hackers started working from scratch on
a Cortex-A15 Xen port, exploiting all the latest hardware virtualization
The port can now boot dom0 all the way to a shell prompt, so we are
planning to make an announcement to various Open Source communities
regarding ARMv7 with virt extensions support in Xen. The intention is to
get more parties interested and engaged in Xen on ARM in general, and
also to get feedback. We propose to send the email below, to the
following mailings lists:
virtualization [at] lists
linux-kernel [at] vger
linux-arm-kernel [at] lists
android-virt [at] lists
linaro-dev [at] lists
We would appreciate it if you could let us know of any additional lists
which we should send this to. We would also welcome if you checked out
The plan is to send out the email next week, after the Thanksgiving
I did want to say that this work is in no way competing with Samsung's
efforts to upstream XenARM to xen-unstable. From what we can see,
there is very little duplication between the XenARM port and what we
did, considering that we target different architectures.
a few weeks ago I (and a few others) started hacking on a
proof-of-concept hypervisor port to Cortex-A15 which uses and requires
ARMv7 virtualization extensions. The intention of this work was to find
out how to best support ARM v7+ on Xen. See
for more details.
I am pleased to announce that significant progress has been made, and
that we now have a nascent Xen port for Cortex-A15. The port is based on
xen-unstable (HG CS 8d6edc3d26d2) and written from scratch exploiting
the latest virtualization, LPAE, GIC and generic timer support in
We started the work less than three months ago, but the port is already
capable of booting a Linux 3.0 based virtual machine (dom0) up to a
shell prompt on an ARM Architecture Envelope Model, configured to emulate
an A15-based Versatile Express. In this context, we wanted to thank ARM
for making the model available to us.
Now we are looking forward to porting the tools and running multiple
The code requires virtualization, LPAE and GIC support and therefore it
won't be able to run on anything older than a Cortex-A15.
On the other hand, thanks to this, it is very small and easy to read,
write and understand.
The implementation does not distinguish between PV and HVM guests: there
is just one type of guests that would be comparable to Linux PV on HVM
in the Xen X86 world, but with no need for Qemu emulation.
The code only requires minimal changes to the Linux kernel: just enough
to support PV drivers.
Even though we are currently targeting Versatile Express and Cortex-A15
we do intend to support other machines and other ARMv7 with
virtualization extensions CPUs.
We are also looking forward to ARMv8 and 64 bits support.
Given that porting Xen to Cortex-A15 could be done with so little code,
we believe that the best course of action is to merge it into
xen-unstable as quickly as possible. There are still few rough edges to
sort out but we should be able to produce a clean and digestible patch
series for submission to xen-devel within the next couple of months. I
hope to see the first patches going to the list as soon as possible.
We would very welcome any contributions, in the form of testing, code
reviews and, of course, patches!
A git tree is available here:
the gitweb url is the following:
And here is the full diff:
We want to point out that this effort is in addition to Samsung's
ongoing efforts to upstream Xen ARM to xen-unstable. Samsung's XenARM
port allows virtualization of Xen on ARM CPUs prior to virtualization
extensions and supports traditional PV guests.
I would like to thank Tim Deegan and Ian Campbell: if you spend some
time reading the history, you'll see that this project wouldn't have
been possible in such a short time without great contributions from
Xen-arm mailing list
Xen-arm [at] lists