Re: [PATCH v5 00/20] Introduce the lwIP network stack

Jerome Forissier
2024-07-30T14:23:11Z

On 7/30/24 16:02, Tom Rini wrote:
> On Tue, Jul 30, 2024 at 11:48:06AM +0200, Jerome Forissier wrote:
>>
>>
>> On 7/25/24 19:22, Tom Rini wrote:
>>> On Thu, Jul 25, 2024 at 02:57:21PM +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
>>>
>>> This is better than v4, and on the hardware platforms I could build and
>>> boot on (which was most of mine except the am62x_beagleplay), the tests
>>> ran and completed, including the tftp+boot a Linux kernel.
>>>
>>> The bad news is CI blows up, a lot:
>>> https://source.denx.de/u-boot/u-boot/-/pipelines/21764
>>
>> They're all failing with: undefined reference to `tftp_start'
>> The reason is I inadvertently removed the 'default y' on CMD_TFTPBOOT :/
>> Fixed in v6.
>>
>>> And:
>>> https://dev.azure.com/u-boot/a1096300-2999-4ec4-a21a-4c22075e3771/_apis/build/builds/9014/logs/106
>>> which is another Kconfig dependency problem. I don't _think_ I
>>> introduced that, but since this wasn't against top of tree, I had to
>>> apply the cmd/Kconfig patch manually.
>>
>> What's the build command? I can see:
>>
>> /bin/bash --noprofile --norc /Users/runner/work/_temp/9710a6d2-6670-4f76-81bc-990cc45b1898.sh
>>
>> ...but that's not super helpful ;)
>
> make tools-only_defconfig or so, sorry.

Thanks. With this config on my build machine, v5 fails with
'CONFIG_SYS_RX_BUFFER undeclared here'. It is an issue that you mentioned
(and which I fixed for v6) but it is not the same error reported in the CI.
Anyways with the SYS_RX_BUFFER issue fixed the build is now successful:

$ make tools-only_defconfig && make -s -j$(nproc) && echo OK
#
# configuration written to .config
#
OK

Thanks,
--
Jerome