From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anatolij Gustschin Date: Tue, 26 May 2020 13:58:29 +0200 Subject: [RFC PATCH] imx: skip unused compatible strings in drivers In-Reply-To: References: <20200525202429.2146-1-agust@denx.de> <4c07f210-eab5-b456-fb1c-3f1b1eb71e0b@web.de> Message-ID: <20200526135829.7f5637eb@crub> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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. -- Anatolij