若定义了CONFIG_OF_EMBED选项,则在链接时会为dtb指定一个以__dtb_dt_begin开头的单独的段,dtb的内容将被直接链接到uboot.bin镜像中。官方建议这种方式只在开发和调试阶段使用,而不要用于生产阶段 若定义了CONFIG_OF_SEPARATE选项,dtb将会被编译为u-boot.dtb文件,而uboot原始镜像被编译为u-boot-nodtb.bin文件,...
(1)若定义了CONFIG_OF_EMBED选项,则在链接时会为dtb指定一个以__dtb_dt_begin开头的单独的段,dtb的内容将被直接链接到uboot.bin镜像中。官方建议这种方式只在开发和调试阶段使用,而不要用于生产阶段 (2)若定义了CONFIG_OF_SEPARATE选项,dtb将会被编译为u-boot.dtb文件,而uboot原始镜像被编译为u-boot-nodtb...
LIBS-$(CONFIG_SPL_NAND_SUPPORT) += drivers/mtd/nand/libnand.o LIBS-$(CONFIG_SPL_ONENAND_SUPPORT) += drivers/mtd/onenand/libonenand.o LIBS-$(CONFIG_SPL_DMA_SUPPORT) += drivers/dma/libdma.o LIBS-$(CONFIG_SPL_POST_MEM_SUPPORT) += post/drivers/memory.o LIBS-$(CONFIG_SPL_NET_SUPPOR...
#ifdefined(CONFIG_TPL_BUILD)&&defined(CONFIG_TPL_NEEDS_SEPARATE_STACK)ldr x0,=(CONFIG_TPL_STACK)#elifdefined(CONFIG_SPL_BUILD)&&defined(CONFIG_SPL_STACK)ldr x0,=(CONFIG_SPL_STACK)#elifdefined(CONFIG_INIT_SP_RELATIVE)#ifCONFIG_POSITION_INDEPENDENTadrp x0,__bss_start add x0,x0,#:lo12:_...
需要打开 CONFIG_OF_SEPARATE 宏来使能。 在这种方式下,u-boot 的编译和 dtb 的编译是分开的,先生成 u-boot 的 bin 文件,然后再另外生成dtb 文件。 dtb 最终会自动追加到 u-boot 的 bin 文件的最后面。因此,可以通过 u-boot 的结束地址符号,也就是 _end 符号来获取 dtb 的地址。 dtb 集成到 u-boot ...
ALL-$(CONFIG_RAMBOOT_PBL) += u-boot.pbl endif endif ALL-$(CONFIG_SPL) += spl/u-boot-spl.bin ALL-$(CONFIG_SPL_FRAMEWORK) += u-boot.img ALL-$(CONFIG_TPL) += tpl/u-boot-tpl.bin ALL-$(CONFIG_OF_SEPARATE) += u-boot.dtb ...
CONFIG_OF_SEPARATE /* is at end of image / gd->fdt_blob = &_end; #endif /* Allow the early environmentto override the fdt address */ ->fdt_blob = (void *)getenv_("fdtcontroladdr",16, (uint_t)gd->fdt_blob); Device tree机制相关, 暂不分析 for(init_fnc_ptr =...
## 当配置了CONFIG_SPL,make的时候就会执行spl/u-boot-spl.bin这个目标 spl/u-boot-spl.bin: spl/u-boot-spl @: spl/u-boot-spl: tools prepare $(if$(CONFIG_OF_SEPARATE),dts/dt.dtb) $(Q)$(MAKE) obj=spl -f $(srctree)/scripts/Makefile.splall ...
uboot.bin是主要的编译目标之一,它是最终生成的二进制可执行文件。编译uboot.bin可能会依赖于if_changed函数,该函数在scripts/Kbuild.include中定义,用于在依赖更新或命令变化时执行相应操作。处理dtb与uboot的关系:CONFIG_OF_SEPARATE选项决定了dtb与uboot的打包方式。如果未配置CONFIG_OF_SEPARATE,编译...
编译u-boot.bin是目标之一,它是最终生成的二进制可执行文件。由于未配置CONFIG_OF_SEPARATE,所以编译流程会使用$(call if_changed,copy)来处理。if_changed是scripts/Kbuild.include中定义的函数,顶层Makefile会包含这个文件。CONFIG_OF_SEPARATE的作用是将dtb与uboot分开打包,一种是将dtb直接嵌入uboot...