所以这个第一阶段的引导加载程序是U-Boot SPL ; 和第二阶段的引导加载程序是常规的U-Boot(或适当的U-Boot)。需要说明的是:SPL代表二级程序加载器。这意味着ROM代码是加载(和执行)其他程序的第一件事,而SPL是加载(和执行)其他程序的第二件事。所以通常启动顺序是下一个:ROM code - > SPL - > u-boot - ...
ENTRY(_main)/** Set up initial C runtime environment and call board_init_f(0).*/#ifdefined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_STACK)ldr sp,=(CONFIG_SPL_STACK)#elseldr sp,=(CONFIG_SYS_INIT_SP_ADDR)#endif#ifdefined(CONFIG_CPU_V7M) /* v7M forbids using SP as BIC destination...
Pre 同大多数的Bootloader一样,uboot的启动过程也分为BL1、BL2两个阶段,分别对应着SPL和Uboot。 SPL(BL1阶段):负责开发板的基础配置和设备初始化,并且搬运Uboot到内存中,由汇编代码和少量的C语言实现 Uboot(BL2阶段):主要负责初始化外部设备,引导Kernel启动,由纯C语言实现。 我们这篇文章,主要介绍Uboot(BL2阶段...
export CONFIG_SPL_BUILD [plain] view plain copyCONFIG_SPL_BUILD := y export CONFIG_SPL_BUILD export CONFIG_SPL_BUILD: 在接下来的编译中, 这个变量为y. 从后面的分析中可以看到, uboot的stage1, stage2阶段的代码用的是同一个Start.S, 只不过在Start.S中用#ifdef CONFIG_SPL_BUILD这种条件编译来区分。
U-bootSPL阶段: 编译K3 uboot命令: make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- am65x_evm_a53_defconfig make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- 等待编译完毕后,u-boot目录下会多出一个spl的文件夹,里面是SPL阶段所需要的loader执行程序。
uboot分为uboot-spl和uboot两个组成部分。SPL是Secondary Program Loader的简称,第二阶段程序加载器,这里所谓的第二阶段是相对于SOC中的BROM来说的,之前的文章已经有所介绍,SOC启动最先执行的是BROM中的固化程序。 BROM会通过检测启动方式来加载第二阶段bootloader。uboot已经是一个bootloader了,那么为什么还多一个u...
1、什么是SPL? 为了可以使已有的所有SPL的设计统一,也为了简化添加适用于新板子的设计,专门设计一个通用的SPL框架。在SPL框架下,一个板子的所有代码都能够被重用。代码复制和链接不再是必要的。 在uboot-2011的/doc/README.spl文件有简单的介绍: Generic SPL framework===Overview---To unify all existing imple...
SPL是uboot第一阶段执行的代码。 主要负责初始化芯片,搬移uboot第二阶段的代码到内存中运行。 SPL是由固化在芯片内部的ROM引导的。 所谓启动, 就是从这些外部介质中搬移一段固定大小(4K/8K/16K等)的代码到内部RAM中运行。 这里搬移的就是SPL. 在最新版本的uboot中, 可以看到SPL也支持nandflash, SDCARD等多种...
u-boot的SPL源码流程分析 上次梳理了一下SPL的基本概念和代码总体思路,这次就针对代码跑的流程做个梳理。SPL中,入口在u-boot-spl.lds中 ENTRY(_start) SECTIONS { .text : { __start = .; *(.vectors) //进入中断向量表,对应的跳转到U-boot/arch/arm/lib/vectors.S文件处理...
在基于Linux的AM335x软件开发流程中,第一步就是U-Boot/SPL(SecondProgram Loader)的移植。在移植中遇到问题比较常见,而U-Boot/SPL的调试手段比较简陋,不便于迅速找到问题。利用仿真器可以单步调试的特点,就可以迅速定位到出问题的代码所在位置,加速移植的调试过程。本文主要介绍如何用CCS+emulator调试基于AM335x的U-...