[Patch net-next v2 4/4] net: fec: Workaround for imx6sx enet tx hang when enable three queues

Zhi Li lznuaa at gmail.com
Tue Sep 16 14:24:20 PDT 2014


On Tue, Sep 16, 2014 at 3:52 PM, Fabio Estevam <festevam at gmail.com> wrote:
> 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.

Sorry, I forget change commit message.

best regards
Frank Li



More information about the linux-arm-kernel mailing list