Hi all,
We are trying to use Micron 1GB RAM module with an iMX6 based system that we are building.
The DDR calibration for the Micron 1GB DDR3 RAM with the Part number MT41J128M16HA-15E is available with the current code base. The specifications of this part is Clock rate 667MHz, Data Rate 1333 MHz and CL as 9.
However, we are trying to use another part number MT41K128M16JT-125 XIT (Micron 1GB DDR3 RAM) with the Clock rate of 800 Mhz, Data rate of 1600Mhz and CL as 11. When we run the image with the setting of the older part number with slower clock rate, we get unexplained kernel crashes.
Is there anybody who has integrated the newer Micron 1GB RAM with this partnumber successfully with iMX6?
Thanks in advance to all your inputs.
Vasan
Hi Vasan,
We are using the MT41K256M16HA-125E quite successfully.
Have you run the ddr configuration tool?
https://community.freescale.com/docs/DOC-94917
Brent
2
Hi Brent,
Could I trouble you for the settings you used for that MT41K256M16HA-125E? We are using the same chip on a custom board but no luck getting the DDR stress test tool to play nice.
For example, we'll get a response for the write levelling, like ::
Start write leveling calibration
Write leveling calibration completed
MMDC_MPWLDECTRL0 ch0 after write level cal: 0x003A003A
MMDC_MPWLDECTRL1 ch0 after write level cal: 0x00010036
But sadness for the DQS::
Would you like to run the DQS gating, read/write delay calibration? (y/n)
Starting DQS gating calibration...
. . . . . . . . . . . . . . ERROR FOUND, we can't get suitable value !!!!
dram test fails for all values.
As far as I can tell, I'm using the spreadsheet for script generation correctly, and also filling in the write level vals I get back into the spreadsheet.
Device Information | |
Manufacturer: | Micron |
Memory part number: | MT41K256M16HA-125IT |
Memory type: | DDR3-1600 |
DRAM density (Gb) | 4 |
DRAM Bus Width | 16 |
Number of Banks | 8 |
Number of ROW Addresses | 15 |
Number of COLUMN Addresses | 10 |
Page Size (K) | 2 |
Self-Refresh Temperature (SRT) | Normal |
tRCD=tRP=CL (ns) | 13.75 |
tRC Min (ns) | 39 |
tRAS Min (ns) | 28 |
System Information | |
i.Mx Part | i.Mx6DL |
Bus Width | 32 |
Density per chip select (Gb) | 8 |
Number of Chip Selects used | 1 |
Total DRAM Density (Gb) | 8 |
DRAM Clock Freq (MHz) | 400 |
DRAM Clock Cycle Time (ns) | 2.5 |
Address Mirror (for CS1) | Disable |
SI Configuration | |
DRAM DSE Setting - DQ/DQM (ohm) | 40 |
DRAM DSE Setting - ADDR/CMD/CTL (ohm) | 40 |
DRAM DSE Setting - CK (ohm) | 40 |
DRAM DSE Setting - DQS (ohm) | 40 |
System ODT Setting (ohm) | 60 |
Appreciate any thoughts you have!
Hello shefft, would you be willing to share any information about the HW problem that your team found in relation to this issue? I am facing a similar problem and are looking for things to check. Thanks in advance for any tips!
Hi Jon,
Unfortunately it has been so long that I don't remember the issue, nor where that information might be kept if at all. Also, that project has ended and been scrapped and I don't have the resources here to try and dig up info about old obstacles, if it even exists at all. Wish I had better news for you, I'm sorry. I do remember this - ours was really just some kind of HW layout or passive part or pin connection issue, and if my memory serves a good board guy with DDR experience would be able to find it. It didn't turn out to be anything tricky or any great mystery.
Hi Brent,
Thanks for your pointer to the DDR configuration tool.
When we run the tool on this specific Micron RAM unit, we get an error as follows (We have also attached the log of the tool when it was run and the config file generated out of this run with this note):
root@Veriton-Series:~/imx_usb_loader# ./imx_usb u-boot.imx
config file <./imx_usb.conf>
config file <./mx6_usb_work.conf>
parse mx6_usb_work.conf
15a2:0054(mx6_qsb) bConfigurationValue =1
Interface 0 claimed
report 1, wrote 16 bytes, err=0
report 3, read 4 bytes, err=0
read=56 78 78 56
u-boot.imx 0 0 1 0 1 2
main dcd length 2f0
sub dcd length 2ec
w3 in err=-99, last_trans=0 00 00 00 00
addr=0x020bc000, val=0x00000030
w4 in err=-99, last_trans=0 00 00 00 00
dcd_ptr=0x177ffc2c
!!perform_dcd returned -99
report 1, wrote 0 bytes, err=-99
report 3, read 0 bytes, err=-99
read=00 00 00 00
report 1, wrote 0 bytes, err=-99
report 3, read 0 bytes, err=-99
read=00 00 00 00
report 1, wrote 0 bytes, err=-99
report 3, read 0 bytes, err=-4
read=00 00 00 00
report 1, wrote 0 bytes, err=-4
report 3, read 0 bytes, err=-4
read=00 00 00 00
report 1, wrote 0 bytes, err=-4
report 3, read 0 bytes, err=-4
read=00 00 00 00
report 1, wrote 0 bytes, err=-4
report 3, read 0 bytes, err=-4
read=00 00 00 00
4 in err=-4, last_trans=0 00 00 00 00
------------ End of error message -------------
If anyone has any inputs on why this error could come, kindly give us suggestions. Alternatively, if an appropriate and working calibrated file for this specific Micron 1GB part is available to be used in the U-boot DCD with someone here in this community, then we would highly appreciate if this appropriately calibrated file is provided.
Thanks in advance for your inputs,
Vasan
When we run the DDR stess test tool on this MICRON part (MT41K128M16JT-125 XIT), we gave the value of MR1 as 0x0042. Is this the correct value of MR1 or should we be using any other value?
Thanks
Vasan
Hello,
We are using IMX6Q (MCIMX6Q6AVT10AC) with micron 1GB DDR3 ram(MT41K128M16JT-125 XIT). We followed this link for ddr calibration with MR1 as 0004 and generated mx6qsabrelite.cfg from this excel sheet (we had to remove WDOG disable instruction since we observed error while booting from usb). The excel sheet had default configuration for MT41K128M16JT-125 so we just added the write levelling,dqs gating, read write delay values obtained from stress test tool. But we observed random Kernel panic when we load the system while running a game or voice call. But instead if we use nitrogen6q.cfg which is configured for Hynix 1GB DDR3(H5TQ2G63BFR-H9C) the system is a bit stable and we observe random restart of android due to binder transaction failure from surface flinger. The same android image works perfectly on nitrogen6x SOM without any Kernel panic.
Any assistance would truly be greatly appreciated.
Thanks,
Amit
Yes, we are able to successfully run the stress test tool on the same test board. The calibration values we get from this result are then used on same board.
Thanks,
Amit
Hello,
Thank you for patiently replying to our query. We successfully ran this calibration for 12 hrs for 528MHz freq but still we are facing random kernel panics when we load the system. Do we have to run the stress test for one static frequency or some range of values? In the excel sheet, device info for MT41K128M16JT-125 is tRCD=tRP=CL=13.75 we got these values from datasheet but how to calculate tRAS(is it tRAS = tCL + tRCD + tRP)?
The DDR stress tool result is attached.
Thanks,
Amit