uboot中的SPL介绍

本文概述了ARM启动过程中的关键环节,重点介绍了SPL(Secure Partition Loader)的作用和它与RomBoot、u-boot的关系,以及SPL的产生背景和其在初始化外设及代码迁移中的角色。
摘要由CSDN通过智能技术生成

 部分转载了大神的博客:uboot 中的spl 简单认识_Eric.Xi-CSDN博客

=========================================================================

  • 目前ARM一般的启动过程如下:

        RomBoot --> SPL --> u-boot --> Linux kernel --> file system --> start application

        (RomBoot一般是固化在SoC内部的,因此在真正的uboot运行前还有段SPL的运行,这么看来

          uboot是分为stage1和stage2两段        执行的)

  • SPL的产生:

        因为芯片厂商固化的ROM支持从nandflash, SDCARD等外部介质启动,所以RomBoot会根

据硬件电路的启动模式选择读取对应介质一小段数据到内存。RomBoot读取多少才算合适呢?每

个用户的需求不一样,大小也不能确定。很多芯片厂商干脆就只读4K/8K/16K等很小一段数据(这

段程序的大小各厂商的具体定义均不一样)。这段数据你可以存放芯片初始化,读取介质数据到内

存的工作是完全没有问题的。就这样在我们的软件界就产生了一个SPL概念,RomBoot读取的这一

小段代码就叫做spl

  • RomBoot

        RomBoot是厂商固化在芯片内部的一小段程序,类似于PC机上的BIOS引导程序。

        这段程序主要的工作内容包括:

     (1)初始化部分硬件。

     (2)启动模式boot mode选择。

     (3)读取外部固件中的SPL程序到片内RAM。

     (4)跳转到RAM去执行这段SPL程序,把控制权交给用户程序。

     (5)另外可能还有厂商的测试程序;以及为了安全性考虑,检查和加密解密外部导入的固件

  • SPL的作用

        SPL是uboot第一阶段执行的代码。 主要负责初始化芯片,搬移uboot第二阶段的代码到外部

内存中运行(从这里可以看出,SPL的一个主要功能就是要初始化外部内存)。 

        切记SPL不能太大,不然RomBoot无法读取完整,有些你写在spl功能就无法读到内存,CPU

执行不了,满足不了你的需求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值