0. 前言
本文以Exynos4412芯片为例,介绍了SPL阶段的软件流程。
具体代码可以参考:uboot code
1. SPL介绍
SPL(Secondary Program Loader)是uboot第一阶段执行的代码。主要负责初始化CPU Core,系统时钟和DRAM控制器等,并搬移uboot第二阶段的代码到系统内存中运行。SPL一般是由固化在芯片内部的ROM引导的。
2. SPL配置项
CONFIG_SPL
使能SPLCONFIG_SUPPORT_SPL
Board是否支持SPLCONFIG_SPL_GPIO_SUPPORT
SPL是否支持GPIO驱动CONFIG_SPL_SERIAL_SUPPORT
SPL是否支持UART功能CONFIG_SPL_DM_SERIAL
SPL是否支持UART驱动CONFIG_SPL_MAX_SIZE
SPL镜像的最大尺寸CONFIG_SPL_TEXT_BASE
SPL镜像的运行地址CONFIG_SPL_STACK
SPL镜像的堆栈地址CONFIG_SPL_BUILD
非用户配置项,在编译过程中由Makefile自动加入到编译参数中。用户可以在代码中根据该宏判断当前编译的是SPL还是uboot- <