2 # (C) Copyright 2000-2006
3 # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
5 # SPDX-License-Identifier: GPL-2.0+
8 extra-
$(CONFIG_SPL_BUILD
) := start.o
10 obj-y
= clock.o mxs.o iomux.o timer.o
12 ifdef CONFIG_SPL_BUILD
13 obj-y
+= spl_boot.o spl_lradc_init.o spl_mem_init.o spl_power_init.o
16 # Specify the target for use in elftosb call
17 MKIMAGE_TARGET-
$(CONFIG_MX23
) = mxsimage.mx23.cfg
18 MKIMAGE_TARGET-
$(CONFIG_MX28
) = mxsimage.mx28.cfg
20 # Generate HAB-capable IVT
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
29 quiet_cmd_mkivt_mxs
= MXSIVT
$@
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
"{}" >$@
37 quiet_cmd_mkalign_mxs
= MXSALGN
$@
39 dd if
=$^ of
=$@ ibs
=64 conv
=sync
2>/dev
/null
&& \
42 # Assemble the CSF file
43 quiet_cmd_mkcsfreq_mxs
= MXSCSFR
$@
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\"" >> $@
54 quiet_cmd_mkcst_mxs
= MXSCST
$@
55 cmd_mkcst_mxs
= cst
-o
$@
< $^ \
56 $(if
$(KBUILD_VERBOSE
:1=), >/dev
/null
)
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)
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)
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)
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)
75 $(call if_changed
,mkcst_mxs
)
77 MKIMAGEFLAGS_u-boot.sb
= -n
$< -T mxsimage
78 u-boot.sb
: $(src
)/$(MKIMAGE_TARGET-y
) u-boot.bin spl
/u-boot-spl.bin FORCE
79 $(call if_changed
,mkimage
)
81 MKIMAGEFLAGS_u-boot-signed.sb
= -n
$< -T mxsimage
82 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
83 $(call if_changed
,mkimage
)