查看: 4563|回复: 2

[求助] ddr_stress_tester不同版本的区别

[复制链接]

该用户从未签到

5

主题

14

帖子

0

新手上路

Rank: 1

积分
49
最后登录
2017-11-9
发表于 2015-9-22 01:33:03 | 显示全部楼层 |阅读模式
同样一个INC文件,在ddr_stress_tester_v2.10里面是可以调节通过的,而在DDR_Stress_Tester_V1.0.2不能通过。imx6q+MT41K256M16HA-125IT 64bit 2GB,但在ddr_stress_tester_v2.10里配置为64bit +2GB不能dqs gating不能通过,而32bit + 1GB可能DQS gating能通过,但通过计算出来的dqs参数在ddr_stress_tester_v2.10里进行压力测试在做到memcpy8 ssn时会出错,每次出错都是bit2的值不对,输出信息如下:
DDR Stress Test Iteration 1
DDR Freq: 528 MHz
t0.1: data is addr test
t0: memcpy11 SSN test
t1: memcpy8 SSN test
Address of test2 failure: 0x3002eb34
Data was:                 0xffffffbb
But pattern was:          0xffffffbf
Error: failed to run stress test!!!
DDR Stress Test Iteration 1
DDR Freq: 528 MHz
t0.1: data is addr test
t0: memcpy11 SSN test
t1: memcpy8 SSN test
Address of test2 failure: 0x3002ec0c
Data was:                 0xfffffff9
But pattern was:          0xfffffffd
Error: failed to run stress test!!!

DDR Stress Test Iteration 1
DDR Freq: 528 MHz
t0.1: data is addr test
t0: memcpy11 SSN test
t1: memcpy8 SSN test
Address of test2 failure: 0x3002b08c
Data was:                 0xfffdfffb
But pattern was:          0xfffdffff
Error: failed to run stress test!!!

DDR Stress Test Iteration 1
DDR Freq: 528 MHz
t0.1: data is addr test
t0: memcpy11 SSN test
t1: memcpy8 SSN test
Address of test2 failure: 0x3001d38c
Data was:                 0xfffdfffb
But pattern was:          0xfffdffff
Error: failed to run stress test!!!

而该inc文件在DDR_Stress_Tester_V1.0.2下无论是528还是400都不能通过DQS GATING计算,这是什么原因呢?
inc文件如下:
//=============================================================================   
//init script for i.Mx6Q DDR3   
//=============================================================================   
// Revision History   
// v01   
//=============================================================================   
   
wait = on   
//=============================================================================   
// Disable WDOG  
//=============================================================================   
//setmem /16 0x020bc000 = 0x30
   
//=============================================================================   
// Enable all clocks (they are disabled by ROM code)   
//=============================================================================   
setmem /32 0x020c4068 = 0xffffffff
setmem /32 0x020c406c = 0xffffffff
setmem /32 0x020c4070 = 0xffffffff
setmem /32 0x020c4074 = 0xffffffff
setmem /32 0x020c4078 = 0xffffffff
setmem /32 0x020c407c = 0xffffffff
setmem /32 0x020c4080 = 0xffffffff
setmem /32 0x020c4084 = 0xffffffff
   
//=============================================================================   
// IOMUX   
//=============================================================================   
//DDR IO TYPE:   
setmem /32 0x020e0798 = 0x000C0000 // IOMUXC_SW_PAD_CTL_GRP_DDR_TYPE
setmem /32 0x020e0758 = 0x00000000 // IOMUXC_SW_PAD_CTL_GRP_DDRPKE
   
//CLOCK:   
setmem /32 0x020e0588 = 0x00000030 // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDCLK_0
setmem /32 0x020e0594 = 0x00000030 // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDCLK_1
   
//ADDRESS:   
setmem /32 0x020e056c = 0x00000030 // IOMUXC_SW_PAD_CTL_PAD_DRAM_CAS
setmem /32 0x020e0578 = 0x00000030 // IOMUXC_SW_PAD_CTL_PAD_DRAM_RAS
setmem /32 0x020e074c = 0x00000030 // IOMUXC_SW_PAD_CTL_GRP_ADDDS
   
//Control:   
setmem /32 0x020e057c = 0x00000030 // IOMUXC_SW_PAD_CTL_PAD_DRAM_RESET
setmem /32 0x020e058c = 0x00000000 // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDBA2 - DSE can be configured using Group Control Register: IOMUXC_SW_PAD_CTL_GRP_CTLDS
setmem /32 0x020e059c = 0x00000030 // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDODT0
setmem /32 0x020e05a0 = 0x00000030 // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDODT1
setmem /32 0x020e078c = 0x00000030 // IOMUXC_SW_PAD_CTL_GRP_CTLDS
   
