On Mon, Aug 05, 2024 at 08:18:09PM +0200, Jerome Forissier wrote: > > > On 8/2/24 20:32, Tom Rini wrote: > > On Fri, Aug 02, 2024 at 06:26:27PM +0200, Jerome Forissier wrote: > > > >> This is a rework of a patch series by Maxim Uvarov: "net/lwip: add lwip > >> library for the network stack" [1]. The goal is to introduce the lwIP > >> TCP/IP > >> stack [2] [3] as an alternative to the current implementation in net/, > >> selectable with Kconfig, and ultimately keep only lwIP if possible. Some > >> reasons for doing so are: > >> - Make the support of HTTPS in the wget command easier. Javier T. and > >> Raymond M. (CC'd) have some additional lwIP and Mbed TLS patches to do > >> so. With that it becomes possible to fetch and launch a distro installer > >> such as Debian etc. using a secure, authenticated connection directly > >> from the U-Boot shell. Several use cases: > >> * Authentication: prevent MITM attack (third party replacing the > >> binary with a different one) > >> * Confidentiality: prevent third parties from grabbing a copy of the > >> image as it is being downloaded > >> * Allow connection to servers that do not support plain HTTP anymore > >> (this is becoming more and more common on the Internet these days) > >> - Possibly benefit from additional features implemented in lwIP > >> - Less code to maintain in U-Boot > >> > >> Prior to applying this series, the lwIP stack needs to be added as a > >> Git subtree with the following command: > >> > >> $ git subtree add --squash --prefix lib/lwip/lwip > >> https://git.savannah.gnu.org/git/lwip.git STABLE-2_2_0_RELEASE > > > > On Pi 3 I'm again / still seeing: > > ========================================== FAILURES > > =========================================== > > ___________________________________ test_efi_helloworld_net > > ___________________________________ > > test/py/tests/test_efi_loader.py:163: in test_efi_helloworld_net > > assert expected_text in output > > E AssertionError: assert 'Hello, world' in 'No UEFI binary known at > > 200000' > > ------------------------------------ Captured stdout call > > ------------------------------------- > > U-Boot> tftpboot 200000 EFI/arm64/helloworld.efi > > Using smsc95xx_eth device > > TFTP from server 192.168.1.10; our IP address is 192.168.1.100 > > Filename 'EFI/arm64/helloworld.efi'. > > Load address: 0x200000 > > Loading: # > > 883.8 KiB/s > > done > > Bytes transferred = 4528 (11b0 hex) > > U-Boot> U-Boot> crc32 200000 $filesize > > crc32 for 00200000 ... 002011af ==> 2b466005 > > U-Boot> U-Boot> bootefi 200000 > > No UEFI binary known at 200000 > > U-Boot> > > =================================== short test summary info > > =================================== > > > > On a configuration that works fine with the legacy network stack. > > > > That was caused by a missing call to efi_set_bootdev() in tftp_loop() > (net/lwip/tftp.c). Fixed in v8.
Thanks. > I also fixed a similar issue with wget (net/lwip/wget.c) but I > noticed that the NET version of wget has the same issue: > > 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> > > Should I also fix it in the same way? Or did I miss something? How > are you supposed to boot an EFI image downloaded via wget? A lack of tests for wget + EFI is how we got here, so thanks for finding the bug. For the sake of cleaner tests, can you please fix the legacy one as well, and add a test similar to the tftp one, but for wget? -- Tom
signature.asc
Description: PGP signature