]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
net: wget: allow EFI boot
authorJerome Forissier <jerome.forissier@linaro.org>
Wed, 11 Sep 2024 09:58:22 +0000 (11:58 +0200)
committerTom Rini <trini@konsulko.com>
Tue, 24 Sep 2024 19:41:21 +0000 (13:41 -0600)
wget followed by bootefi currently fails as follows:

 U-Boot> wget 200000 192.168.0.30:helloworld.efi
 Waiting for Ethernet connection... done.
 HTTP/1.0 200 OK
 Packets received 13, Transfer Successful
 Bytes transferred = 12720 (31b0 hex)
 U-Boot> bootefi 200000
 No UEFI binary known at 200000
 U-Boot>

Fix the problem by adding the missing efi_set_bootdev() call.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
net/wget.c

index 6ebf9bca0d89b40365494b593d5b1a104f18d0ab..c8cce554c5eeda1211f942d484544e245f36c448 100644 (file)
@@ -8,6 +8,7 @@
 #include <command.h>
 #include <display_options.h>
 #include <env.h>
+#include <efi_loader.h>
 #include <image.h>
 #include <lmb.h>
 #include <mapmem.h>
@@ -425,6 +426,9 @@ static void wget_handler(uchar *pkt, u16 dport,
        case WGET_TRANSFERRED:
                printf("Packets received %d, Transfer Successful\n", packets);
                net_set_state(wget_loop_state);
+               efi_set_bootdev("Net", "", image_url,
+                               map_sysmem(image_load_addr, 0),
+                               net_boot_file_size);
                break;
        }
 }