Hello Champs,
Customer’s products have been in mass product, but some boards can’t boot successfully. He tracked the failure boards and found that there were bit reversed errors in u-boot-spl(MLO). Below is his check procedure.
1. Booting from UART to load u-boot to DDR RAM, then using nand dump to read out the u-boot-spl(MLO) including the ECC data. Comparing the data, there are bit reversed errors in u-boot-spl for the failure board.
2. Write u-boot-SPL to NAND flash with BCH8 ECC, u-boot version is u-boot-2011.09-psp04.06.00.07. Does the AM335x ROM code use ECC scheme when reading SPL from NAND flash?
3. In AM335x U-BOOT Guide, u-boot-spl has been written to 4 blocks of nand flash. If ROM code detect the error in 1st block, it should be read the next block like 2nd block to get the correct SPL. But in his case, the ROM code doesn’t switch to the next block. It seems that the ROM code can’t detect the bit reversed error in 1st block.

4. Reading 1st block and 2nd block SPL to DDR RAM, they are the same, so it means that the ECC of uboot is correct.
So customer doubt if there is some bug in the ROM bootloader code?
Thanks.
Rgds
Shine

