uboot 中的spl 简单认识

简介: uboot 中的spl 简单认识

SPL

ARM SoC的启动过程:

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

(RomBoot是固化在SoC内部的。)

spl的产生:

因为芯片厂商固化的ROM支持从nandflash, SDCARD等外部介质启动,所以RomBoot会根据硬件电路的启动模式选择读取对应介质一小段数据到内存。RomBoot读取多少才算合适呢?每个用户的需求不一样,大小也不能确定。很多芯片厂商干脆就只读4K/8K/16K等很小一段数据。这段数据你可以存放芯片初始化,读取介质数据到内存的工作是完全没有问题的。就这样在我们的软件界就产生了一个SPL概念,RomBoot读取这一小段代码就叫spl。

[点击并拖拽以移动]

spl的作用:

  SPL是uboot第一阶段执行的代码。 主要负责初始化芯片,搬移uboot第二阶段的代码到内存中运行。 SPL是由固化在芯片内部的ROM引导的。

  所谓启动, 就是从这些外部介质中搬移一段固定大小(4K/8K/16K等)的代码到内部RAM中运行。 这里搬移的就是SPL. 在最新版本的uboot中, 可以看到SPL也支持nandflash, SDCARD等多种启动方式。 当SPL本身被搬移到内部RAM中运行时, 它会从nandflash, SDCARD等外部介质中搬移uboot第二阶段的代码到外部内存中。

切记SPL不能太大,不然RomBoot 无法读取完整,有些你写在spl功能无法读到内存,CPU执行不了,满足不了你的需求。

相关文章
|
6月前
|
存储 缓存 安全
U-BOOT小全(五):BootLoader源码(SPL-UBoot 2)
U-BOOT小全(五):BootLoader源码(SPL-UBoot 2)
230 0
|
6月前
|
Linux 编译器 C语言
U-BOOT小全(四):BootLoader源码(SPL-UBoot 1)
U-BOOT小全(四):BootLoader源码(SPL-UBoot 1)
208 0
|
6月前
|
Linux C语言 Android开发
uboot介绍:介绍uboot的基本概念、用法和实现方式
uboot介绍:介绍uboot的基本概念、用法和实现方式
401 0
|
C语言 内存技术
PowerPC下uboot命令
PowerPC下uboot命令
123 0
|
内存技术
uboot和spl有什么区别
uboot和spl有什么区别
|
Android开发
【Android 逆向】arm 汇编 ( 使用 IDA 解析 arm 架构的动态库文件 | 分析 malloc 函数的 arm 汇编语言 )
【Android 逆向】arm 汇编 ( 使用 IDA 解析 arm 架构的动态库文件 | 分析 malloc 函数的 arm 汇编语言 )
347 0
【Android 逆向】arm 汇编 ( 使用 IDA 解析 arm 架构的动态库文件 | 分析 malloc 函数的 arm 汇编语言 )
|
Linux 芯片 SoC
uboot 中的spl 简单认识
uboot 中的spl 简单认识
221 0
|
机器学习/深度学习 SoC 内存技术