diff --git a/drivers/net/designware.c b/drivers/net/designware.c
index 326d550c1f26c7f72e6234ec6774dbc8c0b4a739..bf21a08bdf475afb81d6335f51cfb84cf4a7e8f9 100644
--- a/drivers/net/designware.c
+++ b/drivers/net/designware.c
@@ -171,8 +171,8 @@ static int dw_eth_init(struct eth_device *dev, bd_t *bis)
 	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);
 
 	conf = FRAMEBURSTENABLE | DISABLERXOWN;