Dear Experts,
I am using a custom board with AM3352 CPU, similar to the AM3358-EVM, with a NAND boot flash and Windows Embedded BSP from ADENEO.
With ADENEO WinEC7 BSP, they made an attempt of copying the Liux Sources created by Avinash Philip, but unfurtunately, never finished the ECC ELM hardware correction properly. They took the NAND driver out of the BSP instead.
So right now, we are running bare NAND without ECC correction, just detection.
It is my job to make ELM hardware usable to us in a most efficient way, so we are aiming at ELM in PAGE MODE, where CPMC and ELM can detect & correct the error loactions quickly on a whole NAND page without bothering the CPU.
Avinash explains in a comment:
>>
ECC layout uses 1 extra bytes for 512 byte of data to handle erased pages. Extra byte programmed to zero for programmed pages. Also BCH8
requires 14 byte ecc to maintain compatibility with RBL ECC layout. This results a common ecc layout across RBL, U-boot & Linux with BCH8.
<<
I am aiming at that target, too: Use the same BCH-8 ECC Layout accross RBL, XLDR, EBOOT and WinEC7.
But i found that Avinash & TI colleagues never used ELM in PAGE MODE, neither in NAND-Writer nor in U-Boot nor in Linux sources.
I tried but found that no WRAP MODE known in the AM3352 TRM datasheet 7.1.3.3.12.3.3 Supported NAND Page Mappings and ECC Schemes is suitable for a 14th ECC-Byte like RBL needs. BCH-8 with 13 ECC Bytes would work in WRAP MODE 4, but I cannot get the BCH encoded message with the 14th byte so that ELM works.
Can ELM in PAGE MODE work with RBL spare area scheme and the 14th ECC byte? Which WRAP MODE shall I use? Is there a trick on switching the ECC_ENABLE bit for the GPMC ECC engine on and off while reading the spare area so that only valid bytes are taken into the engine for ELM?
Thanks,
Anja