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

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


  • To: Julien Grall <julien@xxxxxxx>, Roman Shaposhnik <roman@xxxxxxxxxx>
  • From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@xxxxxxxx>
  • Date: Thu, 20 Aug 2020 11:27:33 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com; dkim=pass header.d=epam.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=L1ypKjiIQTjQ7BvzCv83/urzdOxzndZ6G4zxaiXelns=; b=WDHLn8U0m8iQkMfcvlWKQN8Umu2OalzPzKbXaTwi8UhBbIpz4QkNXYG9rOL02YUFtTasQ7l/6dvy7Cvo24VsIFBUtc+54BxxJEi48bagXbuxBVhregwK5Ig8Ikq7qvZvFEC64ZG1DAzPOSArc3LIFTd73bwFzp3wpqgcFz6p9j16vDL1F44pjVYUeJOiPVKh+z+xPR6lhdIiurQkXJND7iLFZE74LctwsRwDaRcALyCzJiJTcumf94LsnsOlQt3FqUxO+Jk17sJN9VYPm3nfteK8aUrJ7yyOhwuSfLbq6eGH4a/smA2r2CUANtw3D4i5MW0dnPBKWfL1u3zz6T7A6w==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=P9iBC6ROncfY5oB2x1uWZqlcDQ+HFfmsDB1qohnawwCoYe2j25qjgU9Sh5zXyE4YE14JRJsTfP3G4/cnCPWVUu4G37h0qrEyMn0xT95ZkS53oVy7kEefDNZE3zb7Wt5TqzO3rh9jstA8TKb8jdpu2vAHJalPbNVNlQtV4MMeKXPk6yz5ljMlnNo0CD4M0H1pCVi7KyL4nPAywwPDaYwWBOd/BDxQLUY3OMSbE9Xwau8ihFgGVaqubs5TM/qdXe5xtYRHNKMDMaIIj3PexcqJVaBNuYupjE/YhAnkturV6DSg2UShPmdqLMj+fFjJZw9v7ce0rpJijRgIxuqxLTkS/g==
  • Authentication-results: xen.org; dkim=none (message not signed) header.d=none;xen.org; dmarc=none action=none header.from=epam.com;
  • Cc: Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>, "vicooodin@xxxxxxxxx" <vicooodin@xxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>
  • Delivery-date: Thu, 20 Aug 2020 11:27:43 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHWduTlR9y1WkQPUkq3XmaI+hJKmA==
  • Thread-topic: u-boot vs. uefi as boot loaders on ARM

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
> Cheers,
>
Regards,

Oleksandr

 


Rackspace

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