diff --git a/board/ti/evm/evm.c b/board/ti/evm/evm.c
index aaf3033b04adf3b686bb493252c0119df00a1361..8f9f141682f376623af81cdb34294634549f6b34 100644
--- a/board/ti/evm/evm.c
+++ b/board/ti/evm/evm.c
@@ -130,6 +130,9 @@ int misc_init_r(void)
 #endif
 	omap3_evm_get_revision();
 
+#if defined(CONFIG_CMD_NET)
+	reset_net_chip();
+#endif
 	dieid_num_r();
 
 	return 0;
@@ -153,7 +156,6 @@ void set_muxconf_regs(void)
  */
 static void setup_net_chip(void)
 {
-	struct gpio *gpio3_base = (struct gpio *)OMAP34XX_GPIO3_BASE;
 	struct ctrl *ctrl_base = (struct ctrl *)OMAP34XX_CTRL_BASE;
 
 	/* Configure GPMC registers */
@@ -172,6 +174,14 @@ static void setup_net_chip(void)
 	/* Enable off mode for ALE in PADCONF_GPMC_NADV_ALE register */
 	writew(readw(&ctrl_base->gpmc_nadv_ale) | 0x0E00,
 		&ctrl_base->gpmc_nadv_ale);
+}
+
+/**
+ * Reset the ethernet chip.
+ */
+static void reset_net_chip(void)
+{
+	struct gpio *gpio3_base = (struct gpio *)OMAP34XX_GPIO3_BASE;
 
 	/* Make GPIO 64 as output pin */
 	writel(readl(&gpio3_base->oe) & ~(GPIO0), &gpio3_base->oe);
diff --git a/board/ti/evm/evm.h b/board/ti/evm/evm.h
index b721ad6af5e2e82ba027044de9d9d7ba88a8f92c..623cf1bb18d3911ef0a6130b12300a06c42ad4ce 100644
--- a/board/ti/evm/evm.h
+++ b/board/ti/evm/evm.h
@@ -49,6 +49,7 @@ u32 get_omap3_evm_rev(void);
 
 #if defined(CONFIG_CMD_NET)
 static void setup_net_chip(void);
+static void reset_net_chip(void);
 #endif
 
 /*