[Patch net-next v2 4/4] net: fec: Workaround for imx6sx enet tx hang when enable three queues
Fabio Estevam
festevam at gmail.com
Tue Sep 16 13:52:56 PDT 2014
On Tue, Sep 16, 2014 at 2:58 PM, <Frank.Li at freescale.com> wrote:
> From: Fugang Duan <B38611 at freescale.com>
>
> When enable three queues on imx6sx enet, and then do tx performance
> test with iperf tool, after some time running, tx hang.
>
> Found that:
> If uDMA is running, software set TDAR may cause tx hang.
> If uDMA is in idle, software set TDAR don't cause tx hang.
>
> There is a TDAR race condition for mutliQ when the software sets TDAR
> and the UDMA clears TDAR simultaneously or in a small window (2-4 cycles).
> This will cause the udma_tx and udma_tx_arbiter state machines to hang.
> The issue exist at i.MX6SX enet IP.
>
> So, the Workaround is checking TDAR status four time, if TDAR cleared by
> hardware and then write TDAR, otherwise don't set TDAR.
>
> The patch is only one Workaround for the issue TKT210582.
As Shawn pointed out, it is better to use the ERR007885 instead of an
internal bug numbering.
More information about the linux-arm-kernel
mailing list