diff mbox

[U-Boot] arm: mxs: Preprocess u-boot.bd so they contain full path

Message ID 1367174391-5505-1-git-send-email-marex@denx.de
State Superseded
Delegated to: Stefano Babic
Headers show

Commit Message

Marek Vasut April 28, 2013, 6:39 p.m. UTC
The u-boot-imx23.bd and u-boot-imx28.bd need to be preprocessed, otherwise
they have issues with out-of-tree build where elftosb tool couldn't sometimes
find the u-boot.bin and spl/u-boot-spl.bin .

Preprocess these .bd files with sed and insert full path to u-boot.bin and
spl/u-boot-spl.bin to prevent this issue. Moreover, to avoid adding more
churn into main Makefile, move all this preprocessing and u-boot.sb generation
into CPU directory instead.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Stefano Babic <sbabic@denx.de>
---
 Makefile                                   |    7 ++-----
 arch/arm/cpu/arm926ejs/mxs/Makefile        |   10 ++++++++++
 arch/arm/cpu/arm926ejs/mxs/u-boot-imx23.bd |    4 ++--
 arch/arm/cpu/arm926ejs/mxs/u-boot-imx28.bd |    4 ++--
 4 files changed, 16 insertions(+), 9 deletions(-)

Comments

Otavio Salvador April 28, 2013, 9:10 p.m. UTC | #1
On Sun, Apr 28, 2013 at 3:39 PM, Marek Vasut <marex@denx.de> wrote:
> The u-boot-imx23.bd and u-boot-imx28.bd need to be preprocessed, otherwise
> they have issues with out-of-tree build where elftosb tool couldn't sometimes
> find the u-boot.bin and spl/u-boot-spl.bin .
>
> Preprocess these .bd files with sed and insert full path to u-boot.bin and
> spl/u-boot-spl.bin to prevent this issue. Moreover, to avoid adding more
> churn into main Makefile, move all this preprocessing and u-boot.sb generation
> into CPU directory instead.
>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Fabio Estevam <fabio.estevam@freescale.com>
> Cc: Stefano Babic <sbabic@denx.de>

Please Cc me in 'mxs' patches.

>  Makefile                                   |    7 ++-----
>  arch/arm/cpu/arm926ejs/mxs/Makefile        |   10 ++++++++++
>  arch/arm/cpu/arm926ejs/mxs/u-boot-imx23.bd |    4 ++--
>  arch/arm/cpu/arm926ejs/mxs/u-boot-imx28.bd |    4 ++--

As you'll be processing this '.bd' files with sed, I think naming the
u-boot.imx2[38].bd.in could make it easier to understand when someone
not familiar with the code looks at it.

Just due curiosity how did you find it failed? I did try to build it
with out-of-tree using MAKEALL and had no issues. Is it reproducable
with higher number of parallel tasks?

--
Otavio Salvador                             O.S. Systems
E-mail: otavio@ossystems.com.br  http://www.ossystems.com.br
Mobile: +55 53 9981-7854              http://projetos.ossystems.com.br
Marek Vasut April 28, 2013, 11:02 p.m. UTC | #2
Dear Otavio Salvador,

> On Sun, Apr 28, 2013 at 3:39 PM, Marek Vasut <marex@denx.de> wrote:
> > The u-boot-imx23.bd and u-boot-imx28.bd need to be preprocessed,
> > otherwise they have issues with out-of-tree build where elftosb tool
> > couldn't sometimes find the u-boot.bin and spl/u-boot-spl.bin .
> > 
> > Preprocess these .bd files with sed and insert full path to u-boot.bin
> > and spl/u-boot-spl.bin to prevent this issue. Moreover, to avoid adding
> > more churn into main Makefile, move all this preprocessing and u-boot.sb
> > generation into CPU directory instead.
> > 
> > Signed-off-by: Marek Vasut <marex@denx.de>
> > Cc: Fabio Estevam <fabio.estevam@freescale.com>
> > Cc: Stefano Babic <sbabic@denx.de>
> 
> Please Cc me in 'mxs' patches.
> 
> >  Makefile                                   |    7 ++-----
> >  arch/arm/cpu/arm926ejs/mxs/Makefile        |   10 ++++++++++
> >  arch/arm/cpu/arm926ejs/mxs/u-boot-imx23.bd |    4 ++--
> >  arch/arm/cpu/arm926ejs/mxs/u-boot-imx28.bd |    4 ++--
> 
> As you'll be processing this '.bd' files with sed, I think naming the
> u-boot.imx2[38].bd.in could make it easier to understand when someone
> not familiar with the code looks at it.

