I'm using the standard firmware with an OpenEmbedded filesystem on a Juno Development Platform
I believe that this early release includes no thermal protection and the CPU clock speeds are fixed and under-clocked. Currently, the SCP firmware limits the clocks to Cortex-A57 600MHz and Cortex-A53 600MHz.
The Juno Software Release Interim3 made earlier this week includes DVFS support for the CPUs with the following higher frequency operating points;
If you are using Interim3 release and have extracted the release modules.tar.bz2 on to your filesystem,
then you can have CPUFreq support.
$ lsmod | grep scpi_cpufreq
If not alredy present, try
$ modprobe scpi_cpufreq
You can read the current frequency:
$ cat /sys/devices/system/cpu/cpu<n>/cpufreq/scaling_cur_freq
where <n> is [0 - 3] for A53 and [4 - 5] for A57(you can operate on just one cpu in the cluster)
Then you can set the governor of your choice:
$ echo $governor > /sys/devices/system/cpu/cpu<n>/cpufreq/scaling_governor
where $governor can be any one in the list below
+---------------------------------------------------------------------------------------------+
| $governor-> | powersave | performance | ondemand | userspace |
+--------------------------------------------------------------------------------------------+
| A57 | 450 MHz | 1.1 GHz | 450, 800, 1100 MHz |
| A53 | 450 MHz | 850 MHz | 450, 700, 850 MHz |
In ondemand, based on the load the governor chooses the frequency, while in userspace you can select it by:
$ echo $freq_in_khz > /sys/devices/system/cpu/cpu<n>/cpufreq/scaling_setspeed
where $freq_in_khz can be obtained from the list:
$ cat /sys/devices/system/cpu/cpu<n>/cpufreq/scaling_available_frequencies
I'm not using the interm3 release yet but I will soon update to it.
Thanks.
Hi,markn,
Do you know how to change the cpufreq? do need modify SCP firmware? and, how to get the source code? @markn sudeep.holla
thanks.
Hi,
Have you tried sysfs operations to change governor and frequency mentioned
in my earlier response on this thread ?
Also you must not require any change in SCP if you are using interim3 and above
releases, but it's always good to use latest firmware binaries. If you prefer to compile
and run your own kernel and modules, you can do so from the source hosted in the
GitHub[1]
Regards,
Sudeep
[1] ARM-software/linux · GitHub
Hi Sudeep Holla,
I see, thanks a lot.
Best wishes.
hello expert,
1. # echo 800000 > /scaling_setspeed
2. # cat /scaling_cur_cpufreq
# 850000
No matter scaling_governor is ondemand or userspace, this still the same.
that is i cannot fixed cpufreq at 800MHz, what is the correct operation?
Which core are you trying on ?
The list is as follows:
A57 : 450, 800, 1100 MHz
A53 : 450, 700, 850 MHz
So if you try 800MHz on A53, it choose closer option to that which is 850MHz.