Hi PK,
We have been running the memory stress tests as well. We see failures at different frequencies with different boards. I mentioned we have built 25 boards with 4 GB on each board. Our design follows the SabreSD reference design closely. We have run stress tests on about half a dozen boards now. The one board we have that seems to work well fails the stress test at 621 MHz. However, most of the boards fail at frequencies below 528 MHz.
Another interesting data point is that on our "golden board" we get the following values after calibration:
DDR Freq: 396 MHz
MMDC registers updated from calibration
Read DQS Gating calibration
MPDGCTRL0 PHY0 (0x021b083c) = 0x42230240
MPDGCTRL1 PHY0 (0x021b0840) = 0x02260226
MPDGCTRL0 PHY1 (0x021b483c) = 0x424B0255
MPDGCTRL1 PHY1 (0x021b4840) = 0x025A0232
Read calibration
MPRDDLCTL PHY0 (0x021b0848) = 0x3D36383E
MPRDDLCTL PHY1 (0x021b4848) = 0x403A3A40
Write calibration
MPWRDLCTL PHY0 (0x021b0850) = 0x37414240
MPWRDLCTL PHY1 (0x021b4850) = 0x4433443E
DDR Freq: 528 MHz
MMDC registers updated from calibration
Read DQS Gating calibration
MPDGCTRL0 PHY0 (0x021b083c) = 0x4316032B
MPDGCTRL1 PHY0 (0x021b0840) = 0x031A031C
MPDGCTRL0 PHY1 (0x021b483c) = 0x433A033F
MPDGCTRL1 PHY1 (0x021b4840) = 0x033F0326
Read calibration
MPRDDLCTL PHY0 (0x021b0848) = 0x43393C42
MPRDDLCTL PHY1 (0x021b4848) = 0x413C3A45
Write calibration
MPWRDLCTL PHY0 (0x021b0850) = 0x3439423D
MPWRDLCTL PHY1 (0x021b4850) = 0x442B443C
On one of the flakey boards, we get the following output after calibration:
DDR Freq: 396 MHz
MMDC registers updated from calibration
Read DQS Gating calibration
MPDGCTRL0 PHY0 (0x021b083c) = 0x421C0228
MPDGCTRL1 PHY0 (0x021b0840) = 0x02250221
MPDGCTRL0 PHY1 (0x021b483c) = 0x42480254
MPDGCTRL1 PHY1 (0x021b4840) = 0x0251022A
Read calibration
MPRDDLCTL PHY0 (0x021b0848) = 0x4138393B
MPRDDLCTL PHY1 (0x021b4848) = 0x3C3A3841
Write calibration
MPWRDLCTL PHY0 (0x021b0850) = 0x4041433F
MPWRDLCTL PHY1 (0x021b4850) = 0x42324440
DDR Freq: 528 MHz
MMDC registers updated from calibration
Read DQS Gating calibration
MPDGCTRL0 PHY0 (0x021b083c) = 0x430D0319
MPDGCTRL1 PHY0 (0x021b0840) = 0x03190316
MPDGCTRL0 PHY1 (0x021b483c) = 0x4337033F
MPDGCTRL1 PHY1 (0x021b4840) = 0x033F0317
Read calibration
MPRDDLCTL PHY0 (0x021b0848) = 0x44373A3C
MPRDDLCTL PHY1 (0x021b4848) = 0x3E3C3945
Write calibration
MPWRDLCTL PHY0 (0x021b0850) = 0x353F433F
MPWRDLCTL PHY1 (0x021b4850) = 0x422B443F
There are clearly different calibration values coming back for these two boards but I'm at a loss as to why.
Thanks,
FM