<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Executing from LPDDR2 in Vybrid Processors</title>
    <link>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292935#M2385</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm the local Freescale FAE, supporting this customer. I went onsite to customer this week. Here is additional background info.&amp;nbsp; I sent this to Naoum and Jiri via email, they request this be posted within the Community thread for continuity.&lt;BR /&gt; &lt;BR /&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Customer runs its LPDDR at 300Mhz.&amp;nbsp; They see memory failures and system lockup whenever a stack pop/push occurs when executing from LPDDR.&lt;/P&gt;&lt;P&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; These failures do not occur when they execute code or tests from internal Vybrid memory.&lt;/P&gt;&lt;P&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; We (Local Arrow DFAE and I) advised customer to relocate their stack and re-test.&amp;nbsp;&amp;nbsp; It fails regardless if the stack is internal or external &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; in LPDDR when executing from LPDDR.&amp;nbsp; Its works fine when stack is internal OR external if executing from internal memory.&lt;/P&gt;&lt;P&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Jiri/Naoum provided LPDDR settings for 200Mhz, and also from our 400Mhz LPDDR validation board.&amp;nbsp; Customer is study those for differences with their settings.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Is there a difference in how a stack instruction cycle works in LPDDR from a memory system handshake point of view?&amp;nbsp; That’s the only time it fails.&amp;nbsp; I don’t think so, but it seems unusual that all other instructions execute fine from LPDDR and moving the stack internal or external doesn’t cause a failure,&amp;nbsp; only the external stack pop/push instruction execution does.&lt;BR /&gt; &lt;BR /&gt;Actions requested&lt;/P&gt;&lt;P&gt;--------------------------&lt;BR /&gt;** Customer asks if we can provide the complete codebase for the validation code….ie…PLL settings/general init files……as perhaps their problem is in a system setting they overlooked that is outside the LPDDR init values.&lt;BR /&gt; &lt;BR /&gt;** Customer asks if we have run Linux from LPDDR memory?&amp;nbsp; Or did we just run memory tests&amp;nbsp; (executing from internal memory) on our LPDDR validation board?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;** Can you provide schematics for our LPDDR Validation board?&amp;nbsp; I have some from a couple years ago, not sure if they are the current rev.&amp;nbsp; We will compare this to customers LPPDR schematic.&lt;BR /&gt; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 08 Dec 2013 15:49:49 GMT</pubDate>
    <dc:creator>GordyCarlson</dc:creator>
    <dc:date>2013-12-08T15:49:49Z</dc:date>
    <item>
      <title>Executing from LPDDR2</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292921#M2371</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am currently using a Micron LPDDR2 (MT42L32M16D1) part.&amp;nbsp; I have it configured and have been able to run a memory test executing from internal SRAM that can write and read from the LPDDR2 memory without any errors.&amp;nbsp; When I go to execute out of the LPDDR2, I am receiving errors(chip is going off into the weeds) upon execution of any instruction that utilizes the stack(push, bl, etc.).&amp;nbsp; If I adjust the TBST_INT_INTERVAL from 2 to 4, I am able to use a debugger and step through these instructions without error, but if I attempt to run without stepping, I see the crash again.&amp;nbsp; Adjusting the interval more in either direction does not help (if anything makes it worse). Any idea which DRAM configurations/settings would be causing this problem?&amp;nbsp; Thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 Nov 2013 21:02:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292921#M2371</guid>
      <dc:creator>chrispage</dc:creator>
      <dc:date>2013-11-21T21:02:05Z</dc:date>
    </item>
    <item>
      <title>Re: Executing from LPDDR2</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292922#M2372</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Chris,&lt;/P&gt;&lt;P&gt;please look at &lt;A href="https://community.nxp.com/message/364994"&gt;Re: Re: VF5xx / Example of LPDDR2 Configuration&lt;/A&gt;&lt;/P&gt;&lt;P&gt;/Jiri&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Nov 2013 14:55:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292922#M2372</guid>
      <dc:creator>jiri-b36968</dc:creator>
      <dc:date>2013-11-27T14:55:17Z</dc:date>
    </item>
    <item>
      <title>Re: Executing from LPDDR2</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292923#M2373</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have looked at the example and have been able to read/write the memory when executing from internal SRAM.&amp;nbsp; I am running at 400MHz instead of 200MHz, so many of my parameters have been changed based on my LPDDR2's data sheet.&amp;nbsp; I am looking more specifically for areas to investigate(which register configurations I should be focusing on) as to why reading/writing to memory from internal memory works yet executing from the external memory gives me errors when running at full speed.&amp;nbsp; As well as more information as to what TBST_INT_INTERVAL matches up with on memory data sheets since that is the only parameter adjustment that seems to cause a slight change in what I am seeing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Chris&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Nov 2013 17:04:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292923#M2373</guid>
      <dc:creator>chrispage</dc:creator>
      <dc:date>2013-11-27T17:04:11Z</dc:date>
    </item>
    <item>
      <title>Re: Executing from LPDDR2</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292924#M2374</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Chris, Do you mean your problems started when you increased the LPDDR2 speed from 200 to 400 MHz? Regards, Naoum Gitnik.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Dec 2013 00:13:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292924#M2374</guid>
      <dc:creator>naoumgitnik</dc:creator>
      <dc:date>2013-12-03T00:13:10Z</dc:date>
    </item>
    <item>
      <title>Re: Executing from LPDDR2</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292925#M2375</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have not tried 200MHz yet, but I am in the process of giving it a try right now to see if the same problems exist.&amp;nbsp; Was executing out of the LPDDR2 tested with the 200MHz code sample that was provided?&amp;nbsp; Also, are there any other register changes needed for the example code to run (for example clock register settings).&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Dec 2013 16:29:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292925#M2375</guid>
      <dc:creator>chrispage</dc:creator>
      <dc:date>2013-12-03T16:29:04Z</dc:date>
    </item>
    <item>
      <title>Re: Executing from LPDDR2</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292926#M2376</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Unfortunately running at 200MHz using the example code did not work at all.&amp;nbsp; The parts must be different enough that the example code is not compatible.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Dec 2013 21:46:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292926#M2376</guid>
      <dc:creator>chrispage</dc:creator>
      <dc:date>2013-12-03T21:46:50Z</dc:date>
    </item>
    <item>
      <title>Re: Re: Executing from LPDDR2</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292927#M2377</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Chris,&lt;/P&gt;&lt;P&gt;Attached are settings for our validation board - may you use them, please?&lt;/P&gt;&lt;P&gt;Regards, Naoum Gitnik.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Dec 2013 22:50:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292927#M2377</guid>
      <dc:creator>naoumgitnik</dc:creator>
      <dc:date>2013-12-03T22:50:39Z</dc:date>
    </item>
    <item>
      <title>Re: Executing from LPDDR2</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292928#M2378</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Chris,&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;Please, also take a look at the Processor Expert tool released for Vybrid - on the product pages, under Software and Tools -&amp;gt; Updates and Patches.&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;I don't have any personal experience of it, but it claims to have a DDR configuration wizard included.&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;Regards, Naoum Gitnik.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Dec 2013 23:43:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292928#M2378</guid>
      <dc:creator>naoumgitnik</dc:creator>
      <dc:date>2013-12-04T23:43:38Z</dc:date>
    </item>
    <item>
      <title>Re: Executing from LPDDR2</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292929#M2379</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for all the information.&amp;nbsp; I am currently trying various configurations to try to narrow down configurations in which this problem is being seen and I will post those once I have completed all my testing.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Dec 2013 14:07:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292929#M2379</guid>
      <dc:creator>chrispage</dc:creator>
      <dc:date>2013-12-05T14:07:06Z</dc:date>
    </item>
    <item>
      <title>Re: Executing from LPDDR2</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292930#M2380</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have tried matching up my configuration with all of the available examples and I still see the original problem.&amp;nbsp; The only configuration parameter that seems to effect the way the error is seen is TBST_INT_INTERVAL.&amp;nbsp; Do you have any specifics about what this configuration parameter does?&amp;nbsp; The reference sheet is not very specific.&amp;nbsp; Also is there any way I could get the rest of the code that was used when testing these DRAM configurations to see if there is anything we are missing?&amp;nbsp; Do you know if executing out of LPDDR2 has been tested?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Dec 2013 20:40:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292930#M2380</guid>
      <dc:creator>chrispage</dc:creator>
      <dc:date>2013-12-05T20:40:07Z</dc:date>
    </item>
    <item>
      <title>Re: Executing from LPDDR2</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292931#M2381</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Chris,&lt;/P&gt;&lt;P&gt;While working on this issue, I got the following advice from one of my colleges who is more DDR/Vybrid expert than me:&lt;/P&gt;&lt;P&gt;"I'd recommend trying to do some memory tests using the DMA to read the memory with the SSIZE set to 32-byte.&amp;nbsp; That way you make sure that you are using the full burst of data from the DDR and getting back the expected results. Hope it helps."&lt;/P&gt;&lt;P&gt;Regards, Naoum Gitnik.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Dec 2013 00:09:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292931#M2381</guid>
      <dc:creator>naoumgitnik</dc:creator>
      <dc:date>2013-12-06T00:09:52Z</dc:date>
    </item>
    <item>
      <title>Re: Executing from LPDDR2</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292932#M2382</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I will try this, I noticed there is a DMA test in the example code that has been posted, but it is using a file dma.h to help set up the DMA.&amp;nbsp; Do you have dma.h that you could post so I don't have to recreate it?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Chris&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Dec 2013 13:38:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292932#M2382</guid>
      <dc:creator>chrispage</dc:creator>
      <dc:date>2013-12-06T13:38:41Z</dc:date>
    </item>
    <item>
      <title>Re: Executing from LPDDR2</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292933#M2383</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/alejandrolozano"&gt;alejandrolozano&lt;/A&gt; would you have the dma.h file for the lpddr2 project you posted on &lt;A _jive_internal="true" href="https://community.nxp.com/message/364994#364994"&gt;https://community.freescale.com/message/364994#364994&lt;/A&gt; that you can share, please?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Dec 2013 18:10:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292933#M2383</guid>
      <dc:creator>juangutierrez</dc:creator>
      <dc:date>2013-12-06T18:10:12Z</dc:date>
    </item>
    <item>
      <title>Re: Re: Executing from LPDDR2</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292934#M2384</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Chris&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Find attached the dma.h file&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 07 Dec 2013 01:46:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292934#M2384</guid>
      <dc:creator>juangutierrez</dc:creator>
      <dc:date>2013-12-07T01:46:10Z</dc:date>
    </item>
    <item>
      <title>Re: Executing from LPDDR2</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292935#M2385</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm the local Freescale FAE, supporting this customer. I went onsite to customer this week. Here is additional background info.&amp;nbsp; I sent this to Naoum and Jiri via email, they request this be posted within the Community thread for continuity.&lt;BR /&gt; &lt;BR /&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Customer runs its LPDDR at 300Mhz.&amp;nbsp; They see memory failures and system lockup whenever a stack pop/push occurs when executing from LPDDR.&lt;/P&gt;&lt;P&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; These failures do not occur when they execute code or tests from internal Vybrid memory.&lt;/P&gt;&lt;P&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; We (Local Arrow DFAE and I) advised customer to relocate their stack and re-test.&amp;nbsp;&amp;nbsp; It fails regardless if the stack is internal or external &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; in LPDDR when executing from LPDDR.&amp;nbsp; Its works fine when stack is internal OR external if executing from internal memory.&lt;/P&gt;&lt;P&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Jiri/Naoum provided LPDDR settings for 200Mhz, and also from our 400Mhz LPDDR validation board.&amp;nbsp; Customer is study those for differences with their settings.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Is there a difference in how a stack instruction cycle works in LPDDR from a memory system handshake point of view?&amp;nbsp; That’s the only time it fails.&amp;nbsp; I don’t think so, but it seems unusual that all other instructions execute fine from LPDDR and moving the stack internal or external doesn’t cause a failure,&amp;nbsp; only the external stack pop/push instruction execution does.&lt;BR /&gt; &lt;BR /&gt;Actions requested&lt;/P&gt;&lt;P&gt;--------------------------&lt;BR /&gt;** Customer asks if we can provide the complete codebase for the validation code….ie…PLL settings/general init files……as perhaps their problem is in a system setting they overlooked that is outside the LPDDR init values.&lt;BR /&gt; &lt;BR /&gt;** Customer asks if we have run Linux from LPDDR memory?&amp;nbsp; Or did we just run memory tests&amp;nbsp; (executing from internal memory) on our LPDDR validation board?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;** Can you provide schematics for our LPDDR Validation board?&amp;nbsp; I have some from a couple years ago, not sure if they are the current rev.&amp;nbsp; We will compare this to customers LPPDR schematic.&lt;BR /&gt; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 08 Dec 2013 15:49:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292935#M2385</guid>
      <dc:creator>GordyCarlson</dc:creator>
      <dc:date>2013-12-08T15:49:49Z</dc:date>
    </item>
    <item>
      <title>Re: Re: Executing from LPDDR2</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292936#M2386</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Everybody,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Attached are:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Excerpt from&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt; our LPDDR2 Validation board schematic,&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;DDR controller tuning document (&lt;/SPAN&gt;just in case).&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;Unfortunately, based on what I learned from the SW Apps people, I am afraid this is all we can can help with, as of now; and the reason is that, based on our market observations, Vybrid customers are using DDR3 way more frequently that LPDDR2, so, with our limited resources, the department's focus is on the former - boards, code examples, etc. &lt;/SPAN&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;For &lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;the latter&lt;/SPAN&gt;, though, we have only run validation tests, but not really beyond that point.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Sincerely yours, Naoum Gitnik.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 09 Dec 2013 20:26:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292936#M2386</guid>
      <dc:creator>naoumgitnik</dc:creator>
      <dc:date>2013-12-09T20:26:53Z</dc:date>
    </item>
    <item>
      <title>Re: Re: Executing from LPDDR2</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292937#M2387</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The SDRAM runs lots of different cycles (types of access). TBST_INT_INTERVAL is the bits in DDRMC_CR13?&amp;nbsp; &lt;A href="http://en.wikipedia.org/wiki/Synchronous_dynamic_random-access_memory#Commands" rel="nofollow noopener noreferrer" target="_blank"&gt;Wikipedia has a nice chart&lt;/A&gt; of the different commands.&amp;nbsp; You can alter things by turning on/off the cache.&amp;nbsp; Your stack access for instance, maybe the first write access.&amp;nbsp; A back to back read/write can present problems, etc.&amp;nbsp; I had issues with another Freescale CPU and it only manifested when people did SSH transfers over the FEC DMA.&amp;nbsp; Ie, only certain data patterns and access cycles would trigger the problem.&amp;nbsp; The ARM &lt;EM&gt;stm &lt;/EM&gt;and &lt;EM&gt;ldm&lt;/EM&gt; instructions can be used in memory test code to simulate the SDRAM bursts that would be possible with a cache turned on.&amp;nbsp; If you have gcc for the test code then,&lt;/P&gt;&lt;PRE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; register ulong t1 asm ("r0")&amp;nbsp; = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \
