当前位置: 首页 > U-Boot随笔 > 正文

u-boot移植随笔(13):u-boot2010.09移植到8MB Nor Flash的S3C2440,第一步搞定(补记)

这个本来是我发在csdn上的帖子,有一次使用搜索引擎时不小心搜索到。于是再将它放到博客里。

芯片:S3C2440(目前大部分的开发板在某个层次上讲是一样的)
Nor Flash:SST39VF6401B,64Mbit,封装与原来的2MB(型号一样,后面的是1601B)一样,后面的地址线也连接到了,没有留空
u-boot:2010.09,新版本的目录架构跟以前的有很大不同了。
目标:在Nor Flash上移植Boot Loader、内核、文件系统,Nand Flash的话就reserve for future use吧。
本次实践目的:我也不知为什么,如果要学某种东西的话,很难说清楚为的是什么,不说了,解释不清楚的。
网上有许多教程、资料讲如何移植u-boot到2410、2440的,至于真伪,需要自己亲自实践才知道。这次使用的Nor Flash是8MB,datasheet上是64Mbit,这回大方了,估计能装很多东西,根据以往经验,内核2MB左右,u-boot上不了多少的,其它的留给根文件系统,根文件系统要尽可能精简,能不要的就不要。换掉原来的Nor Flash以后,实然想到开发板可能会支持那么大的Nor,或者封装不会相同?经过看原理图,看datasheet,研究好一会,才放下心来,原来,一切都在人家掌握之中了,我白担心十几分钟了。这次看datasheet比较认真,对两个Nor Flash的型号、特性、指令等等有一定的了解,比如,6401跟6402有一点不同,6401B跟6401B的ID号不同,6401B跟1601的erase、program指令不同——好像是废话,但在修改代码时要很注意,而且要保持大脑清醒,我将每个步骤作简单的笔记,生怕一不小心忘了个什么操作,想找也找不回来了。
经过几天的奋斗,u-boot终于能识别新的芯片,擦除flash、保存环境变量等等都没问题——经测试,保存环境变量那个地址最好往后一点点,不要太靠前了,因为u-boot将来会有多大,很难说,这个可以使用md命令来查看。
下一步目标是调用函数点灯,u-boot启动时调用了两个点灯函数,初步看有点复杂,鉴于能力问题,这个步骤的结果是未知的。
上述讲那么多,估计也没几个人会看。现说明几点:
1、看datasheet的水平虽然不高,但对那些英文没有了恐惧,也算是巩固专业英语吧。
2、这次还是参考网上的资料,这是必需的。
3、flash部分代码参考./board/dave下面的两个flash.c,不使用原来的flash.c。
4、对u-boot理解又深刻一点了,看代码时候,似乎又回到以前那个美好时光了。——看代码其实很有乐趣的。
5、本次实践肯定会有笔记(不太想说“文档”),不过这是很后面的事情了,目前暂时不考虑。
6、本文略去很多相关背景,原因不想说,同样解释不清楚。
木草山人补记于2011-3-10

本文固定链接: http://www.latelee.org/porting-uboot/u-boot-porting-nor-flash-2.html

目前暂无评论

发表评论

*

快捷键:Ctrl+Enter