uboot移植到S3C44B0X开发板的经历

uboot移植到S3C44B0X开发板的经历

Sam Fei (email: samfei@163.com)

(1) 事情来由
几个月前从朋友那里拿到了一块参考Micetek EV44b0-II开发板设计的板子,对其bootloader MBL感觉很不错. 朋友说可能是移植u-boot的.但Micetek并没有提供MBL的源代码, 因此当时没有仔细去研究. 最近公司准备想做基于S3C44B0X CPU的产品,因此购买了杭州立宇泰公司(www.hzlitai.com.cn)的armsys-c及armsys-b开发板和.armsys提供的bootloader是其公司自己开发的bootloader,觉得其USB这一块做的还可以,但利用USB下载调试uclinux是非常麻烦的,操作很不爽,其bootloader也不提供网络下载调试.因此自己计划移植u-boot.

(2) 开始
由于没有接触过u-boot,因此第一步要做的就是google一些资料.
u-boot官方网站:http://sourceforge.net/projects/u-boot(比较慢)
http://u-boot.sourceforge.net/这个快一些.

DENX U-Boot及Linux使用手册: http://coosign.blogchina.com/coosign/1318487.html, 这是一遍翻译的文档.主要介绍了u-boot编译及使用的命令.但没有涉及新板子的移植流程.

根据上面手册中的说明,下载了最新的u-boot代码,命令:
#cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/u-boot login
#cvs -z6 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/u-boot co -P u-boot

到board目录查了一下:
#cd u-boot
#cd board
#find . -exec grep -l 44B0 {} /;
结果是:
./dave/B2/B2.c
B2网站是: http://www.dave-tech.it,初初看了B2开发板的介绍,但不详细.包括使用的网络芯片等都没有介绍.

google "u-boot 移植"后查到一篇文章:
"收集了一些关于U-BOOT的文章"
http://www.bloghome.cn/index.php?op=ViewArticle&articleId=2111&blogId=390

里面搜集了不少关于u-boot移植的问题.
里面介绍了"U-Boot 在44B0X 开发板上的移植以及代码分析"的内容,仔细看了看.发现其移植的版本比较低,但对了解u-boot结构是满不错的,因为这个版本不支持44B0X,因此完全是支持新CPU的移植.了解到make XX_config是在Makefile中定义的.
另外"MPC8xx的U-Boot移植体会(ZT) "这一篇对u-boot介绍满详细的.但对移植工作只做了理论性和经验性介绍,没有具体的操作步骤.

"基于Atmel at91rm9200的armlinux的bootloader启动代码分析 "
http://www.linuxfans.org/nuke/modules.php?name=News&file=print&sid=2765
里面介绍了u-boot移植到at91rm9200上的情况,可以参考一下.

另外就是仔细阅读u-boot下的README文件.

(3) 编译一把
看了相关的资料,心动不如行动.先编译一把看看情况.既然只有B2开发板是S3C44B0X CPU的,因此先编译一下B2开发板看看. 具体:
#cd u-boot
#make B2_config
#make
结果顺利,成功编译.

(4) 开始动手移植
我以B2板子的程序做为模板来做.
#cd board
#cp -r dave wx (自己取个公司名wx)
#cd wx
#mv B2 wx20 (自己取个板子名wx20)
#cd wx20
# mv B2.c wx20.c
修改Makefile及wx20.c, 主要是B2改成wx20.

增加配置文件:
#cd include/configs
#cp B2.h wx20.h
修改Makefile配置文件,增加wx20_config.
1432 wx20_config : unconfig
1433 @./mkconfig $(@:_config=) arm s3c44b0 wx20 wx
[注:前面的数字是文件行号,以下一样].
将board/wx目录下和wx20.h文件中的B2改成wx20或WX20.

这里其实是最重要的步骤,就是根据硬件的情况来修改相关的参数.由于对硬件板子的情况不是太了解,因此此时最需要的就是耐心地看看硬件资料.主要修改的地方有:
include/configs/wx20.h ---- 配置文件,大部分参数是这里配置的.
board/wx/wx20/lowlevel_init.S -- 内存参数配置
cpu/s3c44b0/serial.c -- 串口配置
cpu/s3c44b0/start.S -- 程序入口

如果此时配置全部正确了,那么我们就简单的很了.(如果你用我的patch的话,就是如此了!)那么我也就不会仔细再去研究u-boot其他部分了. 困难就是你学习的最好机会
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值