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.

[参考译文] F29H859TU-Q1:实现 GPIO FFI

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1604452/f29h859tu-q1-implementing-gpio-ffi

器件型号: F29H859TU-Q1

您好:

我们正在寻找一些有关如何在某些 GPIO 端口为 ASIL-C、其他端口为 QM 的系统中的 GPIO 上实现 FFI 的指南。

SSU APR 的粒度为 4KB、因此不能用于限制 GPIO 端口的访问。

GPACSELx 寄存器提供在 CPU 级别(而不是链路级别)的访问控制。

是否有其他硬件机制限制 GPIO 端口对特定链路的访问? 如果没有、您可以建议使用哪种软件权变措施?


此致、
François μ s。

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

    您好、

    您只能向应通过 SSU 配置 GPIO CTRL 寄存器的 LINK 授予写入访问权限。

    即使某些端口为 QM 访问也应来自本应配置 GPIO 端口的链路、而其他链路也不会获得写入访问权限。 GPIO Ctrl 只能通过 CPU1 Link2 进行配置、如 TRM 中所示

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您提供有关 GPIO CTRL 寄存器的指导。
    但我不确定我的用例的答案、或者我误解了您的答案。
    我知道可以使用具有 LINK2 权限的 SSU 限制对控制寄存器的写访问(GPIO 配置)、但我担心各个引脚的运行时引脚访问(设置/清除/切换)。
    考虑 CPU1 上具有两个安全分区的一个场景:
    • ASIL 分区:分配给 LINK2、控制 GPIOasil 引脚(GPIO 输出)。
    • QM 分区:分配给 LINK3、控制 GPIOqm 引脚 (GPIO 输出)
    在该用例中、两个引脚都必须配置为可通过 GPySELx 寄存器由 CPU1 控制。
    通过这种配置、QM 分区 (LINK3) 将能够使用 GPyDAT、GPySET、GPyCLEAR 或 GPyTOGLE 寄存器来写入安全引脚 (GPIOasil)
    这代表了“无干扰“(FFI) 中的安全差距。
    我们如何通过硬件确保 GPIO 输出引脚电平上的 FFI?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    QM 分区 (LINK3) 将能够使用 GPyDAT、GPySET、GPyCLEAR 或 GPyTOGLE 寄存器来写入安全引脚 (GPIOasil)

    在 SSUMODE2 中、CPU1 LINK3 不会自动获取此配置的写入权限。 为此、您需要了解如何操作 SSU APR 工作。

    我建议参考  SSU 应用手册 和 TRM、C29 CPU 参考指南 (https://www.ti.com/lit/ug/spruiy2a/spruiy2a.pdf) 一章以开始使用 SSU。

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好:
    抱歉、在这种情况下、我很难看到 SSU 如何防止未经授权的访问。
    您能否说明一下我对以下 SSU 配置的理解在哪里不正确?
    对于 GPIO、我需要:
    • APR 范围 0x3019_0000 到 0x3019_0FFF:仅授予 LINK2 写入访问权限以管理 GPIO 配置。
    • APR 范围 0x3026_8000 至 0x3026_8FFF(可扩展至 0x3026_9FFF 以涵盖读取寄存器):
      • LINK2 被授予写访问权限、以便能够对 GPIOasil 引脚使用 GPxSET、GPxCLEAR 和 GPxTOGGLE 进行写入。
      • LINK3 被授予写访问权限、以便能够为 GPIOqm 引脚在 GPySET、GPyCLEAR 和 GPyTOGGLE 中进行写入。
    由于 APR 范围具有 4KB 粒度、GPX 和 GPy 寄存器驻留在同一 4KB 段中、通过授予 LINK3 在该范围内进行写入的访问(能够通过 GPySET 驱动其 GPIOqm 引脚)、LINK3 似乎 还具有写入 GPxSET 和驱动 GPIOasil 引脚的能力(这是 FFI 中的安全间隙)
    如果未授权 LINK3 在此范围内进行写入、则 LINK3 无法驱动其自己的 GPIOqm 引脚。
    因此、请您指出我的错 在哪里、以及 SSU 如何在这种情况下提供帮助吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、如果您希望向 LINK2 和 LINK3 授予对 GPIO 数据寄存器的两个写入访问权限、则它将不起作用。 您需要驱动 GPIO 引脚、这些引脚也是来自 LINK2 代码的 QM。 这意味着驱动引脚的代码需要来自安全相关代码、从而确保不会无意驱动、因为该代码将在锁步内核上运行。

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的澄清。
    如果没有硬件支持来隔离引脚、我会想到这个软件解决方案。
    由于您已确认这是唯一继续的方法、因此我们可以认为此主题已结束。