&amp;nbsp;&amp;nbsp;&amp;nbsp; register ulong t2 asm ("r4")&amp;nbsp; = t1 + incr;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \
&amp;nbsp;&amp;nbsp;&amp;nbsp; register ulong t3 asm ("r6")&amp;nbsp; = t2 + incr;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \
&amp;nbsp;&amp;nbsp;&amp;nbsp; register ulong t4 asm ("r8")&amp;nbsp; = t3 + incr;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Run an entire burst line. */&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __asm__ (" stmia&amp;nbsp; %[ptr], {%0,%1,%2,%3}\r\n" : :&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "r" (t1), "r" (t2), "r" (t3), "r" (t4),&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ptr]"r" (start + (addr&amp;lt;&amp;lt;2)) : "memory") \
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Read four 32 bits values. */&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __asm__ (" ldmia&amp;nbsp;&amp;nbsp; %[ptr], {%0, %1, %2, %3}\r\n" :&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "=r" (t1), "=r" (t2), "=r" (t3), "=r" (t4) :&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ptr]"r" (start + (addr&amp;lt;&amp;lt;2)));
&lt;/PRE&gt;&lt;P&gt;Maybe helpful in your IRAM test code to simulate some different DDR transfers.&amp;nbsp; Most ARM compilers will generate the &lt;EM&gt;stm&lt;/EM&gt; or &lt;EM&gt;ldm&lt;/EM&gt; instructions when accessing the stack.&amp;nbsp; The code pre-fetch hardware may only get a few words at a time and for certain it will only be in read mode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The TBST_INT_INTERVAL is just saying how many burst to run in a row.&amp;nbsp; Note, that this usually has to match some configuration of the DDR; there are special configuration cycles that you run to configure the DDR with the address bits (load mode registers at the wikipedia link).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Check the IOMUX settings for the DDR pins.&amp;nbsp; The voltages are different for LPDDR and I don't see in the manual where this will be set.&amp;nbsp; However, the memory will often function even if these values are not set properly. As well the Asynchronous/Synchronous clocking has to be set properly and depends on the CORE clocks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The &lt;A href="http://www.micron.com/~/media/Documents/Products/Technical%20Note/DRAM/TN4102.pdf" rel="nofollow noopener noreferrer" target="_blank"&gt;Micron DDR3 ZQ calibration &lt;/A&gt;tech note maybe of interest.&amp;nbsp; Both the LPDDR2 and DDR3 can use this scheme and it seems to be supported by Vybrid DDRMC_CR66+ as well as 34.6.14.&amp;nbsp;&amp;nbsp; DDRMC_CR132+ seem like register that need to be tweaked per board; depending on PCB layout.&amp;nbsp; All of the DDRMC_PHYSxx seem like places to search; try the memory test with different values and look at register like DDRMC_PHY29 to see what the controller is setting delays to.&amp;nbsp; I would work on getting a SDRAM test that fails; random address and data are useful to try and exercise all transitions/cross-talk.&amp;nbsp; Just because one type of access works, doesn't mean they all will.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 09 Dec 2013 21:26:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292937#M2387</guid>
      <dc:creator>billpringlemeir</dc:creator>
      <dc:date>2013-12-09T21:26:18Z</dc:date>
    </item>
    <item>
      <title>Re: Re: Executing from LPDDR2</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292938#M2388</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I just sent you a direct message about some code I found, I don't know if that helps, but seems to have some code related to LPDDR2.&lt;/P&gt;&lt;P&gt;I have neither tried nor tested. Just sharing in case.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 09 Dec 2013 22:27:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292938#M2388</guid>
      <dc:creator>juangutierrez</dc:creator>
      <dc:date>2013-12-09T22:27:58Z</dc:date>
    </item>
    <item>
      <title>Re: Re: Executing from LPDDR2</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292939#M2389</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;Just a comment - this code is posted on the Freescale-internal Vybrid_FAE support forum in the thread discussing LPDDR2 settings.&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;/Naoum.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 09 Dec 2013 23:58:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292939#M2389</guid>
      <dc:creator>naoumgitnik</dc:creator>
      <dc:date>2013-12-09T23:58:31Z</dc:date>
    </item>
    <item>
      <title>Re: Executing from LPDDR2</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292940#M2390</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Chris Page is having problems posting to the community, so I am posting this on his behalf.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;I have finally been able to get the LPDDR2 working with a DMA memory test. The stack problems look to be solved when caching is disabled.&amp;nbsp; It ended up looking like it was a burst problem.&amp;nbsp; I am now at the point that once caching is enabled, I am still seeing problems.&amp;nbsp; Once I have enabled caching (instruction and data), a "bx lr" instruction to return from the function that enabled caching seems to just increment the program counter and not actually branch (this works on the DDR3 but not on the LPDDR2).&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;&lt;STRONG&gt;Are there any memory settings that would affect caching or are there any cache controller settings that need to be configured differently for LPDDR2(running at 300MHz) vs DDR3(running at 400MHz)?&amp;nbsp; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Dec 2013 17:42:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/Executing-from-LPDDR2/m-p/292940#M2390</guid>
      <dc:creator>tomsaluzzo</dc:creator>
      <dc:date>2013-12-17T17:42:19Z</dc:date>
    </item>
  </channel>
</rss>

