器件型号: 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