aboutsummaryrefslogtreecommitdiff
path: root/drivers/net
diff options
context:
space:
mode:
authorSonic Zhang2015-01-29 13:37:31 +0800
committerTom Rini2015-03-05 11:17:53 -0500
commit2ddaf13bd28d9d9450831e84e30d617d2f49f1bd (patch)
treecfa3b345ceffe65c5859f5c32cd4c7e422383a28 /drivers/net
parenta32ab4d910b86c83a6dee557eed68298b7e9b361 (diff)
net: configure DWMAC DMA by default AXI burst length
Board can define its own AXI burst length to improve DWMAC DMA performance. v2-changes: - Avoid write burst len register when the Macro is not defined. v3-changes: - Add axi_bus register member to struct eth_dma_regs. Signed-off-by: Sonic Zhang <sonic.zhang@analog.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/designware.c4
-rw-r--r--drivers/net/designware.h4
2 files changed, 7 insertions, 1 deletions
diff --git a/drivers/net/designware.c b/drivers/net/designware.c
index c03e935e2fb..7469e59d49f 100644
--- a/drivers/net/designware.c
+++ b/drivers/net/designware.c
@@ -258,6 +258,10 @@ static int dw_eth_init(struct eth_device *dev, bd_t *bis)
writel(readl(&dma_p->opmode) | RXSTART | TXSTART, &dma_p->opmode);
+#ifdef CONFIG_DW_AXI_BURST_LEN
+ writel((CONFIG_DW_AXI_BURST_LEN & 0x1FF >> 1), &dma_p->axibus);
+#endif
+
/* Start up the PHY */
if (phy_startup(priv->phydev)) {
printf("Could not initialize PHY %s\n",
diff --git a/drivers/net/designware.h b/drivers/net/designware.h
index ce51102052e..49d900cb3f9 100644
--- a/drivers/net/designware.h
+++ b/drivers/net/designware.h
@@ -68,7 +68,9 @@ struct eth_dma_regs {
u32 status; /* 0x14 */
u32 opmode; /* 0x18 */
u32 intenable; /* 0x1c */
- u8 reserved[40];
+ u32 reserved1[2];
+ u32 axibus; /* 0x28 */
+ u32 reserved2[7];
u32 currhosttxdesc; /* 0x48 */
u32 currhostrxdesc; /* 0x4c */
u32 currhosttxbuffaddr; /* 0x50 */