[PATCH rtems-lwip 1/2] rtemslwip: Use common lwipopts for all BSPs

Chris Johns chrisj at rtems.org
Wed Mar 29 21:24:16 UTC 2023


This looks good. Thanks for cleaning this up.

Chris

On 30/3/2023 7:51 am, Kinsey Moore wrote:
> This reworks all BSPs to use a shared lwipopts.h that includes
> lwipbspopts.h for per-BSP configuration instead of having lwIP
> configuration scattered everywhere for individual BSPs. This also
> consolidates the shared portions of ZynqMP BSP-specific configuration
> and Xilinx-specific configuration into shared files for reuse.
> ---
>  defs/bsps/arm/tms570_base.json          |   1 +
>  rtemslwip/beaglebone/lwipbspopts.h      |   1 +
>  rtemslwip/beaglebone/lwipopts.h         | 276 -----------------------
>  rtemslwip/include/legacy_lwipopts.h     |  53 +++++
>  rtemslwip/include/lwipopts.h            | 281 ++++++++++++++++++++++++
>  rtemslwip/tms570/lwipbspopts.h          |   1 +
>  rtemslwip/xilinx/xlwipopts.h            |  35 +++
>  rtemslwip/zynqmp/common_lwipopts.h      |   3 +
>  rtemslwip/zynqmp/lwipopts.h             | 128 -----------
>  rtemslwip/zynqmp_cfc400x/lwipbspopts.h  |   2 +-
>  rtemslwip/zynqmp_hardware/lwipbspopts.h |   2 +-
>  rtemslwip/zynqmp_qemu/lwipbspopts.h     |   2 +-
>  uLan/ports/os/lwipopts.h                | 272 -----------------------
>  13 files changed, 378 insertions(+), 679 deletions(-)
>  create mode 100644 rtemslwip/beaglebone/lwipbspopts.h
>  delete mode 100644 rtemslwip/beaglebone/lwipopts.h
>  create mode 100644 rtemslwip/include/legacy_lwipopts.h
>  create mode 100644 rtemslwip/include/lwipopts.h
>  create mode 100644 rtemslwip/tms570/lwipbspopts.h
>  create mode 100644 rtemslwip/xilinx/xlwipopts.h
>  create mode 100644 rtemslwip/zynqmp/common_lwipopts.h
>  delete mode 100644 rtemslwip/zynqmp/lwipopts.h
>  delete mode 100644 uLan/ports/os/lwipopts.h
> 
> diff --git a/defs/bsps/arm/tms570_base.json b/defs/bsps/arm/tms570_base.json
> index a1d1e24..e618d5c 100644
> --- a/defs/bsps/arm/tms570_base.json
> +++ b/defs/bsps/arm/tms570_base.json
> @@ -2,6 +2,7 @@
>  	"header-paths-to-import": [
>  		"uLan/ports/driver/tms570_emac",
>  		"uLan/ports/os",
> +		"rtemslwip/tms570",
>  		"cpsw/src/include"
>  	],
>  	"source-files-to-import": [
> diff --git a/rtemslwip/beaglebone/lwipbspopts.h b/rtemslwip/beaglebone/lwipbspopts.h
> new file mode 100644
> index 0000000..85b08af
> --- /dev/null
> +++ b/rtemslwip/beaglebone/lwipbspopts.h
> @@ -0,0 +1 @@
> +#include <legacy_lwipopts.h>
> diff --git a/rtemslwip/beaglebone/lwipopts.h b/rtemslwip/beaglebone/lwipopts.h
> deleted file mode 100644
> index 888fae4..0000000
> --- a/rtemslwip/beaglebone/lwipopts.h
> +++ /dev/null
> @@ -1,276 +0,0 @@
> -#if 0
> -/*
> - * Copyright (c) 2001-2003 Swedish Institute of Computer Science.
> - * All rights reserved. 
> - * 
> - * Redistribution and use in source and binary forms, with or without modification, 
> - * are permitted provided that the following conditions are met:
> - *
> - * 1. Redistributions of source code must retain the above copyright notice,
> - *    this list of conditions and the following disclaimer.
> - * 2. Redistributions in binary form must reproduce the above copyright notice,
> - *    this list of conditions and the following disclaimer in the documentation
> - *    and/or other materials provided with the distribution.
> - * 3. The name of the author may not be used to endorse or promote products
> - *    derived from this software without specific prior written permission. 
> - *
> - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 
> - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
> - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
> - * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
> - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
> - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
> - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
> - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 
> - * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 
> - * OF SUCH DAMAGE.
> - *
> - * This file is part of the lwIP TCP/IP stack.
> - * 
> - * Author: Simon Goldschmidt
> - *
> - */
> -#ifndef LWIP_HDR_LWIPOPTS_H__
> -#define LWIP_HDR_LWIPOPTS_H__
> -
> -/* Prevent having to link sys_arch.c (we don't test the API layers in unit tests) */
> -#define NO_SYS                          0
> -#define LWIP_NETCONN                    1
> -#define LWIP_SOCKET                     1
> -#define LWIP_DNS                        1
> -
> -#define LWIP_IPV6                       1
> -#define LWIP_IPV4                       1
> -
> -#define LWIP_ETHERNET                   1
> -#define LWIP_NETIF_API                  1
> -#define LWIP_AUTOIP                     1
> -/* Enable DHCP to test it, disable UDP checksum to easier inject packets */
> -#define LWIP_DHCP                       1
> -#define LWIP_TIMEVAL_PRIVATE            0
> -#define LWIP_POSIX_SOCKETS_IO_NAMES     1
> -//#define LWIP_COMPAT_SOCKETS             2
> -#ifndef FIONREAD
> -#define FIONREAD                        1
> -#endif
> -#ifndef FIONBIO
> -#define FIONBIO                         1
> -#endif
> -#define THREAD_STACK_SIZE               4096
> -
> -#define LWIP_TIMERS                     1
> -/* Minimal changes to opt.h required for tcp unit tests: */
> -
> -#define MEM_SIZE                        16000
> -#define TCP_SND_QUEUELEN                40
> -#define MEMP_NUM_TCP_SEG                TCP_SND_QUEUELEN
> -#define TCP_SND_BUF                     (12 * TCP_MSS)
> -#define TCP_WND                         (10 * TCP_MSS)
> -#define LWIP_WND_SCALE                  1
> -#define TCP_RCV_SCALE                   0
> -#define PBUF_POOL_SIZE                  400 // pbuf tests need ~200KByte
> -
> -/* Minimal changes to opt.h required for etharp unit tests: */
> -#define ETHARP_SUPPORT_STATIC_ENTRIES   1
> -
> -#endif /* LWIP_HDR_LWIPOPTS_H__ */
> -
> -#endif /* 0 */
> -
> -/**
> - * \file lwipopts.h - Configuration options for lwIP
> - *
> - * Copyright (c) 2010 Texas Instruments Incorporated
> - */
> -/*
> - * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
> - * All rights reserved.
> - *
> - * Redistribution and use in source and binary forms, with or without modification,
> - * are permitted provided that the following conditions are met:
> - *
> - * 1. Redistributions of source code must retain the above copyright notice,
> - *    this list of conditions and the following disclaimer.
> - * 2. Redistributions in binary form must reproduce the above copyright notice,
> - *    this list of conditions and the following disclaimer in the documentation
> - *    and/or other materials provided with the distribution.
> - * 3. The name of the author may not be used to endorse or promote products
> - *    derived from this software without specific prior written permission.
> - *
> - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
> - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
> - * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
> - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
> - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
> - * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
> - * OF SUCH DAMAGE.
> - *
> - * This file is part of the lwIP TCP/IP stack.
> - *
> - * Author: Adam Dunkels <adam at sics.se>
> - *
> - */
> -
> -#ifndef __LWIPOPTS_H__
> -#define __LWIPOPTS_H__
> -
> -/*****************************************************************************
> -**                           CONFIGURATIONS
> -*****************************************************************************/
> -
> -/*
> -** The macro CPSW_DUAL_MAC_MODE shall be defined for using CPSW ports in
> -** Dual MAC mode.
> -*/
> -#define CPSW_DUAL_MAC_MODE
> -
> -/*
> -** The below macro should be defined for using lwIP with cache. For cache
> -** enabling, pbuf pool shall be cache line aligned. This is done by using
> -** separate pool for each memory. The alignment of pbuf pool to cache line
> -** size is done in /ports/cpsw/include/arch/cc.h.
> -*/
> -/*#define LWIP_CACHE_ENABLED*/
> -
> -#define SOC_CACHELINE_SIZE_BYTES        64            /* Number of bytes in
> -                                                         a cache line */
> -/*
> -** The timeout for DHCP completion. lwIP library will wait for DHCP
> -** completion for (LWIP_DHCP_TIMEOUT / 100) seconds.
> -*/
> -#define LWIP_DHCP_TIMEOUT               1000
> -
> -/*
> -** The number of times DHCP is attempted. Each time, the library will wait
> -** for (LWIP_DHCP_TIMEOUT / 100) seconds for DHCP completion.
> -*/
> -#define NUM_DHCP_TRIES                  5
> -
> -#define LWIP_ETHERNET 1
> -#define LWIP_ARP 1
> -#define LWIP_DNS 1
> -
> -/*****************************************************************************
> -**            lwIP SPECIFIC DEFINITIONS - To be used by lwIP stack
> -*****************************************************************************/
> -#define HOST_TMR_INTERVAL               0
> -#define DYNAMIC_HTTP_HEADERS
> -
> -/*****************************************************************************
> -**                    Platform specific locking
> -*****************************************************************************/
> -#define SYS_LIGHTWEIGHT_PROT            1
> -#define NO_SYS                          0
> -#define NO_SYS_NO_TIMERS                0
> -
> -/*****************************************************************************
> -**                          Memory Options
> -*****************************************************************************/
> -#define MEM_ALIGNMENT                   4
> -#define MEM_SIZE                        (1024 * 1024) /* 4K */
> -
> -#define MEMP_NUM_PBUF                   96
> -#define MEMP_NUM_TCP_PCB                32
> -#define MEMP_NUM_TCP_SEG                32
> -#define PBUF_POOL_SIZE                  512
> -#define MEMP_MEM_MALLOC                 1
> -#define MEMP_MEM_INIT                   1
> -#define MEMP_OVERFLOW_CHECK             0
> -
> -#ifdef LWIP_CACHE_ENABLED
> -#define MEMP_SEPARATE_POOLS             1            /* We want the pbuf
> -                                                        pool cache line
> -                                                        aligned*/
> -#endif
> -
> -//#define MEMP_NUM_SYS_TIMEOUT (LWIP_TCP + IP_REASSEMBLY + LWIP_ARP + (2*LWIP_DHCP) + LWIP_AUTOIP + LWIP_IGMP + LWIP_DNS + PPP_SUPPORT)
> -
> -/*****************************************************************************
> -**                           IP Options
> -*****************************************************************************/
> -#define IP_REASSEMBLY                   0
> -#define IP_FRAG                         0
> -#define LWIP_IPV4                       1
> -#define LWIP_IPV6                       1
> -
> -/*****************************************************************************
> -**                           DHCP Options
> -*****************************************************************************/
> -#define LWIP_DHCP                       1
> -#define DHCP_DOES_ARP_CHECK             0
> -
> -/*****************************************************************************
> -**                           Auto IP  Options
> -*****************************************************************************/
> -#define LWIP_AUTOIP                     1
> -#define LWIP_DHCP_AUTOIP_COOP           ((LWIP_DHCP) && (LWIP_AUTOIP))
> -
> -/*****************************************************************************
> -**                           TCP  Options
> -*****************************************************************************/
> -#define TCP_MSS                         1500
> -#define TCP_WND                         (8 * TCP_MSS)
> -#define TCP_SND_BUF                     (8 * TCP_MSS)
> -#define TCP_OVERSIZE                    TCP_MSS
> -#define LWIP_TCPIP_CORE_LOCKING         1
> -
> -/*****************************************************************************
> -**                           PBUF  Options
> -*****************************************************************************/
> -#define PBUF_LINK_HLEN                  14
> -#define PBUF_POOL_BUFSIZE               1520         /* + size of struct pbuf
> -                                                        shall be cache line
> -                                                        aligned be enabled */
> -#define ETH_PAD_SIZE                    0
> -#define LWIP_NETCONN                    1
> -
> -/*****************************************************************************
> -**                           Socket  Options
> -*****************************************************************************/
> -#define LWIP_SOCKET                     1
> -#define SO_REUSE                        1
> -
> -/*****************************************************************************
> -**                          Debugging options
> -*****************************************************************************/
> -#define LWIP_DBG_MIN_LEVEL              LWIP_DBG_LEVEL_OFF
> -#define LWIP_DBG_TYPES_ON               (LWIP_DBG_ON | LWIP_DBG_TRACE \
> -                                         |LWIP_DBG_STATE | LWIP_DBG_FRESH)
> -#define DHCP_DEBUG                      LWIP_DBG_OFF
> -#define NETIF_DEBUG                     LWIP_DBG_OFF
> -#define IP_DEBUG			LWIP_DBG_OFF
> -#define UDP_DEBUG			LWIP_DBG_OFF
> -#define ETHARP_DEBUG                    LWIP_DBG_OFF
> -#define SYS_DEBUG                       LWIP_DBG_OFF
> -#define RAW_DEBUG                       LWIP_DBG_OFF
> -#define MEM_DEBUG                       LWIP_DBG_OFF
> -#define MEMP_DEBUG                      LWIP_DBG_OFF
> -#define PBUF_DEBUG			LWIP_DBG_OFF
> -#define TCPIP_DEBUG			LWIP_DBG_OFF
> -#define APP_DEBUG			LWIP_DBG_OFF
> -#define SOCKETS_DEBUG		LWIP_DBG_OFF
> -#define LWIP_STATS                      0
> -#define LWIP_STATS_DISPLAY              0
> -#define LWIP_STATS_POSIX                0
> -#define LWIP_DNS_API_DEFINE_ERRORS      1
> -
> -
> -
> -/**
> - * LWIP_COMPAT_SOCKETS==1: Enable BSD-style sockets functions names.
> - * (only used if you use sockets.c)
> - */
> -#define LWIP_COMPAT_SOCKETS            1
> -
> - #define LWIP_TIMEVAL_PRIVATE 0
> -
> - #define LWIP_RAW                        0
> -
> -#define tskIDLE_PRIORITY RTEMS_MAXIMUM_PRIORITY
> -#define portTICK_RATE_MS (rtems_clock_get_ticks_per_second() * 1000)
> -#define vTaskDelay(x) sys_arch_delay(x)
> -
> -#endif /* __LWIPOPTS_H__ */
> diff --git a/rtemslwip/include/legacy_lwipopts.h b/rtemslwip/include/legacy_lwipopts.h
> new file mode 100644
> index 0000000..322b87d
> --- /dev/null
> +++ b/rtemslwip/include/legacy_lwipopts.h
> @@ -0,0 +1,53 @@
> +/*
> + * Copyright (C) 2023 On-Line Applications Research Corporation (OAR)
> + * Written by Kinsey Moore <kinsey.moore at oarcorp.com>
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions
> + * are met:
> + * 1. Redistributions of source code must retain the above copyright
> + *    notice, this list of conditions and the following disclaimer.
> + * 2. Redistributions in binary form must reproduce the above copyright
> + *    notice, this list of conditions and the following disclaimer in the
> + *    documentation and/or other materials provided with the distribution.
> + *
> + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
> + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
> + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
> + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
> + * POSSIBILITY OF SUCH DAMAGE.
> + */
> +
> +/*
> + * The options here are pruned down, but roughly equivalent to the original set
> + * of options configured for the BeagleBone and TMS570 BSPs originally pulled
> + * from the uLan repository.
> + */
> +
> +#ifndef __LEGACY_LWIPOPTS_H__
> +#define __LEGACY_LWIPOPTS_H__
> +
> +#define CPSW_DUAL_MAC_MODE
> +
> +#define NUM_DHCP_TRIES 5
> +
> +#define LWIP_ETHERNET 1
> +
> +#define LWIP_TCPIP_CORE_LOCKING 1
> +
> +/*****************************************************************************
> +**                          Memory Options
> +*****************************************************************************/
> +#define MEM_ALIGNMENT 4
> +#define MEM_SIZE (1024 * 1024) /* 4K */
> +#define MEMP_NUM_TCP_SEG 32
> +#define MEMP_MEM_MALLOC 1
> +#define MEMP_MEM_INIT 1
> +
> +#endif /* __LEGACY_LWIPOPTS_H__ */
> diff --git a/rtemslwip/include/lwipopts.h b/rtemslwip/include/lwipopts.h
> new file mode 100644
> index 0000000..157cce8
> --- /dev/null
> +++ b/rtemslwip/include/lwipopts.h
> @@ -0,0 +1,281 @@
> +/*
> + * Copyright (C) 2023 On-Line Applications Research Corporation (OAR)
> + * Written by Kinsey Moore <kinsey.moore at oarcorp.com>
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions
> + * are met:
> + * 1. Redistributions of source code must retain the above copyright
> + *    notice, this list of conditions and the following disclaimer.
> + * 2. Redistributions in binary form must reproduce the above copyright
> + *    notice, this list of conditions and the following disclaimer in the
> + *    documentation and/or other materials provided with the distribution.
> + *
> + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
> + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
> + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
> + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
> + * POSSIBILITY OF SUCH DAMAGE.
> + */
> +
> +#ifndef __LWIPOPTS_H__
> +#define __LWIPOPTS_H__
> +
> +/* Critical items that all BSPs must use for full functionality */
> +#define SYS_LIGHTWEIGHT_PROT 1
> +#define NO_SYS 0
> +#define LWIP_SOCKET 1
> +#define SO_REUSE 1
> +#define LWIP_COMPAT_SOCKETS 1
> +#define LWIP_NETCONN 1
> +#define LWIP_NETIF_LOOPBACK 1 /* Required for socketpair implementation */
> +#define LWIP_NETIF_API 1
> +#define LWIP_TIMEVAL_PRIVATE 0
> +#define LWIP_CALLBACK_API 1
> +#define NO_SYS_NO_TIMERS 1
> +#define LWIP_COMPAT_MUTEX 0
> +#define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 1
> +
> +#include <lwipbspopts.h>
> +
> +/* Sane defaults that the configuration or BSP can override */
> +
> +#ifndef ARP_QUEUEING
> +#define ARP_QUEUEING 1
> +#endif
> +
> +#ifndef ARP_TABLE_SIZE
> +#define ARP_TABLE_SIZE 10
> +#endif
> +
> +#ifndef CHECKSUM_CHECK_IP
> +#define CHECKSUM_CHECK_IP 1
> +#endif
> +
> +#ifndef CHECKSUM_CHECK_TCP
> +#define CHECKSUM_CHECK_TCP 1
> +#endif
> +
> +#ifndef CHECKSUM_CHECK_UDP
> +#define CHECKSUM_CHECK_UDP 1
> +#endif
> +
> +#ifndef CHECKSUM_GEN_IP
> +#define CHECKSUM_GEN_IP 1
> +#endif
> +
> +#ifndef CHECKSUM_GEN_TCP
> +#define CHECKSUM_GEN_TCP 1
> +#endif
> +
> +#ifndef CHECKSUM_GEN_UDP
> +#define CHECKSUM_GEN_UDP 1
> +#endif
> +
> +#ifndef CONFIG_LINKSPEED_AUTODETECT
> +#define CONFIG_LINKSPEED_AUTODETECT 1
> +#endif
> +
> +#ifndef DEFAULT_ACCEPTMBOX_SIZE
> +#define DEFAULT_ACCEPTMBOX_SIZE 5
> +#endif
> +
> +#ifndef DEFAULT_TCP_RECVMBOX_SIZE
> +#define DEFAULT_TCP_RECVMBOX_SIZE 20
> +#endif
> +
> +#ifndef DEFAULT_UDP_RECVMBOX_SIZE
> +#define DEFAULT_UDP_RECVMBOX_SIZE 20
> +#endif
> +
> +#ifndef DHCP_DOES_ARP_CHECK
> +#define DHCP_DOES_ARP_CHECK 1
> +#endif
> +
> +#ifndef ICMP_TTL
> +#define ICMP_TTL 255
> +#endif
> +
> +#ifndef IP_DEFAULT_TTL
> +#define IP_DEFAULT_TTL 255
> +#endif
> +
> +#ifndef IP_FORWARD
> +#define IP_FORWARD 0
> +#endif
> +
> +#ifndef IP_FRAG
> +#define IP_FRAG 1
> +#endif
> +
> +#ifndef IP_FRAG_MAX_MTU
> +#define IP_FRAG_MAX_MTU 1500
> +#endif
> +
> +#ifndef IP_OPTIONS
> +#define IP_OPTIONS 1
> +#endif
> +
> +#ifndef IP_OPTIONS_ALLOWED
> +#define IP_OPTIONS_ALLOWED 0
> +#endif
> +
> +#ifndef IP_REASS_BUFSIZE
> +#define IP_REASS_BUFSIZE 5760
> +#endif
> +
> +#ifndef IP_REASSEMBLY
> +#define IP_REASSEMBLY 1
> +#endif
> +
> +#ifndef LWIP_ARP
> +#define LWIP_ARP 1
> +#endif
> +
> +#ifndef LWIP_AUTOIP
> +#define LWIP_AUTOIP 1
> +#endif
> +
> +#ifndef LWIP_CHKSUM_ALGORITHM
> +#define LWIP_CHKSUM_ALGORITHM 3
> +#endif
> +
> +#ifndef LWIP_DHCP
> +#define LWIP_DHCP 1
> +#endif
> +
> +#ifndef LWIP_DHCP_AUTOIP_COOP
> +#define LWIP_DHCP_AUTOIP_COOP ((LWIP_DHCP) && (LWIP_AUTOIP))
> +#endif
> +
> +#ifndef LWIP_DNS
> +#define LWIP_DNS 1
> +#endif
> +
> +#ifndef LWIP_IPV4
> +#define LWIP_IPV4 1
> +#endif
> +
> +#ifndef LWIP_IPV6
> +#define LWIP_IPV6 1
> +#endif
> +
> +#ifndef LWIP_TCP
> +#define LWIP_TCP 1
> +#endif
> +
> +#ifndef LWIP_UDP
> +#define LWIP_UDP 1
> +#endif
> +
> +#ifndef MEMP_NUM_FRAG_PBUF
> +#define MEMP_NUM_FRAG_PBUF 256
> +#endif
> +
> +#ifndef MEMP_NUM_NETCONN
> +#define MEMP_NUM_NETCONN 16
> +#endif
> +
> +#ifndef MEMP_NUM_PBUF
> +#define MEMP_NUM_PBUF 96
> +#endif
> +
> +#ifndef MEMP_NUM_TCP_PCB
> +#define MEMP_NUM_TCP_PCB 32
> +#endif
> +
> +#ifndef MEMP_NUM_TCP_PCB_LISTEN
> +#define MEMP_NUM_TCP_PCB_LISTEN 8
> +#endif
> +
> +#ifndef MEMP_NUM_TCP_SEG
> +#define MEMP_NUM_TCP_SEG 256
> +#endif
> +
> +#ifndef MEMP_NUM_UDP_PCB
> +#define MEMP_NUM_UDP_PCB 16
> +#endif
> +
> +#ifndef MEMP_SEPARATE_POOLS
> +#define MEMP_SEPARATE_POOLS 1
> +#endif
> +
> +#ifndef MEM_SIZE
> +#define MEM_SIZE 2 * 1024 * 1024
> +#endif
> +
> +#ifndef PBUF_LINK_HLEN
> +#define PBUF_LINK_HLEN 16
> +#endif
> +
> +#ifndef PBUF_POOL_BUFSIZE
> +#define PBUF_POOL_BUFSIZE 1600
> +#endif
> +
> +#ifndef PBUF_POOL_SIZE
> +#define PBUF_POOL_SIZE 512
> +#endif
> +
> +#ifndef TCP_FAST_INTERVAL
> +#define TCP_FAST_INTERVAL 250
> +#endif
> +
> +#ifndef TCPIP_MBOX_SIZE
> +#define TCPIP_MBOX_SIZE 20
> +#endif
> +
> +#ifndef TCP_MAXRTX
> +#define TCP_MAXRTX 12
> +#endif
> +
> +#ifndef TCP_MSS
> +#define TCP_MSS 1576
> +#endif
> +
> +#ifndef TCP_OVERSIZE
> +#define TCP_OVERSIZE TCP_MSS
> +#endif
> +
> +#ifndef TCP_QUEUE_OOSEQ
> +#define TCP_QUEUE_OOSEQ 1
> +#endif
> +
> +#ifndef TCP_SLOW_INTERVAL
> +#define TCP_SLOW_INTERVAL 500
> +#endif
> +
> +#ifndef TCP_SND_BUF
> +#define TCP_SND_BUF (8 * TCP_MSS)
> +#endif
> +
> +#ifndef TCP_SND_QUEUELEN
> +#define TCP_SND_QUEUELEN 16 * TCP_SND_BUF / TCP_MSS
> +#endif
> +
> +#ifndef TCP_SYNMAXRTX
> +#define TCP_SYNMAXRTX 4
> +#endif
> +
> +#ifndef TCP_TMR_INTERVAL
> +#define TCP_TMR_INTERVAL 250
> +#endif
> +
> +#ifndef TCP_TTL
> +#define TCP_TTL 255
> +#endif
> +
> +#ifndef TCP_WND
> +#define TCP_WND (8 * TCP_MSS)
> +#endif
> +
> +#ifndef UDP_TTL
> +#define UDP_TTL 255
> +#endif
> +
> +#endif /* __LWIPOPTS_H__ */
> diff --git a/rtemslwip/tms570/lwipbspopts.h b/rtemslwip/tms570/lwipbspopts.h
> new file mode 100644
> index 0000000..85b08af
> --- /dev/null
> +++ b/rtemslwip/tms570/lwipbspopts.h
> @@ -0,0 +1 @@
> +#include <legacy_lwipopts.h>
> diff --git a/rtemslwip/xilinx/xlwipopts.h b/rtemslwip/xilinx/xlwipopts.h
> new file mode 100644
> index 0000000..d915c3c
> --- /dev/null
> +++ b/rtemslwip/xilinx/xlwipopts.h
> @@ -0,0 +1,35 @@
> +/*
> + * Copyright (C) 2023 On-Line Applications Research Corporation (OAR)
> + * Written by Kinsey Moore <kinsey.moore at oarcorp.com>
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions
> + * are met:
> + * 1. Redistributions of source code must retain the above copyright
> + *    notice, this list of conditions and the following disclaimer.
> + * 2. Redistributions in binary form must reproduce the above copyright
> + *    notice, this list of conditions and the following disclaimer in the
> + *    documentation and/or other materials provided with the distribution.
> + *
> + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
> + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
> + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
> + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
> + * POSSIBILITY OF SUCH DAMAGE.
> + */
> +
> +#ifndef __XLWIPOPTS_H__
> +#define __XLWIPOPTS_H__
> +
> +/* These macros allow RTEMS to pretend to be FreeRTOS for Xilinx drivers */
> +#define tskIDLE_PRIORITY RTEMS_MAXIMUM_PRIORITY
> +#define portTICK_RATE_MS (rtems_clock_get_ticks_per_second() * 1000)
> +#define vTaskDelay(x) sys_arch_delay(x)
> +
> +#endif /* __XLWIPOPTS_H__ */
> diff --git a/rtemslwip/zynqmp/common_lwipopts.h b/rtemslwip/zynqmp/common_lwipopts.h
> new file mode 100644
> index 0000000..8b7d870
> --- /dev/null
> +++ b/rtemslwip/zynqmp/common_lwipopts.h
> @@ -0,0 +1,3 @@
> +#include <xparameters_ps.h>
> +#include <xlwipopts.h>
> +#define MEM_ALIGNMENT 64
> diff --git a/rtemslwip/zynqmp/lwipopts.h b/rtemslwip/zynqmp/lwipopts.h
> deleted file mode 100644
> index feabe73..0000000
> --- a/rtemslwip/zynqmp/lwipopts.h
> +++ /dev/null
> @@ -1,128 +0,0 @@
> -/*
> - * Copyright (C) 2022 On-Line Applications Research Corporation (OAR)
> - * Written by Kinsey Moore <kinsey.moore at oarcorp.com>
> - *
> - * Redistribution and use in source and binary forms, with or without
> - * modification, are permitted provided that the following conditions
> - * are met:
> - * 1. Redistributions of source code must retain the above copyright
> - *    notice, this list of conditions and the following disclaimer.
> - * 2. Redistributions in binary form must reproduce the above copyright
> - *    notice, this list of conditions and the following disclaimer in the
> - *    documentation and/or other materials provided with the distribution.
> - *
> - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
> - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
> - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
> - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
> - * POSSIBILITY OF SUCH DAMAGE.
> - */
> -
> -#ifndef __LWIPOPTS_H__
> -#define __LWIPOPTS_H__
> -
> -#define SYS_LIGHTWEIGHT_PROT 1
> -
> -#define NO_SYS 0
> -#define LWIP_SOCKET                     1
> -#define SO_REUSE 1
> -#define LWIP_COMPAT_SOCKETS 1
> -#define LWIP_NETCONN 1
> -
> -#define LWIP_ARP 1
> -#define LWIP_NETIF_API 1
> -/* Required for socketpair implementation */
> -#define LWIP_NETIF_LOOPBACK 1
> -#define LWIP_IPV6                       1
> -#define LWIP_IPV4                       1
> -#define LWIP_TIMEVAL_PRIVATE 0
> -#define LWIP_DNS                       1
> -
> -#define LWIP_CALLBACK_API 1
> -
> -#define MEM_ALIGNMENT           64
> -#define MEM_SIZE                2 * 1024 * 1024
> -#define MEMP_NUM_PBUF           32
> -#define MEMP_NUM_NETCONN        16
> -#define MEMP_NUM_UDP_PCB        16
> -#define MEMP_NUM_TCP_PCB        32
> -#define MEMP_NUM_TCP_PCB_LISTEN 8
> -#define MEMP_NUM_TCP_SEG        256
> -
> -#define PBUF_POOL_SIZE          256
> -#define PBUF_POOL_BUFSIZE       1600
> -#define PBUF_LINK_HLEN          16
> -
> -#define ARP_TABLE_SIZE 10
> -#define ARP_QUEUEING 1
> -
> -#define ICMP_TTL                255
> -
> -#define IP_OPTIONS              1
> -#define IP_FORWARD              0
> -#define IP_REASSEMBLY 1
> -#define IP_FRAG 1
> -#define IP_REASS_BUFSIZE 5760
> -#define IP_FRAG_MAX_MTU 1500
> -#define IP_DEFAULT_TTL 255
> -#define LWIP_CHKSUM_ALGORITHM 3
> -
> -#define LWIP_UDP                1
> -#define UDP_TTL                 255
> -
> -#define LWIP_TCP                1
> -#define TCP_MSS                 1576
> -#define TCP_SND_BUF             16 * 1024
> -#define TCP_WND                 6 * 1024
> -#define TCP_TTL                 255
> -#define TCP_MAXRTX              12
> -#define TCP_SYNMAXRTX           4
> -#define TCP_QUEUE_OOSEQ         1
> -#define TCP_SND_QUEUELEN        16 * TCP_SND_BUF / TCP_MSS
> -#define CHECKSUM_GEN_TCP  1
> -#define CHECKSUM_GEN_UDP  1
> -#define CHECKSUM_GEN_IP   1
> -#define CHECKSUM_CHECK_TCP  1
> -#define CHECKSUM_CHECK_UDP  1
> -#define CHECKSUM_CHECK_IP   1
> -
> -#define TCP_TMR_INTERVAL       250
> -#define TCP_FAST_INTERVAL      250
> -#define TCP_SLOW_INTERVAL      500
> -
> -#define NO_SYS_NO_TIMERS 1
> -#define MEMP_SEPARATE_POOLS 1
> -#define MEMP_NUM_FRAG_PBUF 256
> -#define IP_OPTIONS_ALLOWED 0
> -#define TCP_OVERSIZE TCP_MSS
> -#define LWIP_COMPAT_MUTEX 0
> -#define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 1
> -
> -#define LWIP_DHCP               1
> -#define DHCP_DOES_ARP_CHECK     1
> -
> -#define DBG_TYPES_ON DBG_LEVEL_WARNING
> -
> -#define LWIP_STATS                      0
> -#define LWIP_STATS_DISPLAY              0
> -#define LWIP_STATS_POSIX                0
> -
> -#define CONFIG_LINKSPEED_AUTODETECT 1
> -#define TCPIP_MBOX_SIZE                 20
> -#define DEFAULT_TCP_RECVMBOX_SIZE       20
> -#define DEFAULT_UDP_RECVMBOX_SIZE       20
> -#define DEFAULT_ACCEPTMBOX_SIZE         5
> -
> -#define tskIDLE_PRIORITY RTEMS_MAXIMUM_PRIORITY
> -#define portTICK_RATE_MS ( rtems_clock_get_ticks_per_second() * 1000 )
> -#define vTaskDelay( x ) sys_arch_delay( x )
> -
> -#include <lwipbspopts.h>
> -
> -#endif /* __LWIPOPTS_H__ */
> diff --git a/rtemslwip/zynqmp_cfc400x/lwipbspopts.h b/rtemslwip/zynqmp_cfc400x/lwipbspopts.h
> index 00f8077..b119b7d 100644
> --- a/rtemslwip/zynqmp_cfc400x/lwipbspopts.h
> +++ b/rtemslwip/zynqmp_cfc400x/lwipbspopts.h
> @@ -27,7 +27,7 @@
>  #ifndef RTEMSLWIP_LWIPBSPOPTS_H
>  #define RTEMSLWIP_LWIPBSPOPTS_H
>  
> -#include <xparameters_ps.h>
> +#include <common_lwipopts.h>
>  
>  /* Use SGMII mode for all interfaces on the CFC-400X */
>  #define ZYNQMP_USE_SGMII
> diff --git a/rtemslwip/zynqmp_hardware/lwipbspopts.h b/rtemslwip/zynqmp_hardware/lwipbspopts.h
> index a3acc19..143e302 100644
> --- a/rtemslwip/zynqmp_hardware/lwipbspopts.h
> +++ b/rtemslwip/zynqmp_hardware/lwipbspopts.h
> @@ -1 +1 @@
> -#include <xparameters_ps.h>
> +#include <common_lwipopts.h>
> diff --git a/rtemslwip/zynqmp_qemu/lwipbspopts.h b/rtemslwip/zynqmp_qemu/lwipbspopts.h
> index a3acc19..143e302 100644
> --- a/rtemslwip/zynqmp_qemu/lwipbspopts.h
> +++ b/rtemslwip/zynqmp_qemu/lwipbspopts.h
> @@ -1 +1 @@
> -#include <xparameters_ps.h>
> +#include <common_lwipopts.h>
> diff --git a/uLan/ports/os/lwipopts.h b/uLan/ports/os/lwipopts.h
> deleted file mode 100644
> index 6e4287a..0000000
> --- a/uLan/ports/os/lwipopts.h
> +++ /dev/null
> @@ -1,272 +0,0 @@
> -#if 0
> -/*
> - * Copyright (c) 2001-2003 Swedish Institute of Computer Science.
> - * All rights reserved. 
> - * 
> - * Redistribution and use in source and binary forms, with or without modification, 
> - * are permitted provided that the following conditions are met:
> - *
> - * 1. Redistributions of source code must retain the above copyright notice,
> - *    this list of conditions and the following disclaimer.
> - * 2. Redistributions in binary form must reproduce the above copyright notice,
> - *    this list of conditions and the following disclaimer in the documentation
> - *    and/or other materials provided with the distribution.
> - * 3. The name of the author may not be used to endorse or promote products
> - *    derived from this software without specific prior written permission. 
> - *
> - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 
> - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
> - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
> - * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
> - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
> - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
> - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
> - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 
> - * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 
> - * OF SUCH DAMAGE.
> - *
> - * This file is part of the lwIP TCP/IP stack.
> - * 
> - * Author: Simon Goldschmidt
> - *
> - */
> -#ifndef LWIP_HDR_LWIPOPTS_H__
> -#define LWIP_HDR_LWIPOPTS_H__
> -
> -/* Prevent having to link sys_arch.c (we don't test the API layers in unit tests) */
> -#define NO_SYS                          0
> -#define LWIP_NETCONN                    1
> -#define LWIP_SOCKET                     1
> -#define LWIP_DNS                        1
> -
> -#define LWIP_IPV6                       1
> -#define LWIP_IPV4                       1
> -
> -#define LWIP_ETHERNET                   1
> -#define LWIP_NETIF_API                  1
> -#define LWIP_AUTOIP                     1
> -/* Enable DHCP to test it, disable UDP checksum to easier inject packets */
> -#define LWIP_DHCP                       1
> -#define LWIP_TIMEVAL_PRIVATE            0
> -#define LWIP_POSIX_SOCKETS_IO_NAMES     1
> -//#define LWIP_COMPAT_SOCKETS             2
> -#ifndef FIONREAD
> -#define FIONREAD                        1
> -#endif
> -#ifndef FIONBIO
> -#define FIONBIO                         1
> -#endif
> -#define THREAD_STACK_SIZE               4096
> -
> -#define LWIP_TIMERS                     1
> -/* Minimal changes to opt.h required for tcp unit tests: */
> -
> -#define MEM_SIZE                        16000
> -#define TCP_SND_QUEUELEN                40
> -#define MEMP_NUM_TCP_SEG                TCP_SND_QUEUELEN
> -#define TCP_SND_BUF                     (12 * TCP_MSS)
> -#define TCP_WND                         (10 * TCP_MSS)
> -#define LWIP_WND_SCALE                  1
> -#define TCP_RCV_SCALE                   0
> -#define PBUF_POOL_SIZE                  400 // pbuf tests need ~200KByte
> -
> -/* Minimal changes to opt.h required for etharp unit tests: */
> -#define ETHARP_SUPPORT_STATIC_ENTRIES   1
> -
> -#endif /* LWIP_HDR_LWIPOPTS_H__ */
> -
> -#endif /* 0 */
> -
> -/**
> - * \file lwipopts.h - Configuration options for lwIP
> - *
> - * Copyright (c) 2010 Texas Instruments Incorporated
> - */
> -/*
> - * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
> - * All rights reserved.
> - *
> - * Redistribution and use in source and binary forms, with or without modification,
> - * are permitted provided that the following conditions are met:
> - *
> - * 1. Redistributions of source code must retain the above copyright notice,
> - *    this list of conditions and the following disclaimer.
> - * 2. Redistributions in binary form must reproduce the above copyright notice,
> - *    this list of conditions and the following disclaimer in the documentation
> - *    and/or other materials provided with the distribution.
> - * 3. The name of the author may not be used to endorse or promote products
> - *    derived from this software without specific prior written permission.
> - *
> - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
> - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
> - * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
> - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
> - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
> - * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
> - * OF SUCH DAMAGE.
> - *
> - * This file is part of the lwIP TCP/IP stack.
> - *
> - * Author: Adam Dunkels <adam at sics.se>
> - *
> - */
> -
> -#ifndef __LWIPOPTS_H__
> -#define __LWIPOPTS_H__
> -
> -/*****************************************************************************
> -**                           CONFIGURATIONS
> -*****************************************************************************/
> -
> -/*
> -** The macro CPSW_DUAL_MAC_MODE shall be defined for using CPSW ports in
> -** Dual MAC mode.
> -*/
> -#define CPSW_DUAL_MAC_MODE
> -
> -/*
> -** The below macro should be defined for using lwIP with cache. For cache
> -** enabling, pbuf pool shall be cache line aligned. This is done by using
> -** separate pool for each memory. The alignment of pbuf pool to cache line
> -** size is done in /ports/cpsw/include/arch/cc.h.
> -*/
> -/*#define LWIP_CACHE_ENABLED*/
> -
> -#define SOC_CACHELINE_SIZE_BYTES        64            /* Number of bytes in
> -                                                         a cache line */
> -/*
> -** The timeout for DHCP completion. lwIP library will wait for DHCP
> -** completion for (LWIP_DHCP_TIMEOUT / 100) seconds.
> -*/
> -#define LWIP_DHCP_TIMEOUT               1000
> -
> -/*
> -** The number of times DHCP is attempted. Each time, the library will wait
> -** for (LWIP_DHCP_TIMEOUT / 100) seconds for DHCP completion.
> -*/
> -#define NUM_DHCP_TRIES                  5
> -
> -#define LWIP_ETHERNET 1
> -#define LWIP_ARP 1
> -#define LWIP_DNS 1
> -
> -/*****************************************************************************
> -**            lwIP SPECIFIC DEFINITIONS - To be used by lwIP stack
> -*****************************************************************************/
> -#define HOST_TMR_INTERVAL               0
> -#define DYNAMIC_HTTP_HEADERS
> -
> -/*****************************************************************************
> -**                    Platform specific locking
> -*****************************************************************************/
> -#define SYS_LIGHTWEIGHT_PROT            1
> -#define NO_SYS                          0
> -#define NO_SYS_NO_TIMERS                0
> -
> -/*****************************************************************************
> -**                          Memory Options
> -*****************************************************************************/
> -#define MEM_ALIGNMENT                   4
> -#define MEM_SIZE                        (1024 * 1024) /* 4K */
> -
> -#define MEMP_NUM_PBUF                   96
> -#define MEMP_NUM_TCP_PCB                32
> -#define MEMP_NUM_TCP_SEG                32
> -#define PBUF_POOL_SIZE                  512
> -#define MEMP_MEM_MALLOC                 1
> -#define MEMP_MEM_INIT                   1
> -#define MEMP_OVERFLOW_CHECK             0
> -
> -#ifdef LWIP_CACHE_ENABLED
> -#define MEMP_SEPARATE_POOLS             1            /* We want the pbuf
> -                                                        pool cache line
> -                                                        aligned*/
> -#endif
> -
> -//#define MEMP_NUM_SYS_TIMEOUT (LWIP_TCP + IP_REASSEMBLY + LWIP_ARP + (2*LWIP_DHCP) + LWIP_AUTOIP + LWIP_IGMP + LWIP_DNS + PPP_SUPPORT)
> -
> -/*****************************************************************************
> -**                           IP Options
> -*****************************************************************************/
> -#define IP_REASSEMBLY                   0
> -#define IP_FRAG                         0
> -#define LWIP_IPV4                       1
> -#define LWIP_IPV6                       1
> -
> -/*****************************************************************************
> -**                           DHCP Options
> -*****************************************************************************/
> -#define LWIP_DHCP                       1
> -#define DHCP_DOES_ARP_CHECK             0
> -
> -/*****************************************************************************
> -**                           Auto IP  Options
> -*****************************************************************************/
> -#define LWIP_AUTOIP                     1
> -#define LWIP_DHCP_AUTOIP_COOP           ((LWIP_DHCP) && (LWIP_AUTOIP))
> -
> -/*****************************************************************************
> -**                           TCP  Options
> -*****************************************************************************/
> -#define TCP_MSS                         1500
> -#define TCP_WND                         (8 * TCP_MSS)
> -#define TCP_SND_BUF                     (8 * TCP_MSS)
> -#define TCP_OVERSIZE                    TCP_MSS
> -#define LWIP_TCPIP_CORE_LOCKING         1
> -
> -/*****************************************************************************
> -**                           PBUF  Options
> -*****************************************************************************/
> -#define PBUF_LINK_HLEN                  14
> -#define PBUF_POOL_BUFSIZE               1520         /* + size of struct pbuf
> -                                                        shall be cache line
> -                                                        aligned be enabled */
> -#define ETH_PAD_SIZE                    0
> -#define LWIP_NETCONN                    1
> -
> -/*****************************************************************************
> -**                           Socket  Options
> -*****************************************************************************/
> -#define LWIP_SOCKET                     1
> -#define SO_REUSE                        1
> -
> -/*****************************************************************************
> -**                          Debugging options
> -*****************************************************************************/
> -#define LWIP_DBG_MIN_LEVEL              LWIP_DBG_LEVEL_OFF
> -#define LWIP_DBG_TYPES_ON               (LWIP_DBG_ON | LWIP_DBG_TRACE \
> -                                         |LWIP_DBG_STATE | LWIP_DBG_FRESH)
> -#define DHCP_DEBUG                      LWIP_DBG_OFF
> -#define NETIF_DEBUG                     LWIP_DBG_OFF
> -#define IP_DEBUG			LWIP_DBG_OFF
> -#define UDP_DEBUG			LWIP_DBG_OFF
> -#define ETHARP_DEBUG                    LWIP_DBG_OFF
> -#define SYS_DEBUG                       LWIP_DBG_OFF
> -#define RAW_DEBUG                       LWIP_DBG_OFF
> -#define MEM_DEBUG                       LWIP_DBG_OFF
> -#define MEMP_DEBUG                      LWIP_DBG_OFF
> -#define PBUF_DEBUG			LWIP_DBG_OFF
> -#define TCPIP_DEBUG			LWIP_DBG_OFF
> -#define APP_DEBUG			LWIP_DBG_OFF
> -#define SOCKETS_DEBUG		LWIP_DBG_OFF
> -#define LWIP_STATS                      0
> -#define LWIP_STATS_DISPLAY              0
> -#define LWIP_STATS_POSIX                0
> -#define LWIP_DNS_API_DEFINE_ERRORS      1
> -
> -
> -
> -/**
> - * LWIP_COMPAT_SOCKETS==1: Enable BSD-style sockets functions names.
> - * (only used if you use sockets.c)
> - */
> -#define LWIP_COMPAT_SOCKETS            0
> -
> - #define LWIP_TIMEVAL_PRIVATE 0
> -
> - #define LWIP_RAW                        0
> -
> -#endif /* __LWIPOPTS_H__ */


More information about the devel mailing list