[PATCH] efi_loader: Run dhcp if an http boot option is selected
Michal Simek
michal.simek at amd.com
Fri May 23 17:06:22 CEST 2025
On 5/23/25 15:04, Ilias Apalodimas wrote:
> The EFI boot manager relies on having an IP address before trying to
> boot an EFI HTTP(s) boot entry. However, defining it as a boot or
> pre-boot command is not always the right answer since it will
> unconditionally add delay to the board boot, even if we don't boot
> over the network.
>
> So let's do a DHCP request from the boot manager, if 'ipaddr' is
> empty and fail early if we don't have an address.
>
> Signed-off-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>
> ---
> lib/efi_loader/efi_bootmgr.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/lib/efi_loader/efi_bootmgr.c b/lib/efi_loader/efi_bootmgr.c
> index c0df5cb9acd9..2076630648f7 100644
> --- a/lib/efi_loader/efi_bootmgr.c
> +++ b/lib/efi_loader/efi_bootmgr.c
> @@ -479,6 +479,13 @@ static efi_status_t try_load_from_uri_path(struct efi_device_path_uri *uridp,
> if (!ctx)
> return EFI_OUT_OF_RESOURCES;
>
> + s = env_get("ipaddr");
> + if (!s && dhcp_run(0, NULL, false)) {
> + log_err("Error: Can't find a valid IP address\n");
> + ret = EFI_DEVICE_ERROR;
> + goto err;
> + }
> +
> s = env_get("loadaddr");
> if (!s) {
> log_err("Error: loadaddr is not set\n");
> --
> 2.49.0
>
Tested-by: Michal Simek <michal.simek at amd.com>
Thanks,
Michal
More information about the U-Boot
mailing list