]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
zynq: gem: Setting up WRAP bit for one TX bd
authorMichal Simek <michal.simek@xilinx.com>
Tue, 26 May 2015 10:01:12 +0000 (12:01 +0200)
committerMichal Simek <michal.simek@xilinx.com>
Wed, 27 May 2015 08:59:31 +0000 (10:59 +0200)
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 <michal.simek@xilinx.com>
Reviewed-by: Punnaiah Choudary Kalluri <punnaia@xilinx.com>
drivers/net/zynq_gem.c

index 0105ff0f74de788dc68e16775f4a9533d745cf77..0092691bd5a38602aac8ad3d1cd4aa0921eb672d 100644 (file)
@@ -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(&regs->nwctrl, ZYNQ_GEM_NWCTRL_RXEN_MASK |
-                    ZYNQ_GEM_NWCTRL_TXEN_MASK);
-
        /* setup BD */
        writel((u32)priv->tx_bd, &regs->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);