DVFS on i.MX 8M Plus Banner image

DVFS Support for a wide range of CPU Frequencies on the i.MX 8M Plus System on Module


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:

  • Energy Efficiency: Reduces power consumption, extending battery life in portable devices.
  • Thermal Management: Lowers heat generation, which is crucial for maintaining device reliability and performance.
  • Performance Optimization: Balances performance and power usage, providing necessary computational power while conserving energy.

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.

DVFS Flow chart

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 { 
                compatible = “operating-points-v2”; 
                opp-shared; 

                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: 

  • Use the maximum frequency:

echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 

  • Use the current frequency to be the constant frequency:

echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

  • The following two commands set the scaling governor to a specified frequency if supported. If the frequency is not supported, the closest supported frequency is used:

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 Application image
  • Industrial Automation: Optimizing power consumption without compromising on performance is crucial in industrial automation applications where reliability and efficiency are paramount.
  • Automotive Systems: In automotive applications, managing heat dissipation is critical to ensure stable operation in varying environmental conditions.
  • Consumer Electronics: Mobile devices and smart appliances benefit from DVFS by extending battery life and improving user experience through efficient power management.

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.

Copyright © 2022 iWave Systems Technologies Pvt. Ltd.