diff options
author | Simon Glass <sjg@chromium.org> | 2025-01-23 15:07:24 -0700 |
---|---|---|
committer | Heinrich Schuchardt <heinrich.schuchardt@canonical.com> | 2025-01-26 11:06:57 +0100 |
commit | 21de624eb89c647a21b06a5b0f5b186838be1d17 (patch) | |
tree | 460b9a426fc254b7fd9f4048dabccfb54822ba02 /lib/efi_loader/efi_bootbin.c | |
parent | a2338955fc1d3bb6de86ab4fb6e7c55ff189f4f0 (diff) |
bootmeth_efi: Support PXE booting
Finish off the implementation so it is possible to boot an EFI app over
a network.
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'lib/efi_loader/efi_bootbin.c')
-rw-r--r-- | lib/efi_loader/efi_bootbin.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/efi_loader/efi_bootbin.c b/lib/efi_loader/efi_bootbin.c index fdde536af7a..10ec5e9ada3 100644 --- a/lib/efi_loader/efi_bootbin.c +++ b/lib/efi_loader/efi_bootbin.c @@ -302,6 +302,9 @@ static const char *calc_dev_name(struct bootflow *bflow) media_dev = dev_get_parent(bflow->dev); if (!bflow->blk) { + if (device_get_uclass_id(media_dev) == UCLASS_ETH) + return "Net"; + log_err("Cannot boot EFI app on media '%s'\n", dev_get_uclass_name(media_dev)); @@ -342,7 +345,7 @@ efi_status_t efi_bootflow_run(struct bootflow *bflow) ret = calculate_paths(dev_name, devnum_str, bflow->fname, &device, &image); if (ret) - return ret; + return EFI_UNSUPPORTED; if (bflow->flags & BOOTFLOWF_USE_BUILTIN_FDT) { log_debug("Booting with built-in fdt\n"); |