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.

power management - practical ideas

Guru 20755 points

Hello,

I read and re-read about Omap PM mechanism (mainly related to OMAP35X), and also about Linux PM mechanism in general.
Now, when I get to practice, i.e. implementing SW which support PM mechanism and works, I get to trouble, because there is not enough documentation on the methods when used in Linux.
OMAP TRM chapter for PM is one thing, but implement PM on linux is another thing.
The following wiki http://processors.wiki.ti.com/index.php/UserGuidePowerMgmt_PSP_04.02.00.07
give some pointers to some mechanism used in Linux: smartReflex, cpuidle, cpufreq, which are automatic, and suspend/resume, which is user explicit, but there is still missing info,which I did not find yet answers:

1. How do we test the correctness and effectiveness each of the above method (for example in smartReflex, how do we know that it works and the PMIC communicates correctly in i2c with OMAP).

2. Poweroff domains and devices on board in runtime - this is practical thing need to be done in PM, and our requirements demands that whenever the system gets into idle loop, than it will turn off devices in SOC and on board.

As to problem 2 above, Is it best to try to figure out where the kernel gets into idle loop and then just turning off certain domains (instead of trying to figure out how to register or use any of linux supposed runtime PM mechanism ?)

I wonder if anyone worked with OMAP PM with Linux, so that he can shed some light on these issues. The TRM does not resolve it, unless it is best to use the method of register setting whenever we get into idle loop as I mentioned above.

Thanks a lot,

Ran 

  • Hi Ran,

    I'm afraid that the documents and articles about the SmartReflex are not enough comprehensive but I found one more article about SmartReflex™ Power and Performance Management Technologies:

    http://www.ti.com/lit/wp/swpy015a/swpy015a.pdf

    About testing the correctness of the commands interchanged between the OMAP and the PMIC start with dumping the I2C communication.

    I suggest you to view the linux/arch/arm/kernel/process.c file to clarify the mechanism of the functions related to the cpu idle state and endless idle loop.

    BR

    Tsvetolin Shulev

  • Hi Tvestolin,

    Thanks for that. By the way, are you familiar with any i2c dump utility/capability on kernel/linux ?
    Another thing, Do you think that it is possible to hack into the cpuidel, and detect where it goes into and out from RETENTION and there to call the power off/on of all relevant devices ?

    Thanks,

    Ran

  • Hi Ran,

    About I2C dumping I think for direct dumping in the console by printk where it is possible but in come cases it should be better to dump to some memory buffer and when is possible to print the whole buffer.

    BR

    Tsvetolin Shulev