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/DRA71:Linux 器件树中的 DDR 分配

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/749931/linux-dra71-ddr-allocation-in-linux-device-tree

器件型号:DRA71

工具/软件:Linux

下面是我在 器件树文件中分配 DDR 的内容:

ipu1_CMA@84000000{
兼容="共享 dma-pool ";
REG =<0x0 0x84000000 0x0 0x4000000>;
无地图;
状态="正常";
linux、phandle =<bbb7>;
phandle =<bb7>;
};

cmem_block_mem@88000000{
REG =<0x0 0x88000000 0x0 0xc00000>;
无地图;
状态="正常";
Linux、phandle =<0x109>;
相位=<0x109>;
};

我要问的是:

1、作为 IPU1的保留存储器、A15是否仍可以读取/写入 IPU1存储器区域?  

2、什么 cmem 是什么意思、我能理解它是共享存储器吗?

3、除保留的存储器外、A15使用其他存储器区域?

谢谢。

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

    请查找您的问题的答案:

    1.不 保留节点表示内核无法从 DDR 的给定区域进行分配、而 no-map 属性表示该区域未在内核中映射。
    CMem 是一个连续的内存分配器、用于从 Linux 分配物理上连续的缓冲区、并将其传递给 DSP/M4等远程内核。 如需了解更多详细信息、请点击此处。
    processors.wiki.ti.com/.../CMEM_Overview

    3.是的。

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

    Shravan、您好!

    关于第一个问题,在 A15应用程序中,A15仍然可以读取/写入 IPU1保留内存,对吗?

    如果是、存储器隔离是如何工作的?

    感谢您的回复。

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

    不可以、A15无法读取/写入 IPU1/2 CMA 区域。 属性"no-map"表示内核未映射 DDR 的区域。
    如果提供了"可重用"属性、则表示内核在内存不足时可以重新使用 DDR 区域。 请参阅 arch/arm/boot/dts/dra7-evm.dts、了解器件树中不同分割点的参考实现。

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

    以下是我在设备树中的内存分配:
    保留存储器{
    #address-cells =<0x2>;
    大小单元格=<0x2>;
    范围;

    ipu1_CMA@84000000{
    兼容="共享 dma-pool ";
    REG =<0x0 0x84000000 0x0 0x4000000>;
    无地图;
    状态="正常";
    linux、phandle =<bbb7>;
    phandle =<bb7>;
    };
    };

    在应用中、我们使用 mmap 来映射存储器、然后读取/写入该存储器区域:
    mmap (NULL、SCM_physical _LEN_B、PROT_read | PROT_write、map_shared、FD、 SCM_SICATE_ADDR);
    #define SCM_physical ADDR (0x87E00000)

    这是合理的吗?

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

    是的、这应该可以。

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

    Shravan、您好!

    感谢您的支持。

    根据我的理解、器件树中的保留存储器意味着该区域不在内核中映射、但 A15仍然可以通过特定的存储器物理地址来操作该存储器区域。

    我是对的吗?

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

    如之前的帖子中所示、保留存储器表示内核无法分配给定区域的缓冲区/存储器、除非设置了 RESUALLED 标志。 您仍然可以通过显式映射操作(如 mmap)从内核访问该区域。 您可以在此处找到更多信息。

    www.kernel.org/.../reserved-memory.txt

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

    明白了、感谢您的大力支持。