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/AM5728:用户空间模式下的 MPU 电压

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/671881/linux-am5728-mpu-voltage-in-userspace-mode

器件型号:AM5728

工具/软件:Linux

您好!

我有 TI AM572x EVM。

在按需频率调节器模式下、当我监控"cat /sys/class/regulator/regulator.5/microvolts "时、我将获得用于程序运行的980000 (0.98V)、1090000 (1.09V)和1230000 (1.23V)电压。

但是、在用户空间模式下、当我监控电压时、它通常停留在特定的电压值。 例如、我在按需模式下启动程序、并在程序运行时(程序之间的某处)将调节器更改为用户空间、假设电流电压为1.09V、则在更改为用户空间模式后、它会卡在1.09V (对于程序的其余部分、则运行)。 如果电流电压值恰好为1.23V、则会卡在该值。

我希望在用户空间模式下、当我更改频率时、它应该选择如下所示的内容

100M - 1G:980000

1G - 1.176G:1090000

1.2G - 1.5G:1230000

您能否告诉我、由总线供电的硬件下面发生了什么情况? 任何详细的解释都将非常有帮助。 非常感谢你能抽出时间。

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

    动态电压和频率调节、即众所周知的 DVFS、是指部件根据需要、用户偏好或其他因素修改其工作电压和频率的能力。

    设计:opp 是一对电压频率值。 当从高 OPP 缩放到低 OPP 频率时、先降低电压、然后降低电压。 当从较低的 OPP 缩放到较高的 OPP 时、我们首先缩放电压、然后缩放频率。

    MPU 运行的频率由一个被称为调速器的驱动器选择。 每个调速器都有不同的策略来选择最合适的频率。 内核中提供了以下调速器:

    OnDemand:此调速器对 CPU 负载进行采样并积极地进行扩展、以提供适当的处理能力。

    userspace:此调速器允许用户使用 scaling_available 频率中的任何值设置所需的 OPP、方法是将其回显到 scaling_setspeed 中。

    有关用户空间调节器的更多信息、请参阅以下链接:

    processors.wiki.ti.com/.../Linux_Core_Power_Management_User's_Guide_(v4.4)

    processors.wiki.ti.com/.../Sitara_Linux_Training:_Power_Management

    processors.wiki.ti.com/.../GLSDK_DRA7xx_PM_DVFS_User_Guide

    processors.wiki.ti.com/.../AM57x_Thermal_Considerations

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

    感谢 Pavel 的详细解释。

    对于以下 OPP 表、

    opp_nom (opp-microvolt)=<1060000 850000 1150000>;
    opp_OD (opp-microvolt)=<1160000 885000 1160000>;
    opp_high (opp-microvolt)=<1210000 950000 1250000>;

    我注意到电压(使用"cat /sys/class/regulator/regulator.5/microvolts 进行监控时)为

    100M - 1G:980000 (0.98V)
    1G - 1.176G:1090000 (1.09V)
    1.2G - 1.5G:分别为1230000 (1.23V)。

    我知道电压可以介于 OPP_NOM、OPP_OD 和 OPP_HIGH 值的最小值和最大值之间的任意值。

    此外,我从您的其他帖子中看到,对于*您的*硬件,它与原来完全相同

    1000MHz:1010000 (1.01V)
    1176MHz:1030000 (1.03V)
    1500Mhz:1190000 (1.19V)

    这意味着、电压看起来非常特定于硬件。

    1) 1)您能告诉我原因吗? 是因为 PLL 以及如何对它们进行调优?

    2) 2)例如、如果"cat /sys/class/regulator/regulator.5/microvolts "显示我的硬件和 OPP_HIGH 为1.23V、它稍后会变化吗? 我的意思是、在某些情况下、它是否会在<1210000 950000 1250000>之间变化? 还是针对硬件固定的。

    非常感谢你能抽出时间。

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

    1)您能告诉我原因吗? 是因为 PLL 以及如何调整它们?[/QUERP]

    否、这与 PLL 无关。 PLL 提供时钟信号、而不是电压。

    每个器件每个 AVS 支持的电源轨的最佳电压是在工厂分析后确定的。 该值写入器件电子保险丝中、可通过专用寄存器进行读取。

    使用 SmartReflex AVS 时、电源电压静态地调整为硅性能(基于给定器件制造过程中预定义的性能点)。 AVS 可在整个技术工艺范围内实现所有器件的最佳性能/功耗平衡。 这可确保给定 OPP 的最佳功耗。

    有关更多信息、请参阅 AM572x TRM 部分:

    3.1.1.3.3 AVS 概述

    3.8.3.1 VDD_MPU_L、VDD_CORE_L 和 VDD_IVAHD_L、VDD_GPU_L、VDD_DSPEVE_L 控制

    18.4.6.12 AVS 0类相关寄存器

    [quote user="solid repade">2)例如、如果"cat /sys/class/regulator/regulator.5/microvolts "显示我的硬件和 OPP_HIGH 的电压为1.23V、那么它是否会在以后发生变化? 我的意思是、在某些情况下、它是否会在<1210000 950000 1250000>之间变化? 还是针对硬件固定的。
    [/报价]

    我认为这是固定的,不应改变。

    此致、
    帕维尔