mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-15 17:34:43 +00:00
net: lwip: build lwIP
Build the lwIP library when NET_LWIP is enabled. The following files are adaptation layers written specially for U-Boot: lib/lwip/u-boot/arch/cc.h lib/lwip/u-boot/arch/sys_arch.h (empty) lib/lwip/u-boot/limits.h (empty) lib/lwip/u-boot/lwipopts.h They were initially contributed by Maxim in a previous RFC patch 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://github.com/lwip-tcpip/lwip.git STABLE-2_2_0_RELEASE Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Co-developed-by: Maxim Uvarov <muvarov@gmail.com> Cc: Maxim Uvarov <muvarov@gmail.com> Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
This commit is contained in:
parent
7ad5e878cd
commit
1c41a7afaa
6 changed files with 259 additions and 0 deletions
|
@ -99,6 +99,8 @@ obj-$(CONFIG_$(PHASE_)OF_REAL) += fdtdec_common.o fdtdec.o
|
|||
|
||||
obj-$(CONFIG_MBEDTLS_LIB) += mbedtls/
|
||||
|
||||
obj-$(CONFIG_NET_LWIP) += lwip/
|
||||
|
||||
ifdef CONFIG_XPL_BUILD
|
||||
obj-$(CONFIG_SPL_YMODEM_SUPPORT) += crc16-ccitt.o
|
||||
obj-$(CONFIG_$(PHASE_)HASH) += crc16-ccitt.o
|
||||
|
|
55
lib/lwip/Makefile
Normal file
55
lib/lwip/Makefile
Normal file
|
@ -0,0 +1,55 @@
|
|||
# SPDX-License-Identifier: GPL-2.0+
|
||||
#
|
||||
# Copyright (C) 2024 Linaro Ltd.
|
||||
|
||||
obj-y += \
|
||||
lwip/src/api/api_lib.o \
|
||||
lwip/src/api/api_msg.o \
|
||||
lwip/src/api/err.o \
|
||||
lwip/src/api/if_api.o \
|
||||
lwip/src/api/netbuf.o \
|
||||
lwip/src/api/netdb.o \
|
||||
lwip/src/api/netifapi.o \
|
||||
lwip/src/api/sockets.o \
|
||||
lwip/src/api/tcpip.o \
|
||||
lwip/src/apps/http/http_client.o \
|
||||
lwip/src/apps/tftp/tftp.o \
|
||||
lwip/src/core/altcp_alloc.o \
|
||||
lwip/src/core/altcp.o \
|
||||
lwip/src/core/altcp_tcp.o \
|
||||
lwip/src/core/def.o \
|
||||
lwip/src/core/dns.o \
|
||||
lwip/src/core/inet_chksum.o \
|
||||
lwip/src/core/init.o \
|
||||
lwip/src/core/ip.o \
|
||||
lwip/src/core/ipv4/acd.o \
|
||||
lwip/src/core/ipv4/autoip.o \
|
||||
lwip/src/core/ipv4/dhcp.o \
|
||||
lwip/src/core/ipv4/etharp.o \
|
||||
lwip/src/core/ipv4/icmp.o \
|
||||
lwip/src/core/ipv4/igmp.o \
|
||||
lwip/src/core/ipv4/ip4_addr.o \
|
||||
lwip/src/core/ipv4/ip4.o \
|
||||
lwip/src/core/ipv4/ip4_frag.o \
|
||||
lwip/src/core/ipv6/dhcp6.o \
|
||||
lwip/src/core/ipv6/ethip6.o \
|
||||
lwip/src/core/ipv6/icmp6.o \
|
||||
lwip/src/core/ipv6/inet6.o \
|
||||
lwip/src/core/ipv6/ip6_addr.o \
|
||||
lwip/src/core/ipv6/ip6.o \
|
||||
lwip/src/core/ipv6/ip6_frag.o \
|
||||
lwip/src/core/ipv6/mld6.o \
|
||||
lwip/src/core/ipv6/nd6.o \
|
||||
lwip/src/core/mem.o \
|
||||
lwip/src/core/memp.o \
|
||||
lwip/src/core/netif.o \
|
||||
lwip/src/core/pbuf.o \
|
||||
lwip/src/core/raw.o \
|
||||
lwip/src/core/stats.o \
|
||||
lwip/src/core/sys.o \
|
||||
lwip/src/core/tcp.o \
|
||||
lwip/src/core/tcp_in.o \
|
||||
lwip/src/core/tcp_out.o \
|
||||
lwip/src/core/timeouts.o \
|
||||
lwip/src/core/udp.o \
|
||||
lwip/src/netif/ethernet.o
|
45
lib/lwip/u-boot/arch/cc.h
Normal file
45
lib/lwip/u-boot/arch/cc.h
Normal file
|
@ -0,0 +1,45 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/* Copyright (C) 2023 Linaro Ltd. <maxim.uvarov@linaro.org> */
|
||||
|
||||
#ifndef LWIP_ARCH_CC_H
|
||||
#define LWIP_ARCH_CC_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <vsprintf.h>
|
||||
#include <rand.h>
|
||||
|
||||
#define LWIP_ERRNO_INCLUDE <errno.h>
|
||||
|
||||
#define LWIP_ERRNO_STDINCLUDE 1
|
||||
#define LWIP_NO_UNISTD_H 1
|
||||
#define LWIP_TIMEVAL_PRIVATE 1
|
||||
|
||||
#ifdef CONFIG_LIB_RAND
|
||||
#define LWIP_RAND() ((u32_t)rand())
|
||||
#else
|
||||
#define LWIP_DNS_SECURE 0
|
||||
#endif
|
||||
|
||||
/* different handling for unit test, normally not needed */
|
||||
#ifdef LWIP_NOASSERT_ON_ERROR
|
||||
#define LWIP_ERROR(message, expression, handler) do { if (!(expression)) { \
|
||||
handler; }} while (0)
|
||||
#endif
|
||||
|
||||
#define LWIP_DONT_PROVIDE_BYTEORDER_FUNCTIONS
|
||||
|
||||
#define LWIP_PLATFORM_ASSERT(x) do {printf("Assertion \"%s\" failed at line %d in %s\n", \
|
||||
x, __LINE__, __FILE__); } while (0)
|
||||
|
||||
#define atoi(str) (int)dectoul(str, NULL)
|
||||
#define lwip_strnstr(a, b, c) strstr(a, b)
|
||||
|
||||
#define LWIP_ERR_T int
|
||||
#define LWIP_CONST_CAST(target_type, val) ((target_type)((uintptr_t)val))
|
||||
|
||||
#if defined(CONFIG_SYS_BIG_ENDIAN)
|
||||
#define BYTE_ORDER BIG_ENDIAN
|
||||
#endif
|
||||
|
||||
#endif /* LWIP_ARCH_CC_H */
|
0
lib/lwip/u-boot/arch/sys_arch.h
Normal file
0
lib/lwip/u-boot/arch/sys_arch.h
Normal file
0
lib/lwip/u-boot/limits.h
Normal file
0
lib/lwip/u-boot/limits.h
Normal file
157
lib/lwip/u-boot/lwipopts.h
Normal file
157
lib/lwip/u-boot/lwipopts.h
Normal file
|
@ -0,0 +1,157 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
|
||||
/* Copyright (C) 2023 Linaro Ltd. <maxim.uvarov@linaro.org> */
|
||||
|
||||
#ifndef LWIP_UBOOT_LWIPOPTS_H
|
||||
#define LWIP_UBOOT_LWIPOPTS_H
|
||||
|
||||
#if defined(CONFIG_LWIP_DEBUG)
|
||||
#define LWIP_DEBUG 1
|
||||
#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_ALL
|
||||
#define LWIP_DBG_TYPES_ON LWIP_DBG_ON
|
||||
#define ETHARP_DEBUG LWIP_DBG_ON
|
||||
#define NETIF_DEBUG LWIP_DBG_ON
|
||||
#define PBUF_DEBUG LWIP_DBG_OFF
|
||||
#define API_LIB_DEBUG LWIP_DBG_ON
|
||||
#define API_MSG_DEBUG LWIP_DBG_OFF
|
||||
#define SOCKETS_DEBUG LWIP_DBG_OFF
|
||||
#define ICMP_DEBUG LWIP_DBG_OFF
|
||||
#define IGMP_DEBUG LWIP_DBG_OFF
|
||||
#define INET_DEBUG LWIP_DBG_OFF
|
||||
#define IP_DEBUG LWIP_DBG_ON
|
||||
#define IP_REASS_DEBUG LWIP_DBG_OFF
|
||||
#define RAW_DEBUG LWIP_DBG_OFF
|
||||
#define MEM_DEBUG LWIP_DBG_OFF
|
||||
#define MEMP_DEBUG LWIP_DBG_OFF
|
||||
#define SYS_DEBUG LWIP_DBG_OFF
|
||||
#define TIMERS_DEBUG LWIP_DBG_ON
|
||||
#define TCP_DEBUG LWIP_DBG_OFF
|
||||
#define TCP_INPUT_DEBUG LWIP_DBG_OFF
|
||||
#define TCP_FR_DEBUG LWIP_DBG_OFF
|
||||
#define TCP_RTO_DEBUG LWIP_DBG_OFF
|
||||
#define TCP_CWND_DEBUG LWIP_DBG_OFF
|
||||
#define TCP_WND_DEBUG LWIP_DBG_OFF
|
||||
#define TCP_OUTPUT_DEBUG LWIP_DBG_OFF
|
||||
#define TCP_RST_DEBUG LWIP_DBG_OFF
|
||||
#define TCP_QLEN_DEBUG LWIP_DBG_OFF
|
||||
#define UDP_DEBUG LWIP_DBG_OFF
|
||||
#define TCPIP_DEBUG LWIP_DBG_OFF
|
||||
#define SLIP_DEBUG LWIP_DBG_OFF
|
||||
#define DHCP_DEBUG LWIP_DBG_ON
|
||||
#define AUTOIP_DEBUG LWIP_DBG_ON
|
||||
#define DNS_DEBUG LWIP_DBG_ON
|
||||
#define IP6_DEBUG LWIP_DBG_OFF
|
||||
#define DHCP6_DEBUG LWIP_DBG_OFF
|
||||
#endif
|
||||
|
||||
#define LWIP_TESTMODE 0
|
||||
|
||||
#if !defined(CONFIG_LWIP_ASSERT)
|
||||
#define LWIP_NOASSERT 1
|
||||
#define LWIP_ASSERT(message, assertion)
|
||||
#endif
|
||||
|
||||
#include "lwip/debug.h"
|
||||
|
||||
#define SYS_LIGHTWEIGHT_PROT 0
|
||||
#define NO_SYS 1
|
||||
|
||||
#define LWIP_IPV4 1
|
||||
#define LWIP_IPV6 0
|
||||
|
||||
#define MEM_ALIGNMENT 8
|
||||
|
||||
#define MEMP_NUM_TCP_SEG 16
|
||||
#define PBUF_POOL_SIZE 8
|
||||
|
||||
#define LWIP_ARP 1
|
||||
#define ARP_TABLE_SIZE 4
|
||||
#define ARP_QUEUEING 1
|
||||
|
||||
#define IP_FORWARD 0
|
||||
#define IP_OPTIONS_ALLOWED 1
|
||||
#define IP_REASSEMBLY 0
|
||||
#define IP_FRAG 0
|
||||
#define IP_REASS_MAXAGE 3
|
||||
#define IP_REASS_MAX_PBUFS 4
|
||||
#define IP_FRAG_USES_STATIC_BUF 0
|
||||
|
||||
#define IP_DEFAULT_TTL 255
|
||||
|
||||
#define LWIP_ICMP 0
|
||||
|
||||
#if defined(CONFIG_PROT_RAW_LWIP)
|
||||
#define LWIP_RAW 1
|
||||
#else
|
||||
#define LWIP_RAW 0
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_PROT_DHCP_LWIP)
|
||||
#define LWIP_DHCP 1
|
||||
#define LWIP_DHCP_BOOTP_FILE 1
|
||||
#else
|
||||
#define LWIP_DHCP 0
|
||||
#endif
|
||||
|
||||
#define LWIP_DHCP_DOES_ACD_CHECK 0
|
||||
|
||||
#define LWIP_AUTOIP 0
|
||||
|
||||
#define LWIP_SNMP 0
|
||||
|
||||
#define LWIP_IGMP 0
|
||||
|
||||
#if defined(CONFIG_PROT_DNS_LWIP)
|
||||
#define LWIP_DNS 1
|
||||
#define DNS_TABLE_SIZE 1
|
||||
#else
|
||||
#define LWIP_DNS 0
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_PROT_UDP_LWIP)
|
||||
#define LWIP_UDP 1
|
||||
#else
|
||||
#define LWIP_UDP 0
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_PROT_TCP_LWIP)
|
||||
#define LWIP_TCP 1
|
||||
#define TCP_MSS 1460
|
||||
#define TCP_WND CONFIG_LWIP_TCP_WND
|
||||
#define LWIP_WND_SCALE 1
|
||||
#define TCP_RCV_SCALE 0x7
|
||||
#define TCP_SND_BUF (2 * TCP_MSS)
|
||||
#ifdef CONFIG_PROT_TCP_SACK_LWIP
|
||||
#define LWIP_TCP_SACK_OUT 1
|
||||
#endif
|
||||
#else
|
||||
#define LWIP_TCP 0
|
||||
#endif
|
||||
|
||||
#define LWIP_LISTEN_BACKLOG 0
|
||||
|
||||
#define PBUF_LINK_HLEN 14
|
||||
#define PBUF_POOL_BUFSIZE LWIP_MEM_ALIGN_SIZE(TCP_MSS + 40 + PBUF_LINK_HLEN)
|
||||
|
||||
#define LWIP_HAVE_LOOPIF 0
|
||||
|
||||
#define LWIP_NETCONN 0
|
||||
#define LWIP_DISABLE_MEMP_SANITY_CHECKS 1
|
||||
|
||||
#define LWIP_SOCKET 0
|
||||
#define SO_REUSE 0
|
||||
|
||||
#define LWIP_STATS 0
|
||||
|
||||
#define PPP_SUPPORT 0
|
||||
|
||||
#define LWIP_TCPIP_CORE_LOCKING 0
|
||||
|
||||
#define LWIP_NETIF_LOOPBACK 0
|
||||
|
||||
/* use malloc instead of pool */
|
||||
#define MEMP_MEM_MALLOC 1
|
||||
#define MEMP_MEM_INIT 1
|
||||
#define MEM_LIBC_MALLOC 1
|
||||
|
||||
#endif /* LWIP_UBOOT_LWIPOPTS_H */
|
Loading…
Add table
Reference in a new issue