[PATCHv9 00/15] net/lwip: add lwip library for the network stack
Ilias Apalodimas
ilias.apalodimas at linaro.org
Fri Sep 15 10:07:15 CEST 2023
Hi Maxim,
On Thu, 14 Sept 2023 at 19:20, Maxim Uvarov <maxim.uvarov at linaro.org> wrote:
>
> changelog:
> v9: - added first patch describing git submodule for lwip. So
> the build procedure is:
> git submodule init
> git submodule update
> make
> - reworked a little bit dhcp cmd state polling
> - fixed review comments for v8
> v8: - comments for previous review
> - removed lwip timeout callback pointer
> - made lwip timeouts works, that also allowed to remove
> static vars.
> - setenv for filesize tftp and wget has to be in hex.
> - Makefile changes always compile it tftp,dns,wget,ping due
> to it can be used not only by CONFIG_CMD_.
> - Kconfig changes - simplify lwIP settings and support only
> one configuration.
> - tested with mini debian.iso load over http or tftp, mount
> and boot it (qemu, arm64).
> v7: - more review fixes.
> - support of multiply eth devices, were "ethact" selects the
> active device.
> v6: - fixed review comments for v5 (thanks Ilias and Simon).
> v5: - fixed Iliases comments and split big patch on the small
> ones.
> v4: - tested with tests/py/ did some minor fixes (out of tree
> build, variables set after downloads).
> - accounted review comments for documentation.
> - implemented dns command
> - corrected wget command to not use serverip variable and use just
> url string.
> v3: - use lwip commands for ping,tftp,wget,dhcp if this patch
> applied. Drop CONFIG_LIB_LWIP_REPLACE_<COMMAND> option.
> - docs: use rst variant and drop references to RFC.
Something is wrong with the current implementation and I suspect it's
partially due to callbacks.
If you spawn a qemu with '-device virtio-net-pci,netdev=net0 -netdev
tap,id=net0', assign ip addresses and try a tftp this initially works
=> tftp synquacer_fw.capsule
eth0: virtio-net#33 52:52:52:52:52:52 active
TFTP from server 10.10.10.2; our IP address is 10.10.10.1
Filename 'synquacer_fw.capsule'.
Load address: 0x40200000
Loading:#######################
[...]
However, if you do a ping first the output looks like this
=> ping 10.10.10.2
eth0: virtio-net#33 52:52:52:52:52:52 active
Using virtio-net#33 device
pinging addr: 10.10.10.2
host 10.10.10.2 a alive
1 ms
=> tftp synquacer_fw.capsule
init already done for virtio-net#33
TFTP from server 10.10.10.2; our IP address is 10.10.10.1
Filename 'synquacer_fw.capsule'.
Load address: 0x40200000
Loading:ping failed; host �Hi> is not alive
host 10.10.10.2 a alive
0 ms
=>
Thanks
/Ilias
>
>
> Maxim Uvarov (15):
> submodule: add lwIP as git submodule
> net/lwip: add doc/develop/net_lwip.rst
> net/lwip: integrate lwIP library
> net/lwip: implement dns cmd
> net/lwip: implement dhcp cmd
> net/lwip: implement tftp cmd
> net/lwip: implement wget cmd
> net/lwip: implement ping cmd
> net/lwip: add lwIP configuration
> net/lwip: implement lwIP port to U-Boot
> net/lwip: update .gitignore with lwIP
> net/lwip: connection between cmd and lwip apps
> net/lwip: replace original net commands with lwip
> net/lwip: split net.h to net.h, arp.h and eth.h
> net/lwip: drop old net/wget
>
> .gitmodules | 3 +
> boot/bootmeth_efi.c | 18 +-
> boot/bootmeth_pxe.c | 21 +-
> cmd/Makefile | 1 +
> cmd/net-lwip.c | 286 +++++++++++++++++
> cmd/net.c | 86 +----
> cmd/pxe.c | 19 +-
> doc/develop/index.rst | 1 +
> doc/develop/net_lwip.rst | 75 +++++
> include/net.h | 197 +-----------
> include/net/arp.h | 7 +
> include/net/eth.h | 190 +++++++++++
> include/net/lwip.h | 73 +++++
> include/net/ulwip.h | 64 ++++
> include/net/wget.h | 22 --
> net/Kconfig | 3 +
> net/Makefile | 2 +-
> net/eth-uclass.c | 8 +
> net/lwip/.gitignore | 8 +
> net/lwip/Kconfig | 25 ++
> net/lwip/Makefile | 70 ++++
> net/lwip/apps/dhcp/lwip-dhcp.c | 85 +++++
> net/lwip/apps/dns/lwip-dns.c | 63 ++++
> net/lwip/apps/http/Makefile | 6 +
> net/lwip/apps/http/lwip-wget.c | 105 ++++++
> net/lwip/apps/ping/Makefile | 12 +
> net/lwip/apps/ping/lwip_ping.c | 38 +++
> net/lwip/apps/ping/lwip_ping.h | 15 +
> net/lwip/apps/ping/ping.h | 19 ++
> net/lwip/apps/tftp/Makefile | 7 +
> net/lwip/apps/tftp/lwip-tftp.c | 129 ++++++++
> net/lwip/lwip-external | 1 +
> net/lwip/lwipopts.h | 178 +++++++++++
> net/lwip/port/if.c | 332 +++++++++++++++++++
> net/lwip/port/include/arch/cc.h | 38 +++
> net/lwip/port/include/arch/sys_arch.h | 10 +
> net/lwip/port/include/limits.h | 0
> net/lwip/port/sys-arch.c | 13 +
> net/net.c | 26 +-
> net/wget.c | 440 --------------------------
> 40 files changed, 1938 insertions(+), 758 deletions(-)
> create mode 100644 .gitmodules
> create mode 100644 cmd/net-lwip.c
> create mode 100644 doc/develop/net_lwip.rst
> create mode 100644 include/net/arp.h
> create mode 100644 include/net/eth.h
> create mode 100644 include/net/lwip.h
> create mode 100644 include/net/ulwip.h
> delete mode 100644 include/net/wget.h
> create mode 100644 net/lwip/.gitignore
> create mode 100644 net/lwip/Kconfig
> create mode 100644 net/lwip/Makefile
> create mode 100644 net/lwip/apps/dhcp/lwip-dhcp.c
> create mode 100644 net/lwip/apps/dns/lwip-dns.c
> create mode 100644 net/lwip/apps/http/Makefile
> create mode 100644 net/lwip/apps/http/lwip-wget.c
> create mode 100644 net/lwip/apps/ping/Makefile
> create mode 100644 net/lwip/apps/ping/lwip_ping.c
> create mode 100644 net/lwip/apps/ping/lwip_ping.h
> create mode 100644 net/lwip/apps/ping/ping.h
> create mode 100644 net/lwip/apps/tftp/Makefile
> create mode 100644 net/lwip/apps/tftp/lwip-tftp.c
> create mode 160000 net/lwip/lwip-external
> create mode 100644 net/lwip/lwipopts.h
> create mode 100644 net/lwip/port/if.c
> create mode 100644 net/lwip/port/include/arch/cc.h
> create mode 100644 net/lwip/port/include/arch/sys_arch.h
> create mode 100644 net/lwip/port/include/limits.h
> create mode 100644 net/lwip/port/sys-arch.c
> delete mode 100644 net/wget.c
>
> --
> 2.30.2
>
More information about the U-Boot
mailing list