
On 5/27/24 17:34, Tom Rini wrote:
On Fri, May 24, 2024 at 06:19:54PM +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. (CC'd)
has 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. directly from the U-Boot shell.
- Possibly benefit from additional features implemented in lwIP
- Less code to maintain in U-Boot
The first patch introduces a new Kconfig symbol: NET_LWIP, which selects the lwIP implementation instead of the current one (NET). Contrary to the approach chosen by Maxim in [1], NET_LWIP and NET cannot be enabled simultaneously. The rationale is we want to start from a clean state and not pull potentially duplicated functionality from both stacks. Note however that a few files are still built in net/, they are the ones related to ethernet device management and the ethernet bootflow.
The second patch imports the lwIP code as a Git subtree under lib/lwip/lwip. Some glue code is added under lib/lwip/u-boot.
For next time, please just make it a pre-req to run the git subtree command (and note it in the cover letter).
In more specific feedback, I tried this on a Pi 3, and: U-Boot> tftpboot 200000 EFI/arm64/helloworld.efi TFTP from server 192.168.1.10; our IP address is 192.168.1.100 Filename 'EFI/arm64/helloworld.efi'. Load address: 0x200000 Loading: .... FAILED test/py/tests/test_efi_loader.py::test_efi_helloworld_net - u_boot_spawn.Timeout
So some amount of networking is working (that's a reasonable dhcp response it got), but tftp'ing a file fails.
Thanks for testing! This fails because I changed the command output. The legacy command prints "Bytes transferred =" while the newer one prints "%lu bytes transferred" plus throughput information. I will use the older message in v3 because several tests as well as documentation would need updating. We'll do that later if desired.
Thanks,