Message ID | 20241114172007.2074874-1-jerome.forissier@linaro.org |
---|---|
State | New |
Headers | show |
Series | [v2] net: lwip: dhcp: support arguments for TFTP file download | expand |
On Thu, Nov 14, 2024 at 06:20:07PM +0100, Jerome Forissier wrote: > The dhcp command is supposed to have the following syntax as per > "help dhcp": > > dhcp [loadAddress] [[hostIPaddr:]bootfilename] > > In other words, any arguments should be passed to an implicit > tftpboot command after the DHCP exchange has occurred. > > Add the missing code to the lwIP version of do_dhcp(). > > Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Applied to u-boot/master, thanks! But please note, I believe this is what breaks test_efi_helloworld_net_http now as we can no longer abuse "wget 200000 EFI/arm64/helloworld.efi" for example: U-Boot> wget 200000 EFI/arm64/helloworld.efi invalid uri, no file path Invalid URL. Use http(s):// U-Boot>
Hi Tom, On 11/23/24 03:42, Tom Rini wrote: > On Thu, Nov 14, 2024 at 06:20:07PM +0100, Jerome Forissier wrote: > >> The dhcp command is supposed to have the following syntax as per >> "help dhcp": >> >> dhcp [loadAddress] [[hostIPaddr:]bootfilename] >> >> In other words, any arguments should be passed to an implicit >> tftpboot command after the DHCP exchange has occurred. >> >> Add the missing code to the lwIP version of do_dhcp(). >> >> Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> > > Applied to u-boot/master, thanks! > > But please note, I believe this is what breaks > test_efi_helloworld_net_http now as we can no longer abuse "wget 200000 > EFI/arm64/helloworld.efi" for example: > U-Boot> wget 200000 EFI/arm64/helloworld.efi > invalid uri, no file path > Invalid URL. Use http(s):// > U-Boot> That's actually caused by commit 356011f7ac25 ("lwip: fix code style issues") :-/ I've just sent a fix [1]. Sorry for the breakage. [1] https://lists.denx.de/pipermail/u-boot/2024-November/573054.html Thanks,
diff --git a/net/lwip/dhcp.c b/net/lwip/dhcp.c index 23b56226921..281f4620958 100644 --- a/net/lwip/dhcp.c +++ b/net/lwip/dhcp.c @@ -111,9 +111,21 @@ static int dhcp_loop(struct udevice *udev) int do_dhcp(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { + int ret; + eth_set_current(); - return dhcp_loop(eth_get_dev()); + ret = dhcp_loop(eth_get_dev()); + if (ret) + return ret; + + if (argc > 1) { + struct cmd_tbl cmdtp = {}; + + return do_tftpb(&cmdtp, 0, argc, argv); + } + + return CMD_RET_SUCCESS; } int dhcp_run(ulong addr, const char *fname, bool autoload)
The dhcp command is supposed to have the following syntax as per "help dhcp": dhcp [loadAddress] [[hostIPaddr:]bootfilename] In other words, any arguments should be passed to an implicit tftpboot command after the DHCP exchange has occurred. Add the missing code to the lwIP version of do_dhcp(). Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> --- net/lwip/dhcp.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-)