AnsweredAssumed Answered

iMX6 - CPU Idle

Question asked by Karthikeyan Subramanian on Aug 9, 2013
Latest reply on Aug 30, 2013 by Eric Nelson

Hello,

 

In our custom board which is designed more closer to Sabrelite, I notice the following,

The Linux kernel boots successfully only when the hlt_counter in cpu_idle (arch/arm/kernel/process.c) is true.

Otherwise the kernel boot hangs when it boots the CPU-2

......

CPU1: Booted secondary processor

CPU2: Booted secondary processor

CPU2: failed to come online

 

However on the Sabrelite board the "hlt_counter++" addition is not needed. The kernel boots fine consistently without any modification.

I'm wondering why this condition is prevalent.  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).

Any inputs to identify the cause and fix the same will be appreciated.

Thanks.

 

Regards,

Karthikeyan.

 

-----

Other details,

 

Processor - imx6Q Rev1.2 on both custom board and Sabrelite board

SW - Android JB4.2.2_1.1 BSP (released in July '13) from Freescale.

 

The SW fix added at the moment,


<source/arch/arm/kernel/process.c>

179 void cpu_idle(void)

180 {

              disable_hlt(); /*Added - KARS*/

181         local_fiq_enable();

182

183         /* endless idle loop with no priority at all */

184         while (1) {

Outcomes