2013年(3)
分类: 嵌入式
2013-11-22 16:52:45
6410支持从SD卡启动,是否可以在SD卡上烧写一个UBOOT,开发板的跳线设置为SD卡启动后,将UBOOT运行起来?
在UBOOT中可以操作网口(例如 tftp kernel 根文件系统)、操作NANDFLASH,NORFALSH,方便的进行升级?
参考 djyos 这哥们的一些文章 (都江堰OS,这哥们还是很强大、很给力的,赞一个,现在不知道为啥官网打不开了)
资料地址:
主版块网址
http://www.ourdev.cn/bbs/bbs_list.jsp?bbs_id=3065
资料汇总网址
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3866965&bbs_page_no=1&bbs_id=3065
6410相关资料地址
点击此处下载 ourdev_531715.doc(文件大小:38K) (原文件名:S3C6410移植日志之一.doc)
点击此处下载 ourdev_531716.doc(文件大小:38K) (原文件名:S3C6410移植日志之二.doc)
点击此处下载 ourdev_531717.doc(文件大小:38K) (原文件名:S3C6410移植日志之三.doc)
点击此处下载 ourdev_531718.doc(文件大小:38K) (原文件名:S3C6410移植日志之四.doc)
点击此处下载 ourdev_531710.doc(文件大小:40K) (原文件名:S3C6410移植日志之五.doc)
点击此处下载 ourdev_531711.doc(文件大小:41K) (原文件名:S3C6410移植日志之六.doc)
网上随便搜索“使uboot支持S3C6410的SD启动”
可以找到相关文章,具体哪里是原文出处,已无法考究,现给出一个可阅读的地址
http://blog.csdn.net/wu_ye_zhou/archive/2010/06/08/5656093.aspx
从这两方面的文章,我们接着详细分析
打开6410DATASHEET(我这里为s3c6410_rev12.pdf)
57页 目录 3-1 Device operating mode selection at boot-up ........................................ 3-4
125页 3.3.3 CLOCK SOURCE SELECTION,有表如下
从上图我们可以看到 SD卡的启动,属于IROM启动
GPN[15:13] 设置为 000 则从 SD/MMC(CH0) 启动
GPN[15:13] 设置为 000 则从 SD/MMC(CH1) 启动
这部分在6410的文档中没有介绍,参考DJYOS资料中的说明,找到相关资料如下
896554S3C2450_IROM_ApplicationNote_Rev003.pdf
下载地址:(迅雷好像下不成,用目标另存为好了)
BL1 : Its size should be under 8K because BL1 is located in Stepping Stone(8K)
BL2 : There is no limit in its size, so it can locate any place in SDRAM area
① IROM can do initial boot up : initialize system clock, device specific controller and booting device.
IROM启动会先去执行BL0部分的32K的代码
② IROM boot codes can load 8KB of bootloader to stepping stone. The 8KB boot loader is called BL1.
将BL1部分(存在SDK上的)8K的内容,加载到 stepping stone 区域(这8K在后面将是UBOOT最开始的8K)
③
BL1 will do : BL1 can initialize system clock, UART, and SDRAM for
user. Thereafter, BL1 will loadremained boot loader which is called BL2
on the SDRAM(这部分将是完整的UBOOT.BIN)
BL2部分的内容将被加载到内存
④ Finally, jump to start address of BL2. That will make good environment to use system.
SD卡有两种:
SD/MMC Device 一般小于2G的卡是这种
SDHC Device 一般大于2G的卡是这种
分别对应的存储规则如下
步骤一、找到可以从SD卡启动的UBOOT
UBOOT的官方代码中有对6400的支持(跟6410差不多,只是少了3D的支持)
但代码中,启动模式中没有SD卡启动模式(SD卡启动模式在S3C-UBOOT中叫MOVINAND启动)方式的支持
查阅资料,找到最原始的 S3C-UBOOT 版本为 1.1.6 (版本是老了点,够用就行)
网上翻阅资料的时候,也能找到 Real(友坚恒天)的 S3C-UBOOT-1.1.6
友善之臂好像把这个支持SD卡启动的UBOOT称为SUPERUBOOT
都是支持SD卡启动的UBOOT。
(我用的是飞凌的OK6410,不熟悉以上两个开发板的情况如有说错还请谅解)
(没想到是在魅族手机论坛找到代码,汗。。。XXXX)
UBOOT
KERNEL