dts: add property removal option CONFIG_OF_REMOVE_PROPS

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 <agust@denx.de>
This commit is contained in:
Anatolij Gustschin 2020-01-12 15:57:42 +01:00 committed by Tom Rini
parent 051e03c0d7
commit 43b6e38b27
3 changed files with 33 additions and 0 deletions

View File

@ -314,6 +314,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

View File

@ -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

View File

@ -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)))