From: Michal Simek Date: Tue, 26 May 2015 10:01:12 +0000 (+0200) Subject: zynq: gem: Setting up WRAP bit for one TX bd X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1160fbcc619f23bf87cde01ed651566474e17eb9;p=thirdparty%2Fu-boot.git zynq: gem: Setting up WRAP bit for one TX bd Setting up WRAP bit to indicate that this is the last TX BD in the chain. On ZynqMP this problem was workaround by enabling TX_EN bit for every packet send by "zynqmp: gem: GEM changes to make it work on ep108 RTL 3.1" (sha1: 01cf5de125122a10c8ceecd1ae4c1a13cb10f45c) Signed-off-by: Michal Simek Reviewed-by: Punnaiah Choudary Kalluri --- diff --git a/drivers/net/zynq_gem.c b/drivers/net/zynq_gem.c index 0105ff0f74d..0092691bd5a 100644 --- a/drivers/net/zynq_gem.c +++ b/drivers/net/zynq_gem.c @@ -415,9 +415,6 @@ static int zynq_gem_send(struct eth_device *dev, void *ptr, int len) struct zynq_gem_priv *priv = dev->priv; struct zynq_gem_regs *regs = (struct zynq_gem_regs *)dev->iobase; - setbits_le32(®s->nwctrl, ZYNQ_GEM_NWCTRL_RXEN_MASK | - ZYNQ_GEM_NWCTRL_TXEN_MASK); - /* setup BD */ writel((u32)priv->tx_bd, ®s->txqbase); @@ -426,7 +423,8 @@ static int zynq_gem_send(struct eth_device *dev, void *ptr, int len) priv->tx_bd->addr = (u32)ptr; priv->tx_bd->status = (len & ZYNQ_GEM_TXBUF_FRMLEN_MASK) | - ZYNQ_GEM_TXBUF_LAST_MASK; + ZYNQ_GEM_TXBUF_LAST_MASK | + ZYNQ_GEM_TXBUF_WRAP_MASK; addr = (u32) ptr; addr &= ~(ARCH_DMA_MINALIGN - 1);