- iTop4412 uboot-2019.2移植之制作镜像(三)
- iTop4412 uboot-2019.2移植之点灯验证(五)
- iTop4412 uboot-2019.2移植之电源管理(四)
- iTop4412 uboot-2019.2移植之杨帆启航(一)
- iTop4412 uboot-2019.2移植之拷贝u-boot
- iTop4412 uboot-2019.2移植之流程分析(二)
- iTop4412 uboot-2019.2移植之时钟管理(六)
- iTop4412 uboot-2019.2移植之内存控制器(七)
- iTop4412 uboot-2019.2移植之初始化串口(九)
- itop4412 uboot-2017.11移植(二)
一、前提信息
我们已经知道生成的文件有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。开就就掉电,故而接下来探究电源管理。
网友评论