DDR3L calibration

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

DDR3L calibration

3,498 次查看
mrudangshelat
Contributor IV

Hi Igor,

Even I am facing the same issue. Not able to calibrate my DDR3L.

We are trying to load uboot usig imx_usb USB loader, but uboot failed to load.   

We are able to boot half only and getting upto below consol message.

------

U-Boot 2014.07-08942-g515451c (Jan 02 2018 - 16:53:52)

CPU: Freescale i.MX6D rev1.5 at 792 MHz
Reset cause: POR
Board: Nitrogen6_max
I2C: ready
DRAM: 2 GiB

------

Kindly help us to solve this issue.

Regards,

Mrudang

0 项奖励
回复
5 回复数

3,134 次查看
Yuri
NXP Employee
NXP Employee

Hello,

 

  Please check PCB design, using Chapter 3 (i.MX6 Layout Recommendations) of the Hardware

Development Guide for i.MX6

 

https://www.nxp.com/docs/en/user-guide/IMX6DQ6SDLHDG.pdf 

 

  In particular, please use to Excel page named “MX6 DRAM Bus Length Check” in “HW Design Checking

List for i.Mx6”, linked below.

 

https://community.nxp.com/docs/DOC-93819 


Have a great day,
Yuri

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

0 项奖励
回复

3,134 次查看
mrudangshelat
Contributor IV

Hi Yuri,

Thes board was working fine before, but from past couple of days, I am

facing the boot-up fail issue. We are able to flash u-boot image in RAM

using imx_usb loader utility, but dongle is not able to load uboot image

from the RAM.

We are trying to load uboot using imx_usb USB loader, but uboot failed to

load.

I tried to calibrate the DDR but it is failing. We are Micron's using

DDR3L: MT41K512M16HA-125:A. I guess it may have an issue of

identifying Mode Register 1 (MR1) value.

Kindly provide your view.

Thanks & Regards,

Mrudang Shelat

0 项奖励
回复

3,134 次查看
mrudangshelat
Contributor IV

Hi,

My faulty board issue is similar with Serial downloader jump error issue.

Thanks & Regards,

 

Mrudang Shelat

0 项奖励
回复

3,134 次查看
Yuri
NXP Employee
NXP Employee

Hello,

 

  In addition to checking the design, as mentioned earlier, You may try 

to use different drive strength for memory signals.

 

Have a great day,

Yuri

 

------------------------------------------------------------------------------

Note: If this post answers your question, please click the Correct Answer

button. Thank you!

0 项奖励
回复

3,128 次查看
mrudangshelat
Contributor IV

Hi Yuri,

I have tried with changing drive strength but facing the same issue as calibration fail. Please see below reading.

I am using MT41K512M16HA-125:A DDR3L.

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


============================================
DDR Stress Test (2.6.0)
Build: Aug 1 2017, 17:33:25
NXP Semiconductors.
============================================

============================================
Chip ID
CHIP ID = i.MX6 Dual/Quad (0x63)
Internal Revision = TO1.5
============================================

============================================
Boot Configuration
SRC_SBMR1(0x020d8004) = 0x18000030
SRC_SBMR2(0x020d801c) = 0x02000001
============================================

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: 16, col size: 10
Chip select CSD0 is used
Density per chip select: 2048MB
============================================

Current Temperature: 27
============================================

DDR Freq: 396 MHz

ddr_mr1=0x00000000
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) = 0x00130016
MMDC_MPWLDECTRL1 ch0 (0x021b0810) = 0x00180010
Write DQS delay result:
Write DQS0 delay: 22/256 CK
Write DQS1 delay: 19/256 CK
Write DQS2 delay: 16/256 CK
Write DQS3 delay: 24/256 CK

