Chinaunix首页 | 论坛 | 博客
  • 博客访问: 56078
  • 博文数量: 18
  • 博客积分: 27
  • 博客等级: 民兵
  • 技术积分: 100
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-06 09:17
文章分类
文章存档

2012年(18)

我的朋友

分类:

2012-11-27 21:48:16

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上了。不过每篇移植里都有提供关键几个文件的下载,照上面移植应该可以了。


阅读(1174) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~