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:有关 HS-SE 器件调试端口解锁方法的问题

Guru**** 2460850 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1464463/am62a7-question-regarding-hs-se-device-debug-port-unlock-methods

器件型号:AM62A7

工具与软件:

尊敬的 TI 专家:

参阅 TISCI 文档我了解解锁调试端口有两种方法:

  1. 使用调试信息扩展 SBL 映像。
  2. 使用从 UID 生成的证书来解锁调试端口。

但是、 我不确定实施这些标准所需的确切步骤。 您能否提供有关如何使用扩展调试信息生成 SBL 映像以及如何生成证书以基于 UID 解锁调试端口的指导?

此外、 我知道电子保险丝可用于永久锁定调试端口、但 我不清楚这方面的确切过程。 您能否还提供有关如何执行此操作的详细信息或参考资料?

此致、
Yang

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

    尊敬的客户:  

      请参考此处的链接吗?   谢谢。  

       https://software-dl.ti.com/tisci/esd/latest/6_topic_user_guides/secure_debug.html?highlight=jtag#secure-debug-user-guide

    此致、

    Linjun

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

    尊敬的 Linjun:

    感谢您的讲解。 它回答了有关证书生成的问题。

    但是、仍有2个问题有待回答:

    1. 如何 使用扩展调试信息构建 SBL 映像。
    2.  永久锁定调试端口 。

    是否有关于这些流程的任何特定指南?

    此致、

    Yang

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

    1.以下补丁在 SBL 证书中启用调试扩展:

    diff --git a/examples/drivers/boot/sbl_ospi_nand_multistage/sbl_ospi_nand_stage1/am62ax-sk/r5fss0-0_nortos/ti-arm-clang/makefile b/examples/drivers/boot/sbl_ospi_nand_multistage/sbl_ospi_nand_stage1/am62ax-sk/r5fss0-0_nortos/ti-arm-clang/makefile
    index 8966f3a..5b1b36a 100644
    --- a/examples/drivers/boot/sbl_ospi_nand_multistage/sbl_ospi_nand_stage1/am62ax-sk/r5fss0-0_nortos/ti-arm-clang/makefile
    +++ b/examples/drivers/boot/sbl_ospi_nand_multistage/sbl_ospi_nand_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)
    +	$(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) --debug DBG_FULL_ENABLE --rom-image $(BOOTIMAGE_PATH)/$(BOOTIMAGE_NAME) --enable-sbldata $(ENABLE_SBLDATA)
     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)
    +	$(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) --debug DBG_FULL_ENABLE --rom-image $(BOOTIMAGE_PATH)/$(BOOTIMAGE_NAME) --enable-sbldata $(ENABLE_SBLDATA)
     endif
     	$(COPY) $(BOOTIMAGE_NAME_HS) $(BOOTIMAGE_PATH)/tiboot3.bin
     else
    

    2. TIFS 当前不支持对 JTAG_disable 字段进行编程。 它应受 SDK v11.0支持

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

    即使 支持对 eFuse 调试端口进行编程、CRP (客户退货流程)也 无法支持故障芯片。 请注意!

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

    您好!

    为了解锁 HSM 内核、无法使用之前启用调试扩展的方法。

    相反、必须 通过以下部分中所述的 TISCI API 来完成包括 HSM 在内的所有内核的 JTAG 解锁:

    https://software-dl.ti.com/tisci/esd/latest/6_topic_user_guides/secure_debug.html?highlight=jtag#using-tisci-api

    最新的 MCU+ SDK 具有这方面的示例:

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM62AX/10_01_00_33/exports/docs/api_guide_am62ax/EXAMPLES_RUNTIME_DEBUG_UNLOCK.html

    此致、

    Prashant

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

    Prashant、您好!

    我已使用 V9.2 SDK 尝试此方法。 我已经更改了电路板配置以允许 A53内核解锁 JTAG、并重建了 boardcfg、libs 和 SBL。 然后、我刷写并重新启动器件、并从 A53内核收到以下响应消息:

    我连接了 A53内核、发现代码滞留在此处:

    值得注意的是、当我重建 boardcfg 时、它不适用于 device_type=HS。 仅成功生成 GP 的文件。 下面是在构建 boardcfg 时生成的错误、如果我将 devconfig.mak 中的 DEVICE_TYPE 从 GP 更改为 HS。

    我所做的是、首先构建 boardcfg 并将 DEVICE_TYPE 设置为 GP、然后再次构建 boardcfg 并将 DEVICE_TYPE 设置为 HS。 这会生成 sciclient_defaultBoardcfg_hexhs.bin.hs.signed 文件、如下所示。

    然后、我重复重建库和 SBL。 我将 SBL 级1重新刷写到器件中并重新启动。 但是、这一现象仍然存在。

    请帮助解决此问题。

    此致、

    Yang

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

    Prashant、您好!

    我在 V10.1 SDK 中尝试了相同的方法。 A53核心打印了以下内容:

    但我仍然无法连接 HSM 内核。

    参考这里的这个文档、

    DEBUG_UNLOCK_x509_cert_gen 的修改如下:
     .
    HSM 应该能够连接。 它如何仍然无法向 JTAG 开放?

    由于启用 HSM 调试可以帮助处理我们遇到的所有其他块、您是否可以确定该问题的优先级、这是一个紧急问题。

    此致、

    Yang

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

    尊敬的 Yang:

      您能否 按如下所示修改 sciclient_defaultBoardcfg_security.c 以尝试?

      .JTAG_unlock_hosts ={TISCI_HOST_ID_A53_0、0、0、0}、

      

    Linjun

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

    您好!

    此方法也不起作用。 当前的现象是、无论我如何更改 sec_dbg  唯一可以连接的内核是 A530-0和 DM-R5。 此外、在我连接到 DM-R5之后、如果我连接了任何其他被阻断的内核、DM-R5会自动断开、之后 DM-R5无法连接到这两者。

    此外、我注意到在 TISCI 10.01.08文档中显示:

    这是否 适用于 AM62Ax?

    TI 专家、请帮助解决此问题。

    此致、

    Yang

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

    您好!

    这 适用于 AM62Ax 吗?

    该声明适用于 TIFS 内核、而不是 HSM 内核。 HSM 磁芯可在 HSSE 器件上解锁。

    但是我仍然无法连接 HSM 内核。

    请分享调试器在连接到 HSM 内核时报告的错误。

    谢谢!

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

    Prashant、您好!

    请参考下图:
    以下是修改 cert_gen.py 的方法:

    这2个内核实际上可以连接到:

    如果我尝试连接到 HSM、就会出现以下错误:



    此外、如果我尝试连接到 MCU-R5内核、也会发生这种情况(大约2秒后、DM-R5也会被阻止):

    非常感谢您的支持。

    此致、

    Yang

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

    您好!

    似乎未引导 MCU R5F 内核。 您能否分享完整的启动日志?

    为了进行测试、您能否启动默认的 HSM appimage 并查看您是否能够连接到 HSM 内核?

    此致、

    Prashant

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

    Prashant、您好!

    这是我使用的闪存脚本。 HSM 映像由 默认 HSM_MIN_SAMPLE 生成。


    这是 SBL 和 A53打印日志(UART 编号1):

    这是 DM 打印日志(UART 编号3)

    UART No.2 (通常由 HSM 跟踪使用)和 UART No.4 (通常由 MCU-R5使用)没有打印任何内容。

    这是什么意思?

    此致、

    Yang

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

    您好!

     将这些 IPC 示例项目切换到 Helloworld 项目后、内核可以成功引导、因此我可以成功连接到 HSM 和 MCU-R5。

    我将使用客户端开发所基于的 SDK 版本(即 SDK V9.2)尝试相同的版本。 如果有任何问题、我将在此处对其进行更新。

    感谢您指出 MCU 未在此处启动的原因 Prashant。

    此致、

    Yang

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

    Prashant、您好!

    方法是有效的、但前提是我将 v9.2中 mcu_plus_sdk\tools\sysfw\boardcfg 下的 makefile 替换为 SDK V10.1中的 makefile。

    此致、

    Yang

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

    您好!

    电路板配置编译故障是一个已知问题、已通过 SDK v10.0修复。

    https://github.com/TexasInstruments/mcupsdk-core-k3/commit/2403d2eeb

    此致、

    Prashant

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

    Prashant、您好!

    我懂了。   由于问题是 MCU 内核未在运行 IPC 示例时正确引导、因此 SDK 中的 IPC 示例的功能是否存在任何已知问题?

    此致、

    Yang

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

    您好!

    没有与 IPC 示例相关的已知问题。

    我能够使用默认 IPC_RPMSG_ECHO 示例成功连接到 MCU 内核。

    此致、

    Prashant