This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[OMAP-L138] SDTIMR2.T_RTP value for mDDR

Other Parts Discussed in Thread: OMAPL138

Hi

My customer wants to know the side effect when specifying SDTIMR2.T_RTP with larger value than 1.
A spread sheet for DDR configuration is available from the following link:

And it says SDTIMR2.T_RTP should be configured with 1 when using mDDR.
Currently, my customer is using mDDR and has configured it with 3 in their development phase. And so far they don't see any problems in DDR access.

Do you think we can leave it 3 ?, or Should we use 1 as a spread sheet suggested ?

Best Regards,
Naoki Kawada

  • Hi Naoki,
    What problem are you getting when you use "1" ?
    We always suggest what document suggested.

    What is the RTP value of mDDR (from data sheet) ?
  • Hi Titus S.,

    Thanks for your quick reply.

    My customer said that there was no spec for T_RTP in mDDR data sheet, and their original question to me was what value should be specified to. My answer was using 1 because the spreadsheet suggests so. Please see the following snapshot from the spreadsheet:

    As you see, the spreadsheet suggests the value of '1' should be used when using mDDR. And I believe '1' is not intended to the value of green cell which comes from the DDR datasheet, but the value of T_RTP itself. Please correct me if I'm wrong.

    Well, it seems that they has been using 3 for T_RTP and they have not seen any problems in DDR access.
    Maybe, the question has been raised during their development flow, such like code review or something.
    If your answer is just using 1 for T_RTP, I think it is no problem. I'll talk with the customer. But if you have any technical background to use 1 for T_RTP, it would be so appreciated.

    Best Regards,
    Naoki Kawada

  • Hello Naoki,

    The tRTP timing parameter is only applicable for DDR2 and not for mDDR. That is the reason we recommended to use the value "1" for tRTP when you are using mDDR. Using the value other than 1 would lead to incorrect configuration register and may cause timing issues.

    Regards,
    Senthil
  • Hello Senthil,

    Thanks for your answer, but we need to confirm more about T_RTP.

    First of all, let me explain the reason to use '3' for T_RTP.
    As I mentioned in the previous post, there was no spec for tRTP in DDR datasheet, but tRTP is defined as 'read to precharge' 
    and it seems it should be the half of Burst Length.
    The following is the snippet from JEDEC document (JESD209B.pdf):


    Because my customer has been using mDDR with BL=8, tRTP should be 8/2 - 1 and it makes T_RTP 3.


    However, TI's DDR memory controller suggests that it should be '1' regardless of the usage of connected DDR.
    Now questions:

    1. Do you have any reason to use '1' for T_RTP ? Please clarify it with your technical background.

    2. If you can't answer to the above question exactly, can you state DDR controller can handle 'read to precharge' correctly if we use 1 for T_RTP ? (In case of my customer's usage, can you state  'read to precharge' is always 4 regardless of T_RTP value ?)

    Best Regards,
    Naoki

  • Hello Naoki,

    I understand your concern, but i do not have a concrete background information for T_RTP value as 1 for mDDR. I would try to get more insight on this and update you.

    Have the customer tried using T_RTP as 1 ? Did they face any issues with T_RTP as 1 ?

    Regards,
    Senthil
  • Hi Senthil,

    Thanks. I'm asking my customer their evaluation results. Perhaps, I think it would be delayed.
    BTW, let me ask you again about correct operation in spread sheet. I'm wondering if giving '1' to green cell (tRTP) in the spread sheet might be correct usage rather than giving 1 to T_RTP bitfield on SDTIMR2 register directly. Giving '1' to green cell (tRTP) makes T_RTP bitfield 0. My colleague said T_RTP bitfield looked 0 on TI's linux implementation for mDDR.
    Did you mean we should use T_RTP bitfield as 0 in the previous answer ?
    Please let me know your answer for this with your research for 'read to pre-charge' behavior when using T_RTP bitfield as 1 (or 0).

    Best Regards,
    Naoki
  • Hi Senthil,

    I'm still waiting for their results. So, at your end, do you have any findings on this issue ?

    Best Regards,
    Naoki Kawada
  • Hello Naoki,

    I am working on this. I will update you soon.

    Regards,
    Senthil
  • Hello Naoki,

    You are required to enter '1' in the tRTP (ns) field which is a timing value. The T_RTP is a SDTIMR2 register field value which is manipulated as mentioned in the TRM, for tRTP of 1, the T_RTP field value would be 0. We have performed mDDR characterization with tRTP value as 1 as it is an unknown parameter in memory datasheet and it worked without any issue. The interface might work well with little more value of tRTP but we cannot guarantee the reliability.

    Regards,
    Senthil
  • Hello Senthil,

    Thanks for your clarifications. I've asked the customer to check if 'read to pre-charge command delay' becomes their expected value when they use T_RTP as 0. If I get the feedback from them, I'll share with you.

    Best Regards,
    Naoki
  • Hello Senthil,

    I got the feedback from them. Unfortunately, Burst Length was not correct with T_RTP=0 -- it was only 4 bursts rather than 8. Please note TRM states that DDR/mDDR memory controller supports 8 burst length. Also note that burst length was 8 if T_RTP=3 and they could not see any problem on the waveform with that configuration.
    So now we need to ask you again the same question -- What value should be set to T_RTP ? If you would say it should be still 0, why they could not see full bursts with this configuration ?

    Best Regards,
    Naoki Kawada
  • Hello Senthil,

    I got the feedback from them. Unfortunately, burst length was not correct with T_RTP=0 -- it was only 4 burst rather than 8. Please note TRM states DDR/mDDR memory controller supports 8 burst length. Also note that they are saying they could see 8 burst with T_RTP=3. So now we need to ask you the same question -- What value should be set to T_RTP ? If you would say it should be still 0, could you please explain why they could not see full burst on the read transaction ?

    Best Regards,
    Naoki Kawada
  • Naoki Kawada,

    I got an information from the internal team like the tRTP must be calculated as (BL/2)tCK as mentioned in the JEDEC specifications. We are trying to get the background of DDR2/mDDR register calculator referencing to value 1 for tRTP in case of mDDR. Since the original authors are no longer available with us, i am not sure we would get insight of this. I will update you on this.

    Regards,
    Senthil
  • Hello Senthil,

    Sorry to rush you but do you have any findings about this issue ? Our customer is waiting for your updates.

    Best Regards,
    Naoki
  • Naoki,

    Sorry, we did not able to find root cause for the recommendation of tRTP as 1 for mDDR. However, i checked with available experts and their recommendation is tRTP must be calculated as (BL/2)tCK as per JEDEC specifications. Also you do not have any issues by going with JEDEC specifications, so please go ahead with this. This will be corrected in OMAPL138 DDR/mDDR register calculator in the next version.

    Regards,
    Senthil
  • Hello Senthil,

    I talked with the customer and they decided to go with T_RTP as 3 because BL is 8.
    Thanks for all your effort to close this.

    Best Regards,
    Naoki Kawada