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