2008-05-22 12:31:20     Power Managment - Active Mode

Document created by Aaronwu Employee on Aug 6, 2013
Version 1Show Document
  • View in full screen mode

2008-05-22 12:31:20     Power Managment - Active Mode


Message: 56155   




Has any work been put into implementing the "active" power managment  mode for the blackfin?  Deep Sleep and Sleep seem to work great.


Also, has anyone setup wakeup from deep sleep via a RTC interrupt?


I didn't see anything posted for either after a search.






2008-05-22 14:11:57     Re: Power Managment - Active Mode

Mike Frysinger (UNITED STATES)

Message: 56156   


waking up from RTC works today and has worked for quite a while now ... it works on the Blackfin the same way it works everywhere else


simply enable the rtc as a wake up source, set the rtc alram timer, and then put the system into sleep ... or just use the rtcwake busybox applet




2008-05-22 20:16:36     Re: Power Managment - Active Mode

Mike Frysinger (UNITED STATES)

Message: 56160   


i just wrote this document ... hopefully you find it useful:





2008-05-23 11:00:18     Re: Power Managment - Active Mode


Message: 56217   




Adding rtcwake to busybox and running it with:


rtcwake -d /dev/rtc0 -s (time) -m 'standby'


works great.






As to my other question, this might be helpful for other folks.


A colleage and I are working on cpu and voltage scaling for the blackfin.  He's got a working driver now that will scale to three dividers (1, 2 and 4) and voltage scaling that I believe can go to any possible setting valid to those frequencies.


The reason I asked about Active Mode is we want to expand the driver so we can chanage SCLK as well.  This should enable the driver to take the cpu down to 12Mhz , 6Mhz, 3Mhz and so on.  As we are changing SCLK the DDR ram will need to be reconfigured.


The approach I'm taking with this is to:


1. Somehow temporarily suspend all dma transfers (looking into this)


2. Put the DDR in self refresh (already in dpmc.S)


3. Update PPL_DIV and PLL_CTL


4. Take DDR out of self refresh


5. Somehow resume all dma transfers




With 2 through 4 being run in L1 memory.   Does this seem like it will work?






2008-05-23 13:46:49     Re: Power Managment - Active Mode


Message: 56220   




Michael already has alot of this in trunk. (but is out until next week, so he will have to answer then).


Changing SCLK is difficult now, since it is what drives everything else...




Imagine trying to put yourself in a lower power mode (and slowing down SCLK), and trying to wake from an external event, like a UART character. When changing SCLK, you just corrupted the incoming character.


If you are playing audio when you want to modify SCLK - it also makes it pretty difficult/impossible (without turning things off, changing SCLK, and then turning things back on). - so it also requires changes to **every** driver in the system.


This is why we have not put this in trunk yet.






2008-05-23 15:45:52     Re: Power Managment - Active Mode

Mike Frysinger (UNITED STATES)

Message: 56226   


if you search the forum, someone else was looking at this ... and as Robin indicated, the CCLK variation should already be in trunk and quite usable


for SCLK changing, you'll need a (0): create a notifier list and have all devices that are based on SCLK subscribe to the notifier list and you'll need a (6): notify everyone on the notifier list to update their MMRs


but this is problematic for active devices as Robin indicated, and there is literally no way to account for it in software ... the guy designing the system has to be aware of it and account someway ... for the UART, you could require CTS/RTS on the UART to hold off any incoming bytes ...