mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 15:41:40 +00:00
imx: imx8mq: build flash.bin
Build flash.bin for i.MX8MQ, it will include signed hdmi firmware, spl, ddr firmware, fit image(bl31.bin, u-boot-nodtb.bin, dtb). Burn it to 33KB offset of SD card. Signed-off-by: Peng Fan <peng.fan@nxp.com>
This commit is contained in:
parent
dfbc296a85
commit
94df988596
3 changed files with 73 additions and 0 deletions
5
Makefile
5
Makefile
|
@ -1208,6 +1208,11 @@ tpl/u-boot-with-tpl.bin: tpl/u-boot-tpl.bin u-boot.bin FORCE
|
|||
SPL: spl/u-boot-spl.bin FORCE
|
||||
$(Q)$(MAKE) $(build)=arch/arm/mach-imx $@
|
||||
|
||||
ifeq ($(CONFIG_ARCH_IMX8M), y)
|
||||
flash.bin: spl/u-boot-spl.bin u-boot.itb FORCE
|
||||
$(Q)$(MAKE) $(build)=arch/arm/mach-imx $@
|
||||
endif
|
||||
|
||||
u-boot-with-spl.imx u-boot-with-nand-spl.imx: SPL u-boot.bin FORCE
|
||||
$(Q)$(MAKE) $(build)=arch/arm/mach-imx $@
|
||||
|
||||
|
|
|
@ -105,6 +105,10 @@ ifeq ($(CONFIG_ARCH_IMX8), y)
|
|||
CNTR_DEPFILES := $(srctree)/tools/imx_cntr_image.sh
|
||||
IMAGE_TYPE := imx8image
|
||||
DEPFILE_EXISTS := $(shell $(CPP) $(cpp_flags) -x c -o u-boot-dtb.cfgout $(srctree)/$(IMX_CONFIG); if [ -f u-boot-dtb.cfgout ]; then $(CNTR_DEPFILES) u-boot-dtb.cfgout; echo $$?; fi)
|
||||
else ifeq ($(CONFIG_ARCH_IMX8M), y)
|
||||
IMAGE_TYPE := imx8mimage
|
||||
IMX8M_DEPFILES := $(srctree)/tools/imx8m_image.sh
|
||||
DEPFILE_EXISTS := $(shell $(CPP) $(cpp_flags) -x c -o spl/u-boot-spl.cfgout $(srctree)/$(IMX_CONFIG);if [ -f spl/u-boot-spl.cfgout ]; then $(IMX8M_DEPFILES) spl/u-boot-spl.cfgout 0; echo $$?; fi)
|
||||
else
|
||||
IMAGE_TYPE := imximage
|
||||
DEPFILE_EXISTS := 0
|
||||
|
@ -129,6 +133,26 @@ ifeq ($(DEPFILE_EXISTS),0)
|
|||
endif
|
||||
endif
|
||||
|
||||
ifdef CONFIG_ARM64
|
||||
ifeq ($(CONFIG_ARCH_IMX8M), y)
|
||||
SPL:
|
||||
|
||||
MKIMAGEFLAGS_flash.bin = -n spl/u-boot-spl.cfgout \
|
||||
-T $(IMAGE_TYPE) -e $(CONFIG_SPL_TEXT_BASE)
|
||||
flash.bin: MKIMAGEOUTPUT = flash.log
|
||||
|
||||
spl/u-boot-spl-ddr.bin: spl/u-boot-spl.bin spl/u-boot-spl.cfgout FORCE
|
||||
ifeq ($(DEPFILE_EXISTS),0)
|
||||
$(IMX8M_DEPFILES) spl/u-boot-spl.cfgout 1
|
||||
endif
|
||||
|
||||
flash.bin: spl/u-boot-spl-ddr.bin u-boot.itb FORCE
|
||||
ifeq ($(DEPFILE_EXISTS),0)
|
||||
$(call if_changed,mkimage)
|
||||
endif
|
||||
endif
|
||||
|
||||
else
|
||||
MKIMAGEFLAGS_SPL = -n $(filter-out $(PLUGIN).bin $< $(PHONY),$^) \
|
||||
-T $(IMAGE_TYPE) -e $(CONFIG_SPL_TEXT_BASE)
|
||||
SPL: MKIMAGEOUTPUT = SPL.log
|
||||
|
@ -160,6 +184,7 @@ cmd_u-boot-nand-spl_imx = (printf '\000\000\000\000\106\103\102\040\001' && \
|
|||
|
||||
spl/u-boot-nand-spl.imx: SPL FORCE
|
||||
$(call if_changed,u-boot-nand-spl_imx)
|
||||
endif
|
||||
|
||||
targets += $(addprefix ../../../,SPL spl/u-boot-spl.cfgout u-boot-dtb.cfgout u-boot.cfgout u-boot.uim spl/u-boot-nand-spl.imx)
|
||||
|
||||
|
|
43
tools/imx8m_image.sh
Executable file
43
tools/imx8m_image.sh
Executable file
|
@ -0,0 +1,43 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0+
|
||||
#
|
||||
# script to check whether the file exists in imximage.cfg for i.MX8M
|
||||
#
|
||||
|
||||
file=$1
|
||||
|
||||
post_process=$2
|
||||
|
||||
blobs=`awk '/^SIGNED_HDMI/ {print $2} /^LOADER/ {print $2} /^SECOND_LOADER/ {print $2} /^DDR_FW/ {print $2}' $file`
|
||||
for f in $blobs; do
|
||||
tmp=$srctree/$f
|
||||
|
||||
if [ $f == "spl/u-boot-spl-ddr.bin" ] || [ $f == "u-boot.itb" ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
if [ -f $f ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
if [ ! -f $tmp ]; then
|
||||
echo "WARNING '$tmp' not found, resulting binary is not-functional" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sed -in "s;$f;$tmp;" $file
|
||||
done
|
||||
|
||||
if [ $post_process == 1 ]; then
|
||||
if [ -f $srctree/lpddr4_pmu_train_1d_imem.bin ]; then
|
||||
objcopy -I binary -O binary --pad-to 0x8000 --gap-fill=0x0 $srctree/lpddr4_pmu_train_1d_imem.bin lpddr4_pmu_train_1d_imem_pad.bin
|
||||
objcopy -I binary -O binary --pad-to 0x4000 --gap-fill=0x0 $srctree/lpddr4_pmu_train_1d_dmem.bin lpddr4_pmu_train_1d_dmem_pad.bin
|
||||
objcopy -I binary -O binary --pad-to 0x8000 --gap-fill=0x0 $srctree/lpddr4_pmu_train_2d_imem.bin lpddr4_pmu_train_2d_imem_pad.bin
|
||||
cat lpddr4_pmu_train_1d_imem_pad.bin lpddr4_pmu_train_1d_dmem_pad.bin > lpddr4_pmu_train_1d_fw.bin
|
||||
cat lpddr4_pmu_train_2d_imem_pad.bin $srctree/lpddr4_pmu_train_2d_dmem.bin > lpddr4_pmu_train_2d_fw.bin
|
||||
cat spl/u-boot-spl.bin lpddr4_pmu_train_1d_fw.bin lpddr4_pmu_train_2d_fw.bin > spl/u-boot-spl-ddr.bin
|
||||
rm -f lpddr4_pmu_train_1d_fw.bin lpddr4_pmu_train_2d_fw.bin lpddr4_pmu_train_1d_imem_pad.bin lpddr4_pmu_train_1d_dmem_pad.bin lpddr4_pmu_train_2d_imem_pad.bin
|
||||
fi
|
||||
fi
|
||||
|
||||
exit 0
|
Loading…
Reference in a new issue