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.

[参考译文] Linux/AM4378:在 U-boot 中配置 CPU 频率

Guru**** 2551110 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/617657/linux-am4378-configuring-cpu-frequency-in-u-boot

器件型号:AM4378

工具/软件:Linux

我的目标:为了使我的系统更稳定、芯片更酷、我尝试降低 CPU 频率。  

UBoot 版本:201507

当我用'cat /proc/cpuinfo 读取我的 CPU 频率时、我得到的伪像为1993.93。 然后,我在 uboot/arch/arm/cpU/armv7/am33xx/board.c 中检查我的 CPU 频率--- >am33xx_spl_board_init---- >do_setup_DPLL (DPLL_CORE_opp100)/do_setup_DPLL (DPLL_MPU_opp100)、似乎我的 CPU 以1GHz 运行、因此我尝试使用以下内容将其更新为720M:

-- a/arch/arm/cpU/armv7/am33xx/clock_am33xx.c
++ b/arch/arm/cpU/armv7/am33xx/clock_am33xx.c
@@-54,7+54,77 @@ const struct DPLL_regs DPLL_DDR_regs ={
struct DPLL_MPU_params =}
CONFIG_SYS_MPUCLK、OSC-1、1、-1、-1、 -1、-1};
const 结构 DPLL_params DPLL_CORE_opp100 ={
- 1000、OSC-1、-1、-1、-10、 8、4};
+ /*1000*/720、OSC-1、-1、-1、10、 8、4};
const 结构 DPLL_params DPLL_MPU ={
MPUPLL_M_300、OSC-1、1、-1、-1、 -1、-1};
const 结构 DPLL_params DPLL_CORE ={




之后、我执行'cat /proc/cpuinfo、bogomips 保持1993.93、它似乎没有变化。 那么、有人能告诉我如何更改 CPU 的频率吗?

PS:/sys/......中没有 cpufreq 文件夹 /CPU0、因此我放弃这种方法。

感谢你的任何帮助

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    之后、我执行'cat /proc/cpuinfo、bogomips 保持1993.93、它似乎没有变化。 那么、有人能告诉我如何更改 cpu.ps 的频率:/sys/......中没有 cpufreq 文件夹 /CPU0、所以我放弃了这种方法。感谢您的帮助
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Aaron、

    是否确定已在正确的文件/arch/arm/cpu/armv7/am33xx/clock_am33xx.c 而不是 clock_am43xx.c 中进行了更改?
    此外、我建议您在内核中添加 cpufreq-stats 支持、以便通过在内核配置中添加以下配置来观察和配置 CPU 频率:
    配置主菜单
    CPU 电源管理-->
      CPU 频率缩放-->
        [*] CPU 频率缩放
        [*] CPU 频率转换统计信息
        [*] CPU 频率转换统计信息详细信息
        默认 cpufreq 调节器(按需)-->
        -*-“性能”调速器
        <*>"powersave"调节器
        <*>用于用户空间频率缩放的'userspace'调节器
        -*-“按需”cpufreq 政策总监
        <*>“保守”cpufreq 调节器
        *** CPU 频率调节驱动程序***
        <*>基于通用 DT 的 cpufreq 驱动程序
        <>通用 ARM 大小小 cpufreq 驱动程序
        [] TI OMAP2+
        <*>德州仪器 cpufreq 支持
        <>用于 Freescale QorIQ SoC 的 CPU 频率调节驱动器

    应启用"CPU 频率缩放"(CONFIG_CPU_FREQ)以配置 cpufreq-stats。
    "CPU 频率转换统计信息"(CONFIG_CPU_FREQ_STAT)提供包括 TIME_IN_STATE、TOTAL_TRANS_TABLE 和 TRANS_TABLE 在内的统计信息。
    启用此选项且您的 CPU 支持 cpufrequency 后、您将能够在/sysfs 中查看 CPU 频率统计信息。

    BR
    Tsvetolin Shulev

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不想在内核中添加 cpufreq、我打算在 uboot 中修改 CPU 频率。
    您能不能直接告诉我应该在哪里修改 uboot 中的代码。
    Clocks_am33xx.c 实际上不是内置在 uboot 中、但我也无法在 clock_am43xx.c 中找到 DPLL_core_opp100

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

    有关在 u-boot 中检查和更改 Cortex-A9 CPU 频率的信息、请参阅以下文件:

    u-boot/arch/arm/cpU/armv7/am33xx/clock_am43xx.c
    u-boot/arch/arm/cpU/armv7/omap-common/clocks-common.c
    u-boot/board/ti/am43xx/board.c

    您可以使用"MD"命令从 u-boot 提示符处检查寄存器 PRCM_CM_CLKSEL_DPLL_MPU (0x44DF2800 + 0x560)和 PRCM_DIV_M2_DPLL_MPU (0x44DF2800 + 0x570)、从而获取 M、N 和 M2值。 然后、您可以根据 AM437x TRM 中提供的公式(第6.6.3节 ADPLLS)计算 CPU 频率。

    您还需要定义什么是 DPLL_MPU 输入频率。 它基于主 OSC 频率、在 TI EVM 上为24MHz。

    此致、
    帕维尔