1 # SPDX-License-Identifier: GPL-2.0+
3 # (C) Copyright 2000-2006
4 # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
6 # (C) Copyright 2011 Freescale Semiconductor, Inc.
8 ifeq ($(SOC
),$(filter $(SOC
),mx25 mx35 mx5 mx6 mx7 mx8m vf610
))
12 ifeq ($(SOC
),$(filter $(SOC
),mx8m
))
13 obj-
$(CONFIG_IMX_BOOTAUX
) += imx_bootaux.o
14 obj-
$(CONFIG_ENV_IS_IN_MMC
) += mmc_env.o
15 obj-
$(CONFIG_FEC_MXC
) += mac.o
16 obj-
$(CONFIG_SYS_I2C_MXC
) += i2c-mxv7.o
20 ifeq ($(SOC
),$(filter $(SOC
),mx5 mx6
))
21 obj-y
+= cpu.o speed.o
22 obj-
$(CONFIG_GPT_TIMER
) += timer.o
23 obj-
$(CONFIG_SYS_I2C_MXC
) += i2c-mxv7.o
25 ifeq ($(SOC
),$(filter $(SOC
),mx7 mx6 mxs mx8m
))
27 obj-
$(CONFIG_SPL_BUILD
) += spl.o
29 ifeq ($(SOC
),$(filter $(SOC
),mx7
))
31 obj-
$(CONFIG_SYS_I2C_MXC
) += i2c-mxv7.o
32 obj-
$(CONFIG_ENV_IS_IN_MMC
) += mmc_env.o
34 ifeq ($(SOC
),$(filter $(SOC
),mx5 mx6 mx7
))
35 obj-
$(CONFIG_IMX_VIDEO_SKIP
) += video.o
37 ifeq ($(SOC
),$(filter $(SOC
),mx6 mx7
))
38 obj-y
+= cache.o init.o
39 obj-
$(CONFIG_FEC_MXC
) += mac.o
40 obj-
$(CONFIG_IMX_RDC
) += rdc-sema.o
41 ifneq ($(CONFIG_SPL_BUILD
),y
)
42 obj-
$(CONFIG_IMX_BOOTAUX
) += imx_bootaux.o
44 obj-
$(CONFIG_SATA
) += sata.o
45 obj-
$(CONFIG_SECURE_BOOT
) += hab.o
46 obj-
$(CONFIG_SYSCOUNTER_TIMER
) += syscounter.o
48 ifeq ($(SOC
),$(filter $(SOC
),mx7ulp
))
50 obj-
$(CONFIG_SECURE_BOOT
) += hab.o
52 ifeq ($(SOC
),$(filter $(SOC
),vf610
))
53 obj-y
+= ddrmc-vf610.o
55 ifneq ($(CONFIG_SPL_BUILD
),y
)
56 obj-
$(CONFIG_CMD_BMODE
) += cmd_bmode.o
57 obj-
$(CONFIG_CMD_HDMIDETECT
) += cmd_hdmidet.o
58 obj-
$(CONFIG_CMD_DEKBLOB
) += cmd_dek.o
61 ifneq ($(CONFIG_BOARD_SIZE_LIMIT
),)
63 @actual
=`wc -c $@ | awk '{print $$1}'`; \
64 limit
=`printf "%d" $(CONFIG_BOARD_SIZE_LIMIT)`; \
65 if
test $$actual -gt
$$limit; then \
66 echo
"$@ exceeds file size limit:" >&2 ; \
67 echo
" limit: $$limit bytes" >&2 ; \
68 echo
" actual: $$actual bytes" >&2 ; \
69 echo
" excess: $$((actual - limit)) bytes" >&2; \
76 PLUGIN
= board
/$(BOARDDIR
)/plugin
78 ifeq ($(CONFIG_USE_IMXIMG_PLUGIN
),y
)
80 $(PLUGIN
).o
: $(PLUGIN
).S FORCE
81 $(Q
)mkdir
-p
$(dir $@
)
82 $(call if_changed_dep
,as_o_S
)
84 $(PLUGIN
).bin
: $(PLUGIN
).o FORCE
85 $(Q
)mkdir
-p
$(dir $@
)
86 $(OBJCOPY
) -O binary
--gap-fill
0xff $< $@
93 quiet_cmd_cpp_cfg
= CFGS
$@
94 cmd_cpp_cfg
= $(CPP
) $(cpp_flags
) -x c
-o
$@
$<
96 # mkimage source config file
97 IMX_CONFIG
= $(CONFIG_IMX_CONFIG
:"%"=%)
99 # How to create a cpp processed config file, they all use the same source
100 %.cfgout
: $(IMX_CONFIG
) FORCE
101 $(Q
)mkdir
-p
$(dir $@
)
102 $(call if_changed_dep
,cpp_cfg
)
104 ifeq ($(CONFIG_ARCH_IMX8
), y
)
105 CNTR_DEPFILES
:= $(srctree
)/tools
/imx_cntr_image.sh
106 IMAGE_TYPE
:= imx8image
107 DEPFILE_EXISTS
:= $(shell $(CPP
) $(cpp_flags
) -x c
-o u-boot-dtb.cfgout
$(srctree
)/$(IMX_CONFIG
); if
[ -f u-boot-dtb.cfgout
]; then
$(CNTR_DEPFILES
) u-boot-dtb.cfgout
; echo
$$?
; fi
)
109 IMAGE_TYPE
:= imximage
113 MKIMAGEFLAGS_u-boot.imx
= -n
$(filter-out $(PLUGIN
).bin
$< $(PHONY
),$^
) \
114 -T
$(IMAGE_TYPE
) -e
$(CONFIG_SYS_TEXT_BASE
)
115 u-boot.imx
: MKIMAGEOUTPUT
= u-boot.imx.log
117 u-boot.imx
: u-boot.bin u-boot.cfgout
$(PLUGIN
).bin FORCE
118 $(call if_changed
,mkimage
)
121 ifeq ($(CONFIG_OF_SEPARATE
),y
)
122 MKIMAGEFLAGS_u-boot-dtb.imx
= -n
$(filter-out $(PLUGIN
).bin
$< $(PHONY
),$^
) \
123 -T
$(IMAGE_TYPE
) -e
$(CONFIG_SYS_TEXT_BASE
)
124 u-boot-dtb.imx
: MKIMAGEOUTPUT
= u-boot-dtb.imx.log
126 u-boot-dtb.imx
: u-boot-dtb.bin u-boot-dtb.cfgout
$(PLUGIN
).bin FORCE
127 ifeq ($(DEPFILE_EXISTS
),0)
128 $(call if_changed
,mkimage
)
132 MKIMAGEFLAGS_SPL
= -n
$(filter-out $(PLUGIN
).bin
$< $(PHONY
),$^
) \
133 -T
$(IMAGE_TYPE
) -e
$(CONFIG_SPL_TEXT_BASE
)
134 SPL
: MKIMAGEOUTPUT
= SPL.log
136 SPL
: spl
/u-boot-spl.bin spl
/u-boot-spl.cfgout
$(PLUGIN
).bin FORCE
137 $(call if_changed
,mkimage
)
139 MKIMAGEFLAGS_u-boot.uim
= -A arm
-O U-Boot
-a
$(CONFIG_SYS_TEXT_BASE
) \
140 -e
$(CONFIG_SYS_TEXT_BASE
) -C none
-T firmware
142 u-boot.uim
: u-boot.bin FORCE
143 $(call if_changed
,mkimage
)
145 OBJCOPYFLAGS
+= -I binary
-O binary
--pad-to
=$(CONFIG_SPL_PAD_TO
)
146 append
= cat
$(filter-out $< $(PHONY
), $^
) >> $@
148 quiet_cmd_pad_cat
= CAT
$@
149 cmd_pad_cat
= $(cmd_objcopy
) && $(append
) ||
rm -f
$@
151 u-boot-with-spl.imx
: SPL u-boot.uim FORCE
152 $(call if_changed
,pad_cat
)
154 u-boot-with-nand-spl.imx
: spl
/u-boot-nand-spl.imx u-boot.uim FORCE
155 $(call if_changed
,pad_cat
)
157 quiet_cmd_u-boot-nand-spl_imx
= GEN
$@
158 cmd_u-boot-nand-spl_imx
= (printf
'\000\000\000\000\106\103\102\040\001' && \
159 dd bs
=1015 count
=1 if
=/dev
/zero
2>/dev
/null
) | cat
- $< > $@
161 spl
/u-boot-nand-spl.imx
: SPL FORCE
162 $(call if_changed
,u-boot-nand-spl_imx
)
164 targets
+= $(addprefix ..
/..
/..
/,SPL spl
/u-boot-spl.cfgout u-boot-dtb.cfgout u-boot.cfgout u-boot.uim spl
/u-boot-nand-spl.imx
)
166 obj-
$(CONFIG_ARM64
) += sip.o
168 obj-
$(CONFIG_MX5
) += mx5
/
169 obj-
$(CONFIG_MX6
) += mx6
/
170 obj-
$(CONFIG_MX7
) += mx7
/
171 obj-
$(CONFIG_ARCH_MX7ULP
) += mx7ulp
/
172 obj-
$(CONFIG_MX8M
) += mx8m
/
173 obj-
$(CONFIG_ARCH_IMX8
) += imx8
/