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.

[参考译文] TDA4VM:当 DDR 大小为3GB 时,如何启用 TI 的内联 ECC 以进行 DDR?

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1029982/tda4vm-how-to-enableti-s-inline-ecc-for-ddr-when-ddr-size-is-3gb

器件型号:TDA4VM

各位专家、您好!

我们希望在 DDR 大小为3GB 时启用 TI 的内联 ECC,您能就此提供一些指导吗?

最好的农家

Nathan

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

    Nathan、

    当您说3GB 是4 GB 中的3GB、还是 DDR 大小本身是3GB?

    我相信我们已经沟通过、启用后的内联 ECC 将用于整个 DDR。 因此、问题就在于此。

    -凯尔西

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

    您好、Kerrthy、

    感谢您的回复、我的意思是 DDR 大小本身就是3GB。

    Nathan

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

    Nathan、

    我相信您已经拥有支持2GB 内联 ECC 的补丁。

    e2e.ti.com/.../inline_2D00_ecc_2D00_2GB.tar
    原始代码更改:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    diff --git a/board/ti/j721e/evm.c b/board/ti/j721e/evm.c
    index d9846f3c46..8f4768f1a2 100644
    --- a/board/ti/j721e/evm.c
    +++ b/board/ti/j721e/evm.c
    @@ -71,8 +71,8 @@ int dram_init_banksize(void)
    #ifdef CONFIG_PHYS_64BIT
    /* Bank 1 declares the memory available in the DDR high region */
    gd->bd->bi_dram[1].start = CONFIG_SYS_SDRAM_BASE1;
    - gd->bd->bi_dram[1].size = 0x80000000;
    - gd->ram_size = 0x100000000;
    + gd->bd->bi_dram[1].size = 0x40000000;
    + gd->ram_size = 0xC0000000;
    #endif
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    这确保了保守地减少1GB 内存以考虑内联 ECC。

    因此,4GB --> 3 GB。

    现在、由于可用内存本身为3 GB、我们可以将其减少到2.5 GB。

    如下所示:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    diff --git a/board/ti/j721e/evm.c b/board/ti/j721e/evm.c
    index d9846f3c46..8f4768f1a2 100644
    --- a/board/ti/j721e/evm.c
    +++ b/board/ti/j721e/evm.c
    @@ -71,8 +71,8 @@ int dram_init_banksize(void)
    #ifdef CONFIG_PHYS_64BIT
    /* Bank 1 declares the memory available in the DDR high region */
    gd->bd->bi_dram[1].start = CONFIG_SYS_SDRAM_BASE1;
    - gd->bd->bi_dram[1].size = 0x80000000;
    - gd->ram_size = 0x100000000;
    + gd->bd->bi_dram[1].size = 0x20000000;
    + gd->ram_size = 0xA0000000;
    #endif
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    其他部件应保持不变。


    -凯尔西

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

    您好、Nathan、

    我为较高地址(>32位地址)启用 ECC。 自此
    DJI 请求用于启用3GB ECC。  我已启用3GB DDR。

    R5 SPL 无法直接访问大于32位的地址、因此需要基于区域的地址转换。
    (RAT)绘图。

    因此、当 DDR 初始化时、我将0x8000000 (可通过 R5访问)映射到0x880000000 (>32位)。
    将它们清除为0。 取消映射 RAT 转换。

    为第三个 GB 设置 ECC 第二个范围。

    我已经启动到 Linux、memtester 运行良好。

    欢迎进行更多测试。 7.3之上的补丁。

    e2e.ti.com/.../0001_2D00_Enable_2D00_ECC_2D00_for_2D00_3_2D00_GB.patch

    如果没有其他问题、请单击验证答案。

    此致、
    基尔西

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

    大家好、Keerty

    感谢您的回复。

    此致、

    Nathan