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.
各位专家、您好!
我们希望在 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
原始代码更改:
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
这确保了保守地减少1GB 内存以考虑内联 ECC。
因此,4GB --> 3 GB。
现在、由于可用内存本身为3 GB、我们可以将其减少到2.5 GB。
如下所示:
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
其他部件应保持不变。
-凯尔西
您好、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