<?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>i.MX ProcessorsのトピックRe: Suspend-to-RAM debugging</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/Suspend-to-RAM-debugging/m-p/172993#M5983</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Sorry, I don't know the function of cpu_do_suspend_workaround and can't help you.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 06 Jul 2012 08:43:24 GMT</pubDate>
    <dc:creator>VincentChen</dc:creator>
    <dc:date>2012-07-06T08:43:24Z</dc:date>
    <item>
      <title>Suspend-to-RAM debugging</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Suspend-to-RAM-debugging/m-p/172990#M5980</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I have a custom i.MX53 board where suspend-to-RAM is not working properly, i.e. the board won't wake up; and I believe it crashes even before going to suspend anyway.&lt;/P&gt;&lt;P&gt;Linux Standby mode works and the board wakes up again.&lt;/P&gt;&lt;P&gt;I use 2.6.35, from 11.05 ER Freescale BSP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Stepping through the assembly code before the WFI instruction is executed within DS-5, I found that the problem is in &lt;STRONG&gt;cpu_do_suspend_workaround()&lt;/STRONG&gt;, file &lt;STRONG&gt;arch/arm/mach-mx5/suspend.S&lt;/STRONG&gt;.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;More detail, the &lt;STRONG&gt;mx53_force_ddr_selfrefresh&lt;/STRONG&gt; section goes wrong when the FDVFS bit in M4IF_CR0 register is set.&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;mx53_force_ddr_selfrefresh:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PM_SET_ADDR_REG MX53_M4IF_CR0_FDVFS_ADDR, r4&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r5, [r4]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; orr r5, r5 , #0x800&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #ff0000;"&gt;&lt;STRONG&gt;str r5, [r4]&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;The processor locks up so I need to power-cycle it; and the debugger disconnects. I believe, sending low-power request to the fast channel of the EXTMC should not influence the JTAG clocks/connection. Who knows better?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there an idea by anyone what could go wrong? The manual's information about the FDVFS bit is rather sparse; I don't know what the M4IF does in background before it should acknowledge the low power state.&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Jul 2012 06:39:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Suspend-to-RAM-debugging/m-p/172990#M5980</guid>
      <dc:creator>harald_krapfenb</dc:creator>
      <dc:date>2012-07-06T06:39:42Z</dc:date>
    </item>
    <item>
      <title>Re: Suspend-to-RAM debugging</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Suspend-to-RAM-debugging/m-p/172991#M5981</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;static void loco_suspend_enter(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (!board_is_mx53_loco_mc34708()) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;loco_da9053_irq_wakeup_only_fixup();&lt;BR /&gt;//vin&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;da9053_suspend_cmd_sw();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;da9053_suspend_cmd_hw(); //vin added 2012/4/11, because we have DA9053 on board&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;int da9052_ldo_buck_set_voltage(struct regulator_dev *rdev,&lt;BR /&gt;&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;int min_uV, int max_uV)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;struct da9052_regulator_priv *priv = rdev_get_drvdata(rdev);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;struct da9052_ssc_msg ssc_msg;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int id = rdev_get_id(rdev);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int ret;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int ldo_volt = 0;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* KPIT - Below if condition is there for added setvoltage attribute&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;in sysfs */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (0 == max_uV)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;max_uV = da9052_regulators[id].reg_const.max_uV;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;...........&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;...........&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;...........&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;switch (id) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;case DA9052_LDO2:&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ssc_msg.data = (ssc_msg.data | DA9052_SUPPLY_VLDO2GO);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;break;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;case DA9052_LDO3:&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ssc_msg.data = (ssc_msg.data | DA9052_SUPPLY_VLDO3GO);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;break;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;case DA9052_BUCK_CORE:&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ssc_msg.data = (ssc_msg.data | DA9052_SUPPLY_VBCOREGO);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ssc_msg.data &amp;amp;= 0x7f;//vin 2012/6/21, set the bit 7 to 0.&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;break;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;case DA9052_BUCK_PRO:&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ssc_msg.data = (ssc_msg.data | DA9052_SUPPLY_VBPROGO);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;break;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;case DA9052_BUCK_MEM:&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ssc_msg.data = (ssc_msg.data | DA9052_SUPPLY_VBMEMGO);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;break;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;default:&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;da9052_unlock(priv-&amp;gt;da9052);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return -EINVAL;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;............&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;............&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;............&lt;BR /&gt;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;Modified the above two functions, it works for me.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Jul 2012 07:31:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Suspend-to-RAM-debugging/m-p/172991#M5981</guid>
      <dc:creator>VincentChen</dc:creator>
      <dc:date>2012-07-06T07:31:42Z</dc:date>
    </item>
    <item>
      <title>Re: Suspend-to-RAM debugging</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Suspend-to-RAM-debugging/m-p/172992#M5982</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Up to now, I'm not dealing with the PMIC at all; my board has no DA9053. So this code is not executed.&lt;/P&gt;&lt;P&gt;Involved parts are imho DDR RAM and M4IF.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Jul 2012 08:07:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Suspend-to-RAM-debugging/m-p/172992#M5982</guid>
      <dc:creator>harald_krapfenb</dc:creator>
      <dc:date>2012-07-06T08:07:14Z</dc:date>
    </item>
    <item>
      <title>Re: Suspend-to-RAM debugging</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Suspend-to-RAM-debugging/m-p/172993#M5983</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Sorry, I don't know the function of cpu_do_suspend_workaround and can't help you.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Jul 2012 08:43:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Suspend-to-RAM-debugging/m-p/172993#M5983</guid>
      <dc:creator>VincentChen</dc:creator>
      <dc:date>2012-07-06T08:43:24Z</dc:date>
    </item>
  </channel>
</rss>

