diff options
author | Ian Abbott <abbotti@mev.co.uk> | 2016-11-07 18:16:21 +0000 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2016-11-09 09:09:14 +0100 |
commit | db62ca84fb097fa0916e948f300334e7b7f07448 (patch) | |
tree | acad1d8fa1544fd129346bd4bab4f343f46a01f3 /drivers | |
parent | 047ee22b894c15a01ed40f358d5c933b6807d880 (diff) | |
download | barebox-db62ca84fb097fa0916e948f300334e7b7f07448.tar.gz barebox-db62ca84fb097fa0916e948f300334e7b7f07448.tar.xz |
net/designware: Consecutive writes to the same register to be avoided
There are a few registers where consecutive writes to the same location
should be avoided or have a delay.
According to Synopsys, here is a list of the registers and bit(s) where
consecutive writes should be avoided or a delay is required:
DMA Registers:
Register 0 Bit 7
Register 6 All bits except for 24, 16-13, 2-1.
GMAC Registers:
Registers 0-3 All bits
Registers 6-7 All bits
Register 10 All bits
Register 11 All bits except for 5-6.
Registers 16-47 All bits
Register 48 All bits except for 18-16, 14.
Register 448 Bit 4.
Register 459 Bits 0-3.
[Original U-Boot patch by Dinh Nguyen <dinguyen@altera.com>]
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/designware.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/designware.c b/drivers/net/designware.c index 1d662a71d9..21fb44ef2a 100644 --- a/drivers/net/designware.c +++ b/drivers/net/designware.c @@ -248,8 +248,8 @@ static int dwc_ether_init(struct eth_device *dev) dev->set_ethaddr(dev, priv->macaddr); writel(FIXEDBURST | PRIORXTX_41 | BURST_16, &dma_p->busmode); - writel(FLUSHTXFIFO | readl(&dma_p->opmode), &dma_p->opmode); - writel(STOREFORWARD | TXSECONDFRAME, &dma_p->opmode); + writel(readl(&dma_p->opmode) | FLUSHTXFIFO | STOREFORWARD | + TXSECONDFRAME, &dma_p->opmode); writel(FRAMEBURSTENABLE | DISABLERXOWN, &mac_p->conf); return 0; } |