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

Re: u-boot vs. uefi as boot loaders on ARM



On Sun, Aug 16, 2020 at 7:54 AM Julien Grall <julien@xxxxxxx> wrote:
> On 15/08/2020 21:43, Roman Shaposhnik wrote:
> > Hi!
>
> Hi,
>
> > with the recent excellent work by Anastasiia committed to the u-boot's
> > main line, we now have two different ways of bringing ARM DomUs.
> >
> > Is there any chance someone can educate the general public on pros
> > and cons of both approaches?
> >
> > In Project EVE we're still using uefi on ARM (to stay closer to the more
> > "ARM in the cloud" use case) but perhaps the situation now is more
> > nuanced?
>
> UEFI is just standard, so I am guessing you are referring to
> Tianocore/EDK2. am I correct?

Yes, but I was actually referring to both in a way (I should've been
clearer tho).
To be more explicit my question was around trying to compare a "standardized"
way of botting a generic DomU on ARM (and that standard is UEFI with one
particular implementation that works out of the box with Xen being TC/EDK2) with
a more ad-hoc u-boot style of booting.

> Recent version of U-boot are also able to partially UEFI. This means you
> could easily use GRUB with U-boot.

Yup -- which complicated things even more. And it is funny you should mention
it, since we actually started with TC/EDK2 for RaspberryPi4 as a board
bootloader,
but quickly switched to u-boot with UEFI shim layer, since it was much smaller,
better supported (still?) and gave us all we needed to boot Xen on RPi4 as a
UEFI payload.

> From my understanding, U-boot is just a bootloader. Therefore it will
> not provide runtime services (such as date & time).

It actually does provide some of that (see below)

> Furthermore, the
> interface is less user friendly, you will have to know the memory layout
> in order to load binaries.
>
> On the other hand, Tianocore/EDK2 is very similar to what non-embedded
> may be used to. It will not require you to know your memory layout. But
> this comes at the cost of a more complex bootloader to debug.

That's literally the crux of my question -- trying to understand what use cases
either one of them is meant for. Especially given that this shim layer is now
quite capable:
    https://github.com/ARM-software/u-boot/blob/master/doc/README.uefi#L127

Thanks,
Roman.



 


Rackspace

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