Hello out there,
i'm facing a DDR3 problem on a custom design with i.MX6. I calibrated the DDR3 with DDR Stress Test (2.2.0).
Did the write leveling succesfully, the dqs gating succesfully as well as the read and write calibration.
The DDR stress tester runs without any errors. (Here are the calibration results)
MMDC registers updated from calibration
Write leveling calibration
MMDC_MPWLDECTRL0 ch0 (0x021b080c) = 0x00150019
MMDC_MPWLDECTRL1 ch0 (0x021b0810) = 0x0017000E
MMDC_MPWLDECTRL0 ch1 (0x021b480c) = 0x00040019
MMDC_MPWLDECTRL1 ch1 (0x021b4810) = 0x0012001B
Read DQS Gating calibration
MPDGCTRL0 PHY0 (0x021b083c) = 0x43200324
MPDGCTRL1 PHY0 (0x021b0840) = 0x026C0268
MPDGCTRL0 PHY1 (0x021b483c) = 0x43080314
MPDGCTRL1 PHY1 (0x021b4840) = 0x03140268
Read calibration
MPRDDLCTL PHY0 (0x021b0848) = 0x40383438
MPRDDLCTL PHY1 (0x021b4848) = 0x3C383442
Write calibration
MPWRDLCTL PHY0 (0x021b0850) = 0x342E3A34
MPWRDLCTL PHY1 (0x021b4850) = 0x402E423A
Success: DDR calibration completed!!!
As soon as I boot into linux and run the stressapptest from google it crashes almost immediately.
Sometimes I get some miscompare results showing that the two least significant bytes are wrong.
But most of the time the application just crashes with different types of errors.
Has anyone any idea what is happening here ?
Thanx for your help
Norbert
Solved! Go to Solution.
Hello Yuri,
yes i ran the FSL DDR Stress tool for several hours and i used the settings i got from calibration.
Believe it or not, i fixed the problem by adjusting the ZQ resistor at the i.MX6 a little bit downwards
because i had the feeling that the impedances on my board do not match the 50 Ohm, 100 Ohm
good enough.
Now stressapptest is running without errors. I still can't understand how FSL DDR Stress tool and
memtester could'nt make out any errors while stressapptest crashed immediately. Mysterious.
All -
The effect of reducing the resistor value of the ZQ resistor is to increase the drive strength of all your signals.
240 Ohms is specified by the JEDEC standards as the corect resistor value.
I will admit that, for testing purposes only, I have reduced the ZQ resistor value a few times, usually on the DDR device side.
But the correct way to increase drive strength is to do this in the configuartion registers. If you have IOMUX registers set to DSE of '101' or '110', try increasing them up to maximum value: '111'. If that works, then you can selectively reduce drive strength until you achieve a setting you like. For the DDR devices, this is done in the mode registers.
NXP does not recommend using different ZQ resistor values than those stated in the device datasheet. For i.MX6 processors, this value is 240 Ohm 1% resistors. If a customer uses a different value, the customer assumes all risk.
A note about the DDR Stress test: We have been finding publically available stress tests that seem to push harder, and in different configurations than the DDR Stress test. The stress test that NXP uses is provided "as is". We do work to evolving our stress test to be even more stressful for our internal use, but if you find something even more stressful in a particular operating system, by all means, use every tool available.
Cheers,
Mark
Hello,
1.
Please try to run FSL DDR Stress tool during long time (at least several hours).
2.
Have You used the same DDR initalization setting as for DDR stress (after calibration) ?
Have a great day,
Yuri
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hello Yuri,
yes i ran the FSL DDR Stress tool for several hours and i used the settings i got from calibration.
Believe it or not, i fixed the problem by adjusting the ZQ resistor at the i.MX6 a little bit downwards
because i had the feeling that the impedances on my board do not match the 50 Ohm, 100 Ohm
good enough.
Now stressapptest is running without errors. I still can't understand how FSL DDR Stress tool and
memtester could'nt make out any errors while stressapptest crashed immediately. Mysterious.
:smileyconfused: