U-boot DDR3 configuration for a custom board based on mx6ul_14x14_evk

Showing results for 
Search instead for 
Did you mean: 

U-boot DDR3 configuration for a custom board based on mx6ul_14x14_evk

Contributor I


I'm working on a custom board using the i.MX6UL MCIMX6G3CVM05AB and based on the mx6ul_14x14_evk:

  • DDR3L 512MiB RAM (256x16bit) MT41K256M16LY-093:N
  • MicroSD card connected to USHSDC1.

I've run the DDR Stress Test tool v3 using a custom script file (generated using the i.MX6UL_DDR3_Script_Aid_V0.02) and calibrated the DDR3 at 400MHz, with MR1 = 0x0004. The stress tests run fine for a long time at 400MHz, so hopefully that verifies that the hardware is OK.

I then tried to get U-boot compiled for the board by following the below steps:

  1. Downloaded uboot-imx from https://source.codeaurora.org/external/imx/uboot-imx
  2. Used the mx6ul_14x14_evk_defconfig
  3. Removed the existing DCD configuration data in imximage.cfg and replaced it with the contents of the init script generated previously, modifying the format of the file to suit the imximage.cfg DCD format. I also added the DDR calibration values to the .cfg file.
  4. Compiled U-boot and then flashed the file on to the microSD card using: sudo dd if=u-boot-dtb.imx of=/dev/sdx bs=1k seek=1

Unfortunately, I don't get any output on UART1. I also tried to compile mainline U-boot using the same defconfig. Mainline U-boot uses SPL to configure the DDR3 and contains several structs that are used to define the DDR3 configuration. Although the SPL runs and I can see its output on UART1, U-boot does not load, and I suspect the problem is related to the DDR3 configuration.

I've attached the DDR3 Stress Test tool output and the initial configuration script, as well as the modified imximage.cfg file.

Any thoughts as to what could be wrong?


Labels (3)
0 Kudos
1 Reply

NXP TechSupport
NXP TechSupport

Hi Amr

regarding boot from USHSDC1 one can look at description on p.8

attached EVK Guide and try to reproduce steps on i.MX6UL EVK reference board.

As for custom board, one can try to debug and find where it stops: add additional

printfs in code, or gpio toggle, or attach jtag and then check where in uboot codes processor


Best regards
Note: If this post answers your question, please click the Correct Answer button. Thank you!

0 Kudos