最近在升级 64M ---> 128M 总结了一下,发现其实需要修改的地方很小~!
第一:
NBOOT 里面的 startup.s
ldr r0, =0x30000000 ; Start address (physical 0x3000.0000).
ldr r9, =0x04000000 ; 64MB of RAM.
20
stmia r0!, {r1-r8}
subs r9, r9, #32
bne %B20
; 增加
ldr r0, =0x38000000 ; Start address (physical 0x3000.0000).
ldr r9, =0x04000000 ; 64MB of RAM.
21
stmia r0!, {r1-r8}
subs r9, r9, #32
bne %B21
第二:
EBOOT 里面的 startup.s
add r0, r0, #0x1E ; 1MB cachable bufferable
orr r0, r0, #0x400 ; set kernel r/w permission
mov r1, #0
;mov r3, #64
mov r3, #128 ; 这里没看明白, 呵呵。
第三:
g_oalAddressTable 里面增加 RAM
DCD 0x84000000, 0x38000000, 64 ; 64 MB DRAM BANK 6
;这里和硬件的接法有关,看看硬件接法的具体寻址
第四:
修改 common/memory/memory.c 文件
BOOL OEMGetExtensionDRAM (LPDWORD pMemoryStart, LPDWORD pMemoryLength)
{
*pMemoryStart = 0x84000000 ;//这个地址和 oemaddrtab 里面的地址一致
*pMemoryLength = 0x04000000 ;
OALMSG(1, (L"+OEMGetExtensionDRAM/r/n"));
return TRUE;
}
如果没有这个函数,自己把这个函数重载就可以了
第5:
FILE/CONFIG.BIB
增加 RAM 至 128.
重新编译一下就可以了。