u-boot,spl-boot-order = &sdhci, &sdmmc0, &nandc0, &spi_nand, &spi_nor; }; 1. 2. 3. 4. 重新编译 u-boot 及 u-boot spl,使用 u-boot 下的./make.sh --spl可以更新新的u-boot spl,这样启动信息中发现,优先从 MMC1 启动,不再打印 MMC2 的报错信息。 应该可以加快一下启动的速度。 ...
board_boot_order被定义为一个弱函数,可以被厂商覆盖,因此我们这里会使用arch/arm/mach-imx/imx8/cpu.c中定义的board_boot_order函数。 AI检测代码解析 voidboard_boot_order(u32*spl_boot_list) { spl_boot_list[0]=spl_boot_device(); if(spl_boot_list[0]==BOOT_DEVICE_SPI) { /* Check whether ...
u32 spl_boot_mode(const u32 boot_device) { #if defined(CONFIG_MX7) || defined(CONFIG_IMX8M) || defined(CONFIG_IMX8) switch (get_boot_device()) { /* for MMC return either RAW or FAT mode */ case SD1_BOOT: case SD2_BOOT: case SD3_BOOT: #if defined(CONFIG_SPL_FAT_SUPPORT)...
1、board_boot_order--读取支持的启动设备 2、boot_from_devices--读取uboot镜像 3、ATF跳转 4、optee跳转入口 5、最终跳转到uboot启动 6、总结 本账号总目录:求密勒:NXP i.MX8M系列文章总目录 求密勒:NXP i.MX8M secure boot流程 求密勒:Uboot启动分析--SPL跳转过程! 求密勒:Uboot链接脚本分析 求密勒:...
运行流程:U-Boot SPL运行在片上SRAM中,负责初始化DDR,然后从第一个(裸)分区中加载U-Boot镜像到DDR。U-Boot会从boot分区中读取opensbi镜像、Linux镜像、Linux设备树镜像、(如果需要的话)initramfs,分别加载到DDR的特定位置,然后从openSBI开始运行。(强调“Linux”设备树是因为该设备树只是给openSBI和Linux使用,U-Boot及...
从前面分析的u-boot-spl.lds链接文件可知,启动代码就是arch/arm/cpu/armv7/start.S。start.S主要做的事情就是初始化系统的各个方面。 从大的方面分,可以分成这几个部分: 1)设置CPU模式。 2)关闭看门狗。 3)关闭中断。 4)设置堆栈sp指针。 5)清除bss段。 6)异常中断处理。 /* * armboot - Startup Cod...
首先看一个典型的bootrom->spl->uboot->linux流程log,主要分为4个部分,中间有3个衔接点。 # Hello DeepEye-- BootfromSD card --sdio initialize done. sd card read done. --->bootrom-spl分割线,以上是bootrom输出内容,从存储介质中读取spl到片内RAM中,并判断magic number。U-Boot SPL2016.07-00058-g6...
该函数对BSS进行清零操作,然后调用common/spl/spl.c中的board_init_r函数,该函数首先判断从哪种存储设备启动,这里给出RAM、MMC和NAND的代码。 5、board_init_r 155 boot_device = spl_boot_device(); 156 debug("boot device - %d\n", boot_device); 157 switch (boot_device) { 158 #ifdef CONFIG_SP...
[uboot] (第二章)uboot流程——uboot-spl编译流程 建议参考文章 [kernel 启动流程] (第二章)第一阶段之——设置SVC、关闭中断 [kernel 启动流程] (第六章)第一阶段之——打开MMU ARM的CP15协处理器的寄存器 建议先看《[project X] tiny210(s5pv210)上电启动流程(BL0-BL2)》,根据例子了解一下上电之后...
1. SBL(Secondary Bootloader): SBL是一个小型的引导加载程序,位于芯片的内部ROM中。它负责初始化硬件和一些基本的系统设置,然后通过某种方式加载更大的SPL或U-Boot。2. SPL(Secondary Program Loader): SPL是一个更大的引导加载程序,一般被存储在闪存(如NAND或eMMC)或SD卡等外部存储...