Marek Vasut | c140e98 | 2011-11-08 23:18:08 +0000 | [diff] [blame] | 1 | # |
| 2 | # (C) Copyright 2000-2006 |
| 3 | # Wolfgang Denk, DENX Software Engineering, wd@denx.de. |
| 4 | # |
Wolfgang Denk | d79de1d | 2013-07-08 09:37:19 +0200 | [diff] [blame] | 5 | # SPDX-License-Identifier: GPL-2.0+ |
Marek Vasut | c140e98 | 2011-11-08 23:18:08 +0000 | [diff] [blame] | 6 | # |
| 7 | |
Masahiro Yamada | 65aac04 | 2013-10-17 17:34:49 +0900 | [diff] [blame] | 8 | extra-$(CONFIG_SPL_BUILD) := start.o |
Marek Vasut | c140e98 | 2011-11-08 23:18:08 +0000 | [diff] [blame] | 9 | |
Masahiro Yamada | 65aac04 | 2013-10-17 17:34:49 +0900 | [diff] [blame] | 10 | obj-y = clock.o mxs.o iomux.o timer.o |
Marek Vasut | c140e98 | 2011-11-08 23:18:08 +0000 | [diff] [blame] | 11 | |
Marek Vasut | 151f49d | 2011-12-02 03:47:40 +0000 | [diff] [blame] | 12 | ifdef CONFIG_SPL_BUILD |
Masahiro Yamada | 65aac04 | 2013-10-17 17:34:49 +0900 | [diff] [blame] | 13 | obj-y += spl_boot.o spl_lradc_init.o spl_mem_init.o spl_power_init.o |
Marek Vasut | 151f49d | 2011-12-02 03:47:40 +0000 | [diff] [blame] | 14 | endif |
| 15 | |
Marek Vasut | e07153e | 2013-04-28 14:18:49 +0000 | [diff] [blame] | 16 | # Specify the target for use in elftosb call |
Masahiro Yamada | a0b3de0 | 2014-03-11 11:05:11 +0900 | [diff] [blame] | 17 | MKIMAGE_TARGET-$(CONFIG_MX23) = mxsimage.mx23.cfg |
| 18 | MKIMAGE_TARGET-$(CONFIG_MX28) = mxsimage.mx28.cfg |
Marek Vasut | e07153e | 2013-04-28 14:18:49 +0000 | [diff] [blame] | 19 | |
Marek Vasut | 266003a | 2014-04-03 19:12:21 +0200 | [diff] [blame] | 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 | # |
| 29 | quiet_cmd_mkivt_mxs = MXSIVT $@ |
| 30 | cmd_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 |
| 37 | quiet_cmd_mkalign_mxs = MXSALGN $@ |
| 38 | cmd_mkalign_mxs = \ |
| 39 | dd if=$^ of=$@ ibs=64 conv=sync 2>/dev/null && \ |
| 40 | mv $@ $^ |
| 41 | |
| 42 | # Assemble the CSF file |
| 43 | quiet_cmd_mkcsfreq_mxs = MXSCSFR $@ |
| 44 | cmd_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 |
| 54 | quiet_cmd_mkcst_mxs = MXSCST $@ |
| 55 | cmd_mkcst_mxs = cst -o $@ < $^ \ |
| 56 | $(if $(KBUILD_VERBOSE:1=), >/dev/null) |
| 57 | |
| 58 | spl/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 | |
| 63 | u-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 | |
| 68 | spl/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 | |
| 71 | u-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 | |
Marek Vasut | 31fea44 | 2014-03-14 05:00:14 +0100 | [diff] [blame] | 77 | quiet_cmd_mkimage_mxs = MKIMAGE $@ |
Masahiro Yamada | a0b3de0 | 2014-03-11 11:05:11 +0900 | [diff] [blame] | 78 | cmd_mkimage_mxs = $(objtree)/tools/mkimage -n $< -T mxsimage $@ \ |
| 79 | $(if $(KBUILD_VERBOSE:1=), >/dev/null) |
Marek Vasut | e07153e | 2013-04-28 14:18:49 +0000 | [diff] [blame] | 80 | |
Masahiro Yamada | a0b3de0 | 2014-03-11 11:05:11 +0900 | [diff] [blame] | 81 | u-boot.sb: $(src)/$(MKIMAGE_TARGET-y) u-boot.bin spl/u-boot-spl.bin FORCE |
| 82 | $(call if_changed,mkimage_mxs) |
Marek Vasut | 266003a | 2014-04-03 19:12:21 +0200 | [diff] [blame] | 83 | |
| 84 | u-boot-signed.sb: $(src)/mxsimage-signed.cfg u-boot.ivt u-boot.sig spl/u-boot-spl.ivt spl/u-boot-spl.sig FORCE |
| 85 | $(call if_changed,mkimage_mxs) |