分类: IT职场
2016-12-18 18:42:25
二、修改内存信息
SMART210或webee210核心板有四块DDR2内存芯片,每块128MB,总共512MB:S5PV210的地址分配中有两个DRAM区域:0x20000000-0x3FFFFFFF与0x40000000-0x7FFFFFFF,如图3-8所示。
图3-8 S5PV210地址分配示意图
由SMART210核心板的原理图可以看出,四块DDR芯片依次按照按8位数据线模式挂在DRAM0区域。据此修改配置文件。
图3-9 SMART210内存硬件连接示意图
1. 修改配置文件:
gedit include/configs/smdkv210single.h
修改:
#define MEMORY_BASE_ADDRESS 0x20000000
#define DMC0_MEMCONTROL 0x00202400
#define DMC0_MEMCONFIG_0 0x20E00323
#define DMC0_MEMCONFIG_1 0x40F00323
#define DMC1_MEMCONTROL 0x00202400
#define DMC1_MEMCONFIG_0 0x40F00313
#define DMC1_MEMCONFIG_1 0x00F00313
#define SDRAM_BANK_SIZE 0x20000000 /* 512 MB */
#define CONFIG_NR_DRAM_BANKS 1 /* we have 1 bank of DRAM */
#if 0
#define PHYS_SDRAM_2 (MEMORY_BASE_ADDRESS + SDRAM_BANK_SIZE) /* SDRAM Bank #2 */
#define PHYS_SDRAM_2_SIZE SDRAM_BANK_SIZE
#endif
2. 修改CPU初始化文件:
gedit cpu/s5pc11x/s5pc110/cpu_init.S
将122行:
ldr r1, =0x00212400
修改为在smdkv210single.h头文件中定义的内容:
ldr r1, =DMC0_MEMCONTROL
重新编译下载运行,可以看出DRAM的大小已经正确认出:
OK
U-Boot 1.3.4 (Dec 25 2013 - 10:07:18): for E&E210
CPU: S5PV210@1000MHz(OK)
APLL = 1000MHz, HclkMsys = 200MHz, PclkMsys = 100MHz
MPLL = 667MHz, EPLL = 80MHz
HclkDsys = 166MHz, PclkDsys = 83MHz
HclkPsys = 133MHz, PclkPsys = 66MHz
SCLKA2M = 200MHz
Serial = CLKUART
Board: SMDKV210
DRAM: 512 MB
SD/MMC: 1946MB
NAND: 512 MB
In: serial
Out: serial
Err: serial
checking mode for fastboot ...
Hit any key to stop autoboot: 0
SMDKV210 #
对于GEC210开发板来说,硬件连接方式与SMART210或WEBEE210有所不同。由GEC210核心板的原理图可以看出,两块DDR芯片按高低16位数据线模式挂在DRAM0区域,另外两块DDR芯片按高低16位数据线模式挂在DRAM1区域。
图3-10 GEC210内存硬件连接示意图
修改配置文件:
vim include/configs/smdkv210single.h
#define MEMORY_BASE_ADDRESS1 0x40000000
#define DMC0_MEMCONTROL 0x00202400
#define DMC0_MEMCONFIG_0 0x20F00313
#define DMC0_MEMCONFIG_1 0x00F00313
#define DMC1_MEMCONTROL 0x00202400
#define DMC1_MEMCONFIG_0 0x40F00313
#define DMC1_MEMCONFIG_1 0x00F00313
#define SDRAM_BANK_SIZE 0x10000000 /* 256 MB */
#define PHYS_SDRAM_2 (MEMORY_BASE_ADDRESS1) /* SDRAM Bank #2 */
修改后编译,烧写。