Not really, just keep them as they were.

> Just due curiosity how did you find it failed? I did try to build it
> with out-of-tree using MAKEALL and had no issues. Is it reproducable
> with higher number of parallel tasks?

Not sure anymore, I had this fix on my todo so I did it.

Best regards,
Marek Vasut
Otavio Salvador April 28, 2013, 11:08 p.m. UTC | #3
On Sun, Apr 28, 2013 at 8:02 PM, Marek Vasut <marex@denx.de> wrote:
> Dear Otavio Salvador,
>
>> On Sun, Apr 28, 2013 at 3:39 PM, Marek Vasut <marex@denx.de> wrote:
>> > The u-boot-imx23.bd and u-boot-imx28.bd need to be preprocessed,
>> > otherwise they have issues with out-of-tree build where elftosb tool
>> > couldn't sometimes find the u-boot.bin and spl/u-boot-spl.bin .
>> >
>> > Preprocess these .bd files with sed and insert full path to u-boot.bin
>> > and spl/u-boot-spl.bin to prevent this issue. Moreover, to avoid adding
>> > more churn into main Makefile, move all this preprocessing and u-boot.sb
>> > generation into CPU directory instead.
>> >
>> > Signed-off-by: Marek Vasut <marex@denx.de>
>> > Cc: Fabio Estevam <fabio.estevam@freescale.com>
>> > Cc: Stefano Babic <sbabic@denx.de>
>>
>> Please Cc me in 'mxs' patches.
>>
>> >  Makefile                                   |    7 ++-----
>> >  arch/arm/cpu/arm926ejs/mxs/Makefile        |   10 ++++++++++
>> >  arch/arm/cpu/arm926ejs/mxs/u-boot-imx23.bd |    4 ++--
>> >  arch/arm/cpu/arm926ejs/mxs/u-boot-imx28.bd |    4 ++--
>>
>> As you'll be processing this '.bd' files with sed, I think naming the
>> u-boot.imx2[38].bd.in could make it easier to understand when someone
>> not familiar with the code looks at it.
>
> Not really, just keep them as they were.

When doing 'in-tree' build it will end changing the file itself, won't it?

>> Just due curiosity how did you find it failed? I did try to build it
>> with out-of-tree using MAKEALL and had no issues. Is it reproducable
>> with higher number of parallel tasks?
>
> Not sure anymore, I had this fix on my todo so I did it.

Right; no problem. This approach does makes sense, but I'd prefer a '.in' file.

--
Otavio Salvador                             O.S. Systems
E-mail: otavio@ossystems.com.br  http://www.ossystems.com.br
Mobile: +55 53 9981-7854              http://projetos.ossystems.com.br
Marek Vasut April 28, 2013, 11:13 p.m. UTC | #4
Dear Otavio Salvador,

> On Sun, Apr 28, 2013 at 8:02 PM, Marek Vasut <marex@denx.de> wrote:
> > Dear Otavio Salvador,
> > 
> >> On Sun, Apr 28, 2013 at 3:39 PM, Marek Vasut <marex@denx.de> wrote:
> >> > The u-boot-imx23.bd and u-boot-imx28.bd need to be preprocessed,
> >> > otherwise they have issues with out-of-tree build where elftosb tool
> >> > couldn't sometimes find the u-boot.bin and spl/u-boot-spl.bin .
> >> > 
> >> > Preprocess these .bd files with sed and insert full path to u-boot.bin
> >> > and spl/u-boot-spl.bin to prevent this issue. Moreover, to avoid
> >> > adding more churn into main Makefile, move all this preprocessing and
> >> > u-boot.sb generation into CPU directory instead.
> >> > 
> >> > Signed-off-by: Marek Vasut <marex@denx.de>
> >> > Cc: Fabio Estevam <fabio.estevam@freescale.com>
> >> > Cc: Stefano Babic <sbabic@denx.de>
> >> 
> >> Please Cc me in 'mxs' patches.
> >> 
> >> >  Makefile                                   |    7 ++-----
> >> >  arch/arm/cpu/arm926ejs/mxs/Makefile        |   10 ++++++++++
> >> >  arch/arm/cpu/arm926ejs/mxs/u-boot-imx23.bd |    4 ++--
> >> >  arch/arm/cpu/arm926ejs/mxs/u-boot-imx28.bd |    4 ++--
> >> 
> >> As you'll be processing this '.bd' files with sed, I think naming the
> >> u-boot.imx2[38].bd.in could make it easier to understand when someone
> >> not familiar with the code looks at it.
> > 
> > Not really, just keep them as they were.
> 
> When doing 'in-tree' build it will end changing the file itself, won't it?

