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/AM5728:在 Linux 中实现扩展的2GB 内存空间

Guru**** 2589280 points
Other Parts Discussed in Thread: AM5728

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/588135/linux-am5728-enabling-extended-2gb-memory-space-in-linux

器件型号:AM5728

工具/软件:Linux

您好!

我们开发了一个偏离 AM5728 IDK 所使用的标准 EMIF 配置的定制电路板。 每个 EMIF 上都有2GB、可安装到总共4GB 或可寻址内存中。 我们从 TRM 和 e2e 论坛收集的信息中了解到了以下内容。

MA_LSM 和 DMM Lisa 映射可仅用于分区较低的2GB。 我们已配置256字节边界上的较低2GB 交错。

0x3FFF_FFF--- >  | EMIF1    | EMIF2    |

| EMIF (a)   | EMIF (b)    |

|               |                ||

0x0000_0000 ---------------------------- > |               |                 |

根据我们的理解、这意味着0x8000_0000至0xFFF_FFFF 将以交错方式映射到物理地址0x0000_0000至0x3FFF_FFFF (即、地址字段的第8位决定要命中哪个存储器控制器)。 我们是否正确地假设了这一点? 每个控制器提供1GB。

2. TRM 确实表明 上部2GB 具有固定的256字节边界交错。 启用 MA_Priority[8] HIMEM_Interlease_UN 是否确保可以访问高2GB、或者是否需要执行其他操作?

离职工作应与上文所理解的相同。  如果我错了、请纠正我的问题。  

因此、我们最终得到类似这样的结果

假设上述条件为真、并且硬件已配置为可访问4GB 地址空间。

1.需要对 Linux 内核源代码/DTS 进行哪些更改 ,以确保内核可以利用整个4GB 空间。

完成此操作后、是否有一个工具允许访问大于32位的地址? (假设这是需要的;如果我错了、请纠正我)

 

非常感谢。

此致、

Shaunak

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

    DRA75x TI EVM 随附4GB DDR3L、每个 EMIF 上为2GB。 DRA75x 和 AM572x 器件相似、因此您可以参考 DRA75x TI EVM u-boot/内核 EMIF 设置以供参考。

    www.ti.com/.../j6evm5777

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

    除了帕维尔的答复(这应该是你的主要指导)。 这是哪个内核? 如果是 Bellow 版本4.x、您可能需要启用 LPAE 以使用更多 RAM。

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

    您好、Pavel、

    我想我之前已经看过了。 请您向我指出我应该查找的文件和设置吗? 也许我看错了。

    非常感谢。

    此致、

    Shaunak

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

    如果您告诉我您的确切位置、我可能会回答您是否在正确的位置。

    您可以开始查看 DRA7x u-boot DMM_LISA 映射设置。

    此致、
    帕维尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Pavel、
    我在 u-boot/board/TI/dra7x/中查看了 EVM.c 文件。 但我不知道这是正确的文件还是应该查看该文件的设置。 请您能给我指正确的方向吗?
    此致、
    Shaunak
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Shaunak、

    我已经在下面的 e2e 线程中向正确的方向指出了您:

    e2e.ti.com/.../574408

    有关如何在 u-boot 中设置这些4GB、请参阅 u-boot/board/ti/dra7xx/evm.c、lisa_map_dra7_2GB

    如果您的 DDR3芯片与 AM572x TI 电路板(IDK、EVM)或 DRA75x TI EVM 不同、则还应进行一些额外调整、请参阅以下维基网页:

    www.ti.com/.../sprac36.pdf

    此致、
    帕维尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Pavel、
    我已在自定义板级配置文件中使用这些设置、因此我假设已启用4GB 空间。 您能否建议我如何验证上部2GB 是否实际可用? 由于我们能够访问较低的2GB、因此计时似乎正常。
    此致、
    Shaunak
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Shaunak、

    [报价用户="Shaunak Shilimkan"]请建议如何验证上部2GB 是否实际可用?

    上部2GB 仅可由 Cortex-A15 MPU 通过 LPAE 进行访问。 检查您是否已在 u-boot 中启用 plae、在这种情况下、您可以使用以下介绍的 mem 测试从 u-boot 访问高2GB:

    u-boot/doc/README.memory-test

    u-boot/common/memsize.c

    请注意、LPAE 默认仅在 Linux 内核中启用。 如果是这种情况、您可以从内核和/或用户空间测试高2GB。 查看以下 e2e 线程是否将提供帮助:

    此致、
    帕维尔

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

    您好、Pavel、

    我们在 defconfig 中有标志 CONFIG_ARMV7_LPAE = y。 这是否会实现在 u-boot 中启用 LPAE 的技巧? 还需要做些什么吗?

    此致、

    Shaunak

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

    我没有尝试过这种方法、但在 u-boot 中启用 LPAE 似乎可以。

    在启用 LPAE 时、我建议您检查和比较 Linux 内核和 u-boot 之间的 Cortex-A15和 MMU 设置。

    此致、
    帕维尔