bug ERR6358 in VF500 or iMX6 makes Ethernet send slow

      bug ERR6358 in VF500 or iMX6 makes Ethernet send slow

      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.
      Files
      Thanks for pointing this out. Do you know of some test program that can be used to test the behaviour before and after the patch? We would like to test this and add it to our version so that it becomes part of the next release.

      Your F&S Support Team
      F&S Elektronik Systeme GmbH
      As this is an international forum, please try to post in English.
      Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.