您尚未登录。

楼主 #1 2019-12-25 11:19:00

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 841
积分: 721

uboot启动速度如何优化?

希望能秒启动linux,所以从uboot开始优化。
1.启动顺序是否可配置
2.这个bad crc是什么情况
3.SF: Detected w25q128bv with page size 256 Bytes, erase size 4 KiB, total 16 MiB  这条log后具体做了什么,足足停顿了3~4s

U-Boot SPL 2018.01-05676-g0018878-dirty (Dec 25 2019 - 03:05:37)
DRAM: 64 MiB
Trying to boot from MMC1
Card did not respond to voltage select!
mmc_init: -95, time 22
spl: mmc init failed with error: -95
Trying to boot from sunxi SPI

U-Boot 2018.01-05676-g0018878-dirty (Dec 25 2019 - 03:05:37 +0000) Allwinner Technology

CPU:   Allwinner F Series (SUNIV)
Model: Lichee Pi Nano
DRAM:  64 MiB
MMC:   SUNXI SD/MMC: 0
SF: Detected w25q128bv with page size 256 Bytes, erase size 4 KiB, total 16 MiB
*** Warning - bad CRC, using default environment

In:    serial@1c25000
Out:   serial@1c25000
Err:   serial@1c25000
Net:   No ethernet found.
starting USB...
No controllers found
Hit any key to stop autoboot:  0
SF: Detected w25q128bv with page size 256 Bytes, erase size 4 KiB, total 16 MiB
device 0 offset 0x70000, size 0x10000
SF: 65536 bytes @ 0x70000 Read: OK
device 0 offset 0x80000, size 0x400000
SF: 4194304 bytes @ 0x80000 Read: OK
=>

离线

#2 2019-12-25 11:24:13

晕哥
管理员
所在地: 微信 whycan_cn
注册时间: 2017-09-06
已发帖子: 9,223
积分: 9197

Re: uboot启动速度如何优化?

2. 头文件里面有一个宏,保存ENV环境变量参数存储的基地址和大小, u-boot启动首先去读flash中这个ENV,
我记得最后几个字节是CRC32(???)校验的, 如果校验不通过就用默认的参数.

3. bootcmd 里面的 sf read 比较耗时。





离线

楼主 #3 2019-12-25 14:54:05

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 841
积分: 721

Re: uboot启动速度如何优化?

晕哥 说:

2. 头文件里面有一个宏,保存ENV环境变量参数存储的基地址和大小, u-boot启动首先去读flash中这个ENV,
我记得最后几个字节是CRC32(???)校验的, 如果校验不通过就用默认的参数.

3. bootcmd 里面的 sf read 比较耗时。

对这个env环境变量不太懂,看log,make menuconfig设置的参数已经设置成功,那make menuconfig设置的是默认参数?
把头文件的这个宏注释掉,就不会有警告了吧

离线

#4 2019-12-25 15:07:47

xgui
会员
注册时间: 2019-09-07
已发帖子: 224
积分: 224

Re: uboot启动速度如何优化?

ENV 就是 u-boot 控制台用 printenv 打印出来的那些参数, 比如 bootcmd, bootargs 那些。

如果有 env 存在, u-boot会把 env 的参数覆盖默认的参数,

默认参数有些存在 menuconfig, 有些 存在 include/configs/sun**.h 里面.

离线

楼主 #5 2019-12-25 15:19:16

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 841
积分: 721

Re: uboot启动速度如何优化?

xgui 说:

ENV 就是 u-boot 控制台用 printenv 打印出来的那些参数, 比如 bootcmd, bootargs 那些。

如果有 env 存在, u-boot会把 env 的参数覆盖默认的参数,

默认参数有些存在 menuconfig, 有些 存在 include/configs/sun**.h 里面.

log已经打印出make menuconfig中的bootcmd,说明bootcmd修改了默认参数,那么这个env参数是在哪里修改呢?make menuconfig中能修改env吗?

离线

#6 2019-12-25 15:30:41

晕哥
管理员
所在地: 微信 whycan_cn
注册时间: 2017-09-06
已发帖子: 9,223
积分: 9197

Re: uboot启动速度如何优化?

2019-12-25_152909.png

这里修改 bootcmd/bootargs 默认参数, 早期版本的u-boot不能用make menconfig 修改这两个参数。





离线

楼主 #7 2019-12-25 15:42:12

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 841
积分: 721

Re: uboot启动速度如何优化?

晕哥 说:

https://whycan.cn/files/members/3/2019-12-25_152909.png

这里修改 bootcmd/bootargs 默认参数, 早期版本的u-boot不能用make menconfig 修改这两个参数。

是修改的这里,这个bad crc应该不影响启动时间,也不影响引导系统。这里uboot启动时间大部分都花在了sf probe 0 60000000; sf read 0x80c00000 0x70000 0x10000; sf read 0x80008000 0x80000 0x400000; bootz 0x80008000 - 0x80c00000

这个read应该是把spiflash中的内容读到dram里的过程,这里需要优化,方法是:减小内核和文件系统体积,我先试试内核1m,文件系统1m时的情况

