mirror of
https://github.com/apache/nuttx.git
synced 2026-10-11 16:20:21 +00:00
arch/zynq-mpsoc improve the ethernet driver
1. Changes the phyadd to 0xC to speed up the training of phyadd. 2. Set RX DMA buffer size configureable. 3. Create netnsh configs as ethernet boot from QSPI FLASH. 4. Fix some typo in #15720 which is nonsynchronous with local code.
This commit is contained in:
parent
9754fdf63c
commit
22f2d39e21
6 changed files with 152 additions and 16 deletions
|
|
@ -86,6 +86,16 @@ config ZYNQ_GMAC_NTXBUFFERS
|
|||
that can be in flight. This is also equal to the number of TX
|
||||
descriptors that will be allocated.
|
||||
|
||||
config ZYNQ_GMAC_RXDMA_BUFSIZE
|
||||
int "RX DMA buffer size"
|
||||
default 128
|
||||
range 64 10240
|
||||
---help---
|
||||
DMA receive buffer size in external AMBA (AHB/AXI) system memory.
|
||||
The value defined by these bits determines the size of buffer to
|
||||
use in main system memory when writing received data. The value
|
||||
must be defined as multiples of 64 bytes, i.e. 64, 128, 256...
|
||||
|
||||
config ZYNQ_GMAC_PREALLOCATE
|
||||
bool "Preallocate buffers"
|
||||
default n
|
||||
|
|
|
|||
|
|
@ -203,10 +203,3 @@ void arm64_chip_boot(void)
|
|||
up_perf_init((void *)CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC);
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(CONFIG_NET) && !defined(CONFIG_NETDEV_LATEINIT)
|
||||
void arm64_netinitialize(void)
|
||||
{
|
||||
/* TODO: Support net initialize */
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -99,8 +99,8 @@
|
|||
|
||||
/* GMAC buffer sizes, number of buffers, and number of descriptors. *********/
|
||||
|
||||
#define GMAC_RX_UNITSIZE 128 /* Fixed size for RX buffer */
|
||||
#define GMAC_TX_UNITSIZE CONFIG_NET_ETH_PKTSIZE /* MAX size for Ethernet packet */
|
||||
#define GMAC_RX_UNITSIZE CONFIG_ZYNQ_GMAC_RXDMA_BUFSIZE /* DMA buffer size for receive */
|
||||
#define GMAC_TX_UNITSIZE CONFIG_NET_ETH_PKTSIZE /* MAX size for Ethernet packet */
|
||||
|
||||
/* The MAC can support frame lengths up to 1536 bytes */
|
||||
|
||||
|
|
@ -3551,8 +3551,8 @@ static int zynq_gmac_configure(struct zynq_gmac_s *priv)
|
|||
* IRXER = 0 : Disable ignore IPG GXER
|
||||
*/
|
||||
|
||||
regval = GMAC_NCFGR_FD | GMAC_NCFGR_GBE |
|
||||
GMAC_NCFGR_CLK_DIV64 | GMAC_NCFGR_DBW_64;
|
||||
regval = GMAC_NCFGR_FD | GMAC_NCFGR_GBE | GMAC_NCFGR_PEN |
|
||||
GMAC_NCFGR_RFCS | GMAC_NCFGR_CLK_DIV64 | GMAC_NCFGR_DBW_64;
|
||||
|
||||
#ifdef CONFIG_NET_PROMISCUOUS
|
||||
regval |= GMAC_NCFGR_CAF;
|
||||
|
|
@ -3568,6 +3568,14 @@ static int zynq_gmac_configure(struct zynq_gmac_s *priv)
|
|||
|
||||
regval = zynq_getreg(priv, ZYNQ_GMAC_DCFGR);
|
||||
|
||||
/* DMA receive buffer size in external AMBA (AHB/AXI) system memory */
|
||||
|
||||
regval &= ~GMAC_DCFGR_DRBS_MASK;
|
||||
|
||||
/* The value is defined in multiples of 64 bytes */
|
||||
|
||||
regval |= GMAC_DCFGR_DRBS(GMAC_RX_UNITSIZE / 64);
|
||||
|
||||
regval &= ~GMAC_DCFGR_ESPA;
|
||||
|
||||
#ifdef CDNS_TX_CSUM_OFFLOAD
|
||||
|
|
|
|||
|
|
@ -48,18 +48,33 @@ CONFIG_IDLETHREAD_STACKSIZE=8192
|
|||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=9192
|
||||
CONFIG_NET=y
|
||||
CONFIG_NETDB_DNSCLIENT=y
|
||||
CONFIG_NETDB_DNSCLIENT_ENTRIES=4
|
||||
CONFIG_NETDB_DNSSERVER_NOADDR=y
|
||||
CONFIG_NETINIT_DRIPADDR=0xc0a80002
|
||||
CONFIG_NETINIT_IPADDR=0xc0a8000f
|
||||
CONFIG_NETINIT_NOMAC=y
|
||||
CONFIG_NETUTILS_CODECS=y
|
||||
CONFIG_NETUTILS_IPERF=y
|
||||
CONFIG_NET_BINDTODEVICE=y
|
||||
CONFIG_NETUTILS_TELNETD=y
|
||||
CONFIG_NETUTILS_TFTPC=y
|
||||
CONFIG_NETUTILS_WEBCLIENT=y
|
||||
CONFIG_NET_BROADCAST=y
|
||||
CONFIG_NET_ETH_PKTSIZE=1500
|
||||
CONFIG_NET_ICMP_SOCKET=y
|
||||
CONFIG_NET_NETLINK=y
|
||||
CONFIG_NET_SOCKOPTS=y
|
||||
CONFIG_NET_LL_GUARDSIZE=32
|
||||
CONFIG_NET_MAX_LISTENPORTS=8
|
||||
CONFIG_NET_RECV_BUFSIZE=32768
|
||||
CONFIG_NET_SENDFILE=y
|
||||
CONFIG_NET_SOLINGER=y
|
||||
CONFIG_NET_STATISTICS=y
|
||||
CONFIG_NET_TCP=y
|
||||
CONFIG_NET_TCPPROTO_OPTIONS=y
|
||||
CONFIG_NET_TIMESTAMP=y
|
||||
CONFIG_NET_TCPBACKLOG=y
|
||||
CONFIG_NET_TCP_DELAYED_ACK=y
|
||||
CONFIG_NET_TCP_KEEPALIVE=y
|
||||
CONFIG_NET_TCP_WRITE_BUFFERS=y
|
||||
CONFIG_NET_UDP=y
|
||||
CONFIG_NET_UDP_WRITE_BUFFERS=y
|
||||
CONFIG_NSH_ARCHINIT=y
|
||||
CONFIG_NSH_BUILTIN_APPS=y
|
||||
CONFIG_NSH_FILEIOSIZE=512
|
||||
|
|
@ -93,3 +108,4 @@ CONFIG_USERLED_LOWER=y
|
|||
CONFIG_ZYNQ_ENET=y
|
||||
CONFIG_ZYNQ_GMAC_NRXBUFFERS=256
|
||||
CONFIG_ZYNQ_GMAC_NTXBUFFERS=256
|
||||
CONFIG_ZYNQ_GMAC_PHYADDR=12
|
||||
105
boards/arm64/zynq-mpsoc/zcu111/configs/netnsh/defconfig
Normal file
105
boards/arm64/zynq-mpsoc/zcu111/configs/netnsh/defconfig
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
#
|
||||
# This file is autogenerated: PLEASE DO NOT EDIT IT.
|
||||
#
|
||||
# You can use "make menuconfig" to make any modifications to the installed .config file.
|
||||
# You can then do "make savedefconfig" to generate a new defconfig file that includes your
|
||||
# modifications.
|
||||
#
|
||||
CONFIG_ARCH="arm64"
|
||||
CONFIG_ARCH_ARM64=y
|
||||
CONFIG_ARCH_BOARD="zcu111"
|
||||
CONFIG_ARCH_BOARD_ZCU111=y
|
||||
CONFIG_ARCH_CHIP="zynq-mpsoc"
|
||||
CONFIG_ARCH_CHIP_ZYNQ_MPSOC=y
|
||||
CONFIG_ARCH_EARLY_PRINT=y
|
||||
CONFIG_ARCH_INTERRUPTSTACK=4096
|
||||
CONFIG_ARM64_DCACHE_DISABLE=y
|
||||
CONFIG_ARM64_GIC_VERSION=2
|
||||
CONFIG_ARM64_ICACHE_DISABLE=y
|
||||
CONFIG_BOARDCTL_RESET=y
|
||||
CONFIG_BOARD_LOOPSPERMSEC=116524
|
||||
CONFIG_BUILTIN=y
|
||||
CONFIG_DEBUG_ASSERTIONS=y
|
||||
CONFIG_DEBUG_FEATURES=y
|
||||
CONFIG_DEBUG_FULLOPT=y
|
||||
CONFIG_DEBUG_IRQ=y
|
||||
CONFIG_DEBUG_IRQ_INFO=y
|
||||
CONFIG_DEBUG_SCHED=y
|
||||
CONFIG_DEBUG_SCHED_ERROR=y
|
||||
CONFIG_DEBUG_SCHED_INFO=y
|
||||
CONFIG_DEBUG_SCHED_WARN=y
|
||||
CONFIG_DEBUG_SYMBOLS=y
|
||||
CONFIG_DEFAULT_TASK_STACKSIZE=8192
|
||||
CONFIG_ETC_ROMFS=y
|
||||
CONFIG_EXAMPLES_HELLO=y
|
||||
CONFIG_EXAMPLES_LEDS=y
|
||||
CONFIG_EXPERIMENTAL=y
|
||||
CONFIG_FRAME_POINTER=y
|
||||
CONFIG_FS_PROCFS=y
|
||||
CONFIG_FS_ROMFS=y
|
||||
CONFIG_HAVE_CXX=y
|
||||
CONFIG_HAVE_CXXINITIALIZE=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=8192
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=9192
|
||||
CONFIG_NET=y
|
||||
CONFIG_NETDB_DNSCLIENT=y
|
||||
CONFIG_NETDB_DNSCLIENT_ENTRIES=4
|
||||
CONFIG_NETDB_DNSSERVER_NOADDR=y
|
||||
CONFIG_NETINIT_DRIPADDR=0xc0a80002
|
||||
CONFIG_NETINIT_IPADDR=0xc0a8000f
|
||||
CONFIG_NETINIT_NOMAC=y
|
||||
CONFIG_NETUTILS_CODECS=y
|
||||
CONFIG_NETUTILS_IPERF=y
|
||||
CONFIG_NETUTILS_TELNETD=y
|
||||
CONFIG_NETUTILS_TFTPC=y
|
||||
CONFIG_NETUTILS_WEBCLIENT=y
|
||||
CONFIG_NET_BROADCAST=y
|
||||
CONFIG_NET_ETH_PKTSIZE=1500
|
||||
CONFIG_NET_ICMP_SOCKET=y
|
||||
CONFIG_NET_LL_GUARDSIZE=32
|
||||
CONFIG_NET_MAX_LISTENPORTS=8
|
||||
CONFIG_NET_RECV_BUFSIZE=32768
|
||||
CONFIG_NET_SENDFILE=y
|
||||
CONFIG_NET_SOLINGER=y
|
||||
CONFIG_NET_STATISTICS=y
|
||||
CONFIG_NET_TCP=y
|
||||
CONFIG_NET_TCPBACKLOG=y
|
||||
CONFIG_NET_TCP_DELAYED_ACK=y
|
||||
CONFIG_NET_TCP_KEEPALIVE=y
|
||||
CONFIG_NET_TCP_WRITE_BUFFERS=y
|
||||
CONFIG_NET_UDP=y
|
||||
CONFIG_NET_UDP_WRITE_BUFFERS=y
|
||||
CONFIG_NSH_ARCHINIT=y
|
||||
CONFIG_NSH_BUILTIN_APPS=y
|
||||
CONFIG_NSH_FILEIOSIZE=512
|
||||
CONFIG_NSH_READLINE=y
|
||||
CONFIG_PREALLOC_TIMERS=4
|
||||
CONFIG_PTHREAD_STACK_MIN=8192
|
||||
CONFIG_RAMLOG=y
|
||||
CONFIG_RAM_SIZE=2145386496
|
||||
CONFIG_RAM_START=0x00100000
|
||||
CONFIG_RAW_BINARY=y
|
||||
CONFIG_READLINE_CMD_HISTORY=y
|
||||
CONFIG_RR_INTERVAL=200
|
||||
CONFIG_SCHED_BACKTRACE=y
|
||||
CONFIG_SCHED_HPWORK=y
|
||||
CONFIG_SCHED_HPWORKPRIORITY=192
|
||||
CONFIG_SPINLOCK=y
|
||||
CONFIG_STACK_COLORATION=y
|
||||
CONFIG_START_MONTH=11
|
||||
CONFIG_START_YEAR=2022
|
||||
CONFIG_SYMTAB_ORDEREDBYNAME=y
|
||||
CONFIG_SYSTEM_NSH=y
|
||||
CONFIG_SYSTEM_SYSTEM=y
|
||||
CONFIG_SYSTEM_TIME64=y
|
||||
CONFIG_TESTING_GETPRIME=y
|
||||
CONFIG_TESTING_OSTEST=y
|
||||
CONFIG_UART0_SERIAL_CONSOLE=y
|
||||
CONFIG_USEC_PER_TICK=1000
|
||||
CONFIG_USERLED=y
|
||||
CONFIG_USERLED_LOWER=y
|
||||
CONFIG_ZYNQ_ENET=y
|
||||
CONFIG_ZYNQ_GMAC_NRXBUFFERS=256
|
||||
CONFIG_ZYNQ_GMAC_NTXBUFFERS=256
|
||||
CONFIG_ZYNQ_GMAC_PHYADDR=12
|
||||
|
|
@ -38,6 +38,10 @@ ifeq ($(CONFIG_USERLED),y)
|
|||
CSRCS += zcu111_userleds.c
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_NET),y)
|
||||
CSRCS += zcu111_ethernet.c
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_ETC_ROMFS),y)
|
||||
RCSRCS = etc/init.d/rc.sysinit etc/init.d/rcS
|
||||
endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue