Message ID | 20210125105757.661240-1-uwe@kleine-koenig.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | cmd_dtc: Enable generation of device tree symbols | expand |
Hi, Uwe Kleine-König <uwe@kleine-koenig.org> (2021-01-25): > Adding the -@ switch to dtc results in the binary devicetrees containing > a list of symbolic references and their paths. This is necessary to > apply device tree overlays e.g. on Raspberry Pi as described on > https://www.raspberrypi.org/documentation/configuration/device-tree.md. > > Obviously the downside of this change is an increas of the size of the (as spotted by Uwe right after sending →) increase > generated dtbs, for an arm out-of-tree build (multi_v7_defconfig): > > $ du -s arch/arm/boot/dts* > 101380 arch/arm/boot/dts-pre > 114308 arch/arm/boot/dts-post > > so this is in average an increase of 12.8% in size. > > Signed-off-by: Uwe Kleine-König <uwe@kleine-koenig.org> Tested-by: Cyril Brulebois <cyril@debamax.com> with: - a Raspberry Pi CM3 - a carrier board designed after the official IO Board V3 - an RTC accessible over I²C, made functional via a DTB overlay, that can only be enabled once bcm2710-rpi-cm3.dtb has been generated with this patch applied. Cheers,
On Mon, Jan 25, 2021 at 8:07 PM Uwe Kleine-König <uwe@kleine-koenig.org> wrote: > > Adding the -@ switch to dtc results in the binary devicetrees containing > a list of symbolic references and their paths. This is necessary to > apply device tree overlays e.g. on Raspberry Pi as described on > https://www.raspberrypi.org/documentation/configuration/device-tree.md. > > Obviously the downside of this change is an increas of the size of the > generated dtbs, for an arm out-of-tree build (multi_v7_defconfig): > > $ du -s arch/arm/boot/dts* > 101380 arch/arm/boot/dts-pre > 114308 arch/arm/boot/dts-post > > so this is in average an increase of 12.8% in size. > > Signed-off-by: Uwe Kleine-König <uwe@kleine-koenig.org> (CCing DT ML.) https://www.spinics.net/lists/linux-kbuild/msg27904.html See Rob's comment: "We've already rejected doing that. Turning on '-@' can grow the dtb size by a significant amount which could be problematic for some boards." > --- > scripts/Makefile.lib | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib > index 213677a5ed33..0683a5808f7f 100644 > --- a/scripts/Makefile.lib > +++ b/scripts/Makefile.lib > @@ -319,7 +319,7 @@ $(obj)/%.dtb.S: $(obj)/%.dtb FORCE > > quiet_cmd_dtc = DTC $@ > cmd_dtc = $(HOSTCC) -E $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \ > - $(DTC) -O $(patsubst .%,%,$(suffix $@)) -o $@ -b 0 \ > + $(DTC) -@ -O $(patsubst .%,%,$(suffix $@)) -o $@ -b 0 \ > $(addprefix -i,$(dir $<) $(DTC_INCLUDE)) $(DTC_FLAGS) \ > -d $(depfile).dtc.tmp $(dtc-tmp) ; \ > cat $(depfile).pre.tmp $(depfile).dtc.tmp > $(depfile) > -- > 2.29.2 > -- Best Regards Masahiro Yamada
Hello Masahiro, On 1/25/21 10:53 PM, Masahiro Yamada wrote: > On Mon, Jan 25, 2021 at 8:07 PM Uwe Kleine-König <uwe@kleine-koenig.org> wrote: >> >> Adding the -@ switch to dtc results in the binary devicetrees containing >> a list of symbolic references and their paths. This is necessary to >> apply device tree overlays e.g. on Raspberry Pi as described on >> https://www.raspberrypi.org/documentation/configuration/device-tree.md. >> >> Obviously the downside of this change is an increas of the size of the >> generated dtbs, for an arm out-of-tree build (multi_v7_defconfig): >> >> $ du -s arch/arm/boot/dts* >> 101380 arch/arm/boot/dts-pre >> 114308 arch/arm/boot/dts-post >> >> so this is in average an increase of 12.8% in size. >> >> Signed-off-by: Uwe Kleine-König <uwe@kleine-koenig.org> > > > (CCing DT ML.) makes sense, thanks. > https://www.spinics.net/lists/linux-kbuild/msg27904.html > > See Rob's comment: > > "We've already rejected doing that. Turning on '-@' can grow the dtb > size by a significant amount which could be problematic for some > boards." The patch was created after some conversation on irc which continued after I sent the patch. I added the participating parties to Cc:. The (relevant) followups were: Geert suggested to always generate the symbols and provide a way to strip the symbols for installation if and when they are not needed. Rob said: "I'm less concerned with the size increases, but rather that labels go from purely source syntax to an ABI. I'd rather see some decision as to which labels are enabled or not." And then I learned with hints from Rob and Geert that symbols are not really necessary for overlays, you just cannot use named labels. But using target-path = "/soc/i2c@23473245"; or target = <&{/soc/i2c@23473245}>; instead of target = <&i2c1>; works fine. (And if you need to add a phandle the &{/path/to/node} construct should work, too (but I didn't test).) Using labels is a tad nicer, but the problem I wanted to address with my patch now has a known different solution. Best regards Uwe
Hi Uwe, On Tue, Jan 26, 2021 at 8:21 AM Uwe Kleine-König <uwe@kleine-koenig.org> wrote: > And then I learned with hints from Rob and Geert that symbols are not > really necessary for overlays, you just cannot use named labels. But > using > > target-path = "/soc/i2c@23473245"; > > or > > target = <&{/soc/i2c@23473245}>; > > instead of > > target = <&i2c1>; > > works fine. (And if you need to add a phandle the &{/path/to/node} > construct should work, too (but I didn't test).) Using labels is a tad > nicer, but the problem I wanted to address with my patch now has a known > different solution. Please don't use "target" and "target-path". Since the introduction of sugar syntax support in v4.15[1], you can just use "&label", like in a normal DTS file. Paths do need the special "&{/path/to/node}" syntax instead of "/path/to/node", though. As usual, you can find lots of examples of DT overlays in my repo[2]. [1] commit 4201d057ea91c3d6 ("scripts/dtc: Update to upstream version v1.4.5-3-gb1a60033c110") [2] https://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git/log/?h=topic/renesas-overlays Gr{oetje,eeting}s, Geert
On Tue, Jan 26, 2021 at 1:27 AM Uwe Kleine-König <uwe@kleine-koenig.org> wrote: > > Hello Masahiro, > > On 1/25/21 10:53 PM, Masahiro Yamada wrote: > > On Mon, Jan 25, 2021 at 8:07 PM Uwe Kleine-König <uwe@kleine-koenig.org> wrote: > >> > >> Adding the -@ switch to dtc results in the binary devicetrees containing > >> a list of symbolic references and their paths. This is necessary to > >> apply device tree overlays e.g. on Raspberry Pi as described on > >> https://www.raspberrypi.org/documentation/configuration/device-tree.md. > >> > >> Obviously the downside of this change is an increas of the size of the > >> generated dtbs, for an arm out-of-tree build (multi_v7_defconfig): > >> > >> $ du -s arch/arm/boot/dts* > >> 101380 arch/arm/boot/dts-pre > >> 114308 arch/arm/boot/dts-post > >> > >> so this is in average an increase of 12.8% in size. > >> > >> Signed-off-by: Uwe Kleine-König <uwe@kleine-koenig.org> > > > > > > (CCing DT ML.) > > makes sense, thanks. > > > https://www.spinics.net/lists/linux-kbuild/msg27904.html > > > > See Rob's comment: > > > > "We've already rejected doing that. Turning on '-@' can grow the dtb > > size by a significant amount which could be problematic for some > > boards." > > The patch was created after some conversation on irc which continued > after I sent the patch. I added the participating parties to Cc:. > > The (relevant) followups were: > > Geert suggested to always generate the symbols and provide a way to > strip the symbols for installation if and when they are not needed. > > Rob said: "I'm less concerned with the size increases, but rather that > labels go from purely source syntax to an ABI. I'd rather see some > decision as to which labels are enabled or not." I've also said move the arm32 dts files to family subdirectories and enable '-@' per directory. I've posted a script to do the whole thing, but I think the preference is one-by-one. This is needed anyways if we're going to start adding overlays which Viresh is working on. Rob
+frank On 1/25/21 4:57 AM, Uwe Kleine-König wrote: > Adding the -@ switch to dtc results in the binary devicetrees containing > a list of symbolic references and their paths. This is necessary to > apply device tree overlays e.g. on Raspberry Pi as described on > https://www.raspberrypi.org/documentation/configuration/device-tree.md. > > Obviously the downside of this change is an increas of the size of the > generated dtbs, for an arm out-of-tree build (multi_v7_defconfig): > > $ du -s arch/arm/boot/dts* > 101380 arch/arm/boot/dts-pre > 114308 arch/arm/boot/dts-post > > so this is in average an increase of 12.8% in size. > > Signed-off-by: Uwe Kleine-König <uwe@kleine-koenig.org> > --- > scripts/Makefile.lib | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib > index 213677a5ed33..0683a5808f7f 100644 > --- a/scripts/Makefile.lib > +++ b/scripts/Makefile.lib > @@ -319,7 +319,7 @@ $(obj)/%.dtb.S: $(obj)/%.dtb FORCE > > quiet_cmd_dtc = DTC $@ > cmd_dtc = $(HOSTCC) -E $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \ > - $(DTC) -O $(patsubst .%,%,$(suffix $@)) -o $@ -b 0 \ > + $(DTC) -@ -O $(patsubst .%,%,$(suffix $@)) -o $@ -b 0 \ > $(addprefix -i,$(dir $<) $(DTC_INCLUDE)) $(DTC_FLAGS) \ > -d $(depfile).dtc.tmp $(dtc-tmp) ; \ > cat $(depfile).pre.tmp $(depfile).dtc.tmp > $(depfile) >
+frank On 1/25/21 5:15 AM, Cyril Brulebois wrote: > Hi, > > Uwe Kleine-König <uwe@kleine-koenig.org> (2021-01-25): >> Adding the -@ switch to dtc results in the binary devicetrees containing >> a list of symbolic references and their paths. This is necessary to >> apply device tree overlays e.g. on Raspberry Pi as described on >> https://www.raspberrypi.org/documentation/configuration/device-tree.md. >> >> Obviously the downside of this change is an increas of the size of the > > (as spotted by Uwe right after sending →) increase > >> generated dtbs, for an arm out-of-tree build (multi_v7_defconfig): >> >> $ du -s arch/arm/boot/dts* >> 101380 arch/arm/boot/dts-pre >> 114308 arch/arm/boot/dts-post >> >> so this is in average an increase of 12.8% in size. >> >> Signed-off-by: Uwe Kleine-König <uwe@kleine-koenig.org> > > Tested-by: Cyril Brulebois <cyril@debamax.com> > > with: > - a Raspberry Pi CM3 > - a carrier board designed after the official IO Board V3 > - an RTC accessible over I²C, made functional via a DTB overlay, that > can only be enabled once bcm2710-rpi-cm3.dtb has been generated with > this patch applied. > > > Cheers, > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel >
+frank On 1/25/21 3:53 PM, Masahiro Yamada wrote: > On Mon, Jan 25, 2021 at 8:07 PM Uwe Kleine-König <uwe@kleine-koenig.org> wrote: >> >> Adding the -@ switch to dtc results in the binary devicetrees containing >> a list of symbolic references and their paths. This is necessary to >> apply device tree overlays e.g. on Raspberry Pi as described on >> https://www.raspberrypi.org/documentation/configuration/device-tree.md. >> >> Obviously the downside of this change is an increas of the size of the >> generated dtbs, for an arm out-of-tree build (multi_v7_defconfig): >> >> $ du -s arch/arm/boot/dts* >> 101380 arch/arm/boot/dts-pre >> 114308 arch/arm/boot/dts-post >> >> so this is in average an increase of 12.8% in size. >> >> Signed-off-by: Uwe Kleine-König <uwe@kleine-koenig.org> > > > (CCing DT ML.) > > > https://www.spinics.net/lists/linux-kbuild/msg27904.html > > See Rob's comment: > > "We've already rejected doing that. Turning on '-@' can grow the dtb > size by a significant amount which could be problematic for some > boards." > > > > > > > > >> --- >> scripts/Makefile.lib | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib >> index 213677a5ed33..0683a5808f7f 100644 >> --- a/scripts/Makefile.lib >> +++ b/scripts/Makefile.lib >> @@ -319,7 +319,7 @@ $(obj)/%.dtb.S: $(obj)/%.dtb FORCE >> >> quiet_cmd_dtc = DTC $@ >> cmd_dtc = $(HOSTCC) -E $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \ >> - $(DTC) -O $(patsubst .%,%,$(suffix $@)) -o $@ -b 0 \ >> + $(DTC) -@ -O $(patsubst .%,%,$(suffix $@)) -o $@ -b 0 \ >> $(addprefix -i,$(dir $<) $(DTC_INCLUDE)) $(DTC_FLAGS) \ >> -d $(depfile).dtc.tmp $(dtc-tmp) ; \ >> cat $(depfile).pre.tmp $(depfile).dtc.tmp > $(depfile) >> -- >> 2.29.2 >> > > > -- > Best Regards > > Masahiro Yamada >
+frank On 1/26/21 1:20 AM, Uwe Kleine-König wrote: > Hello Masahiro, > > On 1/25/21 10:53 PM, Masahiro Yamada wrote: >> On Mon, Jan 25, 2021 at 8:07 PM Uwe Kleine-König <uwe@kleine-koenig.org> wrote: >>> >>> Adding the -@ switch to dtc results in the binary devicetrees containing >>> a list of symbolic references and their paths. This is necessary to >>> apply device tree overlays e.g. on Raspberry Pi as described on >>> https://www.raspberrypi.org/documentation/configuration/device-tree.md. >>> >>> Obviously the downside of this change is an increas of the size of the >>> generated dtbs, for an arm out-of-tree build (multi_v7_defconfig): >>> >>> $ du -s arch/arm/boot/dts* >>> 101380 arch/arm/boot/dts-pre >>> 114308 arch/arm/boot/dts-post >>> >>> so this is in average an increase of 12.8% in size. >>> >>> Signed-off-by: Uwe Kleine-König <uwe@kleine-koenig.org> >> >> >> (CCing DT ML.) > > makes sense, thanks. > >> https://www.spinics.net/lists/linux-kbuild/msg27904.html >> >> See Rob's comment: >> >> "We've already rejected doing that. Turning on '-@' can grow the dtb >> size by a significant amount which could be problematic for some >> boards." > > The patch was created after some conversation on irc which continued > after I sent the patch. I added the participating parties to Cc:. > > The (relevant) followups were: > > Geert suggested to always generate the symbols and provide a way to > strip the symbols for installation if and when they are not needed. > > Rob said: "I'm less concerned with the size increases, but rather that > labels go from purely source syntax to an ABI. I'd rather see some > decision as to which labels are enabled or not." > > And then I learned with hints from Rob and Geert that symbols are not > really necessary for overlays, you just cannot use named labels. But > using > > target-path = "/soc/i2c@23473245"; > > or > > target = <&{/soc/i2c@23473245}>; > > instead of > > target = <&i2c1>; > > works fine. (And if you need to add a phandle the &{/path/to/node} > construct should work, too (but I didn't test).) Using labels is a tad nicer, but the problem I wanted to address with my patch now has a known different solution. > > Best regards > Uwe > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel >
+frank On 1/26/21 2:43 AM, Geert Uytterhoeven wrote: > Hi Uwe, > > On Tue, Jan 26, 2021 at 8:21 AM Uwe Kleine-König <uwe@kleine-koenig.org> wrote: >> And then I learned with hints from Rob and Geert that symbols are not >> really necessary for overlays, you just cannot use named labels. But >> using >> >> target-path = "/soc/i2c@23473245"; >> >> or >> >> target = <&{/soc/i2c@23473245}>; >> >> instead of >> >> target = <&i2c1>; >> >> works fine. (And if you need to add a phandle the &{/path/to/node} >> construct should work, too (but I didn't test).) Using labels is a tad >> nicer, but the problem I wanted to address with my patch now has a known >> different solution. > > Please don't use "target" and "target-path". Since the introduction of > sugar syntax support in v4.15[1], you can just use "&label", like in a normal > DTS file. Paths do need the special "&{/path/to/node}" syntax instead > of "/path/to/node", though. > > As usual, you can find lots of examples of DT overlays in my repo[2]. > > [1] commit 4201d057ea91c3d6 ("scripts/dtc: Update to upstream version > v1.4.5-3-gb1a60033c110") > [2] https://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git/log/?h=topic/renesas-overlays > > Gr{oetje,eeting}s, > > Geert >
Hi Uwe, On 1/26/21 12:03 PM, Frank Rowand wrote: > +frank > > On 1/26/21 1:20 AM, Uwe Kleine-König wrote: >> Hello Masahiro, >> >> On 1/25/21 10:53 PM, Masahiro Yamada wrote: >>> On Mon, Jan 25, 2021 at 8:07 PM Uwe Kleine-König <uwe@kleine-koenig.org> wrote: >>>> >>>> Adding the -@ switch to dtc results in the binary devicetrees containing >>>> a list of symbolic references and their paths. This is necessary to >>>> apply device tree overlays e.g. on Raspberry Pi as described on >>>> https://www.raspberrypi.org/documentation/configuration/device-tree.md. >>>> >>>> Obviously the downside of this change is an increas of the size of the >>>> generated dtbs, for an arm out-of-tree build (multi_v7_defconfig): >>>> >>>> $ du -s arch/arm/boot/dts* >>>> 101380 arch/arm/boot/dts-pre >>>> 114308 arch/arm/boot/dts-post >>>> >>>> so this is in average an increase of 12.8% in size. >>>> >>>> Signed-off-by: Uwe Kleine-König <uwe@kleine-koenig.org> >>> >>> >>> (CCing DT ML.) >> >> makes sense, thanks. >> >>> https://www.spinics.net/lists/linux-kbuild/msg27904.html >>> >>> See Rob's comment: >>> >>> "We've already rejected doing that. Turning on '-@' can grow the dtb >>> size by a significant amount which could be problematic for some >>> boards." >> >> The patch was created after some conversation on irc which continued >> after I sent the patch. I added the participating parties to Cc:. Unfortunately I have not been on irc recently (now rectified). Do you perchance have a copy of the irc conversation that you can send me? (No need to edit out unrelated messages, a simple cut and paste from the start of the conversation to the end is fine.) -Frank >> >> The (relevant) followups were: >> >> Geert suggested to always generate the symbols and provide a way to >> strip the symbols for installation if and when they are not needed. >> >> Rob said: "I'm less concerned with the size increases, but rather that >> labels go from purely source syntax to an ABI. I'd rather see some >> decision as to which labels are enabled or not." >> >> And then I learned with hints from Rob and Geert that symbols are not >> really necessary for overlays, you just cannot use named labels. But >> using >> >> target-path = "/soc/i2c@23473245"; >> >> or >> >> target = <&{/soc/i2c@23473245}>; >> >> instead of >> >> target = <&i2c1>; >> >> works fine. (And if you need to add a phandle the &{/path/to/node} >> construct should work, too (but I didn't test).) Using labels is a tad nicer, but the problem I wanted to address with my patch now has a known different solution. >> >> Best regards >> Uwe >> >> >> _______________________________________________ >> linux-arm-kernel mailing list >> linux-arm-kernel@lists.infradead.org >> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel >> >
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 213677a5ed33..0683a5808f7f 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -319,7 +319,7 @@ $(obj)/%.dtb.S: $(obj)/%.dtb FORCE quiet_cmd_dtc = DTC $@ cmd_dtc = $(HOSTCC) -E $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \ - $(DTC) -O $(patsubst .%,%,$(suffix $@)) -o $@ -b 0 \ + $(DTC) -@ -O $(patsubst .%,%,$(suffix $@)) -o $@ -b 0 \ $(addprefix -i,$(dir $<) $(DTC_INCLUDE)) $(DTC_FLAGS) \ -d $(depfile).dtc.tmp $(dtc-tmp) ; \ cat $(depfile).pre.tmp $(depfile).dtc.tmp > $(depfile)
Adding the -@ switch to dtc results in the binary devicetrees containing a list of symbolic references and their paths. This is necessary to apply device tree overlays e.g. on Raspberry Pi as described on https://www.raspberrypi.org/documentation/configuration/device-tree.md. Obviously the downside of this change is an increas of the size of the generated dtbs, for an arm out-of-tree build (multi_v7_defconfig): $ du -s arch/arm/boot/dts* 101380 arch/arm/boot/dts-pre 114308 arch/arm/boot/dts-post so this is in average an increase of 12.8% in size. Signed-off-by: Uwe Kleine-König <uwe@kleine-koenig.org> --- scripts/Makefile.lib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)