实际上,芯片上的ROM会将一个二进制文件加载到一个可能非常小的SRAM中(大约4 KiB或更小)。SPL是一个小型的二进制文件,由U-Boot源代码生成,目的是适应SRAM并加载主U-Boot到系统RAM中。 还有U-BootTPL(三级程序加载器),它比SPL更小,因为适用于资源极其有限的系统,但几乎从未被使用。 让我们回到主题。我们知道U...
我们基于uboot源码编译出TPL/SPL,其中TPL负责实现DDR初始化,TPL初始化结束之后会回跳到BootROM程序,BootROM程序继续加载SPL,SPL加载u-boot.itb文件,然后跳转到uboot执行。 idbloader.img是由tpl/u-boot-tpl.bin和spl/u-boot-spl.bin文件生成,这里我们需要使用到tools目录下的mkimage工具。 2.1tpl/u-boot-tpl.bi...
void board_init_r(gd_t *dummy1, ulong dummy2) { u32 spl_boot_list[] = { BOOT_DEVICE_NONE, BOOT_DEVICE_NONE, BOOT_DEVICE_NONE, BOOT_DEVICE_NONE, BOOT_DEVICE_NONE, }; struct spl_image_info spl_image; int ret; debug(">>" SPL_TPL_PROMPT "board_init_r()\n"); //gd->bd= ...
puts(SPL_TPL_PROMPT"failed to boot from all boot devices\n"); hang(); } spl_perform_fixups(&spl_image); switch(spl_image.os) { caseIH_OS_ARM_TRUSTED_FIRMWARE: //atf验证跳转 debug("Jumping to U-Boot via ARM Trusted Firmware\n"); spl_fixup_fdt(spl_image.fdt_addr); spl_invoke_...
bootrom --> spl(init ddr) --> bootrom --> tpl(load and run uboot)--> uboot 其示意图如下: 在此流程中,spl主要完成ddr初始化,由于其不带有镜像加载相关的驱动,因此执行完成后需要跳转回bootrom,由bootrom完成tpl的加载(类似atf中bl2加载完成后跳转回bl1),并由tpl完成最终uboot的加载。由于tpl的主...
SPL / TPL ---> 这个就是SPL相关的配置了 [*] MMC raw mode: by sector 按扇区 (0x50) Address on the MMC to load U-Boot from mmc加载uboot的地址 [*] Support GPIO 支持GPIO [*] Support I2C 支持I2C [*] Support common libraries 支持通用lib ...
ALL-$(CONFIG_SPL) += $(obj)spl/u-boot-spl.bin ALL-$(CONFIG_SPL_FRAMEWORK) += $(obj)u-boot.img ALL-$(CONFIG_TPL) += $(obj)tpl/u-boot-tpl.bin ALL-$(CONFIG_OF_SEPARATE) += $(obj)u-boot.dtb $(obj)u-boot-dtb.bin
ALL-$(CONFIG_SPL_FRAMEWORK) +=$(obj)u-boot.img ALL-$(CONFIG_TPL) +=$(obj)tpl/u-boot-tpl.bin ALL-$(CONFIG_OF_SEPARATE) +=$(obj)u-boot.dtb$(obj)u-boot-dtb.bin ifneq ($(CONFIG_SPL_TARGET),) ALL-$(CONFIG_SPL) +=$(obj)$(subst",,$(CONFIG_SPL_TARGET)) ...
atf可帮助从secure空间启动,并通过secure monitor(bl31)处理normal OS对secure空间服务请求。U-boot的初始化流程与spl基本相同,主要涉及异常向量表的设置和内存规划。此外,U-boot的启动涉及多级启动链,包括spl、tpl和uboot。在嵌入式物联网开发中,了解这些启动流程至关重要,以确保正确配置系统。
bootrom --> spl(init ddr) --> bootrom --> tpl(load and run uboot)--> uboot 1. 其示意图如下: 在此流程中,spl主要完成ddr初始化,由于其不带有镜像加载相关的驱动,因此执行完成后需要跳转回bootrom,由bootrom完成tpl的加载(类似atf中bl2加载完成后跳转回bl1),并由tpl完成最终uboot的加载。由于tpl...