<?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: How can I keep DDR3 RAM content when performing warm reboot? in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/How-can-I-keep-DDR3-RAM-content-when-performing-warm-reboot/m-p/738747#M114971</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hallo Christian,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In case of a warm reset, please refer to the RM 44.4.7.2.&lt;/P&gt;&lt;P&gt;The MMDC must issue a LPMD request (in the MAPSR). It can only synchronize with the CCM through that signal.&lt;/P&gt;&lt;P&gt;Once the CCM acknowledge and send the response back to the MMDC, the latter can enter in self-refresh mode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;best regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rod&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 11 Jun 2018 15:57:53 GMT</pubDate>
    <dc:creator>Rodrigue</dc:creator>
    <dc:date>2018-06-11T15:57:53Z</dc:date>
    <item>
      <title>How can I keep DDR3 RAM content when performing warm reboot?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-can-I-keep-DDR3-RAM-content-when-performing-warm-reboot/m-p/738746#M114970</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi everyone,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;we're using an i.MX6Quad on a custom board with 2 GByte DDR3 RAM.&lt;BR /&gt;We would like to perform a watchdog WARM reset while keeping the data in the RAM valid.&lt;/P&gt;&lt;P&gt;In our scenario it would look like so:&lt;BR /&gt;1. watchdog warm reset triggered by kernel code&lt;BR /&gt;2. Bootrom&lt;BR /&gt;3. U-Boot SPL in SRAM -&amp;gt; should detect the warm reset cause and therefore not configure MMDC&lt;BR /&gt;4. U-Boot in DDR3&lt;BR /&gt;5. Kernel in DDR3&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When connecting to the U-Boot preloader (SPL) via Lauterbach JTAG-Debugger, I can see that the MMDC has lost all of its settings like e.g. ammount of row and column bits, RAM timings etc.&lt;BR /&gt;Is this the expected behaviour when performing a warm reset?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My initial expectation was that the MMDC would keep all its RAM settings. I also would have guessed that the MMDC is indicating that it is in self refresh mode by asserting bit DVACK in register MAPSR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I then checked the following settings:&lt;/P&gt;&lt;P&gt;SRC_SCR[warm_reset_enable] -&amp;gt; bit is programmed&lt;BR /&gt;SRC_SCR[warm_rst_bypass_count] -&amp;gt; Wait 16 XTALI but also changed it to 0x00 in order to make it wait indefinetly for the MMDC handshake&lt;BR /&gt;CCM_CCDR[17:16] -&amp;gt; handshake signals are NOT masked&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What steps are necessary to get access to the DDR3 RAM again whithout changing its content?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;best regards,&lt;BR /&gt;Christian&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 31 May 2018 12:22:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-can-I-keep-DDR3-RAM-content-when-performing-warm-reboot/m-p/738746#M114970</guid>
      <dc:creator>caue</dc:creator>
      <dc:date>2018-05-31T12:22:08Z</dc:date>
    </item>
    <item>
      <title>Re: How can I keep DDR3 RAM content when performing warm reboot?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-can-I-keep-DDR3-RAM-content-when-performing-warm-reboot/m-p/738747#M114971</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hallo Christian,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In case of a warm reset, please refer to the RM 44.4.7.2.&lt;/P&gt;&lt;P&gt;The MMDC must issue a LPMD request (in the MAPSR). It can only synchronize with the CCM through that signal.&lt;/P&gt;&lt;P&gt;Once the CCM acknowledge and send the response back to the MMDC, the latter can enter in self-refresh mode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;best regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rod&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 11 Jun 2018 15:57:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-can-I-keep-DDR3-RAM-content-when-performing-warm-reboot/m-p/738747#M114971</guid>
      <dc:creator>Rodrigue</dc:creator>
      <dc:date>2018-06-11T15:57:53Z</dc:date>
    </item>
    <item>
      <title>Re: How can I keep DDR3 RAM content when performing warm reboot?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-can-I-keep-DDR3-RAM-content-when-performing-warm-reboot/m-p/738748#M114972</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Rodrigue,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thank you very much for your reply.&lt;/P&gt;&lt;P&gt;I read your mentioned section 45.4.7.2, it describes the neccessary steps for transitioning MMDC to self refresh.&lt;BR /&gt;However I think that SRC should take care of that by means of hardware, if configured correctly.&lt;/P&gt;&lt;P&gt;The following describes my train of thoughts, I would apprechiate it if you could find any errors or misconceptions I might have.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;While doing some experimentation I set the MMDC into self refresh mode via the LPMD request as well as DVFS request using a Lauterbach-JTAG-Probe. This led to the respective ACK-Bit to assert.&lt;BR /&gt;After waiting a couple of minutes I cleared the LPMD/DVFS request, in turn the acknowledge bit would deassert and I could resume the programm execution without any problems thus the self refresh mechanism seemed to work when triggered manually.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the System Reset Controller (SRC) section 60.6.1.2.5 WARM RESET one can find that the&lt;BR /&gt;SRC will take care of transitioning MMDC to self refresh mode via hardware handshakes (only when SRC_SCR[warm_reset_enable] is set) whenever a WARM RESET qualifying reset source occurs in the system.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In Chapter 70 Watchdog Timer (WDOG) it is stated that "Upon timeout, the WDOG asserts the internal system reset signal, WDOG_RESET_B_DEB to the System Reset Controller (SRC)"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In section "60.6.1.1 Reset inputs and outputs" figure 60-5 one can see that WDOG_RESET_B_DEB qualifies as a WARM RESET source.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;This is why I concluded that the SRC would automatically put the DDR3 in self refresh once the WDOG reset occurs.&lt;/P&gt;&lt;P&gt;In section 60.6.1.2.5 WARM RESET, step 5 it says "Wait for mmdc_dvfs_ack signal from the MMDC. If no ack is received during warm_rst_bypass_count number of XTALI clocks, COLD reset will be generated."&lt;BR /&gt;That is why I temporarily set the SRC_SCR[warm_rst_bypass_count] bitfield to 0x00 in order to make it wait indefinitely for the ACK signal.&lt;BR /&gt;Since our system actually performed the reset I concluded that the handshake must have been occured prior to the (warm) reset.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After the reset, the BOOTROM is loading our U-Boot preloader into OCRAM. At this point I had a look into the MMDC state via JTAG.&lt;BR /&gt;It turned out that the MMDC lost all of its configuration and is NOT indicating self refresh (DVFS acknowledge, DVACK = 0).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The description of the MMDC hard reset (section 45.4.7.1) seems to fit the observed behaviour of our system.&lt;BR /&gt;What did I do wrong or what might have led to the MMDC to do a HARD RESET instead of a WARM RESET?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;BR /&gt;Christian&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Jun 2018 08:13:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-can-I-keep-DDR3-RAM-content-when-performing-warm-reboot/m-p/738748#M114972</guid>
      <dc:creator>caue</dc:creator>
      <dc:date>2018-06-13T08:13:20Z</dc:date>
    </item>
  </channel>
</rss>

