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.

[参考译文] AM6442:有关在定制 AM6442 板上刷写引导加载程序映像的查询

Guru**** 2533430 points
Other Parts Discussed in Thread: AM6442, UNIFLASH

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1562135/am6442-query-regarding-flashing-bootloader-images-on-custom-am6442-board

器件型号:AM6442
Thread 中讨论的其他器件: UNIFLASH

工具/软件:

TI 团队大家好、

处理器:  AM6442
SDK 版本:  AM64x MCU+ SDK 10.00.00

我目前正在使用 AM6442 处理器和 EVM 板来验证 Cortex-M4F 内核。 我们已成功遵循官方指南中概述的刷写和调试程序、结果符合预期。

在进行此验证后、我们进一步推动了定制电路板的开发。 与 EVM 相比、唯一进行的更改是在 EMMC 和 OSPI 部分中(由于元件可用性);处理器周围设计的其余部分保持不变。

但是、在定制电路板上、我们在使用 SBL_prebuilt 二进制文件的 UART Uniflash 刷写过程中会遇到问题。 该过程在初始步骤中失败、不会继续。

查询:
a) 无法刷写“default_sbl_null.cfg"引导“引导映像?

请就此寻求您的支持。 请回复您的意见。

谢谢。此致、

Ganesh Pawar

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

    尊敬的 Ganesh:

    我假设您使用的 OSPI 闪存与 EVM 上使用的闪存不同、请查看以下有关在定制闪存器件上添加支持的指南: https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/11_01_00_17/exports/docs/api_guide_am64x/CUSTOM_FLASH_SUPPORT_GUIDE.html

    此致、

    会面。

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

    尊敬的 Thakar:

    感谢您的答复—非常感谢。

    我想分享当前目标、并就以下几点征求您的意见:

    目标:
    我们正在尝试将二进制文件刷写到 EMMC 中并引导内核、类似于评估板上的过程。 但是、我们的定制电路板使用不同的 EMMC 器件型号。

    查询:

    a)  由于 EMMC 器件型号差异、是否需要进行任何配置更改或执行其他步骤? 我们目前无法成功刷写映像或从 EMMC 引导。

    b)  若要使用 CCS IDE 和 XDS 调试器来调试代码、OSPI 是否依赖于? 如果是、您能否澄清要求?

    期待您在方便时尽早就这些问题提供指导。

    谢谢。此致

    Ganesh Pawar

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

    尊敬的 Ganesh:

    [引述 userid=“548518" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1562135/am6442-query-regarding-flashing-bootloader-images-on-custom-am6442-board/6014864 a)  由于 EMMC 器件型号差异、是否需要进行任何配置更改或执行其他步骤? 我们当前无法成功刷写映像或从 EMMC 引导。

    EMMC 不需要此类额外步骤。

    您的定制电路板是否已同时安装 EMMC 和 OSPI?  

    请注意、DEFAULT_SBL_null 是将 SBL NULL 刷写到 OSPI(而不是 EMMC)、现在您是否至少按照我在上一个响应中的建议成功刷写到 OSPI 中。

    您当前在闪烁 EMMC 时遇到什么问题? 请分享相关的刷写日志。

    [引述 userid=“548518" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1562135/am6442-query-regarding-flashing-bootloader-images-on-custom-am6442-board/6014864 b)  若要使用 CCS IDE 和 XDS 调试器来调试代码、OSPI 是否依赖于? 如果是、您能否澄清要求?

    没有任何特定的依赖关系、您是否会遇到相同的问题?

    此致、

    会面。

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

    尊敬的 Thakar:

    让我向您介绍我们到目前为止采取的步骤:

    您的定制电路板是否同时安装了 EMMC 和 OSPI?  [/报价]

    是的、我们的定制电路板同时包括:

    • eMMC :SFEM032GB2ED1TO-A-5E-111-STD
    • OSPI NOR 闪存 : IS25WP512MG-RHLA2.

    但是、根据我们的电流要求、  从 EMMC 引导(HS 映像)  优先级。 因此、我们尚未遵循您上次答复中提到的与 OSPI 相关的步骤。

    没有任何特定的依赖关系、您是否会遇到同样的问题?

    是的、我们目前正在这样做  无法将映像刷写到 Cortex-M4F 内核  使用 CCS IDE、无论选择何种引导模式 (UART、OSPI 或 DEVBOOT)、我们都在评估套件中进行了验证。

    Mag 观察:

    将 JTAG(通过 20 引脚连接器实现 XDS110)连接到器件时、我们会遇到以下日志输出:

    在 EMMC 模式下刷写映像时观察到的日志

       

    在 xSPI 模式/UART 模式/DevBoot 模式下刷写映像时观察到的日志。

    请提供以下建议:

    1. 在该设置中、任何可能阻止 JTAG 访问或映像刷写的已知问题或依赖项。
    2. 如果在使用不同的 EMMC 器件型号时不需要更改配置、则可能会阻止检测 EMMC 映像或 FS 根据刷写 sbl_emmc 指南刷写组合的 HS-EMMC 应用程序映像(包括 Cortex-A、Cortex-M4 和 Cortex-R5 内核)。   

    期待您的见解。

    谢谢。此致

    Ganesh Pawar

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

    这仅表明 SoC/M4 内核尚未初始化。 有几种方法可以初始化 SoC、请参阅本指南: https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/11_01_00_17/exports/docs/api_guide_am64x/EVM_SETUP_PAGE.html#EVM_SOC_INIT

    若要刷写到 EMMC、您可以使用带有 default_sbl_eMMC_hs_fs.cfg 的 UART UNIFLASH: https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/11_01_00_17/exports/docs/api_guide_am64x/TOOLS_FLASH.html#autotoc_md3123

    您可以尝试使用此方法一次、然后检查结果。 在这里、SBL EMMC 将初始化 SoC、然后您可以连接到 CCS 进行调试、而无需从 CCS 加载程序、因为 SBL EMMC 将处理它。

    如前所述、default_sbl_null 是将 SBL NULL 刷写到 OSPI、SBL NULL 初始化内核并将其置于 WFI、但不加载任何 appimage、这就是为什么您从 CCS 加载它、如果使用 SBL NULL、则需要包含之前共享的自定义闪存配置。

    如果您在刷写时遇到任何问题、请共享刷写日志。

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

    尊敬的 Thakar:

    这表明 SoC/M4 内核尚未初始化。 有几种方法可以初始化 SoC、请参阅本指南: https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/11_01_00_17/exports/docs/api_guide_am64x/EVM_SETUP_PAGE.html#EVM_SOC_INIT

    我们尝试使用进行 SoC 初始化  DEV 引导模式   loadJSfile 使用 load_dmsc_hsfs.js 脚本执行命令。 虽然脚本日志可见、但“ AM64X CIO “控制台、 不会继续或按照脚本中所述启动 。   

       脚本控制台日志、但从 CIO 控制台未观察到任何内容。

    目前、我们能够通过进行连接  JTAG  并成功调试映像、但仅限于  仅限 R5_0 内核

    要刷写到 EMMC、您可以使用带有 default_sbl_eMMC_hs_fs.cfg 的 UART UNIFLASH: https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/11_01_00_17/exports/docs/api_guide_am64x/TOOLS_FLASH.html#autotoc_md3123

    根据您的输入、我们使用了  UART Uniflash  使用 default_sbl_emmc_hs_fs.cfg 用于刷写到 eMMC 的配置文件:

    我们遵循了 UART 引导模式的过程、并刷写了该 sbl_emmc_hs_fs.cfg 文件以及 M4 组合二进制文件。 但是、只有引导加载程序开始刷写;实际映像刷写不会启动。 请找到随附的相关日志。

     无法与 EMMC 通信的 SBL_EMMC 映像的日志。

    查询:

    在我们的定制硬件设计中、仅包括  主引导加载程序选择  并实施保护。 。  “Secondary bootloader“部分  已关联  引导选择引脚  未使用(下拉)。 这种设计选择是否可能影响 SoC 初始化过程、尤其是启动等内核的过程  Cortex-M4

    请回复输入

    谢谢。此致

    Ganesh Pawar

     

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

    尊敬的 Ganesh:

    我们使用尝试 SoC 初始化  DEV 引导模式   loadJSfile 使用 load_dmsc_hsfs.js 脚本执行命令。 虽然脚本日志可见、但“ AM64X CIO “控制台、 不会继续或按照脚本中所述启动 。   [/报价]

    这似乎很奇怪、您是否至少能够连接到 A53 内核、或者它目前只是 R5? 请如下所示共享控制台 GEL 日志: https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/11_01_00_17/exports/docs/api_guide_am64x/EVM_SETUP_PAGE.html#autotoc_md41

    另一个需要尝试的方法是通过 SBL NULL 进行初始化、我看到您之前遇到了一些问题、但添加自定义闪存配置后、这应该可以正常工作。 请注意、您需要在 SBL NULL 和 SBL UART UNFLASH 中添加自定义闪存配置并再次构建这些配置。

    我们遵循了 UART 引导模式的过程、并刷写了 sbl_emmc_hs_fs.cfg 文件以及 M4 组合二进制文件。 但是、只有引导加载程序开始刷写;实际映像刷写不会启动。 请找到随附的相关日志。

    您是否在 UART UNIFLASH 示例中添加了自定义闪存配置并在使用该配置之前重新编译? 如果不是、您可能会遇到此问题。

    [报价 userid=“548518" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1562135/am6442-query-regarding-flashing-bootloader-images-on-custom-am6442-board/6017537 ]在我们的定制硬件设计中、只有  主引导加载程序选择  并实施保护。 。  “Secondary bootloader“部分  已关联  引导选择引脚  未使用(下拉)。 这种设计选择是否可能影响 SoC 初始化过程、尤其是启动等内核的过程  Cortex-M4 ?[/quote]

    这不应导致任何问题。 您能否共享开发引导模式的引导模式引脚配置?

    此致、

    会面。

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

    尊敬的 Thakar:

    这似乎很奇怪、您是否能够至少连接到 A53 内核、或者它目前只是 R5? 请如下所示共享控制台 GEL 日志: https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/11_01_00_17/exports/docs/api_guide_am64x/EVM_SETUP_PAGE.html#autotoc_md41

    刷写内核映像并从中引导  eMMC 和 A53 内核使用成功引导  DFU 模式、  A53 内核按预期启动。

    我们能够检测并连接到  R5 内核 、但仅当在中操作时  DEVBOOT 模式 。 在其他引导模式中、我们会遇到 A  “加载程序错误“ 和闪烁不会继续。

    在 SoC 初始化期间、我们 loadJSfile 使用 load_dmsc_hsfs.js 脚本执行了命令。

    进程在 sciclient_load_firmware() 函数处停止、该函数从调用 System_Init()

    这表明固件加载未成功完成、从而阻止了完整的 SoC 初始化。

    下面附加了日志、是在 SOC 初始化期间观察到的

    您能不能恢复导致此问题的原因、以及如何继续对 Cortex M4 执行操作。

    谢谢。此致

    Ganesh Pawar

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

    添加到上一个答复、  

    Thakar、我想强调关于自定义闪存配置的几点。 根据指南、OSPI 诊断示例应该与定制闪存通信、并帮助确定必要的配置设置。

    但是、在本例中、我们导入了 CCS 工程、进行了构建、并在 DEVBOOT/NOBOOT 模式下使用 JTAG 加载映像。 代码执行从开始 main,但它被卡在 CSL_REG32_RD_RAW() 函数,特别是在 Sciclient_waitForMessage().

    此外、GEL 日志显示仅连接 R5 内核、而 M4 内核似乎已断开连接。 这似乎是导致该问题的原因、因为系统固件(通常在 M4 上运行)可能处于非活动状态、导致 Sciclient 无法收到响应。

    我希望这能澄清一点、帮助您进一步指导我们启动 Cortex-M4 内核。

    谢谢。此致

    Ganesh Pawar  

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

    尊敬的 Thakar:

    请注意、您需要在 SBL NULL 和 SBL UART UNFLASH 中添加自定义闪存配置并再次编译

    鉴于这一问题的严重性、我恳请我们安排一次电话、以便有效地解决这一问题。

    请分享您的电子邮件 ID、以便我们进行协调和进一步处理。

    谢谢。此致

    Ganesh Pawar

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

    尊敬的 Ganesh:

    该问题似乎与 Sciclient_ccs_init.out 二进制文件有关。  下面的 主题中已解决了类似的问题。

    请尝试在通过 JTAG 连接到内核后重建上述二进制文件并将其加载到 R5F 上。  

    请参阅  以下内容:AM6442:使用 CCS 脚本的 AM64 SoC 初始化、不适用于 EVM 和定制电路板  

    此致、

    Tushar

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

    尊敬的 Tushar:

    问题似乎与 Sciclient_ccs_init.out 二进制文件有关。  下面的 主题中已解决了类似的问题。

    这确实是一个  sciclient_ccs_init.release.out 二进制问题、现在我们在使用 JTAG 检测 M3 内核方面迈出了一步。

    请注意、您需要在 SBL NULL 和 SBL UART UNFLASH 中添加自定义闪存配置并再次编译

    Thakar、请您向我们提供一些关于要进行的更改的见解并提供进一步的信息。

    谢谢。此致

    Ganesh Pawar

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

    尊敬的 Ganesh:

    我假设您使用的 OSPI 闪存与 EVM 上使用的 OSPI 闪存不同、请查看以下有关在定制闪存器件上添加支持功能的指南: https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/11_01_00_17/exports/docs/api_guide_am64x/CUSTOM_FLASH_SUPPORT_GUIDE.html

    我之前分享过这些步骤、请尝试这些步骤。

    此致、

    会面。

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

    尊敬的 Thakar & Tushar:

    我假设您使用的 OSPI 闪存与 EVM 上使用的 OSPI 闪存不同、请查看以下有关在定制闪存器件上添加支持功能的指南: https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/11_01_00_17/exports/docs/api_guide_am64x/CUSTOM_FLASH_SUPPORT_GUIDE.html

    在您的指导下、我成功加载了 OSPI 诊断示例、并检索了我们使用的自定义闪存设置的配置 只有 4 条数据线 连接到处理器。

    根据终端的配置输出、我们更新了 SBL_NULL 工程中的闪存设置。 构建并刷写映像后、闪存器脚本看起来可正确加载、但映像执行会卡住。

    通过 JTAG 调试项目时、我们观察到在 Sciclient_waitBootNotification() 函数处停止执行。 值得注意的是、Sciclient 版本图像支持检测 M4 内核。 Sciclient 配置中是否存在需要修改以支持此设置的链接或相关性?

      

    请就此提供您的意见。

    谢谢。此致

    Ganesh Pawar

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

    尊敬的 Ganesh:

    在已刷写一次 CCS 后、您是否尝试从 CCS 加载 SBL NULL 程序? 在这种情况下、这是预期行为。