From patchwork Sun Jan 12 14:57:42 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anatolij Gustschin X-Patchwork-Id: 239483 List-Id: U-Boot discussion From: agust at denx.de (Anatolij Gustschin) Date: Sun, 12 Jan 2020 15:57:42 +0100 Subject: [PATCH v2 1/2] dts: add property removal option CONFIG_OF_REMOVE_PROPS Message-ID: <20200112145743.2125-1-agust@denx.de> This can be used for device tree size reduction similar as CONFIG_OF_SPL_REMOVE_PROPS option. Some boards must pass the built-in DTB unchanged to the kernel, thus we may not cut it down unconditionally. Therefore enable the property removal list option only if CONFIG_OF_DTB_PROPS_REMOVE is selected. Signed-off-by: Anatolij Gustschin --- Changes in v2: - make DT property removal optional (enable it if required via OF_DTB_PROPS_REMOVE Kconfig option) - don't touch cmd_shipped, use new cmd_fdt_rm_props instead - update commit description - gitlab CI results: https://gitlab.denx.de/u-boot/custodians/u-boot-video/pipelines/1842 dts/Kconfig | 20 ++++++++++++++++++++ dts/Makefile | 5 +++++ scripts/Makefile.lib | 8 ++++++++ 3 files changed, 33 insertions(+) diff --git a/dts/Kconfig b/dts/Kconfig index 64c98dd723..d73dfb9549 100644 --- a/dts/Kconfig +++ b/dts/Kconfig @@ -311,6 +311,26 @@ config OF_SPL_REMOVE_PROPS can be discarded. This option defines the list of properties to discard. +config OF_DTB_PROPS_REMOVE + bool "Enable removal of device tree properties" + depends on OF_CONTROL + help + Some boards have restricted amount of storage for U-Boot image. + If the generated binary doesn't fit into available image storage, + the built-in device tree could probably be cut down by removing + some not required device tree properties to reduce the image size. + Enable this option and define the properties to be removed in the + CONFIG_OF_REMOVE_PROPS list. Do not enable this option if you must + pass the built-in DTB directly to the kernel! + +config OF_REMOVE_PROPS + string "List of device tree properties to drop" + depends on OF_DTB_PROPS_REMOVE + 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/dts/Makefile b/dts/Makefile index 1f83e615e8..a20930eb9a 100644 --- a/dts/Makefile +++ b/dts/Makefile @@ -19,8 +19,13 @@ endif $(obj)/dt-spl.dtb: $(DTB) $(objtree)/tools/fdtgrep FORCE $(call if_changed,fdtgrep) +ifeq ($(CONFIG_OF_DTB_PROPS_REMOVE),y) +$(obj)/dt.dtb: $(DTB) $(objtree)/tools/fdtgrep FORCE + $(call if_changed,fdt_rm_props) +else $(obj)/dt.dtb: $(DTB) FORCE $(call if_changed,shipped) +endif targets += dt.dtb dt-spl.dtb diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 4ea898a421..30f392fdfb 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -544,3 +544,11 @@ quiet_cmd_fdtgrep = FDTGREP $@ $(objtree)/tools/fdtgrep -r -O dtb - -o $@ \ -P u-boot,dm-pre-reloc -P u-boot,dm-spl -P u-boot,dm-tpl \ $(addprefix -P ,$(subst $\",,$(CONFIG_OF_SPL_REMOVE_PROPS))) + +# fdt_rm_props +# --------------------------------------------------------------------------- +# Pass the original device tree file through fdtgrep. This removes various +# unused properties. The output is typically a smaller device tree file. +quiet_cmd_fdt_rm_props = FDTGREP $@ + cmd_fdt_rm_props = cat $< | $(objtree)/tools/fdtgrep -r -O dtb - -o $@ \ + $(addprefix -P ,$(subst $\",,$(CONFIG_OF_REMOVE_PROPS))) From patchwork Sun Jan 12 14:57:43 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anatolij Gustschin X-Patchwork-Id: 239484 List-Id: U-Boot discussion From: agust at denx.de (Anatolij Gustschin) Date: Sun, 12 Jan 2020 15:57:43 +0100 Subject: [PATCH v2 2/2] tbs2910: add custom CONFIG_OF_REMOVE_PROPS list to defconfig In-Reply-To: <20200112145743.2125-1-agust@denx.de> References: <20200112145743.2125-1-agust@denx.de> Message-ID: <20200112145743.2125-2-agust@denx.de> This shrinks the image size: all -3840.0 text -3840.0 Signed-off-by: Anatolij Gustschin Acked-by: Soeren Moch --- Changes in v2: - add CONFIG_OF_DTB_PROPS_REMOVE=y - update commit description - gitlab CI results: https://gitlab.denx.de/u-boot/custodians/u-boot-video/pipelines/1842 NOTE: building with this patch only works when patch [1] is applied. [1] http://patchwork.ozlabs.org/patch/1219944 configs/tbs2910_defconfig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/configs/tbs2910_defconfig b/configs/tbs2910_defconfig index a42f53e849..9ac78d78b4 100644 --- a/configs/tbs2910_defconfig +++ b/configs/tbs2910_defconfig @@ -46,6 +46,8 @@ CONFIG_EFI_PARTITION=y CONFIG_OF_CONTROL=y CONFIG_OF_EMBED=y CONFIG_DEFAULT_DEVICE_TREE="imx6q-tbs2910" +CONFIG_OF_DTB_PROPS_REMOVE=y +CONFIG_OF_REMOVE_PROPS="dmas dma-names interrupt-parent interrupts interrupts-extended interrupt-names interrupt-map interrupt-map-mask" CONFIG_ENV_IS_IN_MMC=y CONFIG_SYS_RELOC_GD_ENV_ADDR=y CONFIG_DM=y