简介:uboot和spl有什么区别 使用的是通用的同一份代码 前面的arch的初始化都是一样的 最主要的区别就是spl代码部分会用CONFIG_SPL_BUILD来选择编译 以am335x而言,前期arch的初始化流程基本上是一致的,出现本质区别的是在board_init_f开始的。 spl中board_init_f是自己实现的 使用CONFIG_SPL_BUILD选择编译的 主...
其中第一级 bootloader 是板子固化的,第二级和第三级是通过编译 uboot 所得的。 2,第二级 bootloader:MLO(SPL)做了哪些事情? MLO(SPL)内存分布如下: SPL内存重映射: < PATH : /arch/arm/cpu/armv7/omap-common/u-boot-spl.lds > MEMORY { .sram : ORIGIN = CONFIG_SPL_TEXT_BASE,\ LENGTH = CONFI...
cp uboot-imx/arch/arm/dts/fsl-imx8mm-ddr4-evk.dtb ./imx-mkimage/iMX8M/fsl-imx8mm-ddr4-evk.dtb cp uboot-imx/spl/u-boot-spl.bin ./imx-mkimage/iMX8M/ cp uboot-imx/u-boot-nodtb.bin ./imx-mkimage/iMX8M/ cpfirmware-imx-8.10/firmware-imx-8.1/firmware/ddr/synopsys/ddr4_dmem_1d....
uboot通过#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("x18") 这个声明保证函数调用的时候不会调用x18寄存器,所以global_data的基地址不会被改写,global_data是一个在没有c语言运行环境下,内存有没有初始化的情况下用来在tpl spl 和uboot之间传递参数的全局变量 。 然后在board_init_f函...
prefix := spl src := $(patsubst $(prefix)/%,%,$(obj)) ifeq ($(obj),$(src)) prefix := . endif endif 分析: src := $(patsubst $(prefix)/%,%,$(obj)) 意思是: 如果 ,$(obj)中有单词符合 tpl/* ,则将其替换为*(例如将 tpl/test 替换为 test)。并将替换结果返回(注意,该结果包...
参考Intel的 SD卡 image 设计的教程 (https://rocketboards.org/foswiki/Documentation/EmbeddedLinuxBeginnerSGuide) 确认 DE10-Nano 的 MSEL 设置为 01010,插上SD卡 给 DE10-Nano
uboot和spl有什么区别 使用的是通用的同一份代码 前面的arch的初始化都是一样的 最主要的区别就是spl代码部分会用CONFIG_SPL_BUILD来选择编译 以am335x而言,前期arch的初始化流程基本上是一致的,出现本质区别的是在board_init_f开始的。 spl中board_init_f是自己实现的 使用CONFIG_SPL_BUILD选择编译的 主要是...