这片文章主要介绍S3C2410的内存映射,主要参考2410的用户手册。
我用的板子是基于三星的2410,三星的内存片选有8个bank,这里所谓的bank我开始也不是很清楚,在网上搜了一通也不知所云,但是当我看了 2410的用户手册后才有点明白,这里的bank就是片选,一个片选就是一个bank,在U-Boot中,配制的时候要配制SDRAM和FLASH的 bank数,那么如果你的SDRAM或者FLASH就接了一个片选的时候,就定义为1就可以了,其他的类推。
下面是2410的内存映射图,2410和其他的大部分的处理器一样,支持NorFlash和NANDFlash启动,而这两种启动方式内存所映射的地址不怎么相同,我的板子没有NANDFlash,所以就以从NorFlash启动为例子了:
==============================================<-------0xFFFF_FFFF
| NOT USED
==============================================<-------0x6000_0000
| SFR Area (各个接口的控制寄存器)
==============================================<-------0x4800_0000
==============================================<-------0x4000_0FFF
| BootSRAM (4KBytes)
==============================================<-------0x4000_0000
| SROM/SDRAM nGCS7 (bank7)
==============================================<-------0x3800_0000
| SROM/SDRAM nGCS6 (bank6)
==============================================<-------0x3000_0000
| SROM nGCS5 (bank5)
==============================================<-------0x2800_0000
| SROM nGCS4 (bank4)
==============================================<-------0x2000_0000
| SROM nGCS3 (bank3)
==============================================<-------0x1800_0000
| SROM nGCS2 (bank2)
==============================================<-------0x1000_0000
| SROM nGCS1 (bank1)
==============================================<-------0x0800_0000
| SROM nGCS0 (bank0)
==============================================<-------0x0000_0000
上面的每个bank最大支持128M,除了bank0,其它的每个bank都支持8/16/32位操作,bank0只支持16/32位操作,在我的板子上,Flash接bank0,一共8M,16位,SDRAM接bank6,一个32M,32位。所以启动的时候,CPU从0x0000_0000开始执行,而在这上面的NorFlash,存放的是U-Boot,用于启动Linux的。
而我们目前所做的工作就是要把U-Boot移植成功,然后烧写到该地址,假设你的板子的供应商已经提供了少些的工具,等到我们烧写成功,我们就可以通过网络来加载Linux,通过串口来调试了
阅读(2422) | 评论(0) | 转发(0) |