CPU: P2020
Linux ipinput 3.10.24 #1 SMP Tue Feb 16 14:33:04 CET 2016 ppc e500v2 GNU/Linux
Driver: Linux/drivers/mtd/nand/fsl_elbc_nand.c - Linux Cross Reference - Free Electrons
Hello!
I have a NAND ubifs partiton, mounted in sync mode. I discovered, that when performing read's or write's on nand, gianfar driver is loosing frames. This does not happen on mtd-ram driver. Also, this does not happen on NOR in the same device and same bus. UBIFS is also not an issue (tested on mtd-ram). Setting rx-ring size (by ethtool -g) up (even to 32k) does not solve the problem.
It seems like, when performing read/write, the kernel is blocked, waiting for IC to complete, and in that time eTSEC is filling RX ring (we use our device as a router, with bandwidth up to 500Mbps) and overflowing it. You can see it with "ethtool -S ethX | grep rx-overrun-errors).
Can you confirm, that the issue is reproducible? I can provide additional info or perform some additional tests.
Best regards
Aleksander
Test your board if FCM_TIMEOUT_MSECS is set to low value. For example, test your board if this parameter in set to 10 or 20. See the Linux/drivers/mtd/nand/fsl_elbc_nand.c file.
Usually the longest operation for a NAND Flash is block erase. Typically block erase time is 1.5ms – 3ms. It looks like 500 is too large for this parameter.
Thank you for your interest in NXP Semiconductor products and
for the opportunity to serve you.
Have a great day,
Pavel
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------