Hi everyone,
According to the Errata(C6678) advisory 9, we must choose partial automatic leveling when doing DDR3 initialization.
But the instance i encounter isn't the same with that.
1. If I execute partial automatic leveling only, the DDR memory controller status register at address 0x21000004 will be set to 0x40000074,
which indicates that leveling which indicates has failed.
2. If I enable incremental leveling with partial automatic leveling as DDR3 Initialization App Note V1_1.pdf shows,
the DDR memory controller status register will be set to 0x40000024. The leveling has failed again.
Incremental leveling with partial automatic leveling :
RDWR_LVL_RMP_WIN = 0x00000502;
RDWR_LVL_RMP_CTRL = 0x80000303;
RDWR_LVL_CTRL = 0xFF000909;
2. If I enable incremental leveling with Full automatic leveling as DDR3 Initialization App Note V1_1.pdf shows,
the DDR memory controller status register will be set to 0x40000004. It seems infract the errata.
And in this case,half of the DDR3 address space can't be written into although the value of Status register is correct.
Addresses such as 0x8000 0000 + n*0x8(n = 0,1,2,3...) can be written into,
while address such as 0x8000 0004 + n*0x8(n = 0,1,2,3...) do not.
Incremental leveling with Full automatic leveling :
RDWR_LVL_RMP_WIN = 0x00000502;
RDWR_LVL_RMP_CTRL = 0x80030303;
RDWR_LVL_CTRL = 0xFF090909;
I have followed DDR3 Initialization App Note V1_1.pdf step by step.
IS there some solutions to solve this problem?Hope you can help. Thank you in advance.
PS:Information about my configuration:
DDR clock rate : 400MHz or 666.67MHz( Both the two rates have this problem)
Data width : 64 bits