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.

[参考译文] MCU-AM243X:完整的 MCU-PLUS-SDK 域 (M4) 隔离工作流程 — R5 引导加载程序中的配置和 M4 内核验证|第 2 卷

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1622469/mcu-plus-sdk-am243x-complete-mcu-domain-m4-isolation-workflow-configuration-in-r5-bootloader-and-validation-from-m4-core-vol-2

器件型号: AM243X - MCU-PLUS-SDK

 

上一个问题已锁定、因此我要询问与 https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1605987/mcu-plus-sdk-am243x-am243x-complete-mcu-domain-m4-isolation-workflow-configuration-in-r5-bootloader-and-validation-from-m4-core 相关的新问题


您好 Anil 或其他 TI 专家、

感谢您的答复。 感谢有关在 M4 应用程序而不是 SBL 中放置隔离配置的说明。 但是、你的回答提出了另外几个问题和一些似乎相互矛盾的问题。 您能帮助我们澄清以下内容吗?

 

关于前一答复中的矛盾的初步说明

您说过“ MAIN 域无法访问任何 MCU 外设和 MCU 存储器、同样、MCU 内核也无法访问 MAIN 域外设和主域存储器“、但这似乎意味着默认情况下已经强制执行隔离。 如果是这种情况、为什么根本需要任何其他配置? 您能否说明这是默认硬件状态、还是需要显式软件配置才能激活?

此外、您还提到了“ SBL 已经检查 MCU 内核是否隔离、并重新初始化时钟“、但未提供有关此检查使用哪些寄存器或机制的详细信息。 您能详细说明一下吗?

 

第 1 部分–隔离机制:防火墙与 CTRLMMR 寄存器

  1. 只需配置即可 CTRLMMR_MCU_LOCKn 寄存器 来强制实施 MCU 域隔离、还是必须配置 防火墙规则 (RAT/CBASS) 才能保证硬件级隔离?

  2. 仅配置 CTRLMMR_MCU_LOCKn 寄存器与配置防火墙规则之间的隔离保证的确切差异是什么?

  3. 是否必须写入一个最终寄存器列表(包括地址和位字段)、才能在 AM243x 上实现完整的 MCU 岛隔离? 最好参考技术参考手册 (TRM) 或安全手册。

 

第 2 部分–保护隔离配置免受 R5 覆盖的影响

一旦 M4 应用程序通过 CTRLMMR_MCU_LOCKn 寄存器配置和锁定隔离、我们需要确保 R5(主域)无法撤消此配置。

  1. M4 应用程序写入隔离配置并锁定后、 R5 内核仍可以修改这些寄存器吗 ? 如果是、防止这种情况的正确机制是什么?

  2. 是否有 硬件强制写保护机制 (例如防火墙规则,粘滞锁定位或一次性可编程配置)、防止主域 R5 在由 M4 设置后修改 MCU 域隔离寄存器?

  3. 正确的顺序是什么:

    • 配置与 M4 的隔离
    • 锁定配置
    • 验证 R5 是否不能覆盖它

 

第 3 部分–MSRAM 共享存储器和隔离影响

我们目前使用的示例 MSRAM、用于单向内核间通信 : M4 写入, R5 读取。 我们需要了解隔离如何影响这种布置。

  1. 激活 MCU 域隔离后、 M4 内核仍可写入 MSRAM、而 R5 内核仍可从 MSRAM 读取 ? 还是隔离块跨域 MSRAM 完全访问?

  2. 如果仍然可以跨隔离边界访问 MSRAM、会执行什么操作 有关数据完整性和访问订购的硬件保证 (内存障碍,高速缓存一致性)?

  3. 如果隔离阻止了 MSRAM 跨域访问、什么是 推荐的共享内存备用 要在隔离式 MCU 岛配置中进行单向 M4→R5 通信?

 

第 4 部分–确定性 M4 MSRAM 访问的 QoS 配置

M4 内核需要对 MSRAM 进行确定性、优先级访问、以满足时序限制。 并发 R5 访问在某些情况下会导致延迟问题、我们需要保证确定性优先级。

  1. 配置什么是正确的机制 M4 MSRAM 访问优先级的 QoS(服务质量) 开始呢? 具体来说:

    • 哪些寄存器控制 M4 与 R5 MSRAM 访问的 QoS 优先级?
    • 有哪些优先级可用?
  2. M4 应用程序设置 QoS 配置后、 如何锁定或保护这种配置 来防止 R5 内核有意或无意地覆盖它?

  3. 是否有 硬件仲裁机制 在保证 M4 访问优先级高于 R5 的 MSRAM 互连 (CBASS) 中、如果是、如何配置和锁定它?

 

第 5 部分–M4 的安全验证和验证

您建议通过跨域边界访问内存进行测试、但未提供结构化且安全的验证序列。

  1. 什么是 建议的安全验证序列 验证隔离是否有效? 具体来说:

    • 如果安装了故障处理程序(总线错误/中止处理程序) 解决方案 正在尝试进行任何跨域访问测试?
    • M4 上的哪个故障或错误寄存器表示防火墙正确阻止了跨域访问?
  2. 都有 状态寄存器或硬件标志 M4 可以读取以确认隔离当前处于活动状态、而无需执行潜在的破坏性跨域访问测试?

  3. 有没有 官方指导手册、应用手册或安全手册部分 下面介绍了 AM243x MCU 岛配置的分步隔离验证过程?

 

第 6 部分–文档

您提到没有有关此主题的特定安全文档、但提供了检查文档。 请确认:

  1. 中介绍了 MCU 岛隔离 AM243x 安全手册

  2. 是否在中进行介绍 AM243x 器件 TRM 或防火墙部分下?

  3. 有没有 内部 TI 应用手册或设计指南 这描述了完整的隔离配置过程、即使没有通过标准通道公开提供该过程也是如此?

我们还了解examples/drivers/safety/reset_isolation_ipc MCU+SDK 中的示例。 您能澄清一下它的实现是否满足吗 安全手册要求 或者它是否只是一个没有安全认证保证的功能演示? 这种区别对我们的项目至关重要。

 

术语说明

为避免混淆、请注意、在我们的项目术语中:

  • L0 引导加载程序 :DMSC 根据引导模式启动的引导过程
  • L1 引导加载程序 :我们在 R5 内核上运行的自定义引导加载程序,它将应用程序加载到 M4 和 R5 内核

当我们提到在应用阶段配置隔离时、是指在 L1 引导加载程序完成且 M4 应用程序固件运行后。

非常感谢您的持续支持。 我们期待您的澄清。

此致、Petr

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

    尊敬的 TI 专家:如果您需要更多详细信息或我们的问题不清楚、请告诉我们。 我们希望得到任何答复。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好 Petr Kucera ,
    请查看以下有关  AM243x MCU 岛配置的复位隔离、跨域桥接器、QoS 和验证的说明。


    1. MAIN2MCU 和 MCU2MAIN 桥接器:

    默认情况下、MAIN2MCU 和 MCU2MAIN 桥接器处于启用状态、这意味着允许跨域访问。 当启用复位隔离时、这些
    必须明确禁用网桥、以便不再允许跨域访问。


    2.两种隔离类型:

    a) 完全隔离
    - MAIN2MCU 和 MCU2MAIN 桥被禁用。
    -无法进行跨域访问。
    -主域复位不会传播到 MCU 域。
    -在此模式下、R5F 和 M4F 内核之间无法进行 IPC。
    -验证完全隔离:尝试跨域内存访问,并确认访问内核进入异常/故障状态。

    b) 部分隔离
    - MAIN2MCU 和 MCU2MAIN 桥在默认情况下保持启用状态。
    -跨域访问仍然是可能的。
    -主域复位不会传播到 MCU 域。
    -支持 R5F 和 M4F 内核之间的 IPC 通信。
    -下面的 SDK 示例遵循这种方法:
    示例/驱动器/安全/RESET_ISOLATION_IPC

    注意: 发生主域复位时、R5F 内核复位、其 IPC 处理程序将重新启动。 M4F 内核继续运行。 M4F 应用程序必须处理这种情况、特别是它  应检测到 R5F 侧已复位并等待 R5F 重新初始化 IPC、然后再恢复通信。 如果未得到处理、M4F 可以尝试与进行通信  未初始化的 R5F IPC 上下文。


    3. MCU 隔离期间的 SBL 行为:  

    SBL 检查 CTRLMMR_MCU_RST_CTRL 寄存器和热复位隔离状态位。 具体而言、它会读取是否
    MCU_LRESET_ISO_DONE_Z 位被置为有效、表明 MCU 域热复位隔离处于活动状态。 如果检测到 MCU 隔离、则为 SBL
    跳过重新初始化 MCU 时钟的操作、以避免干扰已经运行的 M4 应用程序。

    4. QoS 配置:

    QoS 通过 CBASS QoS 寄存器进行配置。 每个总线主器件都有一个可编程的优先级。

    对于 MCU 域主 (M4F):
    QoS_MCU_M4FSS0_CORE0_CBASS_GR_HC2_MAP0 --优先级寄存器
    QoS_MCU_M4FSS0_CORE0_CBASS_GR_HC2_Map1

    优先级字段:
    位[2:0]=优先级(0 =最高、7 =最低)
    位[3]=订单 ID

    重要说明:必须在 SBL 的电路板配置中配置 QoS 设置。 无法在更改 QoS 优先级
    SBL 完成后的周转时间。

    有关 QoS 配置的详细信息、请参阅:

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/11_02_00_24/exports/docs/api_guide_am243x/DRIVERS_QOS_PAGE.html

    5.推荐的检测案例来验证隔离:

    建议使用以下三个测试用例来确认隔离是否正确启用:

    测试 1 --复位传播检查:
    触发主域复位并确认 M4F 内核继续运行且未复位。

    测试 2 --内存内容检查:
    主域复位后、确认 MCU 域存储器会保留其先前的内容。

    测试 3-外围设备状态检查:
    主域复位后、确认 MCU 域外设保留其之前的配置和状态。

    对于完全隔离验证、此外:
    禁用跨域网桥、尝试跨域存储器访问、并确认访问内核发生故障
    异常--确认跨域访问被正确阻止。

    复位隔离的参考示例:
    C:\ti\mcu_plus_sdk_am64x_11_01_00_17\examples\drivers\safety\reset_isolation


    6、关于 SDK 示例和安全合规性的重要说明:

    SDK 示例 (reset_isolation 和 reset_isolation_IPC) 仅是功能演示。 它们未获得安全认证
    实现。 具体来说:

    -演示了概念和寄存器的使用。
    -他们不遵循完整的安全手册规定的顺序。
    -他们没有为生产级隔离配置所有必需的防火墙规则。

    对于您的项目、必须遵循安全手册规定的顺序、并且必须对照安全审核实施情况
    手动要求。 SDK 示例可用作参考起点、但不能按原样用于申请安全合规性。

    如果您需要任何帮助,请让我知道。

    此致、
    Anil

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

    您好、 Swargam Anil 、

    感谢您的回答。 他们澄清了我的几个问题,但其中许多仍然不清楚我。 请您能这么友好地回答其余的问题吗?

    第 1 部分–隔离机制:防火墙与 CTRLMMR 寄存器

    1. 只需配置即可  CTRLMMR_MCU_LOCKn 寄存器  来强制实施 MCU 域隔离、还是必须配置  防火墙规则 (RAT/CBASS)  才能保证硬件级隔离?
    2. 仅配置 CTRLMMR_MCU_LOCKn 寄存器与配置防火墙规则之间的隔离保证的确切差异是什么?
    3. 由于参考示例提供了部分隔离、因此是否必须写入一个最终寄存器列表(包括地址和位字段)才能在 AM243x 上实现完全隔离? 最好参考技术参考手册 (TRM) 或安全手册。

     

    第 2 部分–保护隔离配置免受 R5 覆盖的影响

    一旦 M4 应用程序通过 CTRLMMR_MCU_LOCKn 寄存器配置和锁定隔离、我们需要确保 R5(主域)无法撤消此配置。

    1. M4 应用程序写入隔离配置并锁定后、  R5 内核仍可以修改这些寄存器吗 ? 如果是、防止这种情况的正确机制是什么?
    2. 是否有  硬件强制写保护机制  (例如防火墙规则,粘滞锁定位或一次性可编程配置)、防止主域 R5 在由 M4 设置后修改 MCU 域隔离寄存器?
    3. 正确的顺序是什么:
      • 配置与 M4 的隔离
      • 锁定配置
      • 验证 R5 是否不能覆盖它

     

    第 3 部分–MSRAM 共享存储器和隔离影响

    我们目前使用的示例  MSRAM、用于单向内核间通信 : M4 写入, R5 读取。 我们需要了解隔离如何影响这种布置。

    1. 由于隔离阻止了 MSRAM 跨域访问、什么是  推荐的共享内存备用  要在隔离式 MCU 岛配置中进行单向 M4→R5 通信?

      

    第 5 部分–M4 的安全验证和验证

    您建议通过跨域边界访问内存进行测试、但未提供结构化且安全的验证序列。

    1. 什么是  建议的安全验证序列  验证隔离是否有效? 具体来说:
      • 如果安装了故障处理程序(总线错误/中止处理程序)  解决方案  正在尝试进行任何跨域访问测试?
      • M4 上的哪个故障或错误寄存器表示防火墙正确阻止了跨域访问?
    2. 都有  状态寄存器或硬件标志  M4 可以读取以确认隔离当前处于活动状态、而无需执行潜在的破坏性跨域访问测试?
    3. 有没有  官方指导手册、应用手册或安全手册部分  下面介绍了 AM243x MCU 岛配置的分步隔离验证过程?

     

    第 6 部分–文档

    您提到没有有关此主题的特定安全文档、但提供了检查文档。 请确认:

    1. 中介绍了 MCU 岛隔离  AM243x 安全手册
    2. 是否在中进行介绍  AM243x 器件 TRM  或防火墙部分下?
    3. 有没有  内部 TI 应用手册或设计指南  这描述了完整的隔离配置过程、即使没有通过标准通道公开提供该过程也是如此?

    感谢您抽出宝贵时间、
    佩特尔