简介
U-Boot本质上就是一个开源的裸机程序,这个裸机程序比较复杂,这和他的功能有关系,支持的功能比较多。
U-Boot全称Universal Boot Loader(通用启动、引导程序),主要作用或者说终极目标就是去启动、引导Linux内核或者其他内核。
开发板在一个静态情况下,他的镜像文件一般都是存放在SD卡或者QSPI等外设中。U-Boot就需要将内核镜像从SD卡或者QSPI当中读取出来,并且拷贝到DDR内存当中。所以U-Boot包含了很多外设如SD卡、QSPI、DDR等的驱动程序。
U-Boot代码包括SD卡QSPI等设备驱动,还包括其他的i2c,文件系统和网络相关的协议等功能。
通用BootLoader不仅支持多种操作系统,还支持多种架构的处理器。
U-Boot来源
U-Boot一共有三种,一种是U-Boot官方提供的U-Boot源码,另一种是Soc厂商提供的U-Boot源码,这类源码是基于U-Boot官方提供的源码针对自家芯片修改而来的,XILINX的U-Boot源码。最后一个是开发板厂商针对自家的开发板在Soc厂家的基础上修改而来的。一般我们使用的U-Boot是开发板厂商或者芯片厂商的U-Boot。
U-Boot与FSBL之间的关系
U-Boot的作用是用于启动内核,FSBL是开发板上电后启动的第一段代码,在固化QSPI实验中,我们一般首先制作一个启动文件BOOT.bin这个