How to use DDR test for i.MX6?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to use DDR test for i.MX6?

1,800 Views
matthewcook
Contributor I

I found a link to a DDR test and Calibration but I don't see an instruction on how to use the GUI? 

Is there a usage somewhere? Step by step?

Thanks!

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

So far I have downloaded the Gui Version 2.52 and have loaded a script.

#i.mx6 quad‌, #ddr calibration on imx6 dl‌, #ddr calibration‌, #ddr systems‌, #ddr validation‌, #ddr_stress_tester‌, #i.mx6 system on module

pastedImage_5.png

-Matt

0 Kudos
6 Replies

1,098 Views
matthewcook
Contributor I

My goal is to test the DDR memory and verify that things ARE operational, or if there is some issue I need to deal with. I have had intermittent behavior with my SOM (System On Module) PCBA's.  It seems that MOST of them work and some have random failures that have links to errors in memory.

It was stated in another thread - Linked above - that the computer should be the "host PC" and the i.MX6 should be "slave".

I am using Windows 7 professional.

1.  I boot up from an SD card (My boot loader is also on the SD card) so I made sure that it was not installed. 

2.  The OTG side of the cable is connected to the i.MX6 side and USB is connected to the host PC side. 

3. I opened the GUI Version 2.52

4. Powered my i.MX6 system

5. My computer recognized that a USB device was connected

6. Within the GUI I loaded the Init Script

7. Clicked Download

Then I got data output within the terminal of the GUI. SUCCESS!

Now I am having trouble doing a couple tests.  I have not tried the DDR Calibration. 

1. Failure to write to an address

      

      Fail to write address 0x00111110

      0x0 0x4 0x8 0xC
      ----------------------------------------------------------------------------------------------------------------
      0x00111110: 0x00000000
      memory read is done

2. Failure to run stress test 

      DDR Stress Test Iteration 1
      Current Temperature: 46
      ============================================

      DDR Freq: 396 MHz
      t0.1: data is addr test
      Address of failure: 0x10000000
      Data was: 0x50000000
      But pattern should match address
      Error: failed to run stress test!!!

My settings are:

pastedImage_1.png

The output when I click Download:

My output is as follows:


============================================
DDR Stress Test (2.5.2)
Build: Mar 31 2016, 23:07:26
Freescale Semiconductor, Inc.
============================================

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

============================================
Boot Configuration
SRC_SBMR1(0x020d8004) = 0x00002040
SRC_SBMR2(0x020d801c) = 0x2a000001
============================================

ARM Clock set to 1GHz

============================================
DDR configuration
BOOT_CFG3[5-4]: 0x00, Single DDR channel.
DDR type is DDR3
Data width: 64, bank num: 8
Row size: 15, col size: 10
Chip select CSD0 is used
Density per chip select: 2048MB
============================================

Why am I getting errors when I try to run a Stress test? Why can I not read / write to a memory location?

Thanks,

-Matt

0 Kudos

1,098 Views
igorpadykov
NXP Employee
NXP Employee

Hi Matt

please check presentation on

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

most easy way to debug is to start with testing using jtag debugger

and checking signals with oscilloscope.

For example:

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

     Address of failure: 0x10000000
      Data was: 0x50000000
      But pattern should match address
      Error: failed to run stress test!!!

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

means that ddr address 0x10000000 has problems with

bit 0x40000000 - it could be probably incorrectly driven high

for some reasons.

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

0 Kudos

1,098 Views
matthewcook
Contributor I

Thank you for the link. It was very helpful.

I was able to overcome the 1rst issue I reported. (Failure to write to an address) 

I was choosing a random address, which as described in the presentation are not all configurable.

Error when Default is selected for DDR Density.

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

     Address of failure: 0x10000000
      Data was: 0x50000000
      But pattern should match address
      Error: failed to run stress test!!!

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

My setup (When error occurs during DDR Stress Test) is as follows:

pastedImage_1.png

________________________________________________________________________________________________________________________________

BUT I CAN GET IT TO WORK SUCCESSFULLY IF I CHANGE THE: DDR_DENSITY parameter to 1GB BEFORE I click the DOWNLOAD button. 

NOTE:

I get the same error as before if I use a frequency any LOWER than 400 MHz and ABOVE 475....i.e. The test ran successfully on a sweep of 400 MHz - 475 MHz. but failed at 500 MHz. with the error:

DDR Freq: 500 MHz
t0.1: data is addr test
t0: memcpy10 SSN x64 test
Address of bank2 failure: 0x29aeecc8
Data was: 0xFFFFEFFFFFEFFFFF
But pattern was: 0xFFFFEFFFFFFFFFFF
Error: failed to run stress test!!!

Here is my setup (When No Errors 400 MHz - 475 MHz occur during DDR Stress Test):

pastedImage_1.png

The memory seems to be reading a 2GB density still, as previously shown in original post.

ARM Clock set to 1GHz

============================================
DDR configuration
BOOT_CFG3[5-4]: 0x00, Single DDR channel.
DDR type is DDR3
Data width: 64, bank num: 8
Row size: 15, col size: 10
Chip select CSD0 is used
Density per chip select: 2048MB
============================================

Why would the GUI interface have an error when I leave the DDR Density Default and operate when I choose the DDR Density as 1GB when it reads a Density of 2048?

Is the previous test I ran still valid where it failed? (Indicating I have a problem) ....... [DDR Density set to Default] 

0 Kudos

1,098 Views
igorpadykov
NXP Employee
NXP Employee

from p.5 presentation:
"The Density information is obtained from the initscript. "

what is real density used on your board ? GUI just calculates data
from your script, if it is wrong please recheck script and enter valid data.

>Why would the GUI interface have an error when I leave the DDR Density Default and
>operate when I choose the DDR Density as 1GB when it reads a Density of 2048?

this may be related to : " No Errors 400 MHz - 475 MHz occur during DDR Stress Test"
- that is some range of memory (address lines) are excluded from test.

please use guideline from p.31 presentation:

"If using DDR3 and if you plan to run calibration, then it is important to fill out the MR1 value, like “0004”."

0 Kudos

1,098 Views
matthewcook
Contributor I

Thanks. I have been testing different modules using the calibration portion and I believe I have some good values that I have now input into the register programming aid script.

Q.  What is real density used on your board ? GUI just calculates data
   from your script, if it is wrong please recheck script and enter valid data.

A. The DDR3 we are using is (IS43TR16128B-125KBLI-TR). The datasheet shows that it is a size of 2GB. Is that the density?

It is not clear in the script where that is being calculated from.  Is there a line I should edit?

I am using the following script:

ddr_stress_tester_v2.60\script\mx6dq\MX6Q_ARD_DDR3_register_programming_aid_v1.5.inc

0 Kudos

1,098 Views
igorpadykov
NXP Employee
NXP Employee

please post this on ddr test page

https://community.freescale.com/docs/DOC-105652 

where authors of that tool will look at it and probably try to

improve tool interface/descriptions for better usage.

Best regards
igor

0 Kudos