Thanks Leonardo and Stefano.

The information you shared is really helpful to get me started and get basic understanding of where Xen stands in its support for ARM. 

Below is my understanding, request your help to correct me if I am wrong.

1) XEN support for the ARM processor where hardware virtualization is not supported is not there.

2) Presently XEN port has been tested  on the following cards. 
I have Odroid Cortex A9 board, which doesn't have hardware virtualization. So for sure XEN can't be ported on that.

Any idea or test results for Cortex A15 board (ODroidXU3 ) provided by ODroid. Whether this board is supported or not ?

Please can you share some other board models that are cheap and supported by XEN ARM. What I have found on net is that all boards having Cortex A15 and hardware virtualization support, so that they are compatible with XEN, are quite expensive.



Thanks
Anshul Makkar
www.justkernel.com


On Wed, Aug 6, 2014 at 1:58 PM, Leonardo Taccari <iamleot@gmail.com> wrote:
Hello Anshul,

On Wed, Aug 06, 2014 at 11:19:28AM +0200, anshul makkar wrote:
> [...]
> I am working on a project Virtualdroid where I aim to achieve isolation for
> each VM.
> [...]
> Please can you share your thoughts on above. I am target Cortex A9 without
> hardware virtualization support and Cortex A15 with HW virtualization
> support.
The Xen ARM project (that requires ARM hardware virtualization
extensions) is pretty stable and very active...

A feature that is missing, compared to Xen x86, is the guest VM
save/restore/migration[0] but reading your email probably you will not
need it.
An interesting page about other features not available or WIP is this:

 http://wiki.xenproject.org/wiki/Xen_ARM_TODO

...but I suggest you to also search that on xen-devel@ ML as well.

A good introduction to Xen ARM is ``Xen ARM with Virtualization
Extensions whitepaper'':

 http://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions_whitepaper

I've investigated and used a bit Xen ARM on Debian GNU/Linux armhf
testing system both for Dom0 and DomU on a cubieboard2.
Every steps needed are documented here (probably you can adapt them
easily):

 http://wiki.xen.org/wiki/Xen_ARMv7_with_Virtualization_Extensions/Allwinner

...this link is also very helpful:

 http://openmirage.org/wiki/xen-on-cubieboard2

In very few words for the GNU/Linux case (but probably you can apply
them also for Android):
 * You need a modified version of u-boot in order to start the CPU in
   non-secure mode (Xen runs in HYP mode):
    https://github.com/jwrdegoede/u-boot-sunxi
 * Initial Xen ARM support was added in Linux 3.7[1], and better support is
   available on more recent versions.
 * u-boot, Linux kernel and Xen hypervisors are easily cross-compilable,
   in the Debian GNU/Linux case you will find Emdebian project useful:
    http://emdebian.org/crosstools.html
   The interesting package that includes everything needed for
   cross-compilation is ``gcc-4.7-arm-linux-gnueabihf''.
 * For compiling the Xen toolstack (xl, libxl, ...) I've used
   debootstrap to generate an armhf chroot and then I've compiled it
   thanks to QEMU user mode emulation (dynamic binary translation).
   Interesting package for Debian GNU/Linux is ``qemu-user-static''.
   After you have succesfully generated a chroot then copy
   ``qemu-arm-static''in the chroot's /usr/bin and then simply by
   chroot(8)-ing into it you can install the gcc packages and use it
   like you are in an armhf system without any problems.
   I've done that on my university laboratory that has old Intel Core
   Duo and compiling Xen toolstack on them is pretty fast.

If you would like to know more about ARM hardware virtualization
extensions ``Hardware-Supported Virtualization on ARM'' by P. Varanasi
and G. Heiser IMHO is a well written paper:

 http://apsys11.ucsd.edu/papers/apsys11-varanasi.pdf


HTH!
Have fun! :)
Ciao,
L.


 [0]: http://lists.xen.org/archives/html/xen-devel/2014-04/msg02057.html
    Here you can find patches (not applied AFAIK) regarding guest VM
    save/restore/migration
 [1]: http://kernelnewbies.org/Linux_3.7#head-7e55c4d19ada23abf473d08e4384cbe7a7d7772d



--
Thanks
Anshul Makkar
www.justkernel.com
http://www.linkedin.com/groups/Just-Kernel-3033180