Starting DQS gating calibration
. HC_DEL=0x00000000 result[00]=0x00001111
. HC_DEL=0x00000001 result[01]=0x00000011
. HC_DEL=0x00000002 result[02]=0x00000000
. HC_DEL=0x00000003 result[03]=0x00000000
. HC_DEL=0x00000004 result[04]=0x00001111
. HC_DEL=0x00000005 result[05]=0x00001111
. HC_DEL=0x00000006 result[06]=0x00001111
. HC_DEL=0x00000007 result[07]=0x00001111
. HC_DEL=0x00000008 result[08]=0x00001111
. HC_DEL=0x00000009 result[09]=0x00001111
. HC_DEL=0x0000000A result[0A]=0x00001111
. HC_DEL=0x0000000B result[0B]=0x00001111
. HC_DEL=0x0000000C result[0C]=0x00001111
. HC_DEL=0x0000000D result[0D]=0x00001111
DQS HC delay value low1 = 0x01010202, high1=0x03030303

loop ABS offset to get HW_DG_LOW
. ABS_OFFSET=0x00000000 result[00]=0x00001111
. ABS_OFFSET=0x00000004 result[01]=0x00001111
. ABS_OFFSET=0x00000008 result[02]=0x00001111
. ABS_OFFSET=0x0000000C result[03]=0x00001100
. ABS_OFFSET=0x00000010 result[04]=0x00001100
. ABS_OFFSET=0x00000014 result[05]=0x00001111
. ABS_OFFSET=0x00000018 result[06]=0x00001111
. ABS_OFFSET=0x0000001C result[07]=0x00001111
. ABS_OFFSET=0x00000020 result[08]=0x00001111
. ABS_OFFSET=0x00000024 result[09]=0x00001111
. ABS_OFFSET=0x00000028 result[0A]=0x00001111
. ABS_OFFSET=0x0000002C result[0B]=0x00001111
. ABS_OFFSET=0x00000030 result[0C]=0x00001111
. ABS_OFFSET=0x00000034 result[0D]=0x00001111
. ABS_OFFSET=0x00000038 result[0E]=0x00001111
. ABS_OFFSET=0x0000003C result[0F]=0x00001100
. ABS_OFFSET=0x00000040 result[10]=0x00001100
. ABS_OFFSET=0x00000044 result[11]=0x00001100
. ABS_OFFSET=0x00000048 result[12]=0x00001100
. ABS_OFFSET=0x0000004C result[13]=0x00001100
. ABS_OFFSET=0x00000050 result[14]=0x00001111
. ABS_OFFSET=0x00000054 result[15]=0x00001100
. ABS_OFFSET=0x00000058 result[16]=0x00001111
. ABS_OFFSET=0x0000005C result[17]=0x00001100
. ABS_OFFSET=0x00000060 result[18]=0x00001100
. ABS_OFFSET=0x00000064 result[19]=0x00001100
. ABS_OFFSET=0x00000068 result[1A]=0x00001100
. ABS_OFFSET=0x0000006C result[1B]=0x00001100
. ABS_OFFSET=0x00000070 result[1C]=0x00001100
. ABS_OFFSET=0x00000074 result[1D]=0x00001100
. ABS_OFFSET=0x00000078 result[1E]=0x00001100
. ABS_OFFSET=0x0000007C result[1F]=0x00001111

