麻烦您指点一下
非常感谢!
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.
群内的各位朋友:
你们好!最近我在内存配置方面遇到了问题.
我这边使用DM8127芯片,DDR为1G, 目前我只能配置768M内存(即使用了0x80000000~0xA0000000, 0xB0000000~0xC0000000),
我想把0xA0000000~0xB0000000这一块256M也用进来,因此我在config.bld文件中
var DDR3_ADDR_256_REG0_START = 0x80000000;
var DDR3_ADDR_256_REG0_END = 0xA0000000;
var DDR3_ADDR_256_REG1_START = 0xA0000000;
var DDR3_ADDR_256_REG1_END = 0xC0000000;
而我的uboot中是这样设置的:
/**
* Physical Memory Map
*/
#define CONFIG_NR_DRAM_BANKS 2 /* we have 2 banks of DRAM */
#define PHYS_DRAM_1 0x80000000 /* DRAM Bank #1 */
#define PHYS_DRAM_1_SIZE 0x20000000 /* 512 MB */ // added by xuhuan
#define PHYS_DRAM_2 0xA0000000 /* DRAM Bank #2 */
#define PHYS_DRAM_2_SIZE 0x20000000 /* 512MB */
重新编译启动后发现系统启动不了, 会报如下的错误:
[host] After Ipc_loadcallback status [0x00000000]
*** Platform_startCallback: Ipc_attach timeout
Error [0xffffffff] at Line no: 2860 in file /home/jensen/work/maxvision/ti_tools/syslink_2_20_02_20/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/family/hlos/knl/ti81xx/Platform.c
*** Ipc_control: Platform_startCallback failed!
Error [0xffffffff] at Line no: 853 in file /home/jensen/work/maxvision/ti_tools/syslink_2_20_02_20/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/ipc/hlos/knl/Ipc.c
[host] Error in Ipc_control Ipc_CONTROLCMD_STARTCALLBACK [0xffffffff]
对于内存配置这一块我不太了解,烦请熟悉的朋友指导一下,先谢谢了..
另外有个疑问,TI提供的样本内存配置,如512M的版本,config_512M.bld中,为什么0xA0000000~0xB0000000这一块空间没有用起来呢? 我记得8168的都是连续的.
非常感谢楼上的回复.我仔细看了下,我觉得rdk下的配置应该是没有问题的.
var DDR3_ADDR = 0x80000000;
var DDR3_SIZE = 1 * GB;
var DDR3_ADDR_256_REG0_START = 0x80000000;
var DDR3_ADDR_256_REG0_END = 0xA0000000;
var DDR3_ADDR_256_REG1_START = 0xA0000000;
var DDR3_ADDR_256_REG1_END = 0xC0000000;
var OCMC0_ADDR = 0x40300000;
var OCMC1_ADDR = 0x40400000;
var OCMC_SIZE = 256*KB;
/* first 512MB */
var LINUX_SIZE = 266*MB;
var CMEM_SIZE = 64*MB
var SR1_SIZE = 60*MB;
var VIDEO_M3_CODE_SIZE = 3*MB;
var VIDEO_M3_DATA_SIZE = 14*MB;
var DSS_M3_CODE_SIZE = 2*MB;
var DSS_M3_DATA_SIZE = 22*MB;
var DSP_CODE_SIZE = 10*MB;
var DSP_DATA_SIZE = 71*MB;
/* second 512MB */
var TILER_SIZE = 128*MB; /* Reducing this to fix Vid Frame Alloc failures. Need to fix */ /* MUST be aligned on 128MB boundary */
var SR2_FRAME_BUFFER_SIZE = 105*MB + 256*MB;
var SR0_SIZE = 16*MB;
var HDVPSS_DESC_SIZE = 2*MB;
var HDVPSS_SHARED_SIZE = 2*MB;
var NOTIFY_SHARED_SIZE = 2*MB;
var REMOTE_DEBUG_SIZE = 1*MB;
想请教下如果使用1G的内存(RDK3.5), 关于U-Boot这边的修改, 除了下述的地方, 是否还有别的地方要修改的呢?或者下面的配置是否有修改的地方呢?
/**
* Physical Memory Map
*/
#define CONFIG_NR_DRAM_BANKS 2 /* we have 2 banks of DRAM */
#define PHYS_DRAM_1 0x80000000 /* DRAM Bank #1 */
#define PHYS_DRAM_1_SIZE 0x20000000 /* 512 MB */ //
#define PHYS_DRAM_2 0xA0000000 /* DRAM Bank #2 */
#define PHYS_DRAM_2_SIZE 0x20000000 /* 512MB */
/*
* TI814X PG1.0 DMM LISA MAPPING
* Two 256MB sections with 128-byte interleaved(hole in b/w)
*/
#define PG1_0_DMM_LISA_MAP__0 0x0
#define PG1_0_DMM_LISA_MAP__1 0x0
#define PG1_0_DMM_LISA_MAP__2 0x805C0300
#define PG1_0_DMM_LISA_MAP__3 0xA05C0300
/*
* TI814X PG2.1 DMM LISA MAPPING
* 1G contiguous section with 128-byte interleaving
*/
#define PG2_1_DMM_LISA_MAP__0 0x0
#define PG2_1_DMM_LISA_MAP__1 0x0
#define PG2_1_DMM_LISA_MAP__2 0x805C0300
#define PG2_1_DMM_LISA_MAP__3 0xA05C0300
/*
* TI813X DM385 DMM LISA MAPPING
* 1G contiguous section with no interleaving
*/
#define DDR3_DMM_LISA_MAP__0 0x0
#define DDR3_DMM_LISA_MAP__1 0x0
#define DDR3_DMM_LISA_MAP__2 0x0
#define DDR3_DMM_LISA_MAP__3 0x80600100
你好,我也遇到跟你同样的问题,我是4块256M的DDR。现在0xA0000000~0xB0000000(256M)内存不可用,你说的DSP cache具体是要改uboot什么地方呀?
Wei Zhimin,
不可用是哪个核不能正确访问,是A8,M3,还是DSP,还是所有的核?
LISA寄存器,bld文件,AMMU配置等请确认都正确修改。
你好,我按照上面的一些改动,更改了以下代码:
uboot部分:1.ti8148_ipnc.h
2.ddr_defs_ti814x.h
RDK3.5 应用层:1.config_1024M.bld
2.FC_RMAN_IRES_c6xdsp.cfg
做了以上更改后,程序也可以正常跑起来不报错。
但是在uboot命令行输入:
mw 0x9000 0000 0xaaaa5555
对应0xB000 0000读取的数据也为0xaaaa5555
mw 0x8000 0000 0x22224444
对应的0xA000 0000读取的数据也为0x22224444
说明两段DDR映射的地址有问题,是不是DDR的地址线要改动一下?
麻烦您指点一下
非常感谢!
你好,
我问一下,我的dm8127板子以前用的是2块256M的DDR,现在改用了4块256M的DDR,请问需要按照:
DDR SW leveling
http://processors.wiki.ti.com/index.php/TI814x-DDR3-Init-U-Boot
上面进行修改吗?
还是只需要按照我上一贴说的那样改动?
zhimin wei 说:你好,
我问一下,我的dm8127板子以前用的是2块256M的DDR,现在改用了4块256M的DDR,请问需要按照:
DDR SW leveling
http://processors.wiki.ti.com/index.php/TI814x-DDR3-Init-U-Boot
上面进行修改吗?
还是只需要按照我上一贴说的那样改动?
如果DDR布线发生变化,就需要重新做SW leveling获得更新的ratio值。
你好,
我后来按照DM814x TRM文档里将DMM_LISA_MAP寄存器配置为:
LISA_MAP__2 0x80640300
LISA_MAP__3 0xA0640300
就好了,测试没有什么问题。再次感谢你!
zhimin wei 说:你好,
我后来按照DM814x TRM文档里将DMM_LISA_MAP寄存器配置为:
LISA_MAP__2 0x80640300
LISA_MAP__3 0xA0640300
就好了,测试没有什么问题。再次感谢你!
不对吧,该寄存器的最后8bit表示使用的DDR的物理地址,你上面两个配置的都是一样的,这样肯定0x80000000和0xA0000000看到的数据是同一个。
7-0 SDRC_ADDR 0h SDRAM controller address MSB