Hello,
Look at my comments below.
I.
From practical point of view - it makes sense to modify / setup some MMDC registers
in initialization script after memory calibration, using its results. In Your case:
MMDC registers updated from calibration
Write leveling calibration
MMDC_MPWLDECTRL0 ch0 (0x021b080c) = 0x0018001E
MMDC_MPWLDECTRL1 ch0 (0x021b0810) = 0x0028001A
MMDC_MPWLDECTRL0 ch1 (0x021b480c) = 0x001A0025
MMDC_MPWLDECTRL1 ch1 (0x021b4810) = 0x0014001E
Read DQS Gating calibration
MPDGCTRL0 PHY0 (0x021b083c) = 0x02580258
MPDGCTRL1 PHY0 (0x021b0840) = 0x024C0250
MPDGCTRL0 PHY1 (0x021b483c) = 0x02600268
MPDGCTRL1 PHY1 (0x021b4840) = 0x02500230
Read calibration
MPRDDLCTL PHY0 (0x021b0848) = 0x423A3A3C
MPRDDLCTL PHY1 (0x021b4848) = 0x3A383842
Write calibration
MPWRDLCTL PHY0 (0x021b0850) = 0x3A3A403C
MPWRDLCTL PHY1 (0x021b4850) = 0x403A403A
If overnight test with new initialization parameters is OK - the found parameters are good
candidates for final release.
II.
tCL and tCWL should be the same for i.MX6 MMDC and DDR3 (AS4C256M16D3A).
III.
Please verify PCB design, using Excel page named “MX6 DRAM Bus Length Check” in “HW Design
Checking List for i.Mx6”.
https://community.nxp.com/docs/DOC-93819
Have a great day,
Yuri
------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer
button. Thank you!