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.

[参考译文] LP-AM243:多分区安全启动

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1390180/lp-am243-multi-partition-secure-boot

器件型号:LP-AM243
主题中讨论的其他器件:UNIFLASHSysConfig

工具与软件:

我们正在检查转换为 HS-SE 的器件(LP-AM243x PROC109A)上多分区的安全启动。

所用的样本是这样的。

C:\ti\mcu_plus_sdk_am243x_09_02_01_05\examples\drivers\ipc\ipc_notify_echo

此时、在创建 r5fss0-0的 appimage 时、我们将"CUST_MPK"更改为无效的密钥、

预期 r5fss0-0的 appimage 无法启动、

但从日志来看,它似乎已经开始正常。

此外、我们使用以下方法确认了这一点。

1.使用正确的"CUST_MPK"构建 ipc_notify_echo_am243x-lp_system_freertos_nortos。

2.更改 devconfig.mak 中的"CUST_MPK"设置、并仅编译 IPC_NOTIFY_ECHO_am243x-LP_r5fss0-0_freertos_ti-arm-clang。

有效 CUST_MPK
CUST_MPK=$(signing_tool_path)/CustMpk_am64x_am243x.pem
CUST_MEK=$(signing_tool_path)/custMek_am64x_am243x.txt

CUST_MPK 无效
CUST_MPK=$(signing_tool_path)/MCU_custMpk.pem
CUST_MEK=$(signing_tool_path)/custMek_am64x_am243x.txt

3.使用 uart_uniflash.py 进行闪存。

我想让 appimage 无法在多分区系统上启动。 正确的步骤是什么?

此致、
Yukinobu

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

    尊敬的 Yukinobu:

    正确的流程是什么?

    该过程看起来正确。

    您是否检查"ipc_notify_echo_am243x-lp_r5fss0-0_freertos_ti-arm-clang"的构建日志以验证生成的 appimage 是否确实由"mcu_custMpk.pem"签名?

    您是否还检查了"custMpk_am64x_am243x.pem"和"mcu_custMpk.pem"密钥是否 不同?

    此致、

    Prashant

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

     Prashant、您好!

    [报价 userid="531297" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1390180/lp-am243-multi-partition-secure-boot/5317664 #5317664"]

    您是否检查"ipc_notify_echo_am243x-lp_r5fss0-0_freertos_ti-arm-clang"的构建日志以验证生成的 appimage 是否确实由"mcu_custMpk.pem"签名?

    [报价]

    我尝试了在相关工程的"makefile_ccs_bootimage_gen"中输出 APP_signing_key。
    因此、我可以确认它已由"mcu_custMpk.pem"签名。

    '''
    'ARM 链接器:"ipc_notify_echo_am243x-lp_r5fss0-0_freertos_ti-arm-clang.out"'
    '''
    引导映像:am243x:r5fss0-0:freertos:ti-arm-clang C:/Users/hasinoguti/workspace_v12/ipc_notify_echo_am243x-lp_r5fss0-0_freertos_ti-arm-clang/Debug/ipc_notify_echo_am243x-lp_r5fss0-0_freertos_ti-arm-clang.appimage ...
    引导映像签名:加密已禁用。
    APP_signing_key = C:/ti/mcu_plus_sdk_am243x_09_02_01_05/tools/boot/signing/mcu_custMpk.pem
    正在生成 C:/Users/hasinoguti/workspace_v12/ipc_notify_echo_am243x-lp_r5fss0-0_freertos_ti-arm-clang/Debug/ipc_notify_echo_am243x-lp_r5fss0-0_freertos_ti-arm-clang.appimage 的证书...
    引导映像:am243x:r5fss0-0:FreeRTOS:ti-arm-clang C:/Users/hasinoguti/workspace_v12/ipc_notify_echo_am243x-lp_r5fss0-0_freertos_ti-arm-clang/Debug/ipc_notify_echo_am243x-lp_r5fss0-0_freertos_ti-arm-clang.appimage.hs 完成!!
    .

    您是否还检查过"custMpk_am64x_am243x.pem"和 "mcu_custMpk.pem"两个密钥是否不同?

    有。 我已确认"custMpk_am64x_am243x.pem"和"mcu_custMpk.pem"不同。


    我还需要检查哪些其他内容吗?

    此致、
    Yukinobu

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

    尊敬的 Yukinobu:

    您是否在 SBL 的 SysConfig 中选中了该选项? 如果选中此选项、SBL 会在加载应用映像之前跳过其身份验证。

    此致、

    Prashant

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

     Prashant、您好!

    感谢您的意见。
    SBL 已经过检查。
    我已将其取消选中并重新编译 SBL。

    正如预期的那样、启动时出现错误、但我有一个问题。
    r5f0-1没有日志。
    我可以假设这是因为 r5f0-0存在身份验证错误、而 r5f0-1无法启动吗?

    成功日志
    信息:bootloader_runCpu:155:CPU r5F1-0被初始化为800000000 Hz!!
    信息:bootloader_runCpu:155:CPU r5F1-1被初始化为800000000 Hz!!
    信息:bootloader_runCpu:155:CPU m4f0-0初始化为400000000 Hz!!
    信息:bootloadSelfCpu:207:CPU r5f0-0初始化为800000000 Hz!!
    信息:bootloadSelfCpu:207:CPU r5f0-1初始化为800000000 Hz!!

    故障日志
    信息:bootloader_runCpu:155:CPU r5F1-0被初始化为800000000 Hz!!
    信息:bootloader_runCpu:155:CPU r5F1-1被初始化为800000000 Hz!!
    信息:bootloader_runCpu:155:CPU m4f0-0初始化为400000000 Hz!!
    某些测试失败!

    此致、
    Yukinobu

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

    尊敬的 Yukinobu:

    由于两种设置之间唯一的差异是签名、因此您可以假定失败是由于身份验证失败。

    如有疑问、您可以应用以下补丁来转储每个 appimage 的身份验证状态

    diff --git a/source/drivers/bootloader/bootloader.c b/source/drivers/bootloader/bootloader.c
    index 3aa46db1..aad3608f 100644
    --- a/source/drivers/bootloader/bootloader.c
    +++ b/source/drivers/bootloader/bootloader.c
    @@ -666,6 +666,12 @@ int32_t Bootloader_parseMultiCoreAppImage(Bootloader_Handle handle, Bootloader_B
                 status = SystemP_SUCCESS;
             }
     
    +        if(status == SystemP_SUCCESS) {
    +            DebugP_log("Authentication passed\r\n");
    +        } else {
    +            DebugP_log("Authentication failed\r\n");
    +        }
    +
             if(SystemP_SUCCESS == status)
             {
                 memset(&mHdrCore[0], 0xFF, BOOTLOADER_MAX_INPUT_FILES*sizeof(Bootloader_MetaHeaderCore));
    

    然后、您应该会看到以下日志、这些日志确认失败是由于 R5F0-0 appimage 的身份验证失败所致。

    [12:27:48.275] DMSC Firmware Version 9.2.8--v09.02.08 (Kool Koala)
    [12:27:48.277] DMSC Firmware revision 0x9
    [12:27:48.277] DMSC ABI revision 3.1
    
    [12:27:48.291] Authentication passed
    [12:27:48.292] INFO: Bootloader_runCpu:155: CPU r5f1-0  is initialized to 800000000 Hz !!!
    [12:27:48.323] Authentication passed
    [12:27:48.324] INFO: Bootloader_runCpu:155: CPU r5f1-1 is initialized to 800000000 Hz !!!
    [12:27:48.339] Authentication passed
    [12:27:48.371] INFO: Bootloader_runCpu:155: CPU m4f0-0 is initialized to 400000000 Hz !!!
    [12:27:48.387] Authentication failed
    [12:27:48.388] Some tests have failed!!

    此致、

    Prashant