UBOOT-2012-10在OK6410平台的移植(十二)移植结束

UBOOT-2012-10在OK6410平台的移植基本就这样结束了,接下来的阶段里有时间会尝试LINUX的移植。

这当然要这个uboot能够启动内核,呵呵,初步试一下编译好linux 3.6.7后用uboot目录下的那个mkimage工具生成uImage,结果可以启动,不过linux运行过程中好像出现了NAND的oOBsize的错误,应该是linux3.6.7里面的那个NAND启动还没有改造成。不管怎么说,Uboot已经能够引导内核了。。。。。。

这个uboot 2012-10移植的最后是修改成自动识别NAND或SD卡启动。其实也比较简单,采用了tekkamanninja这位网友的方法,如下:

Start.s文件在movi_boot和nand_boot这个地方改成对启动引脚的判断:

#ifdef CONFIG_NAND_SPL
#define MEM_CFG_STAT 0x7e00f12c
ldr r1, =MEM_CFG_STAT /* address of reg MEM_CFG_STAT*/
ldr r0, [r1]
mov r1, #0x60
and r1, r0, r1 /*r1 = MEM_CFG_STAT & CFG_BOOT_LOC */

cmp r1, #0x60 /*Internal ROM*/
beq boot_from_irom
cmp r1, #0x00 /*Stepping Stone area in NFCON*/
beq boot_from_nand
b reset
boot_from_irom:
ldr sp, _TEXT_PHY_BASE
bl movi_bl2_copy
b after_copy
after_copy:
ldr pc,_TEXT_PHY_BASE
boot_from_nand:
ldr sp, =(CONFIG_SYS_INIT_SP_ADDR)
bic sp, sp, #7 /* 8-byte alignment for ABI compliance */
ldr r0,_nand_boot
mov pc, r0
_nand_boot: .word nand_boot
#else

..........

#endif

这样现在编译好后目录下有3个u-boot:其中u-boot.bin是在SDRAM运行的;u-boot-nand是烧到NAND后从NAND启动的,u-boot-mmc.bin是烧到SD卡后从SD卡启动的。

原来打算把整个代码传上来,可惜附件最大只能传2M,传不了,把它放在CSDN上了。不过每篇移植里都有提供关键几个文件的下载,照上面移植应该可以了。

u-boot-2012.10 for ok6410.tar.gz

<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
阅读(4) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
发布了28 篇原创文章 · 获赞 4 · 访问量 1万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章