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.

[参考译文] RTOS/66AK2H12:使用 DSP 访问 DDR3A

Guru**** 2532220 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/817052/rtos-66ak2h12-accessing-ddr3a-with-dsp

器件型号:66AK2H12

工具/软件:TI-RTOS

您好!

我正在运行 RTOS SDK 中的 platform_test 项目(版本号5.03.00.07)。 我主要关注的是 DRAM 存储器上的 platform_memory_test 函数。 测试功能在 EVMK2H 板上2.5 GB 的 DDR3B 上执行测试、但在 SO-DIMM 插槽中的2GB 的 DDR3A 上不运行。

根据我已阅读的其他论坛帖子和文档、DDR3A 默认不可由 DSP 内核寻址、需要通过 MSMC 进行设置以允许36位地址、因为它位于0x08 0000 0000 - 0x09 FFFF FFFF FFFF 的地址范围内。 我的问题是:

  • 是否可以让 DSP 内核使用此地址区域、如果可以、是否有任何示例程序/项目会这样做?
  • 是否有关于如何配置 MSMC 以允许 DSP 内核访问此存储器区域的文档?

谢谢、

Kevin O'Connor

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

    Kevin、

    请在此处的前文中查看我们提供的有关使用 DDR3A 和 DDR3B 的指导。 这需要在 MSMC 物理到逻辑地址转换中配置 MPAX 设置:

    https://e2e.ti.com/support/processors/f/791/p/796879/2962249

    https://e2e.ti.com/support/processors/f/791/t/804376?66AK2H14-DDR3A-configuration

    包含 MPAX 设置说明的文档:

    http://www.ti.com/lit/ug/sprugw0c/sprugw0c.pdf

    了解用于设置 DDR3A 和 DDR3B 的软件的最佳位置是此处用于设置 PLL 的 GEL 文件代码:

    C:\ti\ccsv8\ccs_base\emulation\boards\xtcievmk2x\gel

    希望这对您有所帮助。

    此致、

    Rahul

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

    另请参阅在此主题上创建的一些新帖子

    https://e2e.ti.com/support/processors/f/791/t/810973

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

    您好、Rahul、

    感谢您的回答。 我已经看过你提供的其他帖子、我仍然感到困惑。 根据第二个帖子:

    据说 GEL 文件仅对 ARM 使用32位寻址、DSP 内核也是如此?

    我复制了他们为 DSP 内核所做的 XMC 示例、但似乎 DDR3A 区域没有改变。

    DDR3A 区域(0x8 0000 0000 - 0x09 FFFF FFFF)是可直接寻址还是始终映射到32位地址(如0x8000 0000)? 我还需要配置什么?如何配置它以分别直接寻址 DDR3A 区域?

    我的最终目标是让整个2.5GB DDR3B 区域在0x6000 0000 - 0x FFFF FFFF FFFF 上可寻址、而 DDR3A 区域在0x8 0000 0000区域上可直接寻址。

    谢谢、

    Kevin

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

    您好!

    有更新吗?  我仍然有点迷路。

    DSP 内核是否只能通过将其别名为0x6000 0000 - 0xFFFF FFFF 的32位区域来访问08:0000 - 0F:FFFF FFFF 区域中的存储器?

    我已经了解了 MSMC 地址扩展、虽然我们可以通过 EMIF 实现36位地址、从而映射更大的存储器区域、但我们仍然限制在上面的2.5 GB 存储器区域、因为我们通过32位逻辑存储器将其别名。 如果在 DDR3A 区域中需要4GB DDR 存储器等、我们如何解决这一问题。 在我看来、它不能全部寻址。 我们会丢失1.5GB 的内存吗?

    谢谢、

    Kevin O'Connor

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

    Kevin、

    我在 DDR 设计专家和此器件的 DDR 初始化应用手册的作者中遇到了漏洞。 以查看他是否可以在此配置上提供任何输入。

    http://www.ti.com/lit/an/sprabx7/sprabx7.pdf

    RTOS/Bare-metal 用例n`tn`t 需要大于2GB 的 DDR 存储器、因此我们在 GEL 或 Processor SDK RTOS 中的电路板库中直接支持此用例。 K2HK Linux 产品支持高达8 GB 的 DDR 配置。配置详细信息可在 uboot 配置中找到:

    https://lists.denx.de/pipermail/u-boot/2014-July/183452.html

    测试这种情况的一种方法是在器件上启动 uboot 并读取 MSMC 和 DDR 设置。  

    此致、

    Rahul

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

    您好、Rahul、

    也许我的问题还不是很清楚。 让我尝试对其进行措辞。

    我想将4GB 内存连接到 DDR3B 接口。  根据下面的存储器映射、似乎只有2.5 GB 的物理空间可用于 DDR3B 区域。 如何访问另一个1.5GB 的 DDR3B (允许我访问连接到 DDR3B 的整个4GB 内存)?

    谢谢、

    Kevin

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

    尊敬的 Kevin:

    您是否了解了 DSP corePac 和 MSMC 的 MPAX 寄存器配置?

    此致、

    François μ A

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

     您好 François、

    是的、我已经研究了 MPAX 寄存器、这对于 DDR3A 存储器来说很有意义、物理地址范围涵盖了全部4 GB (0x8:00000000 - 0x9:FFFFFFFF)。 使用 DDR3B 数据、根据上图、在物理地址范围(0x60000000 - 0xFFFFFFFF)上似乎只有2.5GB 的可寻址空间。 因此、为了让我了解如何设置 MPAX、我们可以将32位逻辑地址映射为36位物理地址。 它还允许我们设置存储器映射的工作方式。 问题在于、DDR3B 内存的其余部分似乎没有物理地址。

    我不理解的是、我们如何将逻辑地址映射到 DDR3B 数据缺少的1.5GB 物理地址? 是否可以映射此区域?

    谢谢、

    Kevin

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

    Kevin、

    您未正确解释地址映射。  DDR3A EMIF 可支持高达8GB 的 DDR3内存。  DDR3B EMIF 最多只能寻址2GB 的 DDR3存储器。  即使您在表中的多行上看到这些 EMIF、它们也会将别名窗口表示到同一物理存储器中。

    Tom

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

    您好、Tom、

    我看到、我读取地图时出错了。 512 MB 区域只是 DDR3B 物理内存的别名。

    >>即使您在表中的多行上看到这些 EMIF、它们也会将别名窗口表示到同一个物理存储器中。

    这是指512 MB 和2GB 区域被混叠到相同的物理存储器、还是您说 DDR3A 和 B EMIF 实际上是相同的物理存储器。 我相信这是前者、但我只是想确保我了解您。

    因此、基于所有这些、如果我们只填充 DDR3B 存储器、我们似乎会限制到 DSP 的2GB DDR3存储器?

    谢谢、

    Kevin

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

    Kevin、

    DDR3A 和 DDR3B 是明显不同的物理存储器块。  在芯片上、它们有单独的存储器接口。  所有芯片内核和其他主器件都可以访问这两种存储器实现。  但是、如果您分析基础设施、您会发现 ARM 内核在访问 DDR3A 时具有最佳性能、而 DSP 内核和许多其他主核在访问 DDR3B 时具有最佳性能。  一些在处理大量流数据时计算密集型的应用在整个系统中都具有系统、通过在 DDR3A 和 DDR3B 上实施存储器来改善系统。  尽管如此、大多数客户仅在 DDR3A 上实施 SDRAM。

    Tom

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

    Tom、

    感谢您提供信息

    >>某些在处理大量流数据时计算密集型的应用程序在整个过程中都有系统、通过在 DDR3A 和 DDR3B 上实施存储器来改善系统。

    这是目前计划的内容。 我们目前在 DDR3A 上放置4GB 内存组、在 DDR3B 上放置4GB 内存组。 我想确保 DDR3B 上的4GB 完全可访问、并且不限于存储器映射上指定的2GB PHY 区域、以及在可访问时如何访问。

    谢谢、

    Kevin

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

    Kevin、

    如前所述、DDR3B 的最大可寻址大小为2GB。  要增加处理器上可访问 SDRAM 的总容量、应将 DDR3A 上的 SDRAM 增加到8GB。  由于无法访问上半部分、DDR3B 上的 SDRAM 可降至2GB。

    Tom

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

    Tom、

    我感谢你的帮助。 我们似乎需要重新评估我们的存储器布局、但我相信我有足够的信息来推动这一目标。

    谢谢、

    Kevin