Lower CPU frequency on imx8mq

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

Lower CPU frequency on imx8mq

跳至解决方案
6,892 次查看
daisukeyoshinar
Contributor II

Hello,

I am using the latest release 4.9.98_2.0.0 on iMX 8M Quad EVK.

I want to set the CPU frequency lower than 1.0GHz.

I tried to change the dts file with i.MX_Linux Reference_Manual.pdf, but there are 4 operational points already.

~/imx-yocto-bsp/build-xwayland/tmp/work-shared/imx8mqevk/kernel-source/arch/arm64/boot/dts/freescale/fsl-imx8mq-evk.dts
&A53_0 {
   operating-points = <
   /* kHz uV */
   1500000 1000000
   1300000 1000000
   1000000 900000
   800000 900000
   >;
   dc-supply = <&reg_gpio_dvfs>;
};

I confirmed that the EVK board is using this dts.
root@imx8mqevk:/proc/device-tree# strings compatible
fsl,imx8mq-evk
fsl,imx8mq


The operating point is displayed as follows.
root@imx8mqevk:/proc/device-tree/cpus/cpu@0# hexdump -C operating-points
00000000 00 16 e3 60 00 0f 42 40 00 13 d6 20 00 0f 42 40 |...`..B@... ..B@|
00000010 00 0f 42 40 00 0d bb a0 00 0c 35 00 00 0d bb a0 |..B@......5.....|

0x16e360 -> 1500000(1.5GHz)
0x13d620 -> 1300000(1.3GHz)
0xf4240 -> 1000000(1.0GHz)
0xdbba0 -> 900000(900MHz)
0xc3500 -> 800000(800MHz)


However, only two operating points in the governor are displayed.
root@imx8mqevk:/sys/devices/system/cpu/cpu0/cpufreq# cat scaling_available_frequencies
1000000 1500000

Also, the minimum clock cannot be set lower than 1.0GHz.

Where should I change to add an operating point?

Best regards,
Yoshinari.

标记 (2)
0 项奖励
回复
1 解答
6,487 次查看
igorpadykov
NXP Employee
NXP Employee

Hi Yoshinari

these operating points are for both industrial and consumer gardes, while

consumer grade supports only 1.GHz, 1.5GHz according to Table 7. Operating ranges

i.MX 8M Dual / 8M QuadLite / 8M Quad Applications Processors Data Sheet for Consumer Products

industrial grade supports only 800MHz, 1.3GHz according to Table 7. Operating ranges

i.MX 8M Dual / 8M QuadLite / 8M Quad Applications Processors Data Sheet for Industrial Products

>Where should I change to add an operating point?

for other frequencies one will have to modify cpufreq driver described in sect.2.3.3.2.1 Source Code Structure

attached Linux Manual.

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

在原帖中查看解决方案

0 项奖励
回复
3 回复数
6,488 次查看
igorpadykov
NXP Employee
NXP Employee

Hi Yoshinari

these operating points are for both industrial and consumer gardes, while

consumer grade supports only 1.GHz, 1.5GHz according to Table 7. Operating ranges

i.MX 8M Dual / 8M QuadLite / 8M Quad Applications Processors Data Sheet for Consumer Products

industrial grade supports only 800MHz, 1.3GHz according to Table 7. Operating ranges

i.MX 8M Dual / 8M QuadLite / 8M Quad Applications Processors Data Sheet for Industrial Products

>Where should I change to add an operating point?

for other frequencies one will have to modify cpufreq driver described in sect.2.3.3.2.1 Source Code Structure

attached Linux Manual.

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 项奖励
回复
4,733 次查看
yhegde
Contributor I

Hi @igorpadykov,

Are you saying that it is possible to create our own operating points which can be of a frequency below the frequencies mentioned in the data sheet by adding to the OPP tables in the correct dtsi file in arch/arm/boot/dts? Or do we modify the actual NXP cpufreq driver in the correct imx*-cpufreq.c file to create some custom frequency? Is that even possible? For example, if on my i.MX8DXP the only available frequencies in cpufreq are 900000 kHZ and 1200000 kHz, how can I create a setting to go even lower?

0 项奖励
回复
6,487 次查看
daisukeyoshinar
Contributor II

Thank you for quick reply.

The operating point was disabled by grade.
/imx8mqevk/kernel-source/drivers/soc/imx/soc-imx8.c

After changing, it became 800MHz.

Best regards,
Daisuke Yoshinari

0 项奖励
回复