U-Boot support of LWIP is not ready for a moment, but we already have some kind of tcp support. Unfrotunately this support is really bad.
Some of the known issues: * tcp packet from other connection can break a current one * tcp send sequence always starts from zero * bad tcp options processing * strange assumptions on packet size for selectiv acknowledge * tcp interface assumes one of the two scenarios: - data downloading from remote host to a board - request-response exchange with a small packets so it's not possible to upload large amount of data from the board to remote host. This series of patches fixes all of the above issuess. The benefits: * A lot of bug was fixed * Better and more reliable TCP state machine * Tcp cliens becomes smaller/simpler * Data uploading was fixed (now it's possible to transmit a huge amount of data from the board to remote host) * Netcat over tcp was implemented. Netcat supports data downloading/uploading from/to remote host in client/server mode. * An example web-server implementation. This code can be used as a base for web-based firmware uploading used by some vendors. Modification was verified with * firmware downloading via u-boot wget command * fastboot over tcp * netcat linux client * Firefox/Chrome/Edge using example web-server implementation Changes v2: * cover letter was added * some patches were removed Changes v3: * better cover letter Changes v4: * fix bug in debug output * add more comments * codestyle fixes Changes v5: * old patches were ocasionally sent with v4 * add back web-server patches * fix bug in debug output * add more comments * codestyle fixes Mikhail Kshevetskiy (11): net/tcp: fix TCP options processing net/tcp: fix selective acknowledge net/tcp: put connection specific data into a tcp_stream structure net/tcp: add connection info to tcp_stream structure net/tcp: rename ack_edge and seq_init to more common rcv_nxt and irs net/tcp: improve tcp framework, use better state machine net/tcp: simplify tcp header filling code net/tcp: define a fallback value for rcv_wnd size net/netcat: add netcat over tcp support net/httpd: add httpd common code net/httpd-upload: an example web-server implementation for file uploading cmd/Kconfig | 21 + cmd/net.c | 54 +- include/net.h | 7 +- include/net/httpd-upload.h | 12 + include/net/httpd.h | 64 ++ include/net/netcat.h | 20 + include/net/tcp.h | 235 +++++- include/net/wget.h | 8 - net/Kconfig | 14 + net/Makefile | 21 + net/fastboot_tcp.c | 190 ++--- net/httpd-upload.c | 123 +++ net/httpd.c | 692 +++++++++++++++++ net/httpd_upload/error_400.html | 9 + net/httpd_upload/error_404.html | 10 + net/httpd_upload/index.html | 14 + net/httpd_upload/upload_ok.html | 7 + net/net.c | 36 +- net/netcat.c | 181 +++++ net/tcp.c | 1259 ++++++++++++++++++++++--------- net/wget.c | 479 ++++-------- 21 files changed, 2582 insertions(+), 874 deletions(-) create mode 100644 include/net/httpd-upload.h create mode 100644 include/net/httpd.h create mode 100644 include/net/netcat.h create mode 100644 net/httpd-upload.c create mode 100644 net/httpd.c create mode 100644 net/httpd_upload/error_400.html create mode 100644 net/httpd_upload/error_404.html create mode 100644 net/httpd_upload/index.html create mode 100644 net/httpd_upload/upload_ok.html create mode 100644 net/netcat.c -- 2.43.0