mirror of
https://github.com/apache/nuttx.git
synced 2026-06-01 07:45:16 +08:00
Now get RX message
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3124 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
@@ -905,7 +905,7 @@ static void lpc17_rxdone(struct lpc17_driver_s *priv)
|
|||||||
|
|
||||||
if ((*rxstat & RXSTAT_INFO_ERROR) != 0)
|
if ((*rxstat & RXSTAT_INFO_ERROR) != 0)
|
||||||
{
|
{
|
||||||
nlldbg("Error. rxstat: %08d\n", *rxstat);
|
nlldbg("Error. rxstat: %08x\n", *rxstat);
|
||||||
EMAC_STAT(priv, rx_pkterr);
|
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);
|
nlldbg("Too big. pktlen: %d rxstat: %08x\n", pktlen, *rxstat);
|
||||||
EMAC_STAT(priv, rx_pktsize);
|
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);
|
nlldbg("Fragment. rxstat: %08x\n", pktlen, *rxstat);
|
||||||
EMAC_STAT(priv, rx_fragment);
|
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
|
/* Clear the pending interrupt */
|
||||||
* Cortex-M3 interrupts. Why is this needed for the EMAC interrupt?
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
#if 0 /* Apparently not necessary */
|
||||||
# if CONFIG_LPC17_NINTERFACES > 1
|
# if CONFIG_LPC17_NINTERFACES > 1
|
||||||
lpc17_clrpend(priv->irq);
|
lpc17_clrpend(priv->irq);
|
||||||
# else
|
# else
|
||||||
lpc17_clrpend(LPC17_IRQ_ETH);
|
lpc17_clrpend(LPC17_IRQ_ETH);
|
||||||
# endif
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1375,16 +1376,16 @@ static int lpc17_ifup(struct uip_driver_s *dev)
|
|||||||
|
|
||||||
/* Configure the MAC station address */
|
/* Configure the MAC station address */
|
||||||
|
|
||||||
regval = (uint32_t)priv->lp_dev.d_mac.ether_addr_octet[1] << 8 |
|
regval = (uint32_t)priv->lp_dev.d_mac.ether_addr_octet[5] << 8 |
|
||||||
(uint32_t)priv->lp_dev.d_mac.ether_addr_octet[0];
|
(uint32_t)priv->lp_dev.d_mac.ether_addr_octet[4];
|
||||||
lpc17_putreg(regval, LPC17_ETH_SA0);
|
lpc17_putreg(regval, LPC17_ETH_SA0);
|
||||||
|
|
||||||
regval = (uint32_t)priv->lp_dev.d_mac.ether_addr_octet[3] << 8 |
|
regval = (uint32_t)priv->lp_dev.d_mac.ether_addr_octet[3] << 8 |
|
||||||
(uint32_t)priv->lp_dev.d_mac.ether_addr_octet[2];
|
(uint32_t)priv->lp_dev.d_mac.ether_addr_octet[2];
|
||||||
lpc17_putreg(regval, LPC17_ETH_SA1);
|
lpc17_putreg(regval, LPC17_ETH_SA1);
|
||||||
|
|
||||||
regval = (uint32_t)priv->lp_dev.d_mac.ether_addr_octet[5] << 8 |
|
regval = (uint32_t)priv->lp_dev.d_mac.ether_addr_octet[1] << 8 |
|
||||||
(uint32_t)priv->lp_dev.d_mac.ether_addr_octet[4];
|
(uint32_t)priv->lp_dev.d_mac.ether_addr_octet[0];
|
||||||
lpc17_putreg(regval, LPC17_ETH_SA2);
|
lpc17_putreg(regval, LPC17_ETH_SA2);
|
||||||
|
|
||||||
/* Initialize Ethernet interface for the PHY setup */
|
/* 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."
|
* 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 */
|
/* Disable all Ethernet controller interrupts */
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user