LM3S Ethernet now supports CONFIG_NET_NOINTS
This commit is contained in:
parent
1851e9e837
commit
bfa1da14e2
2
TODO
2
TODO
@ -1057,7 +1057,7 @@ o Network (net/, drivers/net)
|
|||||||
STM32 YES YES
|
STM32 YES YES
|
||||||
STM32F7 YES YES
|
STM32F7 YES YES
|
||||||
TIVA ----------------------- ------
|
TIVA ----------------------- ------
|
||||||
LM3S NO NO
|
LM3S YES NO
|
||||||
TM4C YES YES
|
TM4C YES YES
|
||||||
eZ80 NO NO
|
eZ80 NO NO
|
||||||
Kinetis YES YES (not tested)
|
Kinetis YES YES (not tested)
|
||||||
|
@ -911,6 +911,26 @@ config TIVA_BADCRC
|
|||||||
---help---
|
---help---
|
||||||
Set to enable bad CRC rejection.
|
Set to enable bad CRC rejection.
|
||||||
|
|
||||||
|
choice
|
||||||
|
prompt "Work queue"
|
||||||
|
default TIVA_ETHERNET_LPWORK if SCHED_LPWORK
|
||||||
|
default TIVA_ETHERNET_HPWORK if !SCHED_LPWORK && SCHED_HPWORK
|
||||||
|
depends on SCHED_WORKQUEUE
|
||||||
|
---help---
|
||||||
|
Work queue support is required to use the Ethernet driver. If the
|
||||||
|
low priority work queue is available, then it should be used by the
|
||||||
|
driver.
|
||||||
|
|
||||||
|
config TIVA_ETHERNET_HPWORK
|
||||||
|
bool "High priority"
|
||||||
|
depends on SCHED_HPWORK
|
||||||
|
|
||||||
|
config TIVA_ETHERNET_LPWORK
|
||||||
|
bool "Low priority"
|
||||||
|
depends on SCHED_LPWORK
|
||||||
|
|
||||||
|
endchoice # Work queue
|
||||||
|
|
||||||
config TIVA_DUMPPACKET
|
config TIVA_DUMPPACKET
|
||||||
bool "Dump Packets"
|
bool "Dump Packets"
|
||||||
default n
|
default n
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* arch/arm/src/tiva/lm3s_ethernet.c
|
* arch/arm/src/tiva/lm3s_ethernet.c
|
||||||
*
|
*
|
||||||
* Copyright (C) 2009-2010, 2014 Gregory Nutt. All rights reserved.
|
* Copyright (C) 2009-2010, 2014, 2016 Gregory Nutt. All rights reserved.
|
||||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -52,6 +52,11 @@
|
|||||||
#include <nuttx/arch.h>
|
#include <nuttx/arch.h>
|
||||||
#include <nuttx/wdog.h>
|
#include <nuttx/wdog.h>
|
||||||
#include <nuttx/irq.h>
|
#include <nuttx/irq.h>
|
||||||
|
|
||||||
|
#ifdef CONFIG_NET_NOINTS
|
||||||
|
# include <nuttx/wqueue.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <arch/board/board.h>
|
#include <arch/board/board.h>
|
||||||
#include <nuttx/net/arp.h>
|
#include <nuttx/net/arp.h>
|
||||||
#include <nuttx/net/netdev.h>
|
#include <nuttx/net/netdev.h>
|
||||||
@ -71,6 +76,26 @@
|
|||||||
* Pre-processor Definitions
|
* Pre-processor Definitions
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
|
/* If processing is not done at the interrupt level, then work queue support
|
||||||
|
* is required.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if defined(CONFIG_NET_NOINTS) && !defined(CONFIG_SCHED_WORKQUEUE)
|
||||||
|
# error Work queue support is required in this configuration (CONFIG_SCHED_WORKQUEUE)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Use the low priority work queue if possible */
|
||||||
|
|
||||||
|
#if defined(CONFIG_SCHED_WORKQUEUE)
|
||||||
|
# if defined(CONFIG_TIVA_ETHERNET_HPWORK)
|
||||||
|
# define ETHWORK HPWORK
|
||||||
|
# elif defined(CONFIG_TIVA_ETHERNET_LPWORK)
|
||||||
|
# define ETHWORK LPWORK
|
||||||
|
# else
|
||||||
|
# error Neither CONFIG_TIVA_ETHERNET_HPWORK nor CONFIG_TIVA_ETHERNET_LPWORK defined
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Half duplex can be forced if CONFIG_TIVA_ETHHDUPLEX is defined. */
|
/* Half duplex can be forced if CONFIG_TIVA_ETHHDUPLEX is defined. */
|
||||||
|
|
||||||
#ifdef CONFIG_TIVA_ETHHDUPLEX
|
#ifdef CONFIG_TIVA_ETHHDUPLEX
|
||||||
@ -181,6 +206,9 @@ struct tiva_driver_s
|
|||||||
bool ld_bifup; /* true:ifup false:ifdown */
|
bool ld_bifup; /* true:ifup false:ifdown */
|
||||||
WDOG_ID ld_txpoll; /* TX poll timer */
|
WDOG_ID ld_txpoll; /* TX poll timer */
|
||||||
WDOG_ID ld_txtimeout; /* TX timeout timer */
|
WDOG_ID ld_txtimeout; /* TX timeout timer */
|
||||||
|
#ifdef CONFIG_NET_NOINTS
|
||||||
|
struct work_s ld_work; /* For deferring work to the work queue */
|
||||||
|
#endif
|
||||||
|
|
||||||
/* This holds the information visible to the NuttX network */
|
/* This holds the information visible to the NuttX network */
|
||||||
|
|
||||||
@ -227,21 +255,42 @@ static int tiva_txpoll(struct net_driver_s *dev);
|
|||||||
|
|
||||||
static void tiva_receive(struct tiva_driver_s *priv);
|
static void tiva_receive(struct tiva_driver_s *priv);
|
||||||
static void tiva_txdone(struct tiva_driver_s *priv);
|
static void tiva_txdone(struct tiva_driver_s *priv);
|
||||||
static int tiva_interrupt(int irq, FAR void *context);
|
|
||||||
|
static inline void tiva_interrupt_process(struct tiva_driver_s *priv);
|
||||||
|
#ifdef CONFIG_NET_NOINTS
|
||||||
|
static void tiva_interrupt_work(void *arg);
|
||||||
|
#endif
|
||||||
|
static int tiva_interrupt(int irq, void *context);
|
||||||
|
|
||||||
/* Watchdog timer expirations */
|
/* Watchdog timer expirations */
|
||||||
|
|
||||||
static void tiva_polltimer(int argc, uint32_t arg, ...);
|
static inline void tiva_txtimeout_process(struct tiva_driver_s *priv);
|
||||||
static void tiva_txtimeout(int argc, uint32_t arg, ...);
|
#ifdef CONFIG_NET_NOINTS
|
||||||
|
static void tiva_txtimeout_work(void *arg);
|
||||||
|
#endif
|
||||||
|
static void tiva_txtimeout_expiry(int argc, uint32_t arg, ...);
|
||||||
|
|
||||||
|
static inline void tiva_poll_process(struct tiva_driver_s *priv);
|
||||||
|
#ifdef CONFIG_NET_NOINTS
|
||||||
|
static void tiva_poll_work(void *arg);
|
||||||
|
#endif
|
||||||
|
static void tiva_poll_expiry(int argc, uint32_t arg, ...);
|
||||||
|
|
||||||
/* NuttX callback functions */
|
/* NuttX callback functions */
|
||||||
|
|
||||||
static int tiva_ifup(struct net_driver_s *dev);
|
static int tiva_ifup(struct net_driver_s *dev);
|
||||||
static int tiva_ifdown(struct net_driver_s *dev);
|
static int tiva_ifdown(struct net_driver_s *dev);
|
||||||
|
|
||||||
|
|
||||||
|
static inline void tiva_txavail_process(struct tiva_driver_s *priv);
|
||||||
|
#ifdef CONFIG_NET_NOINTS
|
||||||
|
static void tiva_txavail_work(void *arg);
|
||||||
|
#endif
|
||||||
static int tiva_txavail(struct net_driver_s *dev);
|
static int tiva_txavail(struct net_driver_s *dev);
|
||||||
|
|
||||||
#ifdef CONFIG_NET_IGMP
|
#ifdef CONFIG_NET_IGMP
|
||||||
static int tiva_addmac(struct net_driver_s *dev, FAR const uint8_t *mac);
|
static int tiva_addmac(struct net_driver_s *dev, const uint8_t *mac);
|
||||||
static int tiva_rmmac(struct net_driver_s *dev, FAR const uint8_t *mac);
|
static int tiva_rmmac(struct net_driver_s *dev, const uint8_t *mac);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@ -547,7 +596,8 @@ static int tiva_transmit(struct tiva_driver_s *priv)
|
|||||||
|
|
||||||
/* Setup the TX timeout watchdog (perhaps restarting the timer) */
|
/* Setup the TX timeout watchdog (perhaps restarting the timer) */
|
||||||
|
|
||||||
(void)wd_start(priv->ld_txtimeout, TIVA_TXTIMEOUT, tiva_txtimeout, 1, (uint32_t)priv);
|
(void)wd_start(priv->ld_txtimeout, TIVA_TXTIMEOUT,
|
||||||
|
tiva_txtimeout_expiry, 1, (uint32_t)priv);
|
||||||
ret = OK;
|
ret = OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -913,33 +963,27 @@ static void tiva_txdone(struct tiva_driver_s *priv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Function: tiva_interrupt
|
* Function: tiva_interrupt_process
|
||||||
*
|
*
|
||||||
* Description:
|
* Description:
|
||||||
* Hardware interrupt handler
|
* Interrupt processing. This may be performed either within the interrupt
|
||||||
|
* handler or on the worker thread, depending upon the configuration
|
||||||
*
|
*
|
||||||
* Parameters:
|
* Parameters:
|
||||||
* irq - Number of the IRQ that generated the interrupt
|
* priv - Reference to the driver state structure
|
||||||
* context - Interrupt register state save info (architecture-specific)
|
|
||||||
*
|
*
|
||||||
* Returned Value:
|
* Returned Value:
|
||||||
* OK on success
|
* None
|
||||||
*
|
*
|
||||||
* Assumptions:
|
* Assumptions:
|
||||||
|
* The network is locked.
|
||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static int tiva_interrupt(int irq, FAR void *context)
|
static inline void tiva_interrupt_process(struct tiva_driver_s *priv)
|
||||||
{
|
{
|
||||||
register struct tiva_driver_s *priv;
|
|
||||||
uint32_t ris;
|
uint32_t ris;
|
||||||
|
|
||||||
#if TIVA_NETHCONTROLLERS > 1
|
|
||||||
# error "A mechanism to associate and interface with an IRQ is needed"
|
|
||||||
#else
|
|
||||||
priv = &g_lm3sdev[0];
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Read the raw interrupt status register */
|
/* Read the raw interrupt status register */
|
||||||
|
|
||||||
ris = tiva_ethin(priv, TIVA_MAC_RIS_OFFSET);
|
ris = tiva_ethin(priv, TIVA_MAC_RIS_OFFSET);
|
||||||
@ -994,36 +1038,142 @@ static int tiva_interrupt(int irq, FAR void *context)
|
|||||||
|
|
||||||
tiva_txdone(priv);
|
tiva_txdone(priv);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Enable Ethernet interrupts (perhaps excluding the TX done interrupt if
|
|
||||||
* there are no pending transmissions).
|
|
||||||
*/
|
|
||||||
|
|
||||||
return OK;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Function: tiva_txtimeout
|
* Function: tiva_interrupt_work
|
||||||
*
|
*
|
||||||
* Description:
|
* Description:
|
||||||
* Our TX watchdog timed out. Called from the timer interrupt handler.
|
* Perform interrupt related work from the worker thread
|
||||||
* The last TX never completed. Reset the hardware and start again.
|
|
||||||
*
|
*
|
||||||
* Parameters:
|
* Parameters:
|
||||||
* argc - The number of available arguments
|
* arg - The argument passed when work_queue() was called.
|
||||||
* arg - The first argument
|
|
||||||
*
|
*
|
||||||
* Returned Value:
|
* Returned Value:
|
||||||
* None
|
* OK on success
|
||||||
|
*
|
||||||
|
* Assumptions:
|
||||||
|
* The network is locked.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#ifdef CONFIG_NET_NOINTS
|
||||||
|
static void tiva_interrupt_work(void *arg)
|
||||||
|
{
|
||||||
|
struct tiva_driver_s *priv = (struct tiva_driver_s *)arg;
|
||||||
|
net_lock_t state;
|
||||||
|
|
||||||
|
/* Process pending Ethernet interrupts */
|
||||||
|
|
||||||
|
state = net_lock();
|
||||||
|
tiva_interrupt_process(priv);
|
||||||
|
net_unlock(state);
|
||||||
|
|
||||||
|
/* Re-enable Ethernet interrupts */
|
||||||
|
|
||||||
|
#if TIVA_NETHCONTROLLERS > 1
|
||||||
|
up_disable_irq(priv->irq);
|
||||||
|
#else
|
||||||
|
up_disable_irq(TIVA_IRQ_ETHCON);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Function: tiva_interrupt
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Hardware interrupt handler
|
||||||
|
*
|
||||||
|
* Parameters:
|
||||||
|
* irq - Number of the IRQ that generated the interrupt
|
||||||
|
* context - Interrupt register state save info (architecture-specific)
|
||||||
|
*
|
||||||
|
* Returned Value:
|
||||||
|
* OK on success
|
||||||
*
|
*
|
||||||
* Assumptions:
|
* Assumptions:
|
||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static void tiva_txtimeout(int argc, uint32_t arg, ...)
|
static int tiva_interrupt(int irq, void *context)
|
||||||
{
|
{
|
||||||
struct tiva_driver_s *priv = (struct tiva_driver_s *)arg;
|
struct tiva_driver_s *priv;
|
||||||
|
uint32_t ris;
|
||||||
|
|
||||||
|
#if TIVA_NETHCONTROLLERS > 1
|
||||||
|
# error "A mechanism to associate and interface with an IRQ is needed"
|
||||||
|
#else
|
||||||
|
priv = &g_lm3sdev[0];
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_NET_NOINTS
|
||||||
|
/* Disable further Ethernet interrupts. Because Ethernet interrupts are
|
||||||
|
* also disabled if the TX timeout event occurs, there can be no race
|
||||||
|
* condition here.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if TIVA_NETHCONTROLLERS > 1
|
||||||
|
up_disable_irq(priv->irq);
|
||||||
|
#else
|
||||||
|
up_disable_irq(TIVA_IRQ_ETHCON);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Read the raw interrupt status register (masking out any disabled
|
||||||
|
* interrupts).
|
||||||
|
*/
|
||||||
|
|
||||||
|
ris = tiva_ethin(priv, TIVA_MAC_RIS_OFFSET);
|
||||||
|
ris &= tiva_ethin(priv, TIVA_MAC_IM_OFFSET);
|
||||||
|
|
||||||
|
/* Is this an Tx interrupt (meaning that the Tx FIFO is empty)? */
|
||||||
|
|
||||||
|
if ((ris & MAC_RIS_TXEMP) != 0)
|
||||||
|
{
|
||||||
|
/* If a TX transfer just completed, then cancel the TX timeout so
|
||||||
|
* there will be do race condition between any subsequent timeout
|
||||||
|
* expiration and the deferred interrupt processing.
|
||||||
|
*/
|
||||||
|
|
||||||
|
wd_cancel(priv->ld_txtimeout);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Cancel any pending poll work */
|
||||||
|
|
||||||
|
work_cancel(HPWORK, &priv->ld_work);
|
||||||
|
|
||||||
|
/* Schedule to perform the interrupt processing on the worker thread. */
|
||||||
|
|
||||||
|
work_queue(ETHWORK, &priv->ld_work, tiva_interrupt_work, priv, 0);
|
||||||
|
|
||||||
|
#else
|
||||||
|
/* Process the interrupt now */
|
||||||
|
|
||||||
|
tiva_interrupt_process(priv);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Function: tiva_txtimeout_process
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Process a TX timeout. Called from the either the watchdog timer
|
||||||
|
* expiration logic or from the worker thread, depending upon the
|
||||||
|
* configuration. The timeout means that the last TX never completed.
|
||||||
|
* Reset the hardware and start again.
|
||||||
|
*
|
||||||
|
* Parameters:
|
||||||
|
* priv - Reference to the driver state structure
|
||||||
|
*
|
||||||
|
* Returned Value:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
static inline void tiva_txtimeout_process(struct tiva_driver_s *priv)
|
||||||
|
{
|
||||||
/* Increment statistics */
|
/* Increment statistics */
|
||||||
|
|
||||||
nerr("ERROR: Tx timeout\n");
|
nerr("ERROR: Tx timeout\n");
|
||||||
@ -1041,7 +1191,162 @@ static void tiva_txtimeout(int argc, uint32_t arg, ...)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Function: tiva_polltimer
|
* Function: tiva_txtimeout_work
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Perform TX timeout related work from the worker thread
|
||||||
|
*
|
||||||
|
* Parameters:
|
||||||
|
* arg - The argument passed when work_queue() as called.
|
||||||
|
*
|
||||||
|
* Returned Value:
|
||||||
|
* OK on success
|
||||||
|
*
|
||||||
|
* Assumptions:
|
||||||
|
* The network is locked.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#ifdef CONFIG_NET_NOINTS
|
||||||
|
static void tiva_txtimeout_work(void *arg)
|
||||||
|
{
|
||||||
|
struct tiva_driver_s *priv = (struct tiva_driver_s *)arg;
|
||||||
|
net_lock_t state;
|
||||||
|
|
||||||
|
/* Process pending Ethernet interrupts */
|
||||||
|
|
||||||
|
state = net_lock();
|
||||||
|
tiva_txtimeout_process(priv);
|
||||||
|
net_unlock(state);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Function: tiva_txtimeout_expiry
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Our TX watchdog timed out. Called from the timer interrupt handler.
|
||||||
|
* The last TX never completed. Reset the hardware and start again.
|
||||||
|
*
|
||||||
|
* Parameters:
|
||||||
|
* argc - The number of available arguments
|
||||||
|
* arg - The first argument
|
||||||
|
*
|
||||||
|
* Returned Value:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Assumptions:
|
||||||
|
* Global interrupts are disabled by the watchdog logic.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
static void tiva_txtimeout_expiry(int argc, wdparm_t arg, ...)
|
||||||
|
{
|
||||||
|
struct tiva_driver_s *priv = (struct tiva_driver_s *)arg;
|
||||||
|
|
||||||
|
#ifdef CONFIG_NET_NOINTS
|
||||||
|
/* Disable further Ethernet interrupts. This will prevent some race
|
||||||
|
* conditions with interrupt work. There is still a potential race
|
||||||
|
* condition with interrupt work that is already queued and in progress.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if TIVA_NETHCONTROLLERS > 1
|
||||||
|
up_disable_irq(priv->irq);
|
||||||
|
#else
|
||||||
|
up_disable_irq(TIVA_IRQ_ETHCON);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Cancel any pending poll or interrupt work. This will have no effect
|
||||||
|
* on work that has already been started.
|
||||||
|
*/
|
||||||
|
|
||||||
|
work_cancel(ETHWORK, &priv->ld_work);
|
||||||
|
|
||||||
|
/* Schedule to perform the TX timeout processing on the worker thread. */
|
||||||
|
|
||||||
|
work_queue(ETHWORK, &priv->ld_work, tiva_txtimeout_work, priv, 0);
|
||||||
|
#else
|
||||||
|
/* Process the timeout now */
|
||||||
|
|
||||||
|
tiva_txtimeout_process(priv);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Function: tiva_poll_process
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Perform the periodic poll. This may be called either from watchdog
|
||||||
|
* timer logic or from the worker thread, depending upon the configuration.
|
||||||
|
*
|
||||||
|
* Parameters:
|
||||||
|
* priv - Reference to the driver state structure
|
||||||
|
*
|
||||||
|
* Returned Value:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Assumptions:
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
static inline void tiva_poll_process(struct tiva_driver_s *priv)
|
||||||
|
{
|
||||||
|
/* Check if we can send another Tx packet now. The NEWTX bit initiates an
|
||||||
|
* Ethernet transmission once the packet has been placed in the TX FIFO.
|
||||||
|
* This bit is cleared once the transmission has been completed.
|
||||||
|
*
|
||||||
|
* NOTE: This can cause missing poll cycles and, hence, some timing
|
||||||
|
* inaccuracies.
|
||||||
|
*/
|
||||||
|
|
||||||
|
if ((tiva_ethin(priv, TIVA_MAC_TR_OFFSET) & MAC_TR_NEWTX) == 0)
|
||||||
|
{
|
||||||
|
/* If so, update TCP timing states and poll the network for new XMIT
|
||||||
|
* data.
|
||||||
|
*/
|
||||||
|
|
||||||
|
(void)devif_timer(&priv->ld_dev, tiva_txpoll);
|
||||||
|
|
||||||
|
/* Setup the watchdog poll timer again */
|
||||||
|
|
||||||
|
(void)wd_start(priv->ld_txpoll, TIVA_WDDELAY, tiva_poll_expiry,
|
||||||
|
1, priv);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Function: tiva_poll_work
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Perform periodic polling from the worker thread
|
||||||
|
*
|
||||||
|
* Parameters:
|
||||||
|
* arg - The argument passed when work_queue() as called.
|
||||||
|
*
|
||||||
|
* Returned Value:
|
||||||
|
* OK on success
|
||||||
|
*
|
||||||
|
* Assumptions:
|
||||||
|
* The network is locked.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#ifdef CONFIG_NET_NOINTS
|
||||||
|
static void tiva_poll_work(void *arg)
|
||||||
|
{
|
||||||
|
struct tiva_driver_s *priv = (struct tiva_driver_s *)arg;
|
||||||
|
net_lock_t state;
|
||||||
|
|
||||||
|
/* Perform the poll */
|
||||||
|
|
||||||
|
state = net_lock();
|
||||||
|
tiva_poll_process(priv);
|
||||||
|
net_unlock(state);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Function: tiva_poll_expiry
|
||||||
*
|
*
|
||||||
* Description:
|
* Description:
|
||||||
* Periodic timer handler. Called from the timer interrupt handler.
|
* Periodic timer handler. Called from the timer interrupt handler.
|
||||||
@ -1054,31 +1359,39 @@ static void tiva_txtimeout(int argc, uint32_t arg, ...)
|
|||||||
* None
|
* None
|
||||||
*
|
*
|
||||||
* Assumptions:
|
* Assumptions:
|
||||||
|
* Global interrupts are disabled by the watchdog logic.
|
||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static void tiva_polltimer(int argc, uint32_t arg, ...)
|
static void tiva_poll_expiry(int argc, wdparm_t arg, ...)
|
||||||
{
|
{
|
||||||
struct tiva_driver_s *priv = (struct tiva_driver_s *)arg;
|
struct tiva_driver_s *priv = (struct tiva_driver_s *)arg;
|
||||||
|
|
||||||
/* Check if we can send another Tx packet now. The NEWTX bit initiates an
|
#ifdef CONFIG_NET_NOINTS
|
||||||
* Ethernet transmission once the packet has been placed in the TX FIFO.
|
/* Is our single work structure available? It may not be if there are
|
||||||
* This bit is cleared once the transmission has been completed.
|
* pending interrupt actions.
|
||||||
*
|
|
||||||
* NOTE: This can cause missing poll cycles and, hence, some timing
|
|
||||||
* inaccuracies.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ((tiva_ethin(priv, TIVA_MAC_TR_OFFSET) & MAC_TR_NEWTX) == 0)
|
if (work_available(&priv->ld_work))
|
||||||
{
|
{
|
||||||
/* If so, update TCP timing states and poll the network for new XMIT data */
|
/* Schedule to perform the interrupt processing on the worker thread. */
|
||||||
|
|
||||||
(void)devif_timer(&priv->ld_dev, tiva_txpoll);
|
work_queue(ETHWORK, &priv->ld_work, tiva_poll_work, priv, 0);
|
||||||
|
|
||||||
/* Setup the watchdog poll timer again */
|
|
||||||
|
|
||||||
(void)wd_start(priv->ld_txpoll, TIVA_WDDELAY, tiva_polltimer, 1, arg);
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* No.. Just re-start the watchdog poll timer, missing one polling
|
||||||
|
* cycle.
|
||||||
|
*/
|
||||||
|
|
||||||
|
(void)wd_start(priv->ld_txpoll, TIVA_WDDELAY, tiva_poll_expiry, 1, arg);
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
/* Process the interrupt now */
|
||||||
|
|
||||||
|
tiva_poll_process(priv);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@ -1230,7 +1543,7 @@ static int tiva_ifup(struct net_driver_s *dev)
|
|||||||
|
|
||||||
/* Set and activate a timer process */
|
/* Set and activate a timer process */
|
||||||
|
|
||||||
(void)wd_start(priv->ld_txpoll, TIVA_WDDELAY, tiva_polltimer, 1, (uint32_t)priv);
|
(void)wd_start(priv->ld_txpoll, TIVA_WDDELAY, tiva_poll_expiry, 1, (uint32_t)priv);
|
||||||
|
|
||||||
priv->ld_bifup = true;
|
priv->ld_bifup = true;
|
||||||
leave_critical_section(flags);
|
leave_critical_section(flags);
|
||||||
@ -1320,6 +1633,74 @@ static int tiva_ifdown(struct net_driver_s *dev)
|
|||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Function: tiva_txavail_process
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Perform an out-of-cycle poll.
|
||||||
|
*
|
||||||
|
* Parameters:
|
||||||
|
* dev - Reference to the NuttX driver state structure
|
||||||
|
*
|
||||||
|
* Returned Value:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Assumptions:
|
||||||
|
* Called in normal user mode
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
static inline void tiva_txavail_process(struct tiva_driver_s *priv)
|
||||||
|
{
|
||||||
|
/* Ignore the notification if the interface is not yet up or if the Tx FIFO
|
||||||
|
* hardware is not available at this time. The NEWTX bit initiates an
|
||||||
|
* Ethernet transmission once the packet has been placed in the TX FIFO.
|
||||||
|
* This bit is cleared once the transmission has been completed. When the
|
||||||
|
* transmission completes, tiva_txdone() will be called and the Tx polling
|
||||||
|
* will occur at that time.
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (priv->ld_bifup && (tiva_ethin(priv, TIVA_MAC_TR_OFFSET) & MAC_TR_NEWTX) == 0)
|
||||||
|
{
|
||||||
|
/* If the interface is up and we can use the Tx FIFO, then poll the network
|
||||||
|
* for new Tx data
|
||||||
|
*/
|
||||||
|
|
||||||
|
(void)devif_poll(&priv->ld_dev, tiva_txpoll);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Function: tiva_txavail_work
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Perform an out-of-cycle poll on the worker thread.
|
||||||
|
*
|
||||||
|
* Parameters:
|
||||||
|
* arg - Reference to the NuttX driver state structure (cast to void*)
|
||||||
|
*
|
||||||
|
* Returned Value:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Assumptions:
|
||||||
|
* Called on the higher priority worker thread.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#ifdef CONFIG_NET_NOINTS
|
||||||
|
static void tiva_txavail_work(void *arg)
|
||||||
|
{
|
||||||
|
struct tiva_driver_s *priv = (struct tiva_driver_s *)arg;
|
||||||
|
net_lock_t state;
|
||||||
|
|
||||||
|
/* Perform the poll */
|
||||||
|
|
||||||
|
state = net_lock();
|
||||||
|
tiva_txavail_process(priv);
|
||||||
|
net_unlock(state);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Function: tiva_txavail
|
* Function: tiva_txavail
|
||||||
*
|
*
|
||||||
@ -1329,7 +1710,7 @@ static int tiva_ifdown(struct net_driver_s *dev)
|
|||||||
* latency.
|
* latency.
|
||||||
*
|
*
|
||||||
* Parameters:
|
* Parameters:
|
||||||
* dev - Reference to the NuttX driver state structure
|
* dev - Reference to the NuttX driver state structure
|
||||||
*
|
*
|
||||||
* Returned Value:
|
* Returned Value:
|
||||||
* None
|
* None
|
||||||
@ -1342,27 +1723,35 @@ static int tiva_ifdown(struct net_driver_s *dev)
|
|||||||
static int tiva_txavail(struct net_driver_s *dev)
|
static int tiva_txavail(struct net_driver_s *dev)
|
||||||
{
|
{
|
||||||
struct tiva_driver_s *priv = (struct tiva_driver_s *)dev->d_private;
|
struct tiva_driver_s *priv = (struct tiva_driver_s *)dev->d_private;
|
||||||
|
|
||||||
|
#ifdef CONFIG_NET_NOINTS
|
||||||
|
/* Is our single work structure available? It may not be if there are
|
||||||
|
* pending interrupt actions and we will have to ignore the Tx
|
||||||
|
* availability action.
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (work_available(&priv->ld_work))
|
||||||
|
{
|
||||||
|
/* Schedule to serialize the poll on the worker thread. */
|
||||||
|
|
||||||
|
work_queue(ETHWORK, &priv->ld_work, tiva_txavail_work, priv, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
irqstate_t flags;
|
irqstate_t flags;
|
||||||
|
|
||||||
/* Ignore the notification if the interface is not yet up or if the Tx FIFO
|
/* Disable interrupts because this function may be called from interrupt
|
||||||
* hardware is not available at this time. The NEWTX bit initiates an
|
* level processing.
|
||||||
* Ethernet transmission once the packet has been placed in the TX FIFO.
|
|
||||||
* This bit is cleared once the transmission has been completed. When the
|
|
||||||
* transmission completes, tiva_txdone() will be called and the Tx polling
|
|
||||||
* will occur at that time.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
flags = enter_critical_section();
|
flags = enter_critical_section();
|
||||||
if (priv->ld_bifup && (tiva_ethin(priv, TIVA_MAC_TR_OFFSET) & MAC_TR_NEWTX) == 0)
|
|
||||||
{
|
|
||||||
/* If the interface is up and we can use the Tx FIFO, then poll the network
|
|
||||||
* for new Tx data
|
|
||||||
*/
|
|
||||||
|
|
||||||
(void)devif_poll(&priv->ld_dev, tiva_txpoll);
|
/* Perform the out-of-cycle poll now */
|
||||||
}
|
|
||||||
|
|
||||||
|
tiva_txavail_process(priv);
|
||||||
leave_critical_section(flags);
|
leave_critical_section(flags);
|
||||||
|
#endif
|
||||||
|
|
||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1385,9 +1774,9 @@ static int tiva_txavail(struct net_driver_s *dev)
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#ifdef CONFIG_NET_IGMP
|
#ifdef CONFIG_NET_IGMP
|
||||||
static int tiva_addmac(struct net_driver_s *dev, FAR const uint8_t *mac)
|
static int tiva_addmac(struct net_driver_s *dev, const uint8_t *mac)
|
||||||
{
|
{
|
||||||
FAR struct tiva_driver_s *priv = (FAR struct tiva_driver_s *)dev->d_private;
|
struct tiva_driver_s *priv = (struct tiva_driver_s *)dev->d_private;
|
||||||
|
|
||||||
/* Add the MAC address to the hardware multicast routing table */
|
/* Add the MAC address to the hardware multicast routing table */
|
||||||
|
|
||||||
@ -1415,9 +1804,9 @@ static int tiva_addmac(struct net_driver_s *dev, FAR const uint8_t *mac)
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#ifdef CONFIG_NET_IGMP
|
#ifdef CONFIG_NET_IGMP
|
||||||
static int tiva_rmmac(struct net_driver_s *dev, FAR const uint8_t *mac)
|
static int tiva_rmmac(struct net_driver_s *dev, const uint8_t *mac)
|
||||||
{
|
{
|
||||||
FAR struct tiva_driver_s *priv = (FAR struct tiva_driver_s *)dev->d_private;
|
struct tiva_driver_s *priv = (struct tiva_driver_s *)dev->d_private;
|
||||||
|
|
||||||
/* Add the MAC address to the hardware multicast routing table */
|
/* Add the MAC address to the hardware multicast routing table */
|
||||||
|
|
||||||
|
@ -257,6 +257,7 @@ CONFIG_TIVA_GPIOG_IRQS=y
|
|||||||
# CONFIG_TIVA_PROMISCUOUS is not set
|
# CONFIG_TIVA_PROMISCUOUS is not set
|
||||||
# CONFIG_TIVA_TIMESTAMP is not set
|
# CONFIG_TIVA_TIMESTAMP is not set
|
||||||
# CONFIG_TIVA_BADCRC is not set
|
# CONFIG_TIVA_BADCRC is not set
|
||||||
|
CONFIG_TIVA_ETHERNET_HPWORK=y
|
||||||
# CONFIG_TIVA_DUMPPACKET is not set
|
# CONFIG_TIVA_DUMPPACKET is not set
|
||||||
CONFIG_TIVA_BOARDMAC=y
|
CONFIG_TIVA_BOARDMAC=y
|
||||||
|
|
||||||
@ -414,6 +415,7 @@ CONFIG_NAME_MAX=32
|
|||||||
# CONFIG_SCHED_STARTHOOK is not set
|
# CONFIG_SCHED_STARTHOOK is not set
|
||||||
# CONFIG_SCHED_ATEXIT is not set
|
# CONFIG_SCHED_ATEXIT is not set
|
||||||
# CONFIG_SCHED_ONEXIT is not set
|
# CONFIG_SCHED_ONEXIT is not set
|
||||||
|
# CONFIG_SIG_EVTHREAD is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Signal Numbers
|
# Signal Numbers
|
||||||
@ -422,13 +424,17 @@ CONFIG_SIG_SIGUSR1=1
|
|||||||
CONFIG_SIG_SIGUSR2=2
|
CONFIG_SIG_SIGUSR2=2
|
||||||
CONFIG_SIG_SIGALARM=3
|
CONFIG_SIG_SIGALARM=3
|
||||||
CONFIG_SIG_SIGCONDTIMEDOUT=16
|
CONFIG_SIG_SIGCONDTIMEDOUT=16
|
||||||
|
CONFIG_SIG_SIGWORK=17
|
||||||
# CONFIG_MODULE is not set
|
# CONFIG_MODULE is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Work queue support
|
# Work queue support
|
||||||
#
|
#
|
||||||
# CONFIG_SCHED_WORKQUEUE is not set
|
CONFIG_SCHED_WORKQUEUE=y
|
||||||
# CONFIG_SCHED_HPWORK is not set
|
CONFIG_SCHED_HPWORK=y
|
||||||
|
CONFIG_SCHED_HPWORKPRIORITY=224
|
||||||
|
CONFIG_SCHED_HPWORKPERIOD=50000
|
||||||
|
CONFIG_SCHED_HPWORKSTACKSIZE=2048
|
||||||
# CONFIG_SCHED_LPWORK is not set
|
# CONFIG_SCHED_LPWORK is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -521,7 +527,6 @@ CONFIG_ARCH_HAVE_NETDEV_STATISTICS=y
|
|||||||
# CONFIG_NET_DM90x0 is not set
|
# CONFIG_NET_DM90x0 is not set
|
||||||
# CONFIG_ENC28J60 is not set
|
# CONFIG_ENC28J60 is not set
|
||||||
# CONFIG_ENCX24J600 is not set
|
# CONFIG_ENCX24J600 is not set
|
||||||
|
|
||||||
# CONFIG_NET_SLIP is not set
|
# CONFIG_NET_SLIP is not set
|
||||||
# CONFIG_NET_FTMAC100 is not set
|
# CONFIG_NET_FTMAC100 is not set
|
||||||
# CONFIG_PIPES is not set
|
# CONFIG_PIPES is not set
|
||||||
@ -604,7 +609,7 @@ CONFIG_SYSLOG_CONSOLE=y
|
|||||||
CONFIG_ARCH_HAVE_NET=y
|
CONFIG_ARCH_HAVE_NET=y
|
||||||
# CONFIG_ARCH_HAVE_PHY is not set
|
# CONFIG_ARCH_HAVE_PHY is not set
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
# CONFIG_NET_NOINTS is not set
|
CONFIG_NET_NOINTS=y
|
||||||
# CONFIG_NET_PROMISCUOUS is not set
|
# CONFIG_NET_PROMISCUOUS is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -257,6 +257,7 @@ CONFIG_TIVA_GPIOG_IRQS=y
|
|||||||
# CONFIG_TIVA_PROMISCUOUS is not set
|
# CONFIG_TIVA_PROMISCUOUS is not set
|
||||||
# CONFIG_TIVA_TIMESTAMP is not set
|
# CONFIG_TIVA_TIMESTAMP is not set
|
||||||
# CONFIG_TIVA_BADCRC is not set
|
# CONFIG_TIVA_BADCRC is not set
|
||||||
|
CONFIG_TIVA_ETHERNET_HPWORK=y
|
||||||
# CONFIG_TIVA_DUMPPACKET is not set
|
# CONFIG_TIVA_DUMPPACKET is not set
|
||||||
CONFIG_TIVA_BOARDMAC=y
|
CONFIG_TIVA_BOARDMAC=y
|
||||||
|
|
||||||
@ -408,6 +409,7 @@ CONFIG_NAME_MAX=32
|
|||||||
# CONFIG_SCHED_STARTHOOK is not set
|
# CONFIG_SCHED_STARTHOOK is not set
|
||||||
# CONFIG_SCHED_ATEXIT is not set
|
# CONFIG_SCHED_ATEXIT is not set
|
||||||
# CONFIG_SCHED_ONEXIT is not set
|
# CONFIG_SCHED_ONEXIT is not set
|
||||||
|
# CONFIG_SIG_EVTHREAD is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Signal Numbers
|
# Signal Numbers
|
||||||
@ -415,13 +417,17 @@ CONFIG_NAME_MAX=32
|
|||||||
CONFIG_SIG_SIGUSR1=1
|
CONFIG_SIG_SIGUSR1=1
|
||||||
CONFIG_SIG_SIGUSR2=2
|
CONFIG_SIG_SIGUSR2=2
|
||||||
CONFIG_SIG_SIGALARM=3
|
CONFIG_SIG_SIGALARM=3
|
||||||
|
CONFIG_SIG_SIGWORK=17
|
||||||
# CONFIG_MODULE is not set
|
# CONFIG_MODULE is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Work queue support
|
# Work queue support
|
||||||
#
|
#
|
||||||
# CONFIG_SCHED_WORKQUEUE is not set
|
CONFIG_SCHED_WORKQUEUE=y
|
||||||
# CONFIG_SCHED_HPWORK is not set
|
CONFIG_SCHED_HPWORK=y
|
||||||
|
CONFIG_SCHED_HPWORKPRIORITY=224
|
||||||
|
CONFIG_SCHED_HPWORKPERIOD=50000
|
||||||
|
CONFIG_SCHED_HPWORKSTACKSIZE=2048
|
||||||
# CONFIG_SCHED_LPWORK is not set
|
# CONFIG_SCHED_LPWORK is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -513,7 +519,6 @@ CONFIG_ARCH_HAVE_NETDEV_STATISTICS=y
|
|||||||
# CONFIG_NET_DM90x0 is not set
|
# CONFIG_NET_DM90x0 is not set
|
||||||
# CONFIG_ENC28J60 is not set
|
# CONFIG_ENC28J60 is not set
|
||||||
# CONFIG_ENCX24J600 is not set
|
# CONFIG_ENCX24J600 is not set
|
||||||
|
|
||||||
# CONFIG_NET_SLIP is not set
|
# CONFIG_NET_SLIP is not set
|
||||||
# CONFIG_NET_FTMAC100 is not set
|
# CONFIG_NET_FTMAC100 is not set
|
||||||
# CONFIG_PIPES is not set
|
# CONFIG_PIPES is not set
|
||||||
@ -596,7 +601,7 @@ CONFIG_SYSLOG_CONSOLE=y
|
|||||||
CONFIG_ARCH_HAVE_NET=y
|
CONFIG_ARCH_HAVE_NET=y
|
||||||
# CONFIG_ARCH_HAVE_PHY is not set
|
# CONFIG_ARCH_HAVE_PHY is not set
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
# CONFIG_NET_NOINTS is not set
|
CONFIG_NET_NOINTS=y
|
||||||
# CONFIG_NET_PROMISCUOUS is not set
|
# CONFIG_NET_PROMISCUOUS is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -257,6 +257,7 @@ CONFIG_TIVA_GPIOG_IRQS=y
|
|||||||
# CONFIG_TIVA_PROMISCUOUS is not set
|
# CONFIG_TIVA_PROMISCUOUS is not set
|
||||||
# CONFIG_TIVA_TIMESTAMP is not set
|
# CONFIG_TIVA_TIMESTAMP is not set
|
||||||
# CONFIG_TIVA_BADCRC is not set
|
# CONFIG_TIVA_BADCRC is not set
|
||||||
|
CONFIG_TIVA_ETHERNET_HPWORK=y
|
||||||
# CONFIG_TIVA_DUMPPACKET is not set
|
# CONFIG_TIVA_DUMPPACKET is not set
|
||||||
CONFIG_TIVA_BOARDMAC=y
|
CONFIG_TIVA_BOARDMAC=y
|
||||||
|
|
||||||
@ -421,6 +422,7 @@ CONFIG_NAME_MAX=32
|
|||||||
# CONFIG_SCHED_STARTHOOK is not set
|
# CONFIG_SCHED_STARTHOOK is not set
|
||||||
# CONFIG_SCHED_ATEXIT is not set
|
# CONFIG_SCHED_ATEXIT is not set
|
||||||
# CONFIG_SCHED_ONEXIT is not set
|
# CONFIG_SCHED_ONEXIT is not set
|
||||||
|
# CONFIG_SIG_EVTHREAD is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Signal Numbers
|
# Signal Numbers
|
||||||
@ -429,6 +431,7 @@ CONFIG_SIG_SIGUSR1=1
|
|||||||
CONFIG_SIG_SIGUSR2=2
|
CONFIG_SIG_SIGUSR2=2
|
||||||
CONFIG_SIG_SIGALARM=3
|
CONFIG_SIG_SIGALARM=3
|
||||||
CONFIG_SIG_SIGCONDTIMEDOUT=16
|
CONFIG_SIG_SIGCONDTIMEDOUT=16
|
||||||
|
CONFIG_SIG_SIGWORK=17
|
||||||
|
|
||||||
#
|
#
|
||||||
# POSIX Message Queue Options
|
# POSIX Message Queue Options
|
||||||
@ -440,8 +443,11 @@ CONFIG_MQ_MAXMSGSIZE=32
|
|||||||
#
|
#
|
||||||
# Work queue support
|
# Work queue support
|
||||||
#
|
#
|
||||||
# CONFIG_SCHED_WORKQUEUE is not set
|
CONFIG_SCHED_WORKQUEUE=y
|
||||||
# CONFIG_SCHED_HPWORK is not set
|
CONFIG_SCHED_HPWORK=y
|
||||||
|
CONFIG_SCHED_HPWORKPRIORITY=224
|
||||||
|
CONFIG_SCHED_HPWORKPERIOD=50000
|
||||||
|
CONFIG_SCHED_HPWORKSTACKSIZE=2048
|
||||||
# CONFIG_SCHED_LPWORK is not set
|
# CONFIG_SCHED_LPWORK is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -554,7 +560,6 @@ CONFIG_ARCH_HAVE_NETDEV_STATISTICS=y
|
|||||||
# CONFIG_NET_DM90x0 is not set
|
# CONFIG_NET_DM90x0 is not set
|
||||||
# CONFIG_ENC28J60 is not set
|
# CONFIG_ENC28J60 is not set
|
||||||
# CONFIG_ENCX24J600 is not set
|
# CONFIG_ENCX24J600 is not set
|
||||||
|
|
||||||
# CONFIG_NET_SLIP is not set
|
# CONFIG_NET_SLIP is not set
|
||||||
# CONFIG_NET_FTMAC100 is not set
|
# CONFIG_NET_FTMAC100 is not set
|
||||||
# CONFIG_PIPES is not set
|
# CONFIG_PIPES is not set
|
||||||
@ -638,7 +643,7 @@ CONFIG_SYSLOG_CONSOLE=y
|
|||||||
CONFIG_ARCH_HAVE_NET=y
|
CONFIG_ARCH_HAVE_NET=y
|
||||||
# CONFIG_ARCH_HAVE_PHY is not set
|
# CONFIG_ARCH_HAVE_PHY is not set
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
# CONFIG_NET_NOINTS is not set
|
CONFIG_NET_NOINTS=y
|
||||||
# CONFIG_NET_PROMISCUOUS is not set
|
# CONFIG_NET_PROMISCUOUS is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -250,6 +250,7 @@ CONFIG_TIVA_GPIOG_IRQS=y
|
|||||||
# CONFIG_TIVA_PROMISCUOUS is not set
|
# CONFIG_TIVA_PROMISCUOUS is not set
|
||||||
# CONFIG_TIVA_TIMESTAMP is not set
|
# CONFIG_TIVA_TIMESTAMP is not set
|
||||||
# CONFIG_TIVA_BADCRC is not set
|
# CONFIG_TIVA_BADCRC is not set
|
||||||
|
CONFIG_TIVA_ETHERNET_HPWORK=y
|
||||||
# CONFIG_TIVA_DUMPPACKET is not set
|
# CONFIG_TIVA_DUMPPACKET is not set
|
||||||
CONFIG_TIVA_BOARDMAC=y
|
CONFIG_TIVA_BOARDMAC=y
|
||||||
|
|
||||||
@ -401,6 +402,7 @@ CONFIG_NAME_MAX=32
|
|||||||
# CONFIG_SCHED_STARTHOOK is not set
|
# CONFIG_SCHED_STARTHOOK is not set
|
||||||
# CONFIG_SCHED_ATEXIT is not set
|
# CONFIG_SCHED_ATEXIT is not set
|
||||||
# CONFIG_SCHED_ONEXIT is not set
|
# CONFIG_SCHED_ONEXIT is not set
|
||||||
|
# CONFIG_SIG_EVTHREAD is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Signal Numbers
|
# Signal Numbers
|
||||||
@ -408,13 +410,17 @@ CONFIG_NAME_MAX=32
|
|||||||
CONFIG_SIG_SIGUSR1=1
|
CONFIG_SIG_SIGUSR1=1
|
||||||
CONFIG_SIG_SIGUSR2=2
|
CONFIG_SIG_SIGUSR2=2
|
||||||
CONFIG_SIG_SIGALARM=3
|
CONFIG_SIG_SIGALARM=3
|
||||||
|
CONFIG_SIG_SIGWORK=17
|
||||||
# CONFIG_MODULE is not set
|
# CONFIG_MODULE is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Work queue support
|
# Work queue support
|
||||||
#
|
#
|
||||||
# CONFIG_SCHED_WORKQUEUE is not set
|
CONFIG_SCHED_WORKQUEUE=y
|
||||||
# CONFIG_SCHED_HPWORK is not set
|
CONFIG_SCHED_HPWORK=y
|
||||||
|
CONFIG_SCHED_HPWORKPRIORITY=224
|
||||||
|
CONFIG_SCHED_HPWORKPERIOD=50000
|
||||||
|
CONFIG_SCHED_HPWORKSTACKSIZE=2048
|
||||||
# CONFIG_SCHED_LPWORK is not set
|
# CONFIG_SCHED_LPWORK is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -506,7 +512,6 @@ CONFIG_ARCH_HAVE_NETDEV_STATISTICS=y
|
|||||||
# CONFIG_NET_DM90x0 is not set
|
# CONFIG_NET_DM90x0 is not set
|
||||||
# CONFIG_ENC28J60 is not set
|
# CONFIG_ENC28J60 is not set
|
||||||
# CONFIG_ENCX24J600 is not set
|
# CONFIG_ENCX24J600 is not set
|
||||||
|
|
||||||
# CONFIG_NET_SLIP is not set
|
# CONFIG_NET_SLIP is not set
|
||||||
# CONFIG_NET_FTMAC100 is not set
|
# CONFIG_NET_FTMAC100 is not set
|
||||||
CONFIG_PIPES=y
|
CONFIG_PIPES=y
|
||||||
@ -592,7 +597,7 @@ CONFIG_SYSLOG_CONSOLE=y
|
|||||||
CONFIG_ARCH_HAVE_NET=y
|
CONFIG_ARCH_HAVE_NET=y
|
||||||
# CONFIG_ARCH_HAVE_PHY is not set
|
# CONFIG_ARCH_HAVE_PHY is not set
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
# CONFIG_NET_NOINTS is not set
|
CONFIG_NET_NOINTS=y
|
||||||
# CONFIG_NET_PROMISCUOUS is not set
|
# CONFIG_NET_PROMISCUOUS is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -252,6 +252,7 @@ CONFIG_TIVA_GPIOG_IRQS=y
|
|||||||
# CONFIG_TIVA_PROMISCUOUS is not set
|
# CONFIG_TIVA_PROMISCUOUS is not set
|
||||||
# CONFIG_TIVA_TIMESTAMP is not set
|
# CONFIG_TIVA_TIMESTAMP is not set
|
||||||
# CONFIG_TIVA_BADCRC is not set
|
# CONFIG_TIVA_BADCRC is not set
|
||||||
|
CONFIG_TIVA_ETHERNET_HPWORK=y
|
||||||
# CONFIG_TIVA_DUMPPACKET is not set
|
# CONFIG_TIVA_DUMPPACKET is not set
|
||||||
# CONFIG_TIVA_BOARDMAC is not set
|
# CONFIG_TIVA_BOARDMAC is not set
|
||||||
|
|
||||||
@ -410,6 +411,7 @@ CONFIG_NAME_MAX=32
|
|||||||
# CONFIG_SCHED_STARTHOOK is not set
|
# CONFIG_SCHED_STARTHOOK is not set
|
||||||
# CONFIG_SCHED_ATEXIT is not set
|
# CONFIG_SCHED_ATEXIT is not set
|
||||||
# CONFIG_SCHED_ONEXIT is not set
|
# CONFIG_SCHED_ONEXIT is not set
|
||||||
|
# CONFIG_SIG_EVTHREAD is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Signal Numbers
|
# Signal Numbers
|
||||||
@ -418,6 +420,7 @@ CONFIG_SIG_SIGUSR1=1
|
|||||||
CONFIG_SIG_SIGUSR2=2
|
CONFIG_SIG_SIGUSR2=2
|
||||||
CONFIG_SIG_SIGALARM=3
|
CONFIG_SIG_SIGALARM=3
|
||||||
CONFIG_SIG_SIGCONDTIMEDOUT=16
|
CONFIG_SIG_SIGCONDTIMEDOUT=16
|
||||||
|
CONFIG_SIG_SIGWORK=17
|
||||||
|
|
||||||
#
|
#
|
||||||
# POSIX Message Queue Options
|
# POSIX Message Queue Options
|
||||||
@ -429,8 +432,11 @@ CONFIG_MQ_MAXMSGSIZE=32
|
|||||||
#
|
#
|
||||||
# Work queue support
|
# Work queue support
|
||||||
#
|
#
|
||||||
# CONFIG_SCHED_WORKQUEUE is not set
|
CONFIG_SCHED_WORKQUEUE=y
|
||||||
# CONFIG_SCHED_HPWORK is not set
|
CONFIG_SCHED_HPWORK=y
|
||||||
|
CONFIG_SCHED_HPWORKPRIORITY=224
|
||||||
|
CONFIG_SCHED_HPWORKPERIOD=50000
|
||||||
|
CONFIG_SCHED_HPWORKSTACKSIZE=2048
|
||||||
# CONFIG_SCHED_LPWORK is not set
|
# CONFIG_SCHED_LPWORK is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -543,7 +549,6 @@ CONFIG_ARCH_HAVE_NETDEV_STATISTICS=y
|
|||||||
# CONFIG_NET_DM90x0 is not set
|
# CONFIG_NET_DM90x0 is not set
|
||||||
# CONFIG_ENC28J60 is not set
|
# CONFIG_ENC28J60 is not set
|
||||||
# CONFIG_ENCX24J600 is not set
|
# CONFIG_ENCX24J600 is not set
|
||||||
|
|
||||||
# CONFIG_NET_SLIP is not set
|
# CONFIG_NET_SLIP is not set
|
||||||
# CONFIG_NET_FTMAC100 is not set
|
# CONFIG_NET_FTMAC100 is not set
|
||||||
# CONFIG_PIPES is not set
|
# CONFIG_PIPES is not set
|
||||||
@ -627,7 +632,7 @@ CONFIG_SYSLOG_CONSOLE=y
|
|||||||
CONFIG_ARCH_HAVE_NET=y
|
CONFIG_ARCH_HAVE_NET=y
|
||||||
# CONFIG_ARCH_HAVE_PHY is not set
|
# CONFIG_ARCH_HAVE_PHY is not set
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
# CONFIG_NET_NOINTS is not set
|
CONFIG_NET_NOINTS=y
|
||||||
# CONFIG_NET_PROMISCUOUS is not set
|
# CONFIG_NET_PROMISCUOUS is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -247,6 +247,7 @@ CONFIG_TIVA_GPIOB_IRQS=y
|
|||||||
# CONFIG_TIVA_PROMISCUOUS is not set
|
# CONFIG_TIVA_PROMISCUOUS is not set
|
||||||
# CONFIG_TIVA_TIMESTAMP is not set
|
# CONFIG_TIVA_TIMESTAMP is not set
|
||||||
# CONFIG_TIVA_BADCRC is not set
|
# CONFIG_TIVA_BADCRC is not set
|
||||||
|
CONFIG_TIVA_ETHERNET_HPWORK=y
|
||||||
# CONFIG_TIVA_DUMPPACKET is not set
|
# CONFIG_TIVA_DUMPPACKET is not set
|
||||||
CONFIG_TIVA_BOARDMAC=y
|
CONFIG_TIVA_BOARDMAC=y
|
||||||
|
|
||||||
@ -405,6 +406,7 @@ CONFIG_NAME_MAX=32
|
|||||||
# CONFIG_SCHED_STARTHOOK is not set
|
# CONFIG_SCHED_STARTHOOK is not set
|
||||||
# CONFIG_SCHED_ATEXIT is not set
|
# CONFIG_SCHED_ATEXIT is not set
|
||||||
# CONFIG_SCHED_ONEXIT is not set
|
# CONFIG_SCHED_ONEXIT is not set
|
||||||
|
# CONFIG_SIG_EVTHREAD is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Signal Numbers
|
# Signal Numbers
|
||||||
@ -413,6 +415,7 @@ CONFIG_SIG_SIGUSR1=1
|
|||||||
CONFIG_SIG_SIGUSR2=2
|
CONFIG_SIG_SIGUSR2=2
|
||||||
CONFIG_SIG_SIGALARM=3
|
CONFIG_SIG_SIGALARM=3
|
||||||
CONFIG_SIG_SIGCONDTIMEDOUT=16
|
CONFIG_SIG_SIGCONDTIMEDOUT=16
|
||||||
|
CONFIG_SIG_SIGWORK=17
|
||||||
|
|
||||||
#
|
#
|
||||||
# POSIX Message Queue Options
|
# POSIX Message Queue Options
|
||||||
@ -424,8 +427,11 @@ CONFIG_MQ_MAXMSGSIZE=32
|
|||||||
#
|
#
|
||||||
# Work queue support
|
# Work queue support
|
||||||
#
|
#
|
||||||
# CONFIG_SCHED_WORKQUEUE is not set
|
CONFIG_SCHED_WORKQUEUE=y
|
||||||
# CONFIG_SCHED_HPWORK is not set
|
CONFIG_SCHED_HPWORK=y
|
||||||
|
CONFIG_SCHED_HPWORKPRIORITY=224
|
||||||
|
CONFIG_SCHED_HPWORKPERIOD=50000
|
||||||
|
CONFIG_SCHED_HPWORKSTACKSIZE=2048
|
||||||
# CONFIG_SCHED_LPWORK is not set
|
# CONFIG_SCHED_LPWORK is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -520,7 +526,6 @@ CONFIG_ARCH_HAVE_NETDEV_STATISTICS=y
|
|||||||
# CONFIG_NET_DM90x0 is not set
|
# CONFIG_NET_DM90x0 is not set
|
||||||
# CONFIG_ENC28J60 is not set
|
# CONFIG_ENC28J60 is not set
|
||||||
# CONFIG_ENCX24J600 is not set
|
# CONFIG_ENCX24J600 is not set
|
||||||
|
|
||||||
# CONFIG_NET_SLIP is not set
|
# CONFIG_NET_SLIP is not set
|
||||||
# CONFIG_NET_FTMAC100 is not set
|
# CONFIG_NET_FTMAC100 is not set
|
||||||
# CONFIG_PIPES is not set
|
# CONFIG_PIPES is not set
|
||||||
@ -618,7 +623,7 @@ CONFIG_SYSLOG_CONSOLE=y
|
|||||||
CONFIG_ARCH_HAVE_NET=y
|
CONFIG_ARCH_HAVE_NET=y
|
||||||
# CONFIG_ARCH_HAVE_PHY is not set
|
# CONFIG_ARCH_HAVE_PHY is not set
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
# CONFIG_NET_NOINTS is not set
|
CONFIG_NET_NOINTS=y
|
||||||
# CONFIG_NET_PROMISCUOUS is not set
|
# CONFIG_NET_PROMISCUOUS is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -251,6 +251,7 @@ CONFIG_TIVA_GPIOG_IRQS=y
|
|||||||
# CONFIG_TIVA_PROMISCUOUS is not set
|
# CONFIG_TIVA_PROMISCUOUS is not set
|
||||||
# CONFIG_TIVA_TIMESTAMP is not set
|
# CONFIG_TIVA_TIMESTAMP is not set
|
||||||
# CONFIG_TIVA_BADCRC is not set
|
# CONFIG_TIVA_BADCRC is not set
|
||||||
|
CONFIG_TIVA_ETHERNET_HPWORK=y
|
||||||
# CONFIG_TIVA_DUMPPACKET is not set
|
# CONFIG_TIVA_DUMPPACKET is not set
|
||||||
# CONFIG_TIVA_BOARDMAC is not set
|
# CONFIG_TIVA_BOARDMAC is not set
|
||||||
|
|
||||||
@ -415,6 +416,7 @@ CONFIG_NAME_MAX=32
|
|||||||
# CONFIG_SCHED_STARTHOOK is not set
|
# CONFIG_SCHED_STARTHOOK is not set
|
||||||
# CONFIG_SCHED_ATEXIT is not set
|
# CONFIG_SCHED_ATEXIT is not set
|
||||||
# CONFIG_SCHED_ONEXIT is not set
|
# CONFIG_SCHED_ONEXIT is not set
|
||||||
|
# CONFIG_SIG_EVTHREAD is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Signal Numbers
|
# Signal Numbers
|
||||||
@ -423,6 +425,7 @@ CONFIG_SIG_SIGUSR1=1
|
|||||||
CONFIG_SIG_SIGUSR2=2
|
CONFIG_SIG_SIGUSR2=2
|
||||||
CONFIG_SIG_SIGALARM=3
|
CONFIG_SIG_SIGALARM=3
|
||||||
CONFIG_SIG_SIGCONDTIMEDOUT=16
|
CONFIG_SIG_SIGCONDTIMEDOUT=16
|
||||||
|
CONFIG_SIG_SIGWORK=17
|
||||||
|
|
||||||
#
|
#
|
||||||
# POSIX Message Queue Options
|
# POSIX Message Queue Options
|
||||||
@ -434,8 +437,11 @@ CONFIG_MQ_MAXMSGSIZE=32
|
|||||||
#
|
#
|
||||||
# Work queue support
|
# Work queue support
|
||||||
#
|
#
|
||||||
# CONFIG_SCHED_WORKQUEUE is not set
|
CONFIG_SCHED_WORKQUEUE=y
|
||||||
# CONFIG_SCHED_HPWORK is not set
|
CONFIG_SCHED_HPWORK=y
|
||||||
|
CONFIG_SCHED_HPWORKPRIORITY=224
|
||||||
|
CONFIG_SCHED_HPWORKPERIOD=50000
|
||||||
|
CONFIG_SCHED_HPWORKSTACKSIZE=2048
|
||||||
# CONFIG_SCHED_LPWORK is not set
|
# CONFIG_SCHED_LPWORK is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -548,7 +554,6 @@ CONFIG_ARCH_HAVE_NETDEV_STATISTICS=y
|
|||||||
# CONFIG_NET_DM90x0 is not set
|
# CONFIG_NET_DM90x0 is not set
|
||||||
# CONFIG_ENC28J60 is not set
|
# CONFIG_ENC28J60 is not set
|
||||||
# CONFIG_ENCX24J600 is not set
|
# CONFIG_ENCX24J600 is not set
|
||||||
|
|
||||||
# CONFIG_NET_SLIP is not set
|
# CONFIG_NET_SLIP is not set
|
||||||
# CONFIG_NET_FTMAC100 is not set
|
# CONFIG_NET_FTMAC100 is not set
|
||||||
# CONFIG_PIPES is not set
|
# CONFIG_PIPES is not set
|
||||||
@ -632,7 +637,7 @@ CONFIG_SYSLOG_CONSOLE=y
|
|||||||
CONFIG_ARCH_HAVE_NET=y
|
CONFIG_ARCH_HAVE_NET=y
|
||||||
# CONFIG_ARCH_HAVE_PHY is not set
|
# CONFIG_ARCH_HAVE_PHY is not set
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
# CONFIG_NET_NOINTS is not set
|
CONFIG_NET_NOINTS=y
|
||||||
# CONFIG_NET_PROMISCUOUS is not set
|
# CONFIG_NET_PROMISCUOUS is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -251,6 +251,7 @@ CONFIG_TIVA_GPIOG_IRQS=y
|
|||||||
# CONFIG_TIVA_PROMISCUOUS is not set
|
# CONFIG_TIVA_PROMISCUOUS is not set
|
||||||
# CONFIG_TIVA_TIMESTAMP is not set
|
# CONFIG_TIVA_TIMESTAMP is not set
|
||||||
# CONFIG_TIVA_BADCRC is not set
|
# CONFIG_TIVA_BADCRC is not set
|
||||||
|
CONFIG_TIVA_ETHERNET_HPWORK=y
|
||||||
# CONFIG_TIVA_DUMPPACKET is not set
|
# CONFIG_TIVA_DUMPPACKET is not set
|
||||||
# CONFIG_TIVA_BOARDMAC is not set
|
# CONFIG_TIVA_BOARDMAC is not set
|
||||||
|
|
||||||
@ -415,6 +416,7 @@ CONFIG_NAME_MAX=32
|
|||||||
# CONFIG_SCHED_STARTHOOK is not set
|
# CONFIG_SCHED_STARTHOOK is not set
|
||||||
# CONFIG_SCHED_ATEXIT is not set
|
# CONFIG_SCHED_ATEXIT is not set
|
||||||
# CONFIG_SCHED_ONEXIT is not set
|
# CONFIG_SCHED_ONEXIT is not set
|
||||||
|
# CONFIG_SIG_EVTHREAD is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Signal Numbers
|
# Signal Numbers
|
||||||
@ -423,6 +425,7 @@ CONFIG_SIG_SIGUSR1=1
|
|||||||
CONFIG_SIG_SIGUSR2=2
|
CONFIG_SIG_SIGUSR2=2
|
||||||
CONFIG_SIG_SIGALARM=3
|
CONFIG_SIG_SIGALARM=3
|
||||||
CONFIG_SIG_SIGCONDTIMEDOUT=16
|
CONFIG_SIG_SIGCONDTIMEDOUT=16
|
||||||
|
CONFIG_SIG_SIGWORK=17
|
||||||
|
|
||||||
#
|
#
|
||||||
# POSIX Message Queue Options
|
# POSIX Message Queue Options
|
||||||
@ -434,8 +437,11 @@ CONFIG_MQ_MAXMSGSIZE=32
|
|||||||
#
|
#
|
||||||
# Work queue support
|
# Work queue support
|
||||||
#
|
#
|
||||||
# CONFIG_SCHED_WORKQUEUE is not set
|
CONFIG_SCHED_WORKQUEUE=y
|
||||||
# CONFIG_SCHED_HPWORK is not set
|
CONFIG_SCHED_HPWORK=y
|
||||||
|
CONFIG_SCHED_HPWORKPRIORITY=224
|
||||||
|
CONFIG_SCHED_HPWORKPERIOD=50000
|
||||||
|
CONFIG_SCHED_HPWORKSTACKSIZE=2048
|
||||||
# CONFIG_SCHED_LPWORK is not set
|
# CONFIG_SCHED_LPWORK is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -548,7 +554,6 @@ CONFIG_ARCH_HAVE_NETDEV_STATISTICS=y
|
|||||||
# CONFIG_NET_DM90x0 is not set
|
# CONFIG_NET_DM90x0 is not set
|
||||||
# CONFIG_ENC28J60 is not set
|
# CONFIG_ENC28J60 is not set
|
||||||
# CONFIG_ENCX24J600 is not set
|
# CONFIG_ENCX24J600 is not set
|
||||||
|
|
||||||
# CONFIG_NET_SLIP is not set
|
# CONFIG_NET_SLIP is not set
|
||||||
# CONFIG_NET_FTMAC100 is not set
|
# CONFIG_NET_FTMAC100 is not set
|
||||||
# CONFIG_PIPES is not set
|
# CONFIG_PIPES is not set
|
||||||
@ -632,7 +637,7 @@ CONFIG_SYSLOG_CONSOLE=y
|
|||||||
CONFIG_ARCH_HAVE_NET=y
|
CONFIG_ARCH_HAVE_NET=y
|
||||||
# CONFIG_ARCH_HAVE_PHY is not set
|
# CONFIG_ARCH_HAVE_PHY is not set
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
# CONFIG_NET_NOINTS is not set
|
CONFIG_NET_NOINTS=y
|
||||||
# CONFIG_NET_PROMISCUOUS is not set
|
# CONFIG_NET_PROMISCUOUS is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -250,6 +250,7 @@ CONFIG_TIVA_GPIOG_IRQS=y
|
|||||||
# CONFIG_TIVA_PROMISCUOUS is not set
|
# CONFIG_TIVA_PROMISCUOUS is not set
|
||||||
# CONFIG_TIVA_TIMESTAMP is not set
|
# CONFIG_TIVA_TIMESTAMP is not set
|
||||||
# CONFIG_TIVA_BADCRC is not set
|
# CONFIG_TIVA_BADCRC is not set
|
||||||
|
CONFIG_TIVA_ETHERNET_HPWORK=y
|
||||||
# CONFIG_TIVA_DUMPPACKET is not set
|
# CONFIG_TIVA_DUMPPACKET is not set
|
||||||
# CONFIG_TIVA_BOARDMAC is not set
|
# CONFIG_TIVA_BOARDMAC is not set
|
||||||
|
|
||||||
@ -402,6 +403,7 @@ CONFIG_NAME_MAX=32
|
|||||||
# CONFIG_SCHED_STARTHOOK is not set
|
# CONFIG_SCHED_STARTHOOK is not set
|
||||||
# CONFIG_SCHED_ATEXIT is not set
|
# CONFIG_SCHED_ATEXIT is not set
|
||||||
# CONFIG_SCHED_ONEXIT is not set
|
# CONFIG_SCHED_ONEXIT is not set
|
||||||
|
# CONFIG_SIG_EVTHREAD is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Signal Numbers
|
# Signal Numbers
|
||||||
@ -410,6 +412,7 @@ CONFIG_SIG_SIGUSR1=1
|
|||||||
CONFIG_SIG_SIGUSR2=2
|
CONFIG_SIG_SIGUSR2=2
|
||||||
CONFIG_SIG_SIGALARM=3
|
CONFIG_SIG_SIGALARM=3
|
||||||
CONFIG_SIG_SIGCONDTIMEDOUT=16
|
CONFIG_SIG_SIGCONDTIMEDOUT=16
|
||||||
|
CONFIG_SIG_SIGWORK=17
|
||||||
|
|
||||||
#
|
#
|
||||||
# POSIX Message Queue Options
|
# POSIX Message Queue Options
|
||||||
@ -421,8 +424,11 @@ CONFIG_MQ_MAXMSGSIZE=32
|
|||||||
#
|
#
|
||||||
# Work queue support
|
# Work queue support
|
||||||
#
|
#
|
||||||
# CONFIG_SCHED_WORKQUEUE is not set
|
CONFIG_SCHED_WORKQUEUE=y
|
||||||
# CONFIG_SCHED_HPWORK is not set
|
CONFIG_SCHED_HPWORK=y
|
||||||
|
CONFIG_SCHED_HPWORKPRIORITY=224
|
||||||
|
CONFIG_SCHED_HPWORKPERIOD=50000
|
||||||
|
CONFIG_SCHED_HPWORKSTACKSIZE=2048
|
||||||
# CONFIG_SCHED_LPWORK is not set
|
# CONFIG_SCHED_LPWORK is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -517,7 +523,6 @@ CONFIG_ARCH_HAVE_NETDEV_STATISTICS=y
|
|||||||
# CONFIG_NET_DM90x0 is not set
|
# CONFIG_NET_DM90x0 is not set
|
||||||
# CONFIG_ENC28J60 is not set
|
# CONFIG_ENC28J60 is not set
|
||||||
# CONFIG_ENCX24J600 is not set
|
# CONFIG_ENCX24J600 is not set
|
||||||
|
|
||||||
# CONFIG_NET_SLIP is not set
|
# CONFIG_NET_SLIP is not set
|
||||||
# CONFIG_NET_FTMAC100 is not set
|
# CONFIG_NET_FTMAC100 is not set
|
||||||
# CONFIG_PIPES is not set
|
# CONFIG_PIPES is not set
|
||||||
@ -602,7 +607,7 @@ CONFIG_SYSLOG_CONSOLE=y
|
|||||||
CONFIG_ARCH_HAVE_NET=y
|
CONFIG_ARCH_HAVE_NET=y
|
||||||
# CONFIG_ARCH_HAVE_PHY is not set
|
# CONFIG_ARCH_HAVE_PHY is not set
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
# CONFIG_NET_NOINTS is not set
|
CONFIG_NET_NOINTS=y
|
||||||
# CONFIG_NET_PROMISCUOUS is not set
|
# CONFIG_NET_PROMISCUOUS is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -261,6 +261,7 @@ CONFIG_TIVA_GPIOG_IRQS=y
|
|||||||
# CONFIG_TIVA_PROMISCUOUS is not set
|
# CONFIG_TIVA_PROMISCUOUS is not set
|
||||||
# CONFIG_TIVA_TIMESTAMP is not set
|
# CONFIG_TIVA_TIMESTAMP is not set
|
||||||
# CONFIG_TIVA_BADCRC is not set
|
# CONFIG_TIVA_BADCRC is not set
|
||||||
|
CONFIG_TIVA_ETHERNET_HPWORK=y
|
||||||
# CONFIG_TIVA_DUMPPACKET is not set
|
# CONFIG_TIVA_DUMPPACKET is not set
|
||||||
# CONFIG_TIVA_BOARDMAC is not set
|
# CONFIG_TIVA_BOARDMAC is not set
|
||||||
|
|
||||||
@ -425,6 +426,7 @@ CONFIG_NAME_MAX=32
|
|||||||
# CONFIG_SCHED_STARTHOOK is not set
|
# CONFIG_SCHED_STARTHOOK is not set
|
||||||
# CONFIG_SCHED_ATEXIT is not set
|
# CONFIG_SCHED_ATEXIT is not set
|
||||||
# CONFIG_SCHED_ONEXIT is not set
|
# CONFIG_SCHED_ONEXIT is not set
|
||||||
|
# CONFIG_SIG_EVTHREAD is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Signal Numbers
|
# Signal Numbers
|
||||||
@ -433,6 +435,7 @@ CONFIG_SIG_SIGUSR1=1
|
|||||||
CONFIG_SIG_SIGUSR2=2
|
CONFIG_SIG_SIGUSR2=2
|
||||||
CONFIG_SIG_SIGALARM=3
|
CONFIG_SIG_SIGALARM=3
|
||||||
CONFIG_SIG_SIGCONDTIMEDOUT=16
|
CONFIG_SIG_SIGCONDTIMEDOUT=16
|
||||||
|
CONFIG_SIG_SIGWORK=17
|
||||||
|
|
||||||
#
|
#
|
||||||
# POSIX Message Queue Options
|
# POSIX Message Queue Options
|
||||||
@ -444,8 +447,11 @@ CONFIG_MQ_MAXMSGSIZE=32
|
|||||||
#
|
#
|
||||||
# Work queue support
|
# Work queue support
|
||||||
#
|
#
|
||||||
# CONFIG_SCHED_WORKQUEUE is not set
|
CONFIG_SCHED_WORKQUEUE=y
|
||||||
# CONFIG_SCHED_HPWORK is not set
|
CONFIG_SCHED_HPWORK=y
|
||||||
|
CONFIG_SCHED_HPWORKPRIORITY=224
|
||||||
|
CONFIG_SCHED_HPWORKPERIOD=50000
|
||||||
|
CONFIG_SCHED_HPWORKSTACKSIZE=2048
|
||||||
# CONFIG_SCHED_LPWORK is not set
|
# CONFIG_SCHED_LPWORK is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -558,7 +564,6 @@ CONFIG_ARCH_HAVE_NETDEV_STATISTICS=y
|
|||||||
# CONFIG_NET_DM90x0 is not set
|
# CONFIG_NET_DM90x0 is not set
|
||||||
# CONFIG_ENC28J60 is not set
|
# CONFIG_ENC28J60 is not set
|
||||||
# CONFIG_ENCX24J600 is not set
|
# CONFIG_ENCX24J600 is not set
|
||||||
|
|
||||||
# CONFIG_NET_SLIP is not set
|
# CONFIG_NET_SLIP is not set
|
||||||
# CONFIG_NET_FTMAC100 is not set
|
# CONFIG_NET_FTMAC100 is not set
|
||||||
# CONFIG_PIPES is not set
|
# CONFIG_PIPES is not set
|
||||||
@ -642,7 +647,7 @@ CONFIG_SYSLOG_CONSOLE=y
|
|||||||
CONFIG_ARCH_HAVE_NET=y
|
CONFIG_ARCH_HAVE_NET=y
|
||||||
# CONFIG_ARCH_HAVE_PHY is not set
|
# CONFIG_ARCH_HAVE_PHY is not set
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
# CONFIG_NET_NOINTS is not set
|
CONFIG_NET_NOINTS=y
|
||||||
# CONFIG_NET_PROMISCUOUS is not set
|
# CONFIG_NET_PROMISCUOUS is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -79,9 +79,9 @@
|
|||||||
|
|
||||||
#if defined(CONFIG_SCHED_WORKQUEUE)
|
#if defined(CONFIG_SCHED_WORKQUEUE)
|
||||||
# if defined(CONFIG_skeleton_HPWORK)
|
# if defined(CONFIG_skeleton_HPWORK)
|
||||||
# define skelWORK HPWORK
|
# define ETHWORK HPWORK
|
||||||
# elif defined(CONFIG_skeleton_LPWORK)
|
# elif defined(CONFIG_skeleton_LPWORK)
|
||||||
# define skelWORK LPWORK
|
# define ETHWORK LPWORK
|
||||||
# else
|
# else
|
||||||
# error Neither CONFIG_skeleton_HPWORK nor CONFIG_skeleton_LPWORK defined
|
# error Neither CONFIG_skeleton_HPWORK nor CONFIG_skeleton_LPWORK defined
|
||||||
# endif
|
# endif
|
||||||
@ -623,7 +623,7 @@ static int skel_interrupt(int irq, FAR void *context)
|
|||||||
|
|
||||||
/* Schedule to perform the interrupt processing on the worker thread. */
|
/* Schedule to perform the interrupt processing on the worker thread. */
|
||||||
|
|
||||||
work_queue(skelWORK, &priv->sk_work, skel_interrupt_work, priv, 0);
|
work_queue(ETHWORK, &priv->sk_work, skel_interrupt_work, priv, 0);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
/* Process the interrupt now */
|
/* Process the interrupt now */
|
||||||
@ -730,11 +730,11 @@ static void skel_txtimeout_expiry(int argc, wdparm_t arg, ...)
|
|||||||
* on work that has already been started.
|
* on work that has already been started.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
work_cancel(skelWORK, &priv->sk_work);
|
work_cancel(ETHWORK, &priv->sk_work);
|
||||||
|
|
||||||
/* Schedule to perform the TX timeout processing on the worker thread. */
|
/* Schedule to perform the TX timeout processing on the worker thread. */
|
||||||
|
|
||||||
work_queue(skelWORK, &priv->sk_work, skel_txtimeout_work, priv, 0);
|
work_queue(ETHWORK, &priv->sk_work, skel_txtimeout_work, priv, 0);
|
||||||
#else
|
#else
|
||||||
/* Process the timeout now */
|
/* Process the timeout now */
|
||||||
|
|
||||||
@ -840,7 +840,7 @@ static void skel_poll_expiry(int argc, wdparm_t arg, ...)
|
|||||||
{
|
{
|
||||||
/* Schedule to perform the interrupt processing on the worker thread. */
|
/* Schedule to perform the interrupt processing on the worker thread. */
|
||||||
|
|
||||||
work_queue(skelWORK, &priv->sk_work, skel_poll_work, priv, 0);
|
work_queue(ETHWORK, &priv->sk_work, skel_poll_work, priv, 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1051,7 +1051,7 @@ static int skel_txavail(FAR struct net_driver_s *dev)
|
|||||||
{
|
{
|
||||||
/* Schedule to serialize the poll on the worker thread. */
|
/* Schedule to serialize the poll on the worker thread. */
|
||||||
|
|
||||||
work_queue(skelWORK, &priv->sk_work, skel_txavail_work, priv, 0);
|
work_queue(ETHWORK, &priv->sk_work, skel_txavail_work, priv, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
Loading…
Reference in New Issue
Block a user