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.

[参考译文] TDA4VH:Keywriter 调试错误

Guru**** 2807785 points

Other Parts Discussed in Thread: AM69

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1613457/tda4vh-keywriter-debug-errors

器件型号: AM69

我尝试配置 AM69 Devkit、并尝试向 OPT EXT 保险丝写入 16 个字节。 在第一次尝试时、我收到了如下所示的错误。 基于此、可能不支持可选的保险丝。


OTP Keywriter 版本:10.1.4-v10.01.04a-1-gf7c27 (Fie.
传统引导模式
OTP_VppEn
AM69 SK 检测到!!
WKUP_GPIO0_VPP_CTRL 输出高电平
已启动钥匙编程顺序
从 0x41c70004 获取 OTP 证书
Sciclient_otpProcessKeyCfg 返回:–1
调试响应:0x6e000000
钥匙编程顺序已完成

然后、我修改了 Keywriter 代码、以便仅写入所需的保险丝和配置数据。 但是、由于某种原因、串行端口会在对电路板进行下电上电时发生变化、并且没有捕获任何日志。 在关闭然后重新打开并重新运行该过程后、我观察到如下所示的错误。

OTP Keywriter 版本:10.1.4-v10.01.04a-1-gf7c27 (Fie.
传统引导模式
OTP_VppEn
AM69 SK 检测到!!
WKUP_GPIO0_VPP_CTRL 输出高电平
已启动钥匙编程顺序
从 0x41c70004 获取 OTP 证书
Sciclient_otpProcessKeyCfg 返回:–1
调试响应:0x4e000800
钥匙编程顺序已完成

从 Keywriter 日志和文档来看、我觉得密钥保险丝可能已成功烧录、但我因尝试覆盖它们而出现 gettign 错误。 我尝试引导未签名的映像、但没有串行输出。 运行未签名映像时、是否预计没有串行日志? 我是否应该尝试引导已签名的映像来验证配置流程? 是否有任何可靠的方法来重新运行 Keywriter 或验证保险丝是否已正确编程?

谢谢

Shabnam

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

    这是我运行的原始命令:

    ./gen_keywr_cert.sh -t ti_fek_public.pem -s keys/smpk.pem --smek keys/smek.key -b keys/bmpk.pem --bmek keys/bmek.key --keycnt 2 --keyrev 1 --mSv 0x1 --SR-sysfw --sr-ext“ ext-bmpk.pem ext_otp_data.bin -otp-sbl-0-otp
    第 128 章

    我已经删除-ext-opt-field,这可以保持未融合。

    我是否可以假定--sr-sbl--sr-sysfw--sr-bcfg已设置为1、因此不需要再次写入? 如果我尝试再次写它们、会出错吗?

    此外、我是否应该假设在发生任何错误时、keyrev即使密钥已经成功写入、器件也不会转换到 HS-SE?

    谢谢

    Shabnam



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

    尊敬的  Shabnam:

    两项试验是否都有 TIFS 跟踪? 此外、您正在使用哪个 Keywriter 包版本?

    此致
    Diwakar

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

    我没有得到任何迹线。 很好  OTP Keywriter 版本:10.1.4-v10.01.04a-1-gf7c27。


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

    我尝试根据 Keywriter 中的自述文件、仅使用主密钥和备份密钥对第二块电路板进行编程。


    ./gen_keywr_cert.sh
    -t ti_fek_public.pem \
    -s keys/smpk.pem --smek keys/smek.key -s-rp --smek-rp \
    -b keys/bmpk.pem --bmek keys/bmek.key -b-rp --bmek-rp \
    -- MEK-OPT 0x1 -- MPK-OPT 0x21 \
    -- keycnt 2 -- keycnt-wp \
    -- keyrev 1 \

    我看到此错误:

    OTP Keywriter 版本:10.1.4-v10.01.04a-1-gf7c27 (Fie.

    传统引导模式

    OTP_VppEn

    AM69 SK 检测到!!

    WKUP_GPIO0_VPP_CTRL 输出高电平

    已启动钥匙编程顺序

    从 0x41c70004 获取 OTP 证书

    Sciclient_otpProcessKeyCfg 返回:–1

    调试响应:0x800

    钥匙编程顺序已完成

    可能与我的电源有关吗? 如果是、我是否可以成功修复并配置电路板?

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

    尊敬的 Shabnam:

    我没有得到任何跟踪

    请检查唤醒 UART 以获取 TIFS 跟踪。 您提供的日志来自 R5 应用程序、但我们需要 TIFS 级日志来准确查看 TIFS 内部 eFuse 写入操作期间发生的情况。

    它是否与我的电源有关? 如果是、我可以修复它并成功配置主板吗?

    在尝试完整的密钥编程之前、我们通过在新电路板上仅对带有覆盖标志的 MSV 值进行编程来验证 eFuse 写入操作是否正常工作。 这种方法确保了我们不会在写过程中出现问题时丢失另一个板。由于我们已经在当前板上运行了多个测试、因此我们最好选择新板以避免任何混淆。

    请使用以下命令生成只对 MSV 值进行编程的 Keywriter 映像:

    ./gen_keywr_cert.sh --mSv 0xC0FFE --mSv-OVRD -t ti_FEK_public.pem

    运行 Keywriter 映像后共享结果。 还想知道您是在定制电路板还是在 EVM 上运行该工具?

    此致
    Diwakar

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

    我打开了所有端口、没有看到任何日志。

    我已经测试过编写 MSV。 在第一次尝试时、我观察到异常的日志记录行为 、如 Keywriter 正在复位、未发出调试成功消息、并且日志记录意外停止。


    第二次尝试时、我收到 MSV 的编程错误、这是在没有显式启用覆盖的情况下预期出现的错误。

    第一个日志:

    ORT /dev/ttyUSB1、17:04:34 [U]

    按 CTRL-A Z 获取有关特殊键的帮助
                                                      
    OTP Keywriter 版本:02.00.00.00 (2026 年 2 月 13 日 — 20:37:42)                      
                                                      
     OTP Keywriter 版本:10.1.4-v10OTP Keywriter 版本:02.00.00.00 (2 月 13 日 2026 - 20:37:42)       
                                                      
     OTP KOTP Keywriter 版本:02.00.00.00 (2026 年 2 月 13 日 — 20:37:42)

     OTP KOTP Keywriter 版本:02.00.00.00 (2026 年 2 月 13 日 — 20:37:42)

     OTP KOTP Keywriter 版本:02.00.00.00 (2026 年 2 月 13 日 — 20:37:42)

     OTP OTP Keywriter 版本:02.00.00.00 (2 月 13 日 2026 - 20:37:42)

     OTP KOTP Keywriter 版本:02.00.00.00 (2026 年 2 月 13 日 — 20:37:42)

     OTP Keywriter 版本:OTP Keywriter 版本:02.00.00.00 (2026 年 2 月 13 日 — 20:37:42)

     OTP Keywriter 版本:10.1.4-v10.01.04a-1-gf7c27 (Fie.
    传统引导模式
    OTP_VppEn
    OTP Keywriter 版本:02.00.00.00 (2026 年 2 月 13 日 — 20:37:42)

     OTP Keywriter 版本:10.1.4-v10.01.04a-1-gf7c27 (Fie.
    传统引导模式
    OTP_VppEn
    OTP Keywriter 版本:02.00.00.00 (2026 年 2 月 13 日 — 20:37:42)

     OTP KOTP Keywriter 版本:02.00.00.00 (2026 年 2 月 13 日 — 20:37:42)

     

    第二个日志:  


    OTP Keywriter 版本:02.00.00.00 (2026 年 2 月 13 日 — 20:37:42)
    OTP Keywriter 版本:10.1.4-v10.01.04a-1-gf7c27 (Fie.
    传统引导模式
    OTP_VppEn
    AM69 SK 检测到!!
    WKUP_GPIO0_VPP_CTRL 输出高电平
    已启动钥匙编程顺序
    从 0x41c70004 获取 OTP 证书
    Sciclient_otpProcessKeyCfg 返回:–1
    调试响应:0x2000000
    钥匙编程顺序已完成

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

    尊敬的 Shabnam:

    我打开了所有端口、没有看到任何日志。
    COM 端口 1 (ttyUSB0) 上没有日志?  
    此致
    Diwakar
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    编号 我正在使用开发套件。

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

    你好 

    请允许我在我的最后测试同样的 在准备设置时、请分享有关如何生成 Keywriter 映像的完整详细信息。 这样就可以交叉验证、并在我这边尝试相同的操作

    此致
    Diwakar

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

    你好 Carl tuvo 

    我需要删除你的帖子,因为我是导致问题,我无法回复帖子.

    该问题似乎与引脚多路复用有关、SK-EVM 中也存在引脚多路复用。 我还附加了快速修复,我将进一步调试,并将添加适当的修复也.

    diff --git a/ti/boot/keywriter/soc/j784s4/keywriter_utils.c b/ti/boot/keywriter/soc/j784s4/keywriter_utils.c
    index f57163c..b2d970a 100644
    --- a/ti/boot/keywriter/soc/j784s4/keywriter_utils.c
    +++ b/ti/boot/keywriter/soc/j784s4/keywriter_utils.c
    @@ -50,7 +50,7 @@
     #include <ti/drv/uart/UART_stdio.h>
     #include <ti/drv/gpio/GPIO.h>
     #include <ti/drv/gpio/soc/GPIO_soc.h>
    -
    +#define KEYWRITER_SK_VPP_CTRL_GPIO       (28U)
     GPIO_PinConfig gpioPinConfigs[] = {
         EN_EFUSE_VPP_CTRL | GPIO_CFG_OUTPUT,
         SK_EN_EFUSE_VPP_CTRL | GPIO_CFG_OUTPUT
    @@ -71,6 +71,23 @@ GPIO_v0_Config GPIO_v0_config = {
         0,
     };
     
    +/* Enable VPP for AM69 SK board */
    +static void OTP_VppEn_SK(void)
    +{
    +    uint32_t regVal;
    +
    +    UART_printf("OTP_VppEn_SK\n");
    +
    +    /* Set the GPIO direction to output */
    +    regVal = (HW_RD_REG32(0x42110010)) & (~(0x1 << KEYWRITER_SK_VPP_CTRL_GPIO));
    +    HW_WR_REG32(0x42110010, regVal);
    +
    +    /* Set the GPIO value to high */
    +    regVal = (HW_RD_REG32(0x42110014)) | (0x1 << KEYWRITER_SK_VPP_CTRL_GPIO);
    +    HW_WR_REG32(0x42110014, regVal);
    +
    +    UART_printf("OTP Vpp is Enabled!\n");
    +}  
     void OTP_VppEn(void)
     {
         Board_initCfg      boardCfg;
    @@ -102,6 +119,7 @@ void OTP_VppEn(void)
             {
                 UART_printf("AM69 SK Detected!!\n");
                 gpioIndex = UTRUE;
    +                       OTP_VppEn_SK();
             }
         }

    进行上述更改后从 SK 板记录。

    此致
    Diwakar

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

    非常感谢 Diwakar。 我使用该补丁测试了 MSV 编程、并成功收到调试报告。

    我想继续进行密钥配置并在电路板上启用安全启动。 请继续分享您的状态并确认下一步是否安全、谢谢。

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

    尊敬的 Shabnam:

    在调用 GPIO_socGetInitCfg 和 GPIO_socSetInitCfg 时 、代码中有一个错误、我们需要传递端口号而不是 GPIO 索引。
    它必须为 0、这是已更正的代码。
        /* Initialize pinmux */
         boardCfg = BOARD_INIT_PINMUX_CONFIG |
    @@ -102,18 +103,17 @@ void OTP_VppEn(void)
             {
                 UART_printf("AM69 SK Detected!!\n");
                 gpioIndex = UTRUE;
    +
             }
         }
     
         /* Configure GPIO base address */
         GPIO_v0_HwAttrs gpioCfg;
    -    GPIO_socGetInitCfg(gpioIndex, &gpioCfg);
    +    GPIO_socGetInitCfg(0, &gpioCfg);
         gpioCfg.baseAddr = CSL_WKUP_GPIO0_BASE;
    -    GPIO_socSetInitCfg(gpioIndex, &gpioCfg);
    -
    +    GPIO_socSetInitCfg(0, &gpioCfg);
         /* Set GPIO to HIGH */
         GPIO_init();
         GPIO_write(gpioIndex, 1);  
         UART_printf("WKUP_GPIO0_VPP_CTRL output high\n");
     }
    此致
    Diwakar
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好、Diwakar

    非常感谢您首次提出该问题。 通过当前的错误修复、我能够配置 Devkit、烧断保险丝、并启用安全启动。
    我需要 TI 就以下几点提供意见、才能关闭此 TT:
    1. 此错误对 GPIO 编程有何影响? 如果该电路板用于裸机应用、那么在访问或配置 GPIO 寄存器时、我们是否还会出现其他问题?
    2. 我们有一个基于标准 AM69 IC (P/N AM6958ATGGHAALY) 的定制电路板。 在该电路板上、我们无法烧断保险丝、并观察到类似的行为。 请告知这是否可能是硬件问题、或者是否需要不同的 RTOS/Keywriter 版本。
    请告诉我您的评估、谢谢。  
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Shabnam:

    非常感谢这个问题的首次发布。 通过当前的错误修复、我能够配置 Devkit、烧断保险丝、并启用安全启动。
    [/报价]

    很高兴听到这个消息。

    此错误对 GPIO 编程有何影响? 如果电路板用于裸机应用、我们在访问或配置 GPIO 寄存器时是否会遇到其他问题?

    问题是我们向包装器 API 输入了错误的值。 但如果您要使用直接寄存器、写入我看不到任何问题。

    我们有一个基于标准 AM69 IC (P/N AM6958ATGGHAALY) 的定制电路板。 在该电路板上、我们无法烧断保险丝、并观察到类似的行为。 请告知这是否可能是硬件问题、或者是否需要不同的 RTOS/Keywriter 版本。

    定制硬件不需要单独的密钥写入器版本。 我假设 Carl 之前已经指出了一个问题、即 VPP 尚未在定制电路板中启用。

    此致
    Diwakar

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

    嗨、Diwakar、我们也在定制电路板上使用贴片进行了测试。 如果 VPP 不是问题、我是否可以假设  P/N AM6958ATGGHAALY 是通用 IC 并且不能装保险丝?

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

    尊敬的 Shabnam:

    您是否在定制电路板上使用与 EVM 相同的 GPIO 来启用 VPP? 对我来说、设备似乎很安全  

    您可以按照此 常见问题解答 来检查器件类型。

    此致
    Diwakar

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

    尊敬的 Diwakar:  

    小 y 与资本 Y 之间是否有任何差异?
    对于此部分、我是否应该假设我们可以使用任何 J7x  Keywriter 版本?  

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

    尊敬的 Shabnam:

    小 y 与资本 Y 之间是否有任何区别?
    [/报价]

    这话什么意思?

    对于此器件、我是否应该假设我们可以使用任何 J7x  Keywriter 版本?  [/报价]

    不需要、您必须专门为 AM69 HS 器件使用基于 j784s4 的 Keywriter 版本。

    此致
    Diwakar  

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

    字段参数在第一列中显示 Y 与 y。  

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

    一个是功能安全参数、另一个是安全性。