All of lore.kernel.org
 help / color / mirror / Atom feed
From: AKASHI Takahiro <takahiro.akashi@linaro.org>
To: Heinrich Schuchardt <xypron.glpk@gmx.de>
Cc: u-boot@lists.denx.de, trini@konsulko.com, sjg@chromium.org,
	ilias.apalodimas@linaro.org
Subject: Re: [PATCH v2 03/12] cmd: bootefi: carve out EFI boot manager interface
Date: Tue, 21 Nov 2023 14:00:16 +0900	[thread overview]
Message-ID: <ZVw5YCx83nn3RgHW@octopus> (raw)
In-Reply-To: <fffc514b-a986-482c-a468-6d52598a046e@gmx.de>

On Tue, Nov 21, 2023 at 04:38:12AM +0100, Heinrich Schuchardt wrote:
> On 11/21/23 02:29, AKASHI Takahiro wrote:
> > Carve EFI boot manager related code out of do_bootefi_image() in order
> > to move boot manager specific code into library directory in the later
> > commit.
> > 
> > Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
> > ---
> >   cmd/bootefi.c | 43 ++++++++++++++++++++++++-------------------
> >   1 file changed, 24 insertions(+), 19 deletions(-)
> > 
> > diff --git a/cmd/bootefi.c b/cmd/bootefi.c
> > index e9e5ab67a1f5..87910c42333a 100644
> > --- a/cmd/bootefi.c
> > +++ b/cmd/bootefi.c
> > @@ -413,28 +413,40 @@ out:
> >   }
> > 
> >   /**
> > - * do_efibootmgr() - execute EFI boot manager
> > + * efi_bootmgr_run() - execute EFI boot manager
> > + * fdt:	Flat device tree
> > + *
> > + * Invoke EFI boot manager and execute a binary depending on
> > + * boot options. If @fdt is not NULL, it will be passed to
> > + * the executed binary.
> 
> How about the fallback to the control device-tree?

efi_install_fdt() will take care of that if fdt == EFI_FDT_INTERNAL_USE.
I didn't change any semantics.
I will add some description here to clarify it.

> How about booting with ACPI?

Not sure what is your concern, but
I didn't change any semantics in bootmgr use-case.

-Takahiro Akashi

> 
> Best regards
> 
> Heinrich
> 
> >    *
> >    * Return:	status code
> >    */
> > -static int do_efibootmgr(void)
> > +static efi_status_t efi_bootmgr_run(void *fdt)
> >   {
> >   	efi_handle_t handle;
> > -	efi_status_t ret;
> >   	void *load_options;
> > +	efi_status_t ret;
> > 
> > -	ret = efi_bootmgr_load(&handle, &load_options);
> > +	/* Initialize EFI drivers */
> > +	ret = efi_init_obj_list();
> >   	if (ret != EFI_SUCCESS) {
> > -		log_notice("EFI boot manager: Cannot load any image\n");
> > +		log_err("Error: Cannot initialize UEFI sub-system, r = %lu\n",
> > +			ret & ~EFI_ERROR_MASK);
> >   		return CMD_RET_FAILURE;
> >   	}
> > 
> > -	ret = do_bootefi_exec(handle, load_options);
> > -
> > +	ret = efi_install_fdt(fdt);
> >   	if (ret != EFI_SUCCESS)
> > -		return CMD_RET_FAILURE;
> > +		return ret;
> > 
> > -	return CMD_RET_SUCCESS;
> > +	ret = efi_bootmgr_load(&handle, &load_options);
> > +	if (ret != EFI_SUCCESS) {
> > +		log_notice("EFI boot manager: Cannot load any image\n");
> > +		return ret;
> > +	}
> > +
> > +	return do_bootefi_exec(handle, load_options);
> >   }
> > 
> >   /**
> > @@ -624,21 +636,14 @@ static int do_bootefi(struct cmd_tbl *cmdtp, int flag, int argc,
> > 
> >   	if (IS_ENABLED(CONFIG_CMD_BOOTEFI_BOOTMGR) &&
> >   	    !strcmp(argv[1], "bootmgr")) {
> > -		/* Initialize EFI drivers */
> > -		ret = efi_init_obj_list();
> > -		if (ret != EFI_SUCCESS) {
> > -			log_err("Error: Cannot initialize UEFI sub-system, r = %lu\n",
> > -				ret & ~EFI_ERROR_MASK);
> > -			return CMD_RET_FAILURE;
> > -		}
> > +		ret = efi_bootmgr_run(fdt);
> > 
> > -		ret = efi_install_fdt(fdt);
> >   		if (ret == EFI_INVALID_PARAMETER)
> >   			return CMD_RET_USAGE;
> > -		else if (ret != EFI_SUCCESS)
> > +		else if (ret)
> >   			return CMD_RET_FAILURE;
> > 
> > -		return do_efibootmgr();
> > +		return CMD_RET_SUCCESS;
> >   	}
> > 
> >   	if (IS_ENABLED(CONFIG_CMD_BOOTEFI_SELFTEST) &&
> 

  reply	other threads:[~2023-11-21  5:00 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-21  1:29 [PATCH v2 00/12] cmd: bootefi: refactor the code for bootmgr AKASHI Takahiro
2023-11-21  1:29 ` [PATCH v2 01/12] cmd: bootefi: unfold do_bootefi_image() AKASHI Takahiro
2023-11-21  1:29 ` [PATCH v2 02/12] cmd: bootefi: re-organize do_bootefi() AKASHI Takahiro
2023-11-21  3:31   ` Heinrich Schuchardt
2023-11-21  4:53     ` AKASHI Takahiro
2023-12-05  8:54       ` Ilias Apalodimas
2023-12-05  9:24         ` AKASHI Takahiro
2023-12-08  6:33           ` Ilias Apalodimas
2023-12-08  7:49             ` AKASHI Takahiro
2023-12-17 12:00   ` Heinrich Schuchardt
2023-12-17 12:03     ` Heinrich Schuchardt
2023-11-21  1:29 ` [PATCH v2 03/12] cmd: bootefi: carve out EFI boot manager interface AKASHI Takahiro
2023-11-21  3:38   ` Heinrich Schuchardt
2023-11-21  5:00     ` AKASHI Takahiro [this message]
2023-11-21  1:29 ` [PATCH v2 04/12] cmd: bootefi: carve out binary execution interface AKASHI Takahiro
2023-11-21  1:29 ` [PATCH v2 05/12] cmd: bootefi: localize global device paths for efi_selftest AKASHI Takahiro
2023-11-21  1:29 ` [PATCH v2 06/12] cmd: bootefi: move library interfaces under lib/efi_loader AKASHI Takahiro
2023-12-17 10:49   ` Heinrich Schuchardt
2023-12-17 11:51   ` Heinrich Schuchardt
2023-11-21  1:29 ` [PATCH v2 07/12] cmd: efidebug: ease efi configuration dependency AKASHI Takahiro
2023-11-21  1:29 ` [PATCH v2 08/12] bootmeth: use efi_loader interfaces instead of bootefi command AKASHI Takahiro
2023-11-21  1:29 ` [PATCH v2 09/12] efi_loader: split unrelated code from efi_bootmgr.c AKASHI Takahiro
2023-11-21  1:29 ` [PATCH v2 10/12] efi_loader: rename BOOTEFI_BOOTMGR to EFI_BOOTMGR AKASHI Takahiro
2023-11-21  1:29 ` [PATCH v2 11/12] net: tftp: remove explicit efi configuration dependency AKASHI Takahiro
2023-11-21  1:29 ` [PATCH v2 12/12] fs: " AKASHI Takahiro
2023-12-04  1:58 ` [PATCH v2 00/12] cmd: bootefi: refactor the code for bootmgr AKASHI Takahiro
2023-12-04  6:16   ` Ilias Apalodimas

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=ZVw5YCx83nn3RgHW@octopus \
    --to=takahiro.akashi@linaro.org \
    --cc=ilias.apalodimas@linaro.org \
    --cc=sjg@chromium.org \
    --cc=trini@konsulko.com \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.