Message ID | 20200108213833.10869-1-agust@denx.de |
---|---|
State | New |
Headers | show |
Series | [1/2] dts: add property removal option CONFIG_OF_REMOVE_PROPS | expand |
On Wed, Jan 08, 2020 at 10:38:32PM +0100, Anatolij Gustschin wrote: > This can be used for device tree size reduction similar as > CONFIG_OF_SPL_REMOVE_PROPS option. For tbs2910 board this > shrinks the image size: all -2304.0 bss -16.0 text -2288.0 > > Signed-off-by: Anatolij Gustschin <agust at denx.de> Reviewed-by: Tom Rini <trini at konsulko.com>
On Wed, Jan 08, 2020 at 10:38:32PM +0100, Anatolij Gustschin wrote: > This can be used for device tree size reduction similar as > CONFIG_OF_SPL_REMOVE_PROPS option. For tbs2910 board this > shrinks the image size: all -2304.0 bss -16.0 text -2288.0 > > Signed-off-by: Anatolij Gustschin <agust at denx.de> > --- > dts/Kconfig | 8 ++++++++ > scripts/Makefile.lib | 3 ++- > 2 files changed, 10 insertions(+), 1 deletion(-) > > diff --git a/dts/Kconfig b/dts/Kconfig > index 64c98dd723..49224bee93 100644 > --- a/dts/Kconfig > +++ b/dts/Kconfig > @@ -311,6 +311,14 @@ config OF_SPL_REMOVE_PROPS > can be discarded. This option defines the list of properties to > discard. > > +config OF_REMOVE_PROPS > + string "List of device tree properties to drop" > + depends on OF_CONTROL > + default "interrupt-parent interrupts" if PINCTRL > + help > + Some properties are not used by U-Boot and can be discarded. > + This option defines the list of properties to discard. > + > config SPL_OF_PLATDATA > bool "Generate platform data for use in SPL" > depends on SPL_OF_CONTROL > diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib > index 4ea898a421..3b124369ad 100644 > --- a/scripts/Makefile.lib > +++ b/scripts/Makefile.lib > @@ -235,7 +235,8 @@ $(obj)/%.tab.h: $(src)/%.y FORCE > # =========================================================================== > > quiet_cmd_shipped = SHIPPED $@ > -cmd_shipped = cat $< > $@ > +cmd_shipped = cat $< | $(objtree)/tools/fdtgrep -r -O dtb - -o $@ \ > + $(addprefix -P ,$(subst $\",,$(CONFIG_OF_REMOVE_PROPS))) > > $(obj)/%: $(src)/%_shipped > $(call cmd,shipped) On further thinking, this will make it harder in the case of passing the DTB directly to the kernel. We should guard this option by something else first.
On Sat, Jan 11, 2020 at 1:39 AM Tom Rini <trini at konsulko.com> wrote: > > On Wed, Jan 08, 2020 at 10:38:32PM +0100, Anatolij Gustschin wrote: > > > This can be used for device tree size reduction similar as > > CONFIG_OF_SPL_REMOVE_PROPS option. For tbs2910 board this > > shrinks the image size: all -2304.0 bss -16.0 text -2288.0 > > > > Signed-off-by: Anatolij Gustschin <agust at denx.de> > > --- > > dts/Kconfig | 8 ++++++++ > > scripts/Makefile.lib | 3 ++- > > 2 files changed, 10 insertions(+), 1 deletion(-) > > > > diff --git a/dts/Kconfig b/dts/Kconfig > > index 64c98dd723..49224bee93 100644 > > --- a/dts/Kconfig > > +++ b/dts/Kconfig > > @@ -311,6 +311,14 @@ config OF_SPL_REMOVE_PROPS > > can be discarded. This option defines the list of properties to > > discard. > > > > +config OF_REMOVE_PROPS > > + string "List of device tree properties to drop" > > + depends on OF_CONTROL > > + default "interrupt-parent interrupts" if PINCTRL > > + help > > + Some properties are not used by U-Boot and can be discarded. > > + This option defines the list of properties to discard. > > + > > config SPL_OF_PLATDATA > > bool "Generate platform data for use in SPL" > > depends on SPL_OF_CONTROL > > diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib > > index 4ea898a421..3b124369ad 100644 > > --- a/scripts/Makefile.lib > > +++ b/scripts/Makefile.lib > > @@ -235,7 +235,8 @@ $(obj)/%.tab.h: $(src)/%.y FORCE > > # =========================================================================== > > > > quiet_cmd_shipped = SHIPPED $@ > > -cmd_shipped = cat $< > $@ > > +cmd_shipped = cat $< | $(objtree)/tools/fdtgrep -r -O dtb - -o $@ \ > > + $(addprefix -P ,$(subst $\",,$(CONFIG_OF_REMOVE_PROPS))) > > > > $(obj)/%: $(src)/%_shipped > > $(call cmd,shipped) > > On further thinking, this will make it harder in the case of passing the > DTB directly to the kernel. We should guard this option by something > else first. > > -- > Tom More importantly, this patch breaks targets that compile pylibfdt, for example, qemu-x86_defconfig. $ make qemu-x86_defconfig HOSTCC scripts/basic/fixdep HOSTCC scripts/kconfig/conf.o YACC scripts/kconfig/zconf.tab.c LEX scripts/kconfig/zconf.lex.c HOSTCC scripts/kconfig/zconf.tab.o HOSTLD scripts/kconfig/conf # # configuration written to .config # masahiro at grover:~/ref/u-boot$ make scripts/kconfig/conf --syncconfig Kconfig CHK include/config.h UPD include/config.h CFG u-boot.cfg GEN include/autoconf.mk GEN include/autoconf.mk.dep CHK include/config/uboot.release UPD include/config/uboot.release CHK include/generated/version_autogenerated.h UPD include/generated/version_autogenerated.h CHK include/generated/timestamp_autogenerated.h UPD include/generated/timestamp_autogenerated.h CC lib/asm-offsets.s CHK include/generated/generic-asm-offsets.h UPD include/generated/generic-asm-offsets.h CC arch/x86/lib/asm-offsets.s CHK include/generated/asm-offsets.h UPD include/generated/asm-offsets.h SHIPPED scripts/dtc/pylibfdt/libfdt.i /bin/sh: 1: ./tools/fdtgrep: not found make[3]: *** [scripts/Makefile.lib:242: scripts/dtc/pylibfdt/libfdt.i] Error 127 make[2]: *** [scripts/Makefile.build:432: scripts/dtc/pylibfdt] Error 2 make[1]: *** [scripts/Makefile.build:432: scripts/dtc] Error 2 make: *** [Makefile:551: scripts] Error 2 Please do not touch cmd_shipped. If this feature is desired, please implement it in dts/Makefile.
Hi Tom, On Sat, Jan 11, 2020 at 1:39 AM Tom Rini <trini at konsulko.com> wrote: > > quiet_cmd_shipped = SHIPPED $@ > > -cmd_shipped = cat $< > $@ > > +cmd_shipped = cat $< | $(objtree)/tools/fdtgrep -r -O dtb - -o $@ \ > > + $(addprefix -P ,$(subst $\",,$(CONFIG_OF_REMOVE_PROPS))) > > > > $(obj)/%: $(src)/%_shipped > > $(call cmd,shipped) > > On further thinking, this will make it harder in the case of passing the > DTB directly to the kernel. We should guard this option by something > else first. Please let me ask a question about this. In my understanding, U-Boot DTB is a different instance from the DTB passed to the kernel. Was it changed, or is the change planned? -- Best Regards Masahiro Yamada
On Sat, Jan 11, 2020 at 04:13:02AM +0900, Masahiro Yamada wrote: > Hi Tom, > > On Sat, Jan 11, 2020 at 1:39 AM Tom Rini <trini at konsulko.com> wrote: > > > > quiet_cmd_shipped = SHIPPED $@ > > > -cmd_shipped = cat $< > $@ > > > +cmd_shipped = cat $< | $(objtree)/tools/fdtgrep -r -O dtb - -o $@ \ > > > + $(addprefix -P ,$(subst $\",,$(CONFIG_OF_REMOVE_PROPS))) > > > > > > $(obj)/%: $(src)/%_shipped > > > $(call cmd,shipped) > > > > On further thinking, this will make it harder in the case of passing the > > DTB directly to the kernel. We should guard this option by something > > else first. > > Please let me ask a question about this. > In my understanding, U-Boot DTB is a different instance > from the DTB passed to the kernel. > Was it changed, or is the change planned? For a long time now I believe we've had some platforms that wanted to be passed, and pass on again, a single DTB. There's also been boards that have wanted to (or have been) passing what we have on. We also have the case of platforms that more constrained and so stripping information out of the DTB for U-Boot, and continuing to load the kernel DTB from somewhere else, is what they need and want.
On Fri, 10 Jan 2020 11:39:45 -0500 Tom Rini trini at konsulko.com wrote: ... > > quiet_cmd_shipped = SHIPPED $@ > > -cmd_shipped = cat $< > $@ > > +cmd_shipped = cat $< | $(objtree)/tools/fdtgrep -r -O dtb - -o $@ \ > > + $(addprefix -P ,$(subst $\",,$(CONFIG_OF_REMOVE_PROPS))) > > > > $(obj)/%: $(src)/%_shipped > > $(call cmd,shipped) > > On further thinking, this will make it harder in the case of passing the > DTB directly to the kernel. We should guard this option by something > else first. Agreed, I'll make it optional in patch v2. -- Anatolij
On Sat, 11 Jan 2020 02:01:27 +0900 Masahiro Yamada masahiroy at kernel.org wrote: ... > UPD include/generated/asm-offsets.h > SHIPPED scripts/dtc/pylibfdt/libfdt.i > /bin/sh: 1: ./tools/fdtgrep: not found > make[3]: *** [scripts/Makefile.lib:242: scripts/dtc/pylibfdt/libfdt.i] Error 127 > make[2]: *** [scripts/Makefile.build:432: scripts/dtc/pylibfdt] Error 2 > make[1]: *** [scripts/Makefile.build:432: scripts/dtc] Error 2 > make: *** [Makefile:551: scripts] Error 2 Thanks for testing and reporting it, I'll fix it in v2. > Please do not touch cmd_shipped. > > If this feature is desired, > please implement it in dts/Makefile. OK, thanks! -- Anatolij
diff --git a/dts/Kconfig b/dts/Kconfig index 64c98dd723..49224bee93 100644 --- a/dts/Kconfig +++ b/dts/Kconfig @@ -311,6 +311,14 @@ config OF_SPL_REMOVE_PROPS can be discarded. This option defines the list of properties to discard. +config OF_REMOVE_PROPS + string "List of device tree properties to drop" + depends on OF_CONTROL + default "interrupt-parent interrupts" if PINCTRL + help + Some properties are not used by U-Boot and can be discarded. + This option defines the list of properties to discard. + config SPL_OF_PLATDATA bool "Generate platform data for use in SPL" depends on SPL_OF_CONTROL diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 4ea898a421..3b124369ad 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -235,7 +235,8 @@ $(obj)/%.tab.h: $(src)/%.y FORCE # =========================================================================== quiet_cmd_shipped = SHIPPED $@ -cmd_shipped = cat $< > $@ +cmd_shipped = cat $< | $(objtree)/tools/fdtgrep -r -O dtb - -o $@ \ + $(addprefix -P ,$(subst $\",,$(CONFIG_OF_REMOVE_PROPS))) $(obj)/%: $(src)/%_shipped $(call cmd,shipped)
This can be used for device tree size reduction similar as CONFIG_OF_SPL_REMOVE_PROPS option. For tbs2910 board this shrinks the image size: all -2304.0 bss -16.0 text -2288.0 Signed-off-by: Anatolij Gustschin <agust at denx.de> --- dts/Kconfig | 8 ++++++++ scripts/Makefile.lib | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-)