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.
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
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).
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.
Please suggest this customer use SDK 1.5 which support P1010RDB-PB with micro MT29F16G08ABABAWP.