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

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



On Thu, Aug 20, 2020 at 4:27 AM Oleksandr Andrushchenko
<Oleksandr_Andrushchenko@xxxxxxxx> wrote:
>
>
> On 8/20/20 1:50 PM, Julien Grall wrote:
> > Hi Roman,
> >
> > On 16/08/2020 21:45, Roman Shaposhnik wrote:
> >> 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)
> >
> > Cool! Although, it looks mostly related to the environment variable though.
> >
> >>
> >>> 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
> >
> > While I can see major differences when using either on baremetal (you have 
> > better control on the Device-Tree with U-boot), it is much less clear in a 
> > guest. Maybe Anastasiia can explain why they decided to add support in 
> > U-boot? :).
>
> Well, there are many SoC vendors provide u-boot as their boot loader,
>
> so it was natural for us to add pvblock to it (Renesas, Xilinx, iMX, RPi, you 
> name it).
>
> So this is the only reason I guess

What I am wondering about (perhaps selfishly because of Project EVE)
is the availability
of VMs for u-boot.

IOW, with UEFI I can pick up a random "cloud" (or any other one
really) ARM VM image
and boot it as DomU simply because it seems that 99% of existing VMs
are packaged
with a EFI partition setup for a UEFI boot.

Stefano and I actually talked about availability of VMs that are
pre-set with u-boot, but
it seems that the only place where you can find something like that is
Xilinx (for their
Petalinux). Stefano also brought up a point that Yocto would generate
u-boot's boot.scr
scripts -- but I have no experience with that and would appreciate
other commenting.

All of that said, it would be simply awesome if we can have a wiki
page with examples
of where to get (or how to build) DomUs that would be setup for u-boot
sequence on ARM.

Thanks,
Roman.



 


Rackspace

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