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.

[参考译文] AM623:热关断序列

Guru**** 2535750 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1548935/am623-thermal-shut-down-sequence

器件型号:AM623


工具/软件:

您好、

我的客户希望自己实现热关断机制。
请注意、它们不使用 Linux SDK。 它们使用 VxWorks。
我知道 Linux SDK 具有这样的热管理功能。
https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/11_01_05_03/exports/docs/linux/VOLTAGE/Kernel/Therm-management-VTM、Foundational_Components、Kernel_Drivers、VTM

客户询问 Linux SDK 中使用的关断序列、以便他们可以实现。
您能详细地告诉我停机顺序吗?

谢谢。此致、
田代浩一郎

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

    尊敬的 Tashiro-san:

    有一个用于热关断的硬件和软件组件。 当器件“进入热关断状态“时、它不会完全关闭、因此可以在安全的情况下执行重新启动。

    硬件定义的热关断

    AM62x 处理器内有两个片上温度传感器、如本常见问题  解答中所示:【常见问题解答】AM625/AM623/AM620-Q1 / AM62Ax/AM62D-Q1/AM62L/AM64x/AM243x (ALV、ALX) 定制电路板硬件设计–电压和热管理器 (VTM) 

    这些传感器将测量结温并将数据发送到 VTM 模块。 软件将需要配置 VTM 的读数、 定义发生温度热关断的临界温度点、以及重新启动 SoC 的安全温度。

    当温度传感器读取到高于临界温度点的值时、它会使 SoC 进入热复位状态、直到 SoC 根据温度传感器的读数冷却到安全温度。 当 SoC 处于热复位状态时、TMS 将保持开启以继续读取结温并确定其是否可以安全地重新启动 SoC。

    请参阅 AM62x TRM: https://www.ti.com/lit/ug/spruiv7b/spruiv7b.pdf 中的 6.2.5.5 电压和热管理器 (VTM)

    软件配置 VTM

    在这种情况下、软件负责配置硬件。 请参阅 VTM Linux 驱动程序: git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/thermal/k3_j72xx_bandgap.c?h=ti-linux-6.12.y

    您可以在“k3_j72xx_bandgad_init_hw"中“中看到、软件将需要使用寄存器写入操作来初始化 VTM 模块、包括配置温度传感器、定义临界关断温度和冷却温度。

    Linux 驱动程序的定义方式是、考虑到 VTM 模块的任何不准确性、临界关断将在 123C 时发生。 然后、一旦 SoC 处于热复位状态、它就必须冷却至 105°C、然后才能尝试重新启动。

    有一个名为“k3_VTM_ANYMAXT_OUTRG_ALERT_EN"的“的位可启用热关断机制。

    软件定义的热关断

    在您共享的 SDK docs 链接中、这是软件定义的热关断。 我上面介绍的机制适用于硬件定义的热关断。

    在软件定义的热关断中、会根据器件树中定义的温度范围定期检查相同的 VTM 温度值。 如果 VTM 温度值超过器件树跳闸点、则会调用 THERMAL_CORE.c (git.ti.com/.../thermal_core.c 以执行基于软件的热关断。 发生这种情况时、Linux 将关闭、并需要在之后重新启动。

    软件定义的热关断和硬件热关断通常协同工作。

    软件定义的热关断不是必需的、因为 Linux 驱动程序将仅配置 VTM 寄存器来执行热关断。 因此、根据客户应用的不同、可能不需要器件树和 themal_core.c 部分。

    请注意、E2E 论坛上的 VxWorks 超出了 TI 支持范围。

    谢谢、

    Anshu

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

    尊敬的 Anshu:

    很抱歉我迟到的答复。 客户希望实现更简单的机制。
    例如:
    步骤 1:使用 VTM_TMPSENS_VTM_TMPSENS_STAT_J_J[9:0]位检查器件温度
    步骤 2:如果温度达到特定阈值、则停止 A53 内核。 温度降低时、无需重新启动内核。

    客户想知道可以在步骤 2 中使用的任何寄存器位字段。

    谢谢。此致、
    田代浩一郎

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

    尊敬的 Tashiro-san:

    温度降低时无需重新启动内核。

    您能解释一下这意味着什么吗? 假设结温达到 125°C、然后冷却到 50°C、那么您是否不需要 SoC 再次尝试引导操作系统?

    谢谢、

    Anshu

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

    尊敬的 Anshu:

    您是否不要求 SoC 再次尝试引导操作系统?

    没错。  最终用户将恢复系统(重启系统)。

    谢谢。此致、
    田代浩一郎

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

    尊敬的 Tashiro-san:

    正确。 系统将 被最终用户恢复(关闭系统电源后再打开)。

    感谢您的澄清。 然后可以将冷却值设置为不现实的值、这样它就不会尝试重新启动操作系统。  只需注意、此用例尚未经过 TI 测试。

    谢谢、

    Anshu

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

    尊敬的 Anshu:

    然后可以将冷却值设置为不现实的值、这样就不会尝试重新启动操作系统。

    您的意思是客户只使用“硬件定义的热关机“和不切实际的冷却值吗?
    正如我在上面的步骤 2 中提到的、客户希望通过软件触发关断。

    客户想知道任何可在步骤 2 中使用的寄存器位字段。

    我们没有此类登记册?

    谢谢。此致、
    田代浩一郎

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

    尊敬的 Tashiro-san:

    第 2 步:如果温度达到特定阈值、则停止 A53 内核。

    这可以通过寄存器来处理。

    请参阅 TRM: https://www.ti.com/lit/ug/spruiv7b/spruiv7b.pdf

    MMR_CFG2_VTM_MISC_CTRL 有一个位用于启用热超出范围。 通过启用该位、如果 VTM 读取到超出范围的温度、则会发生热关断。

    MMR_CFG2_VTM_MISC_CTRL2 位[9:0]定义被视为超出热范围的温度。

    如果不需要“冷却温度“(MMR_CFG2_VTM_MISC_CTRL2 位–25:16])、那么也可以将其设置为某个无法实现的数字。


    谢谢、

    Anshu

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

    尊敬的 Anshu:

    这可以通过寄存器来处理。

    我知道配置是通过寄存器完成的、但关键是关断过程是自动完成的、软件不知道这一点。
    客户希望在软件检查温度和达到阈值时通过软件触发关断过程。
    因此、软件可以执行一些操作、例如在关断前向显示器发出警报。

    谢谢。此致、
    田代浩一郎

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

    尊敬的 Tashiro-san:

    如果此过程需要由软件驱动、则 Linux 驱动程序必须处理。

    在 Linux 器件树中、我们定义了触发热关断的跳闸点: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am62-thermal.dtsi?h=ti-linux-6.12.y

    这将调用“thermal_core.c"驱动“驱动程序 Linux 驱动程序: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/thermal/thermal_core.c?h=ti-linux-6.12.y

    当结温读取的值大于跳变点时、它会指示 Linux 停止、然后它将关断。

    谢谢、

    Anshu