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.

[参考译文] AM6442:如何配置芯片以使 SA2_UL_EIP_29T2寄存器可访问?

Guru**** 2481465 points
Other Parts Discussed in Thread: AM6442

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1454461/am6442-how-do-i-configure-the-chip-to-make-sa2_ul_eip_29t2-register-accessible

器件型号:AM6442

工具与软件:

您好、TI 专家

  我已经 使用 MCU SDK 作为参考将 SA2_UL 模块的 PKA 驱动程序移植到我们的软件平台、但我在尝试访问 SA2_UL_EIP_29T2寄存器时遇到崩溃。 您能否提供有关如何配置 AM6442以正常访问 SA2_UL_EIP_29T2寄存器以及 SA2_UL 模块中的任何其他寄存器的指导? MCU SDK 的版本为10.00。

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

    您好!

    PKA 引擎仅保留用于系统固件、不可用于此处所述的常规用途:

    https://software-dl.ti.com/tisci/esd/latest/6_topic_user_guides/saul_access.html#:~:text=by%20host%20software.-,PKA%20MMR,-Primary

    此致、

    Prashant

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

    您好、Prashant

    您能解释一下 Saul_access 链接中的"主要"和"其他"是什么意思吗?

    客户是否可以使用"其他"访问 PKA 模块?

    谢谢

    Thomas

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

    您好!

    您能解释在 saul_access 链接中"主要"和"其他"是什么意思吗?

    这些实例指的是 SA2UL 实例。 AM64x 中只有一个 SA2UL 实例(主)、其 PKA 引擎为系统固件保留。

    有一种方法可以使用 PKA 引擎、但这需要执行此处所述的安全移交。

    https://software-dl.ti.com/tisci/esd/latest/6_topic_user_guides/security_handover.html

    以下是 AM64x MCU+ SDK 中的 PKA 示例的工作原理。

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/10_01_00_32/exports/docs/api_guide_am64x/EXAMPLES_DRIVERS_SA2UL_PKA_RSA_SIGN_VERIFY.html

    在 MCU+ SDK 的缺省引导流程中、安全切换被请求为自复位序列的一部分:

    https://github.com/TexasInstruments/mcupsdk-core/blob/4079d05171fc43c03f17a0f0c8b96c06518cffb3/source/drivers/bootloader/soc video/am64x_am243x/bootloader_soc.c#L1004

    此致、

    Prashant

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

    您好、Prashant

    根据此处的"https://software-dl.ti.com/tisci/esd/latest/6_topic_user_guides/security_handover.html""说明、我在 u-boot 源码中找到了一个配置文件"sec-cfg.yaml"。 我要访问 A53内核0上的 PKA 引擎、 因此、我将"sec-cfg.yaml"文件中"sec_transmit_cfg_cfg"下对应于"transfer_msg_sender"和"transfer_to_host_id"的参数从0修改为0x0A。 如下图所示:

    我不知道这些修改是否会生效?

    修改了上面提到的参数后、我在 u-boot 中的文件"driver/firmware/ti_sci.c"中添加了一个新函数"ti_sci_cmd_trigger_sec_coverly"、如下图所示:

    我在"arch/arm/mach-k3/common.c"文件中添加了一个新函数"TRIGGER_SECURITY_TRANSFORT"、该函数用于调用函数"ti_sci_cmd_trigger_sec_accumulation"。  

    然后、我在"arch/arm/mach-k3/am642_init.c"文件中的 board_init_f 函数返回前、向函数"trigger_security_failover"添加了调用。在 EVM 板上运行它后、系统会提示以下错误:

    您能告诉我如何修改配置和代码以正确完成安全切换吗?

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

    您好!

    不支持针对 U-Boot/Linux 引导流程的安全切换、因为这并不是为了与安全切换一起工作。

    虽然安全交付可能允许您访问 PKA 引擎、但还有其他重大影响。 SYSFW 在安全移交后放弃了安全服务。 这意味着对于以下所有 TISCI SEC 消息、SYSFW 将返回 NACK。

    https://software-dl.ti.com/tisci/esd/latest/2_tisci_msgs/index.html#secure-management

    在 U-Boot/Linux 引导流程中的不同位置需要这些消息、例如 OTPEE 使用 FWL 消息来配置所需的防火墙。 如果安全切换完成、这些消息将被 SYSFW 拒绝、从而导致启动失败。

    此致、

    Prashant

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

    您好、Prashant

    换句话说、如果我坚持使用 PKA 引擎、我只能在 Linux 操作系统完全启动后执行安全切换。 对吗?  如果可以通过这种方式进行处理、您能否提供 Linux 的参考代码或某个 SDK 发布版本的补丁文件?

    谢谢

    Kuiyong Liu

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

    您好!

    安全切换在 PSDK 中不受支持、所以我们不能进行测试并相应地提供任何补丁来启用这一功能。

    如果有用、SYSFW 会提供 TISCI_MSG_PROC_AUTH_BOOT API 来对与 HSSE 器件上的活动编程密钥签名的二进制进行身份验证。

    https://software-dl.ti.com/tisci/esd/latest/2_tisci_msgs/security/PROC_BOOT.html#proc-boot-authenticate-image-and-configure-processor

    Linux 中还提供了用于各种加密操作的 OpenSSL、如下所述:

    https://software-dl.ti.com/processor-sdk-linux/esd/AM64X/10_01_10_04/exports/docs/linux/Foundational_Components /内核/ Kernel_Drivers / Crypto.html

    此致、

    Prashant

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

    您好!

    我们的要求 是在 Linux 中或在 AM6442 (HS)上的其他 RTOS 中实施基于 RSA 加密和解密的 PKA。  这意味着无法在 Linux 中实现此函数。 对吗? 如果无法从根本上实现此功能、我们将不得不修改实施计划。 请告诉我们情况是否属实。

    、在官员提供的固件中、 安全切换处理是否在内核 R5上执行? 我不确定我的理解是否正确? 在不考虑操作系统的情况下、如果我需要将安全性移交给 A53的内核0、那么在内核 R5的代码中实施安全性移交处理是否是必需的?

    谢谢

    Kuiyong Liu

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

    如前所述、您可以利用 Linux 中的 OpenSSL 执行不同的加密操作、包括 RSA 加密和解密。

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

     Prashant、您好!

    一些供您参考的问题背景:

    由于客户需要将 SA2_UL 驱动程序从 MCU+ SDK 迁移到他们在 A53上自己的 RTOS、因此他们提出了上述问题。  

    1) 1)在 Linux 中使用 OpenSSL 的方式不容易将源代码迁移到自己的 RTOS、此处需要简单的低级驱动程序参考代码。

    2) 2) 驱动程序"example_drivers_SA2UL_PKA_RSA_sign_verife.html"基于 R5 (而不是 A53)、需要的是在 A53上使用 PKA。

    你有什么建议吗?

    谢谢

    Thomas

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

    客户可使用 MCU+ SDK 在 A53内核上启动其 RTOS。

    另外、还有许多开源加密库、可以集成以执行不同的加密操作(包括 RSA 加密和解密)。

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

     Prashant、您好!

    "客户可以使用 MCU+ SDK 在 A53内核上启动其 RTOS。"

    这是否意味着使用 MCU+ SDK 替换 u-boot? 该计划不适合我们、因为有许多相关的变化。

    谢谢

    Kuiyong Liu

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    本计划不适合我们、因为有许多相关更改。

    那么唯一可行的选择就是利用开源库。

    即使从 U-Boot 的安全切换成功、引导流程中的后续阶段不能如之前描述的那样请求任何 TISCI SEC 消息。 如果确实如此、SYSFW 将为导致引导失败的请求返回 NACK。