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.

[参考译文] Linux/66AK2H14:最新处理器 SDK 中的 DDR3B (03.03.00.04)

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/603242/linux-66ak2h14-ddr3b-in-latest-processor-sdk-03-03-00-04

器件型号:66AK2H14

工具/软件:Linux

我正在尝试更新到最新的 PROCESSOR-SDK (截至本文的03.03.00.04)、并且在引导 Linux 并通过 mpmcl 加载 DSP 后、无法从 DSP 访问 DDR3B。

我要尝试的是:将 DDR3B (512MB)用于 DSP 堆空间(Linux/ARM 不使用)。

我已修改 u-boot 以初始化 DDR3B。

通过 u-boot (冷启动)、我可以:

  • 读取和写入 DDR3B
  • 验证 MPU7是否被置位(假设允许的位被置位)

之前在 MCSDK 中(我之前已经发布过)、我必须通过添加此节点(基于 dspmem 节点)来修改器件树:

ddr3b:ddr3b{
compatible ="linux、rproc-user";
MEM =<0x60000000 0x20000000>;
标签="ddr3b";
}; 

然后必须更新 mpmconfig.json 以添加节点:

{
"名称":"local-ddr3B"、
"globaladdr":"0x60000000"、
"长度":"0x20000000"、
"devicename":"/dev/ddr3b
} 

然后在每个 DSP 部分中添加了 local-ddr3B。 之后、DSP 能够访问 DDR3B。

我在 新的 PROCESSOR-SDK 中修改了器件树(再次以 dspmem/mpm_mem 节点为基础):

ddr3b:ddr3b{
compatible ="ti、keystone-dsp-mem";
reg =<0x60000000 0x20000000>;
}; 

然后、我对 mpmconfig.json 进行了与以前相同的修改。

从 DSP 上、我无法访问 DDR3B (我只获得0–读取或写入时无错误)。

在 u-boot 中进行热启动(从 Linux 初始化6)后、读取 DDR3B 将返回所有0、MPU7区域也是如此。

我缺少什么来启用 DDR3B? 它必须是在 Linux 引导时发生的事情。  我一直在从旧内核中查看旧设备树条目,但没有找到任何东西。

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

    在最新的 Linux SDK 中、您有一个单独的 k2hk EVM-cmem.dtsi、您可以在其中找到存储器的映射方式、为 DSP 调用保留的存储器的哪个部分、通用 mpm 存储器等。

    如需了解更多相关信息、请访问 :processors.wiki.ti.com/.../CMEM_Overview

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已经了解了 k2hk evme-cmem.dtsi。 仅引用 DDR3A 和6M MSM 存储器、我了解如何从这些空间中保留存储器。

    我无法对 DDR3B 执行任何操作。 其他员额也有类似的问题,但除了不使用 DDR3B 之外,没有其他解决办法。 我知道 TI 默认禁用了它、因为 ARM 和 DSP 之间没有一致性、但我想将其仅用于 DSP 端(例如:堆存储器)。

    我不希望/需要 Linux 对存储器执行任何操作,但我假设我应该能够在 Linux 中通过 mmap()通过/dev/mem 查看它,以确保它在通过 mpmcl 加载 DSP 之前正确映射。 我假设我还应该能够在热重启后从 u-boot 查看 DDR3B。 我可以通过/dev/mem 在 DDR3A 保留空间内四处查询、没问题、但 DDR3B 返回所有0 (即使在写入后也是如此)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您是否已选中
    documentation/devicetree/bindings/remoteproc/ti、keystone-rproc.txt
    documentation/devicetree/bindings/reserve-memory/reserved-memory.txt

    了解建议如何映射存储器、并尝试将 ddr3b 起始地址添加到 k2hk EVM-smem.dtsi 中的相应 DTS 节点、即 在 keystone-k2hk EVM-evm.dts 中的 DSP_common_CMA_pool 节点中分配 ddr3b。


    您可以尝试的另一件事是将 ddr3b 存储器地址添加到 k2hk-evm-cmem.dtsi 中的 dsp_common_mpm_area。

    此致、
    Yordan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、这就是我将设备树更新基于的内容。 我在保留存储器中添加了一个具有 DDR3B 范围(起始地址为0x60000000、长度为0x20000000)的段、就像 DSP_common_mpm_area 一样。 我认为存在一个较低级别的问题、因为重新启动(热重启)后、我无法在 u-boot 中访问它。
x 出现错误。请重试或与管理员联系。