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.

[参考译文] AM6548:将系统固件加载到 DMSC 控制器

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1233627/am6548-loading-system-firmware-to-the-dmsc-controller

器件型号:AM6548

您好!

我们正在定制电路板上使用 XAM6548BACDXEAFS1、并尝试将系统固件加载到 DMSC 控制器中。

 在 MCU R5处理器上运行我们自己的应用程序。 该应用程序使用"x509CertificateGen.ps1"脚本和德州仪器(TI) PDK (版本8.0.0.36)中的"k3_dev_mpk.pem"密钥签名。 应用程序启动正常、但当系统固件加载到 DMSC 控制器时、则会失败。 我们尝试加载的系统固件文件是使用"Sciclient_loadFirmware"(均来自 PDK 版本8.0.0.36)的"sysfw_sr2-hs-enc.bin"。 'SCiclient_loadFirmware'返回 CSL_EFAIL (-1)。

为什么"Sciclient_loadFirmware"失败、我们可以采取哪些措施来解决该问题?

此致

约翰尼·莫斯特劳姆

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

    您好!

    Sitara 芯片进行非线性校正。 它应为 AM6548BACDXEAFS1。

    此致

    约翰尼·莫斯特劳姆

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

    我会将此任务分配给我们的安全/DMSC 专家、但正如我们讨论过的、我们可能需要有关预生产部件与生产部件(器件类型、芯片版本、 和图片)并且希望了解您是否正在使用安全引导功能、如果是、如何使用或不使用 TI 虚拟密钥等

    谢谢

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

    您好!

    在预生产中、我们使用 AM6548BACDXEAF (加载系统固件时无问题)、在生产中使用 AM6548BACDXEAFS1。 据我了解、这两个版本都是器件版本2。

    MCU 应用程序使用"x509CertificateGen.ps1"脚本和德州仪器(TI) PDK (版本8.0.0.36)中的"k3_dev_mpk.pem"密钥签名。

    此致 Johnny

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

    你好,约翰尼

    S1: 高安全性器件、支持安全引导

    您的产品是否需要安全引导、如果需要、您之前是否使用 TI 虚拟密钥尝试了安全引导流程并完成了任何密钥写入等?

    听起来,所有你以前的开发都是在 GP (非安全启动部件),所以这不会像在 S1部件一样有效。

    S1:  

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

    您好!

    我们始终在预生产 GP 器件上对我们的应用签名(可能我们不需要签名?)。  但是、无论我们使用随机密钥还是 K3_DEV_MPK.pem 密钥进行签名、应用程序都在 GP 和 HS 器件上启动。

    但在将系统固件加载到 DMSC (Sciclient_loadFirmware)时、HS 器件会出现故障。

    我们使用了来自 TI PDK 版本8.0.0.36 (..\ti.pdk.am65xx\ti\drv\sciclient\soc\V0)的系统固件文件。

    在 GP 器件上、我们加载 sysfw_sr2.bin (确定)。

    在 HS 器件上、我们加载 sysfw_sr2-hs-enc.bin (失败)。

    随机密钥:

     powershell -executionpolicy unrestricted\
                            -command '..\ti.pdk.am65xx\ti\build\makerules\x509CertificateGen.ps1'\
                            -b 'mcuapp.bin' -o 'mcuapp.tiimage'\
                            -c R5 -l 0x41C00100 -d DEBUG -j DBG_FULL_ENABLE -m SPLIT_MODE
    OpenSSL 1.1.1l  24 Aug 2021
    
    
    Mode                 LastWriteTime         Length Name
    ----                 -------------         ------ ----
    d-----        31.05.2023     14:44                rtcp1prod
    Checking for OpenSSL...
    OpenSSL 1.1.1l  24 Aug 2021
    Generating random key...
    R5 Certificate being generated :
            X509_CFG = ..\x509-temp.cert
            KEY = ..\eckey.pem
            BIN = mcuapp.bin
            CERT TYPE = R5, 1
            CORE ID = 16
            LOADADDR = 0x41C00100
            IMAGE_SIZE = 325176
            BOOT_OPTIONS = 2
            SHA OID  is 2.16.840.1.101.3.4.2.3
            SHA  is ef0241345d2104cbd6d9228037be7a3ac68e6b577f40c49a82a7a5c48cf70476b19129c1aa17f6441d92ae0dfc26128d5bfdbc2d400d820ebdd12ebaafbd8d64
    SUCCESS: Image mcuapp.tiimage generated. Good to boot
    

    k3_dev_mpk.pem:

    powershell -executionpolicy unrestricted\
                            -command '..\ti.pdk.am65xx\ti\build\makerules\x509CertificateGen.ps1'\
                            -b 'mcuapp.bin' -o 'mcuapp.tiimage'\
                            -c R5 -l 0x41C00100 -d DEBUG -j DBG_FULL_ENABLE -m SPLIT_MODE\
                            -k '..\ti.pdk.am65xx\ti\build\makerules\k3_dev_mpk.pem'
    OpenSSL 1.1.1l  24 Aug 2021
    
    
    Mode                 LastWriteTime         Length Name
    ----                 -------------         ------ ----
    d-----        31.05.2023     14:51                rtcp1prod
    Checking for OpenSSL...
    OpenSSL 1.1.1l  24 Aug 2021
    R5 Certificate being generated :
            X509_CFG = ..\x509-temp.cert
            KEY = ..\ti.pdk.am65xx\ti\build\makerules\k3_dev_mpk.pem
            BIN = mcuapp.bin
            CERT TYPE = R5, 1
            CORE ID = 16
            LOADADDR = 0x41C00100
            IMAGE_SIZE = 325176
            BOOT_OPTIONS = 2
            SHA OID  is 2.16.840.1.101.3.4.2.3
            SHA  is fcfacfa25f6a7d586db886b52c517196205261c2e49421696d210fbbea4538148dff3805b9650036fe9125c8dc7a0f62155d7eb8156714a31a804677d9b3f924
    SUCCESS: Image mcuapp.tiimage generated. Good to boot
    

    此致 Johnny

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

    您好、Johnny、
    AM65x SoC 的器件类型:
    - GP (通用)
    - HS (高安全性),带两个子类型
    ++ HS-FS (现场安全)
    ++ HS-SE (强制安全)

    从 HS-FS 开始的安全启动的概要流程:
    1/. 使用 TI OTP 密钥写入工具对用户密钥集进行编程
    2/. 一旦在 HS-FS 上成功对用户的密钥集进行编程、HS-FS 就会转换为 HS-SE
    3/. SW 需要使用用户密钥集进行签名、以确保 HS-SE 上的安全启动
    注意、
    -在步骤1/中对 OTP 电子保险丝进行编程时,需要为 VPP 引脚提供1.8V 电压。
    -用户需要设置安全密钥服务器,并集成用户密钥配置,代码签名... 和3/.

    P/N "AM6548BACDXEAFS1"为 HS-FS 生产产品、预计将使用额外的开发/集成工作。

    此致!
    -洪

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

    您好!

    我们已使用\pdk_am65xx_08_02_00_21\(RTOS SDK)在我们的硬件上通过 HS 器件从 UART 启动进行了测试、使用 Tera Term XMODEM 加载以下预编译的 SBL 和 sysfw:

    .\pdk_am65xx_08_02_00_21\packages/ti\boot\sbl\binary\am65xx_idk\uart\bin\sbl_uart_img_mcu1_0_release.tiimage

    .\pdk_am65xx_08_02_00_21\packages/ti\drv\sciclient\soc\v0\sysfw_sr2-hs-enc.bin

     从 UART 提取日志:

    7ee98bfa53d98b29d577e0c154eece8ef9ef3ab93d35ddcb8df3edf349
    SBL Revision: 01.00.10.01 (Mar 23 2022 - 12:20:16)
    Waiting for sysfw.bin ...
    SYSFW load...FAILED
    

    为什么 sysfw 会失败? 我们的 HS 器件的 sysfw 签名是否正确?

    我们所做的工作摘自'5.2.8.3。 PDK 用户指南中的"Startup via UART":

    https://software-dl.ti.com/processor-sdk-rtos/esd/AM65X/08_02_00_05/exports/docs/pdk_am65xx_08_02_00_21/docs/userguide/am65xx/boot/boot_k3.html#building-the-sbl-and-its-components

    此致 Johnny

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

    您好、Johnny、
    正如我们昨天在电话中所讨论的、我们建议继续使用非 S1版本的 SoC。
    此致!
    -洪