$OBJTREE/u-boot.bd will be produced, so no, read the patch again.

> >> Just due curiosity how did you find it failed? I did try to build it
> >> with out-of-tree using MAKEALL and had no issues. Is it reproducable
> >> with higher number of parallel tasks?
> > 
> > Not sure anymore, I had this fix on my todo so I did it.
> 
> Right; no problem. This approach does makes sense, but I'd prefer a '.in'
> file.
> 
> --
> Otavio Salvador                             O.S. Systems
> E-mail: otavio@ossystems.com.br  http://www.ossystems.com.br
> Mobile: +55 53 9981-7854              http://projetos.ossystems.com.br

Best regards,
Marek Vasut
Otavio Salvador April 28, 2013, 11:21 p.m. UTC | #5
On Sun, Apr 28, 2013 at 8:13 PM, Marek Vasut <marex@denx.de> wrote:
> Dear Otavio Salvador,
>
>> On Sun, Apr 28, 2013 at 8:02 PM, Marek Vasut <marex@denx.de> wrote:
>> > Dear Otavio Salvador,
>> >
>> >> On Sun, Apr 28, 2013 at 3:39 PM, Marek Vasut <marex@denx.de> wrote:
>> >> > The u-boot-imx23.bd and u-boot-imx28.bd need to be preprocessed,
>> >> > otherwise they have issues with out-of-tree build where elftosb tool
>> >> > couldn't sometimes find the u-boot.bin and spl/u-boot-spl.bin .
>> >> >
>> >> > Preprocess these .bd files with sed and insert full path to u-boot.bin
>> >> > and spl/u-boot-spl.bin to prevent this issue. Moreover, to avoid
>> >> > adding more churn into main Makefile, move all this preprocessing and
>> >> > u-boot.sb generation into CPU directory instead.
>> >> >
>> >> > Signed-off-by: Marek Vasut <marex@denx.de>
>> >> > Cc: Fabio Estevam <fabio.estevam@freescale.com>
>> >> > Cc: Stefano Babic <sbabic@denx.de>
>> >>
>> >> Please Cc me in 'mxs' patches.
>> >>
>> >> >  Makefile                                   |    7 ++-----
>> >> >  arch/arm/cpu/arm926ejs/mxs/Makefile        |   10 ++++++++++
>> >> >  arch/arm/cpu/arm926ejs/mxs/u-boot-imx23.bd |    4 ++--
>> >> >  arch/arm/cpu/arm926ejs/mxs/u-boot-imx28.bd |    4 ++--
>> >>
>> >> As you'll be processing this '.bd' files with sed, I think naming the
>> >> u-boot.imx2[38].bd.in could make it easier to understand when someone
>> >> not familiar with the code looks at it.
>> >
>> > Not really, just keep them as they were.
>>
>> When doing 'in-tree' build it will end changing the file itself, won't it?
>
> $OBJTREE/u-boot.bd will be produced, so no, read the patch again.

You're right however, please add the u-boot.bd to .gitignore or it is
listed in git status after build.

>> >> Just due curiosity how did you find it failed? I did try to build it
>> >> with out-of-tree using MAKEALL and had no issues. Is it reproducable
>> >> with higher number of parallel tasks?
>> >
>> > Not sure anymore, I had this fix on my todo so I did it.
>>
>> Right; no problem. This approach does makes sense, but I'd prefer a '.in'
>> file.
>>
>> --
>> Otavio Salvador                             O.S. Systems
>> E-mail: otavio@ossystems.com.br  http://www.ossystems.com.br
>> Mobile: +55 53 9981-7854              http://projetos.ossystems.com.br
>
> Best regards,
> Marek Vasut



--
Otavio Salvador                             O.S. Systems
E-mail: otavio@ossystems.com.br  http://www.ossystems.com.br
Mobile: +55 53 9981-7854              http://projetos.ossystems.com.br
diff mbox

Patch

diff --git a/Makefile b/Makefile
index f8ecfd7..5338924 100644
--- a/Makefile
+++ b/Makefile
@@ -512,13 +512,9 @@  $(obj)u-boot.ais:       $(obj)spl/u-boot-spl.bin $(obj)u-boot.img
 		cat $(obj)spl/u-boot-spl-pad.ais $(obj)u-boot.img > \
 			$(obj)u-boot.ais
 
