This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Idle States (C-States)

Other Parts Discussed in Thread: OMAP3530

Hi, I'm working on measuring the power consumption of an OMAP3530 (BeagleBoard) in different cpu active and cpu idle states. I am not able to get Linux kernel support for c-states however. I've tried the latest version of the Angstrom distribution and that has a somewhat working CPUIdle subsystem. It is able to go down to the first idle C-state but no further even though it recognizes 7 possible c-states. 

Doas anyone know a kernel version, branch, or configuration that has good support for c-states? Does TI provide a sample Linux kernel with software support for the chip's features?

Thanks! Any ideas or resources are greatly appreciated!

  • Victor,

    I faced a similar problem of not entering any states deeper than the first ( with 2.6.37). I found that this was getting disallowed because that the uart time-out values were zeros ( which means no timeout).

    I put finite values ( small integers)  into /sys/devices/platform/omap/omap_uart.[0-3]/sleep_timeout and it worked.

    This might help.

     

    -Abhilash

  • Hi Abhilash,

     

    Thanks for the tip! I actually didn't have a /sys/devices/platform/omap/omap_uart.[0-3]/sleep_timeout but I did the following:

     

    echo 1 > /debug/pm_debug/sleep_while_idle

    echo 1 > /debug/pm_debug/enable_off_mode

    echo 1 > /debug/pm_debug/voltage_off_while_idle

     

    And the board got all the way down to C3! While not the lowest state, its still pretty good.

     

    If you don't mind my asking, I am a bit curious about your setup. The 2.6.37 kernel is from the OMAP branch? Is this up and running on a BeagleBoard? Do you use some pre-build distro or roll your own?

     

    Thanks again!

    Victor Marmol

  • Hi,

    I also want to change the work state in the cpuidle driver that runs in a OMAP3 BeagleBoard C4, but I have the same problem and it's that I only can change from state0 to state1 and vice versa. I have tried the changes proposed in previous posts, but my problem persists. The OS used is an Angstrom distribution with a Linux kernel version 2.6.32. Someone has any idea about what is the cause of this problem and how solved it?

    Thanks!!

    Enrique Contreras