arm:imx6q
uboot:2016.03
kernel:4.1.15如上图所示,从uboot引导kernel到打印出kernel第一条信息start_kernel居然消耗了940ms的时间,无论是zImage(压缩)还是Image(非压缩)镜像,所消耗的时间几乎一样,请问各路大神这段时间消耗是怎么产生的?有没有办法减少这部分时间的消耗?

解决方案 »

  1.   

    看看uboot把时间都浪费到什么地方了,查查读kernel到RAM耗时多少
      

  2.   

    不管是IMAGE还是ZIMAGE,都是压缩的,所以这段时间主要是解压缩、装载解压后的代码
      

  3.   

    2点,
    1、strrting kernel..是uboot打印出的还是kernel打印出的?(参考https://github.com/boundarydevices/u-boot-imx6/blob/boundary-v2016.03/arch/arm/lib/bootm.c)
    2、你这个timestamp是secure crt保存的么?是的话可能不准确。
      

  4.   

    从Log看数据搬移在Booting Image 之前已经完成了,接下来就应该是简单的解压和内核启动准备工作了。印象中以前版本(2.6.x)的解压都会出现Uncompress...字样的,不知道新的内核是否已经没有这部分了。一般Linux kernel启动会重新初始化很多硬件的,看一下你这边是不是有什么初始化时间比较长的代码。