Re: [U-Boot] [PATCH] net: configure DWMAC DMA by default AXI burst length
On Tue, Jan 27, 2015 at 9:24 PM, Sonic Zhang sonic@gmail.com wrote: Hi Joe, On Wed, Jan 28, 2015 at 4:43 AM, Joe Hershberger joe.hershber...@gmail.com wrote: On Mon, Jan 26, 2015 at 8:54 PM, sonic@gmail.com wrote: From: Sonic Zhang sonic.zh...@analog.com Board can define its own AXI burst length to improve DWMAC DMA performance. Signed-off-by: Sonic Zhang sonic.zh...@analog.com --- drivers/net/designware.c |2 ++ drivers/net/designware.h |5 + 2 files changed, 7 insertions(+) diff --git a/drivers/net/designware.c b/drivers/net/designware.c index 9ded895..d8d6792 100644 --- a/drivers/net/designware.c +++ b/drivers/net/designware.c @@ -256,6 +256,8 @@ static int dw_eth_init(struct eth_device *dev, bd_t *bis) writel(readl(dma_p-opmode) | RXSTART | TXSTART, dma_p-opmode); This should probably include: +#if CONFIG_DW_AXI_BURST_LEN so that this register is only accessed if configured. CONFIG_DW_AXI_BURST_LEN is always defined in designware.h in the same patch. +/* Default AXI BUS Burst length */ +#ifndef CONFIG_DW_AXI_BURST_LEN +#define CONFIG_DW_AXI_BURST_LEN 0 +#endif + Yes, I saw that... sorry I wasn't clear. I meant don't we want to avoid the write (preserving existing behavior) instead of ensuring that it is set, and still adding a register write that is (presumably) a NOP? -Joe ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH] net: configure DWMAC DMA by default AXI burst length
Hi Joe, On Wed, Jan 28, 2015 at 5:42 PM, Joe Hershberger joe.hershber...@gmail.com wrote: On Tue, Jan 27, 2015 at 9:24 PM, Sonic Zhang sonic@gmail.com wrote: Hi Joe, On Wed, Jan 28, 2015 at 4:43 AM, Joe Hershberger joe.hershber...@gmail.com wrote: On Mon, Jan 26, 2015 at 8:54 PM, sonic@gmail.com wrote: From: Sonic Zhang sonic.zh...@analog.com Board can define its own AXI burst length to improve DWMAC DMA performance. Signed-off-by: Sonic Zhang sonic.zh...@analog.com --- drivers/net/designware.c |2 ++ drivers/net/designware.h |5 + 2 files changed, 7 insertions(+) diff --git a/drivers/net/designware.c b/drivers/net/designware.c index 9ded895..d8d6792 100644 --- a/drivers/net/designware.c +++ b/drivers/net/designware.c @@ -256,6 +256,8 @@ static int dw_eth_init(struct eth_device *dev, bd_t *bis) writel(readl(dma_p-opmode) | RXSTART | TXSTART, dma_p-opmode); This should probably include: +#if CONFIG_DW_AXI_BURST_LEN so that this register is only accessed if configured. CONFIG_DW_AXI_BURST_LEN is always defined in designware.h in the same patch. +/* Default AXI BUS Burst length */ +#ifndef CONFIG_DW_AXI_BURST_LEN +#define CONFIG_DW_AXI_BURST_LEN 0 +#endif + Yes, I saw that... sorry I wasn't clear. I meant don't we want to avoid the write (preserving existing behavior) instead of ensuring that it is set, and still adding a register write that is (presumably) a NOP? OK, I will update the patch. Sonic ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH] net: configure DWMAC DMA by default AXI burst length
On Mon, Jan 26, 2015 at 8:54 PM, sonic@gmail.com wrote: From: Sonic Zhang sonic.zh...@analog.com Board can define its own AXI burst length to improve DWMAC DMA performance. Signed-off-by: Sonic Zhang sonic.zh...@analog.com --- drivers/net/designware.c |2 ++ drivers/net/designware.h |5 + 2 files changed, 7 insertions(+) diff --git a/drivers/net/designware.c b/drivers/net/designware.c index 9ded895..d8d6792 100644 --- a/drivers/net/designware.c +++ b/drivers/net/designware.c @@ -256,6 +256,8 @@ static int dw_eth_init(struct eth_device *dev, bd_t *bis) writel(readl(dma_p-opmode) | RXSTART | TXSTART, dma_p-opmode); This should probably include: +#if CONFIG_DW_AXI_BURST_LEN so that this register is only accessed if configured. + writel((CONFIG_DW_AXI_BURST_LEN 0x1FF 1), dma_p-axibus); + /* 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..d8bd84d 100644 --- a/drivers/net/designware.h +++ b/drivers/net/designware.h @@ -102,6 +102,11 @@ struct eth_dma_regs { #define TXSECONDFRAME (1 2) #define RXSTART(1 1) +/* Default AXI BUS Burst length */ +#ifndef CONFIG_DW_AXI_BURST_LEN +#define CONFIG_DW_AXI_BURST_LEN 0 +#endif + /* Descriptior related definitions */ #define MAC_MAX_FRAME_SZ (1600) -- 1.7.9.5 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH] net: configure DWMAC DMA by default AXI burst length
Hi Joe, On Wed, Jan 28, 2015 at 4:43 AM, Joe Hershberger joe.hershber...@gmail.com wrote: On Mon, Jan 26, 2015 at 8:54 PM, sonic@gmail.com wrote: From: Sonic Zhang sonic.zh...@analog.com Board can define its own AXI burst length to improve DWMAC DMA performance. Signed-off-by: Sonic Zhang sonic.zh...@analog.com --- drivers/net/designware.c |2 ++ drivers/net/designware.h |5 + 2 files changed, 7 insertions(+) diff --git a/drivers/net/designware.c b/drivers/net/designware.c index 9ded895..d8d6792 100644 --- a/drivers/net/designware.c +++ b/drivers/net/designware.c @@ -256,6 +256,8 @@ static int dw_eth_init(struct eth_device *dev, bd_t *bis) writel(readl(dma_p-opmode) | RXSTART | TXSTART, dma_p-opmode); This should probably include: +#if CONFIG_DW_AXI_BURST_LEN so that this register is only accessed if configured. CONFIG_DW_AXI_BURST_LEN is always defined in designware.h in the same patch. +/* Default AXI BUS Burst length */ +#ifndef CONFIG_DW_AXI_BURST_LEN +#define CONFIG_DW_AXI_BURST_LEN 0 +#endif + Regards, Sonic ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH] net: configure DWMAC DMA by default AXI burst length
From: Sonic Zhang sonic.zh...@analog.com Board can define its own AXI burst length to improve DWMAC DMA performance. Signed-off-by: Sonic Zhang sonic.zh...@analog.com --- drivers/net/designware.c |2 ++ drivers/net/designware.h |5 + 2 files changed, 7 insertions(+) diff --git a/drivers/net/designware.c b/drivers/net/designware.c index 9ded895..d8d6792 100644 --- a/drivers/net/designware.c +++ b/drivers/net/designware.c @@ -256,6 +256,8 @@ static int dw_eth_init(struct eth_device *dev, bd_t *bis) writel(readl(dma_p-opmode) | RXSTART | TXSTART, dma_p-opmode); + writel((CONFIG_DW_AXI_BURST_LEN 0x1FF 1), dma_p-axibus); + /* 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..d8bd84d 100644 --- a/drivers/net/designware.h +++ b/drivers/net/designware.h @@ -102,6 +102,11 @@ struct eth_dma_regs { #define TXSECONDFRAME (1 2) #define RXSTART(1 1) +/* Default AXI BUS Burst length */ +#ifndef CONFIG_DW_AXI_BURST_LEN +#define CONFIG_DW_AXI_BURST_LEN 0 +#endif + /* Descriptior related definitions */ #define MAC_MAX_FRAME_SZ (1600) -- 1.7.9.5 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot