The OMAP3503 supports two different algorithms with different error correction capabilities: Hamming code (for 1-bit error code correction), and BCH code (for 4- or 8-bit error correction) through the GPMC_ECC_CONFIG[16] ECCALGORITHM bit.
But as per the OMAP35xx errata (Silicon Revisions 3.1, 3.0, 2.1, and 2.0) there is bug in 4-bit mode. FYI…the Errata sheet (SPRZ278E) is latest which is revised on March-2010.
In Micron (MT29C4G48MAZAPAKQ-5) datasheet the ECC requirement is 4-bit ECC except block 0.
Block 0 ECC requirement is 1-bit ECC.
As per the Micron datasheet (MT29C2G48MAKLCJI-6) which is used in Beagle board. The ECC requirement is 1-bit ECC.
And as per OMAP35xx Boot ROM initialization procedure, for NAND boot, four physical blocks are searched for image.
And also Boot ROM supports only 1-bit ECC. (Pls refer 25.4.7.2 and 25.4.7.4 section in OMAP35x Reference Manual (SPRUF98G))
But in Micron (MT29C4G48MAZAPAKQ-5) minimum ECC requirement for Block 0 is 1-bit ECC but for other blocks requirement is 4-bit ECC.
So once the Block 0 corrupted there may be issue to boot with other block images since the 4-bit ECC is not supported in Boot ROM and as well bug in OMAP35xx.
So the usage of MT29C4G48MAZAPAKQ-5 with OMAP3503 may be issue. Could somebody shed some light on this please?