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:RBL 如何在 OSPI 引导模式下配置 OPSI 模块?

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1605558/am2434-how-does-the-rbl-configure-the-opsi-module-in-ospi-boot-mode

器件型号: AM2434

您好:  

我们将使用 OSPI 引导模式和我们自己编写的 Ospi-和 ospi norflash 驱动程序。 Ospi-driver 封装了 sdk-driver 的 ospi 函数、并也使用 1s1s1s-init。  
为了减少启动时间、我们使用 OSPI 引导模式、但我们注意到 OSPI 模块似乎没有针对 OSPI 正确配置。
我们的驱动程序会检查三个寄存器、如果其中一个寄存器未正确设置、它将假定 OSPI 配置为 1s-1s-1s、然后启动 ospi 配置。 如果全部设置完毕、将软件驱动程序配置为八进制 SPI、而无需在 am243x 上重新配置 ospi 模块。
从 1s-1s-1s 重新配置到 ospi 需要很长时间、大约~500ms。 这一次我们需要擦除。 我想这是因为 init 在内部等待 500ms。  
我们检查的寄存器为:

  • OSPI_FLASH_CFG_CONFIG_REG_ENABLE_DTR_PROTOCOL_FLD(检查“1")“)
  • OSPI_FLASH_CFG_CONFIG_REG_DUAL_BYTE_OPCODE_EN_FLD(检查“1")“)
  • OSPI_FLASH_CFG_DEV_SIZE_CONFIG_REG_NUM_ADDR_BYTES_FLD(必须为“3"- 4“ 4 字节地址)

当我们的应用程序从 SBL 引导时、这是正常工作的、因此它不会再次初始化 ospi 并继续工作。

我们仍在研究 RBL 实际使用 OSPI 模块的功能、但遗憾的是 TRM 中没有太多关于 RBL 在此处的行为。 但至少可以在 1-1s-8s 和 3 字节寻址模式下工作。  

是否有相关文档说明了 ospi-boot-mode 下 RBL 的作用? 那么、如何设置 OSPI 模块的寄存器呢?

我们的下一个尝试就是直接将所有内容初始化为 8d-8d、而不将任何内容重新配置为 1s-1s-1s。  

此致

Felix

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

    好的、我已经有了更新:
    我们设法简单地解决了这个问题、没有重置为 1-1-1s、而是在从 1s-1s-8s 到 8d-8d 启动后直接开始配置闪存。 现在速度加快了 500 毫秒。  

    此致

    Felix