Beagle Bone power sequencing and power states

Can the beagle bone (black/white) be powered down to the point where
only the on chip RTC continues to run? If this is the case then the
need for an external RTC would seem nil. where can I find more info
about the power sequencing of the bones? The SRM shows the order in
which the rails are sequenced but which rails are powered up and down
for various states of shutdown, sleep, and suspend, and how to reach
those states with the bone is what I'm looking for. where can I find
this info? what power states are presently supported?

Thanks,

Eric

It depends on what you plan to do with the DDR state and if you want to preserve it. I have never tired it, but it should be possible. You need to look at the datasheet for the TPS65217C for the power sequencing and power down modes available.

Gerald

on the software side of this, where might I find the code that does this now. for instance if I type shutdown at the prompt how does this actually work? is the power sequencing all in the shutdown binary, or the kernel, some of each, or where exactly? there is a shutdown command but what does it do? what does it power down? might there also be a suspend command for the beagle hardware architecture? On the other side of things when the power button is pressed I would imagine that somehow the processor gets told about this with an interrupt triggered and some snippet of code run to then move to the desired state. how does that process work?

Thanks,

Eric

on the software side of this, where might I find the code that does this now. for instance if I type shutdown at the prompt how does this actually work? is the power sequencing all in the shutdown binary, or the kernel, some of each, or where exactly? there is a shutdown command but what does it do? what does it power down? might there also be a suspend command for the beagle hardware architecture? On the other side of things when the power button is pressed I would imagine that somehow the processor gets told about this with an interrupt triggered and some snippet of code run to then move to the desired state. how does that process work?

You should really learn to use GIT.

In the kernel folder, issue the following command:

git grep tps65217

The PMU has many features, so you need to review the results and isolate the info you need. Ultimately you will find everything you need in drivers/regulators. You will find tps65217-regulator.c which is the driver for this part, but the info you need is probably in core.c.

Regards,
John

on the software side of this, where might I find the code that does this now. for instance if I type shutdown at the prompt how does this actually work? is the power sequencing all in the shutdown binary, or the kernel, some of each, or where exactly? there is a shutdown command but what does it do? what does it power down? might there also be a suspend command for the beagle hardware architecture? On the other side of things when the power button is pressed I would imagine that somehow the processor gets told about this with an interrupt triggered and some snippet of code run to then move to the desired state. how does that process work?

If you used the following command:

git grep suspend

You would find /Documentation/power folder which has several documents related to your question.

Regards,
John

on the software side of this, where might I find the code that does this now. for instance if I type shutdown at the prompt how does this actually work? is the power sequencing all in the shutdown binary, or the kernel, some of each, or where exactly? there is a shutdown command but what does it do? what does it power down? might there also be a suspend command for the beagle hardware architecture? On the other side of things when the power button is pressed I would imagine that somehow the processor gets told about this with an interrupt triggered and some snippet of code run to then move to the desired state. how does that process work?

One more thing that may help you. I find that it is helpful to use a tools to index the Linux Kernel so that you can quickly find the declaration of a function of find who references to a function. Given that Linux supports so many architectures, it is important to index only the files that are actually built for the architecture you are using. There are several tools that work such as kscope, but I tend to use eclipse because of the ease of navigating. Here are the instructions that tend to work for me.

http://wiki.eclipse.org/HowTo_use_the_CDT_to_navigate_Linux_kernel_source

Filtering the folders that have no compiled object files can be cumbersome, but I use the following command to find the folders that do have object files and then filter out all the other folders. If someone has a better solution, please share.

find . -name ".o" | grep -v “built-in.o” |grep -v “mod.o” | grep -v “gen.o” |sed s/.// |sed 's!(.)/.*!\1!’ |sort |uniq > ~/Downloads/filter.txt

I tend to add these file directly to the .cproject file.

Make sure you also add all the necessary include folders or you will get red underlines in the source code.

You can also use make cscope, which generates the files for kscope, but the latest release is just horrible. The old version V1.92 I think was much better, but it needed QT3 which isn’t supported any more.

Regards,
John

ok,

a bunch more looking has shown that it’s the pm-suspend and pm-hibernate commands are what I ought be looking at… but what power states do they bring the beaglebone to and what rails end up remaining powered or not?

Eric