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

Re: Aarch64 stand-alone application for Xen



On Thu, 9 Dec 2021 at 00:19, Michal Orzel <michal.orzel@xxxxxxx> wrote:
>
> Hi Mathieu,
>
> On 08.12.2021 22:23, Mathieu Poirier wrote:
> > On Wed, 8 Dec 2021 at 07:19, Michal Orzel <michal.orzel@xxxxxxx> wrote:
> >>
> >> Hi Mathieu,
> >>
> >> On 08.12.2021 01:06, Mathieu Poirier wrote:
> >>> Hi Bertrand,
> >>>
> >>> On Fri, 26 Nov 2021 at 03:32, Bertrand Marquis <Bertrand.Marquis@xxxxxxx> 
> >>> wrote:
> >>>>
> >>>> Hi Mathieu,
> >>>>
> >>>>> On 25 Nov 2021, at 22:59, Mathieu Poirier <mathieu.poirier@xxxxxxxxxx> 
> >>>>> wrote:
> >>>>>
> >>>>> Good day,
> >>>>>
> >>>>> I am in the process of adding support for aarch64 to the xen-sys
> >>>>> crate[1].  The crate currently supports x86_64 and includes a
> >>>>> stand-alone "oxerun" application that can be used to validate
> >>>>> hypercalls.  My goal is to provide the same functionality on arm64.  I
> >>>>> am looking for a stand-alone aarch64 example, something like an "hello
> >>>>> world" to help me with the assembler startup code.
> >>>>
> >>>> We are working on porting XTF to arm64 and already have something 
> >>>> running.
> >>>> I think it could be a good starting point for you:
> >>>> https://github.com/orzelmichal/xtf/tree/arm-devel
> >>>
> >>> Quick one - have you been able to get the "test-arm-64le-example"
> >>> application to run?  So far Xen gives me the following error:
> >>>
> >>> (XEN) ****************************************
> >>> (XEN) Panic on CPU 0:
> >>> (XEN) Unable to copy the kernel in the hwdom memory
> >>> (XEN) ****************************************
> >>>
> >>> I wanted to check with you before starting to dig into it.
> >>>
> >>
> >> ICYDK, 64le environment is used to create non-MMU domain in contrast to 
> >> mmu64le.
> >
> > Right.
> >
> >> It lacks support for PV console and other important features of Xen.
> >
> > I'm good with that - for now all I want is to test hypervisor calls I
> > developed in Rust.
> >
> >> But we are able to run it without any issue.
> >> Please keep in mind that as there is no MMU you need to pay attention to 
> >> the load address.
> >> By default for non-MMU domain, the address is 0x40000000 which is the 
> >> correct address if you use XTF as a guest.
> >
> > I was trying to boot XTF as dom0 using the default address
> > (0x40000000), which lead to the output depicted above.
> >
> >> If you want to run non-MMU XTF as dom0, you need to specify the correct 
> >> load address by passing CONFIG_LOAD_ADDRESS=<address>
> >> when invoking make. For example on QEMU it would be 
> >> CONFIG_LOAD_ADDRESS=0x80000000.
> >>
> >
> > When adding the compilation flag "CONFIG_LOAD_ADDRESS=0x80000000" I
> > get further [1].  For my own education, why is address 0x80000000
> > required when running a non-MMU XTF as dom0?  Is this a Xen thing?
> >
> > The application crashes in the loop on line 135 [2] and I am wondering
> > if it wouldn't be related to the QEMU emulation. My setup is as
> > follow:
> >
> > . QEMU startup command [3]
> > . XTF baseline: "c14f7dd289a4 (xtf: Add arm support into xtf-runner)"
> > . Xen baseline: "c76cfada1cfa (tools/libacpi: Use 64-byte alignment for 
> > FACS)"
> >
> > Best regards,
> > Mathieu
> >
> > [1]. https://pastebin.com/3AVXRGXD
> > [2]. 
> > https://github.com/orzelmichal/xtf/blob/arm-devel/arch/arm/arm64/head.S#L135
> > [3]. https://pastebin.com/52aVAFha
> >
>
> For the setup you provided just compile XTF with 
> CONFIG_LOAD_ADDRESS=0x60000000.
> This will fix your problem.

It definitely does - I officially owe you a beer.

> When using non-MMU dom0, the microkernel must be compiled with the load 
> address that
> is within the memory bank allocated by Xen. You can see it in your logs:
> (XEN) BANK[0] 0x00000060000000-0x00000080000000 (512MB)
>

Very interesting.

> You did not specify dom0_mem parameter, so Xen defaults to 512MB for dom0.
> You can see it in your logs:
> (XEN) PLEASE SPECIFY dom0_mem PARAMETER - USING 512M FOR NOW
>
> FWICS you are passing Xen command line arguments through -append but i'm not 
> sure it works.
> The best way is to use dtb.
>

Ok.

>
> >>> Thanks,
> >>> Mathieu
> >>>
> >>>>
> >>>> Regards
> >>>> Bertrand
> >>>>
> >>>>>
> >>>>> Many thanks for the consideration,
> >>>>> Mathieu
> >>>>>
> >>>>> [1]. https://crates.io/crates/xen-sys
> >>>>>
> >>>>
> >>>
> >> Cheers,
> >> Michal
>
> Cheers,
> Michal



 


Rackspace

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