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

Re: [Xen-devel] [GSOC] Xen on ARM: create multiple guests from device tree

On Tue, 6 Feb 2018, Denis Obrezkov wrote:
> > Hello Denis,
> >
> Hello Stefano,
> > it is great to see interest in Xen on ARM and this project!
> >
> > Unfortunately RPi3 can't run Xen as far as I know due to their non-ARM
> > interrupt controller without virtualization support. Otherwise it would
> > have been a good dev board. The BeagleBoard doesn't have processors with
> > virtualization support so it cannot run Xen either (it needs an Cortex
> > A7 or A15).
> I have RPi2 and it has Cortex A7 AFAIK.
> >
> > But that's not a problem, because the latest QEMU (2.11) can run Xen
> > just fine. Build QEMU with --target-list=aarch64-softmmu, then you can
> > run it with:
> >
> > qemu-system-aarch64 -machine virt,gic_version=3 \
> >     -machine virtualization=true \
> >     -cpu cortex-a57 -machine type=virt \
> >     -smp 4 -m 2048 \
> >     -serial stdio -monitor none \
> >     -bios /path/QEMU_EFI.fd \
> >     -netdev user,id=hostnet0 -device virtio-net-device,netdev=hostnet0 \
> >     -drive if=none,file=$DISK1,id=hd0 -device virtio-blk-device,drive=hd0
> >
> > Where DISK1 is your EFI ready disk image and QEMU_EFI.fd can be
> > downloaded from:
> >
> > http://snapshots.linaro.org/components/kernel/leg-virt-tianocore-edk2-upstream/latest/QEMU-AARCH64/RELEASE_GCC5/QEMU_EFI.fd
> >
> > See the following for more detailed information:
> >
> > https://wiki.xenproject.org/wiki/Xen_ARM_with_Virtualization_Extensions/qemu-system-aarch64
> >
> > Give it a try and let me know if you have any issues.
> >
> > Cheers,
> >
> > Stefano
> I was able to boot to uefi shell. What can I do further? What is my
> overall goal? To build and run several instances of Linux? Make a
> patch?

Good! Please compile Xen for ARM64 and try to boot Xen and Dom0 with it.
Once you have Xen and Dom0 up and running, you can try to create a small
guest and start that as well. It will help you setup your build and test

To build Xen for ARM64, you can use native compilation inside the
qemu-system-aarch64 emulation, but it is slow. Otherwise you can use
chroot and qemu-aarch64-static (the qemu-user aarch64 target, statically
compiled). For example give a look at:


The end goal of the project is to be able to boot two domains directly
from Xen. Typically, Xen boots Dom0, then only once Dom0 is fully up and
running, a second domain can be created and that is done via the Xen
tools (xl). However, it is not always necessary to wait until Dom0 is
fully booted before starting a second guest. In many embedded
environments, you only have two or three guests in total to deal with.
It would be better to create them all in parallel directly from Xen. It
would drastically shorten the boot time.

Device tree is used to describe the hardware available on the platform.
It comes into play in this project because it is the best way to pass
the required information to Xen, so that Xen knows it needs to boot a
second guest in addition to Dom0.

Before we start the main project though, we usually ask candidates to
send a patch to fix a small issue just to show that they managed to
setup a dev and test environment correctly. We'll come back with a list
of potential small issues to fix shortly.

> I have also proposed to make a port of xen for qemu-system-riscv (it
> should be ready in Q2.2018) to people from riscv but I haven't
> received any answer.Anyway, I would like to work with xen on embedded
> platforms.

That would be awesome, but I don't think that a project like porting Xen
to riscv would fit in a GSoC project :-)

Xen-devel mailing list



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