@ -102,10 +102,11 @@ endif # ifneq ($(BUILD_DIR),)
OBJTREE := $( if $( BUILD_DIR) ,$( BUILD_DIR) ,$( CURDIR) )
OBJTREE := $( if $( BUILD_DIR) ,$( BUILD_DIR) ,$( CURDIR) )
SPLTREE := $( OBJTREE) /spl
SPLTREE := $( OBJTREE) /spl
TPLTREE := $( OBJTREE) /tpl
SRCTREE := $( CURDIR)
SRCTREE := $( CURDIR)
TOPDIR := $( SRCTREE)
TOPDIR := $( SRCTREE)
LNDIR := $( OBJTREE)
LNDIR := $( OBJTREE)
export TOPDIR SRCTREE OBJTREE SPLTREE
export TOPDIR SRCTREE OBJTREE SPLTREE TPLTREE
MKCONFIG := $( SRCTREE) /mkconfig
MKCONFIG := $( SRCTREE) /mkconfig
export MKCONFIG
export MKCONFIG
@ -397,6 +398,7 @@ ALL-y += $(obj)u-boot.srec $(obj)u-boot.bin $(obj)System.map
ALL-$(CONFIG_NAND_U_BOOT) += $( obj) u-boot-nand.bin
ALL-$(CONFIG_NAND_U_BOOT) += $( obj) u-boot-nand.bin
ALL-$(CONFIG_ONENAND_U_BOOT) += $( obj) u-boot-onenand.bin
ALL-$(CONFIG_ONENAND_U_BOOT) += $( obj) u-boot-onenand.bin
ALL-$(CONFIG_SPL) += $( obj) spl/u-boot-spl.bin
ALL-$(CONFIG_SPL) += $( obj) spl/u-boot-spl.bin
ALL-$(CONFIG_TPL) += $( obj) tpl/u-boot-tpl.bin
ALL-$(CONFIG_OF_SEPARATE) += $( obj) u-boot.dtb $( obj) u-boot-dtb.bin
ALL-$(CONFIG_OF_SEPARATE) += $( obj) u-boot.dtb $( obj) u-boot-dtb.bin
i f n e q ( $( CONFIG_SPL_TARGET ) , )
i f n e q ( $( CONFIG_SPL_TARGET ) , )
ALL-$(CONFIG_SPL) += $( obj) $( subst " ,, $( CONFIG_SPL_TARGET) )
ALL-$(CONFIG_SPL) += $( obj) $( subst " ,, $( CONFIG_SPL_TARGET) )
@ -475,13 +477,25 @@ $(obj)u-boot.sha1: $(obj)u-boot.bin
$(obj)u-boot.dis : $( obj ) u -boot
$(obj)u-boot.dis : $( obj ) u -boot
$( OBJDUMP) -d $< > $@
$( OBJDUMP) -d $< > $@
# $@ is output, $(1) and $(2) are inputs, $(3) is padded intermediate,
# $(4) is pad-to
SPL_PAD_APPEND = \
$( OBJCOPY) ${ OBJCFLAGS } --pad-to= $( 4) -I binary -O binary \
$( 1) $( obj) $( 3) ; \
cat $( obj) $( 3) $( obj) $( 2) > $@ ; \
rm $( obj) $( 3)
i f d e f C O N F I G _ T P L
SPL_PAYLOAD := $( obj) tpl/u-boot-with-tpl.bin
e l s e
SPL_PAYLOAD := $( obj) u-boot.bin
e n d i f
$(obj)u-boot-with-spl.bin : $( obj ) spl /u -boot -spl .bin $( obj ) u -boot .bin
$(obj)u-boot-with-spl.bin : $( obj ) spl /u -boot -spl .bin $( SPL_PAYLOAD )
$( OBJCOPY) ${ OBJCFLAGS } --pad-to= $( CONFIG_SPL_PAD_TO) \
$( call SPL_PAD_APPEND,$<,$( SPL_PAYLOAD) ,spl/u-boot-spl-pad.bin,$( CONFIG_SPL_PAD_TO) )
-I binary -O binary $< $( obj) spl/u-boot-spl-pad.bin
cat $( obj) spl/u-boot-spl-pad.bin $( obj) u-boot.bin > $@
$(obj)tpl/u-boot-with-tpl.bin : $( obj ) tpl /u -boot -tpl .bin $( obj ) u -boot .bin
rm $( obj) spl/u-boot-spl-pad.bin
$( call SPL_PAD_APPEND,$<,u-boot.bin,tpl/u-boot-tpl-pad.bin,$( CONFIG_TPL_PAD_TO) )
$(obj)u-boot-with-spl.imx : $( obj ) spl /u -boot -spl .bin $( obj ) u -boot .bin
$(obj)u-boot-with-spl.imx : $( obj ) spl /u -boot -spl .bin $( obj ) u -boot .bin
$( MAKE) -C $( SRCTREE) /arch/arm/imx-common \
$( MAKE) -C $( SRCTREE) /arch/arm/imx-common \
@ -607,6 +621,9 @@ $(obj)u-boot-nand.bin: nand_spl $(obj)u-boot.bin
$(obj)spl/u-boot-spl.bin : $( SUBDIR_TOOLS ) depend
$(obj)spl/u-boot-spl.bin : $( SUBDIR_TOOLS ) depend
$( MAKE) -C spl all
$( MAKE) -C spl all
$(obj)tpl/u-boot-tpl.bin : $( SUBDIR_TOOLS ) depend
$( MAKE) -C spl all CONFIG_TPL_BUILD = y
updater :
updater :
$( MAKE) -C tools/updater all
$( MAKE) -C tools/updater all
@ -614,6 +631,7 @@ updater:
# parallel sub-makes creating .depend files simultaneously.
# parallel sub-makes creating .depend files simultaneously.
depend dep : $( TIMESTAMP_FILE ) $( VERSION_FILE ) \
depend dep : $( TIMESTAMP_FILE ) $( VERSION_FILE ) \
$( obj) include/spl-autoconf.mk \
$( obj) include/spl-autoconf.mk \
$( obj) include/tpl-autoconf.mk \
$( obj) include/autoconf.mk \
$( obj) include/autoconf.mk \
$( obj) include/generated/generic-asm-offsets.h \
$( obj) include/generated/generic-asm-offsets.h \
$( obj) include/generated/asm-offsets.h
$( obj) include/generated/asm-offsets.h
@ -696,6 +714,15 @@ $(obj)include/autoconf.mk: $(obj)include/config.h
mv $@ .tmp $@
mv $@ .tmp $@
# Auto-generate the spl-autoconf.mk file (which is included by all makefiles for SPL)
# Auto-generate the spl-autoconf.mk file (which is included by all makefiles for SPL)
$(obj)include/tpl-autoconf.mk : $( obj ) include /config .h
@$( XECHO) Generating $@ ; \
set -e ; \
: Extract the config macros ; \
$( CPP) $( CFLAGS) -DCONFIG_TPL_BUILD -DCONFIG_SPL_BUILD\
-DDO_DEPS_ONLY -dM include/common.h | \
sed -n -f tools/scripts/define2mk.sed > $@ .tmp && \
mv $@ .tmp $@
$(obj)include/spl-autoconf.mk : $( obj ) include /config .h
$(obj)include/spl-autoconf.mk : $( obj ) include /config .h
@$( XECHO) Generating $@ ; \
@$( XECHO) Generating $@ ; \
set -e ; \
set -e ; \
@ -706,12 +733,14 @@ $(obj)include/spl-autoconf.mk: $(obj)include/config.h
$(obj)include/generated/generic-asm-offsets.h : $( obj ) include /autoconf .mk .dep \
$(obj)include/generated/generic-asm-offsets.h : $( obj ) include /autoconf .mk .dep \
$( obj) include/spl-autoconf.mk \
$( obj) include/spl-autoconf.mk \
$( obj) include/tpl-autoconf.mk \
$( obj) lib/asm-offsets.s
$( obj) lib/asm-offsets.s
@$( XECHO) Generating $@
@$( XECHO) Generating $@
tools/scripts/make-asm-offsets $( obj) lib/asm-offsets.s $@
tools/scripts/make-asm-offsets $( obj) lib/asm-offsets.s $@
$(obj)lib/asm-offsets.s : $( obj ) include /autoconf .mk .dep \
$(obj)lib/asm-offsets.s : $( obj ) include /autoconf .mk .dep \
$( obj) include/spl-autoconf.mk \
$( obj) include/spl-autoconf.mk \
$( obj) include/tpl-autoconf.mk \
$( src) lib/asm-offsets.c
$( src) lib/asm-offsets.c
@mkdir -p $( obj) lib
@mkdir -p $( obj) lib
$( CC) -DDO_DEPS_ONLY \
$( CC) -DDO_DEPS_ONLY \
@ -720,12 +749,14 @@ $(obj)lib/asm-offsets.s: $(obj)include/autoconf.mk.dep \
$(obj)include/generated/asm-offsets.h : $( obj ) include /autoconf .mk .dep \
$(obj)include/generated/asm-offsets.h : $( obj ) include /autoconf .mk .dep \
$( obj) include/spl-autoconf.mk \
$( obj) include/spl-autoconf.mk \
$( obj) include/tpl-autoconf.mk \
$( obj) $( CPUDIR) /$( SOC) /asm-offsets.s
$( obj) $( CPUDIR) /$( SOC) /asm-offsets.s
@$( XECHO) Generating $@
@$( XECHO) Generating $@
tools/scripts/make-asm-offsets $( obj) $( CPUDIR) /$( SOC) /asm-offsets.s $@
tools/scripts/make-asm-offsets $( obj) $( CPUDIR) /$( SOC) /asm-offsets.s $@
$(obj)$(CPUDIR)/$(SOC)/asm-offsets.s : $( obj ) include /autoconf .mk .dep \
$(obj)$(CPUDIR)/$(SOC)/asm-offsets.s : $( obj ) include /autoconf .mk .dep \
$( obj) include/spl-autoconf.mk
$( obj) include/spl-autoconf.mk \
$( obj) include/tpl-autoconf.mk
@mkdir -p $( obj) $( CPUDIR) /$( SOC)
@mkdir -p $( obj) $( CPUDIR) /$( SOC)
if [ -f $( src) $( CPUDIR) /$( SOC) /asm-offsets.c ] ; then \
if [ -f $( src) $( CPUDIR) /$( SOC) /asm-offsets.c ] ; then \
$( CC) -DDO_DEPS_ONLY \
$( CC) -DDO_DEPS_ONLY \
@ -798,7 +829,8 @@ unconfig:
@rm -f $( obj) include/config.h $( obj) include/config.mk \
@rm -f $( obj) include/config.h $( obj) include/config.mk \
$( obj) board/*/config.tmp $( obj) board/*/*/config.tmp \
$( obj) board/*/config.tmp $( obj) board/*/*/config.tmp \
$( obj) include/autoconf.mk $( obj) include/autoconf.mk.dep \
$( obj) include/autoconf.mk $( obj) include/autoconf.mk.dep \
$( obj) include/spl-autoconf.mk
$( obj) include/spl-autoconf.mk \
$( obj) include/tpl-autoconf.mk
%_config :: unconfig
%_config :: unconfig
@$( MKCONFIG) -A $( @:_config= )
@$( MKCONFIG) -A $( @:_config= )
@ -884,6 +916,8 @@ clobber: tidy
@rm -f $( obj) nand_spl/{ u-boot-nand_spl.lds,u-boot-spl,u-boot-spl.map}
@rm -f $( obj) nand_spl/{ u-boot-nand_spl.lds,u-boot-spl,u-boot-spl.map}
@rm -f $( obj) spl/{ u-boot-spl,u-boot-spl.bin,u-boot-spl.map}
@rm -f $( obj) spl/{ u-boot-spl,u-boot-spl.bin,u-boot-spl.map}
@rm -f $( obj) spl/u-boot-spl.lds
@rm -f $( obj) spl/u-boot-spl.lds
@rm -f $( obj) tpl/{ u-boot-tpl,u-boot-tpl.bin,u-boot-tpl.map}
@rm -f $( obj) tpl/u-boot-spl.lds
@rm -f $( obj) MLO MLO.byteswap
@rm -f $( obj) MLO MLO.byteswap
@rm -f $( obj) SPL
@rm -f $( obj) SPL
@rm -f $( obj) tools/xway-swap-bytes
@rm -f $( obj) tools/xway-swap-bytes