本文以AM3352为例,硬件ddr3从128MB改为512MB,芯片更换系统中的设置当然也需要更换了。
参考资料:
关于内存配置的WIKI:
关于DDR3的WIKI:
1、修改一级boot中DDR配置,AM3352与DDR相关的寄存器是 EMIF寄存器,需要配置的EMIF寄存器如下
SDRAM_CONFIG
SDRAM_REF_CTRL
SDRAM_TIM_1
SDRAM_TIM_2
SDRAM_TIM_3
DDR_PHY_CTRL_1
这些配置均XLDR代码中 中。 修改完成后,在XLDR中可正常测试读写DDR。
2、修改addrtab_cfg.inc 和 config.bib中内存分配,这两个文件可见附件。
在addrtab_cfg.inc中,分配好所有的内存空间。 注意Wince6.0所能支持的uncache范围为512MB, 我们还需要映射一些系统上所需的I/O,处理器的寄存器,335X上其他资源耗费75M~~ 所以这512MB的内存只能用437M会有所浪费(映射512的话,系统会挂)
config.bib中,主要是注意 RAM 地址的分配,关于config.bib的说明可见附件的网页文件。 有一个坑: RAM的地址必须是连续的内存地址,对于非连续内存地址,需要在OAL中使用g_pOemGlobal->pfnEnumExtensionDRAM这个函数提交内存给系统使用。
3、如果修改了Eboot的加载地址,那么这个eboot.bib也需要对应的进行修改。 XLDR中eboot跳转地址需要与 eboot.bib中的ROMSTART相同。
4、因为这个512MB内存无法连续分配,所以得在OAL提交内存给系统,操作方法为:
声明函数:
DWORD OEMEnumExtensionDRAM(PMEMORY_SECTION pMemSections,DWORD cMemSections);
在OALInit中添加:
//Add extern Ram
g_pOemGlobal->pfnEnumExtensionDRAM = OEMEnumExtensionDRAM; // Add extern RAM
函数实现如下:
-
-
/*********************************************************************************************************
-
** Function name: OEMEnumExtensionDRAM
-
**
-
** Descriptions: 系统内存分配,可以添加多片不连续的内存
-
** 1、根据DSP的应用需求,将多余的DSP保留区内存添加到系统内存
-
2、添加另外增加的MB内存到系统内存
-
注意:
-
1、使用OEMEnumExtensionDRAM函数,在初始化时付给g_pOemGlobal->pfnEnumExtensionDRAM即可
-
2、g_pOemGlobal->pfnEnumExtensionDRAM指针初始化过后,原来的OEMGetExtensionDRAM函数就无效了
-
** input parameters:
-
** output parameters:
-
** Returned value: 额外添加的内存片数
-
*********************************************************************************************************/
-
DWORD OEMEnumExtensionDRAM(PMEMORY_SECTION pMemSections,DWORD cMemSections)
-
{
-
-
DWORD cSections = 0;
-
-
RETAILMSG(1, (_T("OEMEnumExtensionDRAM cMemSections = %d\r\n"),cMemSections));
-
-
//添加额外309MB内存
-
if (cSections < cMemSections) {
-
pMemSections[cSections].dwFlags = 0;
-
pMemSections[cSections].dwStart = 0x8CB00000;
-
pMemSections[cSections].dwLen = 0x13500000; //309MB
-
cSections++;
-
}
-
RETAILMSG(1, (_T("OEMEnumExtensionDRAM (cSections=%d)\r\n"), cSections));
-
-
-
return cSections;
-
}
5、到这一步就大功告成. 查看系统可用内存为381MB.
阅读(2213) | 评论(0) | 转发(0) |