s3c6410开发板研究笔记(一)从SD卡启动UBOOT(未完待续。。。)

时间:2022-02-11 12:23:49
  • 背景 

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 

从这两方面的文章,我们接着详细分析

 

  • 确定6410的启动模式,选择SD卡启动

打开6410DATASHEET(我这里为s3c6410_rev12.pdf) 

57页   目录 3-1 Device operating mode selection at boot-up ........................................ 3-4 

125页 3.3.3 CLOCK SOURCE SELECTION,有表如下 

 s3c6410开发板研究笔记(一)从SD卡启动UBOOT(未完待续。。。)

从上图我们可以看到 SD卡的启动,属于IROM启动

GPN[15:13] 设置为 000 则从 SD/MMC(CH0) 启动

GPN[15:13] 设置为 000 则从 SD/MMC(CH1) 启动

  •  IROM启动过程

这部分在6410的文档中没有介绍,参考DJYOS资料中的说明,找到相关资料如下

896554S3C2450_IROM_ApplicationNote_Rev003.pdf 

下载地址:(迅雷好像下不成,用目标另存为好了)

http://dlwt.csdn.net/fd.php?i=607620586383488&s=b9eb5e15b8c5468d5443aa43ea767a6f 

 s3c6410开发板研究笔记(一)从SD卡启动UBOOT(未完待续。。。)

 

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.  

  • BL1、BL2在SDK上的存储方式

SD卡有两种:

SD/MMC Device 一般小于2G的卡是这种

SDHC Device 一般大于2G的卡是这种

分别对应的存储规则如下

s3c6410开发板研究笔记(一)从SD卡启动UBOOT(未完待续。。。)s3c6410开发板研究笔记(一)从SD卡启动UBOOT(未完待续。。。)

 

 

步骤一、找到可以从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)

 

http://bbs.meizu.com/thread-851117-1-1.html

 

UBOOT

http://www.rayfile.com/files/7ac4e133-0e58-11de-bd70-0014221b798a/

 

KERNEL

http://www.rayfile.com/files/f616aefd-0e57-11de-b505-0019d11a795f/