We are using the 10M04SCE144C8G. After about 1 year in the field, we now have already 2 returns from our customer -- "FPGA not booting". When reading out the actual flash-content, we could see 1 sector erased (0xff). On both devices it is the same sector!
JTAG is not connected under this condition, and yes, the IP-Core is implemented. An accidential access from User-Level seems highly unlikely, and on System-Level there is only code for "bulk-erase". In my case, there are only a few Bytes (one sector?), erased to 0xff.
Could you confirm after you write into the flash, that particular mismatch is being written correctly? The reason is that there is no way that user is able to write a 0xFF into location except if erased happen.
I suspected that the data is written partially towards the end of the flash.
The only think I can think of is that the erase has been accidentally performed from the On Chip Flash IP. I observed that the erased location is starting from Address 0x46000. Could you help to check if the CFM is having the write access or anything that can accidentally performed page erase?
so, 0x46000 matches with a sector/page-boundary?
The CPU has all the time access to the IP Core Control Registers, so, for example during brown-out conditions, the occurence of a write_access is not absolutely impossible...
But, as far as I understood:
I would need at least 2 accesses to the command_register -- First to enable "sector_write", second the selected page -- very unlikely
How can I be sure, that this issue MUST BE due to an accidentally access?
The reason is that the flash will not be accidentally erase on certain location and there is no way for user to write a ''1' into the flash as only write '0' bit is possible for this flash. Based on my calculation, the address provided should be the starting address of the page.
thanks for your response!
But, might there be other reasons for this failure?
-- "half programmed" Flash, due to timing/voltage during programming, so it looses one complete page-data?
-- in our design, the pin "config_sel" is strapped to "1", and we are programming "single image"