public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Ilias Apalodimas <ilias.apalodimas@linaro.org>
To: Mark Kettenis <mark.kettenis@xs4all.nl>
Cc: Simon Glass <sjg@chromium.org>,
	u-boot@lists.denx.de, pali@kernel.org, xypron.glpk@gmx.de,
	trini@konsulko.com, agraf@csgraf.de,
	yamada.masahiro@socionext.com
Subject: Re: [PATCH 0/7] efi: Various tidy-ups and drop the default
Date: Mon, 28 Jun 2021 11:59:48 +0300	[thread overview]
Message-ID: <YNmPhIhBnPSTSgUm@iliass-mbp> (raw)
In-Reply-To: <5613706c36261e2a@bloch.sibelius.xs4all.nl>

I generally agree with Mark here.

On Mon, Jun 28, 2021 at 10:38:50AM +0200, Mark Kettenis wrote:
> > From: Simon Glass <sjg@chromium.org>
> > Date: Sun, 27 Jun 2021 19:48:34 -0600
> > 
> > It has come to light that EFI_LOADER adds an extraordinary amount of
> > code to U-Boot. For example, with nokia_rx51 the size delta is about
> > 90KB. About 170 boards explicitly disable the option, but is is clear
> > that many more could, thus saving image size and boot time.
> 
> EFI_LOADER used to be a lot smaller.  It is great to see that over the
> years UEFI support has become more complete, but a lot of that new
> code implements features that are not at all essential for just
> booting an OS from storage.  If that growth leads to the suggestion to
> disable EFI_LOADER completely by default, we're putting the cart
> before the horse.
> 
> > The current situation is affecting U-Boot's image as a svelt bootloader.
> 
> Really?  I know UEFI has a bad reputation in the Open Source world,
> and some of its Microsoft-isms are really annoying (yay UCS-2).  But
> it works, it provides a standardized approach across several platforms
> (ARMv7, AMRv8, RISC-V) and the industry seems to like it.  Personally
> I'd wish the industry had standardized on Open Firmware instead, but
> that ship sailed a long time ago...

I think the basics of EFI (mostly those that EBBR requires) are sane and
nice to boot multiple architectures as well.

> 
> I find it hard to imagine that 90k is a serious amount of storage for
> something that is going to include a multi-MB Linux kernel.  This
> isn't code that lives in SPL or TPL where severe size restrictions
> apply.
> 
> > EFI_LOADER is required by EBBR, a new boot standard which aims to
> > bring in UEFI protocols to U-Boot. But EBRR is not required for
> > booting. U-Boot already provides support for FIT, the 'bootm' command
> > and a suitable hand-off to Linux. EBRR has made the decision to create
> > a parallel infrastructure, e.g. does not use FIT, nor U-Boot's signing
> > infrastructure.
> 
> EFI_LOADER is required to boot FreeBSD and OpenBSD on several
> platforms as well as generic Linux distros.  For example
> OpenBSD/armv7, OpenBSD/arm64 and OpenBSD/riscv64 all rely on
> EFI_LOADER to boot and have done so for the last 4 years.  The fact
> that ARM has embraced UEFI as an embedded boot standard and branded it
> EBBR really isn't all that relevant.
> 
> FIT simply isn't fit for purpose (pun intended).  It only really works
> for booting Linux, and forces people to combine u-boot, kernel,
> initial ramdisk and other firmware components into a single image.
> That is really undesirable as:
> 
> - This makes it sigificantly harder to update individual components of
>   such an image.  Making it hard to update a kernel is obviously a
>   serious security risk.
> 
> - This makes it impossible to build an OS install image that works om
>   multiple boards/SoCs.
> 
> > EBBR should be truly optional, enabled only by boards that use it. Most
> > don't use it but it is enabled anyway. The default boot path should be
> > one that makes use of the existing U-Boot support.
> 
> I don't particularly care about EBBR myself, but EFI_LOADER should be
> the default for as many armv7/arm64/riscv U-Boot targets as possible
> to give users an easy way to choose the OS they want to run on their
> machines.  That is the best way to guarantee that vendors ship their
> firmware with it enabled.
> 
> > To try to retify this situation, this series adds a new Kconfig option
> > for EBBR so that the naming is more explicit. Then EFI_LOADER is updated
> > to depend on it.
> 
> Isn't using the the term EBBR for non-ARM platforms misleading?

