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?
Electronic – DDR2 memory addressing error
ddr2
Related Topic
- Electronic – Will DDR2 memory work with DM pins tied to LOW, if no data masking is required
- Electronic – How DDR2 SDRAM works
- Electronic – First DDR2 Layout – How much of a data lane must have the same reference
- Electronic – Replacing a DDR2 memory with another that is faster
- Electronic – what is the most difficult part of creating a DDR2 or DDR3 memory controller inside an FPGA
Best Answer
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!!