diff --git a/board/freescale/mx6sl_evk/mx6sl_evk.c b/board/freescale/mx6sl_evk/mx6sl_evk.c
index 089373e73fd58640e67499f2c64db2e7cfc79474..cdc3644d970fdb156cfca48cb1331dd39edd2420 100644
--- a/board/freescale/mx6sl_evk/mx6sl_evk.c
+++ b/board/freescale/mx6sl_evk/mx6sl_evk.c
@@ -626,9 +626,9 @@ void enet_board_init(void)
 	writel(reg, GPIO4_BASE_ADDR + 0x4);
 
 	/* phy power enable and reset: gpio4_21 */
-	/* DR: High Level on: Power ON */
+	/* DR: High Level off: Power Off */
 	reg = readl(GPIO4_BASE_ADDR + 0x0);
-	reg |= (1 << 21);
+	reg &= ~(1 << 21);
 	writel(reg, GPIO4_BASE_ADDR + 0x0);
 
 	/* DIR: output */
@@ -636,6 +636,13 @@ void enet_board_init(void)
 	reg |= (1 << 21);
 	writel(reg, GPIO4_BASE_ADDR + 0x4);
 
+	udelay(1000);
+
+	/* DR: High Level on: Power On */
+	reg = readl(GPIO4_BASE_ADDR + 0x0);
+	reg |= (1 << 21);
+	writel(reg, GPIO4_BASE_ADDR + 0x0);
+
 	/* wait RC ms for hw reset */
 	udelay(500);
 }