
Hi Tom,
On Tue, 6 Aug 2024 at 15:19, Tom Rini trini@konsulko.com wrote:
On Tue, Aug 06, 2024 at 03:12:47PM -0600, Simon Glass wrote:
Hi Tom,
On Fri, 2 Aug 2024 at 12:32, Tom Rini trini@konsulko.com 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.
BTW the "No UEFI binary known at 200000" is that hack that I would really like to improve on, by updating bootstd to keep track of which images are loaded.
I don't know, if I think about this I get worried that "bootFOO $address" needs to know something more than "look at $address and check if it's valid".
Yes, that is the problem with EFI loader at the moment. But basically it just wants to know what device the file came from, which we can (over time) clean up so that it is part of bootstd and uses proper APIs. Random loads within scripts are perhaps another matter...
Regards, Simon