-# Specify the target for use in elftosb call
-ELFTOSB_TARGET-$(CONFIG_MX23) = imx23
-ELFTOSB_TARGET-$(CONFIG_MX28) = imx28
 
 $(obj)u-boot.sb:       $(obj)u-boot.bin $(obj)spl/u-boot-spl.bin
-		elftosb -zf $(ELFTOSB_TARGET-y) -c $(TOPDIR)/$(CPUDIR)/$(SOC)/u-boot-$(ELFTOSB_TARGET-y).bd \
-			-o $(obj)u-boot.sb
+		$(MAKE) -C $(SRCTREE)/$(CPUDIR)/$(SOC)/ $(OBJTREE)/u-boot.sb
 
 # On x600 (SPEAr600) U-Boot is appended to U-Boot SPL.
 # Both images are created using mkimage (crc etc), so that the ROM
@@ -861,6 +857,7 @@  clobber:	tidy
 	@rm -f $(obj)u-boot.ais
 	@rm -f $(obj)u-boot.dtb
 	@rm -f $(obj)u-boot.sb
+	@rm -f $(obj)u-boot.bd
 	@rm -f $(obj)u-boot.spr
 	@rm -f $(obj)nand_spl/{u-boot.{lds,lst},System.map}
 	@rm -f $(obj)nand_spl/{u-boot-nand_spl.lds,u-boot-spl,u-boot-spl.map}
diff --git a/arch/arm/cpu/arm926ejs/mxs/Makefile b/arch/arm/cpu/arm926ejs/mxs/Makefile
index eeecf89..038c1c1 100644
--- a/arch/arm/cpu/arm926ejs/mxs/Makefile
+++ b/arch/arm/cpu/arm926ejs/mxs/Makefile
@@ -40,6 +40,16 @@  all:	$(obj).depend $(LIB)
 $(LIB):	$(OBJS)
 	$(call cmd_link_o_target, $(OBJS))
 
+# Specify the target for use in elftosb call
+ELFTOSB_TARGET-$(CONFIG_MX23) = imx23
+ELFTOSB_TARGET-$(CONFIG_MX28) = imx28
+
+$(OBJTREE)/u-boot.bd: $(SRCTREE)/$(CPUDIR)/$(SOC)/u-boot-$(ELFTOSB_TARGET-y).bd
+	sed "s@OBJTREE@$(OBJTREE)@g" $^ > $@
+
+$(OBJTREE)/u-boot.sb: $(OBJTREE)/u-boot.bin $(OBJTREE)/spl/u-boot-spl.bin $(OBJTREE)/u-boot.bd
+		elftosb -zf $(ELFTOSB_TARGET-y) -c $(OBJTREE)/u-boot.bd -o $(OBJTREE)/u-boot.sb
+
 #########################################################################
 
 # defines $(obj).depend target
diff --git a/arch/arm/cpu/arm926ejs/mxs/u-boot-imx23.bd b/arch/arm/cpu/arm926ejs/mxs/u-boot-imx23.bd
index 3a51879..8b6c30e 100644
--- a/arch/arm/cpu/arm926ejs/mxs/u-boot-imx23.bd
+++ b/arch/arm/cpu/arm926ejs/mxs/u-boot-imx23.bd
@@ -4,8 +4,8 @@  options {
 }
 
 sources {
-	u_boot_spl="spl/u-boot-spl.bin";
-	u_boot="u-boot.bin";
+	u_boot_spl="OBJTREE/spl/u-boot-spl.bin";
+	u_boot="OBJTREE/u-boot.bin";
 }
 
 section (0) {
diff --git a/arch/arm/cpu/arm926ejs/mxs/u-boot-imx28.bd b/arch/arm/cpu/arm926ejs/mxs/u-boot-imx28.bd
index c60615a..a5fa648 100644
--- a/arch/arm/cpu/arm926ejs/mxs/u-boot-imx28.bd
+++ b/arch/arm/cpu/arm926ejs/mxs/u-boot-imx28.bd
@@ -1,6 +1,6 @@ 
 sources {
-	u_boot_spl="spl/u-boot-spl.bin";
-	u_boot="u-boot.bin";
+	u_boot_spl="OBJTREE/spl/u-boot-spl.bin";
+	u_boot="OBJTREE/u-boot.bin";
 }
 
 section (0) {