[U-Boot] Memory timings for SABRE Lite/SABRE SD
Eric Nelson
eric.nelson at boundarydevices.com
Wed Feb 20 15:20:19 CET 2013
Hi all,
While investigating some CPU Frequency scaling issues on the
latest i.MX6DQ silicon, we discovered that the memory timings
in mx6q_4x_mt41j128.cfg.
In particular, these values of MX6_MMDC_Px_MPWLDECTRLy are wrong
for SABRE Lite and probably SABRE SD.
DATA 4 0x021b080c 0x001F001F
DATA 4 0x021b0810 0x001F001F
DATA 4 0x021b480c 0x00440044
DATA 4 0x021b4810 0x00440044
These are write-leveling delay lines, and our calibration showed
measured values in the range of 0x7..0x1b for these fields.
The 0x44 values are shown in AN4467.pdf as an example of
what might be used in a fly-by topology.
http://cache.freescale.com/files/32bit/doc/app_note/AN4467.pdf
The SABRE Lite design doesn't use fly-by, and I suspect
that SABRE SD doesn't either.
When adding Nitrogen6x support, we went through an extensive
calibration process on a large set of boards, but the values
above showed the greatest variance from mx6q_4x_mt41j128.cfg.
Also note that in the 2009.08 code base, these values are
set to 0x1f for SABRE SD, which appears not to be a measured
delay, but is much more sane.
http://git.freescale.com/git/cgit.cgi/imx/uboot-imx.git/tree/board/freescale/mx6q_sabresd/flash_header.S?h=imx_v2009.08_1.1.0#n248
In that code base, SABRE Lite appears wrong:
http://git.freescale.com/git/cgit.cgi/imx/uboot-imx.git/tree/board/freescale/mx6q_sabrelite/flash_header.S?h=imx_v2009.08_1.1.0#n161
Regards,
Eric
More information about the U-Boot
mailing list