UBOOT如何引导kernel

1、u-boot先初始化一些必要的设备,如串口、网卡、flash、显示屏等驱动。
2、从flash、SD卡、tftp服务器取内核映像文件
3、将内核映像文件解压到内存。
4、校验内核。
5、设定配置参数,跳到内核执行。

 

u-BOOT和内核是如何衔接起来的?校验内核是在哪儿做的工作?
这个设定配置参数基本上需要设定哪些?
我还想问问系统的升级时是怎么实现的?具体和启动内核有什么内部差异?

1、引导的起始点
      u-boot中有个bootm命令,它可以引导内存中的应用程序映像(Kernel),bootm命令对应
common/cmd_bootm.c中的do_bootm()函数,此函数实现下面几个功能:
    1)读flash中的内核映像文件
    2)  解压内核
    3)校验内核
    4)跳到内核执行(调用do_bootm_linux()函数)

2、boot 的参数
     引导参数(由环境变量bootargs设定)有个缺省值,保存在flash中,可以在u-boot命令行用setenv bootargs命令进行修改。这个环境变量设置的参数,在do_bootm_linux()函数中读出,传递给内核。
    引导参数主要设置内存大小、控制台(及串口波特率)、rootfs的类型/设备/权限等,如有需要可以设置成tftp引导等。
3、升级
    一般boot只起引导内核的作用,只要工作正常没必要对它升级,内核的升级由u-boot是在flash中将老内核擦除,再从SD卡或者网络上下载一个新的写到flash上去,下次引导时就用新内核了。
这些只是功能的介绍,具体用法你可以启动到u-boot命令行下,看下各条命令的帮助。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值