[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH 00/46] initial arm v8 (64-bit) support



This is v2 of the arm64 bit series. It is based on current staging plus
the "xen: public interface (and foreign check) changes for arm" series,
second posting of that is
<1360857557.20449.436.camel@xxxxxxxxxxxxxxxxxxxxxx>

I have implemented Tim's review comments with the exception of the
comments on use of WFE etc in the spinlock implementation (#8 last time)
and the comments on trap handling (#28 last time) which I intend to
return to. Many thanks to Tim for his copious comments and acks!

I have pushed the series, plus the prerequisite mentioned above and a
small number of Stefano's toolstack patches to:
        git://xenbits.xen.org/people/ianc/xen.git arm64-v2

As well as the above I have pushed the kernel tree I am using, which is
based on v3.8-rc3 to:
        git://xenbits.xen.org/people/ianc/linux.git arm64-v2
The kernel config is attached. Note that this is a 32-bit ARM kernel,
64-bit support for dom0 and domU is a WIP but not included here.

I am building the 64-bit hypervisor with the Linaro gcc,
gcc-linaro-aarch64-linux-gnu-4.7-2012.12-20121214_linux, from
http://www.linaro.org/engineering/armv8#tab3 
http://releases.linaro.org/13.01/components/toolchain/binaries/gcc-linaro-aarch64-linux-gnu-4.7-2013.01-20130125_linux.tar.bz2

For the tools I am using the native armhf tools on a Debian Wheezy armhf
system (running on a cluster of IMX.5x loco boards). I have not tried
cross compiling the tools. FWIW I also build the 32-bit hypervisor
natively in this environment.

For the kernel I am using the kernel.org cross compiler,
gcc-4.6.3-nolibc / arm-unknown-linux-gnueabi, from
http://www.kernel.org/pub/tools/crosstool/files/bin/x86_64/4.6.3

With all this I can boot a 32-bit dom0 and a 32-bit guest domain (using
the same kernel) on either a 64-bit hypervisor (on the RTSM_VE_AEMv8A
model, 0.8.4510) or a 32-bit hypervisor (RTSM_VE_Cortex-A15x1, 8.0.44).
You can also run 32-bit on the V8 model (using -C
cluster.cpu0.CONFIG64=0) if you comment out the ThumbEE in
ctxt_switch_from and ctxt_switch_to (making this dynamic is on my TODO
list).

My dom0 root filesystem is a Debian Wheezy armhf image, attached to the
emulated MMC (-C motherboard.mmc.p_mmc_file=rootfs.img)

To save running all of the dom0 initscripts (which is a bit boring on
the model) I boot using init=/root/init.sh (init.sh is attached), which
mounts the necessary filesystems, starts u-boot and the relevant xen
stuff.

Once booted into dom0 I run the attached guest.sh, which uses the
attached cfg and a guest.img (I use the one from the ARM 3rd party IP)
to start a guest and connect to its console The guest boots to a prompt.

I will at some point be updating
http://wiki.xen.org/wiki/Xen_ARMv7_with_Virtualization_Extensions with
v8 specific info (and renaming the page s/v7//).

Ian.

Attachment: config
Description: Text document

Attachment: guest.sh
Description: application/shellscript

Attachment: cfg
Description: Text document

Attachment: init.sh
Description: application/shellscript

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.