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-AM261:AM261x LaunchPad:将 OSPI 从八路模式更改为单路/四路模式

Guru**** 2693225 points

Other Parts Discussed in Thread: SYSCONFIG, UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1594510/lp-am261-am261x-launchpad-changing-ospi-from-octal-to-single-quad-mode

器件型号: LP-AM261
Thread 中讨论的其他器件: SYSCONFIG、UNIFLASH

您好:

我正在使用以下环境:

  • 器件:AM261x LaunchPad
  • SDK:motor_control_sdk_am261x_10_02_00_07
  • IDE:CCS 12.8.1

我的目标是在使用 QSPI 闪存器件的定制电路板上运行 SBL。
为实现这一目标、我将按照以下步骤操作:

验证 OSPI 闪存是否可在 LaunchPad 上的单路 (1S-1S-1S) 或四路 (1S-1S-4S) 模式下访问。
2.在定制电路板上验证相同。
3.将工作配置应用于 SBL 并在定制电路板上运行该配置。

第一步、我使用以下示例工程测试了闪存操作:
 ospi_flash_dma_am261x-lp_r5fss0-0_nortos_ti-arm-clang

问题
1.此示例是否仅在八进制模式下工作?

我将 SysConfig OSPI 闪存设置更改为单 (1S-1S-1S) 模式。
但是、当我运行该示例时、会出现以下错误:

[Cortex_R5_0]错误:FLASH_NOOspiOpen:1316:FLASH_NOOspiOpen:PHY 启用失败!!! 在没有 PHY 的情况下继续...
错误:Board_flashOpen:196:闪存打开失败、例如 0!!!

我可以通过在 OSPI 设置中禁用“启用 PHY 模式“来避免此错误。
但随后闪存读取/写入操作不起作用。

在四通道模式 (1S-1S-4S) 下也会出现相同的行为。

您能否建议如何在单通道或四通道模式下正确运行示例?

2.可以禁用“Enable PHY Mode“吗?

当我在禁用 PHY 模式的八路模式下运行示例时、
闪存操作无法正常工作。

例如:

  • 写作似乎取得了成功
  • 但读回存储的数据会显示不同的值

此问题是否与单模式和四模式也会发生故障的原因有关?
即使在单路/四路操作下、闪存器件或 OSPI 控制器也是否需要 PHY 模式?

