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.

[参考译文] AM62A7:UART 日志 HS-SE 器件

Guru**** 2826855 points

Other Parts Discussed in Thread: AM62A7, UNIFLASH, AM625

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1625573/am62a7-uart-log-hs-se-device

器件型号: AM62A7
Thread 中讨论的其他器件: UNIFLASHAM625

您好:

   我正在使用的器件  AM62A7 HS-SE 器件 已启用 使用自定义密钥进行安全启动 。  

   在应用 eMMC 引导和 UART 引导的同时、电路板上仅使用 eMMC(无 norflash、无 SD)。

   在将器件传输到 HS-SE 之前、 刷写到 eMMC 中的映像 (SBL、HSM、MCU_R5、Uboot) 可以正常运行、并且可以通过 UART 输出系统启动日志。 但是、在将器件传输到 HS-SE(启用安全启动)并且使用自定义密钥签名的映像会刷写到 eMMC 中后、UART 端口不再打印系统的启动信息。

   根据调试结果、我认为安全启动验证是有效的、因为 R5 内核可以正常工作(R5 内核的 CAN 总线消息被正常发送和接收)、此外、当 R5 内核映像的数据被篡改时、R5 内核将不再工作。

  我通过 UART 使用 uniflash 刷写了图像。

  我想知道 UART 上的日志丢失的原因、如何修复?

  非常感谢!

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

    您好:

    您是否表示图像已在 HSSE 设备上成功引导、但在 HSFS 设备的 UART 端口上没有看到任何日志?

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

    是的、我通过导入 SMPK&BMPK 将器件转换为 HS-SE。 我在 UART 端口上看不到转换前可见的任何日志。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    根据调试结果、我认为安全启动验证有效、因为 R5 内核可以正常工作

    我想知道您是否认为启动似乎成功、但没有看到任何日志。

    在任何情况下、

    您能否按照以下线程的前几个响应来检查图像是否正确签名

    e2e.ti.com/.../am625-am62x-migration-sdk9-to-sdk11-issue-tiboot3-bin-hs-loads-but-does-not-run-dfu

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

    我的映像为*。hs 格式、而不是 bin、使用 custMpk_am62ax.pem 签名。 有什么问题吗? 然后、我根据配置文件使用 uniflash 将映像刷写到 eMMC。

    以下是 SE 器件的信息。

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

    如果可能、您能否将备用引导模式配置为 UART、将主引导模式配置为仅 eMMC? 如果 ROM 跳转到备用引导模式 (UART)、您应该会在 UART 控制台上看到十六进制字符串。 这将确认 ROM 拒绝从 eMMC 读取的图像。

    否则、

    如果您有可用的调试设置、请应用以下补丁并刷写更新后的 SBL stage1

    diff --git a/examples/drivers/boot/sbl_emmc_linux_multistage/sbl_emmc_linux_stage1/am62ax-sk/r5fss0-0_nortos/ti-arm-clang/makefile b/examples/drivers/boot/sbl_emmc_linux_multistage/sbl_emmc_linux_stage1/am62ax-sk/r5fss0-0_nortos/ti-arm-clang/makefile
    index c8866f5964d..4e5107907a8 100644
    --- a/examples/drivers/boot/sbl_emmc_linux_multistage/sbl_emmc_linux_stage1/am62ax-sk/r5fss0-0_nortos/ti-arm-clang/makefile
    +++ b/examples/drivers/boot/sbl_emmc_linux_multistage/sbl_emmc_linux_stage1/am62ax-sk/r5fss0-0_nortos/ti-arm-clang/makefile
    @@ -272,9 +272,9 @@ $(BOOTIMAGE_NAME): $(BOOTIMAGE_BIN_NAME)
     	@echo  Boot image: am62ax:r5fss0-0:nortos:ti-arm-clang $(BOOTIMAGE_PATH)/$@ ...
     ifeq ($(DEVICE_TYPE),HS)
     ifeq ($(ENC_SBL_ENABLED),yes)
    -	$(BOOTIMAGE_CERT_GEN_CMD) --swrv 1 --sbl-enc --enc-key $(APP_ENCRYPTION_KEY) --sbl-bin $(BOOTIMAGE_PATH)/$(BOOTIMAGE_BIN_NAME) --sysfw-bin $(SYSFW_PATH)/sysfw-hs-enc.bin --sysfw-inner-cert $(SYSFW_PATH)/sysfw-hs-enc-cert.bin --boardcfg-blob $(BOARDCFG_BLOB) --boardcfg-sbldata-blob $(BOARDCFG_SBLDATA_BLOB) --sbl-loadaddr $(SBL_RUN_ADDRESS) --sysfw-loadaddr $(SYSFW_LOAD_ADDR) --bcfg-loadaddr $(BOARDCFG_LOAD_ADDR) --bcfg-sbldata-loadaddr $(BOARDCFG_SBLDATA_LOAD_ADDR) --key $(BOOTIMAGE_CERT_KEY) --rom-image $(BOOTIMAGE_PATH)/$(BOOTIMAGE_NAME) --enable-sbldata $(ENABLE_SBLDATA) --keyversion $(VERSION)
    +	$(BOOTIMAGE_CERT_GEN_CMD) --swrv 1 --sbl-enc --enc-key $(APP_ENCRYPTION_KEY) --sbl-bin $(BOOTIMAGE_PATH)/$(BOOTIMAGE_BIN_NAME) --sysfw-bin $(SYSFW_PATH)/sysfw-hs-enc.bin --sysfw-inner-cert $(SYSFW_PATH)/sysfw-hs-enc-cert.bin --boardcfg-blob $(BOARDCFG_BLOB) --boardcfg-sbldata-blob $(BOARDCFG_SBLDATA_BLOB) --sbl-loadaddr $(SBL_RUN_ADDRESS) --sysfw-loadaddr $(SYSFW_LOAD_ADDR) --bcfg-loadaddr $(BOARDCFG_LOAD_ADDR) --bcfg-sbldata-loadaddr $(BOARDCFG_SBLDATA_LOAD_ADDR) --debug DBG_FULL_ENABLE --key $(BOOTIMAGE_CERT_KEY) --rom-image $(BOOTIMAGE_PATH)/$(BOOTIMAGE_NAME) --enable-sbldata $(ENABLE_SBLDATA) --keyversion $(VERSION)
     else
    -	$(BOOTIMAGE_CERT_GEN_CMD) --swrv 1 --sbl-bin $(BOOTIMAGE_PATH)/$(BOOTIMAGE_BIN_NAME) --sysfw-bin $(SYSFW_PATH)/sysfw-hs-enc.bin --sysfw-inner-cert $(SYSFW_PATH)/sysfw-hs-enc-cert.bin --boardcfg-blob $(BOARDCFG_BLOB) --boardcfg-sbldata-blob $(BOARDCFG_SBLDATA_BLOB) --sbl-loadaddr $(SBL_RUN_ADDRESS) --sysfw-loadaddr $(SYSFW_LOAD_ADDR) --bcfg-loadaddr $(BOARDCFG_LOAD_ADDR) --bcfg-sbldata-loadaddr $(BOARDCFG_SBLDATA_LOAD_ADDR) --key $(BOOTIMAGE_CERT_KEY) --rom-image $(BOOTIMAGE_PATH)/$(BOOTIMAGE_NAME) --enable-sbldata $(ENABLE_SBLDATA) --keyversion $(VERSION)
    +	$(BOOTIMAGE_CERT_GEN_CMD) --swrv 1 --sbl-bin $(BOOTIMAGE_PATH)/$(BOOTIMAGE_BIN_NAME) --sysfw-bin $(SYSFW_PATH)/sysfw-hs-enc.bin --sysfw-inner-cert $(SYSFW_PATH)/sysfw-hs-enc-cert.bin --boardcfg-blob $(BOARDCFG_BLOB) --boardcfg-sbldata-blob $(BOARDCFG_SBLDATA_BLOB) --sbl-loadaddr $(SBL_RUN_ADDRESS) --sysfw-loadaddr $(SYSFW_LOAD_ADDR) --bcfg-loadaddr $(BOARDCFG_LOAD_ADDR) --bcfg-sbldata-loadaddr $(BOARDCFG_SBLDATA_LOAD_ADDR) --debug DBG_FULL_ENABLE --key $(BOOTIMAGE_CERT_KEY) --rom-image $(BOOTIMAGE_PATH)/$(BOOTIMAGE_NAME) --enable-sbldata $(ENABLE_SBLDATA) --keyversion $(VERSION)
     endif
     	$(COPY) $(BOOTIMAGE_NAME_HS) $(BOOTIMAGE_PATH)/tiboot3.bin
     else
    

    如果 ROM 正确引导 SBL stage1、则它应该会解锁 JTAG、以便您能够连接到 WKUP R5F 内核。 在这种情况下、请连接到内核并记下停止内核的地址。

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

    BTW、您用于生成用于转换器件的 Keywriter 证书的 Keywriter 证书生成命令是什么? 我想验证您是否也对加密密钥进行了编程、因为 SBL stage1 默认在 SDK 中加密。 因此、如果您尚未对加密进行编程、ROM 将无法引导 SBL stage1。

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

    我理解您的担忧。 我已将 SMPK、SMEK、BMPK 和 BMEK 编程为电子保险丝。 我使用的命令是“./smek gen_keywr_cert.sh -t tifek/ti_fek_public.pem --mSv 0xC0FFE -s keys_devel/v15/smpk.pem --smek keys_devel/smek.key -b keys _devel/v15/bmpk.pem --bmek keysl key_devel/bmek.key ---keycnt 1 也已被默认加密、而且 sbl-keyc1 加密。

    UART 日志在演示板上看起来正常(AM625 SE 器件、我认为 AM62A7 和 AM625 在安全功能方面是相似的)。

    “无 UART 日志“是否是 SE 器件的安全功能? 我 在 makefile 中添加了“--debug DBG_FULL_ENABLE“以  重新编译 SBL stage1、但 UART 的问题仍然存在。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否“no UART log“是 SE 设备的安全功能?

    不是真的。

    ]我 在 makefile 中添加了“--debug DBG_FULL_ENABLE“以  重新编译 SBL stage1、但 UART 的问题仍然存在。

    在这种情况下、您是否可以使用调试器连接到 WKUP R5F 内核? 如果您能够连接、则 ROM 正在引导 SBL stage1、但它卡在某个位置。

    您能否同时共享 SBL stage1 映像?

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

    好的、我可以尝试一下。

    这是我的 SBL stage1 iamge。

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

    e2e.ti.com/.../sbl_5F00_emmc_5F00_linux_5F00_stage1.release.hs.rar

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

    对我来说、这张图片看起来很好。 我认为它至少应该能够成功引导。 如果您可以提供调试器测试的结果、我们可以继续。

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

    好的、谢谢。 我将尝试使用调试器连接到 WKUP R5F 内核、然后提供结果。