eLBC NAND driver is blocking whole kernel

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

eLBC NAND driver is blocking whole kernel

507 Views
aleksanderdutko
Contributor I

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

0 Kudos
1 Reply

329 Views
Pavel
NXP Employee
NXP Employee

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!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos