On 5/26/20 1:58 PM, Anatolij Gustschin wrote: > On Tue, 26 May 2020 13:25:00 +0200 > Marek Vasut ma...@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.
It is if you can remove all the unused compatibles and all the data/rodata they reference. I think it would be nice to prototype this at least and see how much this really saves. I suspect for SPL this might be interesting even more.