<?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 iMX6 - CPU Idle in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-CPU-Idle/m-p/247873#M21937</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In our custom board which is designed more closer to Sabrelite, I notice the following,&lt;/P&gt;&lt;P&gt;The Linux kernel boots successfully only when the hlt_counter in cpu_idle (arch/arm/kernel/process.c) is true.&lt;/P&gt;&lt;P&gt;Otherwise the kernel boot hangs when it boots the CPU-2&lt;/P&gt;&lt;P&gt;......&lt;/P&gt;&lt;P&gt;CPU1: Booted secondary processor&lt;/P&gt;&lt;P&gt;CPU2: Booted secondary processor&lt;/P&gt;&lt;P&gt;CPU2: failed to come online&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However on the Sabrelite board the "hlt_counter++" addition is not needed. The kernel boots fine consistently without any modification.&lt;/P&gt;&lt;P&gt;I'm wondering why this condition is prevalent.&amp;nbsp; By adding this fix and going ahead, I notice that the temperature of the processor shoots very sharply (while in sabrelite this is not the case).&lt;/P&gt;&lt;P&gt;Any inputs to identify the cause and fix the same will be appreciated.&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Karthikeyan.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----&lt;/P&gt;&lt;P&gt;Other details,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Processor - imx6Q &lt;SPAN style="text-decoration: underline;"&gt;&lt;STRONG&gt;Rev1.2&lt;/STRONG&gt;&lt;/SPAN&gt; on both custom board and Sabrelite board&lt;/P&gt;&lt;P&gt;SW - Android JB4.2.2_1.1 BSP (released in July '13) from Freescale.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The SW fix added at the moment,&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;BR /&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;lt;source/arch/arm/kernel/process.c&amp;gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;179 void cpu_idle(void)&lt;/P&gt;&lt;P&gt;180 {&lt;/P&gt;&lt;P&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; &lt;STRONG&gt;disable_hlt();&lt;/STRONG&gt; /*Added - KARS*/&lt;/P&gt;&lt;P&gt;181&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; local_fiq_enable();&lt;/P&gt;&lt;P&gt;182&lt;/P&gt;&lt;P&gt;183&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* endless idle loop with no priority at all */&lt;/P&gt;&lt;P&gt;184&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (1) {&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 09 Aug 2013 12:36:58 GMT</pubDate>
    <dc:creator>kars</dc:creator>
    <dc:date>2013-08-09T12:36:58Z</dc:date>
    <item>
      <title>iMX6 - CPU Idle</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-CPU-Idle/m-p/247873#M21937</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In our custom board which is designed more closer to Sabrelite, I notice the following,&lt;/P&gt;&lt;P&gt;The Linux kernel boots successfully only when the hlt_counter in cpu_idle (arch/arm/kernel/process.c) is true.&lt;/P&gt;&lt;P&gt;Otherwise the kernel boot hangs when it boots the CPU-2&lt;/P&gt;&lt;P&gt;......&lt;/P&gt;&lt;P&gt;CPU1: Booted secondary processor&lt;/P&gt;&lt;P&gt;CPU2: Booted secondary processor&lt;/P&gt;&lt;P&gt;CPU2: failed to come online&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However on the Sabrelite board the "hlt_counter++" addition is not needed. The kernel boots fine consistently without any modification.&lt;/P&gt;&lt;P&gt;I'm wondering why this condition is prevalent.&amp;nbsp; By adding this fix and going ahead, I notice that the temperature of the processor shoots very sharply (while in sabrelite this is not the case).&lt;/P&gt;&lt;P&gt;Any inputs to identify the cause and fix the same will be appreciated.&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Karthikeyan.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----&lt;/P&gt;&lt;P&gt;Other details,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Processor - imx6Q &lt;SPAN style="text-decoration: underline;"&gt;&lt;STRONG&gt;Rev1.2&lt;/STRONG&gt;&lt;/SPAN&gt; on both custom board and Sabrelite board&lt;/P&gt;&lt;P&gt;SW - Android JB4.2.2_1.1 BSP (released in July '13) from Freescale.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The SW fix added at the moment,&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;BR /&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;lt;source/arch/arm/kernel/process.c&amp;gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;179 void cpu_idle(void)&lt;/P&gt;&lt;P&gt;180 {&lt;/P&gt;&lt;P&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; &lt;STRONG&gt;disable_hlt();&lt;/STRONG&gt; /*Added - KARS*/&lt;/P&gt;&lt;P&gt;181&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; local_fiq_enable();&lt;/P&gt;&lt;P&gt;182&lt;/P&gt;&lt;P&gt;183&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* endless idle loop with no priority at all */&lt;/P&gt;&lt;P&gt;184&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (1) {&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 Aug 2013 12:36:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-CPU-Idle/m-p/247873#M21937</guid>
      <dc:creator>kars</dc:creator>
      <dc:date>2013-08-09T12:36:58Z</dc:date>
    </item>
    <item>
      <title>Re: iMX6 - CPU Idle</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-CPU-Idle/m-p/247874#M21938</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I am not sure if that BSP version has been tested on sabre lite. For your specific product, Is it possible to test a Boundary Device BSP instead of a Freescale one?&lt;/P&gt;&lt;P&gt;&lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/EricNelson"&gt;EricNelson&lt;/A&gt;, any idea about this? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Leo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 Aug 2013 15:41:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-CPU-Idle/m-p/247874#M21938</guid>
      <dc:creator>LeonardoSandova</dc:creator>
      <dc:date>2013-08-09T15:41:41Z</dc:date>
    </item>
    <item>
      <title>Re: Re: iMX6 - CPU Idle</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-CPU-Idle/m-p/247875#M21939</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;We haven't pulled in the JB 4.2.2_1.1 patches yet, and &lt;A href="https://github.com/boundarydevices/linux-imx6/blob/jb4.2.2_1.0.0-ga/arch/arm/kernel/process.c#L220"&gt;don't yet have that in our kernel&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My guess is that the reason this isn't needed for SABRE Lite is that we're supplying the kernel parameter &lt;TT&gt;enable_wait_mode=off&lt;/TT&gt; because we don't get woken up properly from some interrupt sources (ethernet is a known issue).&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 Aug 2013 15:49:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-CPU-Idle/m-p/247875#M21939</guid>
      <dc:creator>EricNelson</dc:creator>
      <dc:date>2013-08-09T15:49:46Z</dc:date>
    </item>
    <item>
      <title>Re: iMX6 - CPU Idle</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-CPU-Idle/m-p/247876#M21940</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks Eric, for the thought on enable_wait_mode.&lt;/P&gt;&lt;P&gt;By not using "enable_wait_mode=off" in the booargs of the custom board, I could get over the CPU online issue.&lt;/P&gt;&lt;P&gt;The kernel booting goes ahead. But this is not consistent. It hangs after a while at random places.&lt;/P&gt;&lt;P&gt;When I add the disable_hlt() in cpu_idle() as mentioned in my earlier post, the kernel boot is successfully taken over by the RFS initialization.&lt;/P&gt;&lt;P&gt;What could be the reason for these random kernel hangs?&lt;/P&gt;&lt;P&gt;I do not want to use disable_hlt() as a permanent fix as this causes the temperature shoot up drastically.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Karthikeyan.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 Aug 2013 17:20:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-CPU-Idle/m-p/247876#M21940</guid>
      <dc:creator>kars</dc:creator>
      <dc:date>2013-08-09T17:20:38Z</dc:date>
    </item>
    <item>
      <title>Re: iMX6 - CPU Idle</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-CPU-Idle/m-p/247877#M21941</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I may be related to the DDR settings you have on your u-boot. How did you set these? When kernel hangs, do you get some useful log on logcat/console?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Leo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 Aug 2013 17:32:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-CPU-Idle/m-p/247877#M21941</guid>
      <dc:creator>LeonardoSandova</dc:creator>
      <dc:date>2013-08-09T17:32:21Z</dc:date>
    </item>
    <item>
      <title>Re: iMX6 - CPU Idle</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-CPU-Idle/m-p/247878#M21942</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;If it is related to faulty DDR configuration, why should it work with the modified cpu_idle()?&lt;/P&gt;&lt;P&gt;With the added line in cpu_idle which forces hlt_counter to be true, the board always mounts RFS and goes ahead.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When the system hangs (with the unmodified cpu_idle) I do not see any kernel panic or dumps.&lt;/P&gt;&lt;P&gt;It just hangs during the boot process. The boot messages (during hang) do not give any additional info when compared to successful boot log.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Karthikeyan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 Aug 2013 18:54:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-CPU-Idle/m-p/247878#M21942</guid>
      <dc:creator>kars</dc:creator>
      <dc:date>2013-08-09T18:54:06Z</dc:date>
    </item>
    <item>
      <title>Re: Re: iMX6 - CPU Idle</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-CPU-Idle/m-p/247879#M21943</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Leo,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Why did you bring up DDR settings? &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/TroyKisky"&gt;TroyKisky&lt;/A&gt; and I have been working an issue related to the DDR settings and CPU idle on SABRE Lite/Nitrogen6x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I believe it's a different thing from what &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/karthikeyans"&gt;karthikeyans&lt;/A&gt; is reporting because all CPUs come on-line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Karthikeyan, if you'd like to test things out, we've found that &lt;A href="https://github.com/boundarydevices/u-boot-imx6/commit/6e5d4e29e3744f98e45657dcc89e27bb8d6231ba"&gt;this patch&lt;/A&gt; is necessary in one obscure case of a Timesys image with no displays active and haven't yet determined why. The patch essentially reverts &lt;A href="http://lists.denx.de/pipermail/u-boot/2013-February/145667.html"&gt;a patch provided by Benoît Thébaudeau on the U-Boot list&lt;/A&gt;.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 10 Aug 2013 16:15:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-CPU-Idle/m-p/247879#M21943</guid>
      <dc:creator>EricNelson</dc:creator>
      <dc:date>2013-08-10T16:15:37Z</dc:date>
    </item>
    <item>
      <title>Re: Re: iMX6 - CPU Idle</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-CPU-Idle/m-p/247880#M21944</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/EricNelson"&gt;EricNelson&lt;/A&gt;&lt;/P&gt;&lt;P&gt;We had a issue with a customer's board (similar to i.MX6 SabreSD) with random hangs on Android. At the end, they have to do a chip re-spin AND change its DDR settings.&amp;nbsp; BTW, what is the size of the DDR? 4G? Is it LPDDR? For this customer, we have exactly the latter configuration.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Aug 2013 15:40:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-CPU-Idle/m-p/247880#M21944</guid>
      <dc:creator>LeonardoSandova</dc:creator>
      <dc:date>2013-08-12T15:40:15Z</dc:date>
    </item>
    <item>
      <title>Re: Re: iMX6 - CPU Idle</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-CPU-Idle/m-p/247881#M21945</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Leo,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1GB/DDR3. These settings are also used in SABRE SD with main-line U-Boot, but I haven't tested to see whether that board also exhibits the symptom.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;See this patch for details.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;A href="http://git.denx.de/?p=u-boot.git;a=commitdiff;h=7c92c540754a0c3756d467a9b0695f2a40d1fe86"&gt;http://git.denx.de/?p=u-boot.git;a=commitdiff;h=7c92c540754a0c3756d467a9b0695f2a40d1fe86&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Aug 2013 15:52:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-CPU-Idle/m-p/247881#M21945</guid>
      <dc:creator>EricNelson</dc:creator>
      <dc:date>2013-08-12T15:52:56Z</dc:date>
    </item>
    <item>
      <title>Re: Re: iMX6 - CPU Idle</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-CPU-Idle/m-p/247882#M21946</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Through a lot of testing, it looks like the DDR change isn't needed. We're able to reproduce a lockup on a Timesys image using a 3.0.35_1.1.1 kernel, but nowhere else. Oddly, it shows up only when no displays are connected, and can be bypassed by adding additional CPU load to the system.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The latest Timesys image(s), using 3.0.35_4.0.0 don't exhibit the same issue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It appears that there was some form of timing bug in that image/kernel that wasn't hit with the slightly slower memory timings.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Aug 2013 18:12:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-CPU-Idle/m-p/247882#M21946</guid>
      <dc:creator>EricNelson</dc:creator>
      <dc:date>2013-08-30T18:12:21Z</dc:date>
    </item>
  </channel>
</rss>

