Stephen Cox

Custom i.MX6 board bring-up problem

Discussion created by Stephen Cox Employee on Mar 3, 2016


I'm trying to bring up a custom imx6q board using JTAG, because it has only NAND for booting and no SD connector attached. The design has imx6q and two DDR3 chips (MT41J256M16HA-125:E) populated. First of all I try to use the DDR stress test tool v2.40 to test and calibrate DDR3 memory. The test I took from here:

i.MX6/7 DDR Stress Test Tool V2.40


It starts, I can choose options but then it hangs. I don't know why and where in the code. I don't the sources.


        DDR Stress Test (2.4.0)

        Build: Dec 11 2015, 11:09:30

        Freescale Semiconductor, Inc.





        Chip ID

CHIP ID = i.MX6 Dual/Quad (0x63)

Internal Revision = TO1.5





        Boot Configuration

SRC_SBMR1(0x020d8004) = 0x00003050

SRC_SBMR2(0x020d801c) = 0x22000001




What ARM core speed would you like to run?

Type 1 for 800MHz, 2 for 1GHz, 3 for 1.2GHz

ARM Clock set to 1GHz




        DDR configuration

BOOT_CFG3[5-4]: 0x00, Single DDR channel.

DDR type is DDR3

Data width: 32, bank num: 8

Row size: 14, col size: 10

No chip select is enabled

Density per chip select: 512MB




Current Tempareture: 31




Please select the DDR density per chip select (in bytes) on the board

Type 0 for 2GB; 1 for 1GB; 2 for 512MB; 3 for 256MB; 4 for 128MB; 5 for 64MB; 6 for 32MB

For maximum supported density (4GB), we can only access up to 3.75GB.  Type 7 to select this

  DDR density selected (MB): 512



Would do you want run DDR Calibration? Type 'y' to run and 'n' to skip



Calibration will run at DDR frequency 528MHz. Type 'y' to continue.

If you want to run at other DDR frequency. Type 'n'

Enter the DDR frequency for calibration [350MHz to 528MHz]:


  The freq you entered was: 350

  Please enter the MR1 value on the initilization script

  This will be re-programmed into MR1 after write leveling calibration

  Enter as a 4-digit HEX value, example 0004, then hit enter

0004DDR Freq: 352 MHz




Start write leveling calibration...

running Write level HW calibration

Write leveling calibration completed, update the following registers in your initialization script

    MMDC_MPWLDECTRL0 ch0 (0x021b080c) = 0x00010001

    MMDC_MPWLDECTRL1 ch0 (0x021b0810) = 0x00010001

Write DQS delay result:

   Write DQS0 delay: 1/256 CK

   Write DQS1 delay: 1/256 CK

   Write DQS2 delay: 1/256 CK

   Write DQS3 delay: 1/256 CK


Please suggest what to do next