diff options
Diffstat (limited to 'nuttx/arch/arm/src/tiva/tiva_ethernet.c')
-rw-r--r-- | nuttx/arch/arm/src/tiva/tiva_ethernet.c | 297 |
1 files changed, 148 insertions, 149 deletions
diff --git a/nuttx/arch/arm/src/tiva/tiva_ethernet.c b/nuttx/arch/arm/src/tiva/tiva_ethernet.c index 2010231ea..6afd0a2f9 100644 --- a/nuttx/arch/arm/src/tiva/tiva_ethernet.c +++ b/nuttx/arch/arm/src/tiva/tiva_ethernet.c @@ -38,7 +38,7 @@ ****************************************************************************/ #include <nuttx/config.h> -#if defined(CONFIG_NET) && defined(CONFIG_LM_ETHERNET) +#if defined(CONFIG_NET) && defined(CONFIG_TIVA_ETHERNET) #include <stdint.h> #include <stdbool.h> @@ -66,75 +66,75 @@ * Pre-processor Definitions ****************************************************************************/ -/* Half duplex can be forced if CONFIG_LM_ETHHDUPLEX is defined. */ +/* Half duplex can be forced if CONFIG_TIVA_ETHHDUPLEX is defined. */ -#ifdef CONFIG_LM_ETHHDUPLEX -# define LM_DUPLEX_SETBITS 0 -# define LM_DUPLEX_CLRBITS MAC_TCTL_DUPLEX +#ifdef CONFIG_TIVA_ETHHDUPLEX +# define TIVA_DUPLEX_SETBITS 0 +# define TIVA_DUPLEX_CLRBITS MAC_TCTL_DUPLEX #else -# define LM_DUPLEX_SETBITS MAC_TCTL_DUPLEX -# define LM_DUPLEX_CLRBITS 0 +# define TIVA_DUPLEX_SETBITS MAC_TCTL_DUPLEX +# define TIVA_DUPLEX_CLRBITS 0 #endif -/* Auto CRC generation can be suppressed if CONFIG_LM_ETHNOAUTOCRC is definde */ +/* Auto CRC generation can be suppressed if CONFIG_TIVA_ETHNOAUTOCRC is definde */ -#ifdef CONFIG_LM_ETHNOAUTOCRC -# define LM_CRC_SETBITS 0 -# define LM_CRC_CLRBITS MAC_TCTL_CRC +#ifdef CONFIG_TIVA_ETHNOAUTOCRC +# define TIVA_CRC_SETBITS 0 +# define TIVA_CRC_CLRBITS MAC_TCTL_CRC #else -# define LM_CRC_SETBITS MAC_TCTL_CRC -# define LM_CRC_CLRBITS 0 +# define TIVA_CRC_SETBITS MAC_TCTL_CRC +# define TIVA_CRC_CLRBITS 0 #endif -/* Tx padding can be suppressed if CONFIG_LM_ETHNOPAD is defined */ +/* Tx padding can be suppressed if CONFIG_TIVA_ETHNOPAD is defined */ -#ifdef CONFIG_LM_ETHNOPAD -# define LM_PADEN_SETBITS 0 -# define LM_PADEN_CLRBITS MAC_TCTL_PADEN +#ifdef CONFIG_TIVA_ETHNOPAD +# define TIVA_PADEN_SETBITS 0 +# define TIVA_PADEN_CLRBITS MAC_TCTL_PADEN #else -# define LM_PADEN_SETBITS MAC_TCTL_PADEN -# define LM_PADEN_CLRBITS 0 +# define TIVA_PADEN_SETBITS MAC_TCTL_PADEN +# define TIVA_PADEN_CLRBITS 0 #endif -#define LM_TCTCL_SETBITS (LM_DUPLEX_SETBITS|LM_CRC_SETBITS|LM_PADEN_SETBITS) -#define LM_TCTCL_CLRBITS (LM_DUPLEX_CLRBITS|LM_CRC_CLRBITS|LM_PADEN_CLRBITS) +#define TIVA_TCTCL_SETBITS (TIVA_DUPLEX_SETBITS|TIVA_CRC_SETBITS|TIVA_PADEN_SETBITS) +#define TIVA_TCTCL_CLRBITS (TIVA_DUPLEX_CLRBITS|TIVA_CRC_CLRBITS|TIVA_PADEN_CLRBITS) -/* Multicast frames can be enabled by defining CONFIG_LM_MULTICAST */ +/* Multicast frames can be enabled by defining CONFIG_TIVA_MULTICAST */ -#ifdef CONFIG_LM_MULTICAST -# define LM_AMUL_SETBITS MAC_RCTL_AMUL -# define LM_AMUL_CLRBITS 0 +#ifdef CONFIG_TIVA_MULTICAST +# define TIVA_AMUL_SETBITS MAC_RCTL_AMUL +# define TIVA_AMUL_CLRBITS 0 #else -# define LM_AMUL_SETBITS 0 -# define LM_AMUL_CLRBITS MAC_RCTL_AMUL +# define TIVA_AMUL_SETBITS 0 +# define TIVA_AMUL_CLRBITS MAC_RCTL_AMUL #endif -/* Promiscuous mode can be enabled by defining CONFIG_LM_PROMISCUOUS */ +/* Promiscuous mode can be enabled by defining CONFIG_TIVA_PROMISCUOUS */ -#ifdef CONFIG_LM_PROMISCUOUS -# define LM_PRMS_SETBITS MAC_RCTL_PRMS -# define LM_PRMS_CLRBITS 0 +#ifdef CONFIG_TIVA_PROMISCUOUS +# define TIVA_PRMS_SETBITS MAC_RCTL_PRMS +# define TIVA_PRMS_CLRBITS 0 #else -# define LM_PRMS_SETBITS 0 -# define LM_PRMS_CLRBITS MAC_RCTL_PRMS +# define TIVA_PRMS_SETBITS 0 +# define TIVA_PRMS_CLRBITS MAC_RCTL_PRMS #endif -/* Bad CRC rejection can be enabled by define CONFIG_LM_BADCRC */ +/* Bad CRC rejection can be enabled by define CONFIG_TIVA_BADCRC */ -#ifdef CONFIG_LM_BADCRC -# define LM_BADCRC_SETBITS MAC_RCTL_BADCRC -# define LM_BADCRC_CLRBITS 0 +#ifdef CONFIG_TIVA_BADCRC +# define TIVA_BADCRC_SETBITS MAC_RCTL_BADCRC +# define TIVA_BADCRC_CLRBITS 0 #else -# define LM_BADCRC_SETBITS 0 -# define LM_BADCRC_CLRBITS MAC_RCTL_BADCRC +# define TIVA_BADCRC_SETBITS 0 +# define TIVA_BADCRC_CLRBITS MAC_RCTL_BADCRC #endif -#define LM_RCTCL_SETBITS (LM_AMUL_SETBITS|LM_PRMS_SETBITS|LM_BADCRC_SETBITS) -#define LM_RCTCL_CLRBITS (LM_AMUL_CLRBITS|LM_PRMS_CLRBITS|LM_BADCRC_CLRBITS) +#define TIVA_RCTCL_SETBITS (TIVA_AMUL_SETBITS|TIVA_PRMS_SETBITS|TIVA_BADCRC_SETBITS) +#define TIVA_RCTCL_CLRBITS (TIVA_AMUL_CLRBITS|TIVA_PRMS_CLRBITS|TIVA_BADCRC_CLRBITS) -/* CONFIG_LM_DUMPPACKET will dump the contents of each packet to the console. */ +/* CONFIG_TIVA_DUMPPACKET will dump the contents of each packet to the console. */ -#ifdef CONFIG_LM_DUMPPACKET +#ifdef CONFIG_TIVA_DUMPPACKET # define tiva_dumppacket(m,a,n) lib_dumpbuffer(m,a,n) #else # define tiva_dumppacket(m,a,n) @@ -142,18 +142,18 @@ /* TX poll deley = 1 seconds. CLK_TCK is the number of clock ticks per second */ -#define LM_WDDELAY (1*CLK_TCK) -#define LM_POLLHSEC (1*2) +#define TIVA_WDDELAY (1*CLK_TCK) +#define TIVA_POLLHSEC (1*2) /* TX timeout = 1 minute */ -#define LM_TXTIMEOUT (60*CLK_TCK) +#define TIVA_TXTIMEOUT (60*CLK_TCK) /* This is a helper pointer for accessing the contents of the Ethernet header */ #define ETHBUF ((struct uip_eth_hdr *)priv->ld_dev.d_buf) -#define LM_MAX_MDCCLK 2500000 +#define TIVA_MAX_MDCCLK 2500000 /**************************************************************************** * Private Types @@ -192,7 +192,7 @@ struct tiva_driver_s * multiple Ethernet controllers. */ -#if LM_NETHCONTROLLERS > 1 +#if TIVA_NETHCONTROLLERS > 1 uint32_t ld_base; /* Ethernet controller base address */ int ld_irq; /* Ethernet controller IRQ */ #endif @@ -214,7 +214,7 @@ struct tiva_driver_s * Private Data ****************************************************************************/ -static struct tiva_driver_s g_lm3sdev[LM_NETHCONTROLLERS]; +static struct tiva_driver_s g_lm3sdev[TIVA_NETHCONTROLLERS]; /**************************************************************************** * Private Function Prototypes @@ -222,7 +222,7 @@ static struct tiva_driver_s g_lm3sdev[LM_NETHCONTROLLERS]; /* Miscellaneous low level helpers */ -#if LM_NETHCONTROLLERS > 1 +#if TIVA_NETHCONTROLLERS > 1 static uint32_t tiva_ethin(struct tiva_driver_s *priv, int offset); static void tiva_ethout(struct tiva_driver_s *priv, int offset, uint32_t value); #else @@ -280,7 +280,7 @@ static int tiva_rmmac(struct uip_driver_s *dev, FAR const uint8_t *mac); * ****************************************************************************/ -#if LM_NETHCONTROLLERS > 1 +#if TIVA_NETHCONTROLLERS > 1 static uint32_t tiva_ethin(struct tiva_driver_s *priv, int offset) { return getreg32(priv->ld_base + offset); @@ -288,7 +288,7 @@ static uint32_t tiva_ethin(struct tiva_driver_s *priv, int offset) #else static inline uint32_t tiva_ethin(struct tiva_driver_s *priv, int offset) { - return getreg32(LM_ETHCON_BASE + offset); + return getreg32(TIVA_ETHCON_BASE + offset); } #endif @@ -308,7 +308,7 @@ static inline uint32_t tiva_ethin(struct tiva_driver_s *priv, int offset) * ****************************************************************************/ -#if LM_NETHCONTROLLERS > 1 +#if TIVA_NETHCONTROLLERS > 1 static void tiva_ethout(struct tiva_driver_s *priv, int offset, uint32_t value) { putreg32(value, priv->ld_base + offset); @@ -316,7 +316,7 @@ static void tiva_ethout(struct tiva_driver_s *priv, int offset, uint32_t value) #else static inline void tiva_ethout(struct tiva_driver_s *priv, int offset, uint32_t value) { - putreg32(value, LM_ETHCON_BASE + offset); + putreg32(value, TIVA_ETHCON_BASE + offset); } #endif @@ -341,23 +341,23 @@ static void tiva_ethreset(struct tiva_driver_s *priv) irqstate_t flags; uint32_t regval; -#if LM_NETHCONTROLLERS > 1 +#if TIVA_NETHCONTROLLERS > 1 # error "If multiple interfaces are supported, this function would have to be redesigned" #endif /* Make sure that clocking is enabled for the Ethernet (and PHY) peripherals */ flags = irqsave(); - regval = getreg32(LM_SYSCON_RCGC2); + regval = getreg32(TIVA_SYSCON_RCGC2); regval |= (SYSCON_RCGC2_EMAC0|SYSCON_RCGC2_EPHY0); - putreg32(regval, LM_SYSCON_RCGC2); + putreg32(regval, TIVA_SYSCON_RCGC2); nllvdbg("RCGC2: %08x\n", regval); /* Put the Ethernet controller into the reset state */ - regval = getreg32(LM_SYSCON_SRCR2); + regval = getreg32(TIVA_SYSCON_SRCR2); regval |= (SYSCON_SRCR2_EMAC0|SYSCON_SRCR2_EPHY0); - putreg32(regval, LM_SYSCON_SRCR2); + putreg32(regval, TIVA_SYSCON_SRCR2); /* Wait just a bit. This is a much longer delay than necessary */ @@ -366,7 +366,7 @@ static void tiva_ethreset(struct tiva_driver_s *priv) /* Then take the Ethernet controller out of the reset state */ regval &= ~(SYSCON_SRCR2_EMAC0|SYSCON_SRCR2_EPHY0); - putreg32(regval, LM_SYSCON_SRCR2); + putreg32(regval, TIVA_SYSCON_SRCR2); nllvdbg("SRCR2: %08x\n", regval); /* Wait just a bit, again. If we touch the ethernet too soon, we may busfault. */ @@ -375,7 +375,7 @@ static void tiva_ethreset(struct tiva_driver_s *priv) /* Enable Port F for Ethernet LEDs: LED0=Bit 3; LED1=Bit 2 */ -#ifdef CONFIG_LM_ETHLEDS +#ifdef CONFIG_TIVA_ETHLEDS /* Configure the pins for the peripheral function */ tiva_configgpio(GPIO_ETHPHY_LED0 | GPIO_STRENGTH_2MA | GPIO_PADTYPE_STD); @@ -384,14 +384,14 @@ static void tiva_ethreset(struct tiva_driver_s *priv) /* Disable all Ethernet controller interrupts */ - regval = tiva_ethin(priv, LM_MAC_IM_OFFSET); + regval = tiva_ethin(priv, TIVA_MAC_IM_OFFSET); regval &= ~MAC_IM_ALLINTS; - tiva_ethout(priv, LM_MAC_IM_OFFSET, regval); + tiva_ethout(priv, TIVA_MAC_IM_OFFSET, regval); /* Clear any pending interrupts (shouldn't be any) */ - regval = tiva_ethin(priv, LM_MAC_RIS_OFFSET); - tiva_ethout(priv, LM_MAC_IACK_OFFSET, regval); + regval = tiva_ethin(priv, TIVA_MAC_RIS_OFFSET); + tiva_ethout(priv, TIVA_MAC_IACK_OFFSET, regval); irqrestore(flags); } @@ -416,22 +416,22 @@ static void tiva_phywrite(struct tiva_driver_s *priv, int regaddr, uint16_t valu { /* Wait for any MII transactions in progress to complete */ - while ((tiva_ethin(priv, LM_MAC_MCTL_OFFSET) & MAC_MCTL_START) != 0); + while ((tiva_ethin(priv, TIVA_MAC_MCTL_OFFSET) & MAC_MCTL_START) != 0); /* Set up the data to be written */ DEBUGASSERT(value < MAC_MTXD_MASK); - tiva_ethout(priv, LM_MAC_MTXD_OFFSET, value); + tiva_ethout(priv, TIVA_MAC_MTXD_OFFSET, value); /* Set up the PHY register address and start the write operation */ regaddr <<= MAC_MCTL_REGADR_SHIFT; DEBUGASSERT((regaddr & MAC_MTXD_MASK) == regaddr); - tiva_ethout(priv, LM_MAC_MCTL_OFFSET, regaddr | MAC_MCTL_WRITE | MAC_MCTL_START); + tiva_ethout(priv, TIVA_MAC_MCTL_OFFSET, regaddr | MAC_MCTL_WRITE | MAC_MCTL_START); /* Wait for the write transaction to complete */ - while ((tiva_ethin(priv, LM_MAC_MCTL_OFFSET) & MAC_MCTL_START) != 0); + while ((tiva_ethin(priv, TIVA_MAC_MCTL_OFFSET) & MAC_MCTL_START) != 0); } #endif @@ -455,21 +455,21 @@ static uint16_t tiva_phyread(struct tiva_driver_s *priv, int regaddr) { /* Wait for any MII transactions in progress to complete */ - while ((tiva_ethin(priv, LM_MAC_MCTL_OFFSET) & MAC_MCTL_START) != 0); + while ((tiva_ethin(priv, TIVA_MAC_MCTL_OFFSET) & MAC_MCTL_START) != 0); /* Set up the PHY register address and start the read operation */ regaddr <<= MAC_MCTL_REGADR_SHIFT; DEBUGASSERT((regaddr & MAC_MTXD_MASK) == regaddr); - tiva_ethout(priv, LM_MAC_MCTL_OFFSET, regaddr | MAC_MCTL_START); + tiva_ethout(priv, TIVA_MAC_MCTL_OFFSET, regaddr | MAC_MCTL_START); /* Wait for the write transaction to complete */ - while ((tiva_ethin(priv, LM_MAC_MCTL_OFFSET) & MAC_MCTL_START) != 0); + while ((tiva_ethin(priv, TIVA_MAC_MCTL_OFFSET) & MAC_MCTL_START) != 0); /* Read and return the PHY data */ - return (uint16_t)(tiva_ethin(priv, LM_MAC_MRXD_OFFSET) & MAC_MTRD_MASK); + return (uint16_t)(tiva_ethin(priv, TIVA_MAC_MRXD_OFFSET) & MAC_MTRD_MASK); } /**************************************************************************** @@ -499,7 +499,7 @@ static int tiva_transmit(struct tiva_driver_s *priv) /* Verify that the hardware is ready to send another packet */ flags = irqsave(); - if ((tiva_ethin(priv, LM_MAC_TR_OFFSET) & MAC_TR_NEWTX) == 0) + if ((tiva_ethin(priv, TIVA_MAC_TR_OFFSET) & MAC_TR_NEWTX) == 0) { /* Increment statistics */ @@ -520,7 +520,7 @@ static int tiva_transmit(struct tiva_driver_s *priv) regval = (uint32_t)(pktlen - 14); regval |= ((uint32_t)(*dbuf++) << 16); regval |= ((uint32_t)(*dbuf++) << 24); - tiva_ethout(priv, LM_MAC_DATA_OFFSET, regval); + tiva_ethout(priv, TIVA_MAC_DATA_OFFSET, regval); /* Write all of the whole, 32-bit values in the middle of the packet */ @@ -530,7 +530,7 @@ static int tiva_transmit(struct tiva_driver_s *priv) * buffer may be un-aligned. */ - tiva_ethout(priv, LM_MAC_DATA_OFFSET, *(uint32_t*)dbuf); + tiva_ethout(priv, TIVA_MAC_DATA_OFFSET, *(uint32_t*)dbuf); } /* Write the last, partial word in the FIFO */ @@ -555,16 +555,16 @@ static int tiva_transmit(struct tiva_driver_s *priv) break; } - tiva_ethout(priv, LM_MAC_DATA_OFFSET, regval); + tiva_ethout(priv, TIVA_MAC_DATA_OFFSET, regval); } /* Activate the transmitter */ - tiva_ethout(priv, LM_MAC_TR_OFFSET, MAC_TR_NEWTX); + tiva_ethout(priv, TIVA_MAC_TR_OFFSET, MAC_TR_NEWTX); /* Setup the TX timeout watchdog (perhaps restarting the timer) */ - (void)wd_start(priv->ld_txtimeout, LM_TXTIMEOUT, tiva_txtimeout, 1, (uint32_t)priv); + (void)wd_start(priv->ld_txtimeout, TIVA_TXTIMEOUT, tiva_txtimeout, 1, (uint32_t)priv); ret = OK; } @@ -609,7 +609,7 @@ static int tiva_uiptxpoll(struct uip_driver_s *dev) * packet was successfully handled. */ - DEBUGASSERT((tiva_ethin(priv, LM_MAC_TR_OFFSET) & MAC_TR_NEWTX) == 0) + DEBUGASSERT((tiva_ethin(priv, TIVA_MAC_TR_OFFSET) & MAC_TR_NEWTX) == 0) uip_arp_out(&priv->ld_dev); ret = tiva_transmit(priv); } @@ -646,7 +646,7 @@ static void tiva_receive(struct tiva_driver_s *priv) /* Loop while there are incoming packets to be processed */ - while ((tiva_ethin(priv, LM_MAC_NP_OFFSET) & MAC_NP_MASK) != 0) + while ((tiva_ethin(priv, TIVA_MAC_NP_OFFSET) & MAC_NP_MASK) != 0) { /* Update statistics */ @@ -666,7 +666,7 @@ static void tiva_receive(struct tiva_driver_s *priv) * includes the len/type field (size 2) and the FCS (size 4). */ - regval = tiva_ethin(priv, LM_MAC_DATA_OFFSET); + regval = tiva_ethin(priv, TIVA_MAC_DATA_OFFSET); pktlen = (int)(regval & 0x0000ffff); nllvdbg("Receiving packet, pktlen: %d\n", pktlen); @@ -695,7 +695,7 @@ static void tiva_receive(struct tiva_driver_s *priv) while (wordlen--) { - (void)tiva_ethin(priv, LM_MAC_DATA_OFFSET); + (void)tiva_ethin(priv, TIVA_MAC_DATA_OFFSET); } /* Check for another packet */ @@ -719,7 +719,7 @@ static void tiva_receive(struct tiva_driver_s *priv) * buffer may be un-aligned. */ - *(uint32_t*)dbuf = tiva_ethin(priv, LM_MAC_DATA_OFFSET); + *(uint32_t*)dbuf = tiva_ethin(priv, TIVA_MAC_DATA_OFFSET); } /* Handle the last, partial word in the FIFO (0-3 bytes) and discard @@ -732,7 +732,7 @@ static void tiva_receive(struct tiva_driver_s *priv) * bytes of the FCS into the user buffer. */ - regval = tiva_ethin(priv, LM_MAC_DATA_OFFSET); + regval = tiva_ethin(priv, TIVA_MAC_DATA_OFFSET); switch (bytesleft) { default: @@ -835,7 +835,7 @@ static void tiva_txdone(struct tiva_driver_s *priv) * at this point. */ - DEBUGASSERT((tiva_ethin(priv, LM_MAC_TR_OFFSET) & MAC_TR_NEWTX) == 0) + DEBUGASSERT((tiva_ethin(priv, TIVA_MAC_TR_OFFSET) & MAC_TR_NEWTX) == 0) /* Then poll uIP for new XMIT data */ @@ -864,7 +864,7 @@ static int tiva_interrupt(int irq, FAR void *context) register struct tiva_driver_s *priv; uint32_t ris; -#if LM_NETHCONTROLLERS > 1 +#if TIVA_NETHCONTROLLERS > 1 # error "A mechanism to associate and interface with an IRQ is needed" #else priv = &g_lm3sdev[0]; @@ -872,11 +872,11 @@ static int tiva_interrupt(int irq, FAR void *context) /* Read the raw interrupt status register */ - ris = tiva_ethin(priv, LM_MAC_RIS_OFFSET); + ris = tiva_ethin(priv, TIVA_MAC_RIS_OFFSET); /* Clear all pending interrupts */ - tiva_ethout(priv, LM_MAC_IACK_OFFSET, ris); + tiva_ethout(priv, TIVA_MAC_IACK_OFFSET, ris); /* Check for errors */ @@ -899,7 +899,7 @@ static int tiva_interrupt(int irq, FAR void *context) /* Handle (unmasked) interrupts according to status bit settings */ - ris &= tiva_ethin(priv, LM_MAC_IM_OFFSET); + ris &= tiva_ethin(priv, TIVA_MAC_IM_OFFSET); /* Is this an Rx interrupt (meaning that a packet has been received)? */ @@ -995,15 +995,15 @@ static void tiva_polltimer(int argc, uint32_t arg, ...) * inaccuracies. */ - if ((tiva_ethin(priv, LM_MAC_TR_OFFSET) & MAC_TR_NEWTX) == 0) + if ((tiva_ethin(priv, TIVA_MAC_TR_OFFSET) & MAC_TR_NEWTX) == 0) { /* If so, update TCP timing states and poll uIP for new XMIT data */ - (void)uip_timer(&priv->ld_dev, tiva_uiptxpoll, LM_POLLHSEC); + (void)uip_timer(&priv->ld_dev, tiva_uiptxpoll, TIVA_POLLHSEC); /* Setup the watchdog poll timer again */ - (void)wd_start(priv->ld_txpoll, LM_WDDELAY, tiva_polltimer, 1, arg); + (void)wd_start(priv->ld_txpoll, TIVA_WDDELAY, tiva_polltimer, 1, arg); } } @@ -1048,11 +1048,11 @@ static int tiva_ifup(struct uip_driver_s *dev) * div = (SYSCLK_FREQUENCY / 2 / MDCCLK_FREQUENCY) - 1 * * Where the maximum value for MDCCLK_FREQUENCY is 2,500,000. We will - * add 1 to assure the max LM_MAX_MDCCLK is not exceeded. + * add 1 to assure the max TIVA_MAX_MDCCLK is not exceeded. */ - div = SYSCLK_FREQUENCY / 2 / LM_MAX_MDCCLK; - tiva_ethout(priv, LM_MAC_MDV_OFFSET, div); + div = SYSCLK_FREQUENCY / 2 / TIVA_MAX_MDCCLK; + tiva_ethout(priv, TIVA_MAC_MDV_OFFSET, div); nllvdbg("MDV: %08x\n", div); /* Then configure the Ethernet Controller for normal operation @@ -1061,32 +1061,32 @@ static int tiva_ifup(struct uip_driver_s *dev) * TX Padding Enabled). */ - regval = tiva_ethin(priv, LM_MAC_TCTL_OFFSET); - regval &= ~LM_TCTCL_CLRBITS; - regval |= LM_TCTCL_SETBITS; - tiva_ethout(priv, LM_MAC_TCTL_OFFSET, regval); + regval = tiva_ethin(priv, TIVA_MAC_TCTL_OFFSET); + regval &= ~TIVA_TCTCL_CLRBITS; + regval |= TIVA_TCTCL_SETBITS; + tiva_ethout(priv, TIVA_MAC_TCTL_OFFSET, regval); nllvdbg("TCTL: %08x\n", regval); /* Setup the receive control register (Disable multicast frames, disable * promiscuous mode, disable bad CRC rejection). */ - regval = tiva_ethin(priv, LM_MAC_RCTL_OFFSET); - regval &= ~LM_RCTCL_CLRBITS; - regval |= LM_RCTCL_SETBITS; - tiva_ethout(priv, LM_MAC_RCTL_OFFSET, regval); + regval = tiva_ethin(priv, TIVA_MAC_RCTL_OFFSET); + regval &= ~TIVA_RCTCL_CLRBITS; + regval |= TIVA_RCTCL_SETBITS; + tiva_ethout(priv, TIVA_MAC_RCTL_OFFSET, regval); nllvdbg("RCTL: %08x\n", regval); /* Setup the time stamp configuration register */ -#ifdef LM_ETHTS - regval = tiva_ethin(priv, LM_MAC_TS_OFFSET); -#ifdef CONFIG_LM_TIMESTAMP +#ifdef TIVA_ETHTS + regval = tiva_ethin(priv, TIVA_MAC_TS_OFFSET); +#ifdef CONFIG_TIVA_TIMESTAMP regval |= MAC_TS_EN; #else regval &= ~(MAC_TS_EN); #endif - tiva_ethout(priv, LM_MAC_TS_OFFSET, regval); + tiva_ethout(priv, TIVA_MAC_TS_OFFSET, regval); nllvdbg("TS: %08x\n", regval); #endif @@ -1106,41 +1106,41 @@ static int tiva_ifup(struct uip_driver_s *dev) /* Reset the receive FIFO */ - regval = tiva_ethin(priv, LM_MAC_RCTL_OFFSET); + regval = tiva_ethin(priv, TIVA_MAC_RCTL_OFFSET); regval |= MAC_RCTL_RSTFIFO; - tiva_ethout(priv, LM_MAC_RCTL_OFFSET, regval); + tiva_ethout(priv, TIVA_MAC_RCTL_OFFSET, regval); /* Enable the Ethernet receiver */ - regval = tiva_ethin(priv, LM_MAC_RCTL_OFFSET); + regval = tiva_ethin(priv, TIVA_MAC_RCTL_OFFSET); regval |= MAC_RCTL_RXEN; - tiva_ethout(priv, LM_MAC_RCTL_OFFSET, regval); + tiva_ethout(priv, TIVA_MAC_RCTL_OFFSET, regval); /* Enable the Ethernet transmitter */ - regval = tiva_ethin(priv, LM_MAC_TCTL_OFFSET); + regval = tiva_ethin(priv, TIVA_MAC_TCTL_OFFSET); regval |= MAC_TCTL_TXEN; - tiva_ethout(priv, LM_MAC_TCTL_OFFSET, regval); + tiva_ethout(priv, TIVA_MAC_TCTL_OFFSET, regval); /* Reset the receive FIFO (again) */ - regval = tiva_ethin(priv, LM_MAC_RCTL_OFFSET); + regval = tiva_ethin(priv, TIVA_MAC_RCTL_OFFSET); regval |= MAC_RCTL_RSTFIFO; - tiva_ethout(priv, LM_MAC_RCTL_OFFSET, regval); + tiva_ethout(priv, TIVA_MAC_RCTL_OFFSET, regval); /* Enable the Ethernet interrupt */ -#if LM_NETHCONTROLLERS > 1 +#if TIVA_NETHCONTROLLERS > 1 up_enable_irq(priv->irq); #else - up_enable_irq(LM_IRQ_ETHCON); + up_enable_irq(TIVA_IRQ_ETHCON); #endif /* Enable the Ethernet RX packet receipt interrupt */ - regval = tiva_ethin(priv, LM_MAC_IM_OFFSET); + regval = tiva_ethin(priv, TIVA_MAC_IM_OFFSET); regval |= MAC_IM_RXINTM; - tiva_ethout(priv, LM_MAC_IM_OFFSET, regval); + tiva_ethout(priv, TIVA_MAC_IM_OFFSET, regval); /* Program the hardware with it's MAC address (for filtering) */ @@ -1148,15 +1148,15 @@ static int tiva_ifup(struct uip_driver_s *dev) (uint32_t)priv->ld_dev.d_mac.ether_addr_octet[2] << 16 | (uint32_t)priv->ld_dev.d_mac.ether_addr_octet[1] << 8 | (uint32_t)priv->ld_dev.d_mac.ether_addr_octet[0]; - tiva_ethout(priv, LM_MAC_IA0_OFFSET, regval); + tiva_ethout(priv, TIVA_MAC_IA0_OFFSET, regval); regval = (uint32_t)priv->ld_dev.d_mac.ether_addr_octet[5] << 8 | (uint32_t)priv->ld_dev.d_mac.ether_addr_octet[4]; - tiva_ethout(priv, LM_MAC_IA1_OFFSET, regval); + tiva_ethout(priv, TIVA_MAC_IA1_OFFSET, regval); /* Set and activate a timer process */ - (void)wd_start(priv->ld_txpoll, LM_WDDELAY, tiva_polltimer, 1, (uint32_t)priv); + (void)wd_start(priv->ld_txpoll, TIVA_WDDELAY, tiva_polltimer, 1, (uint32_t)priv); priv->ld_bifup = true; irqrestore(flags); @@ -1198,46 +1198,46 @@ static int tiva_ifdown(struct uip_driver_s *dev) /* Disable the Ethernet interrupt */ -#if LM_NETHCONTROLLERS > 1 +#if TIVA_NETHCONTROLLERS > 1 up_disable_irq(priv->irq); #else - up_disable_irq(LM_IRQ_ETHCON); + up_disable_irq(TIVA_IRQ_ETHCON); #endif /* Disable all Ethernet controller interrupt sources */ - regval = tiva_ethin(priv, LM_MAC_IM_OFFSET); + regval = tiva_ethin(priv, TIVA_MAC_IM_OFFSET); regval &= ~MAC_IM_ALLINTS; - tiva_ethout(priv, LM_MAC_IM_OFFSET, regval); + tiva_ethout(priv, TIVA_MAC_IM_OFFSET, regval); /* Reset the receive FIFO */ - regval = tiva_ethin(priv, LM_MAC_RCTL_OFFSET); + regval = tiva_ethin(priv, TIVA_MAC_RCTL_OFFSET); regval |= MAC_RCTL_RSTFIFO; - tiva_ethout(priv, LM_MAC_RCTL_OFFSET, regval); + tiva_ethout(priv, TIVA_MAC_RCTL_OFFSET, regval); /* Disable the Ethernet receiver */ - regval = tiva_ethin(priv, LM_MAC_RCTL_OFFSET); + regval = tiva_ethin(priv, TIVA_MAC_RCTL_OFFSET); regval &= ~MAC_RCTL_RXEN; - tiva_ethout(priv, LM_MAC_RCTL_OFFSET, regval); + tiva_ethout(priv, TIVA_MAC_RCTL_OFFSET, regval); /* Disable the Ethernet transmitter */ - regval = tiva_ethin(priv, LM_MAC_RCTL_OFFSET); + regval = tiva_ethin(priv, TIVA_MAC_RCTL_OFFSET); regval &= ~MAC_TCTL_TXEN; - tiva_ethout(priv, LM_MAC_TCTL_OFFSET, regval); + tiva_ethout(priv, TIVA_MAC_TCTL_OFFSET, regval); /* Reset the receive FIFO (again) */ - regval = tiva_ethin(priv, LM_MAC_RCTL_OFFSET); + regval = tiva_ethin(priv, TIVA_MAC_RCTL_OFFSET); regval |= MAC_RCTL_RSTFIFO; - tiva_ethout(priv, LM_MAC_RCTL_OFFSET, regval); + tiva_ethout(priv, TIVA_MAC_RCTL_OFFSET, regval); /* Clear any pending interrupts */ - regval = tiva_ethin(priv, LM_MAC_RIS_OFFSET); - tiva_ethout(priv, LM_MAC_IACK_OFFSET, regval); + regval = tiva_ethin(priv, TIVA_MAC_RIS_OFFSET); + tiva_ethout(priv, TIVA_MAC_IACK_OFFSET, regval); /* The interface is now DOWN */ @@ -1279,7 +1279,7 @@ static int tiva_txavail(struct uip_driver_s *dev) */ flags = irqsave(); - if (priv->ld_bifup && (tiva_ethin(priv, LM_MAC_TR_OFFSET) & MAC_TR_NEWTX) == 0) + 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 uIP * for new Tx data @@ -1372,7 +1372,7 @@ static int tiva_rmmac(struct uip_driver_s *dev, FAR const uint8_t *mac) * ****************************************************************************/ -#if LM_NETHCONTROLLERS > 1 +#if TIVA_NETHCONTROLLERS > 1 int tiva_ethinitialize(int intf) #else static inline int tiva_ethinitialize(int intf) @@ -1385,12 +1385,12 @@ static inline int tiva_ethinitialize(int intf) ndbg("Setting up eth%d\n", intf); -#if LM_NETHCONTROLLERS > 1 +#if TIVA_NETHCONTROLLERS > 1 # error "This debug check only works with one interface" #else - DEBUGASSERT((getreg32(LM_SYSCON_DC4) & (SYSCON_DC4_EMAC0|SYSCON_DC4_EPHY0)) == (SYSCON_DC4_EMAC0|SYSCON_DC4_EPHY0)); + DEBUGASSERT((getreg32(TIVA_SYSCON_DC4) & (SYSCON_DC4_EMAC0|SYSCON_DC4_EPHY0)) == (SYSCON_DC4_EMAC0|SYSCON_DC4_EPHY0)); #endif - DEBUGASSERT((unsigned)intf < LM_NETHCONTROLLERS); + DEBUGASSERT((unsigned)intf < TIVA_NETHCONTROLLERS); /* Initialize the driver structure */ @@ -1406,7 +1406,7 @@ static inline int tiva_ethinitialize(int intf) /* Create a watchdog for timing polling for and timing of transmisstions */ -#if LM_NETHCONTROLLERS > 1 +#if TIVA_NETHCONTROLLERS > 1 # error "A mechanism to associate base address an IRQ with an interface is needed" priv->ld_base = ??; /* Ethernet controller base address */ priv->ld_irq = ??; /* Ethernet controller IRQ number */ @@ -1419,7 +1419,7 @@ static inline int tiva_ethinitialize(int intf) * is caleld (and the MAC can be overwritten with a netdev ioctl call). */ -#ifdef CONFIG_LM_BOARDMAC +#ifdef CONFIG_TIVA_BOARDMAC tiva_ethernetmac(&priv->ld_dev.d_mac); #endif @@ -1433,10 +1433,10 @@ static inline int tiva_ethinitialize(int intf) /* Attach the IRQ to the driver */ -#if LM_NETHCONTROLLERS > 1 +#if TIVA_NETHCONTROLLERS > 1 ret = irq_attach(priv->irq, tiva_interrupt); #else - ret = irq_attach(LM_IRQ_ETHCON, tiva_interrupt); + ret = irq_attach(TIVA_IRQ_ETHCON, tiva_interrupt); #endif if (ret != 0) { @@ -1462,12 +1462,11 @@ static inline int tiva_ethinitialize(int intf) * ************************************************************************************/ -#if LM_NETHCONTROLLERS == 1 +#if TIVA_NETHCONTROLLERS == 1 void up_netinitialize(void) { (void)tiva_ethinitialize(0); } #endif -#endif /* CONFIG_NET && CONFIG_LM_ETHERNET */ - +#endif /* CONFIG_NET && CONFIG_TIVA_ETHERNET */ |