AnsweredAssumed Answered

MCF5329 with random SDRAM 1k "bit rot" corruptions

Question asked by TomE on May 27, 2010
Latest reply on Mar 1, 2011 by TomE

I'm working on an MCF5329 board.

 

It has been working fine for months. We've got 16M Spansion SDRAM, 32M FLASH (sharing the bus), Ethernet, video, CAN, serial ports etc.

 

Every now and then, usually on overnight tests after an hour or sometimes after three DAYS, 1k blocks of SDRAM start

showing "bit rot". Random, usually single bits in bytes get set. No match on any data anywhere else in SDRAM or FLASH, so it isn't looking like a corrupted pointer during a copy. I can't see how any code bugs could be generating these patterns. It looks like the SDRAM is getting "failure to refresh" somehow. The 1k blocks are 1k-aligned, and often share address patterns, like "0XnnnCC00" where "nnn" varies.

 

There are multiple boards doing similar things, though different ones seem to show preferences for different address ranges to corrupt.

 

We've been over the SDRAM initialisation many times, and it is almost exactly what the "Coldfire Init" program recommends. Refresh is enabled. We're getting the same thing with our FLASH INIT and the debugger's XML-driven SDRAM init.

 

Possibly related, after initialising the SDRAM we have to perform a few "dummy reads". If we don't, we can copy code from FLASH to RAM, but the first burst-read after the writes will sometimes read garbage. Nothing in the data sheets saying that is needed either.

Outcomes