[PATCH v8 03/23] net: wget: allow EFI boot
Jerome Forissier
jerome.forissier at linaro.org
Fri Aug 9 14:38:36 CEST 2024
On 8/9/24 12:53, Ilias Apalodimas wrote:
> On Wed, 7 Aug 2024 at 20:12, Jerome Forissier
> <jerome.forissier at linaro.org> wrote:
>>
>> 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 at linaro.org>
>> ---
>> net/wget.c | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/net/wget.c b/net/wget.c
>> index 0e4dc5159d0..cf7681a4e79 100644
>> --- a/net/wget.c
>> +++ b/net/wget.c
>> @@ -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>
>> @@ -429,6 +430,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);
>
> Don't you need an unmap_sysmem() once this completes?
I wondered the same thing but where should the unmap call happen?
This pattern exists in boot/bootmeth_efi.c, cmd/load.c, fs/fs.c and net/tftp.c.
In this series I have blindly copied it into net/wget.c and net/lwip/wget.c and
net/lwip/tftp.c as well. It seems it does somthing in the sandbox only so do we
really care?
Thanks,
--
Jerome
>
> Thanks
> /Ilias
>> break;
>> }
>> }
>> --
>> 2.40.1
>>
More information about the U-Boot
mailing list