summaryrefslogtreecommitdiff
path: root/nuttx/arch/arm/src/lpc17xx/lpc17_ethernet.c
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2010-11-24 00:43:08 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2010-11-24 00:43:08 +0000
commitac80d4760811c65bde1baad9ba21dc48d9092765 (patch)
tree08376773e3853f9fcf54114cb755f096d98a5d02 /nuttx/arch/arm/src/lpc17xx/lpc17_ethernet.c
parente940d6ad43e2af6ec9d44d711e3ef89d11b34768 (diff)
downloadpx4-nuttx-ac80d4760811c65bde1baad9ba21dc48d9092765.tar.gz
px4-nuttx-ac80d4760811c65bde1baad9ba21dc48d9092765.tar.bz2
px4-nuttx-ac80d4760811c65bde1baad9ba21dc48d9092765.zip
Now get RX message
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3124 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/arch/arm/src/lpc17xx/lpc17_ethernet.c')
-rw-r--r--nuttx/arch/arm/src/lpc17xx/lpc17_ethernet.c25
1 files changed, 13 insertions, 12 deletions
diff --git a/nuttx/arch/arm/src/lpc17xx/lpc17_ethernet.c b/nuttx/arch/arm/src/lpc17xx/lpc17_ethernet.c
index 21e60feb6..2e630cb2b 100644
--- a/nuttx/arch/arm/src/lpc17xx/lpc17_ethernet.c
+++ b/nuttx/arch/arm/src/lpc17xx/lpc17_ethernet.c
@@ -905,7 +905,7 @@ static void lpc17_rxdone(struct lpc17_driver_s *priv)
if ((*rxstat & RXSTAT_INFO_ERROR) != 0)
{
- nlldbg("Error. rxstat: %08d\n", *rxstat);
+ nlldbg("Error. rxstat: %08x\n", *rxstat);
EMAC_STAT(priv, rx_pkterr);
}
@@ -920,7 +920,7 @@ static void lpc17_rxdone(struct lpc17_driver_s *priv)
nlldbg("Too big. pktlen: %d rxstat: %08x\n", pktlen, *rxstat);
EMAC_STAT(priv, rx_pktsize);
}
- else if ((*rxstat & RXSTAT_INFO_LASTFLAG) != 0)
+ else if ((*rxstat & RXSTAT_INFO_LASTFLAG) == 0)
{
nlldbg("Fragment. rxstat: %08x\n", pktlen, *rxstat);
EMAC_STAT(priv, rx_fragment);
@@ -1240,15 +1240,16 @@ static int lpc17_interrupt(int irq, void *context)
}
}
- /* Clear the pending interrupt. Hmmm.. I don't normally do this on
- * Cortex-M3 interrupts. Why is this needed for the EMAC interrupt?
- */
+ /* Clear the pending interrupt */
-#if CONFIG_LPC17_NINTERFACES > 1
+#if 0 /* Apparently not necessary */
+# if CONFIG_LPC17_NINTERFACES > 1
lpc17_clrpend(priv->irq);
-#else
+# else
lpc17_clrpend(LPC17_IRQ_ETH);
+# endif
#endif
+
return OK;
}
@@ -1375,16 +1376,16 @@ static int lpc17_ifup(struct uip_driver_s *dev)
/* Configure the MAC station address */
- regval = (uint32_t)priv->lp_dev.d_mac.ether_addr_octet[1] << 8 |
- (uint32_t)priv->lp_dev.d_mac.ether_addr_octet[0];
+ regval = (uint32_t)priv->lp_dev.d_mac.ether_addr_octet[5] << 8 |
+ (uint32_t)priv->lp_dev.d_mac.ether_addr_octet[4];
lpc17_putreg(regval, LPC17_ETH_SA0);
regval = (uint32_t)priv->lp_dev.d_mac.ether_addr_octet[3] << 8 |
(uint32_t)priv->lp_dev.d_mac.ether_addr_octet[2];
lpc17_putreg(regval, LPC17_ETH_SA1);
- regval = (uint32_t)priv->lp_dev.d_mac.ether_addr_octet[5] << 8 |
- (uint32_t)priv->lp_dev.d_mac.ether_addr_octet[4];
+ regval = (uint32_t)priv->lp_dev.d_mac.ether_addr_octet[1] << 8 |
+ (uint32_t)priv->lp_dev.d_mac.ether_addr_octet[0];
lpc17_putreg(regval, LPC17_ETH_SA2);
/* Initialize Ethernet interface for the PHY setup */
@@ -2375,7 +2376,7 @@ static void lpc17_ethreset(struct lpc17_driver_s *priv)
* restriction is desired, program this 16-bit field."
*/
- lpc17_putreg(CONFIG_NET_BUFSIZE+2, LPC17_ETH_MAXF);
+ lpc17_putreg(LPC17_MAXPACKET_SIZE, LPC17_ETH_MAXF);
/* Disable all Ethernet controller interrupts */