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.
next prev 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