U-Boot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] spl: unbreak CONFIG_SPL_MULTI_DTB_FIT after fixing CONFIG_OF_EMBED
@ 2018-01-10 14:10 Goldschmidt Simon
  2018-01-11  8:33 ` Lokesh Vutla
  0 siblings, 1 reply; 7+ messages in thread
From: Goldschmidt Simon @ 2018-01-10 14:10 UTC (permalink / raw)
  To: u-boot

On Wed, 10/01/18 09:48, Lokesh Vutla wrote:
> On Wednesday 10 January 2018 12:32 PM, Goldschmidt Simon wrote:
> > Commit 9bd76b80 "spl: make CONFIG_OF_EMBED pass dts through fdtgrep"
> > moved the fdtgrep code from scripts/Makefile.spl to dts/Makefile so
> > that the dtb is stripped in embedded mode, too.
> >
> > This broke CONFIG_SPL_MULTI_DTB_FIT where fdtgrep is still called from
> > scripts/Makefile.spl to strip all dtbs in CONFIG_SPL_OF_LIST.
> > To fix that, cmd_fdtgrep is brought back into scripts/Makefile.spl at
> > the downside of having it duplicated in two makefiles.
> 
> Missing Signed-off-by? Also a Reported-by credits would be nice :)

Right. I'll add that in a next version, sorry.

> 
> > ---
> >  scripts/Makefile.spl | 16 ++++++++++++++++
> >  1 file changed, 16 insertions(+)
> >
> > diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl index
> > 64390e5785..72e74f14c3 100644
> > --- a/scripts/Makefile.spl
> > +++ b/scripts/Makefile.spl
> > @@ -239,6 +239,22 @@ $(obj)/$(SPL_BIN)-pad.bin: $(obj)/$(SPL_BIN)
> >  	@bss_size_str=$(shell $(NM) $< | awk 'BEGIN {size = 0} /__bss_size/ {size
> = $$1} END {print "ibase=16; " toupper(size)}' | bc); \
> >  	dd if=/dev/zero of=$@ bs=1 count=$${bss_size_str} 2>/dev/null;
> >
> > +# Pass the original device tree file through fdtgrep twice. The first
> > +pass # removes any unwanted nodes (i.e. those which don't have the #
> > +'u-boot,dm-pre-reloc' property and thus are not needed by SPL. The
> > +second # pass removes various unused properties from the remaining nodes.
> > +# The output is typically a much smaller device tree file.
> > +ifeq ($(CONFIG_TPL_BUILD),y)
> > +fdtgrep_props := -b u-boot,dm-pre-reloc -b u-boot,dm-tpl else
> > +fdtgrep_props := -b u-boot,dm-pre-reloc -b u-boot,dm-spl endif
> > +quiet_cmd_fdtgrep = FDTGREP $@
> > +      cmd_fdtgrep = $(objtree)/tools/fdtgrep $(fdtgrep_props) -RT $< \
> > +		-n /chosen -n /config -O dtb | \
> > +	$(objtree)/tools/fdtgrep -r -O dtb - -o $@ \
> > +		$(addprefix -P ,$(subst
> $\",,$(CONFIG_OF_SPL_REMOVE_PROPS)))
> > +
> 
> hmm..we are duplicating code here. Why can't dtb build for
> CONFIG_OF_EMBED be moved to scripts/Makefile.spl?

I don't like the code duplication either. Back in November, I tried
to create the fdtgrep'ed ftd from Makefile.spl but failed. Seems I'm
not a pro in makefiles... Of course I'd appreciate it if you'd find
a solution for that!

Regards,
Simon

^ permalink raw reply	[flat|nested] 7+ messages in thread
* [U-Boot] [PATCH] spl: unbreak CONFIG_SPL_MULTI_DTB_FIT after fixing CONFIG_OF_EMBED
@ 2018-01-10  7:02 Goldschmidt Simon
  2018-01-10  8:48 ` Lokesh Vutla
  0 siblings, 1 reply; 7+ messages in thread
From: Goldschmidt Simon @ 2018-01-10  7:02 UTC (permalink / raw)
  To: u-boot

Commit 9bd76b80 "spl: make CONFIG_OF_EMBED pass dts through fdtgrep"
moved the fdtgrep code from scripts/Makefile.spl to dts/Makefile so
that the dtb is stripped in embedded mode, too.

This broke CONFIG_SPL_MULTI_DTB_FIT where fdtgrep is still called
from scripts/Makefile.spl to strip all dtbs in CONFIG_SPL_OF_LIST.
To fix that, cmd_fdtgrep is brought back into scripts/Makefile.spl
at the downside of having it duplicated in two makefiles.
---
 scripts/Makefile.spl | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl
index 64390e5785..72e74f14c3 100644
--- a/scripts/Makefile.spl
+++ b/scripts/Makefile.spl
@@ -239,6 +239,22 @@ $(obj)/$(SPL_BIN)-pad.bin: $(obj)/$(SPL_BIN)
 	@bss_size_str=$(shell $(NM) $< | awk 'BEGIN {size = 0} /__bss_size/ {size = $$1} END {print "ibase=16; " toupper(size)}' | bc); \
 	dd if=/dev/zero of=$@ bs=1 count=$${bss_size_str} 2>/dev/null;
 
+# Pass the original device tree file through fdtgrep twice. The first pass
+# removes any unwanted nodes (i.e. those which don't have the
+# 'u-boot,dm-pre-reloc' property and thus are not needed by SPL. The second
+# pass removes various unused properties from the remaining nodes.
+# The output is typically a much smaller device tree file.
+ifeq ($(CONFIG_TPL_BUILD),y)
+fdtgrep_props := -b u-boot,dm-pre-reloc -b u-boot,dm-tpl
+else
+fdtgrep_props := -b u-boot,dm-pre-reloc -b u-boot,dm-spl
+endif
+quiet_cmd_fdtgrep = FDTGREP $@
+      cmd_fdtgrep = $(objtree)/tools/fdtgrep $(fdtgrep_props) -RT $< \
+		-n /chosen -n /config -O dtb | \
+	$(objtree)/tools/fdtgrep -r -O dtb - -o $@ \
+		$(addprefix -P ,$(subst $\",,$(CONFIG_OF_SPL_REMOVE_PROPS)))
+
 $(obj)/$(SPL_BIN).dtb: dts/dt-spl.dtb FORCE
 	$(call if_changed,copy)
 
-- 
2.12.2.windows.2

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2018-01-15  6:57 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-01-10 14:10 [U-Boot] [PATCH] spl: unbreak CONFIG_SPL_MULTI_DTB_FIT after fixing CONFIG_OF_EMBED Goldschmidt Simon
2018-01-11  8:33 ` Lokesh Vutla
2018-01-11 15:55   ` Simon Glass
2018-01-11 16:20     ` Tom Rini
2018-01-15  6:57       ` Simon Goldschmidt
  -- strict thread matches above, loose matches on Subject: below --
2018-01-10  7:02 Goldschmidt Simon
2018-01-10  8:48 ` Lokesh Vutla

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox