- Table of contents
- Example SOM Clock Speeds
Example SOM Clock Speeds¶
Objective¶
The AM57xx has several cores and many of them can run at different frequencies. This provides a way to balance between performance and consumption of power and generation of heat.
The goal of this wiki page is to:
- List which core frequencies can be changed.
- Demonstrate how to view the current core frequencies.
- Walk-through how to change core frequencies using menuconfig.
- How to access the CPU governors to scale the CPU frequencies depending on the system load.
Prerequisites¶
- Be familiar with how to build u-boot as described in Building U-Boot for MitySOM-AM57X
Steps¶
Changeable Core Clock Frequencies¶
The clock frequencies of the different cores can be changed from U-Boot through menuconfig.
The following core frequencies can be modified:
Freq Setting | DSPEVE | IVA | GPU | MPU |
OPP_NOM | 600 MHz | 388 MHz | 425 MHz | 1000 MHz |
OPP_OD | 700 MHz | 430 MHz | 500 MHz | N/A |
OPP_HIGH | 750 MHz | 532 MHz | 532 MHz | N/A |
Default | OPP_HIGH | OPP_NOM | OPP_NOM | OPP_NOM |
Check current core clock frequencies¶
You can check the core clock frequencies by running the following command (omapconf show opp):
root@mitysom-am57x:~# omapconf show opp OMAPCONF (rev v1.74-1-g40ab0a2 built Fri Jan 22 21:22:26 UTC 2021) HW Platform: Generic DRA74X (Flattened Device Tree) DRA75X ES2.0 GP Device (STANDARD performance (1.5GHz)) TPS659038 ES2.2 SW Build Details: Build: Version: _____ _____ _ _ Kernel: Version: 4.19.94-g78f5a55524 Author: oe-user@oe-host Toolchain: gcc version 8.3.0 (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36) Type: #1 SMP PREEMPT Date: Fri Mar 19 14:50:53 UTC 2021 |-----------------------------------------------------------------------------------| | | Temperature | Voltage | Frequency | OPerating Point | |-----------------------------------------------------------------------------------| | VDD_CORE / VDD_CORE0 | 64C / 147F | 1.150 V | | NOM | | L3 | | | 266 MHz | | | DMM | | | 266 MHz | | | EMIF1 | | | 266 MHz | | | EMIF2 | | | 266 MHz | | | LP-DDR2 | | | 532 MHz | | | L4 | | | 266 MHz | | | IPU1 | | | 425 MHz | | | Cortex-M4 Cores | | | 212 MHz | | | IPU2 | | | (425 MHz) (1) | | | Cortex-M4 Cores | | | (212 MHz) (1) | | | DSS | | | (192 MHz) (1) | | | BB2D | | | (354 MHz) (1) | | | | | | | | | VDD_MPU / VDD_CORE1 | 65C / 149F | 1.090 V | | NOM | | MPU (CPU1 ON) | | | 1000 MHz | | | | | | | | | VDD_GPU / VDD_CORE2 | 65C / 149F | 1.130 V | | NOM | | GPU | | | 425 MHz | | | | | | | | | VDD_DSPEVE / VDD_CORE3 | 64C / 147F | 1.080 V | | HIGH | | DSP1 | | | (750 MHz) (1) | | | DSP2 | | | (750 MHz) (1) | | | EVE1 | | | (0 MHz) (1) | | | EVE2 | | | (0 MHz) (1) | | | | | | | | | VDD_IVA / VDD_CORE4 | 65C / 149F | 1.060 V | | NOM | | IVA | | | (388 MHz) (1) | | | | | | | | |-----------------------------------------------------------------------------------| Notes: (1) Module is disabled, rate may not be relevant.
Modifying U-Boot to change core frequency¶
The following assumes you have set up the build environment for compiling U-Boot found here: Building U-Boot for MitySOM-AM57X
To select a different core frequency, run menuconfig after you have run the defconfig setup. Below is an example after the U-Boot source has been checked out and the build environment has been set up.
$ make mitysom57xx_devkit_defconfig $ make menuconfig
In menuconfig, navigate to ARM architecture --> Voltage Domain OPP selections -->
Select one of the core frequencies you'd like to change and select the option (Example is setting DSPEVE to OPP_HIGH, which sets the DSP frequency to 750 MHz)
Exit out of menuconfig and save the changes to the config. Continue following the Building U-Boot for MitySOM-AM57X instructions to build and install the newly modified version of U-Boot.
CPU Frequencies¶
The CPUs are configured with an on-demand governor to scale the frequencies between 1GHz to 1.5GHz depending on the system load. The settings for the frequencies / governors for each CPU can be found in the following directories:
/sys/devices/system/cpu/cpu0/cpufreq /sys/devices/system/cpu/cpu1/cpufreq
Example below shows changing the CPU0 governor from ondemand to performance so that the CPU frequency will stay at 1.5GHz.
root@mitysom-am57x:~# echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
A list of available governors can be found by running the following:
root@mitysom-am57x:~# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors conservative userspace powersave ondemand performance schedutil
You can check the CPU frequency with either the command mentioned previously above (omapconf show opp) or by running the following:
root@mitysom-am57x:~# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq 1500000
NOTE Remember to apply any changes to both CPUs (cpu0 or cpu1 / if applicable).
Conclusion¶
This wiki page has done the following:
- Listed which core frequencies can be changed.
- Demonstrated how to view the current core frequencies.
- Walked-through how to change core frequencies using menuconfig.
- Described how to access the CPU governors to scale the CPU frequencies depending on the system load.
Go to top