Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932410AbdLTIIO (ORCPT ); Wed, 20 Dec 2017 03:08:14 -0500 Received: from mail-wm0-f65.google.com ([74.125.82.65]:35996 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751384AbdLTIIL (ORCPT ); Wed, 20 Dec 2017 03:08:11 -0500 X-Google-Smtp-Source: ACJfBos5eKIXbIYdIUP0Ej/Nnj4PGNCJueJ8apGE0p8UxUaXE8CK9duLOlxwngs7DvPwQVDAIuKkrg== Subject: Re: [PATCH] of: build dbts with symbols when CONFIG_OF_OVERLAY is set To: Frank Rowand , Rob Herring , Masahiro Yamada , Michal Marek Cc: linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org References: <20171214151240.14555-1-a.heider@gmail.com> <05291157-a1dc-db84-e453-c43945c1da07@gmail.com> <0468b711-ba39-98d8-5bbe-0246a98db863@gmail.com> From: Andre Heider Message-ID: Date: Wed, 20 Dec 2017 09:08:07 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 MIME-Version: 1.0 In-Reply-To: <0468b711-ba39-98d8-5bbe-0246a98db863@gmail.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4553 Lines: 126 On 18/12/17 23:10, Frank Rowand wrote: > On 12/16/17 09:25, Andre Heider wrote: >> Hi Frank, >> >> On 15/12/17 22:06, Frank Rowand wrote: >>> On 12/14/17 07:12, Andre Heider wrote: >>>> The overlay feature requires the base dtb to be built with symbols, so >>>> lets build the dtbs with symbols when overlay support was explicitly >>>> enabled. >>>> >>>> With CONFIG_OF_ALL_DTBS on ARCH=arm the 989 dtb files grow about ~38% on >>>> average. >>>> >>>> Totals in bytes with the 3 biggest ones: >>>> >>>> Before: >>>>     90471    arch/arm/boot/dts/am57xx-beagle-x15-revc.dtb >>>>     90521    arch/arm/boot/dts/am57xx-beagle-x15-revb1.dtb >>>>     92639    arch/arm/boot/dts/dra7-evm.dtb >>>>     25731296    total >>>> >>>> After: >>>>     133203    arch/arm/boot/dts/am57xx-beagle-x15-revc.dtb >>>>     133237    arch/arm/boot/dts/am57xx-beagle-x15-revb1.dtb >>>>     134545    arch/arm/boot/dts/dra7-evm.dtb >>>>     35464440    total >>>> >>>> Signed-off-by: Andre Heider >>>> --- >>>> >>>> Hi, >>>> >>>> while playing around with overlays I noticed that I needed to rebuilt >>>> my distro's device trees because they didn't come with symbols. >>>> >>>> Is that for a reason, maybe the not so minor increase in size? >>> >>> Yes, size is the issue. >>> >>> >>>> >>>> Thanks, >>>> Andre >>>> >>>>   drivers/of/unittest-data/Makefile | 7 ------- >>>>   scripts/Makefile.lib              | 5 +++++ >>>>   2 files changed, 5 insertions(+), 7 deletions(-) >>>> >>>> diff --git a/drivers/of/unittest-data/Makefile b/drivers/of/unittest-data/Makefile >>>> index 32389acfa616..b65061013512 100644 >>>> --- a/drivers/of/unittest-data/Makefile >>>> +++ b/drivers/of/unittest-data/Makefile >>>> @@ -15,13 +15,6 @@ targets += overlay.dtb overlay.dtb.S >>>>   targets += overlay_bad_phandle.dtb overlay_bad_phandle.dtb.S >>>>   targets += overlay_bad_symbol.dtb overlay_bad_symbol.dtb.S >>>>   targets += overlay_base.dtb overlay_base.dtb.S >>>> - >>>> -# enable creation of __symbols__ node >>>> -DTC_FLAGS_overlay := -@ >>>> -DTC_FLAGS_overlay_bad_phandle := -@ >>>> -DTC_FLAGS_overlay_bad_symbol := -@ >>>> -DTC_FLAGS_overlay_base := -@ >>>> - >>>>   endif >>>>     .PRECIOUS: \ >>> >>> No.  The unittests require these to be set unconditionally. >>> >>> >>>> diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib >>>> index 1ca4dcd2d500..c7ba4aa8a07a 100644 >>>> --- a/scripts/Makefile.lib >>>> +++ b/scripts/Makefile.lib >>>> @@ -278,6 +278,11 @@ DTC_FLAGS += -Wnode_name_chars_strict \ >>>>       -Wproperty_name_chars_strict >>>>   endif >>>>   +ifeq ($(CONFIG_OF_OVERLAY),y) >>>> +# enable creation of __symbols__ node >>>> +DTC_FLAGS += -@ >>>> +endif >>>> + >>>>   DTC_FLAGS += $(DTC_FLAGS_$(basetarget)) >>>>     # Generate an assembly file to wrap the output of the device tree compiler >>>> >>> >>> Not needed.  Instead set DTC_FLAGS in the make command.  For example: >>> >>>     DTC_FLAGS=-@ make qcom-apq8074-dragonboard.dtb >>> >>> There are a few architecture Makefiles that need to be fixed to not unconditionally >>> set DTC_FLAGS. >> >> Rebuilding the dts files manually with symbols isn't the problem. The >> idea was to enable it with a switch which distros simply can flip. >> >> Passing DTC_FLAGS to `make` would work too I guess, but on multi >> platform builds that's still the same issue if there're boards which >> can't handle that because of the size increase. >> >> Would a solution which enables symbols per family work? E.g. >> CONFIG_MACH_SUN7I chooses to use -@ because it can handle it. >> >> Thanks, >> Andre > > Making it easy for distros to increase the size of .dtb files is > not the correct answer. We are trying to decrease the footprint > of devicetree, not increase it. I'm not sure I follow. If it's not acceptable to increase the size, why's there overlay support in the first place? There're distros/downstreams that support overlays today, like armbian, beaglebone and rpi. All carrying their own patches to enable symbols [1] [2] [3] and I'm sure others will follow. Why can't there be some sort of switch for those to build their dtbs with symbols? Regards, Andre [1] https://github.com/armbian/build/blob/master/patch/kernel/sunxi-next/add-overlay-compilation-support.patch#L98 [2] https://github.com/beagleboard/linux/commit/ed6b9450c2a2ec21149f14ff24770b69888abda6 [3] https://github.com/raspberrypi/linux/blob/rpi-4.15.y/arch/arm/boot/dts/Makefile#L1124