Not really, we are discussing with RISC-V atm and having platfomrs being
EBBR compliant.  In essence we don't desire EBBR to be an Arm only thing.

> EFI_LOADER is used much more widely.  Anyway, I disagree with this
> direction.
> 

Same here 

> If size really matters here, we should look at reducing the EFI_LOADER
> feature set to reduce the amount of code i adds, and maybe introduce
> an EBBR option that can be enabled by those boards that desire full
> EBBR compliance?

+1

[...]

  reply	other threads:[~2021-06-28  9:00 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-28  1:48 [PATCH 0/7] efi: Various tidy-ups and drop the default Simon Glass
2021-06-28  1:48 ` [PATCH 1/7] configs: Resync with savedefconfig Simon Glass
2021-06-28  1:48 ` [PATCH 2/7] Makefile: Drop include/asm directory as well as symlink Simon Glass
2021-06-28  1:48 ` [PATCH 3/7] disk: Tidy up #ifdefs in part_efi Simon Glass
2021-06-28 11:20   ` Heinrich Schuchardt
2021-06-28 13:50     ` Tom Rini
2021-06-28 16:18       ` Heinrich Schuchardt
2021-06-28  1:48 ` [PATCH 4/7] Use LIB_UUID with ACPIGEN and FS_BTRFS Simon Glass
2021-06-28  1:48 ` [PATCH 5/7] Allow efi_loader header to be included always Simon Glass
2021-06-28 11:02   ` Heinrich Schuchardt
2021-06-28  1:48 ` [PATCH 6/7] lib: Create a new Kconfig option for charset conversion Simon Glass
2021-06-28 10:37   ` Heinrich Schuchardt
2021-06-28  1:48 ` [PATCH 7/7] efi: Make EBBR optional Simon Glass
2021-06-28  9:48   ` Heinrich Schuchardt
2021-06-28 13:48     ` Tom Rini
2021-06-28  8:38 ` [PATCH 0/7] efi: Various tidy-ups and drop the default Mark Kettenis
2021-06-28  8:59   ` Ilias Apalodimas [this message]
2021-06-28 13:37   ` Tom Rini
2021-06-28 14:18     ` Simon Glass
2021-06-28 15:20       ` Heinrich Schuchardt
2021-06-28 16:26         ` Simon Glass
2021-06-28 17:09           ` Heinrich Schuchardt
2021-06-28 18:02             ` Simon Glass
2021-06-28 17:27           ` Tom Rini
2021-06-28 18:08             ` Simon Glass
2021-06-29 12:56               ` AKASHI Takahiro
2021-06-29 14:01                 ` Heinrich Schuchardt
2021-06-29 14:14                   ` AKASHI Takahiro
2021-06-28 17:49       ` Mark Kettenis
2021-07-02 19:05         ` Simon Glass
2021-07-02 19:48           ` Mark Kettenis
2021-07-02 20:09             ` Tom Rini
2021-07-02 20:47             ` Simon Glass
2021-06-28 14:25     ` Heinrich Schuchardt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YNmPhIhBnPSTSgUm@iliass-mbp \
    --to=ilias.apalodimas@linaro.org \
    --cc=agraf@csgraf.de \
    --cc=mark.kettenis@xs4all.nl \
    --cc=pali@kernel.org \
    --cc=sjg@chromium.org \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    --cc=xypron.glpk@gmx.de \
    --cc=yamada.masahiro@socionext.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox