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.

[参考译文] AM625:功能安全 MPU 实现支持

Guru**** 2535660 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1565541/am625-functional-safety-mpu-implementation-support

器件型号:AM625


工具/软件:

R5 和 A 内核都需要在配置的 DDR 中具有不可访问的地址范围。

以 R5 内核为例、只允许访问共享存储器和图中的绿色区域。 任何访问这些范围之外地址的尝试都会导致存储器故障。

根据 TSR 要求的要求、A 内核应具有类似的配置来定义其可访问地址范围。 任何超出此范围的访问都必须触发存储器故障并使系统转换到指定的安全状态。 请提供相应的安全状态配置方法。

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

    您好:

    超出此范围的任何访问都必须触发存储器故障并将系统转换为指定的安全状态。 请提供相应的安全状态配置方法。

    您是否已经在 R5F 内核访问的器件树中保留了 DDR 区域?

    您还可以配置防火墙、使 R5F 和 A53 内核无法访问其他内核的保留区域。

    此致、

    Nihar Potturu

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

    尊敬的 Nihar:

    是的、它在器件树中保留了由 R5F 内核访问的 DDR 区域。

    您能否帮助我们举例说明如何配置区域防火墙以保护 DDR 区域?

    此致

    Joe

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

    您好 Joe、

    [引述 userid=“277372" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1565541/am625-functional-safety-mpu-implementation-support/6030940

    您能否帮助我们举例说明如何配置区域防火墙以保护 DDR 区域?

    [/报价]

    我已将该线程重新分配给防火墙专家以指导您进行配置。 请稍后回复。

    此致、

    Nihar Potturu

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

    您好:

    您能否举例说明如何配置区域防火墙以保护 DDR 区域?

    请参阅以下资源:

    此外、请查看驱动程序中用于配置 HSM RAM 防火墙的这些消息的用法

    github.com/.../bootloader_soc.c

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

    谢谢 您、Prashant、Nihar。 我们会尝试一下

    此致

    Joe

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

    您好、Prashant、

    我尝试通过 DM R5F 内核设置一个区域 0x9DB00000 - 0x9E700000 访问。 请帮助检查以下代码。

    我在下面遇到了一些问题、请帮助提供指导。 谢谢。

    –1-

    我设置 DSS0 PRIV-ID 访问权限、是否应启用 DSS0 PRIV-ID?

    –2-

    https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/am62x/firewalls.html#list-of-priv-ids

    dm 中的主机 ID 为不适用 我正在将 TISCI_HOST_ID_MAIN_0_R5_1 填充到 Owner_index 中、是否正确?

    以下 4 个主机 ID 之间有什么区别?

    /** MAIN_0_R5_0(安全):Main Island (boot)*/上的 Cortex R5_0 上下文 0
    #define TISCI_HOST_ID_MAIN_0_R5_0 (35U)
    /** MAIN_0_R5_1(非安全):Main Island 上的 Cortex R5_0 上下文 1 */
    #define TISCI_HOST_ID_MAIN_0_R5_1 (36u)
    /** MAIN_0_R5_2(安全):Main Island 上的 Cortex R5_0 上下文 2 */
    #define TISCI_HOST_ID_MAIN_0_R5_2 (37U)
    /** MAIN_0_R5_3(非安全):主岛上的 Cortex R5_0 上下文 3 */
    #define TISCI_HOST_ID_MAIN_0_R5_3 (38U)

    const struct tiski_msg_fwl_set_firewall_region_req fwl_set_req =

       .fwl_id = CSL_STD_FW_DDR16SS0_SDRAM_ID、
       .region = 0、
       .n_permission_regs = 3、
       /* 0x3 — 防火墙后台区域,未锁定。 0xa — 启用防火墙*/
       .control = 0x30A、
       /* PRIV_ID = 0xC3 表示每个人*/
       .permissions[0]= 0xC3FFFF、
       .permissions[1]= 0xC3FFFF、
       .permissions[2]= 0xC3FFFF、
       start_address = 0x0U、
       .end_address   = 0xFFFFFFFFFFFULL、
    };

    struct tiski_msg_fwl_set_firewall_region_resp fwl_set_resp ={0};

    状态= Sciclient_firewallSetRegion (&FWL_SET_REq、&FWL_SET_RESP、SystemP_TIMEOUT);

    if (SystemP_Success == status)


       const struct tisic_msg_fwl_change_owner_info_req fwl_owner_req =
       {
           .fwl_id = CSL_STD_FW_DDR16SS0_SDRAM_ID、
           .region = 1U、
           /** MAIN_0_R5_1(非安全):Main Island 上的 Cortex R5_0 上下文 1 */
           .owner_index = TISCI_HOST_ID_MAIN_0_R5_1、
       };
       结构 tiski_msg_fwl_change_owner_info_resp fwl_owner_resp ={0};
       状态= Sciclient_firewallChangeOwnerInfo (&FWL_Owner_req、&FWL_Ower_RESP、SystemP_TIMEOUT);
       if (SystemP_Success == status)
       {
           const struct tiski_msg_fwl_set_firewall_region_req fwl_set_req =
           {
               .fwl_id = CSL_STD_FW_DDR16SS0_SDRAM_ID、
               .region = 1U、
               .n_permission_regs = 3u、
               /* PRIV_ID = 0xD4 表示 DM R5 内核、提供对的完全访问
                *到 DM 内核。 0xC3(每个人)没有被授予任何访问权限、并且
                * 0xAD (DSS0 priv ID) 被授予所有访问权限。
                */
               .permissions[0]= 0xD4FFFF、
               .permissions[1]= 0xC30000、
               .permissions[2]= 0xADFFFF、
               start_address = 0x9DB00000、
               .END_ADDRESS   = 0x9E700000、

           };
           struct tiski_msg_fwl_set_firewall_region_resp fwl_set_resp ={0};

           状态= Sciclient_firewallSetRegion (&FWL_SET_REq、&FWL_SET_RESP、SystemP_TIMEOUT);
       }
    }

    此致
    Joe
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我设置 DSS0 PRIV-ID 访问权限、是否启用 DSS0 PRIV-ID?

    如果您希望允许 DSS 访问、则应在其中一个权限插槽中提及它。

    dm 中的主机 ID 是不适用的 我正在将 TISCI_HOST_ID_MAIN_0_R5_1 填充到 Owner_index 中、是否正确?

    是的。

    以下 4 个主机 ID 之间有什么区别?

    这些是内核的安全和非安全主机 ID。 它们在 TISCI 消息的上下文中使用。