主题 : S3C6410 启动模式探讨 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 46242
精华: 0
发帖: 40
金钱: 200 两
威望: 40 点
贡献值: 0 点
综合积分: 80 分
注册时间: 2011-05-11
最后登录: 2011-08-23
楼主  发表于: 2011-08-22 13:05

 S3C6410 启动模式探讨

大家都知道,S3C6410支持多种启动模式,启动模式的选择通过设置OM【4:1】引脚值设定。其中OM【4:1】=0011时为选择Nand模式,OM【4:1】=1111时为选择iROM模式。
目前我用的开发板是tiny6410,通过查看开发板原理图发现tiny6410支持两种启动模式(通过S2-Config选择,S2开关控制OM【4:3】引脚值):
1.
        S2朝上拨动,OM【4:3】=11,OM【4:1】=1111,此时S3C6410选择iROM启动模式。GPN【15:13】=000表明处理器识别SD/MMC类型的Nandflash。
系统现在处于SDBOOT模式,根据友善提供的教程:准备1张2G的SD卡,通过SDflasher将友善自主研发的superboot.bin文件烧录到SD卡中,复制u-boot.bin、内核映像、文件系统映像到SD卡上,同时配置FriendlyARM.ini文件。

正常情况下,OM【4:1】=1111时,处理器上电后的启动流程如下:
     1.1.处理器上电后,OM[4:1]=1111,运行iROM中的程序(芯片出厂时已经固定的),这个程序被称为Bootloader0(BL0),它会做一些初始化的工作。
     1.2. 然后根据GPN[15:13]的管脚设置,选择从相应的设备(SD/MMC/OneNand/Nand)中的指定区域读取4KB的程序到SteppingStone中运行,这段代码被称为Bootloader1(BL1)。
     1.3. BL1可以初始化系统时钟,UART,SDRAM等设备,然后拷贝Bootloader2(BL2)到SDRAM中。
     1.4. 跳转到SDRAM中的BL2,继续运行,BL2可以支持更强大的功能,可以将OS加载到SDRAM中,然后运行OS。

问题1:tiny6410开发板是如何在OM【4:1】=1111模式下执行复制SD卡里的映像内容到Nandflash的?

2.
        S2朝下拨动,OM【4:3】=00,OM【4:1】=0011,此时S3C6410选择Nand启动模式。GPN【15:13】引脚的值对处理器不起作用。

问题2:这种模式下处理器上电后,会运行iROM中的程序吗?还是直接从Nandflash中的指定区域读取4KB的程序到SteppingStone中运行。也就是BL0这个阶段执行吗?

希望大家踊跃发言,互相学习!
级别: 新手上路
UID: 46242
精华: 0
发帖: 40
金钱: 200 两
威望: 40 点
贡献值: 0 点
综合积分: 80 分
注册时间: 2011-05-11
最后登录: 2011-08-23
1楼  发表于: 2011-08-22 16:31
自己顶起,求高人指点。
级别: 新手上路
UID: 54462
精华: 0
发帖: 1
金钱: 5 两
威望: 1 点
贡献值: 0 点
综合积分: 2 分
注册时间: 2011-08-31
最后登录: 2011-08-31
2楼  发表于: 2011-08-31 09:27
问题1:tiny6410开发板是如何在OM【4:1】=1111模式下执行复制SD卡里的映像内容到Nandflash的?
答:SD卡里有初始化程序,它在上电时启动,启动后它可以控制Nandflash控制器访问Nandflash,把SD卡里的映像内容复制到Nandflash。

问题2:这种模式下处理器上电后,会运行iROM中的程序吗?还是直接从Nandflash中的指定区域读取4KB的程序到SteppingStone中运行。也就是BL0这个阶段执行吗?
答:这种模式下处理器上电后,不会运行iROM中的程序,直接从Nandflash中的指定区域读取4KB的程序到SteppingStone中运行。

shichengjin如果有兴趣研究裸机整个运行原理,可以加我Q2394637999,大家一起探讨。