U-boot15(armv8)启动流程(基于展锐平台)_展锐 开机流程(1)

一、uboot是什么

U-Boot,全称 Universal Boot Loader,属于bootloader的一种,是一个用来引导启动系统的程序。

二、uboot存在的必要性

我们首先需要知道一个背景:每颗芯片内部都有一个IROM一个IRAM,IROM中soc厂商会固化有一段ROM Code, 作为芯片启动的最初代码,但由于IROM与IRAM价格非常昂贵,所以无法支持上百上千MB的程序下载或 运行。为了让Soc能够运行成百上千MB的程序,需要在启动后将外部介质(eMMC/UFS/SD/USB)以及 DDR进行初始化,最后利用外部DDR运行更大的程序。Uboot便是为了解决这一问题设计的。

因为uboot编译后,一般都有700多k,但是IRAM只有几十k,所以uboot引导启动一般分为三个阶段。

第一阶段:

芯片上电后,ROM Code开始执行,Rom Code会根据芯片bootPin以及外部存储是是否包 含启动程序进入相应的启动模式,这里便是第一启动,当判断是正常模式时,ROM Code便会从外部介质(eMMC,UFS,SDCard,Serial,USB)中加载Uboot(这部分uboot一般只有16k,称为SPL uboot)到IRAM中运行,因Soc芯片厂商ROM Code不同, 所支持的介质也不同。

第二阶段:

为了解决IRAM不足以运行UBoot,我们可以将UBoot分为两部分,只复制一部分代码到 IRAM,这部分代码初始化DDR(SP

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值