[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