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/OMAP-L138:如何为 Linux 设置 ARM CPU 频率

Guru**** 2561400 points
Other Parts Discussed in Thread: OMAP-L138

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/615571/linux-omap-l138-how-to-set-arm-cpu-frequency-for-linux

器件型号:OMAP-L138
Thread 中讨论的其他器件: OMAPL138DA8XX

工具/软件:Linux

您好!

我尝试将 CPU 频率设置为456MHz、但无法找到设置位置。  我尝试在 Linux 内核配置中启用 CPU 频率调节、但实际上使用 cpufreq 驱动程序并不幸运。  此 wiki 页面  

似乎表明 OMAP-L138上不支持 cpufreq。  我尝试了该论坛帖子推荐的内容  、但没有成功。  位置/sys/devices/system/cpu/cpu0没有名为 cpufreq 的子目录,而/sys/devices/system/cpu/cpufreq 是一个空目录。

我已更新 da850/c 以包含"unsigned int da850_max_speed = 456000;"、并添加了 u-boot 环境变量"maxcpuclk 4560000"。  我还更改了 u-boot 源码 omapl138_lcdk.c、以便"get_board_rev"返回3、 并设置#define CONFIG_DA850_EVM_MAX_CPU_CLK 456000000。  所有这些都不会改变时钟速度。

如果只是在引导序列中设置频率并将频率保持在456MHz、这就是我所需要的。  我们很感激您在哪里查找任何指导/提示。

我使用的是 Processor SDK 4.0。

Jeff

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

    首先、您需要在 da850/dtsi 中添加 opp 表。 请参阅 AM335x.dtsi 以获取参考、请查看 CPU0_opp_table:opp_table0。
    然后在 defconfig 中启用 CONFIG_PM_OPP、cpufreq 和调速器支持。

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

    感谢您的回答 Yordan。

    我已将以下内容添加到 da850-lcdk.dts 中、并尽可能按照 Documentation/devicetree/bindings/opp/opp.txt 和 bindings/sm/cpus.txt 中的建议进行操作:

    CPU{
    #address-cells =<1>;
    #size-cells =<0>;
    CPU@0{
    compatible ="arm、arm、ARM926EJ-s";
    enable-method ="ti、da850";
    device_type ="cpu";
    reg =<0>;
    
    operating points-v2 =<&CPU0_opp_table>;
    };
    };
    CPU0_opp_table:opp_table0{
    compatible ="操作点 v2-ti-cpu";
    
    
    
    opp50@300000000{
    opp-Hz =/bits/64 <300000000 >;
    opp-microvolt =<1200000>;
    };
    opp100@456000000{
    opp-Hz =/bits/64 <45000000
    
    
    ;}<120000>;}<opp-volt; 

    以下内容已在.config 中设置:

    CONFIG_CPU_FREQ=y
    CONFIG_CPU_FREQ_STAT=y
    CONFIG_CPU_GOV Q_STAT_DETAIL=y
    CONFIG_CPU_FREQ_DEFAULT_EV_performance=y
    CONFIG_CPU_FREQ_USERspace=y
    
    CONFIG_cpuq_DT=y CONFIG_FREQ_GOV_FREQ_DEVICE_DEVICE_CONFIG_FREQ=y
    
    

    目录/sys/devices/system/cpu/cpu0/cpufreq 不存在。

    LS /sys/devices/system/cpu/cpu0显示以下内容:
    crash_notes of 节点子系统 uevent crash_notes_size 电源拓扑

    /sys/devices/system/cpu/cpufreq 为空。  我可以通过检查/sys/devices/system/cpu/cpu0/of_node.来验证是否加载了正确的器件树

    am33xx 和达芬奇系统之间似乎存在许多差异。  这是有道理的、因为它们是不同的平台。  omapl138文档没有提到像 AM335x 文档那样的操作点。  此外、在 Omapl138文档中、未提及 am33xx.dtsi 中引用的 efuse 或 SYSCON 模块。

    深入探究一下、似乎达芬奇-cpufreq 驱动程序可能不支持器件树。  文件中的版权早于 Linux 中设备树的使用日期,似乎只使用平台设备。  似乎没有尝试使用本文(lwn.net/Articles/448502/)中提到的"of _"函数。  在我看来、Linux cpufreq 驱动程序可能正在加载、但未成功探测达芬奇驱动程序(或者未加载达芬奇-cpufreq 驱动程序)。  OMAP-cpufreq 和 ti-cpufreq 驱动程序似乎不支持 da8xx 系列。  以上都是、我发现我不可能第一次尝试在 OMAP-L138上的 Processor SDK 4.0中设置 Linux CPU 速度、因此它必须已经工作了、对吧?  我怀疑我错过了一些东西/不能完全理解所有东西是如何组合在一起的。

    是否有办法在没有任何 cpufreq 驱动器的情况下强制电路板以456MHz 的频率启动?

    Jeff

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

    以下是 opp 表:
    processors.wiki.ti.com/.../OMAPL1:_Changing_the_Operating_Point

    您可以查看用于启用用户空间 CPU 频率缩放的旧线程:
    e2e.ti.com/.../441440
    e2e.ti.com/.../2269084
    e2e.ti.com/.../1148165
    e2e.ti.com/.../1759686

    [引述]是否有办法强制电路板在456MHz 下启动、而不使用任何 cpufreq 驱动程序?
    您可以尝试使用命令行参数:
    u-boot#设置 maxcpuclk 300000000

    您可以在 u-boot 配置文件 include/configs/omapl138_lcdk.h 中#define CONFIG_Extra _ENV_settings \下构建此配置

    此致、
    Yordan