<IMX8MP OPP> reduce the power consumption

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

<IMX8MP OPP> reduce the power consumption

Jump to solution
949 Views
mengfei
Contributor III

I want to reduce the power consumption of the i.MX8MP without shutting down the cores. To achieve this, I believe there are two ways:

  1. Lowering the voltage
  2. Lowering the frequency

I noticed that the i.MX8MP.dtsi file provides three OPP (Operating Performance Points) related nodes: 1800000, 1600000, and 1200000. Since we are using an industrial-grade SoC, when I check the available CPU frequencies using the 'cat sys/xxx/scaling_available_freq' command, I only see two options, 1600000 and 1200000. Now, I want to reduce the CPU frequency as much as possible, so I need to create new OPP nodes.

I have a few questions:

  1. The datasheet mentions that the ARM_PLL range is 800MHz to 1.6GHz. Does this mean that the lowest OPP node can only be 800MHz?
  2. The datasheet only mentions voltage values for 1.2GHz (0.85V) and 1.6GHz (1.6V), but there is no table for other frequencies. Can you provide the voltage values for other frequencies if available?
  3. The OPP nodes have an 'opp-supported-hw' attribute. What does this attribute mean? Could you provide a table mapping 'cpufreq,' 'voltage,' and 'opp-supported-hw' values?

I modified the device tree by adding an 800MHz node. Since I don't know the voltage value, I used 0.85V, and I also used the 'opp-supported-hw' value from the 1200000 node. While I can see the added frequency in '/sys/xxx/cpux/freq/xxx' and set it successfully, I feel like it might be a coincidence. I still want to find the most accurate way to set this up. Even though I was able to set the frequency successfully, power consumption is closely related to voltage. It seems that just lowering the frequency without reducing the voltage doesn't significantly reduce power consumption. So, please provide the most optimal solution.

a53_opp_table: opp-table {
compatible = "operating-points-v2";
opp-shared;

++ opp-800000000 {
++ opp-hz = /bits/ 64 <800000000>;
++ opp-microvolt = <850000>;
++ opp-supported-hw = <0x8a0>, <0x7>;
++ clock-latency-ns = <150000>;
++ opp-suspend;
++ };

opp-1200000000 {
opp-hz = /bits/ 64 <1200000000>;
opp-microvolt = <850000>;
opp-supported-hw = <0x8a0>, <0x7>;
clock-latency-ns = <150000>;
opp-suspend;
};

opp-1600000000 {
opp-hz = /bits/ 64 <1600000000>;
opp-microvolt = <950000>;
opp-supported-hw = <0xa0>, <0x7>;
clock-latency-ns = <150000>;
opp-suspend;
};

0 Kudos
Reply
1 Solution
882 Views
Rita_Wang
NXP TechSupport
NXP TechSupport

电压值最小是0.85V,还有软件上默认是支持 Overdrive模式下的,你可以考虑用Nominal mode模式,而且可以关掉一些不用的模块,来降低功耗。

View solution in original post

0 Kudos
Reply
4 Replies
907 Views
Rita_Wang
NXP TechSupport
NXP TechSupport
  1. NO. You can set more frequency.
  2. You can add the other values.
  3. This parameter can be set the same as others frequency and that there is no problem
0 Kudos
Reply
896 Views
mengfei
Contributor III

The content I modified in the device tree above achieved a CPU running at 800Mhz, but using device measurements, it was found that the power consumption did not change much. The 1.6Ghz was reduced to 800Mhz for operation, and the voltage only decreased by 0.1V (0.95V ->0.85V). The current reduction was also very small. If we want to set it to 800Mhz and 400Mhz, what is the recommended voltage value? If you don't have any relevant data, please let me know directly so that I can conduct my own tests and find the best value

我上面在设备树修改的内容实现了cpu在800Mhz运行,但是用设备测量发现功耗变化不大,1.6Ghz降为800Mhz运行,电压只下降了0.1V(0.95V -> 0.85V),电流降低的幅度也很小,如果要设置为800Mhz 400Mhz,你们推荐的电压值是多少?如果你们也没有相关数据,请直接告诉我,我也好赶紧自己做测试方案找最佳值

0 Kudos
Reply
883 Views
Rita_Wang
NXP TechSupport
NXP TechSupport

电压值最小是0.85V,还有软件上默认是支持 Overdrive模式下的,你可以考虑用Nominal mode模式,而且可以关掉一些不用的模块,来降低功耗。

0 Kudos
Reply
897 Views
mengfei
Contributor III

The data manual states that the recommended voltage value for 1.2Ghz operation is 0.85V, but it does not mention the voltage required for stable operation at 800mhz. I would like to know if you have a recommended voltage value for stable operation at 800MHz or lower frequencies. I can certainly set other voltages in the device tree, but I would like to know how much voltage should be set to ensure stable operation at other lower frequencies without any abnormalities. This voltage should be as low as possible because I need to achieve low power consumption。

数据手册中说1.2Ghz运行时推荐电压值是0.85V,但是数据手册中没有提800mhz稳定运行所需要的电压,我想知道你们是不是有在800Mhz或者更低的频率稳定运行的推荐电压值。我当然可以在设备树中设置其他电压,但是我想知道能够稳定运行在其他较低频率而不出现异常应该设置多少电压,这个电压应该尽可能低,因为我需要实现低功耗。

0 Kudos
Reply