Hello Jiri-san,
Thank you for your answer. I understand that there are no specific suggestion other than DDR_RESET and bulk caps for now.
And sorry, our past information about PHY11/27/43 seems to be not correct.
This time, we believe we could capture the correct number from known bad product.
Please see below.
Note1: No.28 and No.45 means the serial number of products. There are result of OK case and NG case on these two products.
Note2: We captured the register value changing bit 18:16 of PHY2/18/34 from 1 to F. We know the valid range is from 1 to 7.
DDRMC_PHY2/18/34 = 0x0031005A
No.28: OK (CKE is asserted)
DDRMC_PHY11 0x5E125E00
DDRMC_PHY27 0x5F015E00
DDRMC_PHY43 0x58005900
No.28: NG (CKE is not asserted)
DDRMC_PHY11 0x5D865E00
DDRMC_PHY27 0x5F005F00
DDRMC_PHY43 0x59C05B00
No.45: OK (CKE is asserted)
DDRMC_PHY11 0x60026100
DDRMC_PHY27 0x60046200
DDRMC_PHY43 0x5D505F00
No.45: NG (CKE is not asserted)
DDRMC_PHY11 0x63B06000
DDRMC_PHY27 0x62016300
DDRMC_PHY43 0x5D405D00
DDRMC_PHY2/18/34 = 0x0032005A
No.28: OK (CKE is asserted)
DDRMC_PHY11 0x5F846000
DDRMC_PHY27 0x5E205E00
DDRMC_PHY43 0x5B415A00
No.28: NG (CKE is not asserted)
DDRMC_PHY11 0x5E005D00
DDRMC_PHY27 0x5E005F00
DDRMC_PHY43 0x580B5900
No.45: OK (CKE is asserted)
DDRMC_PHY11 0x60486200
DDRMC_PHY27 0x60006200
DDRMC_PHY43 0x5D005C00
No.45: NG (CKE is not asserted)
DDRMC_PHY11 0x60206100
DDRMC_PHY27 0x60846200
DDRMC_PHY43 0x5D505E00
DDRMC_PHY2/18/34 = 0x0033005A
No.28: OK (CKE is asserted)
DDRMC_PHY11 0x5E045F00
DDRMC_PHY27 0x5D005E00
DDRMC_PHY43 0x58285900
No.28: NG (CKE is not asserted)
DDRMC_PHY11 0x5D006000
DDRMC_PHY27 0x5E816000
DDRMC_PHY43 0x58115B00
No.45: OK (CKE is asserted)
DDRMC_PHY11 0x61106100
DDRMC_PHY27 0x60426100
DDRMC_PHY43 0x5D025E00
No.45: NG (CKE is not asserted)
DDRMC_PHY11 0x61806100
DDRMC_PHY27 0x62406300
DDRMC_PHY43 0x5C005F00
DDRMC_PHY2/18/34 = 0x0034005A
No.28: OK (CKE is asserted)
DDRMC_PHY11 0x5E045F00
DDRMC_PHY27 0x5E005F00
DDRMC_PHY43 0x58195A00
No.28: NG (CKE is not asserted)
DDRMC_PHY11 0x5E005F00
DDRMC_PHY27 0x5E805F00
DDRMC_PHY43 0x58005A00
No.45: OK (CKE is asserted)
DDRMC_PHY11 0x62806100
DDRMC_PHY27 0x61006200
DDRMC_PHY43 0x5C015E00
No.45: NG (CKE is not asserted)
DDRMC_PHY11 0x62806100
DDRMC_PHY27 0x61006200
DDRMC_PHY43 0x5C015E00
DDRMC_PHY2/18/34 = 0x0035005A
No.28: OK (CKE is asserted)
DDRMC_PHY11 0x5E045F00
DDRMC_PHY27 0x5E005E00
DDRMC_PHY43 0x58285900
No.28: NG (CKE is not asserted)
DDRMC_PHY11 0x5E085F00
DDRMC_PHY27 0x5E045F00
DDRMC_PHY43 0x58305B00
No.45: OK (CKE is asserted)
DDRMC_PHY11 0x61086300
DDRMC_PHY27 0x61206300
DDRMC_PHY43 0x5C055E00
No.45: NG (CKE is not asserted)
DDRMC_PHY11 0x62905F00
DDRMC_PHY27 0x61016100
DDRMC_PHY43 0x5F105E00
DDRMC_PHY2/18/34 = 0x0036005A
No.28: OK (CKE is asserted)
DDRMC_PHY11 0x5E015E00
DDRMC_PHY27 0x5F205E00
DDRMC_PHY43 0x58215A00
No.28: NG (CKE is not asserted)
DDRMC_PHY11 0x5D806000
DDRMC_PHY27 0x5E046000
DDRMC_PHY43 0x59185A00
No.45: OK (CKE is asserted)
DDRMC_PHY11 0x61196100
DDRMC_PHY27 0x61206200
DDRMC_PHY43 0x5C415D00
No.45: NG (CKE is not asserted)
DDRMC_PHY11 0x63306000
DDRMC_PHY27 0x60016300
DDRMC_PHY43 0x5E025D00
DDRMC_PHY2/18/34 = 0x0037005A
No.28: OK (CKE is asserted)
DDRMC_PHY11 0x5D925D00
DDRMC_PHY27 0x5E055E00
DDRMC_PHY43 0x5B045A00
No.28: NG (CKE is not asserted)
DDRMC_PHY11 0x5D846000
DDRMC_PHY27 0x60005F00
DDRMC_PHY43 0x58185900
No.45: OK (CKE is asserted)
DDRMC_PHY11 0x61056200
DDRMC_PHY27 0x60106000
DDRMC_PHY43 0x5D035D00
No.45: NG (CKE is not asserted)
DDRMC_PHY11 0x60606100
DDRMC_PHY27 0x61006200
DDRMC_PHY43 0x5D025D00
DDRMC_PHY2/18/34 = 0x0039005A
No.28: OK (CKE is asserted)
DDRMC_PHY11 0x5E045F00
DDRMC_PHY27 0x5F005E00
DDRMC_PHY43 0x58245800
No.28: NG (CKE is not asserted)
DDRMC_PHY11 0x5E045F00
DDRMC_PHY27 0x5F005E00
DDRMC_PHY43 0x58245800
No.45: OK (CKE is asserted)
DDRMC_PHY11 0x61006200
DDRMC_PHY27 0x60506100
DDRMC_PHY43 0x5E245D00
No.45: NG (CKE is not asserted)
DDRMC_PHY11 0x60006200
DDRMC_PHY27 0x61086300
DDRMC_PHY43 0x5F815D00
DDRMC_PHY2/18/34 = 0x003A005A
No.28: OK (CKE is asserted)
DDRMC_PHY11 0x5D135E00
DDRMC_PHY27 0x5D085E00
DDRMC_PHY43 0x58485A00
No.28: NG (CKE is not asserted)
DDRMC_PHY11 0x5D846000
DDRMC_PHY27 0x5E025E00
DDRMC_PHY43 0x58495900
No.45: OK (CKE is asserted)
DDRMC_PHY11 0x63206300
DDRMC_PHY27 0x60026300
DDRMC_PHY43 0x5D005D00
No.45: NG (CKE is not asserted)
DDRMC_PHY11 0x60926000
DDRMC_PHY27 0x61116100
DDRMC_PHY43 0x5D805E00
DDRMC_PHY2/18/34 = 0x003B005A
No.28: OK (CKE is asserted)
DDRMC_PHY11 0x5D815E00
DDRMC_PHY27 0x5E005F00
DDRMC_PHY43 0x59005B00
No.28: NG (CKE is not asserted)
DDRMC_PHY11 0x5D815E00
DDRMC_PHY27 0x5E005F00
DDRMC_PHY43 0x59005B00
No.45: OK (CKE is asserted)
DDRMC_PHY11 0x63436200
DDRMC_PHY27 0x60006200
DDRMC_PHY43 0x5C445F00
No.45: NG (CKE is not asserted)
DDRMC_PHY11 0x60905F00
DDRMC_PHY27 0x63016100
DDRMC_PHY43 0x5F105E00
DDRMC_PHY2/18/34 = 0x003C005A
No.28: OK (CKE is asserted)
DDRMC_PHY11 0x5D805F00
DDRMC_PHY27 0x5E436000
DDRMC_PHY43 0x58105B00
No.28: NG (CKE is not asserted)
DDRMC_PHY11 0x5D086000
DDRMC_PHY27 0x5D0C6000
DDRMC_PHY43 0x58005A00
No.45: OK (CKE is asserted)
DDRMC_PHY11 0x62106200
DDRMC_PHY27 0x63406200
DDRMC_PHY43 0x5D025E00
No.45: NG (CKE is not asserted)
DDRMC_PHY11 0x60006000
DDRMC_PHY27 0x61016100
DDRMC_PHY43 0x5C105C00
DDRMC_PHY2/18/34 = 0x003D005A
No.28: OK (CKE is asserted)
DDRMC_PHY11 0x5E045F00
DDRMC_PHY27 0x5E005E00
DDRMC_PHY43 0x58285900
No.28: NG (CKE is not asserted)
DDRMC_PHY11 0x5DC05E00
DDRMC_PHY27 0x5E245F00
DDRMC_PHY43 0x58185A00
No.45: OK (CKE is asserted)
DDRMC_PHY11 0x62826000
DDRMC_PHY27 0x61086300
DDRMC_PHY43 0x5D865E00
No.45: NG (CKE is not asserted)
DDRMC_PHY11 0x61806000
DDRMC_PHY27 0x61016100
DDRMC_PHY43 0x5E005D00
DDRMC_PHY2/18/34 = 0x003E005A
No.28: OK (CKE is asserted)
DDRMC_PHY11 0x5D245F00
DDRMC_PHY27 0x5D005E00
DDRMC_PHY43 0x58005A00
No.28: NG (CKE is not asserted)
DDRMC_PHY11 0x5E486000
DDRMC_PHY27 0x5F086000
DDRMC_PHY43 0x58005900
No.45: OK (CKE is asserted)
DDRMC_PHY11 0x62826000
DDRMC_PHY27 0x62016100
DDRMC_PHY43 0x5D095E00
No.45: NG (CKE is not asserted)
DDRMC_PHY11 0x61106000
DDRMC_PHY27 0x61056200
DDRMC_PHY43 0x5D505D00
DDRMC_PHY2/18/34 = 0x003F005A
No.28: OK (CKE is asserted)
DDRMC_PHY11 0x5E485F00
DDRMC_PHY27 0x5D005F00
DDRMC_PHY43 0x58005A00
No.28: NG (CKE is not asserted)
DDRMC_PHY11 0x5E846000
DDRMC_PHY27 0x5D445F00
DDRMC_PHY43 0x5A005900
No.45: OK (CKE is asserted)
DDRMC_PHY11 0x61246200
DDRMC_PHY27 0x62406200
DDRMC_PHY43 0x5E025D00
No.45: NG (CKE is not asserted)
DDRMC_PHY11 0x61105F00
DDRMC_PHY27 0x61446000
DDRMC_PHY43 0x5D405C00
Now, we have 8 questions.
1. If we change PHY04[DLL_WRITE_DL] value, it can affect the state of DLL lock bit?
2. Is there any peripheral that can affect the state of DLL lock bit?
You said that jitter and power supply may affect the state of DLL.
We want to know if any specific logic block or peripherals can unlock the DLL or not.
3. PHY11/27/43:[7 - 1] is RESERVED bit and these bit are always "0"?
Or any other hidden definition on bit 7 - bit 1?
4. Do you have a register which shows the lock status of Master DLL?
5. Again, if three slave DLLs are not locked at the same time, CKE can't be asserted?
6. We want to try to bypass the DLL just for our experimental purpose. (Your RM mentioned it, but we can't find any detail how to do that.)
How can we do that? We are expecting CKE always can be asserted when DLL is bypassed, because delay value is specified by us and no need to check the DLL lock status. Of course, I know DDR may not be able to work correctly with non-optimized delay value, but we can make sure that CKE is asserted in this case.
7. Could you share your result of DDRMC_PHY11/27/43 with us?
I want to see LOCK bit is always set and DLL UNLOCK state does't happen if the hardware correctly designed and configured.
I know you can't use LPDDR2 on your evaluation board, but the idea of DLL LOCK bit must be the same between DDR3 and LPDDR2.
8. Other than PHY2, is there any known or hidden registers we can change that help Master DLL lock more quickly?
We couldn't see LOCK bit on non-working handset, but on known good handset, we can see following result.
We still can see many unlocking, but known good handset shows consistent LOCK state compare to non-working handset.
If we can tweak the parameters of DLL or phase detector, we want to try it.
Handset X
After CKE is asserted:
DDRMC_PHY11 : 0x3F043F4C : 0x63216300
DDRMC_PHY27 : 0x3F043F50 : 0x634F6301
DDRMC_PHY43: 0x3F043F54 : 0x5F675F01
Handset Y
After CKE is asserted:
DDRMC_PHY11: 0x3F043F4C : 0x61606100
DDRMC_PHY27: 0x3F043F50 : 0x62CB6201
DDRMC_PHY43: 0x3F043F54 : 0x5EC95E01
Thanks,
Norihiro Michigami
AVNET