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.

[参考译文] F29H850TU:在通过 UART 进行代码预置期间无法加载 HSM RAM 映像

Guru**** 2872290 points

Other Parts Discussed in Thread: LAUNCHXL-F29H85X

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1638228/f29h850tu-unable-to-load-hsm-ram-image-during-code-provisioning-through-uart

器件型号: F29H850TU
主题中讨论的其他器件: LAUNCHXL-F29H85X

您好:

我在首次尝试对 LAUNCHXL-F29H85X 执行代码预置时遇到问题。 我已成功执行密钥配置。 现在我尝试执行代码预置、但一旦在 UART_flash_programmer 中选择“3-Load HSM RAM Image“、器件就会停止响应。 我正在上传 使用未修改的 makefile 构建的 tifs_f29h85x_hs_se_code_provision.release.hs.hsmimage。  

我已经在辅助 UART 上的一些日志添加到 ram_based_sl 中、并发现执行永远不会从代码中的这个位置返回 (it 返回任何状态、然后 进入 Example_Error ():

在文件:sbl_key_provisioning.c 中
在函数中:int32_t loadHSMRT (uint32_t BaseAddress)
行:hsmStatus = HsmClient_waitForBootNotify (NULL、0);

因此、目前我遇到了问题、无法继续进行代码预置。 我遵循 TIFS 中的 docs 文件中的说明。

软件包版本:f29h85x-sdk_1_03_00_00、tifs_f29h85x_01_03_00_00、otp_keywriter_f29h85x_sr_10_1_03_00_00。

器件版本信息(UC 上的文本):3LA-54A449W

我使用 TI 封装中提供的开发密钥。

来自 uart_flash_programmer 的器件相关信息:

uart_flash_programmer

我正在使用命令:uart_flash_programr.exe --device f29h85x --port COM17 --kernel ram_based_uart_sbl.bin --hsmrt tifs_f29h85x_hs_se_code_provision.Release.hs.hsmimage --cpseccfg seccfg.bin

接收到的包含 SoC ID 内容的数据包、打印信息...

--------------------------------
SOC ID 硬件信息:
--------------------------------
器件 ID       :0x1706
部件号    :0xff
PG 版本     : 0
ROM 版本    :0
金属型号   :0
--------------------------------
SOC ID CPU 信息:
--------------------------------
C29 BootROM 版本:0x10000
--------------------------------
SOC ID HSM 公共信息:
--------------------------------
器件名称    :F29H85X
器件类型    :HS_KP(密钥预置)
HSM BootROM 版本:0x10000
--------------------------------
SOC ID HSM 安全信息:
--------------------------------
是主设备  :正确
#已配置密钥: 2.
密钥版本   :SMPK(二级制造商密钥) (仅限 HS-SE)
SW SBL 修订版  :0
SW HSMRt 修订版 :0
SW SSU 修订版  :0
SW FLW 修订版  :0
TI MPK 哈希    :ea0a5e7e2acbf7b587821766454242f87a23ca45cc1ad0d595661468eb571558b019a4cd88ac5c2e901ce8c171c2dceed66273e8796c839597402eff5c32ccf
活动 MPK 哈希  :ce0c44734447afec12ba0b2226c3bdbc15576d212323ece46a9c4ccd6a417086083fee572a09a9496dbed447a9f13f9cf535fad75b18e0ee095a4e783c62
器件 UID     :a0390a292a738f32f04f8c11c46f303604ef72dd741a42d981ad6877cdde83858de18edd8f4b2ab63725c9e6ff3b647688579555983811894f2fc72867a8b53d
--------------------------------

收到的带有引导 ROM 状态的数据包、打印信息...

--------------------------------
引导 ROM 检查:
--------------------------------
(省略通过或忽略的引导流程执行状态)
没有失败的步骤
--------------------------------
SSU 检查:
--------------------------------
(省略通过或忽略的引导流程执行状态)
没有失败的步骤
--------------------------------
引导 ROM 状态:
--------------------------------
链路 0 弹性循环:3068757
复位计数     : 260107919
复位原因 (RESC) :由 XRSn 复位、由 NMI 看门狗复位 (NMIWDRSn)、XRSn 引脚开启、调试器断开连接 (0x4000000a)
系统时钟    :200MHz
ECC DR1 错误地址 :0
ECC DR2 错误地址 :0
启动模式      : UART 引导 (1)
Bootloader Lock  :已禁用
生命周期状态  :HS_KP
链路 0 错误 ID  :无错误
--------------------------------
SSU 状态:
--------------------------------
CPU1 活动存储体管理地址:0xdadcafe
CPU3 活动银行管理地址:0xdadcafe
CPU1 活动安全配置地址 :0xdadcafe
CPU3 活动安全配置地址 :0xdadcafe
银行模式   :银行模式 0
CPU1 存储体交换:默认交换
CPU3 存储体交换:默认交换
CPU1 Sec Cfg :默认激活
CPU3 安全配置 :默认激活
SSU 模式   :SSU 模式 1
--------------------------------
NMI 状态:
--------------------------------
ESM 原始状态:0
EA CPU1 PR :(错误类型)0、(高优先级地址)0xdadcafe、(低优先级地址)0xdadcafe、(PC 地址)0xdadcafe
EA CPU1 DR1:(错误类型)0、(高优先级地址)0xdadcafe、(低优先级地址)0xdadcafe、(PC 地址)0xdadcafe
EA CPU1 DR2:(错误类型)0、(高优先级地址)0xdadcafe、(低优先级地址)0xdadcafe、(PC 地址)0xdadcafe
EA CPU1 DW :(错误类型)0、(高优先级地址)0xdadcafe、(低优先级地址)0xdadcafe、(PC 地址)0xdadcafe
EA CPU1 Int:(Err 类型)0、(High-Pri Addr) 0xdadcafe、(Low-Pri Addr) 0xdadcafe、(PC Addr) 0xdadcafe
--------------------------------

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

    尊敬的 Marek:

    您能否检查一下以下内容:

    1. CP 二进制文件已在 CONFIG=RAM 的 Release Configuration 中构建。
    2. CP 二进制文件是使用与所用密钥相同的算法构建的。
    3. 基于 RAM 的 UART SBL 内置在安全 KP 和 CP 中、或仅安全 CP 构建配置中。
    4. 基于 RAM 的 UART SBL 使用与所用密钥相同的算法进行构建。

    谢谢。此致、
    Aditya Singal

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

    您好、Aditya、

    1. 二进制文件是使用下面附带的命令构建的。 对于 CP 二进制文件、使用了 CONFIG=RAM。 我不确定调试/发布配置、因为我使用了 make 命令而不是 CCS 编译。
    2、我使用 device_type=hs、algorithm=RSA4k、对应 tifs /tools/boot/signing/mcu_custMpk.pem 进行 CP 二进制签名。 确定 KP  Keys_devel/rsa4k/smpk.pem   密钥、它包含完全相同的密钥。

     基于 RAM 的 UART SBL 在 SECURE_KP_CP 
     Build Configuration 中构建 — 在 make 命令中使用 APP=SECURE 参数
    4,是的 — 与第 2 点相同。

    cd ~/ti/tifs_f29h85x_01_03_00_00
    make -s -C ~/ti/tifs_f29h85x_01_03_00_00/hsm_firmware/f29h85x/code_provisioning/hsm0-0_nortos/ti-arm-clang DEVICE=f29h85x DEVICE_TYPE=HS DBG_ENABLED=no ENC_ENABLED=yes CONFIG=RAM ALGORITHM=RSA4k all
    
    cd ~/ti/f29h85x-sdk_1_03_00_00/
    cd examples/driverlib/single_core/flash/ram_based_sbl/ccs/
    make -s -C ~/ti/f29h85x-sdk_1_03_00_00/examples/driverlib/single_core/flash/ram_based_sbl/ccs -f ram_based_uart_sbl.mk all APP=SECURE ALGORITHM=RSA4k
    
    /usr/bin/python3 ~/ti/f29h85x-sdk_1_03_00_00/tools/misc/genSeccfgBin.py ~/ti/ccs2040/ccs/tools/compiler/ti-cgt-c29_2.0.0.STS/bin/c29objcopy ~/ti/f29h85x-sdk_1_03_00_00/source/defseccfgbin/default_seccfg_bankmode_0_ssumode1.out ~/ti/f29h85x-sdk_1_03_00_00/tools/boot/signing/mcu_rom_image_gen.py ~/ti/smpk.pem /usr/bin/python3
    
    ./uart_flash_programmer --device f29h85x --port /dev/ttyACM0 --kernel ram_based_uart_sbl.bin --hsmrt tifs_f29h85x_hs_se_code_provisioning.release.hs.hsmimage --cpseccfg seccfg.bin
    

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

    尊敬的 Marek:

    您是否在密钥配置后为板提供了上电复位?

    谢谢。此致、
    Aditya Singal