Message ID | 1391779780-22434-13-git-send-email-yamada.m@jp.panasonic.com |
---|---|
State | Superseded |
Delegated to: | Tom Rini |
Headers | show |
Hi Masahiro, On 7 February 2014 05:29, Masahiro Yamada <yamada.m@jp.panasonic.com> wrote: > Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> > --- > > Makefile | 4 +- > arch/arm/cpu/arm1136/config.mk | 2 +- > arch/arm/cpu/arm926ejs/config.mk | 2 +- > arch/arm/cpu/armv7/config.mk | 2 +- > arch/arm/imx-common/Makefile | 85 ++++++++++++++++++++++++---------------- > spl/Makefile | 4 +- > 6 files changed, 58 insertions(+), 41 deletions(-) > ... > diff --git a/spl/Makefile b/spl/Makefile > index 22d6323..e8c5938 100644 > --- a/spl/Makefile > +++ b/spl/Makefile > @@ -178,8 +178,8 @@ MKIMAGEFLAGS_MLO.byteswap = -T omapimage -n byteswap -a $(CONFIG_SPL_TEXT_BASE) > MLO MLO.byteswap: $(obj)/u-boot-spl.bin > $(call if_changed,mkimage) > > -$(objtree)/SPL: $(obj)/u-boot-spl.bin > - $(Q)$(MAKE) $(build)=spl/arch/arm/imx-common $@ > +SPL: $(obj)/u-boot-spl.bin > + $(Q)$(MAKE) $(build)=arch/arm/imx-common $@ This series looks good to me, but I would like to understand what is happening here. Are you changing it to pick up the source from the real arch/ directory instead of the spl copy? > > ALL-y += $(obj)/$(SPL_BIN).bin > > -- > 1.8.3.2 > Regards, Simon
Hello Simon, Thanks for your close review. This is always appreciated. > > diff --git a/spl/Makefile b/spl/Makefile > > index 22d6323..e8c5938 100644 > > --- a/spl/Makefile > > +++ b/spl/Makefile > > @@ -178,8 +178,8 @@ MKIMAGEFLAGS_MLO.byteswap = -T omapimage -n byteswap -a $(CONFIG_SPL_TEXT_BASE) > > MLO MLO.byteswap: $(obj)/u-boot-spl.bin > > $(call if_changed,mkimage) > > > > -$(objtree)/SPL: $(obj)/u-boot-spl.bin > > - $(Q)$(MAKE) $(build)=spl/arch/arm/imx-common $@ > > +SPL: $(obj)/u-boot-spl.bin > > + $(Q)$(MAKE) $(build)=arch/arm/imx-common $@ > > This series looks good to me, but I would like to understand what is > happening here. Are you changing it to pick up the source from the > real arch/ directory instead of the spl copy? Two things are happening here: [1] drop $(objtree)/ [2] modify $(build)=spl/arch/arm/imx-commot to $(build)=arch/arm/imx-common Let me explain the reason of each one by one. [1] $(objtree) ( and $(OBJTREE)) points to the absolute path of the working directory. I want short log should be like: UIMAGE SPL rather than UIMAGE /home/yamada/workspace/SPL That's why I dropped $(objtree)/ and $(OBJTREE)/ prefixes from all IMX related images. [2] I guess it's difficult to understand what's happening here. I hope the following explanation will be clear for you.. At this commit, Both ./Makefile and spl/Makefile descend into arch/arm/imx-common. From the ./Makefile, here u-boot.imx: u-boot.bin $(Q)$(MAKE) $(build)=arch/arm/imx-common $@ u-boot-with-spl.imx u-boot-with-nand-spl.imx: spl/u-boot-spl.bin u-boot.bin $(Q)$(MAKE) $(build)=arch/arm/imx-common $@ And from spl/Makefile, here SPL: $(obj)/u-boot-spl.bin $(Q)$(MAKE) $(build)=arch/arm/imx-common $@ I needed to specify "$(build)=arch/arm/imx-common" consistenty to include ".*.cmd" files correctly. I added targets += $(addprefix ../../../,$(IMX_CONFIG) SPL u-boot.uim spl/u-boot-nand-spl.imx) at the end of arch/arm/imx-common/Makefile. (It may look weird. ) And it is prefixed (obj)/ at scripts/Makefile.lib line 76 targets := $(addprefix $(obj)/,$(targets)) If I had not changed "$(build)=spl/arm/arm/imx-common", $(targets) would have pointed to "spl/arch/arm/imx-common/../../../SPL), that is, "spl/SPL". But .SPL.cmd is not in spl/ directory. Anyway, it is really complicated to descend into arch/arm/imx-common from two Makefiles, ./Makefile and spl/Makefile. So I moved the SPL rule from spl/Makefile to ./Makefile. Best Regards Masahiro Yamada
Hi Masahiro, On 23 February 2014 18:58, Masahiro Yamada <yamada.m@jp.panasonic.com> wrote: > Hello Simon, > > Thanks for your close review. > This is always appreciated. > > >> > diff --git a/spl/Makefile b/spl/Makefile >> > index 22d6323..e8c5938 100644 >> > --- a/spl/Makefile >> > +++ b/spl/Makefile >> > @@ -178,8 +178,8 @@ MKIMAGEFLAGS_MLO.byteswap = -T omapimage -n byteswap -a $(CONFIG_SPL_TEXT_BASE) >> > MLO MLO.byteswap: $(obj)/u-boot-spl.bin >> > $(call if_changed,mkimage) >> > >> > -$(objtree)/SPL: $(obj)/u-boot-spl.bin >> > - $(Q)$(MAKE) $(build)=spl/arch/arm/imx-common $@ >> > +SPL: $(obj)/u-boot-spl.bin >> > + $(Q)$(MAKE) $(build)=arch/arm/imx-common $@ >> >> This series looks good to me, but I would like to understand what is >> happening here. Are you changing it to pick up the source from the >> real arch/ directory instead of the spl copy? > > Two things are happening here: > [1] drop $(objtree)/ > [2] modify $(build)=spl/arch/arm/imx-commot to > $(build)=arch/arm/imx-common > > Let me explain the reason of each one by one. > > [1] > $(objtree) ( and $(OBJTREE)) points to the absolute path of the > working directory. > > I want short log should be like: > UIMAGE SPL > rather than > UIMAGE /home/yamada/workspace/SPL > > That's why I dropped $(objtree)/ and $(OBJTREE)/ prefixes > from all IMX related images. > > [2] > I guess it's difficult to understand what's happening here. > I hope the following explanation will be clear for you.. > > At this commit, > Both ./Makefile and spl/Makefile descend into arch/arm/imx-common. > > > From the ./Makefile, here > > u-boot.imx: u-boot.bin > $(Q)$(MAKE) $(build)=arch/arm/imx-common $@ > > u-boot-with-spl.imx u-boot-with-nand-spl.imx: spl/u-boot-spl.bin u-boot.bin > $(Q)$(MAKE) $(build)=arch/arm/imx-common $@ > > > And from spl/Makefile, here > > SPL: $(obj)/u-boot-spl.bin > $(Q)$(MAKE) $(build)=arch/arm/imx-common $@ > > > I needed to specify "$(build)=arch/arm/imx-common" consistenty > to include ".*.cmd" files correctly. > > I added > targets += $(addprefix ../../../,$(IMX_CONFIG) SPL u-boot.uim spl/u-boot-nand-spl.imx) > at the end of arch/arm/imx-common/Makefile. > (It may look weird. ) > > And it is prefixed (obj)/ at scripts/Makefile.lib line 76 > targets := $(addprefix $(obj)/,$(targets)) > > If I had not changed "$(build)=spl/arm/arm/imx-common", > $(targets) would have pointed to "spl/arch/arm/imx-common/../../../SPL), > that is, "spl/SPL". > But .SPL.cmd is not in spl/ directory. > > > > Anyway, it is really complicated to descend into arch/arm/imx-common > from two Makefiles, ./Makefile and spl/Makefile. > > So I moved the SPL rule from spl/Makefile to ./Makefile. Sorry I didn't reply earlier when I first read this, it looks good. Thanks for the detailed explanation. Regards, Simon
diff --git a/Makefile b/Makefile index 907b013..5acf538 100644 --- a/Makefile +++ b/Makefile @@ -816,7 +816,7 @@ u-boot.img u-boot.kwb u-boot.pbl: u-boot.bin FORCE $(call if_changed,mkimage) u-boot.imx: u-boot.bin - $(Q)$(MAKE) $(build)=arch/arm/imx-common $(objtree)/$@ + $(Q)$(MAKE) $(build)=arch/arm/imx-common $@ u-boot.sha1: u-boot.bin tools/ubsha1 u-boot.bin @@ -841,7 +841,7 @@ tpl/u-boot-with-tpl.bin: tpl/u-boot-tpl.bin u-boot.bin FORCE $(call if_changed,pad_cat) u-boot-with-spl.imx u-boot-with-nand-spl.imx: spl/u-boot-spl.bin u-boot.bin - $(Q)$(MAKE) $(build)=arch/arm/imx-common $(objtree)/$@ + $(Q)$(MAKE) $(build)=arch/arm/imx-common $@ MKIMAGEFLAGS_u-boot.ubl = -n $(UBL_CONFIG) -T ublimage -e $(CONFIG_SYS_TEXT_BASE) diff --git a/arch/arm/cpu/arm1136/config.mk b/arch/arm/cpu/arm1136/config.mk index ab1fc4a..91b0ef3 100644 --- a/arch/arm/cpu/arm1136/config.mk +++ b/arch/arm/cpu/arm1136/config.mk @@ -11,7 +11,7 @@ PLATFORM_CPPFLAGS += -march=armv5 ifneq ($(CONFIG_IMX_CONFIG),) ifdef CONFIG_SPL ifdef CONFIG_SPL_BUILD -ALL-y += $(OBJTREE)/SPL +ALL-y += SPL endif else ALL-y += u-boot.imx diff --git a/arch/arm/cpu/arm926ejs/config.mk b/arch/arm/cpu/arm926ejs/config.mk index f27ca15..918cdec 100644 --- a/arch/arm/cpu/arm926ejs/config.mk +++ b/arch/arm/cpu/arm926ejs/config.mk @@ -10,7 +10,7 @@ PLATFORM_CPPFLAGS += -march=armv5te ifneq ($(CONFIG_IMX_CONFIG),) ifdef CONFIG_SPL ifdef CONFIG_SPL_BUILD -ALL-y += $(OBJTREE)/SPL +ALL-y += SPL endif else ALL-y += u-boot.imx diff --git a/arch/arm/cpu/armv7/config.mk b/arch/arm/cpu/armv7/config.mk index d01f3d9..852f83c 100644 --- a/arch/arm/cpu/armv7/config.mk +++ b/arch/arm/cpu/armv7/config.mk @@ -17,7 +17,7 @@ PLATFORM_NO_UNALIGNED := $(PF_NO_UNALIGNED) ifneq ($(CONFIG_IMX_CONFIG),) ifdef CONFIG_SPL ifdef CONFIG_SPL_BUILD -ALL-y += $(OBJTREE)/SPL +ALL-y += SPL endif else ALL-y += u-boot.imx diff --git a/arch/arm/imx-common/Makefile b/arch/arm/imx-common/Makefile index 88d6c0b..16809fe 100644 --- a/arch/arm/imx-common/Makefile +++ b/arch/arm/imx-common/Makefile @@ -23,37 +23,54 @@ endif obj-$(CONFIG_CMD_BMODE) += cmd_bmode.o obj-$(CONFIG_CMD_HDMIDETECT) += cmd_hdmidet.o -$(OBJTREE)/$(patsubst "%",%,$(CONFIG_IMX_CONFIG)).cfgtmp: $(OBJTREE)/%.cfgtmp : $(SRCTREE)/% - mkdir -p $(dir $@) - $(CPP) $(cpp_flags) -x c -o $@ $< - -$(OBJTREE)/u-boot.imx: $(OBJTREE)/u-boot.bin $(OBJTREE)/$(patsubst "%",%,$(CONFIG_IMX_CONFIG)).cfgtmp - $(OBJTREE)/tools/mkimage -n $(filter-out %.bin,$^) -T imximage \ - -e $(CONFIG_SYS_TEXT_BASE) -d $< $@ - -$(OBJTREE)/SPL: $(OBJTREE)/spl/u-boot-spl.bin $(OBJTREE)/$(patsubst "%",%,$(CONFIG_IMX_CONFIG)).cfgtmp - $(OBJTREE)/tools/mkimage -n $(filter-out %.bin,$^) -T imximage \ - -e $(CONFIG_SPL_TEXT_BASE) -d $< $@ - -$(OBJTREE)/u-boot-with-spl.imx: $(OBJTREE)/SPL $(OBJTREE)/u-boot.bin - $(OBJCOPY) $(OBJCOPYFLAGS) --pad-to=$(CONFIG_SPL_PAD_TO) \ - -I binary -O binary $< $(OBJTREE)/spl/u-boot-spl-pad.imx - $(OBJTREE)/tools/mkimage -A arm -O U-Boot -a $(CONFIG_SYS_TEXT_BASE) \ - -e $(CONFIG_SYS_TEXT_BASE) -C none -d $(OBJTREE)/u-boot.bin \ - $(OBJTREE)/u-boot.uim - cat $(OBJTREE)/spl/u-boot-spl-pad.imx $(OBJTREE)/u-boot.uim > $@ - rm $(OBJTREE)/spl/u-boot-spl-pad.imx $(OBJTREE)/u-boot.uim - -$(OBJTREE)/u-boot-with-nand-spl.imx: $(OBJTREE)/SPL $(OBJTREE)/u-boot.bin - (echo -ne '\x00\x00\x00\x00\x46\x43\x42\x20\x01' && \ - dd bs=1015 count=1 if=/dev/zero 2>/dev/null) | \ - cat - $< > $(OBJTREE)/spl/u-boot-nand-spl.imx - $(OBJCOPY) $(OBJCOPYFLAGS) --pad-to=$(CONFIG_SPL_PAD_TO) \ - -I binary -O binary $(OBJTREE)/spl/u-boot-nand-spl.imx \ - $(OBJTREE)/spl/u-boot-nand-spl-pad.imx - rm $(OBJTREE)/spl/u-boot-nand-spl.imx - $(OBJTREE)/tools/mkimage -A arm -O U-Boot -a $(CONFIG_SYS_TEXT_BASE) \ - -e $(CONFIG_SYS_TEXT_BASE) -C none -d $(OBJTREE)/u-boot.bin \ - $(OBJTREE)/u-boot.uim - cat $(OBJTREE)/spl/u-boot-nand-spl-pad.imx $(OBJTREE)/u-boot.uim > $@ - rm $(OBJTREE)/spl/u-boot-nand-spl-pad.imx $(OBJTREE)/u-boot.uim +quiet_cmd_cpp_cfg = CFGS $@ + cmd_cpp_cfg = $(CPP) $(cpp_flags) -x c -o $@ $< + +IMX_CONFIG = $(CONFIG_IMX_CONFIG:"%"=%).cfgtmp + +$(IMX_CONFIG): %.cfgtmp: % FORCE + $(Q)mkdir -p $(dir $@) + $(call if_changed_dep,cpp_cfg) + +quiet_cmd_mkimage = UIMAGE $@ +cmd_mkimage = $(objtree)/tools/mkimage $(MKIMAGEFLAGS_$(@F)) -d $< $@ \ + $(if $(KBUILD_VERBOSE:1=), >/dev/null) + +MKIMAGEFLAGS_u-boot.imx = -n $(filter-out $< $(PHONY),$^) -T imximage \ + -e $(CONFIG_SYS_TEXT_BASE) + +u-boot.imx: u-boot.bin $(IMX_CONFIG) FORCE + $(call if_changed,mkimage) + +MKIMAGEFLAGS_SPL = -n $(filter-out $< $(PHONY),$^) -T imximage \ + -e $(CONFIG_SPL_TEXT_BASE) + +SPL: spl/u-boot-spl.bin $(IMX_CONFIG) FORCE + $(call if_changed,mkimage) + +MKIMAGEFLAGS_u-boot.uim = -A arm -O U-Boot -a $(CONFIG_SYS_TEXT_BASE) \ + -e $(CONFIG_SYS_TEXT_BASE) -C none + +u-boot.uim: u-boot.bin FORCE + $(call if_changed,mkimage) + +OBJCOPYFLAGS += -I binary -O binary --pad-to=$(CONFIG_SPL_PAD_TO) +append = cat $(filter-out $< $(PHONY), $^) >> $@ + +quiet_cmd_pad_cat = CAT $@ +cmd_pad_cat = $(cmd_objcopy) && $(append) || rm -f $@ + +u-boot-with-spl.imx: SPL u-boot.uim FORCE + $(call if_changed,pad_cat) + +u-boot-with-nand-spl.imx: spl/u-boot-nand-spl.imx u-boot.uim FORCE + $(call if_changed,pad_cat) + +quiet_cmd_u-boot-nand-spl_imx = GEN $@ +cmd_u-boot-nand-spl_imx = (echo -ne '\x00\x00\x00\x00\x46\x43\x42\x20\x01' && \ + dd bs=1015 count=1 if=/dev/zero 2>/dev/null) | cat - $< > $@ + +spl/u-boot-nand-spl.imx: SPL FORCE + $(call if_changed,u-boot-nand-spl_imx) + +targets += $(addprefix ../../../,$(IMX_CONFIG) SPL u-boot.uim spl/u-boot-nand-spl.imx) diff --git a/spl/Makefile b/spl/Makefile index 22d6323..e8c5938 100644 --- a/spl/Makefile +++ b/spl/Makefile @@ -178,8 +178,8 @@ MKIMAGEFLAGS_MLO.byteswap = -T omapimage -n byteswap -a $(CONFIG_SPL_TEXT_BASE) MLO MLO.byteswap: $(obj)/u-boot-spl.bin $(call if_changed,mkimage) -$(objtree)/SPL: $(obj)/u-boot-spl.bin - $(Q)$(MAKE) $(build)=spl/arch/arm/imx-common $@ +SPL: $(obj)/u-boot-spl.bin + $(Q)$(MAKE) $(build)=arch/arm/imx-common $@ ALL-y += $(obj)/$(SPL_BIN).bin
Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> --- Makefile | 4 +- arch/arm/cpu/arm1136/config.mk | 2 +- arch/arm/cpu/arm926ejs/config.mk | 2 +- arch/arm/cpu/armv7/config.mk | 2 +- arch/arm/imx-common/Makefile | 85 ++++++++++++++++++++++++---------------- spl/Makefile | 4 +- 6 files changed, 58 insertions(+), 41 deletions(-)