This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM623:CPU 频率

Guru**** 2430620 points
Other Parts Discussed in Thread: AM623

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1540360/am623-cpu-frequency

器件型号:AM623


工具/软件:

您好、TI 专家!

您好、TI 专家! 我有一个适用于 am6234 的开发环境、其中包含我们自己的评估板。
软件 SDK 版本为 SDK PROCESSOR-SDK-LINUX-RT AM62X-11.00.09.04

我想知道两个关于 CPU 工厂频率的问题
1、:CPU 频率现在为 1250000000 Hz、但 am6234 支持的最大频率为 1.4GHz、如下所示


为什么 SDK 的默认频率未设置为 1.4GHz?


2.如果我要将 CPU 频率更改为 1.4GHz、如何进行更改?

此致、
Li

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Li:

    您通常可以在 Linux 的终端更改 CPU 频率、而无需在运行时直接修改器件树源 (DTS) 文件。 这通过 Linux 内核中的 cpufreq 子系统和相关的用户空间工具来实现。

    您可以通过检查可用频率  

    cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies

    CPU 调节器确定 CPU 频率的管理方式。 要手动设置特定频率、您通常需要切换到用户空间 调节器。

    为此、您可以使用以下命令

    sudo sh -c "echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"

    userspace调速器激活后、您可以写入所需的频率  

    sudo sh -c "echo 1400000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed"

    注意: — 如果需要永久更改 CPU 频率、则需要修改 AM623 电路板的器件树源 (DTS) 文件。

    在 CPU 的定义中、您会找到一个opp-table节点。 您需要为 1.4GHz (1400000000 Hz) 添加一个条目

    例如:-

            opp-table {
                    /* Add 1.4GHz OPP for am625-sk board. Requires VDD_CORE to be at 0.85V */
                    opp-1400000000 {
                            opp-hz = /bits/ 64 <1400000000>;
                            opp-supported-hw = <0x01 0x0004>;
                            clock-latency-ns = <6000000>;
                    };
            };
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    如果您使用内核器件树 k3-am625-sk.dts 作为参考、默认频率将为 1.4GHz、但如果您使用 k3-am62-lp-sk.dts 作为参考、则默认频率将为 1.25GHz。 因为 k3-am625-sk.dts 在 opp-table 节点中定义了“opp-140000000",“,但、但 k3-am62-lp-sk.dts 没有定义。

    仅 0.85V VDD_CORE 支持 1.4GHz 性能。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    VDD_CORE 为 0.85V、但 CPU 频率仍为 1.25GHz:




    相关日志如下所示:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件 SDK 版本为 PROCESSOR-SDK-LINUX-RT SDK-AM62X-11.00.09.04

    RT Linux 未启用 cpufreq 以改善实时延迟。

    我明天将查看源代码、向您展示如何修改默认频率。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。


    我现在可以正常执行频率调制操作。

    为什么 SDK 的默认频率未设置为 1.4GHz?

    RT Linux 未启用 cpufreq 以改善实时延迟

    我想?RT Linux SDK 的默认 CPU 频率设置为何为 1.25Ghz 而不是 1.4GHz、以及背后的原因是什么

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我现在可以正常地执行频率调制操作。

    您是否在内核配置中启用了 cpufreq?

    我想知道为什么 RT Linux SDK 的默认 CPU 频率设置为 1.25Ghz 而不是 1.4GHz、以及背后的原因是什么?

    频率在 U-Boot 代码中硬编码、这只是因为 0.75V VDD_CORE 的最大频率为 1.25HGz。 如果 VDD_CORE 为 0.75V、我们不希望处理器以 1.4GHz 的频率运行。 可以始终在 U-Boot 代码中将默认频率更改为所需的值。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid=“7730" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1540360/am623-cpu-frequency/5927930

    您是否在内核配置中启用了 cpufreq?

    [/报价]

    是的、在进行以下修改后、启动后的系统频率为 1.4GHz

    diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk.dts b/arch/arm64/boot/dts/ti/k3-am62x-sk.dts
    index b7ee73d..33ca38e 100755
    --- a/arch/arm64/boot/dts/ti/k3-am62x-sk.dts
    +++ b/arch/arm64/boot/dts/ti/k3-am62x-sk.dts
    @@ -188,3 +188,33 @@
     &fss {
            bootph-all;
     };
    +
    +&a53_opp_table {
    +       opp-200000000 {
    +               /delete-property/ opp-supported-hw;
    +       };
    +
    +       opp-400000000 {
    +               /delete-property/ opp-supported-hw;
    +       };
    +
    +       opp-600000000 {
    +               /delete-property/ opp-supported-hw;
    +       };
    +
    +       opp-800000000 {
    +               /delete-property/ opp-supported-hw;
    +       };
    +
    +       opp-1000000000 {
    +               /delete-property/ opp-supported-hw;
    +       };
    +
    +       opp-1250000000 {
    +               /delete-property/ opp-supported-hw;
    +       };
    +
    +       opp-1400000000 {
    +               /delete-property/ opp-supported-hw;
    +       };
    +};
    \ No newline at end of file
    diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
    index af2b8e0..94cbeeb 100755
    --- a/arch/arm64/configs/defconfig
    +++ b/arch/arm64/configs/defconfig
    @@ -525,7 +525,30 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
     #
     # CPU Frequency scaling
     #
    -# CONFIG_CPU_FREQ is not set
    +CONFIG_CPU_FREQ=y
    +CONFIG_CPU_FREQ_GOV_ATTR_SET=y
    +CONFIG_CPU_FREQ_GOV_COMMON=y
    +CONFIG_CPU_FREQ_STAT=y
    +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
    +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
    +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
    +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
    +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
    +# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set
    +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
    +CONFIG_CPU_FREQ_GOV_POWERSAVE=y
    +CONFIG_CPU_FREQ_GOV_USERSPACE=y
    +CONFIG_CPU_FREQ_GOV_ONDEMAND=y
    +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
    +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
    +
    +#
    +# CPU frequency scaling drivers
    +#
    +CONFIG_CPUFREQ_DT=m
    +CONFIG_CPUFREQ_DT_PLATDEV=y
    +# CONFIG_ARM_SCMI_CPUFREQ is not set
    +CONFIG_ARM_TI_CPUFREQ=y
     # end of CPU Frequency scaling
     # end of CPU Power Management
    

    但是、如果我没有删除设备树中的“opp-support-hw"属性“属性、则会出现以下错误消息

    通过分析内核下的以下源代码、可以知道 “opp-support-hw"的“的设置与寄存器 0x43000018 相关

    Documentation/devicetree/bindings/opp/opp-v2-base.yaml
    drivers/cpufreq/ti-cpufreq.c

    我们目前使用的芯片的特定型号是 AM6232ATCGHAALW、FCCSP-425、TI。

     Linux 中寄存器 0x43000018 的值如下所示

    我的第一个问题是、如果我们没有删除器件树中的 opp-support-hw、我们如何修改它以正确配置 cpufreq 驱动器、以便在系统启动时 CPU 频率为 1.4GHz?

    [    0.996124] cpu cpu0: _of_add_opp_table_v2: no supported OPPs
    [    0.996143] cpu cpu0: OPP table can't be empty
    [    0.996215] cpu cpu0: _of_add_opp_table_v2: no supported OPPs
    [    0.996221] cpu cpu0: OPP table can't be empty
    


    频率在 U-Boot 代码中进行硬编码、仅因为 0.75V VDD_CORE 的最大频率为 1.25Hz。 如果 VDD_CORE 为 0.75V、我们不希望处理器以 1.4GHz 的频率运行。 默认频率始终可以在 U-Boot 代码中更改、以设置为所需的值。

    第二个问题是如何配置 uboot、使系统启动后的默认频率为 1.4GHz?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    ]我的第一个问题是、如果我们没有删除器件树中的 opp-support-hw、我们如何修改它以正确配置 cpufreq 驱动程序、使系统启动时 CPU 频率为 1.4GHz?

    我的问题是、当您需要 cpufreq 时、为什么选择使用 RT 内核? 由于 RT 延迟要求、RT 内核应禁用 cpufreq。

    第二个问题是如何配置 uboot、以便系统启动后的默认频率为 1.4GHz?

    请使用以下适用于 SDK 11.x 的 U-Boot 补丁将默认值设置为 1.4GHz。

    diff --git a/arch/arm/dts/k3-am62-r5-sk-common.dtsi b/arch/arm/dts/k3-am62-r5-sk-common.dtsiev@vla:ti-u-boot.git$ 
    index 5da1b84a88f5..27a4034c3264 100644
    --- a/arch/arm/dts/k3-am62-r5-sk-common.dtsi
    +++ b/arch/arm/dts/k3-am62-r5-sk-common.dtsi
    @@ -24,7 +24,7 @@
                    clock-names = "gtc", "core";
                    assigned-clocks = <&k3_clks 61 0>, <&k3_clks 135 0>;
                    assigned-clock-parents = <&k3_clks 61 2>;
    -               assigned-clock-rates = <200000000>, <1200000000>;
    +               assigned-clock-rates = <200000000>, <1400000000>;
                    ti,sci = <&dmsc>;
                    ti,sci-proc-id = <32>;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid=“7730" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1540360/am623-cpu-frequency/5928468

    我的问题是、当您需要 cpufreq 时、为什么选择使用 RT 内核? 由于 RT 延迟要求、RT 内核应禁用 cpufreq。

    [/报价]

    您是否表示 RT Linux 不应在系统工作时动态调整 CPU 频率?
    这是否意味着、如果 RT Linux 系统的 CPU 频率保持固定为 1.4GHz、则仍可能为?μ s
    客户希望在运行 RT Linux 系统时默认 CPU 频率为 1.4GHz。因此、我只能通过集成?μ s 以上的 U-Boot 补丁将 CPU 的默认频率设置为 1.4GHz

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否表示 RT Linux 在系统工作时不应动态调整 CPU 频率?

    是的。

    这是否意味着如果 RT Linux 系统的 CPU 频率保持在 1.4GHz、仍然可能?

    当内核禁用 cpufreq 时、CPU 频率是 uboot 器件树中设置的值。

    客户希望在运行 RT Linux 系统时、默认 CPU 频率为 1.4GHz。因此我只能通过在?
    以上集成 U-Boot 补丁、将 CPU 的默认频率设置为 1.4GHz

    是的、使用此 U-Boot 补丁、U-Boot 会将 A53 设置为 1.4GHz、如果内核禁用 cpufreq、内核不会更改该频率。