[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



> Il giorno 23 mar 2017, alle ore 01:27, Stefano Stabellini 
> <sstabellini@xxxxxxxxxx> ha scritto:
> 
> On Thu, 23 Mar 2017, Luca Miccio wrote:
>> Hi Stefano and Julien,
>> 
>>> Il giorno 22 mar 2017, alle ore 22:38, Stefano Stabellini 
>>> <sstabellini@xxxxxxxxxx> ha scritto:
>>> 
>>> Hi Luca,
>>> 
>>> please don't use HTML emails.
>>> 
>>> 
>> Sorry for that.
>> 
>>> On Wed, 22 Mar 2017, Julien Grall wrote:
>>>> On 22/03/2017 19:45, Luca Miccio wrote:
>>>>> Hi Stefano,
>>>> 
>>>> Hello Luca,
>>>> 
>>>>> aarch64-linux-gnu-gcc  -DCNTFRQ=0x01800000-DUART_BASE=0x1c090000
>>>>> -DSYSREGS_BASE=0x1c010000 -DGIC_DIST_BASE=0x2c001000
>>>>> -DGIC_CPU_BASE=0x2c002000 -c -o boot.xen.o boot.S -DXEN
>>>>> aarch64-linux-gnu-gcc  -DPHYS_OFFSET=0x80000000 -DMBOX_OFFSET=0xfff8
>>>>> -DBOOT=boot.xen.o -DXEN_OFFSET=0xA00000 -DKERNEL_OFFSET=0x80000
>>>>> -DFDT_OFFSET=0x08000000 -DFS_OFFSET=0x10000000 -DXEN=Xen -DKERNEL=Image
>>>>> -DFILESYSTEM=filesystem.cpio.gz -E -P -C -o model.xen.lds model.lds.S
>>>>> aarch64-linux-gnu-gcc  -DCNTFRQ=0x01800000-DUART_BASE=0x1c090000
>>>>> -DSYSREGS_BASE=0x1c010000 -DGIC_DIST_BASE=0x2c001000
>>>>> -DGIC_CPU_BASE=0x2c002000 -c -o boot.o boot.S
>>>>> aarch64-linux-gnu-gcc  -DPHYS_OFFSET=0x80000000 -DMBOX_OFFSET=0xfff8
>>>>> -DBOOT=boot.o -DKERNEL_OFFSET=0x80000 -DFDT_OFFSET=0x08000000
>>>>> -DFS_OFFSET=0x10000000 -DKERNEL=Image -DFILESYSTEM=filesystem.cpio.gz -E
>>>>> -P -C -o model.lds model.lds.S
>>>>> aarch64-linux-gnu-ld -o xen-system.axf --script=model.xen.lds
>>>>> aarch64-linux-gnu-ld: section .xen LMA
>>>>> [0000000080a00000,0000000080ac814f] overlaps section .kernel LMA
>>>>> [0000000080080000,0000000080f009ff]
>>>>> Makefile:78: set di istruzioni per l'obiettivo "xen-system.axf" non 
>>>>> riuscito
>>>>> make: *** [xen-system.axf] Errore 1\
>>>>> 
>>>>> Clearly there is a problem with the offset of xen section but i can't
>>>>> figure out how to solve it.
>>>> 
>>>> I would recommend to use the latest version of bootwrapper which is now
>>>> including support for Xen. I haven't yet updated the wiki with the runes
>>>> but here a quick summary of the step I am using:
>>>> 
>>>> * Building bootwrapper
>>>> 
>>>> 42sh> git clone 
>>>> git://git.kernel.org/pub/scm/linux/kernel/git/mark/boot-wrapper-aarch64.git
>>>> 42sh> autoreconf -i
>>>> 42sh> ./configure --host=aarch64-linux-gnu --with-kernel-dir=<kernel-dir> 
>>>> --with-dtb=<dtb> \
>>>> --with-cmdline="console=hvc0 earlycon=pl011,0x1c090000 root=/dev/vda rw" 
>>>> --enable-psci \
>>>> --with-xen-cmdline="dtuart=serial0 console=dtuart no-bootscrub 
>>>> dom0_mem=512M" \
>>>> --with-xen=<xen-bin> --with-cpu-ids=0,1,2,3
>>>> 42sh> make
>>>> 
>>>> Where:
>>>> * <kernel-dir> is the path to the kernel repository
>>>> * <dtb> is the path to the device-tree. I am using the one shipped with 
>>>> Linux
>>>>   in arch/arm64/boot/dts/arm/foundation-armv8.dtbs
>>>>   It will be built if you did make all in Linux
>>>> * <xen-bin> is the path to Xen binary (xen/xen in the repo)
>>>> 
>>>> * Command line for the foundation model
>>>> 42sh> Foundation_Platform --image=<image> --block-device=<rootfs> --cores=4
>>>> 
>>>> Where:
>>>> * <image> is the path to xen-system.axf produced by bootwrapper
>>>> * <rootfs> is the patch to your rootfs
>>>> 
>>>> Let me know if you need more details.
>>> 
>>> Thanks Julien, I successfully booted Xen and Linux following these
>>> steps. I quickly updated the wiki.
>>> 
>>> Luca, I took me a while to figure out that for root=/dev/vda to work
>>> properly, Linux requires not just all the filesystem and virtio options
>>> enabled in the kernel config, but also CONFIG_VIRTIO_MMIO=y. With that,
>>> you should be able to boot Xen, Linux and mount the root filesystem. If
>>> you download one of the Ubuntu arm64 cloud images, the root device will
>>> be /dev/vda1.
>> 
>> First of all, thank you for your help.
>> 
>> I think that i keep on doing somenthing wrong because now the bootwrapper 
>> produces
>> with no errors the xen-system.axf  with the configuration that Julien 
>> provided. 
>> But when i launch the emulator it simply stops at:
>> (XEN) Bringing up CPU1
>> 
>> To help you understand, this is what i have done:
>> - First i compiled the xen source with the following command:
>> $ make dist-xen XEN_TARGET_ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- 
>> CONFIG_EARLY_PRINT=fastmodel
>> ( I am using the staging branch)
>> 
>> - Get the linux source with git: 
>> $ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>> 
>> -Checkout on the v4.4 branch 
>> 
>> - Follow the steps described in the blog and, as you said, i set in my 
>> .config file:
>> CONFIG_VIRTIO=y
>> CONFIG_VIRTIO_MMIO=y
>> CONFIG_VIRTIO_BLK=y
>> I also checked all the filesystem and virtio options. 
>> 
>> - Compile the linux kernel with the toolchain:
>> $ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- all (to get also the .dtb 
>> file)
>> 
>> - Configured the bootwrapper with the command that Julian wrote and then 
>> launched the 
>> foundation model with the simple command:
>> $ Foundation_Platform --image=/path/to/the/xen-system.axf 
>> --block-device=xenial-server-cloudimg-arm64.img --cores=4
> 
> Try removing --cores=4, does it work?
> 
I have already tried this option with no results
>> The image was downloaded at : 
>> https://cloud-images.ubuntu.com/releases/16.04/release/
>> 
>> But, as I said, the emulator blocks at boot. I tried different rootfs images 
>> and i have configured the root device
>> properly to /dev/vda1.
>> 
>> Maybe my kernel configuration is wrong?
>> 
>> Thank you,
>> Luca
>> 
Luca


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

 


Rackspace

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