summaryrefslogtreecommitdiff
path: root/drivers/net/designware.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/designware.c')
-rw-r--r--drivers/net/designware.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/designware.c b/drivers/net/designware.c
index c222197b114..4c1642b29a8 100644
--- a/drivers/net/designware.c
+++ b/drivers/net/designware.c
@@ -352,6 +352,11 @@ static int dw_adjust_link(struct dw_eth_dev *priv, struct eth_mac_regs *mac_p,
(phydev->duplex) ? "full" : "half",
(phydev->port == PORT_FIBRE) ? ", fiber mode" : "");
+#ifdef CONFIG_ARCH_NPCM8XX
+ /* Pass all Multicast Frames */
+ setbits_le32(&mac_p->framefilt, BIT(4));
+
+#endif
return 0;
}
@@ -554,6 +559,11 @@ static int _dw_free_pkt(struct dw_eth_dev *priv)
ulong desc_start = (ulong)desc_p;
ulong desc_end = desc_start +
roundup(sizeof(*desc_p), ARCH_DMA_MINALIGN);
+ ulong data_start = desc_p->dmamac_addr;
+ ulong data_end = data_start + roundup(CFG_ETH_BUFSIZE, ARCH_DMA_MINALIGN);
+
+ /* Invalidate the descriptor buffer data */
+ invalidate_dcache_range(data_start, data_end);
/*
* Make the current descriptor valid again and go to