Hello iMX6 specialists,
We are developing a iMX6Solo based platform and we are using DDR3 @ 528Mhz. I have DCD which was copied from a different iMX platform with different DDR and it is working fine with my new platform as well. However configuration values are not adjusted for the current DDR.
Then I used DDR stress tester to calibrate new DDR. With those calibrated values, stress test was running for 10 hours with no errors. However, if I use same values in u-boot DCD, it does not boot at all. It was found that if following value,
Read calibration | 0x021b0848 | 0x42464C44 |
is replaced with, 0x484B4B49, it started working despite the fact that deviation is very small.
Then I re calibrate the DDR at 400Mhz and replaced MPDGCTRL0, MPDGCTRL1 , MPRDDLCTL PHY0 , MPWDDLCTL PHY0 with new values, u-boot started working.
The reason why I use 400Mhz is following statement in "i.MX6 DDR Stress Tester User’s Guide"
7. Select DDR frequency for Calibration
The default DDR calibration frequency is 400MHz for i.MX6DL, i.MX6S, and i.MX6SL.
And, the default DDR calibration frequency for i.MX6Q and i.MX6D is 528MHz. The user
can also press ‘n’ and input a calibration frequency which is between 350MHz and 528MHz
for debugging purpose.
According to that, calibration is supposed to be done at 400 Mhz for iMX solo. However, "i.MX 6 Series DDR Calibration application note" says,
4 Calibration over Frequency Range
Calibration, as any other aspect of the DDR setup, is frequency dependent. Changing DDR clock
frequency requires running the various calibration sequences and obtaining new set of delay values.
The empirical rule is that a DDR setup for a target frequency, including a measured set of delay values at
that frequency, is expected to be stable at frequency range of ±10% around this point.
My questions are,
1. Do we need to calibrate at 528Mhz using the stress tester tool, if DDR3 working frequency is 528Mhz?
2. Is there a delay between DCD registry setting to properly initialize the DDR? The reason why I asked it that newly calibrated value at 528Mhz works fine with stress tester but not with u-boot. The way stress tester initialize the DDR my be slightly different that the way u-boot starts)
Thanks,
CDW
Solved! Go to Solution.
Hi David
yes if working frequency 528MHz then memory should be
calibrated on 528MHz too.
However for Solo max. MMDC operating frequency is 400MHz.
~igor
Hi David
if processor works with DDR at 400MHz, it should calibrate memory at 400MHz,
there is no "delay".
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Igor,
Thank for the quick response!
Our iMX6 Solo should work with DDR at 528Mhz.
Therefore I should calibrate it at 528Mhz using stress test tool . instead of default 400Mhz .. Am i correct?
Thanks,
CDW
Hi David
yes if working frequency 528MHz then memory should be
calibrated on 528MHz too.
However for Solo max. MMDC operating frequency is 400MHz.
~igor
Hi Igor,
What is maximum frequency of DDR3 supported by i.MX6Quad, we only see 400MHz and 528MHz options in
1. Mx6DQSDL DDR3 Script Aid V0.09.xls and
2. ddr_stress_tester_v2.52 tool
Kind Regards
Vivek