Lower CPU frequency on imx8mq

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

Lower CPU frequency on imx8mq

Jump to solution
6,492 Views
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.

Tags (2)
0 Kudos
Reply
1 Solution
6,087 Views
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!
-----------------------------------------------------------------------------------------------------------------------

View solution in original post

0 Kudos
Reply
3 Replies
6,088 Views
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 Kudos
Reply
4,333 Views
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 Kudos
Reply
6,087 Views
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 Kudos
Reply