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.

[参考译文] DRA750:QSPI 存储器映射访问

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1217487/dra750-qspi-memory-mapped-access

器件型号:DRA750
尊敬的 TI 团队:
我只是尝试将我们的 QSPI NOR 闪存驱动程序从 DRA78x (Cortex-M4)迁移到 DRA75x (Cortex-A15)。 环境是评估板 EVM5777BG-03-00-00。 遗憾的是、对闪存的存储器映射访问存在问题。
 
默认情况下、MPU 的整个地址空间被视为"器件存储器"、不允许"未分配"访问、因此我已启用 MPU_MMU 并将 QSPI_ADDRSP1区域(0x5C00_0000–0x5FFF_FFFF)配置为"正常存储器"。 读取每个64字节对齐区域的前16个字节不会出现任何问题。 读取所有其他字节会导致 MMU 异常("同步外部中止"、DFSR = 0x0000_1210)。 在这种情况下、您可以看到 QSPI 总线上根本没有发送任何命令(即使这是复位后的第一次访问)。 问题还在于、我是否将该区域配置为非缓存检查或直写检查。
 
但是、如果 MPU_MMU 中的该区域配置为"器件存储器"(否则是相同的 MMU 配置)、则一切都正常工作、但不会进行"未分配"的访问。 通过 MMU 系统的 DMA 进行访问始终能够正常工作。
 
你知道这个问题吗? 它在原则上不起作用、还是可以进行额外配置?
谢谢
延斯
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jens、您好!

    A15 NOR 闪存驱动程序在 SDK https://www.ti.com/tool/PROCESSOR-SDK-DRA7X 中提供

    您是否在尝试自己做之前先看了一下?

    此致、

    斯坦利

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

    我们的驱动程序已经能够在 Cortex-M4 ( 配置了 MPU 的 DRA78x)上正常运行 多年。 问题不在于驱动程序本身、而在于当存储器区域在 MMU 中配置为"正常存储器"时、对闪存的存储器映射访问为什么不起作用。 当配置为"器件存储器"时、它可以正常工作、但我们无法选择这种情况、因为器件存储器不允许对齐进行访问、这是我们的软件所必需的! 并且、为存储器映射区域启用高速缓存有望提高性能、这也只有在将该区域配置为"正常存储器"时才可行。

    SDK 中的 QSPI 驱动程序源不提供有关 MMU 是否可以与"正常存储器"配置一同使用的线索。 驱动程序似乎根本不使用未对齐的访问。

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

    通过 QSPI 接口的 A15映射可能必须是器件(甚至更少的性能 StronglyOrped)。   来自 A15的普通非缓存存储器可以按照预期的存储器进行重新排序和访问大小转换、而不会产生任何副作用。   在这种情况下、Cortex-M4的引擎处于运行状态、因此其使用常规非缓存可能不会有任何问题。  器件和正常非缓存都流经合并的写缓冲区、因此需要刷新一些写缓冲区。  设备可以合并为相同元素大小的突发、其中正常可以有元素大小促销。

    正确的做法是、在器件内存的硬件中没有针对正常内存类型进行对齐修复。   可以在 A15上启用严格的对齐检查并删除不正确的对齐依赖项。