You should use the officially posted H/W Developers Guide on te Freescale website - you will find the IMX6DQ6SDLHDG under the "User Guides" subdirectory at
I'm trying to use this check list for my design and the data bus in the "MX6 DRAM Bus Length Check" tab fails because of the L0 values for DRAM_D48 to DRAM_D63 are filled with values over 300. That seems a lot, considering that all the other pins are set to 0. Are the L0 values set up correctly in the spreadsheet? Our layout is almost identical to the Freescale reference platform.
The other problem we have is CKE0, on the Freescale reference platform CKE0 is shorter than the other nets in its group and does not seem to be tuned. Any ideas why?
We have a custom IMX6Q board. We boot from SD3/4-bit, using BOOT_CFG1[7:0]= 0100 0000; and BOOT_CFG2[7:0]= 0011 0000. Our board doesn't boot up consistently from SD3- if we reset it (POR_B=0) repeatedly, it may or may not boot up. When it doesn't boot up, we can run the DDR stress test over USB so the IMX6Q is still functional.
This problem can't be the ERR006282 errata because it's too frequent.
This spreadsheet mentions a "MMC/SD boot failure", and I think it refers to setting BOOT_CFG2[2] high to do a DLL override? Is this new errata? Anyone have more details?
Hi Wang Lin, regarding the added comment - Please keep i.Mx6 "SDx_RESET" pin connecting properly with device reset pin when eMMC/SD fast boot is used in a design (Latest silicon version had fixed this issue, don't need consider this item.), do you know exactly from which silicon version onwards has this issue been fixed?
Normally i.MX6SDL will be 1 version lower than its i.MX6DQ equivalent, i.e. normally i.MX6DQ "C” version corresponds to the i.MX6SDL "B” version.Thanks for checking.
The DRAM lenght tab is interresting but why keep all L0 to 0 ?
I got the internal wiring length for both PBGA and FCBGA and they do vary, I think we should take this inyo account and have a tab for each package and maybe increase tolerance to match Hardware Development Guide.
I refer to "HW Design Checking List for i.Mx6DQSDL Rev2.7" for DRAM Bus length Check of my layout, but I found control group should only have CKE/CS/ODT, cannot include RAS/CAS/WE, I also refer to Intel and "IMX6DQ6SDLHDG_Hardware Development Guide" that the documents also describe Control signals only have CS/CKE/ODT, why does control group include RAS/CAS/WE in the "HW Design Checking List for i.Mx6DQSDL Rev2.7" and compare the trace length<=25mil?
I check it carefully, that's why I can find the different between HDG and HW design checking list of Freescale documents, so Freescale any recommend for the different? follow HDG or checking list?
Please see "Hardware Develop Guide for i.MX6Dual/6Quad and i.MX 6Solo/6DualLite Applications Precessors, Rev. 1" page3-8 Table3-3. DDR3 routing by byte group as below Pic1/2.
Pic1.
Pic2.
Pic3. from HW Design Checking List for i.Mx6DQSDL Rev2.7: MX6 DRAM Bus Length Check.
I mean RAS/CAS/WE should compare with Address signals and not compare with control group whatever CS[0:1]/ODT[0:1]/CKE[0:1] from Intel and Freescale HDG.
But why RAS/CAS/WE signal compare with control group in the checking list?
I know all address and control signals must compare with clock length, but why RAS/CAS/WE also compare with CKE/CS/ODT in the checking list, not compare with address?
In the HDG, you have Address, RAS,CAS,SDBA and SDWE listed together. They have a min max related to clock. But they also have a +/- 25 mils to each other. See last column.
CS, SDCKE and SDODT are grouped together with min max to clock. They also have a +/- 50 mils dependency to each other.
Are there any dependencies between the 2 groups?
Is the to groups of signals completely independent of each other?
One can be near max clock and the other group near min clock?
In the HDG define: Command signals(RAS/CAS/WE) compare with "address signals" and clock signals.
In the MX6 DRAM Bus Length Check sheet of HW Design checking list define: Command signals(RAS/CAS/WE) compare with "control signals" and clock signals.
I have a question about Ref7 of the design checking list.
It says as below.
<Ref7>
To minimize current drain, the Freescale BSP (board-support package) disables the EMI I/O during DSM (deep-sleep mode). A pull-down resistor ensures that the DRAM is in the proper state during DSM.
• For LPDDR2: SDCKE[1:0] must be pulled down to meet the JEDEC sequence until the controller is
configured and starts driving.
• For DDR3: SDCKE[1:0] pull-down is not required to meet JEDEC.
According to this description, I understood a external pull-down resistor is not required for DDR3 because i.MX6 output low signal to SDCKE properly when DDR3 SDCKE has to be low (e.g. when deep sleep, reset, etc..) even though there is no external pull-down.
OK, I understood a external resistor is needed for DDR3 RESET, but not needed for DDR3 SDCKE to meet JEDEC.
For DDR3 RESET, Hardware Development Guide official revision (Rev.1) says "Connect DRAM_RESET to a 10 kΩ 5% pulldown resistor to GND.", so it is no problem.