]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - arch/arm/cpu/arm926ejs/mxs/Makefile
e80867ed602b619bd0e91c7d8d40fb9364980dfa
[karo-tx-uboot.git] / arch / arm / cpu / arm926ejs / mxs / Makefile
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
8 extra-$(CONFIG_SPL_BUILD) := start.o
9
10 obj-y   = clock.o mxs.o iomux.o timer.o
11
12 ifdef   CONFIG_SPL_BUILD
13 obj-y   += spl_boot.o spl_lradc_init.o spl_mem_init.o spl_power_init.o
14 endif
15
16 # Specify the target for use in elftosb call
17 MKIMAGE_TARGET-$(CONFIG_SOC_MX23) = mxsimage.mx23.cfg
18 MKIMAGE_TARGET-$(CONFIG_SOC_MX28) = mxsimage.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 #
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
77 quiet_cmd_mkimage_mxs = MKIMAGE $@
78 cmd_mkimage_mxs = $(objtree)/tools/mkimage -n $< -T mxsimage $@ \
79         $(if $(KBUILD_VERBOSE:1=), >/dev/null)
80
81 #u-boot.sb: $(src)/$(MKIMAGE_TARGET-y) u-boot.bin spl/u-boot-spl.bin FORCE
82 #       $(call if_changed,mkimage_mxs)
83 ELFTOSB_TARGET-$(CONFIG_SOC_MX23) = imx23
84 ELFTOSB_TARGET-$(CONFIG_SOC_MX28) = imx28
85
86 u-boot.bd: $(KBUILD_SRC)/$(CPUDIR)/$(SOC)/u-boot-$(ELFTOSB_TARGET-y).bd
87         sed "s@OBJTREE@$(objtree)@g" $^ > $@
88
89 u-boot.sb: u-boot spl/u-boot-spl $(objtree)/u-boot.bd $(KBUILD_SRC)/tools/elftosb/bld/linux/elftosb
90                 $(KBUILD_SRC)/tools/elftosb/bld/linux/elftosb -V -zf $(ELFTOSB_TARGET-y) -c u-boot.bd -o u-boot.sb
91
92 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
93         $(call if_changed,mkimage_mxs)