[U-Boot] [PATCH 1/1] Fix for NFS boot for OMAP3 EVM

Manikandan Pillai mani.pillai at ti.com
Tue Mar 3 04:39:31 CET 2009


The eth_halt() function has been modified to remove the
chip reset and instead stop the transmit/receive from the device.

Signed-off-by: Manikandan Pillai <mani.pillai at ti.com>
---
 drivers/net/smc911x.c |   23 ++++++++++++++++++++++-
 1 files changed, 22 insertions(+), 1 deletions(-)

diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
index 1ded8f0..2f0852e 100644
--- a/drivers/net/smc911x.c
+++ b/drivers/net/smc911x.c
@@ -116,6 +116,27 @@ static int smc911x_phy_reset(void)
 	return 0;
 }
 
+static void smc911x_shutdown(void)
+{
+	unsigned cr;
+
+	/* Turn of Rx and TX */
+	cr = smc911x_get_mac_csr(MAC_CR);
+	cr &= ~(MAC_CR_TXEN | MAC_CR_RXEN | MAC_CR_HBDIS);
+	smc911x_set_mac_csr(MAC_CR, cr);
+
+	/* Stop Transmission */
+	cr = smc911x_get_mac_csr(TX_CFG);
+	cr &= ~(TX_CFG_STOP_TX);
+	smc911x_set_mac_csr(TX_CFG, cr);
+	/* Stop receiving packets */
+	cr = smc911x_get_mac_csr(RX_CFG);
+	cr &= ~(RX_CFG_RXDOFF);
+	smc911x_set_mac_csr(RX_CFG, cr);
+
+}
+
+
 static void smc911x_phy_configure(void)
 {
 	int timeout;
@@ -224,7 +245,7 @@ int eth_send(volatile void *packet, int length)
 
 void eth_halt(void)
 {
-	smc911x_reset();
+	smc911x_shutdown();
 }
 
 int eth_rx(void)
-- 
1.5.6



More information about the U-Boot mailing list