NXP decribes in VYBRID_2N02G.pdf a bug in the ethernet controller of the processors imx6 and VF500. This bug in the errata sheet is ERR6358.
The effect is, that some of the ethernetpackets will not be send, or send with a big delay. In fact it is never the first packet, of a bunch of packets, that will be delayed.
In our case, the delay could be 4 seconds or more.
Newer versions of the ethernet driver fec.c have a correction for that problem.
I
This is the patch
Index: drivers/net/fec.c
===================================================================
--- drivers/net/fec.c (revision 94)
+++ drivers/net/fec.c (working copy)
@@ -469,7 +469,12 @@
if (netif_queue_stopped(ndev))
netif_wake_queue(ndev);
}
- }
+ }
+
+ /* ERR006358: Keep the transmitter going */
+ if (bdp != fep->cur_tx && readl(fep->hwp + FEC_X_DES_ACTIVE) == 0)
+ writel(0, fep->hwp + FEC_X_DES_ACTIVE);
+
fep->dirty_tx = bdp;
spin_unlock(&fep->hw_lock);
}
For me, the patch solves the problem.
The recent version linux-3.0.15-fsvybrid-V2.2 does not contain this patch. So I think it is a good idea to give this patch to all users of VF500-processors.
By the way.
All of the iMx6 have the same problem.
And some of the iMX6-derivates have some additional problems.