Message ID | CAK7LNAQKswPzeFYdSVq3JDk2qawZ8e5ogBFMWdor-CibMovU3g@mail.gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, 2015-07-29 at 20:07 +0900, Masahiro Yamada wrote: > Hi Ian, > > > 2015-07-27 19:35 GMT+09:00 Ian Campbell <ian.campbell@citrix.com>: > > Commit 9ccd608070b6 "arm64: dts: add device tree for ARM SMM-A53x2 on > > LogicTile Express 20MG" added a new dts file to arch/arm64 which > > included "../../../../arm/boot/dts/vexpress-v2m-rs1.dtsi", i.e. a > > .dtsi supplied by arch/arm. > > > > Unfortunately this causes some issues for the split device tree > > repository[0], since things get moved around there. In that context > > the new .dts ends up at src/arm64/arm/vexpress-v2f-1xv7-ca53x2.dts > > while the include is at src/arm/vexpress-v2m-rs1.dtsi. > > > > The sharing of the .dtsi is legitimate since the baseboard is the same > > for various vexpress systems whatever processor they use. > > > > Rather than using ../../ tricks to pickup .dtsi files from another > > arch this patch creates a new directory include/dt-dtsi as a > > home for such cross-arch .dtsi files, arranges for it to be in the > > include path when the .dts files are processed by cpp and switches the > > > "include/dt-dtsi/" can be referenced from normal C sources. > > I think another possible home for cross-arch DTSI is "kernel/dts/". > This directory can be hidden from C sources. I suppose, I don't really mind and will follow the direction of the other DTB maintainers. It doesn't seem like a big deal to me. > >@@ -223,7 +223,7 @@ Example of a VE tile description (simplified) > > /* Active high IRQ 0 is connected to GIC's SPI0 */ > > interrupt-map = <0 0 0 &gic 0 0 4>; > > > > - /include/ "vexpress-v2m-rs1.dtsi" > > + #include <arm/vexpress-v2m-rs1.dtsi> > > }; > > }; > > > > You do not have to replace /include/ with #include, > if you add the include path for DTC. Ah, I looked for this but -i is not documented in the man page. Is there any reason to prefer one over the other? > Please add include path for DTC too > so that both /include/ and #include are available. OK. I shall await further feedback on what path to use before spinning a v3. Ian. > > > > diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib > index 79e8661..fc6c06c 100644 > --- a/scripts/Makefile.lib > +++ b/scripts/Makefile.lib > @@ -285,7 +285,7 @@ quiet_cmd_dtc = DTC $@ > cmd_dtc = mkdir -p $(dir ${dtc-tmp}) ; \ > $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; > \ > $(objtree)/scripts/dtc/dtc -O dtb -o $@ -b 0 \ > - -i $(dir $<) $(DTC_FLAGS) \ > + -i $(dir $<) -i $(srctree)/kernel/dts $(DTC_FLAGS) \ > -d $(depfile).dtc.tmp $(dtc-tmp) ; \ > cat $(depfile).pre.tmp $(depfile).dtc.tmp > $(depfile) > > > > -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, Jul 29, 2015 at 02:22:54PM +0100, Ian Campbell wrote: > On Wed, 2015-07-29 at 20:07 +0900, Masahiro Yamada wrote: > > Hi Ian, > > > > > > 2015-07-27 19:35 GMT+09:00 Ian Campbell <ian.campbell@citrix.com>: > > > Commit 9ccd608070b6 "arm64: dts: add device tree for ARM SMM-A53x2 on > > > LogicTile Express 20MG" added a new dts file to arch/arm64 which > > > included "../../../../arm/boot/dts/vexpress-v2m-rs1.dtsi", i.e. a > > > .dtsi supplied by arch/arm. > > > > > > Unfortunately this causes some issues for the split device tree > > > repository[0], since things get moved around there. In that context > > > the new .dts ends up at src/arm64/arm/vexpress-v2f-1xv7-ca53x2.dts > > > while the include is at src/arm/vexpress-v2m-rs1.dtsi. > > > > > > The sharing of the .dtsi is legitimate since the baseboard is the same > > > for various vexpress systems whatever processor they use. > > > > > > Rather than using ../../ tricks to pickup .dtsi files from another > > > arch this patch creates a new directory include/dt-dtsi as a > > > home for such cross-arch .dtsi files, arranges for it to be in the > > > include path when the .dts files are processed by cpp and switches the > > > > > > "include/dt-dtsi/" can be referenced from normal C sources. > > > > I think another possible home for cross-arch DTSI is "kernel/dts/". > > This directory can be hidden from C sources. > > I suppose, I don't really mind and will follow the direction of the other > DTB maintainers. It doesn't seem like a big deal to me. I don't really have a preference either way. > > >@@ -223,7 +223,7 @@ Example of a VE tile description (simplified) > > > /* Active high IRQ 0 is connected to GIC's SPI0 */ > > > interrupt-map = <0 0 0 &gic 0 0 4>; > > > > > > - /include/ "vexpress-v2m-rs1.dtsi" > > > + #include <arm/vexpress-v2m-rs1.dtsi> > > > }; > > > }; > > > > > > > > You do not have to replace /include/ with #include, > > if you add the include path for DTC. > > Ah, I looked for this but -i is not documented in the man page. > > Is there any reason to prefer one over the other? #include allows you to use CPP in the file you're including, /include/ does not. I would imagine we have to use #include in case the dtsi itself has #include statements... > > Please add include path for DTC too > > so that both /include/ and #include are available. ... though that does not preclude adding it to the path for /include/. Thanks, Mark. -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, 2015-07-29 at 14:27 +0100, Mark Rutland wrote: > On Wed, Jul 29, 2015 at 02:22:54PM +0100, Ian Campbell wrote: > > On Wed, 2015-07-29 at 20:07 +0900, Masahiro Yamada wrote: > > > Hi Ian, > > > > > > > > > 2015-07-27 19:35 GMT+09:00 Ian Campbell <ian.campbell@citrix.com>: > > > > Commit 9ccd608070b6 "arm64: dts: add device tree for ARM SMM-A53x2 > > > > on > > > > LogicTile Express 20MG" added a new dts file to arch/arm64 which > > > > included "../../../../arm/boot/dts/vexpress-v2m-rs1.dtsi", i.e. a > > > > .dtsi supplied by arch/arm. > > > > > > > > Unfortunately this causes some issues for the split device tree > > > > repository[0], since things get moved around there. In that context > > > > the new .dts ends up at src/arm64/arm/vexpress-v2f-1xv7-ca53x2.dts > > > > while the include is at src/arm/vexpress-v2m-rs1.dtsi. > > > > > > > > The sharing of the .dtsi is legitimate since the baseboard is the > > > > same > > > > for various vexpress systems whatever processor they use. > > > > > > > > Rather than using ../../ tricks to pickup .dtsi files from another > > > > arch this patch creates a new directory include/dt-dtsi as a > > > > home for such cross-arch .dtsi files, arranges for it to be in the > > > > include path when the .dts files are processed by cpp and switches > > > > the > > > > > > > > > "include/dt-dtsi/" can be referenced from normal C sources. > > > > > > I think another possible home for cross-arch DTSI is "kernel/dts/". > > > This directory can be hidden from C sources. > > > > I suppose, I don't really mind and will follow the direction of the > > other > > DTB maintainers. It doesn't seem like a big deal to me. > > I don't really have a preference either way. I'm inclined to leave it, "visible to C sources" doesn't seem like that much of an issue and IMHO the cure (kernel/dts/...) is worse than the disease. @@ -223,7 +223,7 @@ Example of a VE tile description (simplified) > > > > /* Active high IRQ 0 is connected to GIC's SPI0 */ > > > > interrupt-map = <0 0 0 &gic 0 0 4>; > > > > > > > > - /include/ "vexpress-v2m-rs1.dtsi" > > > > + #include <arm/vexpress-v2m-rs1.dtsi> > > > > }; > > > > }; > > > > > > > > > > > > You do not have to replace /include/ with #include, > > > if you add the include path for DTC. > > > > Ah, I looked for this but -i is not documented in the man page. > > > > Is there any reason to prefer one over the other? > > #include allows you to use CPP in the file you're including, /include/ > does not. > > I would imagine we have to use #include in case the dtsi itself has > #include statements... If it did, yes. I don't think vexpress-v2m-rs1.dtsi does, since it is using /include/ today. I'm inclined to switch back to /include/ unless someone objects. > > > Please add include path for DTC too > > > so that both /include/ and #include are available. > > ... though that does not preclude adding it to the path for /include/. Indeed, I've done that locally already. Ian. -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, Jul 29, 2015 at 8:22 AM, Ian Campbell <ian.campbell@citrix.com> wrote: > On Wed, 2015-07-29 at 20:07 +0900, Masahiro Yamada wrote: >> Hi Ian, >> >> >> 2015-07-27 19:35 GMT+09:00 Ian Campbell <ian.campbell@citrix.com>: >> > Commit 9ccd608070b6 "arm64: dts: add device tree for ARM SMM-A53x2 on >> > LogicTile Express 20MG" added a new dts file to arch/arm64 which >> > included "../../../../arm/boot/dts/vexpress-v2m-rs1.dtsi", i.e. a >> > .dtsi supplied by arch/arm. >> > >> > Unfortunately this causes some issues for the split device tree >> > repository[0], since things get moved around there. In that context >> > the new .dts ends up at src/arm64/arm/vexpress-v2f-1xv7-ca53x2.dts >> > while the include is at src/arm/vexpress-v2m-rs1.dtsi. >> > >> > The sharing of the .dtsi is legitimate since the baseboard is the same >> > for various vexpress systems whatever processor they use. >> > >> > Rather than using ../../ tricks to pickup .dtsi files from another >> > arch this patch creates a new directory include/dt-dtsi as a >> > home for such cross-arch .dtsi files, arranges for it to be in the >> > include path when the .dts files are processed by cpp and switches the >> >> >> "include/dt-dtsi/" can be referenced from normal C sources. >> >> I think another possible home for cross-arch DTSI is "kernel/dts/". >> This directory can be hidden from C sources. > > I suppose, I don't really mind and will follow the direction of the other > DTB maintainers. It doesn't seem like a big deal to me. Seems fine to me. We might think of other things to put here that are not includes. Overlays perhaps? > >> >@@ -223,7 +223,7 @@ Example of a VE tile description (simplified) >> > /* Active high IRQ 0 is connected to GIC's SPI0 */ >> > interrupt-map = <0 0 0 &gic 0 0 4>; >> > >> > - /include/ "vexpress-v2m-rs1.dtsi" >> > + #include <arm/vexpress-v2m-rs1.dtsi> >> > }; >> > }; >> >> >> >> You do not have to replace /include/ with #include, >> if you add the include path for DTC. > > Ah, I looked for this but -i is not documented in the man page. > > Is there any reason to prefer one over the other? Yes, so you don't force the use of the C preprocessor. Rob -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi, 2015-07-30 0:23 GMT+09:00 Rob Herring <robherring2@gmail.com>: > On Wed, Jul 29, 2015 at 8:22 AM, Ian Campbell <ian.campbell@citrix.com> wrote: >> On Wed, 2015-07-29 at 20:07 +0900, Masahiro Yamada wrote: >>> Hi Ian, >>> >>> >>> 2015-07-27 19:35 GMT+09:00 Ian Campbell <ian.campbell@citrix.com>: >>> > Commit 9ccd608070b6 "arm64: dts: add device tree for ARM SMM-A53x2 on >>> > LogicTile Express 20MG" added a new dts file to arch/arm64 which >>> > included "../../../../arm/boot/dts/vexpress-v2m-rs1.dtsi", i.e. a >>> > .dtsi supplied by arch/arm. >>> > >>> > Unfortunately this causes some issues for the split device tree >>> > repository[0], since things get moved around there. In that context >>> > the new .dts ends up at src/arm64/arm/vexpress-v2f-1xv7-ca53x2.dts >>> > while the include is at src/arm/vexpress-v2m-rs1.dtsi. >>> > >>> > The sharing of the .dtsi is legitimate since the baseboard is the same >>> > for various vexpress systems whatever processor they use. >>> > >>> > Rather than using ../../ tricks to pickup .dtsi files from another >>> > arch this patch creates a new directory include/dt-dtsi as a >>> > home for such cross-arch .dtsi files, arranges for it to be in the >>> > include path when the .dts files are processed by cpp and switches the >>> >>> >>> "include/dt-dtsi/" can be referenced from normal C sources. >>> >>> I think another possible home for cross-arch DTSI is "kernel/dts/". >>> This directory can be hidden from C sources. >> >> I suppose, I don't really mind and will follow the direction of the other >> DTB maintainers. It doesn't seem like a big deal to me. > > Seems fine to me. We might think of other things to put here that are > not includes. Overlays perhaps? Putting device trees below "include/" seems weird to me. I thought, kernel/ is a place where we put something common among architectures. "kernel/configs/" was created as a home for cross-arch config fragments. arch/${ARCH}/configs/ - arch-specific *_defconfig and *.config kernel/configs/ - arch-common *.config Likewise, arch/${ARCH}/boot/dts - arch-specific *.dts and *.dtsi kernel/dts - arch-common *.dtsi This is just a matter of preference, though.
Hi. 2015-07-30 10:30 GMT+09:00 Masahiro Yamada <yamada.masahiro@socionext.com>: > Hi, > > > 2015-07-30 0:23 GMT+09:00 Rob Herring <robherring2@gmail.com>: >> On Wed, Jul 29, 2015 at 8:22 AM, Ian Campbell <ian.campbell@citrix.com> wrote: >>> On Wed, 2015-07-29 at 20:07 +0900, Masahiro Yamada wrote: >>>> Hi Ian, >>>> >>>> >>>> 2015-07-27 19:35 GMT+09:00 Ian Campbell <ian.campbell@citrix.com>: >>>> > Commit 9ccd608070b6 "arm64: dts: add device tree for ARM SMM-A53x2 on >>>> > LogicTile Express 20MG" added a new dts file to arch/arm64 which >>>> > included "../../../../arm/boot/dts/vexpress-v2m-rs1.dtsi", i.e. a >>>> > .dtsi supplied by arch/arm. BTW, is there any chance to merge arch/arm64 and arch/arm in the future? For example, U-boot supports ARM64/32 in a single arch directory, arch/arm/. I guess, the cross-arch home directory for DTSI would be only used to share device trees between arm64 and arm32.
On Fri, Jul 31, 2015 at 12:46 AM, Masahiro Yamada <yamada.masahiro@socionext.com> wrote: > Hi. > > 2015-07-30 10:30 GMT+09:00 Masahiro Yamada <yamada.masahiro@socionext.com>: >> Hi, >> >> >> 2015-07-30 0:23 GMT+09:00 Rob Herring <robherring2@gmail.com>: >>> On Wed, Jul 29, 2015 at 8:22 AM, Ian Campbell <ian.campbell@citrix.com> wrote: >>>> On Wed, 2015-07-29 at 20:07 +0900, Masahiro Yamada wrote: >>>>> Hi Ian, >>>>> >>>>> >>>>> 2015-07-27 19:35 GMT+09:00 Ian Campbell <ian.campbell@citrix.com>: >>>>> > Commit 9ccd608070b6 "arm64: dts: add device tree for ARM SMM-A53x2 on >>>>> > LogicTile Express 20MG" added a new dts file to arch/arm64 which >>>>> > included "../../../../arm/boot/dts/vexpress-v2m-rs1.dtsi", i.e. a >>>>> > .dtsi supplied by arch/arm. > > > > BTW, is there any chance to merge arch/arm64 and arch/arm in the future? In the kernel tree, not likely. It may happen if we ever move dts files out of the kernel. > For example, U-boot supports ARM64/32 in a single arch directory, arch/arm/. > > > I guess, the cross-arch home directory for DTSI would be only used to > share device trees between arm64 and arm32. For SOC files, I think the amount sharing will be limited. While we will probably see very similar SOCs, I'd guess the memory maps and irqs will be different. Sharing is going to be limited to things like daughter boards such as this case. Rob -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 79e8661..fc6c06c 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -285,7 +285,7 @@ quiet_cmd_dtc = DTC $@ cmd_dtc = mkdir -p $(dir ${dtc-tmp}) ; \ $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \ $(objtree)/scripts/dtc/dtc -O dtb -o $@ -b 0 \ - -i $(dir $<) $(DTC_FLAGS) \ + -i $(dir $<) -i $(srctree)/kernel/dts $(DTC_FLAGS) \ -d $(depfile).dtc.tmp $(dtc-tmp) ; \ cat $(depfile).pre.tmp $(depfile).dtc.tmp > $(depfile)