Message ID | 1475627140-8617-9-git-send-email-sjg@chromium.org |
---|---|
State | Superseded |
Delegated to: | Tom Rini |
Headers | show |
2016-10-05 9:25 GMT+09:00 Simon Glass <sjg@chromium.org>: > For boards that need U-Boot-specific additions to the device tree, it is > a minor annoyance to have to add these each time the tree is synced with > upstream. > > Add a means to include a file (e.g. u-boot.dtsi) automatically into the .dts > file before it is compiled. > > The file uses is the first one that exists in this list: > > arch/<arch>/dts/<board.dts>-u-boot.dtsi > arch/<arch>/dts/<cpu>-u-boot.dtsi > arch/<arch>/dts/<vendor>-u-boot.dtsi > arch/<arch>/dts/u-boot.dtsi > > Signed-off-by: Simon Glass <sjg@chromium.org> > Suggested-by: Tom Rini <trini@konsulko.com> > --- > > Changes in v3: > - Add a new patch to automatically include a U-Boot .dtsi file > > Changes in v2: None > > scripts/Makefile.lib | 15 ++++++++++++++- > 1 file changed, 14 insertions(+), 1 deletion(-) > > diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib > index 2539ba5..b414a0c 100644 > --- a/scripts/Makefile.lib > +++ b/scripts/Makefile.lib > @@ -164,6 +164,17 @@ cpp_flags = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(UBOOTINCLUDE) \ > > ld_flags = $(LDFLAGS) $(ldflags-y) > > +dts_dir = $(srctree)/arch/$(ARCH)/dts > + > +# Try these files in order to find the U-Boot-specific .dtsi include file > +binman_dtsi_options = $(wildcard $(dts_dir)/$(basename $(notdir $<))-u-boot.dtsi) \ > + $(wildcard $(dts_dir)/$(subst $\",,$(CONFIG_SYS_CPU))-u-boot.dtsi) \ > + $(wildcard $(dts_dir)/$(subst $\",,$(CONFIG_SYS_VENDOR))-u-boot.dtsi) \ > + $(wildcard $(dts_dir)/u-boot.dtsi) > + > +# We use the first match > +binman_dtsi = $(firstword $(binman_dtsi_options)) > + I do not think this feature is binman-specific. Perhaps u_boot_dtsi? We are already suffering from U-Boot specific properties like "u-boot,dm-pre-reloc", which make it difficult to simply copy DT files from the kernel tree. So, my first guess was this feature might be useful to split such properties out to *-u-boot.dtsi. (it is a trade-off of more and more DT files, though.)
Hi Masahiro, On 4 October 2016 at 21:51, Masahiro Yamada <yamada.masahiro@socionext.com> wrote: > > 2016-10-05 9:25 GMT+09:00 Simon Glass <sjg@chromium.org>: > > For boards that need U-Boot-specific additions to the device tree, it is > > a minor annoyance to have to add these each time the tree is synced with > > upstream. > > > > Add a means to include a file (e.g. u-boot.dtsi) automatically into the .dts > > file before it is compiled. > > > > The file uses is the first one that exists in this list: > > > > arch/<arch>/dts/<board.dts>-u-boot.dtsi > > arch/<arch>/dts/<cpu>-u-boot.dtsi > > arch/<arch>/dts/<vendor>-u-boot.dtsi > > arch/<arch>/dts/u-boot.dtsi > > > > Signed-off-by: Simon Glass <sjg@chromium.org> > > Suggested-by: Tom Rini <trini@konsulko.com> > > --- > > > > Changes in v3: > > - Add a new patch to automatically include a U-Boot .dtsi file > > > > Changes in v2: None > > > > scripts/Makefile.lib | 15 ++++++++++++++- > > 1 file changed, 14 insertions(+), 1 deletion(-) > > > > diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib > > index 2539ba5..b414a0c 100644 > > --- a/scripts/Makefile.lib > > +++ b/scripts/Makefile.lib > > @@ -164,6 +164,17 @@ cpp_flags = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(UBOOTINCLUDE) \ > > > > ld_flags = $(LDFLAGS) $(ldflags-y) > > > > +dts_dir = $(srctree)/arch/$(ARCH)/dts > > + > > +# Try these files in order to find the U-Boot-specific .dtsi include file > > +binman_dtsi_options = $(wildcard $(dts_dir)/$(basename $(notdir $<))-u-boot.dtsi) \ > > + $(wildcard $(dts_dir)/$(subst $\",,$(CONFIG_SYS_CPU))-u-boot.dtsi) \ > > + $(wildcard $(dts_dir)/$(subst $\",,$(CONFIG_SYS_VENDOR))-u-boot.dtsi) \ > > + $(wildcard $(dts_dir)/u-boot.dtsi) > > + > > +# We use the first match > > +binman_dtsi = $(firstword $(binman_dtsi_options)) > > + > > > I do not think this feature is binman-specific. > > Perhaps u_boot_dtsi? > > We are already suffering from U-Boot specific properties like > "u-boot,dm-pre-reloc", which make it difficult to > simply copy DT files from the kernel tree. > So, my first guess was this feature might be useful > to split such properties out to *-u-boot.dtsi. > (it is a trade-off of more and more DT files, though.) Yes that was Tom's intent. True, it is not binman-specific and I'm happy to change the variable, but let's see if this solves the problem first. Regards, Simon
On Mittwoch, 5. Oktober 2016 10:51:04 CEST Simon Glass wrote: > Hi Masahiro, > > On 4 October 2016 at 21:51, Masahiro Yamada > > > > We are already suffering from U-Boot specific properties like > > "u-boot,dm-pre-reloc", which make it difficult to > > simply copy DT files from the kernel tree. > > So, my first guess was this feature might be useful > > to split such properties out to *-u-boot.dtsi. > > (it is a trade-off of more and more DT files, though.) > > Yes that was Tom's intent. True, it is not binman-specific and I'm > happy to change the variable, but let's see if this solves the problem > first. Is it possible to use a device tree overlay for this? Kind regards, Stefan
On Wed, Oct 05, 2016 at 10:51:04AM -0600, Simon Glass wrote: > Hi Masahiro, > > On 4 October 2016 at 21:51, Masahiro Yamada > <yamada.masahiro@socionext.com> wrote: > > > > 2016-10-05 9:25 GMT+09:00 Simon Glass <sjg@chromium.org>: > > > For boards that need U-Boot-specific additions to the device tree, it is > > > a minor annoyance to have to add these each time the tree is synced with > > > upstream. > > > > > > Add a means to include a file (e.g. u-boot.dtsi) automatically into the .dts > > > file before it is compiled. > > > > > > The file uses is the first one that exists in this list: > > > > > > arch/<arch>/dts/<board.dts>-u-boot.dtsi > > > arch/<arch>/dts/<cpu>-u-boot.dtsi > > > arch/<arch>/dts/<vendor>-u-boot.dtsi > > > arch/<arch>/dts/u-boot.dtsi > > > > > > Signed-off-by: Simon Glass <sjg@chromium.org> > > > Suggested-by: Tom Rini <trini@konsulko.com> > > > --- > > > > > > Changes in v3: > > > - Add a new patch to automatically include a U-Boot .dtsi file > > > > > > Changes in v2: None > > > > > > scripts/Makefile.lib | 15 ++++++++++++++- > > > 1 file changed, 14 insertions(+), 1 deletion(-) > > > > > > diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib > > > index 2539ba5..b414a0c 100644 > > > --- a/scripts/Makefile.lib > > > +++ b/scripts/Makefile.lib > > > @@ -164,6 +164,17 @@ cpp_flags = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(UBOOTINCLUDE) \ > > > > > > ld_flags = $(LDFLAGS) $(ldflags-y) > > > > > > +dts_dir = $(srctree)/arch/$(ARCH)/dts > > > + > > > +# Try these files in order to find the U-Boot-specific .dtsi include file > > > +binman_dtsi_options = $(wildcard $(dts_dir)/$(basename $(notdir $<))-u-boot.dtsi) \ > > > + $(wildcard $(dts_dir)/$(subst $\",,$(CONFIG_SYS_CPU))-u-boot.dtsi) \ > > > + $(wildcard $(dts_dir)/$(subst $\",,$(CONFIG_SYS_VENDOR))-u-boot.dtsi) \ > > > + $(wildcard $(dts_dir)/u-boot.dtsi) > > > + > > > +# We use the first match > > > +binman_dtsi = $(firstword $(binman_dtsi_options)) > > > + > > > > > > I do not think this feature is binman-specific. > > > > Perhaps u_boot_dtsi? > > > > We are already suffering from U-Boot specific properties like > > "u-boot,dm-pre-reloc", which make it difficult to > > simply copy DT files from the kernel tree. > > So, my first guess was this feature might be useful > > to split such properties out to *-u-boot.dtsi. > > (it is a trade-off of more and more DT files, though.) > > Yes that was Tom's intent. True, it is not binman-specific and I'm > happy to change the variable, but let's see if this solves the problem > first. It certainly looks like it, thanks! Perhaps a 11/10 patch to migrate some platforms u-boot,dm-pre-reloc flags? :)
Hi Tom, On 5 October 2016 at 20:04, Tom Rini <trini@konsulko.com> wrote: > On Wed, Oct 05, 2016 at 10:51:04AM -0600, Simon Glass wrote: >> Hi Masahiro, >> >> On 4 October 2016 at 21:51, Masahiro Yamada >> <yamada.masahiro@socionext.com> wrote: >> > >> > 2016-10-05 9:25 GMT+09:00 Simon Glass <sjg@chromium.org>: >> > > For boards that need U-Boot-specific additions to the device tree, it is >> > > a minor annoyance to have to add these each time the tree is synced with >> > > upstream. >> > > >> > > Add a means to include a file (e.g. u-boot.dtsi) automatically into the .dts >> > > file before it is compiled. >> > > >> > > The file uses is the first one that exists in this list: >> > > >> > > arch/<arch>/dts/<board.dts>-u-boot.dtsi >> > > arch/<arch>/dts/<cpu>-u-boot.dtsi >> > > arch/<arch>/dts/<vendor>-u-boot.dtsi >> > > arch/<arch>/dts/u-boot.dtsi >> > > >> > > Signed-off-by: Simon Glass <sjg@chromium.org> >> > > Suggested-by: Tom Rini <trini@konsulko.com> >> > > --- >> > > >> > > Changes in v3: >> > > - Add a new patch to automatically include a U-Boot .dtsi file >> > > >> > > Changes in v2: None >> > > >> > > scripts/Makefile.lib | 15 ++++++++++++++- >> > > 1 file changed, 14 insertions(+), 1 deletion(-) >> > > >> > > diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib >> > > index 2539ba5..b414a0c 100644 >> > > --- a/scripts/Makefile.lib >> > > +++ b/scripts/Makefile.lib >> > > @@ -164,6 +164,17 @@ cpp_flags = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(UBOOTINCLUDE) \ >> > > >> > > ld_flags = $(LDFLAGS) $(ldflags-y) >> > > >> > > +dts_dir = $(srctree)/arch/$(ARCH)/dts >> > > + >> > > +# Try these files in order to find the U-Boot-specific .dtsi include file >> > > +binman_dtsi_options = $(wildcard $(dts_dir)/$(basename $(notdir $<))-u-boot.dtsi) \ >> > > + $(wildcard $(dts_dir)/$(subst $\",,$(CONFIG_SYS_CPU))-u-boot.dtsi) \ >> > > + $(wildcard $(dts_dir)/$(subst $\",,$(CONFIG_SYS_VENDOR))-u-boot.dtsi) \ >> > > + $(wildcard $(dts_dir)/u-boot.dtsi) >> > > + >> > > +# We use the first match >> > > +binman_dtsi = $(firstword $(binman_dtsi_options)) >> > > + >> > >> > >> > I do not think this feature is binman-specific. >> > >> > Perhaps u_boot_dtsi? >> > >> > We are already suffering from U-Boot specific properties like >> > "u-boot,dm-pre-reloc", which make it difficult to >> > simply copy DT files from the kernel tree. >> > So, my first guess was this feature might be useful >> > to split such properties out to *-u-boot.dtsi. >> > (it is a trade-off of more and more DT files, though.) >> >> Yes that was Tom's intent. True, it is not binman-specific and I'm >> happy to change the variable, but let's see if this solves the problem >> first. > > It certainly looks like it, thanks! Perhaps a 11/10 patch to migrate > some platforms u-boot,dm-pre-reloc flags? :) OK I have done this for tegra and it seems to work fine. Regard, Simon
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 2539ba5..b414a0c 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -164,6 +164,17 @@ cpp_flags = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(UBOOTINCLUDE) \ ld_flags = $(LDFLAGS) $(ldflags-y) +dts_dir = $(srctree)/arch/$(ARCH)/dts + +# Try these files in order to find the U-Boot-specific .dtsi include file +binman_dtsi_options = $(wildcard $(dts_dir)/$(basename $(notdir $<))-u-boot.dtsi) \ + $(wildcard $(dts_dir)/$(subst $\",,$(CONFIG_SYS_CPU))-u-boot.dtsi) \ + $(wildcard $(dts_dir)/$(subst $\",,$(CONFIG_SYS_VENDOR))-u-boot.dtsi) \ + $(wildcard $(dts_dir)/u-boot.dtsi) + +# We use the first match +binman_dtsi = $(firstword $(binman_dtsi_options)) + # Modified for U-Boot dtc_cpp_flags = -Wp,-MD,$(depfile).pre.tmp -nostdinc \ -I$(srctree)/arch/$(ARCH)/dts \ @@ -293,8 +304,10 @@ $(obj)/%.dtb.S: $(obj)/%.dtb quiet_cmd_dtc = DTC $@ # Modified for U-Boot +# Bring in any U-Boot-specific include after the '/dts-v1/;' header cmd_dtc = mkdir -p $(dir ${dtc-tmp}) ; \ - $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \ + cat $< $(if $(binman_dtsi),| sed '/dts-v1/a\#include \"$(binman_dtsi)\"') | \ + $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) - ; \ $(DTC) -O dtb -o $@ -b 0 \ -i $(dir $<) $(DTC_FLAGS) \ -d $(depfile).dtc.tmp $(dtc-tmp) ; \
For boards that need U-Boot-specific additions to the device tree, it is a minor annoyance to have to add these each time the tree is synced with upstream. Add a means to include a file (e.g. u-boot.dtsi) automatically into the .dts file before it is compiled. The file uses is the first one that exists in this list: arch/<arch>/dts/<board.dts>-u-boot.dtsi arch/<arch>/dts/<cpu>-u-boot.dtsi arch/<arch>/dts/<vendor>-u-boot.dtsi arch/<arch>/dts/u-boot.dtsi Signed-off-by: Simon Glass <sjg@chromium.org> Suggested-by: Tom Rini <trini@konsulko.com> --- Changes in v3: - Add a new patch to automatically include a U-Boot .dtsi file Changes in v2: None scripts/Makefile.lib | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-)