感谢您的支持。
此致、

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

    您好:

    感谢您提出有关 AM261x LaunchPad 上 OSPI 闪存配置的详细问题。 在我们深入探讨对您遇到的 PHY 模式和单通道/四通道模式问题进行故障排除之前、我需要收集一些有关设置的基本信息、以便为您提供准确的指导。

    首先、您能否确认您在定制电路板上使用的特定闪存器件型号?  

    其次、您是否针对相应的闪存部分和模式配置更新了 syscfg?

    此致、
    Mayank Shadwani

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

    您好、Mayank、

    感谢您的答复。

    以下是您请求的信息:

    1.闪存器件型号

    • 在 AM261x LaunchPad 上:MX25UW064(板上安装的实际 OSPI 闪存)
    • 在我的定制电路板上:ISSI IS25LP128F

    如果需要、我可以提供完整数据表或相关时序参数。

    2. SysConfig 更新
    是的、我更新了 SysConfig 设置、以便匹配闪存器件和所需的模式(单通道/四通道)。
    具体来说:

    • 将 OSPI 协议设置为 1S-1S-1S(测试四通道时为 1S-1S-4S)。
    • 测试单通道/四通道时禁用 PHY 模式。
    • 调整了特定于器件的参数、例如页面大小、块大小、虚拟周期、JEDEC ID 等 视情况而定。

    如果必须为 AM261x 上的单通道/四通道操作修改其他 SysConfig 字段、请您给予指导。

    此致、
    樋口晃

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

    您好:  

    您是否可以使用在协议部分中启用了 1s-1s-1s 模式的示例、然后在四字节寻址模式下启用序列将其保持为 0x21

    此致、

    Aswin

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

    您好、

    感谢您发送编修。
    如您所建议、将 4 字节寻址使能序列设置为 0x21 后、我能够确认读取和写入操作在 1S-1S-1S 模式下正常工作。
    看起来我现在可以继续下一个验证步骤。

    再次感谢您的支持。

    此致、
    樋口

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

    当然、在下一步中、我们可以运行 ospi 诊断示例并使用输出 json 文件来填充参数。 首先我们可以尝试 1:1 - 1 - 1 模式、然后移动四路 SPI 模式。

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

    您好、

    感谢您的指导。
    使用定制电路板、我已经获取了由 OSPI 诊断示例生成的 JSON 文件。
    如果需要、我可以在此处附加 JSON 文件以供您参考。

    在 EVM 上运行 QSPI 时、除了将 4 字节寻址使能序列设置为 0x21 之外、是否需要配置任何其他设置?

    再次感谢您的支持。

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

    您好、

    感谢您的指导。
    使用定制电路板、我已经获取了由 OSPI 诊断示例生成的 JSON 文件。
    如果需要、我可以在此处附加 JSON 文件以供您参考。

    在 EVM 上运行 QSPI 时、除了将 4 字节寻址使能序列设置为 0x21 之外、是否需要配置任何其他设置?

    再次感谢您的支持。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在 EVM 上运行 QSPI 时、除了将 4 字节寻址使能序列设置为 0x21 之外、是否需要配置任何其他设置?

    我想知道 QSPI 协议如何在 EVM 上运行、EVM 具有一个不支持 QSPI 的 macronix 闪存。

    在定制电路板上运行时、您需要更改引导模式、然后通过上传 JSON 文件来对齐闪存配置

    此外还将 4 字节寻址启用序列设置为 0x21

    完成此操作是需要 4 字节寻址、或受 闪存支持。  

    此致、

    Aswin

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

    尊敬的 Aswin:

    非常感谢您的澄清。
    我知道、由于 Macronix 闪存器件、该 EVM 不支持 QSPI。

    为了进行验证、我尝试将讨论的单模设置应用于 EVM 上的 SBL 工程。
    但是、在应用这些更改后、SBL 无法正常运行。

    您能否先确认 SBL 是否支持单模式运行?
    我想了解问题是由于我的配置造成的、还是 SBL 本身不支持此模式。

    再次感谢您的支持。

    此致、
    樋口

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

    您好:

    SBL 和应用程序使用相同的 ospi 和闪存驱动程序。 SBL 也可以在 1s-1s-1s 模式下工作。 没有限制。 唯一可以不同的是 SysConfig 中的闪存配置。 您能否并排检查 SBL 和工作中的应用程序之间的闪存配置、并检查它们是否相同。

    此致、

    Aswin

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

    您好、Aswin、

    我比较了 SBL 和应用程序之间的闪存配置、并且它们看起来是相同的。

    调试时、我发现在 1s-1s-1s 模式下运行 SBL 时、会出现以下问题:

    在 SBL 中、调用了以下函数:

    status = Bootloader_parseMultiCoreAppImage(bootHandle, &bootImageInfo);


    在此函数内、可在此处检查幻数:

    status = config->fxns->imgReadFxn(&mHdrStr, sizeof(Bootloader_MetaHeaderStart), config->args);
    
    if (mHdrStr.magicStr != BOOTLOADER_META_HDR_MAGIC_STR)
    {
    status = SystemP_FAILURE;
    }


    mHdrStr.magicStr 的预期值为 0x5254534D、但正在读取的实际值是 0x54524D53、这会导致失败。

    这似乎表明仅在 1s-11-1s 模式下对从闪存读取的数据进行了错误移动或解释。

    对于导致此行为的原因、您有什么建议吗?

    此致、
    樋口

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

    您好:

    让我来试一下。

    此致、

    Aswin

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

    谢谢您、Aswin。
    如果我能提供更多详细信息、敬请告知。
    感谢您的支持。

    此致、
    樋口

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

    您好:  

    我能够观察到这个问题。 在图像解析过程中、ELF 标头被错误地读取。 让我尝试解决和问题、并尽快回复您。

    此致、

    Aswin

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

    您好、Aswin、

    问题已解决。
    因此、我们现在能够在定制电路板上以 QSPI 模式引导 SBL 并成功启动应用程序。

    非常感谢您的友好支持与合作。

    此致、
    樋口

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

    您好、

    很高兴听到这个消息。 关闭 e2e。

    此致、

    Aswin

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

    您好:  

    SBL 不在 1s-1s-1s 模式下工作的原因是、

    LP 上的 macronix 闪存具有一个属性、当在 8D-8D-8D 模式下写入时、它会交换字节并将写入它。 基本上、在 1s-1s-1s 模式和 8d-8d-8d 模式下写入的方式并不相同。 因此、当我们刷写时、数据以 8d-8d-8d 模式写入、而 SBL 尝试以 1s-1s-1s 模式读取。 因此、若 SBL 使用 LP 上的 macronix 闪存以 1s-1s-1s 模式工作、在 uniflash 中使用的闪存器也应处于 1s-1s-1s 模式。

    此致、

    Aswin

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

    您好:  

    SBL 不在 1s-1s-1s 模式下工作的原因是、

    LP 上的 macronix 闪存具有一个属性、当在 8D-8D-8D 模式下写入时、它会交换字节并将写入它。 基本上、在 1s-1s-1s 模式和 8d-8d-8d 模式下写入的方式并不相同。 因此、当我们刷写时、数据以 8d-8d-8d 模式写入、而 SBL 尝试以 1s-1s-1s 模式读取。 因此、若 SBL 使用 LP 上的 macronix 闪存以 1s-1s-1s 模式工作、在 uniflash 中使用的闪存器也应处于 1s-1s-1s 模式。

    此致、

    Aswin