Dear guys,
We had designed a custom board based on iMX6 Sabresd reference design. We have using 4 parts DDR MT41K256M16-125 (4x512MB). We used I.MX6DQSDL DDR3 Script Aid V0.10 to create a new DCD and then run ddr_stress_tester_uboot_v2.30 to apply new calibration parameters. Everything worked well.
After that, we also design another custom board, DDR configuration, schematic, layout were same as the previous custom board. However, we change DDR part to MT41K256M16-107 because DDR MT41K256M16-125 out of stock. When we're using previous U-boot (for previous custom board), the stress test fail as :
============================================
DDR Stress Test (2.3.0)
Build: Nov 20 2015, 16:06:31
Freescale Semiconductor, Inc.
============================================
============================================
Chip ID
CHIP ID = i.MX6 Dual/Quad (0x63)
Internal Revision = TO1.5
============================================
============================================
Boot Configuration
SRC_SBMR1(0x020d8004) = 0x00005040
SRC_SBMR2(0x020d801c) = 0x32000001
============================================
What ARM core speed would you like to run?
Type 1 for 800MHz, 2 for 1GHz, 3 for 1.2GHz
ARM Clock set to 800MHz
============================================
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
============================================
Current Tempareture: 40
============================================
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): 2048
Would do you want run DDR Calibration? Type 'y' to run and 'n' to skip
The DDR stress test can run with an incrementing frequency or at a static freq
To run at a static freq, simply set the start freq and end freq to the same value
Would do you want run DDR Stress Test? Type 'y' to run and 'n' to skip
Enter desired START freq (135 to 672 MHz), then hit enter.
Note: DDR3 minimum is ~333MHz, do not recommend to go too much below this.
600
The freq you entered was: 600
Enter desired END freq (135 to 672 MHz), then hit enter.
Make sure this is equal to or greater than start freq
650
The freq you entered was: 650
Do you want to run DDR Stress Test for simple loop or Over Night Test?
Type '0' for simple loop. Type '1' for Over Night Test
DDR Stress Test Iteration 1
Current Tempareture: 40
============================================
DDR Freq: 599 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!!!
However when we select 1GB for stresstest as :
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): 1024
It work well.
We also tested common read/write on the address higher than 1GB (0x50000000 - 0x8FFFFFFF) with mtest tool in u-boot, it still work.
Any advice ?
Thanks and Best Regards,
Hi vu
message:
"Address of failure: 0x10000000
Data was: 0x50000000"
means that erroneous bit 30 ("0x40000000") appears,
this may be due to big drive strength settings. So one can try to tweak
drive strength pad of ddr line 31 (register IOMUXC_SW_PAD_CTL_GRP_B3DS) .
Also recommended to check this line by oscilloscope. Also drive strength can be
changed on ddr side.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Dear igorpadykov,
I tried to reduce drive strength to 34_OHM (minimum value) in DCD (mx6q_4x_mt41j128.cfg) as i.MX 6Dual/6Quad Applications Processor Reference Manual Document :
DATA 4, 0x020e079c, 0x00000038
but the result still be same.
DDR Freq: 500 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!!!
Thanks and Best Regards,
Vu Nguyen
More information:
I'm using this u-boot version : uboot-imx-imx_v2013.04_3.10.17_1.0.0_beta