什么是spl?
spl是一个十分小的bin文件,主要用来引导主u-boot。
为什么需要spl?
一些SoC的SRAM比较小,一般SRAM远远小于bootloader的大小。因此无法一次性加载ROM中的bootloader到SRAM中。
加载过程
嵌入式系统的SOC内部会有比较小的SRAM,而外部的一般会有DDR或者SDRAM,后面的RAM就是外部RAM;SPL会先被加载到SRAM中,然后初始化DDR或者SDRAM,总之会初始化外部的RAM,然后再把主u-boot加载到RAM;
- 图中①是SPL在u-boot第一阶段的装载程序,初始化最基本的硬件,比如关闭中断,内存初始化,设置堆栈等最基本的操作,设置重定位;
- 图中②是会装载主u-boot程序,然后初始化其他板级硬件,比如网卡,nand flash等待,设置u-boot本身的命令和环境变量;
- 图中③是加载kernel到RAM,然后启动内核;