离线

#8 2019-12-25 15:45:54

jiangchun9981
会员
注册时间: 2019-07-31
已发帖子: 170
积分: 130.5

Re: uboot启动速度如何优化?

全志用UBOOT+LINUX,很难优化到秒启动的

因为全志的读写SPI FLASH速度非常慢,不支持QUAD SPI模式,基本没有优化空间

离线

#9 2019-12-25 15:46:59

晕哥
管理员
所在地: 微信 whycan_cn
注册时间: 2017-09-06
已发帖子: 9,223
积分: 9197

Re: uboot启动速度如何优化?

kekemuyu 说:

是修改的这里,这个bad crc应该不影响启动时间,也不影响引导系统。这里uboot启动时间大部分都花在了sf probe 0 60000000; sf read 0x80c00000 0x70000 0x10000; sf read 0x80008000 0x80000 0x400000; bootz 0x80008000 - 0x80c00000

这个read应该是把spiflash中的内容读到dram里的过程,这里需要优化,方法是:减小内核和文件系统体积,我先试试内核1m,文件系统1m时的情况

对,crc错误那里不会产生影响,设置可以设置宏屏蔽env的相关代码,

这个地方还没有加载根文件系统。

内核启动之后才会加载, jffs2会扫描整个mtd分区, 这个地方对启动时间有影响。





离线

#10 2019-12-25 16:35:45

ippen
会员
注册时间: 2018-07-22
已发帖子: 345
积分: 339.5

Re: uboot启动速度如何优化?

这个比较有难度,我当时试过,极限在5秒左右

离线

#11 2019-12-25 16:46:46

晕哥
管理员
所在地: 微信 whycan_cn
注册时间: 2017-09-06
已发帖子: 9,223
积分: 9197

Re: uboot启动速度如何优化?

ippen 说:

这个比较有难度,我当时试过,极限在5秒左右

@橘子 说,f1c100s 2.3秒





离线

楼主 #12 2019-12-25 17:19:38

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 841
积分: 721

Re: uboot启动速度如何优化?

晕哥 说:

@橘子 说,f1c100s 2.3秒

是spi吗?

离线

#13 2019-12-25 17:25:29

晕哥
管理员
所在地: 微信 whycan_cn
注册时间: 2017-09-06
已发帖子: 9,223
积分: 9197

Re: uboot启动速度如何优化?

kekemuyu 说:

是spi吗?

是的,u-boot也要裁剪,最好100k以下,不过很有难度。





离线

楼主 #14 2019-12-25 17:27:43

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 841
积分: 721

Re: uboot启动速度如何优化?

那就从头文件开始吧,把不需要的统统砍掉

离线

#15 2019-12-25 17:37:59

ippen
会员
注册时间: 2018-07-22
已发帖子: 345
积分: 339.5

Re: uboot启动速度如何优化?

晕哥 说:

@橘子 说,f1c100s 2.3秒

剪裁到极限应该能做到,我的5-6秒,已经到了登录界面,应用程序运行起来了。

离线

#16 2019-12-25 18:56:49

达克罗德
会员
注册时间: 2018-04-10
已发帖子: 1,134
积分: 1086.5

Re: uboot启动速度如何优化?

我用SDNAND,uboot没优化;kernel本身只需要1.6秒到shell

离线

楼主 #17 2019-12-25 19:08:35

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 841
积分: 721

Re: uboot启动速度如何优化?

达克罗德 说:

我用SDNAND,uboot没优化;kernel本身只需要1.6秒到shell

kernel是在ram中运行,速度没得说,把没用的驱动去掉应该更快

离线

#18 2019-12-25 19:13:04

daydayup
会员
注册时间: 2017-10-09
已发帖子: 343
积分: 343

Re: uboot启动速度如何优化?

kekemuyu 说:

kernel是在ram中运行,速度没得说,把没用的驱动去掉应该更快

有用的也可用模块的方式加载,这样zImage比较小。

离线

#19 2019-12-26 09:09:59

wps_90
会员
注册时间: 2019-11-10
已发帖子: 10
积分: 0

Re: uboot启动速度如何优化?

秒启动到LOGO

离线

#20 2022-02-07 17:34:10

somnus
会员
注册时间: 2021-11-29
已发帖子: 17
积分: 2

Re: uboot启动速度如何优化?

楼主,UBOOT的启动时间最后是通过裁剪UBOOT和内核大小提高的吗?最后提高到了多少秒?

离线

#21 2022-02-09 11:53:59

somnus
会员
注册时间: 2021-11-29
已发帖子: 17
积分: 2

Re: uboot启动速度如何优化?

楼主,问题解决了吗?怎么解决的?

离线

#22 2022-02-09 12:07:03

xiongxinjian
会员
注册时间: 2019-01-13
已发帖子: 43
积分: 13

Re: uboot启动速度如何优化?

把等待键盘输入的时间设成0,关闭不必要的外设驱动的加载,关闭不必要的串口打印信息

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn