uboot引导非压缩的内核镜像vmlinux.bin

一般都是使用uboot引导uImage,uImage是在压缩的内核(如zImage)加了一些信息生成的。这些信息主要内容包括此内核是那种类型,linux还是其他的;内核的入口地址等信息。长度是0x40。加这些信息主要是为了Uboot强大的多系统支持服务。在uboot的代码中(bootm)也有一部分代码把这些信息读出来放在一个叫struct bootm_headers 的结构体中,对内核进行分类,进而调用不同内核对应的代码。


在系统启动过程中,使用压缩的内核需要解压,但是由于已经压缩过,从外存加载到内存的速度比较快。大部分系统都使用这种压缩的内核。


那么怎么让uboot使用非压缩的内核呢?


方法是在非压缩的内核头部加入uboot需要的信息。uboot提供了mkimage工具。可以使用它对vmlinux.bin进行添加头部信息,别忘了修改uboot读kernel的大小,因为vmlinux.bin比zImage至少大一倍(下边的0x600000)。


CONFIG_BOOTCOMMAND "sfcnand read 0x100000 0x600000 0x80600000 ;bootm 0x80600000"



mkimage指令参考

mkimage -A mips -O linux -T kernel -C none \

-a 0x80010000 -e 0x80353c40 \
-n 'Linux-3.0.8' \

-d arch/mips/boot/zcompressed/vmlinux.bin arch/mips/boot/zcompressed/vImage




其他相关可以看看我转载的一篇文章

http://blog.csdn.net/yafeixi/article/details/53925083

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Eric_Xi_BJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值