loop ABS offset to get HW_DG_HIGH
. ABS_OFFSET=0x00000000 result[00]=0x00000000
. ABS_OFFSET=0x00000004 result[01]=0x00000000
. ABS_OFFSET=0x00000008 result[02]=0x00000000
. ABS_OFFSET=0x0000000C result[03]=0x00000000
. ABS_OFFSET=0x00000010 result[04]=0x00000000
. ABS_OFFSET=0x00000014 result[05]=0x00000000
. ABS_OFFSET=0x00000018 result[06]=0x00000000
. ABS_OFFSET=0x0000001C result[07]=0x00000000
. ABS_OFFSET=0x00000020 result[08]=0x00000000
. ABS_OFFSET=0x00000024 result[09]=0x00000000
. ABS_OFFSET=0x00000028 result[0A]=0x00000000
. ABS_OFFSET=0x0000002C result[0B]=0x00000000
. ABS_OFFSET=0x00000030 result[0C]=0x00000100
. ABS_OFFSET=0x00000034 result[0D]=0x00001100
. ABS_OFFSET=0x00000038 result[0E]=0x00001100
. ABS_OFFSET=0x0000003C result[0F]=0x00001100
. ABS_OFFSET=0x00000040 result[10]=0x00001110
. ABS_OFFSET=0x00000044 result[11]=0x00001110
. ABS_OFFSET=0x00000048 result[12]=0x00001110
. ABS_OFFSET=0x0000004C result[13]=0x00001111
. ABS_OFFSET=0x00000050 result[14]=0x00001111
. ABS_OFFSET=0x00000054 result[15]=0x00001111
. ABS_OFFSET=0x00000058 result[16]=0x00001111
. ABS_OFFSET=0x0000005C result[17]=0x00001111
. ABS_OFFSET=0x00000060 result[18]=0x00001111
. ABS_OFFSET=0x00000064 result[19]=0x00001111
. ABS_OFFSET=0x00000068 result[1A]=0x00001111
. ABS_OFFSET=0x0000006C result[1B]=0x00001111
. ABS_OFFSET=0x00000070 result[1C]=0x00001111
. ABS_OFFSET=0x00000074 result[1D]=0x00001111
. ABS_OFFSET=0x00000078 result[1E]=0x00001111
. ABS_OFFSET=0x0000007C result[1F]=0x00001111


BYTE 0:
Start: HC=0x01 ABS=0x5C
End: HC=0x03 ABS=0x48
Mean: HC=0x02 ABS=0x52
End-0.5*tCK: HC=0x02 ABS=0x48
Final: HC=0x02 ABS=0x52
BYTE 1:
Start: HC=0x01 ABS=0x5C
End: HC=0x03 ABS=0x3C
Mean: HC=0x02 ABS=0x4C
End-0.5*tCK: HC=0x02 ABS=0x3C
Final: HC=0x02 ABS=0x4C
BYTE 2:
Start: HC=0x01 ABS=0x00
End: HC=0x03 ABS=0x2C
Mean: HC=0x02 ABS=0x16
End-0.5*tCK: HC=0x02 ABS=0x2C
Final: HC=0x02 ABS=0x2C
BYTE 3:
Start: HC=0x01 ABS=0x00
End: HC=0x03 ABS=0x30
Mean: HC=0x02 ABS=0x18
End-0.5*tCK: HC=0x02 ABS=0x30
Final: HC=0x02 ABS=0x30

DQS calibration MMDC0 MPDGCTRL0 = 0x024C0252, MPDGCTRL1 = 0x0230022C

Note: Array result[] holds the DRAM test result of each byte.
0: test pass. 1: test fail
4 bits respresent the result of 1 byte.
result 0001:byte 0 fail.
result 0011:byte 0, 1 fail.

Starting Read calibration...

