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/AM3351:频率/电压调节

Guru**** 2587365 points
Other Parts Discussed in Thread: TPS65217, AM3351

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/577268/linux-am3351-frequency-voltage-scaling

器件型号:AM3351
主题中讨论的其他器件:TPS65217

工具/软件:Linux

您好!

我们有基于 AM3351 ZCE 封装的定制板、  我们使用的是具有 4.1 Linux 内核的 Processor SDK 03.00.00.04。 为了降低功耗、我们需要进行频率/电压调节。  我们有两种状态、一种是播放模式、另一种是空闲模式。 在回放模式下、我们希望处理器频率为95MHz、VDD 内核电压为0.95V、其中仅通过编解码器播放音频。 在空闲模式下、CPU 应以95MHz 运行、VDD 内核电压设置为 1.15V。 此频率/电压调节将由我们的应用处理。

1.它是进行此频率/电压调节的正确方法吗?  

2.内核启动后、我们是否可以动态更改 VDD 内核电压的 PMIC (TPS65217)设置。  

3. 下面的链接还指出 ZCE 封装 EMIF 不支持频率/电压调节。 如果我们如上所述进行频率/电压调节、它会影响 EMIF 吗?

此致、
曼诺伊

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

    此 wiki 很旧。 当前 Wiki 为 processors.wiki.ti.com/.../Linux_Core_Power_Management_User's_Guide_(v4.1) 另请查看 AM335x 数据表 Rev. J 中的表5-9。如果您使用 DDR3存储器、它将无法在 OPP50中工作。 请注意、在 ZCE 封装中、MPU 和内核电源域组合在一起、OPP100的标称电压为1.1V。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Biser、

    我们使用的是 DDR3L、我通过将 VDD 内核电压配置为0.95V 来测试了电路板。 下面是我遵循的顺序。

    1) 1)首先将 CPU 频率配置为95MHz
    echo powersave >/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    Echo 95000 >/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

    2) 2)通过 I2C 命令将 VDD 内核电压的 PMIC (TPS65217)设置更改为0.95V。(DID 探测 VDD 内核并验证了电压电平)

    i2cset -f 0 24 0x0B 0x6C
    i2cset -f 0 24 0x11 0x40
    i2cset -f 0 24 0x0B 0x6C
    i2cset -f 0 24 0x11 0x40

    i2cset -f 0 24 0x0B 0x72
    i2cset -f 0 24 0x0F 0x02
    i2cset -f 0 24 0x0B 0x72
    i2cset -f 0 24 0x0F 0x02


    使用此配置、我在正常工作条件下对器件进行了完整的电池周期测试、并且工作正常。 由于我在更改 VDD 内核电压之前降低了 CPU 频率、我认为这不会造成问题。 请就此提出建议。

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

    [引用 user="Manoj Kumar "]我们有基于 AM3351 ZCE 封装的定制板,  我们使用的是具有 4.1 Linux 内核的 Processor SDK 03.00.00.04。[/引用]

    AM335x TI PSDK 03.00.04附带 Linux 内核4.4.1-12、我建议您使用该内核。

    TI-PROCESSOR-SDK-LINUX-AM335x-EVM-03.00.04/board-support/linux-4.4.4.12+gitAUTOINC+3639bea54a-g3639bea54a

    [引用用户="Manoj Kumar "]

    为了降低功耗、我们需要进行频率/电压调节。  我们有两种状态、一种是播放模式、另一种是空闲模式。 在回放模式下、我们希望处理器频率为95MHz、VDD 内核电压为0.95V、其中仅通过编解码器播放音频。 在空闲模式下、CPU 应以95MHz 运行、VDD 内核电压设置为 1.15V。 此频率/电压调节将由我们的应用处理。

    1.它是进行此频率/电压调节的正确方法吗?  

    [/报价]

    这看起来不正确。 在活动模式(回放模式)下、您的电压低于空闲模式! 请注意、在 OPP50 (0.95V)中、不能使用 DDR3/DDR3L、请参阅 AM335x 数据表表表表5-9。 具有器件版本代码"A"或更高版本的 ZCE 封装的 VDD_CORE 运算

    此外、您可以拥有的最大电压为1.144V (在 OPP100上)、而您计划拥有1.15V 电压

    [引用 user="Manoj Kumar ]2.内核启动后、我们是否可以动态更改 VDD 内核电压的 PMIC (TPS65217)设置?  [/报价]

    [引用 user="Manoj Kumar ]3.  下面的链接还指出、ZCE 封装 EMIF 不支持频率/电压调节。 如果我们如上所述进行频率/电压调节、它会影响 EMIF 吗?[/引述]

    是的、这仍然有效。 请参阅 AM335x 芯片勘误表 Advisory 1.0.22和以下 e2e 线程:


    应使用 DFS (仅限频率调节)、而不是 DVFS

    此致、
    帕维尔

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

    是的、当我通过 DTS 文件配置 DVFS 时、我遇到了音频播放中断问题(一些噪音被反复播放、控制台被冻结几秒钟)、有时甚至出现内核崩溃。

    然后、我们单独执行了 DFS、即使在以较低频率运行时、我们在音频播放(i.e)期间遇到一些音频播放中断问题。

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

    您好、Pavel、

    下面是 DTS 配置。

    CPU{
    CPU@0{
    CPU0-SUPPLY =<&dc2_reg>;
    /* kHz UV */
    工作点=<
    300000 1125000
    100000 1125000
    95000 1125000
    75000 1125000
    50000 1125000
    >;
    };
    }; 

    在音频播放期间、我将开关频率从300MHz 切换到95MHz、这会在音频播放中产生干扰。  

    1) 1)音频播放期间的频率切换是否会损坏 RAM。

    2) 2)是否可以避免频率缩放期间的毛刺脉冲?

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

    [引用用户="Manoj Kumar "]

    下面是 DTS 配置。

    CPU{
    CPU@0{
    CPU0-SUPPLY =<&dc2_reg>;
    /* kHz UV */
    工作点=<
    300000 1125000
    100000 1125000
    95000 1125000
    75000 1125000
    50000 1125000
    >;
    };
    }; 

    [/报价]

    这看起来很奇怪。 您是否切换到了随您使用的 SDK 一起提供的 Linux 内核4.4.12?

    在此内核中、我们有与 wiki 中所述类似的表(CPU0_opp_table):

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

    为了实现动态频率调节(DFS)、如果系统设计为使用单电压、则可以将表中的电压更改为相同的固定值、以避免发生任何电压调节。

    请参阅文件 ti-processor-sdk-linux-am335x-evm-03.00.04/board-support/linux-4.4.4.4.12/arch/arm/boot/dts/am33xx.dtsi

    [引用 user="Manoj Kumar ]1)音频播放期间的频率切换是否会损坏 RAM。?

    不、我认为切换 Cortex-A8频率不会影响 DDR3 RAM

    Manoj Kumar 说:
    2)是否可以避免频率缩放期间的毛刺脉冲。?[/quot]

    您能否提供有关您的用例的更多信息?

    根据我的理解、您提出的系统配置有 OPP100 (1.125V)、300MHz Cortex-A8和用户空间调节器、这是正确的吗? 然后开始播放音频。 然后、您通过用户空间调节器将 Cortex-A8 MPU 从300MHz 切换到95MHz、并且仅在切换期间观察音频干扰? 开关之后、音频播放正常(Cortex-A8 MPU 为95MHz)?

    此致、
    帕维尔

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

    [引用 user="Pavel Bodev"]这看起来很奇怪。 您是否切换到了随您使用的 SDK 附带的 Linux 内核4.4.1/12?

    我们在主板中使用 Broadcom WiFi 芯片、但官方 Broadcom 驱动程序支持 不适用于 4.4.12内核。 因此、我们决定使用内核4.1

    [引用用户="Pavel Bodev"]

    根据我的理解、您提出的系统配置有 OPP100 (1.125V)、300MHz Cortex-A8和用户空间调节器、这是正确的吗? 然后开始播放音频。 然后、您通过用户空间调节器将 Cortex-A8 MPU 从300MHz 切换到95MHz、并且仅在切换期间观察音频干扰? 开关之后、音频播放正常(Cortex-A8 MPU 为95MHz)?[/QUERP]

    您的理解是正确的。 这种音频干扰的原因可能是什么。

    如果我在执行 DFS 之后更改 VDD 内核的 PMIC 电压设置、不是通过用户空间调节器更改电压、是否会导致问题?  我执行了 DFS (按比例缩小)、然后通过 I2C 工具从 userspace 更改了 PMIC 电压设置。 它工作正常。  

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

    [引用 USER="Manoj Kumar ]]我们在主板中使用 Broadcom wifi 芯    片,但官方 Broadcom 驱动程序支持不适用于4.4.12内核。 因此、我们决定使用内核4.1

    然后、我建议您切换到随 Linux 内核4.1.18一起提供的 ti-processor-sdk-linux-am335x-evm-02.00.02.11。 并应使用以下 wiki:

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

    [引用 user="Manoj Kumar "]这种音频干扰的原因可能是什么。

    是否使用基于 ALSA 的应用程序? 出现此干扰时,是否有任何控制台日志输出? 您能否为我提供启动此应用程序的步骤? 我怀疑 ALSA 缓冲区的大小不够。

    [引用 user="Manoj Kumar "]而不是通过用户空间调节器更改电压

    我们已经讨论过不允许电压变化(仅 MPU 频率)、我们不允许吗?

    此致、
    帕维尔

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

    您好、Pavel、

    [引用用户="Pavel Bodev"]

    是否使用基于 ALSA 的应用程序? 出现此干扰时,是否有任何控制台日志输出? 您能否为我提供启动此应用程序的步骤? 我怀疑 ALSA 缓冲区的大小不够。

    [/报价]

    当出现音频干扰时、我会收到以下错误。

    [ALLS_LIB] ALSA 写入失败:管道断裂、尝试恢复..

    此外、我们还使用 userspace 中的 devmem2工具将内核 PLL 频率从120MHz 更改为25MHz。

    [引用用户="Pavel Bodev"]

    我们已经讨论过不允许电压变化(仅 MPU 频率)、我们不允许吗?

    [/报价]

    如果我们通过 DTS 文件执行该操作、它将会崩溃。 但是、如果您通过 userspace 中的 i2c 工具手动执行该操作(类似于深度睡眠电压调节)、我们不会遇到任何问题。 我只想知道后面的情况是否正确、假设所有外设都支持0.95V VDD 内核电压。  

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

    [引用用户="Manoj Kumar "]

    当出现音频干扰时、我会收到以下错误。

    [ALLS_LIB] ALSA 写入失败:管道断裂、尝试恢复..

    此外、我们还使用 userspace 中的 devmem2工具将内核 PLL 频率从120MHz 更改为25MHz。

    [/报价]

    您还可以尝试使用"省电"调节器(而不是用户空间)、您有什么不同吗?

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

    [引用 user="Manoj Kumar "]我们还使用 userspace 中的 devmem2工具将核心 PLL 频率从120MHz 更改为25MHz。

    如果您不更改此内核 PLL 频率并保持120MHz、那么在切换 MPU 频率时是否会出现该音频干扰?

    [引用 user="Manoj Kumar ]]如果我们通过 DTS 文件执行该操作,则会发生崩溃。 但是、如果您通过 userspace 中的 i2c 工具手动执行该操作(类似于深度睡眠电压调节)、我们不会遇到任何问题。 我只想知道后面的情况是否正确、假设所有外设都支持0.95V VDD 内核电压。  [/报价]

    对于 OPP50 0.95V、您无法正确使用 DDR3L、请参阅 AM335x 数据表、表5-9具有器件修订版代码"A"或更新版本的 ZCE 封装的 VDD_CORE 运算

    DDR3器件的最低工作频率为303MHz、要求 VDD_CORE 为 OPP100。  当 VDD_CORE 的供电 电压范围为 OPP50定义的电压范围时、无法以303MHz 的频率运行 AM335x DDR3接口。


    此致、
    帕维尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    +Omid
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Biser、Pavel 和 Team、
    这是我通过电子邮件与您简单地聊天的问题。 在此处添加客户的一些背景信息、以便我们都位于同一页面上。 我们能否验证他们的调查结果并报告回来?

    非常尊重、
    Omid
    _________


    "我们正在尝试在尽可能低的功耗模式下使用 AM3351。 这涉及将处理器频率降低至96MHz、将内核工作电压降低至0.95。 但是、我们不能始终处于该模式。 在某些操作期间、我们需要处于全性能模式-内核电压为1.15V、CPU 频率为300MHz。 因此、我们需要能够在这两种模式之间动态调整。 它们被称为 OPP50和 OPP100模式、并在数据表中指定。 具体而言、我们不关心从 OPP100转换时与 OPP50模式相关的所有设置。 我们只对降低内核工作频率和电压感兴趣。

    根据处理器勘误表(链接: www.ti.com/.../sprz360g.pdf) (附件第25页)、OPP100和 OPP50模式之间的动态切换在 OCP 事务等待处理时不受支持。 这意味着、当 OCP 事务没有挂起时、可以执行此操作。

    我们昨天的实验取得了突破。 我们能够使用以下方法来降低内核运行频率和电压。
    1.将频率从300MHz 降低到96MHz
    2.以25mV 为步长将内核电压从1.125V (默认)降低至0.95V。

    这是我的具体问题。 根据您可获得的勘误表和其他信息、是否有任何理由认为此方法不正确、不应尝试。 这是否会对器件的长期运行和稳定性产生任何影响? 我们能够在其中一种模式下长时间成功运行器件。 因此、我们知道每种模式(频率/电压组合)都是有效设置。 我们需要找出一种在这两种模式之间动态切换的方法、即使它涉及遵循特定的过程或实施一些等待/稳定时间权变措施。

    如果您需要有关我们的设置或实施的更多详细信息、请告诉我。"
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Omid、

    最新的 AM335x 处理器勘误表是 sprz360i.pdf、可通过以下链接获取:

    www.ti.com/.../sprz360i.pdf

    我假设您使用的是2.x 器件(器件版本2.x)、因此您需要重点关注以下两个问题:

    通报1.0.22 EMIF:不支持动态电压频率调节(DVFS)
    Advisory 1.0.24 Boot:如果在 OPP50中运行时将 RESET 置为有效、则系统引导不可靠

    如果您遵守这两条建议、则您的用例唯一的问题是在 OPP50 (VDD_CORE = 0.95V)下使用 DDR3L。 我们在几个地方将这种组合(OPP50处的 DDR3/DDR3L、VDD_CORE = 0.95V)声明为不受支持、请参阅以下指针:

    AM335x 数据表、表5-9具有器件版本代码"A"或更高版本的 ZCE 封装的 VDD_CORE 运算
    2 .www.ti.com/.../sprac74a.pdf -表4。 AM335x 内核支持的运行性能点
    e2e.ti.com/.../270038

    此致、
    帕维尔