1# 2# (C) Copyright 2000-2006 3# Wolfgang Denk, DENX Software Engineering, wd@denx.de. 4# 5# SPDX-License-Identifier: GPL-2.0+ 6# 7 8extra-$(CONFIG_SPL_BUILD) := start.o 9 10obj-y = clock.o mxs.o iomux.o timer.o 11 12ifdef CONFIG_SPL_BUILD 13obj-y += spl_boot.o spl_lradc_init.o spl_mem_init.o spl_power_init.o 14endif 15 16# Specify the target for use in elftosb call 17MKIMAGE_TARGET-$(CONFIG_MX23) = mxsimage$(CONFIG_SPL_FRAMEWORK:%=-spl).mx23.cfg 18MKIMAGE_TARGET-$(CONFIG_MX28) = mxsimage$(CONFIG_SPL_FRAMEWORK:%=-spl).mx28.cfg 19 20# Generate HAB-capable IVT 21# 22# Note on computing the post-IVT size field value for the U-Boot binary. 23# The value is the result of adding the following: 24# -> The size of U-Boot binary aligned to 64B (u-boot.bin) 25# -> The size of IVT block aligned to 64B (u-boot.ivt) 26# -> The size of U-Boot signature (u-boot.sig), 3904 B 27# -> The 64B hole in front of U-Boot binary for 'struct mxs_spl_data' passing 28# 29quiet_cmd_mkivt_mxs = MXSIVT $@ 30cmd_mkivt_mxs = \ 31 sz=`expr \`stat -c "%s" $^\` + 64 + 3904 + 128` ; \ 32 echo -n "0x402000d1 $2 0 0 0 $3 $4 0 $$sz 0 0 0 0 0 0 0" | \ 33 tr -s " " | xargs -d " " -i printf "%08x\n" "{}" | rev | \ 34 sed "s/\(.\)\(.\)/\\\\\\\\x\2\1\n/g" | xargs -i printf "{}" >$@ 35 36# Align binary to 64B 37quiet_cmd_mkalign_mxs = MXSALGN $@ 38cmd_mkalign_mxs = \ 39 dd if=$^ of=$@ ibs=64 conv=sync 2>/dev/null && \ 40 mv $@ $^ 41 42# Assemble the CSF file 43quiet_cmd_mkcsfreq_mxs = MXSCSFR $@ 44cmd_mkcsfreq_mxs = \ 45 ivt=$(word 1,$^) ; \ 46 bin=$(word 2,$^) ; \ 47 csf=$(word 3,$^) ; \ 48 sed "s@VENDOR@$(VENDOR)@g;s@BOARD@$(BOARD)@g" "$$csf" | \ 49 sed '/^\#\#Blocks/ d' > $@ ; \ 50 echo " Blocks = $2 0x0 `stat -c '%s' $$bin` \"$$bin\" , \\" >> $@ ; \ 51 echo " $3 0x0 0x40 \"$$ivt\"" >> $@ 52 53# Sign files 54quiet_cmd_mkcst_mxs = MXSCST $@ 55cmd_mkcst_mxs = cst -o $@ < $^ \ 56 $(if $(KBUILD_VERBOSE:1=), >/dev/null) 57 58spl/u-boot-spl.ivt: spl/u-boot-spl.bin 59 $(call if_changed,mkalign_mxs) 60 $(call if_changed,mkivt_mxs,$(CONFIG_SPL_TEXT_BASE),\ 61 0x00008000,0x00008040) 62 63u-boot.ivt: u-boot.bin 64 $(call if_changed,mkalign_mxs) 65 $(call if_changed,mkivt_mxs,$(CONFIG_SYS_TEXT_BASE),\ 66 0x40001000,0x40001040) 67 68spl/u-boot-spl.csf: spl/u-boot-spl.ivt spl/u-boot-spl.bin board/$(VENDOR)/$(BOARD)/sign/u-boot-spl.csf 69 $(call if_changed,mkcsfreq_mxs,$(CONFIG_SPL_TEXT_BASE),0x8000) 70 71u-boot.csf: u-boot.ivt u-boot.bin board/$(VENDOR)/$(BOARD)/sign/u-boot.csf 72 $(call if_changed,mkcsfreq_mxs,$(CONFIG_SYS_TEXT_BASE),0x40001000) 73 74%.sig: %.csf 75 $(call if_changed,mkcst_mxs) 76 77MKIMAGEFLAGS_u-boot.sb = -n $< -T mxsimage 78u-boot.sb: $(src)/$(MKIMAGE_TARGET-y) u-boot.bin spl/u-boot-spl.bin FORCE 79 $(call if_changed,mkimage) 80 81MKIMAGEFLAGS_u-boot-signed.sb = -n $< -T mxsimage 82u-boot-signed.sb: $(src)/mxsimage-signed.cfg u-boot.ivt u-boot.sig spl/u-boot-spl.ivt spl/u-boot-spl.sig FORCE 83 $(call if_changed,mkimage) 84