ABS_OFFSET=0x00000000 result[00]=0x1111
ABS_OFFSET=0x04040404 result[01]=0x1111
ABS_OFFSET=0x08080808 result[02]=0x1011
ABS_OFFSET=0x0C0C0C0C result[03]=0x1011
ABS_OFFSET=0x10101010 result[04]=0x1011
ABS_OFFSET=0x14141414 result[05]=0x0011
ABS_OFFSET=0x18181818 result[06]=0x0011
ABS_OFFSET=0x1C1C1C1C result[07]=0x0000
ABS_OFFSET=0x20202020 result[08]=0x0000
ABS_OFFSET=0x24242424 result[09]=0x0000
ABS_OFFSET=0x28282828 result[0A]=0x0000
ABS_OFFSET=0x2C2C2C2C result[0B]=0x0000
ABS_OFFSET=0x30303030 result[0C]=0x0000
ABS_OFFSET=0x34343434 result[0D]=0x0000
ABS_OFFSET=0x38383838 result[0E]=0x0000
ABS_OFFSET=0x3C3C3C3C result[0F]=0x0000
ABS_OFFSET=0x40404040 result[10]=0x0000
ABS_OFFSET=0x44444444 result[11]=0x0000
ABS_OFFSET=0x48484848 result[12]=0x0000
ABS_OFFSET=0x4C4C4C4C result[13]=0x0000
ABS_OFFSET=0x50505050 result[14]=0x0000
ABS_OFFSET=0x54545454 result[15]=0x0000
ABS_OFFSET=0x58585858 result[16]=0x0000
ABS_OFFSET=0x5C5C5C5C result[17]=0x0000
ABS_OFFSET=0x60606060 result[18]=0x0000
ABS_OFFSET=0x64646464 result[19]=0x0010
ABS_OFFSET=0x68686868 result[1A]=0x0110
ABS_OFFSET=0x6C6C6C6C result[1B]=0x1111
ABS_OFFSET=0x70707070 result[1C]=0x1111
ABS_OFFSET=0x74747474 result[1D]=0x1111
ABS_OFFSET=0x78787878 result[1E]=0x1111
ABS_OFFSET=0x7C7C7C7C result[1F]=0x1111

Byte 0: (0x1c - 0x68), middle value:0x42
Byte 1: (0x1c - 0x60), middle value:0x3e
Byte 2: (0x08 - 0x64), middle value:0x36
Byte 3: (0x14 - 0x68), middle value:0x3e

MMDC0 MPRDDLCTL = 0x3E363E42

Starting Write calibration...

ABS_OFFSET=0x00000000 result[00]=0x1111
ABS_OFFSET=0x04040404 result[01]=0x1111
ABS_OFFSET=0x08080808 result[02]=0x0011
ABS_OFFSET=0x0C0C0C0C result[03]=0x0001
ABS_OFFSET=0x10101010 result[04]=0x0011
ABS_OFFSET=0x14141414 result[05]=0x0011
ABS_OFFSET=0x18181818 result[06]=0x0011
ABS_OFFSET=0x1C1C1C1C result[07]=0x0011
ABS_OFFSET=0x20202020 result[08]=0x0011
ABS_OFFSET=0x24242424 result[09]=0x0011
ABS_OFFSET=0x28282828 result[0A]=0x0011
ABS_OFFSET=0x2C2C2C2C result[0B]=0x0011
ABS_OFFSET=0x30303030 result[0C]=0x0011
ABS_OFFSET=0x34343434 result[0D]=0x0001
ABS_OFFSET=0x38383838 result[0E]=0x0001
ABS_OFFSET=0x3C3C3C3C result[0F]=0x0001
ABS_OFFSET=0x40404040 result[10]=0x0001
ABS_OFFSET=0x44444444 result[11]=0x0001
ABS_OFFSET=0x48484848 result[12]=0x0001
ABS_OFFSET=0x4C4C4C4C result[13]=0x0001
ABS_OFFSET=0x50505050 result[14]=0x0001
ABS_OFFSET=0x54545454 result[15]=0x0001
ABS_OFFSET=0x58585858 result[16]=0x0001
ABS_OFFSET=0x5C5C5C5C result[17]=0x0001
ABS_OFFSET=0x60606060 result[18]=0x0001
ABS_OFFSET=0x64646464 result[19]=0x0001
ABS_OFFSET=0x68686868 result[1A]=0x0001
ABS_OFFSET=0x6C6C6C6C result[1B]=0x0001
ABS_OFFSET=0x70707070 result[1C]=0x0001
ABS_OFFSET=0x74747474 result[1D]=0x1111
ABS_OFFSET=0x78787878 result[1E]=0x1111
ABS_OFFSET=0x7C7C7C7C result[1F]=0x1111

ERROR FOUND, we can't get suitable value !!!!
dram test fails for all values.

Error: failed during ddr calibration

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Please go through attached files and provide me your valuable feedback.

Thanks,

Mrudang

0 项奖励
回复