AnsweredAssumed Answered

NAND progrmamming in T1040D4RDB

Question asked by Debdutta Banerjee on Apr 13, 2017
Latest reply on Apr 17, 2017 by Debdutta Banerjee


I have observed the following while NAND programming in T1040D4RDB:


1. As per NAND flash datasheet (MT29F8G08ABABAWP-ITX:B) used in T1040D4RDB

– Page size x8: 4320 bytes (4096 + 224 bytes)
– Block size: 128 pages (512K +28 K bytes)

However in u-boot NAND settings: CONFIG_SYS_NAND_CSOR- CSOR_NAND_PB(64)

i.e 64 pages per block or 256K. Why there is this difference?


2. When I do block erase from debugger(Lauterbach), considering 512K blocks (CSORn_NAND set accordingly):

i.e erase 0x0 - 0x7FFFF, then 0x0 - 0x3FFFF is erased properly, but 0x40000 - 0x7FFFF is not erased.

However if 64 pages per block setting is done, then I can erase a block successfully. erase 0x0 - 0x3FFFF is OK.

But, it is not possible to erase multiple blocks by single erase operation, for ex: erase 0x0 - 0x7FFFF will erase only 0x0 - 0x3FFFF but 0x40000 - 0x7FFFF is not erased.


3. if I set 128 pages per block in u-boot, i.e CONFIG_SYS_NAND_CSOR- CSOR_NAND_PB(128), it can still erase a 512K block successfully using u-boot nand utility, which I could not do from debugger, why?

Also, in u-boot,

=> nand info

Device 0: nand0, sector size 256 KiB

why the sector size is shown as 256K instead of 512K?


4. Isn't it possible to disable NAND ecc altogether?

If I disable it in IFC_CSORn_NAND in u-boot, I get the following on boot up:

NAND: BUG: failure at /home/debdutta/T1022/BSP/u-boot/drivers/mtd/nand/nand_base.c:3751/nand_scan_tail()!



Sorry for being too elaborate !!