Core Clock When CPU_FREQ is Disabled in i.MX8

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

Core Clock When CPU_FREQ is Disabled in i.MX8

Jump to solution
1,650 Views
starface42
Contributor II

Hello,

I am currently using the i.MX8QM and I'm planning to disable CPU_FREQ in the kernel configuration.

I would like to know how this affects the core clock settings, especially for the A53 and A72 cores.

I've noticed that when CPU_FREQ is enabled, the following clock speeds are supported:

For A53: 600 MHz 896 MHz 1.10 GHz 1.20 GHz

For A72: 600 MHz 1.06 GHz 1.30 GHz 1.60 GHz

 

However, tools like cpufreq-info are not helpful when CPU_FREQ is disabled.

Could you provide information on how the core clocks are set and operated in this scenario?

 

Thank you.

0 Kudos
Reply
1 Solution
1,634 Views
Rita_Wang
NXP TechSupport
NXP TechSupport

Which version BSP are you using? You can refer to the section in the  2.5.3 CPU Frequency Scaling (CPUFREQ) of the document i.MX_Linux_Reference_Manual.pdf.

https://www.nxp.com/design/software/embedded-software/i-mx-software/embedded-linux-for-i-mx-applicat...

You can download here.

If you only want to use one fixed frequency you can remove others values here:

https://github.com/nxp-imx/linux-imx/blob/lf-6.1.y/arch/arm64/boot/dts/freescale/imx8qm.dtsi

In the opp-table:

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

opp-600000000 {
opp-hz = /bits/ 64 <600000000>;
opp-microvolt = <900000>;
clock-latency-ns = <150000>;
};

opp-896000000 {
opp-hz = /bits/ 64 <896000000>;
opp-microvolt = <1000000>;
clock-latency-ns = <150000>;
};

opp-1104000000 {
opp-hz = /bits/ 64 <1104000000>;
opp-microvolt = <1100000>;
clock-latency-ns = <150000>;
};

opp-1200000000 {
opp-hz = /bits/ 64 <1200000000>;
opp-microvolt = <1100000>;
clock-latency-ns = <150000>;
opp-suspend;
};
};

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

opp-600000000 {
opp-hz = /bits/ 64 <600000000>;
opp-microvolt = <1000000>;
clock-latency-ns = <150000>;
};

opp-1056000000 {
opp-hz = /bits/ 64 <1056000000>;
opp-microvolt = <1000000>;
clock-latency-ns = <150000>;
};

opp-1296000000 {
opp-hz = /bits/ 64 <1296000000>;
opp-microvolt = <1100000>;
clock-latency-ns = <150000>;
};

opp-1596000000 {
opp-hz = /bits/ 64 <1596000000>;
opp-microvolt = <1100000>;
clock-latency-ns = <150000>;
opp-suspend;
};
};

View solution in original post

4 Replies
1,600 Views
starface42
Contributor II

Hello, Rita-Wang

Thank you for the information.

It seems that I can use a fixed core clock by referring to the dts file you mentioned.

Thank you!

1,595 Views
Rita_Wang
NXP TechSupport
NXP TechSupport

Good news it can works.

You are welcome.

Wish you have a nice day

0 Kudos
Reply
1,633 Views
Rita_Wang
NXP TechSupport
NXP TechSupport

Any questions contact us freely.

0 Kudos
Reply
1,635 Views
Rita_Wang
NXP TechSupport
NXP TechSupport

Which version BSP are you using? You can refer to the section in the  2.5.3 CPU Frequency Scaling (CPUFREQ) of the document i.MX_Linux_Reference_Manual.pdf.

https://www.nxp.com/design/software/embedded-software/i-mx-software/embedded-linux-for-i-mx-applicat...

You can download here.

If you only want to use one fixed frequency you can remove others values here:

https://github.com/nxp-imx/linux-imx/blob/lf-6.1.y/arch/arm64/boot/dts/freescale/imx8qm.dtsi

In the opp-table:

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

opp-600000000 {
opp-hz = /bits/ 64 <600000000>;
opp-microvolt = <900000>;
clock-latency-ns = <150000>;
};

opp-896000000 {
opp-hz = /bits/ 64 <896000000>;
opp-microvolt = <1000000>;
clock-latency-ns = <150000>;
};

opp-1104000000 {
opp-hz = /bits/ 64 <1104000000>;
opp-microvolt = <1100000>;
clock-latency-ns = <150000>;
};

opp-1200000000 {
opp-hz = /bits/ 64 <1200000000>;
opp-microvolt = <1100000>;
clock-latency-ns = <150000>;
opp-suspend;
};
};

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

opp-600000000 {
opp-hz = /bits/ 64 <600000000>;
opp-microvolt = <1000000>;
clock-latency-ns = <150000>;
};

opp-1056000000 {
opp-hz = /bits/ 64 <1056000000>;
opp-microvolt = <1000000>;
clock-latency-ns = <150000>;
};

opp-1296000000 {
opp-hz = /bits/ 64 <1296000000>;
opp-microvolt = <1100000>;
clock-latency-ns = <150000>;
};

opp-1596000000 {
opp-hz = /bits/ 64 <1596000000>;
opp-microvolt = <1100000>;
clock-latency-ns = <150000>;
opp-suspend;
};
};