lantianyu520 发表于 2011-12-23 02:29

s3c6410开发板研究笔记(一)从SD卡启动UBOOT

<ul><li><strong><span style="font-family: arial black,avant garde;"><span style="color: rgb(255, 0, 0);">背景&nbsp;</span></span></strong></li></ul><p style="padding-left: 30px;">6410支持从SD卡启动,是否可以在SD卡上烧写一个UBOOT,开发板的跳线设置为SD卡启动后,将UBOOT运行起来?</p><p style="padding-left: 30px;">在UBOOT中可以操作网口(例如 tftp kernel 根文件系统)、操作NANDFLASH,NORFALSH,方便的进行升级?&nbsp;</p><ul><li><span style="color: rgb(255, 0, 0);"><strong><span style="font-family: arial black,avant garde;">资料收集部分&nbsp;</span></strong></span></li></ul><p style="padding-left: 30px;">参考 djyos 这哥们的一些文章 (都江堰OS,这哥们还是很强大、很给力的,赞一个,现在不知道为啥官网打不开了)</p><p style="padding-left: 30px;">资料地址:&nbsp;</p><p style="padding-left: 30px;">主版块网址</p><p style="padding-left: 30px;"><a href="http://www.ourdev.cn/bbs/bbs_list.jsp?bbs_id=3065" target="_blank">http://www.ourdev.cn/bbs/bbs_list.jsp?bbs_id=3065</a>&nbsp;</p><p style="padding-left: 30px;">资料汇总网址</p><p style="padding-left: 30px;"><a href="http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3866965&amp;bbs_page_no=1&amp;bbs_id=3065" target="_blank">http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3866965&amp;bbs_page_no=1&amp;bbs_id=3065</a>&nbsp;</p><p style="padding-left: 30px;">6410相关资料地址</p><p style="padding-left: 30px;">点击此处下载&nbsp;<a href="http://cache.ourdev.cn/bbs_upload291934/files_25/ourdev_531715.doc" target="_blank" target="_blank">ourdev_531715.doc(文件大小:38K)</a>&nbsp;<span style="color: rgb(0, 128, 0);">(原文件名:S3C6410移植日志之一.doc)</span>&nbsp; <br>点击此处下载&nbsp;<a href="http://cache.ourdev.cn/bbs_upload291934/files_25/ourdev_531716.doc" target="_blank" target="_blank">ourdev_531716.doc(文件大小:38K)</a>&nbsp;<span style="color: rgb(0, 128, 0);">(原文件名:S3C6410移植日志之二.doc)</span>&nbsp; <br>点击此处下载&nbsp;<a href="http://cache.ourdev.cn/bbs_upload291934/files_25/ourdev_531717.doc" target="_blank" target="_blank">ourdev_531717.doc(文件大小:38K)</a>&nbsp;<span style="color: rgb(0, 128, 0);">(原文件名:S3C6410移植日志之三.doc)</span>&nbsp; <br>点击此处下载&nbsp;<a href="http://cache.ourdev.cn/bbs_upload291934/files_25/ourdev_531718.doc" target="_blank" target="_blank">ourdev_531718.doc(文件大小:38K)</a>&nbsp;<span style="color: rgb(0, 128, 0);">(原文件名:S3C6410移植日志之四.doc)</span>&nbsp; <br>点击此处下载&nbsp;<a href="http://cache.ourdev.cn/bbs_upload291934/files_25/ourdev_531710.doc" target="_blank" target="_blank">ourdev_531710.doc(文件大小:40K)</a>&nbsp;<span style="color: rgb(0, 128, 0);">(原文件名:S3C6410移植日志之五.doc)</span>&nbsp; <br>点击此处下载&nbsp;<a href="http://cache.ourdev.cn/bbs_upload291934/files_25/ourdev_531711.doc" target="_blank" target="_blank">ourdev_531711.doc(文件大小:41K)</a>&nbsp;<span style="color: rgb(0, 128, 0);">(原文件名:S3C6410移植日志之六.doc)</span>&nbsp; </p><p style="padding-left: 30px;">&nbsp;</p><p style="padding-left: 30px;">&nbsp;</p><p style="padding-left: 30px;">网上随便搜索“使uboot支持S3C6410的SD启动”</p><p style="padding-left: 30px;">可以找到相关文章,具体哪里是原文出处,已无法考究,现给出一个可阅读的地址</p><p style="padding-left: 30px;"><a href="http://blog.csdn.net/wu_ye_zhou/archive/2010/06/08/5656093.aspx" target="_blank">http://blog.csdn.net/wu_ye_zhou/archive/2010/06/08/5656093.aspx</a>&nbsp;</p><p style="padding-left: 30px;">从这两方面的文章,我们接着详细分析</p><p style="padding-left: 30px;">&nbsp;</p><ul><li><span style="color: rgb(255, 0, 0);"><strong><span style="font-family: arial black,avant garde;">确定6410的启动模式,选择SD卡启动</span></strong></span></li></ul><p style="padding-left: 30px;">打开6410DATASHEET(我这里为s3c6410_rev12.pdf)&nbsp;</p><p style="padding-left: 30px;">57页&nbsp;&nbsp; 目录 3-1 Device operating mode selection at boot-up ........................................ 3-4&nbsp;</p><p style="padding-left: 30px;">125页 3.3.3 CLOCK SOURCE SELECTION,有表如下&nbsp;</p><p>&nbsp;<img alt="" src="http://hi.csdn.nethttp://blog.chinaunix.net/attachment/201104/7/0_1302191421jk22.gif"></p><p style="padding-left: 30px;">从上图我们可以看到 SD卡的启动,属于IROM启动</p><p style="padding-left: 30px;">GPN 设置为 000 则从 SD/MMC(CH0) 启动</p><p style="padding-left: 30px;">GPN 设置为 000 则从 SD/MMC(CH1) 启动</p><ul><li><span style="color: rgb(255, 0, 0);"><strong><span style="font-family: arial black,avant garde;">&nbsp;IROM启动过程</span></strong></span></li></ul><p style="padding-left: 30px;">这部分在6410的文档中没有介绍,参考DJYOS资料中的说明,找到相关资料如下</p><p style="padding-left: 30px;">896554S3C2450_IROM_ApplicationNote_Rev003.pdf&nbsp;</p><p style="padding-left: 30px;">下载地址:(迅雷好像下不成,用目标另存为好了)</p><p style="padding-left: 30px;"><a href="http://dlwt.csdn.net/fd.php?i=607620586383488&amp;s=b9eb5e15b8c5468d5443aa43ea767a6f" target="_blank">http://dlwt.csdn.net/fd.php?i=607620586383488&amp;s=b9eb5e15b8c5468d5443aa43ea767a6f</a>&nbsp;</p><p>&nbsp;<img alt="" src="http://hi.csdn.nethttp://blog.chinaunix.net/attachment/201104/7/0_1302192937wvJx.gif"></p><p>&nbsp;</p><p style="padding-left: 30px;">BL1 : Its size should be under 8K because BL1 is located in Stepping Stone(8K)<br>BL2 : There is no limit in its size, so it can locate any place in SDRAM area</p><p style="padding-left: 30px;">&nbsp;</p><p style="padding-left: 30px;">① IROM can do initial boot up : initialize system clock, device specific controller and booting device.</p><p style="padding-left: 30px;">IROM启动会先去执行BL0部分的32K的代码</p><p style="padding-left: 30px;"><br>② IROM boot codes can load 8KB of bootloader to stepping stone. The 8KB boot loader is called BL1.</p><p style="padding-left: 30px;">将BL1部分(存在SDK上的)8K的内容,加载到 stepping stone 区域(这8K在后面将是UBOOT最开始的8K)</p><p style="padding-left: 30px;"><br>③
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)&nbsp;</p><p style="padding-left: 30px;">BL2部分的内容将被加载到内存</p><p style="padding-left: 30px;"><br>④ Finally, jump to start address of BL2. That will make good environment to use system.&nbsp;&nbsp;</p><ul><li><span style="color: rgb(136, 136, 136);"><strong style=""><span style="font-family: arial black,avant garde;"><span style="color: rgb(255, 0, 0);">BL1、BL2在SDK上的存储方式</span></span></strong></span></li></ul><p>SD卡有两种:</p><p>SD/MMC Device 一般小于2G的卡是这种</p><p>SDHC Device 一般大于2G的卡是这种</p><p>分别对应的存储规则如下</p><p><img alt="" src="http://hi.csdn.nethttp://blog.chinaunix.net/attachment/201104/7/0_1302194637kabm.gif"><img alt="" src="http://hi.csdn.nethttp://blog.chinaunix.net/attachment/201104/7/0_1302194719Ghff.gif"></p><p>&nbsp;</p><p>&nbsp;</p><p>步骤一、找到可以从SD卡启动的UBOOT</p><p>&nbsp;</p><p>UBOOT的官方代码中有对6400的支持(跟6410差不多,只是少了3D的支持)</p><p>&nbsp;</p><p>但代码中,启动模式中没有SD卡启动模式(SD卡启动模式在S3C-UBOOT中叫MOVINAND启动)方式的支持</p><p>&nbsp;</p><p>查阅资料,找到最原始的 S3C-UBOOT 版本为 1.1.6 (版本是老了点,够用就行)</p><p>&nbsp;</p><p>网上翻阅资料的时候,也能找到 Real(友坚恒天)的 S3C-UBOOT-1.1.6</p><p>&nbsp;</p><p>友善之臂好像把这个支持SD卡启动的UBOOT称为SUPERUBOOT</p><p>&nbsp;</p><p>都是支持SD卡启动的UBOOT。</p><p>&nbsp;</p><p>(我用的是飞凌的OK6410,不熟悉以上两个开发板的情况如有说错还请谅解)</p><p>&nbsp;</p><p>&nbsp;</p><p>(没想到是在魅族手机论坛找到代码,汗。。。XXXX)</p><p>&nbsp;</p><p><a href="http://bbs.meizu.com/thread-851117-1-1.html" target="_blank">http://bbs.meizu.com/thread-851117-1-1.html</a></p><p>&nbsp;</p><p>UBOOT</p><p><a href="http://www.rayfile.com/files/7ac4e133-0e58-11de-bd70-0014221b798a/" target="_blank">http://www.rayfile.com/files/7ac4e133-0e58-11de-bd70-0014221b798a/</a></p><p>&nbsp;</p><p>KERNEL</p><p><a href="http://www.rayfile.com/files/f616aefd-0e57-11de-b505-0019d11a795f/" target="_blank">http://www.rayfile.com/files/f616aefd-0e57-11de-b505-0019d11a795f/</a></p>

hezhaoaqiang 发表于 2012-09-07 10:41

谢谢楼主分享
页: [1]
查看完整版本: s3c6410开发板研究笔记(一)从SD卡启动UBOOT