[RFC PATCH] imx: skip unused compatible strings in drivers

Anatolij Gustschin agust at denx.de
Tue May 26 13:58:29 CEST 2020

On Tue, 26 May 2020 13:25:00 +0200
Marek Vasut marex at denx.de wrote:

> On 5/26/20 1:12 PM, Soeren Moch wrote:
> > On 25.05.20 22:24, Anatolij Gustschin wrote:  
> >> Converting to DM increases binary size and breaks building some
> >> boards (i.e. tbs2910, gcc 9.2). The approach to address this issue
> >> via cutting off unused properties/nodes in device tree via custom
> >> u-boot.dtsi was not welcome, even if the affected boards do not
> >> pass the built-in device tree to the kernel.  
> > But there is CONFIG_OF_REMOVE_PROPS="dmas dma-names interrupt-parent
> > interrupts interrupts-extended interrupt-names interrupt-map
> > interrupt-map-mask" in tbs2910_defconfig. So removing properties is
> > already done via this config option. Removing nodes is not implemented
> > (yet? AFAIK). But would be welcome if someone implements this in a
> > similar way, I think.  
> Why don't we turn this the other way around -- put the { compat string ,
> driver } tuple list into a U-Boot linker list, then filter this linker
> list against a DT which will be used for the platform (what if there are
> multiple DTs?), and then scrub all unreferrenced symbols.

This might be a topic again when new bloat causes build breakage
again. For now I've succeeded to build the tbs2910 board with
default CI tool chain without this patch (by making DM_VIDEO parts
optional). Stripping unused compatible entries doesn't save much here
(around 800 bytes). So the question is if it is worth the effort
to implement such scrubbing.


More information about the U-Boot mailing list