P1010RDB NAND ECC error

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

P1010RDB NAND ECC error

2,484 Views
yensid
Contributor III

Hi,

I'm working with the P1010RDB with NAND chip K9F5608U0D and I am working on using a jffs2 rootfs directly from nand.  I have programed the rootfs.jffs2 file both using nand write.jffs2 from U-boot and by using flash_eraseall and nand_write directly from the kernel.  In either case the first boot of the system is fine and shows no problems.  On the second and all follwing boot ups the message below is displayed multiple times each for a different address.

fsl,ifc-nand ff800000.nand: NAND Flash ECC Uncorrectable Error

jffs2: mtd->read(0x9a bytes from 0x91ff40) returned ECC error

Thanks.

Labels (1)
Tags (4)
0 Kudos
5 Replies

732 Views
scottwood
NXP Employee
NXP Employee

What kernel or SDK version are you using?  What is the page size of that NAND chip?

0 Kudos

732 Views
yensid
Contributor III

Sorry I should have added that.  I'm using SDK V1.4.  The pagesize in the datasheet is  512 + 16Bytes, however minimum erase size is 16K.  In the p1010rdb.conf file I changed the JFFS2_ERASEBLOCK to 0x4000. 

When booting the P1010RDB there have always been messages:

"block nbd9: Attempted send on closed socket

FAT-fs (nbd9): unable to read boot sector"

Seeing how this is a block device and thinking it could be related, I traced this message back to the CONFIG_BLK_DEV_NBD in the kernel config, and disabed network block device (NBD) support.  After doing this the ECC messages where no longer displayed on the P1010RDB.  I'm working in parallel with a custom board designed after the RDB and using the same kernel with CONFIG_BLK_DEV_NBD on our custom board the kernel crashes on boot. Rebuilding the kernel with NBD and running on our custom board it will boot with the same errors as the RDB.  Do you know how NBD and the ECC error are related or is this some odd coincidence?

Thanks,

Matt

0 Kudos

732 Views
scottwood
NXP Employee
NXP Employee

I don't know if this is the cause of your problem, but the OOB on small-page NAND is too small for the JFFS cleanmarker to fit given the 8 byte ECC that IFC uses.  UBIFS is recommended instead.

I don't know of any reason why it would be connected to NBD support.  Are you using NBD to export the NAND device over the network, or perhaps some other block device that is connected to IFC?  Even if not, it could be that whatever load you are running over NBD is changing the timing of the NAND accesses.

Try applying commit 4af9874916b14db407bee18590fe1847f541c2e2 from the upstream Linux tree (it'll need some manual adaptation because of unrelated changes).

0 Kudos

732 Views
yensid
Contributor III

I'm not acctually using NBD, but I have resolved the NBD issue by going through menuconfig and making a new defconfig. I'm not sure how but there must have been a mistake in the previous one.  I have also applied the changes provided in the commit.

Our custom board has a different flash chip the MT29F8G08ABABA, which is pagesize of 4096, OOB of 224 and erase of 524,288bytes.  I rebuilt everything for our custom board and tried the JFFS2 image on our board and recieve the same "fsl,ifc-nand ff800000.nand: NAND Flash ECC Uncorrectable Error" after the first boot, and after applying the changes in the file you provided. Could I have a discrepency on ECC somehow?

I have been unsuccessfull to getting UBIFS going on the RDB, I recieve the error below.

Ubootenv

=> printenv boot_nand_ubifs

boot_nand_ubifs=setenv bootargs console=$consoledev,$baudrate noinitrd rootwait=

1 rootfstype=ubifs root=ubi0:rootfs rw ubi.mtdblock=8,512 init=/init $othbootarg

s;run uImage_read;run fdt_read;bootm $uImage_ram_addr - $fdt_ram_addr

UBIFS error (pid 1): ubifs_mount: cannot open "ubi8:rootfs", error -19

VFS: Cannot open root device "ubi8:rootfs" or unknown-block(0,0): error -19

Please append a correct "root=" boot option; here are the available partitions:

1f00             256 mtdblock0  (driver?)

1f01            7168 mtdblock1  (driver?)

1f02           20480 mtdblock2  (driver?)

1f03            1024 mtdblock3  (driver?)

1f04             512 mtdblock4  (driver?)

1f05             512 mtdblock5  (driver?)

1f06            1024 mtdblock6  (driver?)

1f07            4096 mtdblock7  (driver?)

1f08           10240 mtdblock8  (driver?)

1f09            7168 mtdblock9  (driver?)

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

Call Trace:

[ef03fe40] [c0006e50] show_stack+0x4c/0x168 (unreliable)

Thanks again.

0 Kudos

732 Views
yipingwang
NXP TechSupport
NXP TechSupport

Please suggest this customer use SDK 1.5  which support P1010RDB-PB with micro MT29F16G08ABABAWP.

0 Kudos