public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: AKASHI Takahiro <takahiro.akashi@linaro.org>
To: Mark Kettenis <mark.kettenis@xs4all.nl>
Cc: Fran??ois Ozog <francois.ozog@linaro.org>,
	sjg@chromium.org, xypron.glpk@gmx.de,
	ilias.apalodimas@linaro.org, masahisa.kojima@linaro.org,
	u-boot@lists.denx.de
Subject: Re: efi bootmenu
Date: Thu, 6 Jan 2022 12:02:03 +0900	[thread overview]
Message-ID: <20220106030203.GA45004@laputa> (raw)
In-Reply-To: <d3cb7adcdff6d679@bloch.sibelius.xs4all.nl>

On Wed, Dec 29, 2021 at 05:04:17PM +0100, Mark Kettenis wrote:
> > From: François Ozog <francois.ozog@linaro.org>
> > Date: Wed, 29 Dec 2021 14:39:36 +0100
> > 
> > HI Simon
> > 
> > On Wed, 29 Dec 2021 at 14:36, Simon Glass <sjg@chromium.org> wrote:
> > 
> > > Hi François,
> > >
> > > On Tue, 28 Dec 2021 at 03:15, François Ozog <francois.ozog@linaro.org>
> > > wrote:
> > > >
> > > >
> > > >
> > > > Le mar. 28 déc. 2021 à 09:32, Simon Glass <sjg@chromium.org> a écrit :
> > > >>
> > > >> Hi Masahisa,
> > > >>
> > > >> On Tue, 21 Dec 2021 at 00:37, Masahisa Kojima
> > > >> <masahisa.kojima@linaro.org> wrote:
> > > >> >
> > > >> > Hi Takahiro,
> > > >> >
> > > >> > On Tue, 21 Dec 2021 at 11:47, Takahiro Akashi
> > > >> > <takahiro.akashi@linaro.org> wrote:
> > > >> > >
> > > >> > > On Mon, Dec 20, 2021 at 06:25:05PM +0900, Masahisa Kojima wrote:
> > > >> > > > Hi Heinrich, Ilias, Akashi-san,
> > > >> > > >
> > > >> > > > Ilias and I are now discussing to create efi bootmenu, almost
> > > similar
> > > >> > > > to UiApp in EDK2.
> > > >> > >
> > > >> > > Why not discuss this topic openly in ML?
> > > >> >
> > > >> > Yes, I included U-Boot ML.(Sorry, I should include from the the
> > > beginning.)
> > > >> >
> > > >> > >
> > > >> > > How is this feature related to Simon's bootmethod proposal?
> > > >> >
> > > >> > If I correctly understand Simon's bootmethod proposal,
> > > >> > the difference is that efi bootmenu only targets to implement
> > > >> > the menu based UI to select/edit/add/delete "Boot####" and
> > > "BootOrder".
> > > >>
> > > >> Yes, EFI would be one of the bootmethods. Others would be U-Boot
> > > >> scripts, Chrome OS, Android, etc. plus people might add custom ones.
> > > >>
> > > >> Also I am thinking that (perhaps) the bootdev part of the standard
> > > >> boot thing could be used to provide boot devices for EFI.
> > > >>
> > > >> If we do have a bootmenu, I wonder if it could be generic, instead of
> > > >> tied to EFI?
> > > >
> > > > EFI BootXXXX specify an array of device paths and boot options. A device
> > > path is quite a unique construct despite its name.
> > > > A device path is itself an array of elements, some elements can be a
> > > file path , configuration information, or diverse metadata. An example of
> > > configuration information element is UART baud,stop bits, parity along with
> > > terminal (vt100, ansi…). Another device path element can cover IP address,
> > > transport information (tcp, UDP and port number).
> > > > The traditional EFI boot menu is quite crude and does not expose the
> > > full capabilities of BootXXXX (lacks edit of boot options for instance!).
> > > >
> > > > In the long run we will need to leverage all the BootXXXX capabilities
> > > and those are EFI specific while being OS agnostic.
> > > > The other U-Boot boot methods (Android , ChromeOS…) are OS specific.
> > > > The goals are thus very different and making a generic approach seems
> > > quite compromised. If there is a fully generic framework available in the
> > > future, it may be possible to integrate the EFI boot menu. But at least
> > > there is a need to solve, code first, the EFI complexities to fuel the
> > > generic architecture discussion.
> > >
> > > Despite this, the goal of standard boot is to encompass all of this
> > > within U-Boot. I believe that it will be successful, even if the path
> > > at present is a bit unclear.
> > >
> > So I would suggest we work bottom up. Starting by making EFI menu work,
> > then extend it more generic or integrated it in a framework. Starting top
> > down would require a long architecture process based on not enough known
> > problems to solve for each environment.
> > 
> 
> Well, whatever you do, please build something that works well with a
> serial console.  EDK2 makes assumptions the terminal emulation on the
> other side, insists on changing the colors to white on black and
> relies on function keys that need escape sequences.  And escape
> sequences over serial are always iffy since they depend on timing for
> their interpretation.  You can do better for U-Boot.
> 
> Also, keep in mind that BootOrder and Boot#### only really work if
> there is runtime EFI variable support.  So the boot menu should
> include options to select a device to boot from and use the default
> (removable media) bootloader from the ESP on that device.

I think that this issue can/should be addressed in a separate patch
although I have had no progress on my patch[1].

-Takahiro Akashi

[1] https://lists.denx.de/pipermail/u-boot/2021-November/466583.html

> And a way
> to make this selection stick!  Pretty much all x86 EFI implementations
> provide functionality like that.  I suppose this could be done by
> populating the EFI variable store with appropriate Boot#### variables
> and manipulating BootOrder.  But that would make it hard to generalize
> the boot menu to non-EFI boot flows.

  parent reply	other threads:[~2022-01-06  3:02 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CADQ0-X_vOJoFbv8s8U_GvDXZUAviYw6wX4S0D9sb+PeYyBYTXw@mail.gmail.com>
     [not found] ` <20211221024709.GC40272@laputa>
2021-12-21  7:37   ` efi bootmenu Masahisa Kojima
2021-12-28  8:31     ` Simon Glass
2021-12-28 10:14       ` François Ozog
2021-12-29 13:36         ` Simon Glass
2021-12-29 13:39           ` François Ozog
2021-12-29 16:04             ` Mark Kettenis
2022-01-05  8:52               ` Heinrich Schuchardt
2022-01-06 13:14                 ` Mark Kettenis
2022-01-07  9:20                   ` Ilias Apalodimas
2022-01-08 14:53                     ` Simon Glass
2022-01-06  3:02               ` AKASHI Takahiro [this message]
2022-01-06 10:38                 ` Masahisa Kojima

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=20220106030203.GA45004@laputa \
    --to=takahiro.akashi@linaro.org \
    --cc=francois.ozog@linaro.org \
    --cc=ilias.apalodimas@linaro.org \
    --cc=mark.kettenis@xs4all.nl \
    --cc=masahisa.kojima@linaro.org \
    --cc=sjg@chromium.org \
    --cc=u-boot@lists.denx.de \
    --cc=xypron.glpk@gmx.de \
    /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