//Data Strobes:   
setmem /32 0x020e0750 = 0x00020000 // IOMUXC_SW_PAD_CTL_GRP_DDRMODE_CTL
setmem /32 0x020e05a8 = 0x00000028 // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS0
setmem /32 0x020e05b0 = 0x00000028 // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS1
setmem /32 0x020e0524 = 0x00000028 // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS2
setmem /32 0x020e051c = 0x00000028 // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS3
//setmem /32 0x020e0518 = 0x00000010 // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS4
//setmem /32 0x020e050c = 0x00000010 // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS5
//setmem /32 0x020e05b8 = 0x00000010 // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS6
//setmem /32 0x020e05c0 = 0x00000010 // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS7
   
//Data:   
setmem /32 0x020e0774 = 0x00020000 // IOMUXC_SW_PAD_CTL_GRP_DDRMODE
setmem /32 0x020e0784 = 0x00000028 // IOMUXC_SW_PAD_CTL_GRP_B0DS
setmem /32 0x020e0788 = 0x00000028 // IOMUXC_SW_PAD_CTL_GRP_B1DS
setmem /32 0x020e0794 = 0x00000028 // IOMUXC_SW_PAD_CTL_GRP_B2DS
setmem /32 0x020e079c = 0x00000028 // IOMUXC_SW_PAD_CTL_GRP_B3DS
//setmem /32 0x020e07a0 = 0x00000028 // IOMUXC_SW_PAD_CTL_GRP_B4DS
//setmem /32 0x020e07a4 = 0x00000028 // IOMUXC_SW_PAD_CTL_GRP_B5DS
//setmem /32 0x020e07a8 = 0x00000028 // IOMUXC_SW_PAD_CTL_GRP_B6DS
//setmem /32 0x020e0748 = 0x00000028 // IOMUXC_SW_PAD_CTL_GRP_B7DS
   
setmem /32 0x020e05ac = 0x00000028 // IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM0
setmem /32 0x020e05b4 = 0x00000028 // IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM1
setmem /32 0x020e0528 = 0x00000028 // IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM2
setmem /32 0x020e0520 = 0x00000028 // IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM3
//setmem /32 0x020e0514 = 0x00000028 // IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM4
//setmem /32 0x020e0510 = 0x00000028 // IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM5
//setmem /32 0x020e05bc = 0x00000028 // IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM6
//setmem /32 0x020e05c4 = 0x00000028 // IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM7
   
   
//=============================================================================   
// DDR Controller Registers   
//=============================================================================   
// Manufacturer: Micron  
// Device Part Number: MT41K256M16-125E  
// Clock Freq.:  528MHz  
// Density per CS in Gb:  8  
// Chip Selects used: 1  
// Number of Banks: 8  
// Row address:     15  
// Column address:  10  
// Data bus width 32  
//=============================================================================   
//setmem /32 0x021b001c = 0x00008000 MMDC0_MDSCR, set the Configuration request bit during MMDC set up
   
//=============================================================================   
// Calibration setup.   
//=============================================================================   
setmem /32 0x021b0800 = 0xA1390003 // DDR_PHY_P0_MPZQHWCTRL, enable both one-time & periodic HW ZQ calibration.
   
// For target board, may need to run write leveling calibration to fine tune these settings.   
setmem /32 0x021b080c  = 0x0038001F
setmem /32 0x021b0810 = 0x001F001F
//setmem /32 0x021b480c  = 0x00000000
//setmem /32 0x021b4810 = 0x00000000
   
////Read DQS Gating calibration   
setmem /32 0x021b083c = 0x43770365 // MPDGCTRL0 PHY0
setmem /32 0x021b0840 = 0x03670367 // MPDGCTRL1 PHY0
//setmem /32 0x021b483c = 0x00000000 // MPDGCTRL0 PHY1
//setmem /32 0x021b4840 = 0x00000000 // MPDGCTRL1 PHY1
   
//Read calibration   
setmem /32 0x021b0848 = 0x42423C40 // MPRDDLCTL PHY0
//setmem /32 0x021b4848 = 0x40404040 // MPRDDLCTL PHY1
   
//Write calibration                        
setmem /32 0x021b0850 = 0x2414263E // MPWRDLCTL PHY0
//setmem /32 0x021b4850 = 0x40404040 // MPWRDLCTL PHY1
   
//read data bit delay: (3 is the reccommended default value, although out of reset value is 0)   
setmem /32 0x021b081c = 0x33333333 // DDR_PHY_P0_MPREDQBY0DL3
setmem /32 0x021b0820 = 0x33333333 // DDR_PHY_P0_MPREDQBY1DL3
setmem /32 0x021b0824 = 0x33333333 // DDR_PHY_P0_MPREDQBY2DL3
setmem /32 0x021b0828 = 0x33333333 // DDR_PHY_P0_MPREDQBY3DL3
//setmem /32 0x021b481c = 0x33333333 // DDR_PHY_P1_MPREDQBY0DL3
//setmem /32 0x021b4820 = 0x33333333 // DDR_PHY_P1_MPREDQBY1DL3
//setmem /32 0x021b4824 = 0x33333333 // DDR_PHY_P1_MPREDQBY2DL3
//setmem /32 0x021b4828 = 0x33333333 // DDR_PHY_P1_MPREDQBY3DL3
   
