[PATCH v6 09/25] arm: xenguest_arm64: Add a fake devicetree file

Oleksandr Andrushchenko Oleksandr_Andrushchenko at epam.com
Fri Dec 3 18:02:34 CET 2021

Hi, Simon!

On 03.12.21 18:23, Simon Glass wrote:
> Hi Oleksandr,
> On Thu, 2 Dec 2021 at 22:41, Oleksandr Andrushchenko
> <Oleksandr_Andrushchenko at epam.com> wrote:
>> Hi, Simon!
>> On 02.12.21 19:57, Simon Glass wrote:
>>> Hi Oleksandr,
>>> On Thu, 2 Dec 2021 at 10:40, Oleksandr Andrushchenko
>>> <Oleksandr_Andrushchenko at epam.com> wrote:
>>>> Hi, Simon!
>>>> Sorry for being late to the party
>>>> On 02.12.21 17:59, Simon Glass wrote:
>>>>> Add an empty file to prevent build errors when building with
>>>>> CONFIG_OF_SEPARATE enabled.
>>>>> The build instructions in U-Boot do not provide enough detail to build a
>>>>> useful devicetree, unfortunately.
>>>> Xen guest doesn't use any built-in device trees as the guest's device tree is provided
>>>> by the Xen hypervisor itself and is generated at the virtual machine creation time: it is
>>>> populated with memory size, number of CPUs etc. based on [1].
>>>> So, even if we provide some device tree here it must not be used by U-boot at
>>>> the end of the day. Thus, it might be a reasonable solution to provide an empty device
>>>> tree as you do, but put a comment that it is not used.
>>> OK we can go with an empty one if we have to, but where are the
>>> instructions to create the DT that is used?
>> You don't need to create the device tree yourself, but instead it is
>> provided by Xen and generated at run-time while creating a
>> virtual machine. So, it is up to Xen to provide one.
>> There are cases [1] when you may want providing a so called
>> partial device tree to better tune what a virtual machine gets.
>> But again, it is used by Xen toolstack outside of the virtual machine
>> and serves as a sort of overlay to the generated device tree.
>> So, we can provide some device tree to be embedded in U-boot,
>> but it will have no practical meaning and will make more harm than good
>>> I'm not even sure how to run U-Boot with Xen? The in-tree instructions
>>> don't help...
>> This is just a virtual machine from Xen POV, so U-boot is nothing
>> different here from Linux kernel or anything else.
>> Thus no specific instructions are needed nor provided
> I'd like to try it out. How??
Well, it can be tricky a bit. There are number of ARM64 platforms which have
Xen running: Arm, Renesas, Xilinx, iMX8, Rpi4...
You can probably start from QEMU, for example OP-TEE has a way to build
Xen + QEMU, please see [1]. The build has Xen in it and a virtual machine [2].

You will need to tweak [3] and put U-boot instead of the Linux kernel.

I never tried that build myself, but I know it is used for OP-TEE tests for Xen.

Hope this helps,
> Regards,
> Simon
[1] https://github.com/OP-TEE/manifest/blob/master/qemu_v8.xml
[2] https://github.com/OP-TEE/build/tree/master/qemu_v8/xen
[3] https://github.com/OP-TEE/build/blob/master/qemu_v8/xen/guest.cfg#L1

More information about the U-Boot mailing list