All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ilias Apalodimas <ilias.apalodimas@linaro.org>
To: Raymond Mao <raymond.mao@linaro.org>
Cc: u-boot@lists.denx.de, Heinrich Schuchardt <xypron.glpk@gmx.de>,
	Simon Glass <sjg@chromium.org>,
	Masahisa Kojima <masahisa.kojima@linaro.org>
Subject: Re: [PATCH v4 2/3] Boot var automatic management for removable medias
Date: Thu, 25 May 2023 16:55:26 +0300	[thread overview]
Message-ID: <ZG9oznUmO8eG5l1X@hera> (raw)
In-Reply-To: <20230523191819.80258-2-raymond.mao@linaro.org>

On Tue, May 23, 2023 at 12:18:20PM -0700, Raymond Mao wrote:
> Changes for complying to EFI spec §3.5.1.1
> 'Removable Media Boot Behavior'.
> Boot variables can be automatically generated during a removable
> media is probed. At the same time, unused boot variables will be
> detected and removed.
>
> Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
> ---
> Changes in v2
> - Ignore EFI_NOT_FOUND returned from
>   efi_bootmgr_update_media_device_boot_option which means no boot
>   options scanned.
> Changes in v3
> - Split the patch into moving and renaming functions and
>   individual patches for each changed functionality
> Changes in v4
> - Revert the change of introducing a bool parameter when updating
>   the boot option. Use short-form of device path by default
>
>  lib/efi_loader/efi_disk.c         |  7 +++++++
>  lib/efi_loader/efi_variable.c     | 10 +++++++++-
>  lib/efi_loader/efi_variable_tee.c |  5 +++++
>  3 files changed, 21 insertions(+), 1 deletion(-)
>
> diff --git a/lib/efi_loader/efi_disk.c b/lib/efi_loader/efi_disk.c
> index d2256713a8..ca5f07f2ec 100644
> --- a/lib/efi_loader/efi_disk.c
> +++ b/lib/efi_loader/efi_disk.c
> @@ -687,6 +687,13 @@ int efi_disk_probe(void *ctx, struct event *event)
>  			return -1;
>  	}
>
> +	/* only do the boot option management when UEFI sub-system is initialized */
> +	if (efi_obj_list_initialized == EFI_SUCCESS) {
> +		ret = efi_bootmgr_update_media_device_boot_option();
> +		if (ret != EFI_SUCCESS && ret != EFI_NOT_FOUND)
> +			return -1;
> +	}
> +
>  	return 0;
>  }
>
> diff --git a/lib/efi_loader/efi_variable.c b/lib/efi_loader/efi_variable.c
> index be95ed44e6..fe71144358 100644
> --- a/lib/efi_loader/efi_variable.c
> +++ b/lib/efi_loader/efi_variable.c
> @@ -476,6 +476,14 @@ efi_status_t efi_init_variables(void)
>  			log_err("Invalid EFI variable seed\n");
>  	}
>
> +	ret = efi_init_secure_state();
> +	if (ret != EFI_SUCCESS)
> +		return ret;
>
> -	return efi_init_secure_state();
> +	/* update boot option management after variable service initialized */
> +	ret = efi_bootmgr_update_media_device_boot_option();
> +	if (ret != EFI_SUCCESS && ret != EFI_NOT_FOUND)
> +		return ret;
> +
> +	return EFI_SUCCESS;
>  }
> diff --git a/lib/efi_loader/efi_variable_tee.c b/lib/efi_loader/efi_variable_tee.c
> index dfef18435d..2995d4a583 100644
> --- a/lib/efi_loader/efi_variable_tee.c
> +++ b/lib/efi_loader/efi_variable_tee.c
> @@ -748,5 +748,10 @@ efi_status_t efi_init_variables(void)
>  	if (ret != EFI_SUCCESS)
>  		return ret;
>
> +	/* update boot option management after variable service initialized */
> +	ret = efi_bootmgr_update_media_device_boot_option();
> +	if (ret != EFI_SUCCESS && ret != EFI_NOT_FOUND)
> +		return ret;
> +
>  	return EFI_SUCCESS;

Instead of having to add identical code in the variable init code why dont
we add this in efi_setup.c, right under the efi_init_variables() call?

Thanks
/Ilias
>  }
> --
> 2.25.1
>

  reply	other threads:[~2023-05-25 13:55 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-23 19:18 [PATCH v4 1/3] Move bootorder and bootoption apis to lib Raymond Mao
2023-05-23 19:18 ` [PATCH v4 2/3] Boot var automatic management for removable medias Raymond Mao
2023-05-25 13:55   ` Ilias Apalodimas [this message]
2023-05-25 16:42     ` Raymond Mao
2023-05-25 19:07       ` Ilias Apalodimas
2023-05-23 19:18 ` [PATCH v4 3/3] Load option with short device path for boot vars Raymond Mao
2023-05-25  7:12   ` Ilias Apalodimas
2023-05-26  6:25     ` Heinrich Schuchardt
2023-05-26  8:18       ` Ilias Apalodimas
2023-05-26  7:02 ` [PATCH v4 1/3] Move bootorder and bootoption apis to lib Heinrich Schuchardt
2023-05-26 15:41   ` Raymond Mao

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=ZG9oznUmO8eG5l1X@hera \
    --to=ilias.apalodimas@linaro.org \
    --cc=masahisa.kojima@linaro.org \
    --cc=raymond.mao@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 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.