Hello,
We are introducing the Nanya NT6AN512T32AV-J1I (https://www.nanya.com/en/Product/4404/NT6AN512T32AV-J1I) memory on our Apalis iMX8 (i.MX8QM) module as a replacement for the Micron MT53D512M32D2DS-046 IT:D (mt53d512m32d2ds-046-ait-d )
We have reviewed the timing specifications, and the Nanya part appears to be a drop-in replacement for the Micron one, as both seem to have the same timing requirements.
We tested several modules equipped with the Nanya memory using the same test setup as for the Micron version (Linux BSP + Memtester [memtester-4.6.0.tar.gz To be sure we have also re-run the test on the Micron modules.
The Nanya memory performs well at different temperature ranges, but in the higher range (~50°C to ~80°C), during the Bit Spread (but not only) test in Memtester, we observed the following failures (these are a subset of the total failures we had):
FAILURE: 0xffffffffffffffff != 0xfffffffffbffffff at offset 0x00000000031a9a80.
FAILURE: 0xffffffffffffffff != 0xfffffffffbffffff at offset 0x0000000009eb5440.
FAILURE: 0xffffffffffffffff != 0xfffffffffbffffff at offset 0x000000000172b040.
FAILURE: 0xfffffffffbffffff != 0xffffffffffffffff at offset 0x000000000792e570.
FAILURE: 0xffffffffffffffff != 0xfffffffffbffffff at offset 0x000000000a13fb00.
It is important to note that these errors appear only when we start testing at -40°C and ramp up to 85°C without rebooting. If we start the test at 85°C and ramp down to -40°C, we do not observe any errors. Due to this, we suspect that LPDDR4 training at -40 is affecting the reliability of the memory (maybe there are signal integrity issues when training is done at -40 degrees).
We also dumped some DDR controller registers related to memory training, and we noticed significant differences between the two memory types (see attachments). We suspect that some termination or drive strength parameters may need to be tuned for the Nanya memory, but we are not sure which ones.
We have also attached the RPA (Register Programming Aid) Excel sheet containing the DDR controller configuration currently used for both memory types.
Any advice or suggestions are welcome, but specifically, we have the following questions:
Can the comparison of the training result registers help identify the root cause or highlight key differences between the two memory types?
Have you any suggestion around memory configuration to improve training and signal integrity?
Thank you in advance for your support.