DDR3 stress tester for 4GB - failing at start of chip select 1 (CS1)

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

DDR3 stress tester for 4GB - failing at start of chip select 1 (CS1)

Jump to solution
862 Views
oway
Contributor I

We used the DDR3 register programming aid V1.7 spread sheet to generate the attached .inc  file (ram_settings.inc).  We then used the DDR3 stress tester tool to generate calibration values which were fed back into the ram_settings.inc and an additional calibration was performed.  After this the calibration values were used to generate the u-boot flash header file.  This seems to work great! 

 

The problem comes in when we try to run the DDR3 stress tester tool’s stress test function.  We find that when we run the stress test it fails with the following message.

DDR Freq: 528 MHz
t0.1: data is addr test
Address of failure: 0x90000000
Data was: 0x620d5404
But pattern  should match address

 

It appears that the test is failing right at the start of chip select 1 (CS1) as CS0_END is set to 0x900000000.  Furthermore, I moved CS0_END to 0x80000000, reran the stress test and it failed at 0x80000000 which I believe should be the start of CS1. 

 

The strange thing is that when I boot the system into Linux or Android and use the memtool I’m able to read and write memory at 0x9000000 as well as 0xFFFFFFF0.  This suggests to me that we’re able to address memory as expected. 

 

Any suggestions on what’s going wrong?

Original Attachment has been moved to: ram_settings.inc.zip

Tags (3)
0 Kudos
1 Solution
600 Views
sheldonrucker
Contributor III

It turns out that when you run the stress tester with CS1 enabled you need to uncomment the following lines in the generated .inc file.

//setmem /32   0x021b001c =     0x0408803A        // 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 =     0x09308038         // MMDC0_MDSCR, MR0 write, CS1

//setmem /32   0x021b001c =     0x04008048         // MMDC0_MDSCR, ZQ calibration command sent to device on CS1

The above allows the calibration to be performed on CS1.  Without this the test will fail as CS1 will be uncalibrated.

View solution in original post

0 Kudos
1 Reply
601 Views
sheldonrucker
Contributor III

It turns out that when you run the stress tester with CS1 enabled you need to uncomment the following lines in the generated .inc file.

//setmem /32   0x021b001c =     0x0408803A        // 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 =     0x09308038         // MMDC0_MDSCR, MR0 write, CS1

//setmem /32   0x021b001c =     0x04008048         // MMDC0_MDSCR, ZQ calibration command sent to device on CS1

The above allows the calibration to be performed on CS1.  Without this the test will fail as CS1 will be uncalibrated.

0 Kudos