Xen ARM with Virtualization Extensions/Arndale
The work for Xen on the Arndale Development board is on his way. So don't expect to have a usable dom0 yet.
Preparing the board
The bootloader provided with the Arndale does not let Xen boot in hypervisor mode, so we will use the u-boot provided by Linaro.
Follow the step on the Linaro wiki, to build and install u-boot.
Building Xen and Linux
First, will build Linux for dom0, to have a device tree to provide to Xen.
You can get a tree from xenbits which is built on top of Linaro's tree [1].
Use this config file and add anything you need.
git clone git://xenbits.xen.org/people/aperard/linux-arndale.git linux cd linux wget -O .config 'http://xenbits.xen.org/gitweb/?p=people/aperard/linux-arndale.git;a=blob_plain;f=.config;hb=refs/heads/config' make uImage make dtbs
Use arch/arm/boot/exynos5250-arndale.dtb as a device tree provided to Xen at compile time.
To Build, get the source tree from the repo, which contain branches (last one is exynos5250-2013-03-22) with patches to get serial and other device working on the board.
git clone --branch exynos5250-2013-03-22 git://xenbits.xen.org/people/aperard/xen-arm.git
Then, Build Xen on ARM, with CONFIG_DTB_FILE=$linux_tree/arch/arm/boot/exynos5250-arndale.dtb passed to make.
Booting Xen and dom0
Boot via PXE
- Setup the wiki.linaro.org/Boards/Arndale/Setup/PXEBoot PXE server
- Copy xen-uImage and the zImage (rename in linux-zImage) in /tftpboot/
- At U-Boot prompt, on your board, you need to set the following variable:
setenv ipaddr 10.y.y.y setenv ipconfig 10.y.y.y setenv kernel_addr_r 0x40007000 setenv serverip 10.x.x.x setenv tftp_path '10.x.x.x:' setenv usbethaddr 00:40:5c:26:0a:5b setenv ethaddr 00:40:5c:26:0a:5b setenv xen_addr_r 0x50000000 setenv bootcmd_load_linux 'tftpboot 0x40007000 $tftp_path/linux-zImage' setenv boot_xen 'run bootcmd_load_linux; tftpboot $xen_addr_r $tftp_path/xen-uImage; bootm $xen_addr_r -' setenv bootcmd 'run boot_xen'
with 10.y.y.y the ip addr of the board and 10.x.x.x the ip of a tftp server (or PXE server).
- execute the boot command with the following command:
run bootcmd
Resources
- Information about the Arndale board development: www.arndaleboard.org/wiki/index.php/WiKi.
- Linaro page about the Arndale board: wiki.linaro.org/Boards/Arndale/Setup/PXEBoot