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.

[参考译文] LP-AM243:OSPI 引导加载程序 SPI PHY 启用失败

Guru**** 2538950 points
Other Parts Discussed in Thread: LP-AM243, UNIFLASH, TMDS243EVM

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1566897/lp-am243-ospi-bootloader-spi-phy-enabling-failed

器件型号:LP-AM243
Thread 中讨论的其他器件: UNIFLASHTMDS243EVM

工具/软件:

我使用 MCU+ SDK V9.1.2.5 中的库存 SBL OSPI tiboot3.bin 文件刷写 LP-AM243 (PROC109A (001)、PCB 日期代码 4023)。 下电上电时、CCS 终端报告:

错误: flash_norOspiOpen:1269: flash_norOspiOpen : PHY 启用失败!!! 在没有 PHY 的情况下继续...
错误:Board_flashOpen:201:闪存打开失败、例如 0!!!
断言:0.134840s:../main.c:main:116: status == SystemP_SUCCESS failed!!

我导入了工程并禁用了“Enable PHY mode“选项。 CCS 终端现在报告:

DMSC 固件版本 9.2.8--v09.02.08 (Kool Koala)
DMSC 固件版本 0x9
DMSC ABI 修订版 3.1

遗憾的是、引导加载程序似乎挂起、始终不会转换到应用程序。

我还尝试了 MCU+ SDK V11.1.0.17 中的 tiboot3.bin 文件、并观察到了相同的故障。 我有 3 个 LP-AM243 电路板、它们都出现相同的故障。

我可以通过 XDS110 JTAG 成功加载并运行我的应用程序。 我在刷写其他 SBL 引导加载程序 (NULL、UART、UART UniFlash) 时没有问题、这些引导加载程序可以正常运行。 我还有一个 TMDS243EVM、可以刷写 SBL OSPI 引导加载程序并成功运行它。  问题仅与 LP-AM243 的 OSPI 引导加载程序有关。

有人能解释 SPI PHY 启用故障吗? 任何人在使用 SBL OSPI 与 LP-AM243(特别是生产日期代码 4023)时是否成功或失败?

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

    另一家公司的开发人员确认、他们能够成功刷写完全相同的 tiboot3.bin 文件(使用我的应用程序)、并在 LP-AM234 (PROC109A (001)、PCB 日期代码 2423) 上成功运行该文件。 遗憾的是、我目前可以看到的唯一明显区别是 PCB 生产日期代码。  

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

    这是调用栈。 在第 1241 行、attackVectorStatus 返回–1。 执行了第 1249 行至第 1255 行。 第 1255 行、attackVectorstatus 再次返回–1。 程序最终将执行第 1269 行并生成 CCS 终端消息:“Error:flash_norOspiOpen:1269:flash_norOspiOpen:PHY enabled failed!! 在没有 PHY 的情况下继续...“

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

    下面是 OSPI_phyReadAttackVector() 中的调用栈。 调用 OSPI_enableDacMode () 后,内存浏览器显示 QSPI 闪存芯片的数据。 我确认引导和应用程序固件映像与存储器位置 0x60000000 和 0x60080000 中的 SPI 数据匹配。 在下图中、Memory Browser 显示从地址 0x62000000 开始的数据。 它都是 FF、因此它与 gOspiFlashAttackVector 模式不匹配并失败。  0x62000000 是否是攻击向量的正确地址?

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

    您好、

    看起来闪存中不存在 phy 调优数据。

    因此我们需要把它放在这里。

    首先、如果您的 AM243 LP TI EVM 默认为 S25HL512T 闪存器件、则我们最好继续。

    我们只需要在刷写其他二进制文件时在 cfg 文件中引入此行。

    请参阅此常见问题解答、了解我指的是哪一行:  【常见问题解答】SK-AM64B:--operation=flash-phy-tuning-data 的用途是什么? 

    如果你有一个不同的闪光灯,那么请告诉我。 另外、请告诉我您是如何闪烁的? 我假设使用 python uart_uniflash.py 命令并将 cfg 文件与 COM 一同提供 端口号。

    谢谢、

    Vaibhav

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

    你好、 Vaibhav、

    在尝试您的建议之前、我使用 Memory Browser 保存了整个 QSPI 闪存数据、并在地址 0x6001E8D3 和 0x60083967 处找到 PHY 调优数据。

    LP-AM243 使用 S25HL512T 闪存器件。 我将添加该行并快速报告。 我使用了 python uart_uniflash.py 命令、但切换到了 UniFlash (V9.2.0.5300)、因为它更方便。 谢谢。

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

    使用 default_sbl_ospi.cfg 解决了这个问题。 我最初使用 python uart_uniflash.py 命令来刷写 NULL 引导加载程序以允许从 CCS 调试 JTAG。 之后、我使用 UniFlash 工具刷写引导和应用固件。 显然、UniFlash 工具没有执行 PHY 数据调优的选项(或者至少我找不到)、因此 必须运行 default_sbl_ospi.cfg 一次才能执行 PHY 数据调优。 感谢你的帮助。

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

    您好、

    很高兴 常见问题解答有助于解决您的问题。

    感谢您将上述回答标记为已解决。

    关闭螺纹。

    谢谢、

    Vaibhav