Please fill in the form and we will get back to you soon!
We appreciate you contacting iWave.
Our representative will get in touch with you soon!
We appreciate you contacting iWave.
Our representative will get in touch with you soon!
Thank you for subscribing to our newsletter!
Dynamic Voltage and Frequency Scaling (DVFS) is a power management technique that dynamically adjusts a processor’s voltage and frequency based on workload demands in embedded systems. Lowering the frequency reduces power consumption and heat generation, which is crucial for battery-operated and thermally constrained environments. Adjusting the voltage in tandem with the frequency ensures that the processor operates reliably across different performance states. Therefore, it offers:
This article explores the implementation of DVFS on the i.MX 8M Plus System on Module (SoM), emphasizing its significance, operation, and the steps required to utilize this feature for achieving optimal performance and power efficiency.
Implementing DVFS on i.MX 8M Plus SoM
The i.MX 8M Plus platform supports DVFS through integrated power management units that control voltage regulators and clock sources. The CPU’s operating points, known as Operating Performance Points (OPPs), define specific voltage and frequency combinations that the system can utilize.
Implementing DVFS on the i.MX 8M Plus involves configuring the device tree source (DTS) file, which describes the hardware configuration to the Kernel. This file specifies key settings such as regulator control for voltage levels and operating points for CPU cores. For example, adjustments to the PLL (Phase-Locked Loop) settings in “clk-pll14xx.c” can define various frequency-voltage pairs to suit different operational states of the processor.
i.MX 8M Plus System on Module Overview
The i.MX 8M Plus SoM is based on the NXP i.MX 8M Plus applications processor. It includes a powerful Arm Cortex-A53 processor capable of running up to 1.6GHz, along with a Cortex-M7 core for real-time processing, and is integrated with an NPU of 2.3TOPS that greatly accelerates machine learning inference. The SoM is equipped with a range of multimedia, connectivity, and AI capabilities, making it ideal for a broad range of applications, from industrial automation to consumer electronics.
i.MX 8M Plus OSM SoM supports Wi-Fi 6 and Bluetooth 5.0 wireless options to connect to external devices to send data directly from the site, while a pair of CAN-FD and ethernet connectors enables deterministic networking options. It includes USB 3.0 and USB 2.0 ports, providing flexible peripheral connectivity options. Additionally, the system is equipped with a PCIe 3.0 slot, dual LVDS interfaces, HDMI 2.0a TX for high-definition video output, and multiple MIPI interfaces, including 2 MIPI CSI and 1 MIPI DSI, supporting advanced imaging and display solutions.
How to reduce CPU frequency on i.MX 8M Plus
Reducing the CPU frequency on the i.MX8MP involves modifying the operating points table (opp-table) in the DTS file. Below are snippets of code that illustrate how different CPU frequencies can be defined:
a53_opp_table: opp-table { opp-100000000 { opp-hz = /bits/ 64 <100000000>; opp-microvolt = <850000>; opp-supported-hw = <0x8a0>, <0x7>; clock-latency-ns = <150000>; opp-suspend; }; opp-200000000 { opp-hz = /bits/ 64 <200000000>; opp-microvolt = <850000>; opp-supported-hw = <0x8a0>, <0x7>; clock-latency-ns = <150000>; opp-suspend; }; opp-800000000 { opp-hz = /bits/ 64 <800000000>; opp-microvolt = <850000>; opp-supported-hw = <0x8a0>, <0x7>; clock-latency-ns = <150000>; opp-suspend; }; opp-1000000000 { opp-hz = /bits/ 64 <1000000000>; opp-microvolt = <850000>; opp-supported-hw = <0x8a0>, <0x7>; clock-latency-ns = <150000>; opp-suspend; }; Figure 1: Part of code to define different CPU frequencies on i.MX 8M Plus |
These commands set a constant CPU frequency:
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor echo <frequency> > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed |
These entries specify frequency-voltage pairs for different operational states, allowing the system to dynamically adjust performance based on workload requirements.
Symbol | Min | Typ | Max | Unit | Comment |
VDD_ARM | 0.805 | 0.850 | 0.950 | V | Power supply for Cortex®-A53, nominal mode, 1.2 GHz |
0.900 | 0.950 | 1.000 | V | Power supply for Cortex®-A53, overdrive mode, 1.6 GHz |
Applications of DVFS Implementation
DVFS is a vital feature for the i.MX 8M Plus SoM, provides a balance between performance and power consumption. By understanding the hardware capabilities and configuring the software stack correctly, developers can leverage DVFS to enhance the efficiency of their applications. This not only improves the user experience but also extends the longevity and reliability of devices powered by the i.MX 8M Plus SoM.
For more information, please contact mktg@iwave-global.com.
iWave is an embedded systems engineering and solutions company, designing solutions for the Industrial, Medical, Automotive and Avionics vertical markets, and building on our core competency of embedded expertise since 1999. Read More…
Newsletter
Copyright © 2022 iWave Systems Technologies Pvt. Ltd.
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.