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.

[参考译文] AM2434:SecureBoot - appimage authentication failed - firewall configuration?

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1385141/am2434-secureboot---appimage-authentication-fails---firewall-configuration

器件型号:AM2434

工具与软件:

您好!
我们正在尝试在我们自己的硬件和平台上测试 Secureboot。 我成功在 LP-AM243x 上进行了测试、

我遇到了一个已签名(hs-se) SBL 启动的问题、但它无法启动应用。

通过调试、我们发现它在以下部分失败:

Sciclient_procBootGetProcessorState

retVal = Sciclient_service(&reqParam, &respParam);
if((retVal != SystemP_SUCCESS) ||
    ((respParam.flags & TISCI_MSG_FLAG_ACK) != TISCI_MSG_FLAG_ACK))
{
    retVal = SystemP_FAILURE;
}
return retVal;

Sciclient_service 的返回值为 SystemP_SUCCESS、但这些标志无效。  

我们目前最好的猜测是防火墙配置。

  • 您能否提供示例或指南、说明如何以及使用哪些参数来配置防火墙以启用映像身份验证?

请注意、我们还必须启用对 OSPI 的直接访问、以便引导加载程序可以直接从闪存读取证书。 文档中的任何地方也没有提到这一点。

谢谢!

标记

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

    尊敬的 Mark:

    我无法连接您的查询中的点。

    您提到了映像身份验证失败、但随后在中报告了问题  Sciclient_procBootGetProcessorState . 这两者无关。 您能说明一下这个问题吗?

    此致、

    Prashant

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

    Prashant、您好!

    我的 Bad、我写了错误的函数名称、非常抱歉因为混淆而感到困惑。
    是的  Sciclient_procBootAuthAndStart ()
    除此之外、它是相同的代码部分。
    附加了调用堆栈、这可能有助于说明我所处的位置。

    谢谢!

    标记

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

    尊敬的 Mark:

    感谢您的澄清!!

    您能否启用并共享 Sysfw 日志? 这应该会告诉我们身份验证失败的原因。

    Sysfw 日志可以按如下方式启用:

    • sources/drivers/sciclient/sciclient_default_boardcfg/am64x/sciclient_defaultBoardcfg.c 中的"#UNDEF SYSFW_TRACE_ENABLE"更改为"#define SYSFW_TRACE_ENABLE"  
    • 使用  make -s -C tools/sysfw/boardcfg 构建电路板配置
    • 在 SBL 中为 MAIN_UART1添加另一个 UART 实例。
    • 构建 SBL。

    如果正确执行了这些步骤、您应该会在 MAIN_UART1上看到 Sysfw 日志。

    此致、

    Prashant

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

    Prashant、您好!

    谢谢、我将我们自己的硬件和平台与另一个工具链一起使用、因此 我需要一些时间来做到这一点。

    是否有办法通过 XDS110将这些 sysfw 日志载入 CCS 中的终端?

    标记

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

    尊敬的 Mark:

    需要更改和重建电路板配置。 对于 UART、您可以从 Memory Buffer 中收集日志、也如此处所述

    https://software-dl.ti.com/tisci/esd/latest/4_trace/trace.html#trace-memory-buffer-location

    此致、

    Prashant

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

    Prashant、您好!

    很遗憾、我没有 UART1的路由、因此无法访问它。 我启用了  SYSFW_TRACE_ENABLE 宏、给板上电、可以在"Memory Browser"中看到数据(如果我回答正确、对于 am243x 为0x44043000)、但如何解析它呢?
    我在 SDK 中找到了 sysfw 跟踪解析器脚本、但它不会解析该 dat 文件。
    您能帮助理解这些日志吗?

    标记
    e2e.ti.com/.../memdump.dat

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

    尊敬的 Mark:

    我想您已使用 CCS 以"TI 原始"格式保存数据。 是否可以将数据另存为二进制文件?

    如果不确定、您只需添加此函数并在 SBL 主文件中的 Bootloader_parseMulticoreAppimage 函数之后调用。 此函数从存储器中读取日志、并将其转储到与正常日志相同的 UART 上。

    void dump_tifs_logs()
    {
        #define TIFS_LOGS_BUFFER_ADDR 0x44043000
        #define TIFS_LOGS_BUFFER_SIZE 0x0FE0
    
        uint8_t* ptr = (uint8_t*)TIFS_LOGS_BUFFER_ADDR;
    
        DebugP_log("\r\n<<TIFS_LOGS\r\n");
    
        for(int32_t i = 0; i < TIFS_LOGS_BUFFER_SIZE; i++)
        {
            DebugP_log("%c", *ptr);
            ptr++;
        }
    
        DebugP_log("\r\nTIFS_LOGS\r\n");
    }
    

    此致、

    Prashant

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

    您好!

    感谢您的快速回复!
    可以、将其另存为二进制文件即可。 我已经附加了日志,但基于这一点,我想故障的原因是:"哈希操作的问题"

    很遗憾、我不明白这意味着什么、请您提供有关此消息的更多背景信息吗?e2e.ti.com/.../4442.out.txt

    标记

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

    尊敬的 Mark:

    我想故障原因是:"散列操作有问题"

    这似乎是 SA2UL 的一些内部问题、可能会超时或发生其他情况。

    您是在每次复位还是随机出现此问题? 如果是前者、则闪存的配置方式可能有问题、否则调试将会比较复杂。

    另一条注意事项是、为什么有三条 PROC_AUTH_BOOT 消息? 这些消息之后需要进行如此多的处理?

    此致、

    Prashant

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

    您好!

    "这似乎是 SA2UL 的一些内部问题、可能会超时或出现问题。"
    我以前曾与 SA2UL 合作过、因此我必须单独配置防火墙。 我的原始问题仍然是、身份验证工作所需的防火墙配置是什么?

    "您是在每次复位时还是随机看到这个问题?  "

    它每次都在发生。 应用程序从不启动。

    "另一条注意事项是、为什么有三条 PROC_AUTH_BOOT 消息? 在这些消息之后有那么多的处理?"

    我不知道。 我们将使用  rprc 中的 multicoreImageGen.js 创建 appimage。 (脚本在 SDK 中提供)
    如果未启用身份验证、这将正常工作。

    标记

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我以前曾与 SA2UL 合作过、为此我不得不单独配置防火墙。 那么、我的原始问题仍然是、身份验证工作所需的防火墙配置是什么?

    系统固件拥有 SA2UL 并具有对其的完全访问权限、因此这 不应该是防火墙问题。

    每次都在发生这种情况。 应用程序从不启动。

    我怀疑闪存有问题。

    要进行身份验证的 appimage 的大小是多少? 您的板上是否有足够大的 RAM 以便我们从闪存中读取映像、然后请求身份验证? 如果成功、这强烈意味着 Sysfw 在 DAC 模式下从闪存读取会出错。

    我不知道。 我们将使用  rprc 中的 multicoreImageGen.js 创建 appimage。 (脚本在 SDK 中提供)[/QUOT]

    如果只有一个应用映像被引导、则日志中应该只有一条 PROC_AUTH_BOOT 消息。 如果只有一个 appimage、您能否评估为什么 Bootloader_socAuthImage 是三次?

    此致、

    Prashant

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

    Prashant、您好!

    如果只有一个 appimage、您能评估为什么 Bootloader_socAuthImage 是三倍吗?

    我们正在使用我们自己的基于 sbl_ospi 的引导加载程序、3条 PROC_AUTH_BOOT 消息是我们的修改引起的。 修正了它、但它当然不是原因。

    正在验证的 appimage 的大小是多少? 您的板上是否有足够大的 RAM 以便我们从闪存中读取映像、然后请求身份验证? 如果成功、这强烈意味着 Sysfw 在 DAC 模式下从闪存读取时出现问题。[/QUOT]

    是的、映像可以放入 PSRAM 中、因此我目前正在尝试对其进行测试。 有了更多信息后、我将立即返回。

    感谢您的支持!

    标记

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

    尊敬的 Mark:

    [报价 userid="473888" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1385141/am2434-secureboot---appimage-authentication-fails---firewall-configuration/5312498 #5312498"]是的、图像可以放入 PSRAM 中、因此我目前正在尝试对其进行测试。 如果我有更多的信息、我会回来的。

    当然。 如果需要任何帮助、请告诉我!!

    此致、

    Prashant

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

    Prashant、您好!

    我能够将映像移动到 PSRAM、然后修改引导加载程序以使用该地址对映像进行身份验证。 这样成功、映像随后被引导。

    因此、根据您的评论、我认为这可能是与闪存相关的问题。 我们使用 OSPI 闪存。

    您是否知道要检查什么、导致此问题的原因是什么以及如何解决?

    谢谢!

    标记

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

    尊敬的 Mark:

    您有什么想法要检查、什么可能是此问题的原因以及如何解决?

    您是否已在以最高配置运行闪存、如 PHY 启用、以最高时钟运行、协议8D-8D-8D 等

    此外、我希望您通过引导加载程序驱动程序启用 DAC、以便 SYSFW 可以执行对 OSPI 的内存映射读取。 这实际上是一个已知错误、将在下一个版本 v10.0中修复。

    am64x、am243x:bootloader:修复在 ospi bootloader·TexasInstruments/mcupsdk-core@82faf8f·GitHub 中未启用的 DAC 模式

    此致、

    Prashant