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.

[参考译文] PROCESSOR-SDK-J784S4:如何在 SDK-J784S4 10.0上将 RAM 大小从32GB 降至16GB

Guru**** 2560390 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1410118/processor-sdk-j784s4-how-to-reduce-ram-size-from-32gb-to-16gb-on-sdk-j784s4-10-0

器件型号:PROCESSOR-SDK-J784S4

工具与软件:

大家好!

我们正在努力将 J784S4 EVM 上的 RAM 大小从32GB 降低到16GB、从而为定制电路板准备 SDK、该定制电路板将具有与 EVM 相同类型的存储器、但仅配备两个插槽、而不是全部四个(总共16GB)。

我们遵循了 定制板启动指南中的说明 、特别是与 DDRSS 注册工具相关的第3部分、并基于与 DDRSS 注册工具相关的主题来确定我们的方法

我们更改了以下部分并获得了生成的文件:

以下是我们所做的更改:

  • RTOS SDK:
    • 应用生成的文件来代替 j784s4_board_ddrRegInit.h
    • 已更新 Board_DDR.c 使用新的头文件
  • Linux SDK:
    • 将 k3-j784s4-ddr-evm-lp4-4266.dtsi 替换为生成的文件
    • 已更新 k3-j784s4-ddr.dtsi 来引用新的.dtsi

注意:

根据较旧的说明(看起来已经过时) evm.c 并应修改报头文件。 但是、中不存在函数 dram_init 和 dram_init_banksize evm.c 但在 board/ti/common/k3-ddr-init.c 中可以找到、它似乎用来代替。 我们假设 RAM 大小是直接从 DTS 文件中读取的、但这只是我们的假设、并未经确认。

问题:

应用这些更改后、Linux 和 U-Boot 仍将 RAM 大小报告为32GB (尽管显示为30GB、大概为其他内核保留2GB)。

问题:

  1. 是否需要对 RTOS SDK 和 Linux SDK 进行更改才能使 RAM 减少生效?
  2. 因为我们要提前准备定制电路板、是否可以在 EVM 上确认此更改?
  3. 我们是否遗漏了任何步骤或未正确执行所有步骤?

此致、
Dušan μ A

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

    您好、 Dušan

    我们将进行研究。 如前所述、在通过 DTSI 文件更新寄存器设置之外、过去还需要通过其他更新来调整存储器总大小。 很遗憾、我没有使用最新的 SDK9或10、因此请与我们的软件团队联系。

    此致、
    Kevin

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

    您好!

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1224003/faq-tda4vl-q1-how-to-configure-ddr-size-of-4gb-in-the-j721s2-sdk

    这将在后续的 SDK 上提供。 您必须禁用2个未使用的 DDR 控制器。  

    请告知我们以上各项是否有帮助。

    此致、

    基尔西  

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

    Keerthy、您好!

    感谢你的帮助。 似乎这种解决办法解决了我们的问题。 我将附上一个补丁、其中包含对 J784S4所做的更改以及启动期间电路板的输出。 但是、如果您能为将来的更改澄清一些问题、我将不胜感激:

    1. RAM 修改中的 RTOS SDK 角色
      1. RTOS SDK 中的更改是否会影响 RAM 配置、或者 U-Boot 中的修改是否足以调整 RAM 大小?
    2. MULTI_DDR_CFG_INTRLV_SIZE 调整
      1. 在将 RAM 从32GB 降至16GB 时、是否需要修改 MULTI_DDR_CFG_INTRLV_SIZE? 使用时 DDRSS 寄存器配置工具 、建议进行以下更改、但未在修补程序中应用:

        1. -#define MULTI_DDR_CFG_INTRLV_SIZE 12.
          +#define MULTI_DDR_CFG_INTRLV_SIZE 11.
    3. DTS 文件中的活动控制器
      1. 在 J721S2的.dts 文件中、应用更改时活动控制器的数量从3个减少到1个。 对于 J784S4、当在 DDRSS 寄存器配置工具中仅选择 DDRSS0和1时、该值会从15减小到3。 您能否解释一下这两个电路板之间的变量差异为何如此之大? 此外、您能否确认此更改对于 J784S4是否正确(因为它已应用于补丁中)?

    4. 中的更改evm.c
      1. 正如我在原始问题的注释中提到的、补丁中未应用对 evm.c 文件的更改、因为那里不存在函数 dram_init 和 dram_init_banksize。 这些函数似乎由 k3-ddr-init.c 处理 您能否确认不需要修改 EVM.c?

    补丁文件:

    e2e.ti.com/.../5241.patch.txt

    U-Boot:

    e2e.ti.com/.../8865.uboot.txt

    此外、当我执行以下命令时:

    $ grep MemTotal /proc/meminfo
    内存总数:12903428 KB

    我可以看到在 Linux 端大约有12.3 GB 可用。 执行 reserved_memory部分.dts删除了剩余的内存、从而阻止我拥有分配给我的全部14GB 内存?

    再次感谢您的支持。

    此致、
    Dušan μ A

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    RTOS SDK 中的更改是否会影响 RAM 配置、或者 U-Boot 中的修改是否足以调整 RAM 大小?

    R5 SPL 是基于 U-Boot 的引导流程的一部分、将负责 DDR 配置。 使用 SPL 时、无需在 RTOS 方面触摸它。

    原始问题:补丁中未应用对 evm.c 文件的更改、因为补丁中不存在函数 dram_init 和 dram_init_banksize。 这些函数似乎由 k3-ddr-init.c 处理 您能否确认不需要修改 evm.c?[/QUOT]

    是的、使用最新的 SDK。 无需更改 evm.c。  

    应用更改时、活动控制器从3个减少为1个。 对于 J784S4、当在[/报价]中仅选择 DDRSS0和1时、该值会从15减小到3

    位0表示控制器0、位1表示控制器1、依此类推。 因此、15为0xF、所有4个位均设置。  

    内存、使我无法获得分配给我的全部14GB 内存?
    [/quote]

    是的、这符合预期。

    此致、

    基尔西  

    [/quote][/quote]