From: Doug S. <do...@pr...> - 2005-12-16 17:13:55
|
So does this mean that by default, after a certain amount of inactivity, the core processor clock is being stopped? And if so, I wonder what are the specific conditions that trigger the idle call? As soon as there is nothing scheduled? It looks like power consumption goes down to somewhere around 100mA in idle mode. If the CPU is totally not required until a specific time, sleep mode would save a lot more battery life. But sleep mode appears to require a hardware reset for wakeup. If I needed the core to sleep until 3AM I'd probably have a microcontroller with RTC wake up the PXA255. -- Doug Dave Hylands wrote: >Yeah - so the linux idle process can be found in >arch/arm/kernel/process.c and is called cpu_idle(). It in turns call >arch_idle (through the default_idle function) which is mapped to >cpu_do_idle in include/asm/arch/system.h > >cpu_do_idle gets mapped to cpu_xscale_do_idle by >include/asm/cpu-single.h and include/asm/proc-fns.h > >cpu_xscale_do_idle (in arch/arm/mm/proc-xscale.S has this: > >/* > * cpu_xscale_do_idle() > * > * Cause the processor to idle > * > * For now we do nothing but go to idle mode for every case > * > * XScale supports clock switching, but using idle mode support > * allows external hardware to react to system state changes. > */ > .align 5 > >ENTRY(cpu_xscale_do_idle) > mov r0, #1 > mcr p14, 0, r0, c7, c0, 0 @ Go to IDLE > mov pc, lr > >I'd need to lookup the mcr p14 instruction to see exactly what it does. > |