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:A15停用

Guru**** 2943430 points

Other Parts Discussed in Thread: CLOCKTREETOOL

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/669726/linux-am5728-a15-deactivation

器件型号:AM5728
主题中讨论的其他器件:CLOCKTREETOOL

工具/软件:Linux

您好、TI 的专家。

我有一些与功耗管理相关的问题来自我当前项目中的特定需求:我使用的是在 Linux 下运行的 A15、主要用于 Web 界面、因为对于我使用的 DSP 和 Cortex M4的其余功能。 由于网络连接不经常使用-工作时间不到1%-我在 POE 模式下遇到功率预算问题、我想问:

1) 1)从 以前的文章(如 https://e2e.ti.com/support/arm/sitara_arm/f/791/t/551530) 中,我知道我可以关闭两个 Cortex A15中的一个,但更进一步:只有在存在以太网流量时才可以冻结另一个内核唤醒它吗?

在4.3.7版中读取 AM572x TRM 介绍了 SR3-APG 技术支持的保持低功耗状态、并介绍了两个内核的强制关断+保持状态;此外、仅针对 MPU_C1指示了强制关断、但不清楚是否可以使用这两种状态的组合: 我的目标是将 MPU_C1置于 Forced_off 中、将 MPU_C0置于 Forced_off +保留模式、以太网流量将其唤醒。 这是可行的吗? 只有当我有以太网流量时,才有其他方法可以使用在 Linux 下运行的一个 A15内核?

2) 2)有一个经过测试的代码示例实现了我所描述的内容?

3) 3)仅使用邮箱+共享存储器但不使用 IPC 对 HLOS 架构有哪些影响? 我认为如果可以关闭运行 Linux 的唯一内核,那么我可以完全自由地使用 DSP 和 Cortex M4,而不会出现任何其他问题:对吗?  

提前感谢您的支持。

B.R.

Enzo。

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

    Vincenzo、

    您的用例不是我们通常支持的用例。 这当然是可能的、但未经测试。 因此、我们尚未测试对 Linux 等 HLOS 的影响。 在我们的典型用例中、运行 Linux 的 A15是系统的主器件、预计会启动并运行。  

    您是否已尝试使用我们的功耗估算工具来确认关闭 A15是您节省功耗的最佳方法?

    http://www.ti.com/tool/POWEREST

    我正在寻找可能对您有用的软件示例、但考虑到用例中的不匹配情况、我不确定是否会找到任何有用的软件示例。 如果我发现一些可能有用的东西、我会在这里回复。

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

    感谢您的回答、但让我进一步澄清一下:您的典型用例是否仅考虑 IPC? 我的意思是,您的报告与我使用 IPC 的用例清晰一致,但如果我使用的是一个简单的邮箱+共享存储器架构(如本文所建议): e2e.ti.com/.../604259 我是否有您所指出的相同限制? 即使在这种情况下,我也需要让 A15运行 Linux 作为系统的主系统吗?

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

    你好。

    没有关于此主题的新闻? 我的观察结果没有答案?

    此致、

    Scianni Vincenzo

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

    尊敬的 Vincenzo:

    我知道您希望在不使用 Cortex A15内核时将其断电。 在 AM57xx 上的 Linux 中、此操作已经完成。 当一个内核处于非活动状态时、它会自动进行时钟门控。 当两个内核都处于非活动状态时、都是时钟选通和电源选通。 两个内核只有一个电源门、因此您不能一次关闭一个电源门。 如果您在 Linux 空闲时测量 VDD_MPU 功耗、您看到的功耗将是 L2缓存导致的、该缓存与 A15内核的电源门"始终开启"。

    如果您希望降低功耗、则 SoC 中的许多模块在 Processor SDK 中默认处于通电状态。 可以通过在器件树中将这些模块标记为 STATUS="DISABLED"来禁用这些模块。 下面是我能够顺利关闭的模块:BB2D、DCAN、DSS、HDMI、IVA、 GPMC、GPU、PCIe、USB、VIP、 和 VPE。 其中大多数是通过器件树实现的、但有些确实需要写入 PRCM 寄存器并自行更改状态。

    选择要关闭的器件取决于您的用例和 AM572x TRM 中的"器件电源管理布局"表。 以 GPU 电压域为例(VD_GPU)。 电压域(PD_GPU)中只有一个电源域。 电源域内部只有一个时钟域(CD_GPU)。 在该时钟域中、只有一个模块、即 GPU/SGX544。 禁用 GPU 后、您可以通过时钟门来锁定 CD_GPU。 当时钟域被选通时、它仍会接收功率并消耗泄漏电流。 由于 PD_GPU 中的所有时钟域都关闭、因此您现在可以为 PD_GPU 供电。 随着 PD_GPU 电源门控、泄漏电流也得以消除。 要尝试执行此操作,请转至 dra7.dtsi 文件,找到"GPU"节点,并将 status="禁用"添加到该节点。 在之前/之后测量 VDD_GPU 上的电源以查看效果。

    更多调试提示、请使用命令"omapconf CTT RD1"转储包含 SoC 中模块时钟状态的"RD1"文件。 该 RD1文件可在我们的 CLOCKTREETOOL 中打开、供您评估当前接收时钟的模块。 基本上消除了任何不需要的模块、任何不需要的时钟域、最后消除了电源域。

    此致、

    Ahmad

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

    你好,Ahmad。

    感谢您的解释和提示、但有两点对我来说不够清楚:

    1) 1)您写道:"当一个内核处于非活动状态时、它会自动进行时钟门控。 当两个内核都处于非活动状态时、都是时钟选通和电源选通。 两个内核只有一个电源门、因此不能一次关闭一个电源"、但在4.3.7.2 TRM 中、写入"强制关闭模式仅适用于 MPU_C1": 如果两个内核只有一个电源门、从技术角度而言如何仅关闭一个内核?

    2) 2)您写道:"...您看到的功耗将由 L2缓存引起、该缓存与 A15内核的电源门"始终开启"。 :您是指保持低功耗状态吗? 保持低功耗状态是否仅与 L1高速缓存相关?

    谢谢、此致、

    Scianni Vincenzo

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

    对于 Q1和 Q2、

    我的最后一个回复仅基于 TRM 第3.4.1节中的"器件级布局"表。 它为 CPU0和 CPU1定义了一个电源域 PD_MPU、为 L2高速缓存、PLL 和 INTC 定义了另一个电源域 PD_MPUAON。 在第4.4.6和4.4.8节中、PD_MPU 中可能还有其他由 MPU_PRCM_PRM_PRM_CX 寄存器控制的电源域、但我无法确认每个内核是否有物理电源门、或者这些只是逻辑电源状态。 在任何情况下、Linux 都会为您处理电源状态。