[U-Boot-Users] [PATCH] ColdFire: Fix FEC transmit issue for MCF5275

Tsi-Chung Liew Tsi-Chung.Liew at freescale.com
Thu Mar 20 01:55:08 CET 2008


Signed-off-by: TsiChung Liew <Tsi-Chung.Liew at freescale.com>
---
 drivers/net/mcffec.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/drivers/net/mcffec.c b/drivers/net/mcffec.c
index 3b81258..10afa93 100644
--- a/drivers/net/mcffec.c
+++ b/drivers/net/mcffec.c
@@ -166,6 +166,18 @@ int fec_send(struct eth_device *dev, volatile void *packet, int length)
 	/* Activate transmit Buffer Descriptor polling */
 	fecp->tdar = 0x01000000;	/* Descriptor polling active    */
 
+#ifdef CONFIG_M5275
+	/*
+	 * FEC fix for MCF5275. This issue is only happened in cpu polling
+	 * but does not show up in interrupt. It is believe that there is
+	 * a sync issue when accessing from DRAM. This causes FEC unable
+	 * to initial transmit data packet. A NOP instruction will
+	 * ensure the transmit descriptor polling active completed before
+	 * the next instruction begin.
+	 */
+	__asm__ ("nop");
+#endif
+
 #ifdef CFG_UNIFY_CACHE
 	icache_invalid();
 #endif
-- 
1.5.4.1





More information about the U-Boot mailing list