[PATCH v4 00/14] Introduce the lwIP network stack

Tom Rini trini at konsulko.com
Tue Jun 18 22:21:23 CEST 2024


On Mon, Jun 17, 2024 at 05:32:52PM +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. 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

So, on a Pi 3 (rpi_3_defconfig) I see this now (and it passes normally):
========================================== 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:
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 =================================== 
If I disable that test, it moves on to failing the same exact way for
grub. If I disable the grub test too. After that, oh, a bunch of other
tests get skipped because CMD_NET and similar aren't enabled now, and
the tests are wrong. I'll post that as another patch by itself. After
correcting for that, we're seemingly noticeably slower as I need to
increase the timeout for tftp'ing my 83MiB FIT image I use for kernel
testing. We no longer have the estimated speed message, so I can't as
easily say how much slower it is. After increasing the timeout, the
kernel boot test does work.

I can note that normally it takes ~18ms to get a dhcp reply, but with
lwIP it's now 132ms, and previously the kernel loaded at 2.7MiB/s
(which, not great) but if that has a similar level of slowdown, could
well explain it.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20240618/513e8282/attachment.sig>


More information about the U-Boot mailing list