//For i.mx6qd parts of versions A & B (v1.0, v1.1), uncomment the following lines. For version C (v1.2), keep commented   
//setmem /32 0x021b08c0 = 0x24911492 // fine tune SDCLK duty cyc to low - seen to improve measured duty cycle of i.mx6
//setmem /32 0x021b48c0 = 0x24911492
   
// Complete calibration by forced measurement:                     
setmem /32 0x021b08b8 =  0x00000800 // DDR_PHY_P0_MPMUR0, frc_msr
//setmem /32 0x021b48b8 =  0x00000800 // DDR_PHY_P0_MPMUR0, frc_msr
//=============================================================================   
// Calibration setup end   
//=============================================================================   
   
//MMDC init:   
setmem /32 0x021b0004 = 0x00020036 // MMDC0_MDPDC
setmem /32 0x021b0008 = 0x09444040 // MMDC0_MDOTC
setmem /32 0x021b000c = 0x8A8F7955 //0x898E79A4 MMDC0_MDCFG0
setmem /32 0x021b0010 = 0xFF328F64 //0xDB538F64 MMDC0_MDCFG1
setmem /32 0x021b0014 = 0x01FF00DD // MMDC0_MDCFG2
   
//MDMISC: RALAT kept to the high level of 5.   
//MDMISC: consider reducing RALAT if your 528MHz board design allow that. Lower RALAT benefits:   
//a. better operation at low frequency, for LPDDR2 freq < 100MHz, change RALAT to 3   
//b. Small performence improvment   
setmem /32 0x021b0018 = 0x00011740 // MMDC0_MDMISC
setmem /32 0x021b001c = 0x00008000 // MMDC0_MDSCR, set the Configuration request bit during MMDC set up
setmem /32 0x021b002c = 0x000026D2 // MMDC0_MDRWD
setmem /32 0x021b0030 = 0x008F1023 // MMDC0_MDOR
setmem /32 0x021b0040 = 0x00000027 // Chan0 CS0_END
setmem /32 0x021b0000 = 0x84190000 // MMDC0_MDCTL
   
//Mode register writes                    
setmem /32 0x021b001c = 0x04088032 // MMDC0_MDSCR, MR2 write, CS0
setmem /32 0x021b001c = 0x00008033 // MMDC0_MDSCR, MR3 write, CS0
setmem /32 0x021b001c = 0x00048031 // MMDC0_MDSCR, MR1 write, CS0
setmem /32 0x021b001c = 0x09408030 // MMDC0_MDSCR, MR0write, CS0
setmem /32 0x021b001c = 0x04008040 // MMDC0_MDSCR, ZQ calibration command sent to device on CS0
   
//setmem /32 0x021b001c = 0x0208803A // MMDC0_MDSCR, MR2 write, CS1
//setmem /32 0x021b001c = 0x0000803B // MMDC0_MDSCR, MR3 write, CS1
//setmem /32 0x021b001c = 0x00048039 // MMDC0_MDSCR, MR1 write, CS1
//setmem /32 0x021b001c = 0x19308038 // MMDC0_MDSCR, MR0write, CS1
//setmem /32 0x021b001c = 0x04008048 // MMDC0_MDSCR, ZQ calibration command sent to device on CS1
   
setmem /32 0x021b0020 = 0x00005800 // MMDC0_MDREF
   
setmem /32 0x021b0818 = 0x00011117 // DDR_PHY_P0_MPODTCTRL
//setmem /32 0x021b4818 = 0x00022227 // DDR_PHY_P1_MPODTCTRL
   
setmem /32 0x021b0004 = 0x00025576 // MMDC0_MDPDC now SDCTL power down enabled
   
setmem /32 0x021b0404 = 0x00011006 // MMDC0_MAPSR ADOPT power down enabled, MMDC will enter automatically to self-refresh while the number of idle cycle reached.
   
setmem /32 0x021b001c = 0x00000000 // MMDC0_MDSCR, clear this register (especially the configuration bit as initialization is complete)

我知道答案 目前已有2人回答
回复

使用道具 举报

  • TA的每日心情
    开心
    2018-9-20 20:56
  • 签到天数: 20 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    12

    主题

    449

    帖子

    0

    高级会员

    Rank: 4

    积分
    984
    最后登录
    2018-9-20
    发表于 2015-9-22 10:55:13 | 显示全部楼层
    支持一下
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    该用户从未签到

    5

    主题

    14

    帖子

    0

    新手上路

    Rank: 1

    积分
    49
    最后登录
    2017-11-9
     楼主| 发表于 2015-9-22 21:41:04 | 显示全部楼层
    还是官方论坛,怎么发的贴子FAE没有一个人回应,不要说回复了,还官方呢?
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-7 19:58 , Processed in 0.085558 second(s), 23 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表