diff mbox

[U-Boot,v3] net: configure DWMAC DMA by default AXI burst length

Message ID 1422509851-11979-1-git-send-email-sonic.adi@gmail.com
State Accepted
Delegated to: Tom Rini
Headers show

Commit Message

Sonic Zhang Jan. 29, 2015, 5:37 a.m. UTC
From: Sonic Zhang <sonic.zhang@analog.com>

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>
---

 drivers/net/designware.c |    4 ++++
 drivers/net/designware.h |    4 +++-
 2 files changed, 7 insertions(+), 1 deletion(-)

Comments

Joe Hershberger Jan. 29, 2015, 6:20 p.m. UTC | #1
On Wed, Jan 28, 2015 at 11:37 PM, Sonic Zhang <sonic.adi@gmail.com> wrote:
>
> From: Sonic Zhang <sonic.zhang@analog.com>
>
> 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>
Tom Rini March 6, 2015, 3:43 p.m. UTC | #2
On Thu, Jan 29, 2015 at 01:37:31PM +0800, Sonic Zhang wrote:

> From: Sonic Zhang <sonic.zhang@analog.com>
> 
> 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>

Applied to u-boot/master, thanks!
diff mbox

Patch

diff --git a/drivers/net/designware.c b/drivers/net/designware.c
index 9ded895..51eff85 100644
--- a/drivers/net/designware.c
+++ b/drivers/net/designware.c
@@ -256,6 +256,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 ce51102..49d900c 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 */