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

Re: Aarch64 stand-alone application for Xen



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.
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)

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.


>>> 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®.