This appears to be a common problem on the DM355, and having followed the various threads I still find myself at a loss.
We have a new board which is based on (i.e. virtual cut and paste) the DM355.
The one significant difference is the flash device, we are using a 29F16G08DAA
The DAA part has new geometry, but essentially the page size has doubled.
The differences seen at by diagnostic code are that page size goes from 0x800 to 0x1000 and spare bytes goes from 0x40 to 0xDA.
Now when I run the flash utilities from a WinXP box it all seems to go OK, I won't post the output from the screen, but in summary I see:
Pages used
EVM My Hardware
UBL 8 4
Uboot 64 32
From the output I see, it seems that all is well and the flash has indeed been programmed.
But when I try to boot the hardware, the green LED flashes a about 4HZ, suggesting a NAND boot failure - but no O/P on the serial terminal.
The hardware has been thoroughly checked and appears to be fine, we have used jtag to test the flash and that appears to be fine.
So I installed Cygwin and the Alchemy tools and was able to start tweaking the UBL to see what's occurring.
I added some diagnostic code to the UBL and ran it from IRAM using the slh_DM3X.exe utility.
I added code to dump the NAND flash parameters and to try to read the first page of block 0.
The read fails, digging in a bit further and adding more and more debug prints I get to the point where it seems that the nand read fails on an ECC test of the page data.
This is in nand.c in the function NAND_readPage()
So my guess is that the data is being read by the RBL, failing ECC and so the boot just fails.
This is odd, because (again thanks to lost of debug prints) I can see that when the data is being written to flash it is verified by the same NAND_readPage function.
Can anyone shed any light on this?
Has anyone used this flash device succesfully? I question thsi as the new page geometry may be causing the problem (complete guess)!