Topic: Throttling CPU

I read on this post about how to throttle the CPU down to 64MHz (for saving power when not used):

http://forum.chumby.com/viewtopic.php?id=4533

ie

echo 64000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq # Set minimum CPU speed to 64 MHz
echo 64000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed # Set CPU speed to 64 MHz

This worked great on a Chumby One board I had, but caused an Insignia Infocast board to hang. At that time I figured it was due to some hardware difference between the Chumby One and the Infocast.

Recently however I got a chance to try this on 4 other Chumby One and Infocast boards (2 each) and to my surprise I discovered that all of them hang when throttled this way! So my original Chumby One board is the only board where this currently works. (I verified that it does actually throttle the CPU down to 64MHz on that board).

Does anyone have any idea why?

Re: Throttling CPU

There are actually four different versions of the Falconwing motherboard - there are two versions for the chumby-branded unit, and one version for the Insiginia 3.5" and one for the "hacker" board.  You can tell by the hardware version ID in the "chumby info" screen.  I don't know why some units would support this mode and not others, however, it's not something we QA'd since it wasn't a supported feature of the product.

Re: Throttling CPU

Thanks for that info; I was not aware there were two Chumby One boards. Looking at the hardware IDs in the Chumby Info screen it appears that the only board that doesn't hang when throttling the CPU is "10.6". The others are either 10.7 or 10.8.

I also noticed that the bootloader prints the minor number of the hardware version in hex on powerup. Is there a way to programatically determine this ID at runtime (eg: through regutil?). I would like to be able to skip the throttling on boards where it doesn't work.

Re: Throttling CPU

chumby_version -h

It's a shell script that you can look at: /usr/chumby/scripts/chumby_version

It uses a binary called "cpi.sh" that takes commands in XML format to extract information from the "crypto" processor, which knows the hardware version information.