Hi Naoum, (also Richard and Ross)
Thank you for your help. we have update, so let me summarize it again.
Customer's issue :
Occasionally customer's system fails to recover from LPSTOPx mode.
DDRMC cannot finish its initialization because PLL2 PFD2 doesn't oscillate.
They has confirmed that 24MHz crystal oscillated when this issue happened, so PLL should be something wrong.
24MHz oscillation could be observed through CKO1 pin.
Here's the summary. Find details latter half why I made them.
1. Need FSL internal review for the sample code. -> FSL
2. Waveform measurement for both 24MHz and PLL PFD2 output, mainly for the jitter. -> Soich-san will report here
3. Confirm the margin based on the specification of LPDDR2 chip which customer uses -> Soich-san
Bolds are my reply for you:
- You are the author of the "LPStop entry/exit with DDR3 data retention" code successfully tested on our Vybrid Tower board, right?
· IMO, if the customer is using your code but having issues, we have to focus on the differences between our and their designs - components used, schematic differences, maybe layout (much less likely...), etc.
It's very low error rate on customer's side, so I cannot say that my sample code doesn't have same issue.
We need internal discussion for this.
- Maybe there is significant jitter on the DDRC clock (due to specific layout).
Soichi-san is working on measuring it.
Seems accuracy of 24MHz frequency might have problem.
- It looks like the i.MX6 product has a PDF issue (do not know all the details), and the workaround for it (not necessarily applicable here, BTW) is to reset the PFD first before enabling the DDR Controller.
This was a kind of initialization issue, my sample code should be reviewed internally to avoid similar issue.
- The workaround by setting different PFD settings could point to marginal design; due to that, the customer needs to check if they are not violating any DDR chip's spec, e.g. minimum frequency, stabilization time, etc.
Soichi-san is working on this.
- It is possible to wake up with a temporary frequency value, and then switch to the required, permanent, one.
In my opinion, changing PFD divide value from 35 to 34 is just a situation. it's hard to be a workaround unless any reasonable explanation.
- If the customer is using LPDDR2 - we only tested DDR3 (thanks to Shigenobu Katagiri!).
According to the investigation, this issue is not related to the type of memory since the probrem isPLL PFD2
Best Regards,
Shigenobu