xref: /rk3399_rockchip-uboot/arch/arm/cpu/arm926ejs/mxs/Makefile (revision 0ffadab1b9ab59816a0f71c927604bb6c402d863)
13a0398d7SOtavio Salvador#
23a0398d7SOtavio Salvador# (C) Copyright 2000-2006
33a0398d7SOtavio Salvador# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
43a0398d7SOtavio Salvador#
51a459660SWolfgang Denk# SPDX-License-Identifier:	GPL-2.0+
63a0398d7SOtavio Salvador#
73a0398d7SOtavio Salvador
8d8769c62SMasahiro Yamadaextra-$(CONFIG_SPL_BUILD) := start.o
93a0398d7SOtavio Salvador
10d8769c62SMasahiro Yamadaobj-y	= clock.o mxs.o iomux.o timer.o
113a0398d7SOtavio Salvador
123a0398d7SOtavio Salvadorifdef	CONFIG_SPL_BUILD
13d8769c62SMasahiro Yamadaobj-y	+= spl_boot.o spl_lradc_init.o spl_mem_init.o spl_power_init.o
143a0398d7SOtavio Salvadorendif
153a0398d7SOtavio Salvador
16714dc001SMarek Vasut# Specify the target for use in elftosb call
1707e27ce0SMasahiro YamadaMKIMAGE_TARGET-$(CONFIG_MX23) = mxsimage.mx23.cfg
1807e27ce0SMasahiro YamadaMKIMAGE_TARGET-$(CONFIG_MX28) = mxsimage.mx28.cfg
19714dc001SMarek Vasut
201a9df13dSMarek Vasut# Generate HAB-capable IVT
211a9df13dSMarek Vasut#
221a9df13dSMarek Vasut# Note on computing the post-IVT size field value for the U-Boot binary.
231a9df13dSMarek Vasut# The value is the result of adding the following:
241a9df13dSMarek Vasut#  -> The size of U-Boot binary aligned to 64B (u-boot.bin)
251a9df13dSMarek Vasut#  -> The size of IVT block aligned to 64B (u-boot.ivt)
261a9df13dSMarek Vasut#  -> The size of U-Boot signature (u-boot.sig), 3904 B
271a9df13dSMarek Vasut#  -> The 64B hole in front of U-Boot binary for 'struct mxs_spl_data' passing
281a9df13dSMarek Vasut#
291a9df13dSMarek Vasutquiet_cmd_mkivt_mxs = MXSIVT  $@
301a9df13dSMarek Vasutcmd_mkivt_mxs =								\
311a9df13dSMarek Vasut	sz=`expr \`stat -c "%s" $^\` + 64 + 3904 + 128` ;		\
321a9df13dSMarek Vasut	echo -n "0x402000d1 $2 0 0 0 $3 $4 0 $$sz 0 0 0 0 0 0 0" |	\
331a9df13dSMarek Vasut	tr -s " " | xargs -d " " -i printf "%08x\n" "{}" | rev |	\
341a9df13dSMarek Vasut	sed "s/\(.\)\(.\)/\\\\\\\\x\2\1\n/g" | xargs -i printf "{}" >$@
351a9df13dSMarek Vasut
361a9df13dSMarek Vasut# Align binary to 64B
371a9df13dSMarek Vasutquiet_cmd_mkalign_mxs = MXSALGN $@
381a9df13dSMarek Vasutcmd_mkalign_mxs =							\
391a9df13dSMarek Vasut	dd if=$^ of=$@ ibs=64 conv=sync 2>/dev/null &&			\
401a9df13dSMarek Vasut	mv $@ $^
411a9df13dSMarek Vasut
421a9df13dSMarek Vasut# Assemble the CSF file
431a9df13dSMarek Vasutquiet_cmd_mkcsfreq_mxs = MXSCSFR $@
441a9df13dSMarek Vasutcmd_mkcsfreq_mxs =							\
451a9df13dSMarek Vasut	ivt=$(word 1,$^) ;						\
461a9df13dSMarek Vasut	bin=$(word 2,$^) ;						\
471a9df13dSMarek Vasut	csf=$(word 3,$^) ;						\
481a9df13dSMarek Vasut	sed "s@VENDOR@$(VENDOR)@g;s@BOARD@$(BOARD)@g" "$$csf" |		\
491a9df13dSMarek Vasut		sed '/^\#\#Blocks/ d' > $@ ;				\
501a9df13dSMarek Vasut	echo "  Blocks = $2 0x0 `stat -c '%s' $$bin` \"$$bin\" , \\" >> $@ ; \
511a9df13dSMarek Vasut	echo "           $3 0x0 0x40 \"$$ivt\"" >> $@
521a9df13dSMarek Vasut
531a9df13dSMarek Vasut# Sign files
541a9df13dSMarek Vasutquiet_cmd_mkcst_mxs = MXSCST  $@
551a9df13dSMarek Vasutcmd_mkcst_mxs = cst -o $@ < $^						\
561a9df13dSMarek Vasut	$(if $(KBUILD_VERBOSE:1=), >/dev/null)
571a9df13dSMarek Vasut
581a9df13dSMarek Vasutspl/u-boot-spl.ivt: spl/u-boot-spl.bin
591a9df13dSMarek Vasut	$(call if_changed,mkalign_mxs)
601a9df13dSMarek Vasut	$(call if_changed,mkivt_mxs,$(CONFIG_SPL_TEXT_BASE),\
611a9df13dSMarek Vasut		0x00008000,0x00008040)
621a9df13dSMarek Vasut
631a9df13dSMarek Vasutu-boot.ivt: u-boot.bin
641a9df13dSMarek Vasut	$(call if_changed,mkalign_mxs)
651a9df13dSMarek Vasut	$(call if_changed,mkivt_mxs,$(CONFIG_SYS_TEXT_BASE),\
661a9df13dSMarek Vasut		0x40001000,0x40001040)
671a9df13dSMarek Vasut
681a9df13dSMarek Vasutspl/u-boot-spl.csf: spl/u-boot-spl.ivt spl/u-boot-spl.bin board/$(VENDOR)/$(BOARD)/sign/u-boot-spl.csf
691a9df13dSMarek Vasut	$(call if_changed,mkcsfreq_mxs,$(CONFIG_SPL_TEXT_BASE),0x8000)
701a9df13dSMarek Vasut
711a9df13dSMarek Vasutu-boot.csf: u-boot.ivt u-boot.bin board/$(VENDOR)/$(BOARD)/sign/u-boot.csf
721a9df13dSMarek Vasut	$(call if_changed,mkcsfreq_mxs,$(CONFIG_SYS_TEXT_BASE),0x40001000)
731a9df13dSMarek Vasut
741a9df13dSMarek Vasut%.sig: %.csf
751a9df13dSMarek Vasut	$(call if_changed,mkcst_mxs)
761a9df13dSMarek Vasut
77*066f876bSMarek VasutMKIMAGEFLAGS_u-boot.sb = -n $< -T mxsimage
7807e27ce0SMasahiro Yamadau-boot.sb: $(src)/$(MKIMAGE_TARGET-y) u-boot.bin spl/u-boot-spl.bin FORCE
79*066f876bSMarek Vasut	$(call if_changed,mkimage)
801a9df13dSMarek Vasut
81*066f876bSMarek VasutMKIMAGEFLAGS_u-boot-signed.sb = -n $< -T mxsimage
821a9df13dSMarek Vasutu-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*066f876bSMarek Vasut	$(call if_changed,mkimage)
84