I have a Freescale MPC8640-based board with 4 Micron DDR2 chips of 128Mx16 density (total of 1GB) attached to it. The memory has been mapped to address range from 0x0000_0000 to 0x3FFF_FFFF. While testing the memory, we found that "Address test" using own address was failing for memory addresses ending with 0x1c39 or 0x9c39. I am not able to decode the exact hardware lines which is resulting in this issue. Can anyone enlighten me on how to debug this issue further?
Found the solution after extensive debugging which consumed about 2 weeks. The problem was not with the DDR2 chip. We had enabled the data cache in the processor. So the reads were happening through the cache. While verifying the data written into the memory using the debugger, we found that the bytes were written properly. So we disabled the data cache and tried once again. This time the memory tests passed. Even consecutive writes and reads to the memory also returned proper results. Though the issue has been resolved for now, cache will be required for future applications. So right now, I am looking at the option of replacing the processor itself. Not sure whether the module inside the silicon has gone bad or it arrived faulty itself!!