iTop4412 uboot-2019.2移植之制作镜像(三)

一、前提信息

我们已经知道生成的文件有spl/u-boot-spl,spl/u-boot-spl.bin,spl/itop4412-spl.bin。

编译过程最后提示:

  LD      spl/u-boot-spl
  OBJCOPY spl/u-boot-spl-nodtb.bin
  COPY    spl/u-boot-spl.bin
./spl/board/samsung/itop4412/tools/mkitop4412spl  spl/u-boot-spl.bin spl/itop4412-spl.bin

二、定位spl/u-boot-spl.bin

同过搜索关键字spl/u-boot-spl.bin,可以找到信息

1645 spl/u-boot-spl.bin: spl/u-boot-spl
1646     @:
1647 spl/u-boot-spl: tools prepare \
1648         $(if $(CONFIG_OF_SEPARATE)$(CONFIG_OF_EMBED)$(CONFIG_SPL_OF_PLATDATA),dts/dt.dtb) \
1649         $(if $(CONFIG_OF_SEPARATE)$(CONFIG_OF_EMBED)$(CONFIG_TPL_OF_PLATDATA),dts/dt.dtb)
1650     $(Q)$(MAKE) obj=spl -f $(srctree)/scripts/Makefile.spl all

我们发现执行了脚本scripts/Makefile.spl的all目标。

三、Makefile.spl

找到目标all,发现依赖ALL-y。通过打印,确定ALL-y的取值为spl/u-boot-spl.bin spl/itop4412-spl.bin

通过查找,可发现下面语句,与我们知道的信息相符合。

291 ifdef CONFIG_SAMSUNG
292 ifdef CONFIG_VAR_SIZE_SPL
293 VAR_SIZE_PARAM = --vs
294 else
295 VAR_SIZE_PARAM =
296 endif
297 $(obj)/$(BOARD)-spl.bin: $(obj)/u-boot-spl.bin
298     $(if $(wildcard $(objtree)/spl/board/samsung/$(BOARD)/tools/mk$(BOARD)spl),\
299     $(objtree)/spl/board/samsung/$(BOARD)/tools/mk$(BOARD)spl,\
300     $(objtree)/tools/mkexynosspl) $(VAR_SIZE_PARAM) $< $@
301 endif

最后确定,权限校验就是在300行做的,因此我tool目录下的那个文件,就是我放的权限校验程序源文件。

三、增加目标spl/u-boot-image.bin

修改变量ALL-y,追加spl/u-boot-image.bin。注意必须放在目标all的前面哟。

ifdef CONFIG_SAMSUNG
200 ALL-y   += $(obj)/$(BOARD)-spl.bin
201
202 ifdef CONFIG_ITOP4412
203 ALL-y   += $(obj)/u-boot-image.bin
204 endif
205
206 endif

增加目标$(obj)/u-boot-image.bin,代码如下:

296 ifdef CONFIG_SAMSUNG
297 ifdef CONFIG_VAR_SIZE_SPL
298 VAR_SIZE_PARAM = --vs
299 else
300 VAR_SIZE_PARAM =
301 endif
302 $(obj)/$(BOARD)-spl.bin: $(obj)/u-boot-spl.bin
303     $(if $(wildcard $(objtree)/spl/board/samsung/$(BOARD)/tools/mk$(BOARD)spl),\
304     $(objtree)/spl/board/samsung/$(BOARD)/tools/mk$(BOARD)spl,\
305     $(objtree)/tools/mkexynosspl) $(VAR_SIZE_PARAM) $< $@
306
307 ifdef CONFIG_ITOP4412
308 $(obj)/u-boot-image.bin: $(obj)/$(BOARD)-spl.bin
309     @cat $(objtree)/board/samsung/itop4412/tools/NBL1.bin $(objtree)/$(obj)/$(BOARD)-spl.bin \
310         $(objtree)/u-boot.bin > $(objtree)/$(obj)/u-boot-image.bin
311 endif
312
313 endif
BL2结构.png
镜像布局.png

我之只能用8KB的BL1。开就就掉电,故而接下来探究电源管理。

你可能感兴趣的:(iTop4412 uboot-2019.2移植之制作镜像(三))