Message ID | 1438618000-1091-1-git-send-email-ian.campbell@citrix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 8/3/2015 9:06 AM, Ian Campbell wrote: > 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 kernel/dts as a home for such > cross-arch .dtsi files and arranges for it to be in the include path > for both dtc and cpp. The dtsi file itself is moved into a vendor > subdir in this case "arm" (the vendor, not the ARCH=). > > [0] https://git.kernel.org/cgit/linux/kernel/git/devicetree/devicetree-rebasing.git/ > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com> > Cc: Rob Herring <robh+dt@kernel.org> > Cc: Pawel Moll <pawel.moll@arm.com> > Cc: Mark Rutland <mark.rutland@arm.com> > Cc: Kumar Gala <galak@codeaurora.org> > Cc: Liviu Dudau <liviu.dudau@arm.com> > Cc: Sudeep Holla <sudeep.holla@arm.com> > Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> > Cc: Russell King <linux@arm.linux.org.uk> > Cc: Catalin Marinas <catalin.marinas@arm.com> > Cc: Will Deacon <will.deacon@arm.com> > Cc: Kristina Martsenko <kristina.martsenko@arm.com> > Cc: Kevin Hilman <khilman@linaro.org> > Cc: devicetree@vger.kernel.org > Cc: linux-kernel@vger.kernel.org > Cc: linux-arm-kernel@lists.infradead.org > Cc: linux-kbuild@vger.kernel.org > Acked-by: Mark Rutland <mark.rutland@arm.com> > Acked-by: Rob Herring <robh@kernel.org> > Acked-by: Liviu Dudau <Liviu.Dudau@arm.com> > Reviewed-by: Masahiro Yamada <yamada.masahiro@socionext.com> > --- > v2: Move to include/dt-dtsi and introduce a per-vendor subdirectory. > > v3: Move to kernel/dts. > Include new directory in DTC include path as well as cpp path, and > therefore switch back to /include/. > Update MAINTAINERS > > v4: Change path in changelog too. > Add ()s to title of 9ccd608070b6. > > v5: Remove stale reference to switching from /include/ to #include. > --- > Documentation/devicetree/bindings/arm/vexpress.txt | 2 +- > MAINTAINERS | 1 + > arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts | 2 +- > arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts | 2 +- > arch/arm/boot/dts/vexpress-v2p-ca5s.dts | 2 +- > arch/arm64/boot/dts/arm/vexpress-v2f-1xv7-ca53x2.dts | 2 +- > {arch/arm/boot/dts => kernel/dts/arm}/vexpress-v2m-rs1.dtsi | 0 > scripts/Makefile.lib | 3 ++- > 8 files changed, 8 insertions(+), 6 deletions(-) > rename {arch/arm/boot/dts => kernel/dts/arm}/vexpress-v2m-rs1.dtsi (100%) Reviewed-by: Frank Rowand <frank.rowand@sonymobile.com>
On Mon, 2015-08-03 at 17:06 +0100, Ian Campbell wrote: > 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. Hi Grant, Do you think there is any chance of getting this into 4.2-rc$NEXT or shall we wait until 4.3? I'm assuming this should go via the DT tree, but maybe it should go via an ARM tree? Ian. > > 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 kernel/dts as a home for such > cross-arch .dtsi files and arranges for it to be in the include path > for both dtc and cpp. The dtsi file itself is moved into a vendor > subdir in this case "arm" (the vendor, not the ARCH=). > > [0] https://git.kernel.org/cgit/linux/kernel/git/devicetree/devicetree > -rebasing.git/ > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com> > Cc: Rob Herring <robh+dt@kernel.org> > Cc: Pawel Moll <pawel.moll@arm.com> > Cc: Mark Rutland <mark.rutland@arm.com> > Cc: Kumar Gala <galak@codeaurora.org> > Cc: Liviu Dudau <liviu.dudau@arm.com> > Cc: Sudeep Holla <sudeep.holla@arm.com> > Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> > Cc: Russell King <linux@arm.linux.org.uk> > Cc: Catalin Marinas <catalin.marinas@arm.com> > Cc: Will Deacon <will.deacon@arm.com> > Cc: Kristina Martsenko <kristina.martsenko@arm.com> > Cc: Kevin Hilman <khilman@linaro.org> > Cc: devicetree@vger.kernel.org > Cc: linux-kernel@vger.kernel.org > Cc: linux-arm-kernel@lists.infradead.org > Cc: linux-kbuild@vger.kernel.org > Acked-by: Mark Rutland <mark.rutland@arm.com> > Acked-by: Rob Herring <robh@kernel.org> > Acked-by: Liviu Dudau <Liviu.Dudau@arm.com> > Reviewed-by: Masahiro Yamada <yamada.masahiro@socionext.com> > --- > v2: Move to include/dt-dtsi and introduce a per-vendor subdirectory. > > v3: Move to kernel/dts. > Include new directory in DTC include path as well as cpp path, and > therefore switch back to /include/. > Update MAINTAINERS > > v4: Change path in changelog too. > Add ()s to title of 9ccd608070b6. > > v5: Remove stale reference to switching from /include/ to #include. > --- > Documentation/devicetree/bindings/arm/vexpress.txt | 2 +- > MAINTAINERS | 1 + > arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts | 2 +- > arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts | 2 +- > arch/arm/boot/dts/vexpress-v2p-ca5s.dts | 2 +- > arch/arm64/boot/dts/arm/vexpress-v2f-1xv7-ca53x2.dts | 2 +- > {arch/arm/boot/dts => kernel/dts/arm}/vexpress-v2m-rs1.dtsi | 0 > scripts/Makefile.lib | 3 ++- > 8 files changed, 8 insertions(+), 6 deletions(-) > rename {arch/arm/boot/dts => kernel/dts/arm}/vexpress-v2m-rs1.dtsi > (100%) > > diff --git a/Documentation/devicetree/bindings/arm/vexpress.txt > b/Documentation/devicetree/bindings/arm/vexpress.txt > index 39844cd..b6031d9 100644 > --- a/Documentation/devicetree/bindings/arm/vexpress.txt > +++ b/Documentation/devicetree/bindings/arm/vexpress.txt > @@ -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" > }; > }; > > diff --git a/MAINTAINERS b/MAINTAINERS > index a226416..1941078 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -7537,6 +7537,7 @@ S: Maintained > F: Documentation/devicetree/ > F: arch/*/boot/dts/ > F: include/dt-bindings/ > +F: kernel/dts/ > > OPEN FIRMWARE AND DEVICE TREE OVERLAYS > M: Pantelis Antoniou <pantelis.antoniou@konsulko.com> > diff --git a/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts > b/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts > index 9420053..b144092 100644 > --- a/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts > +++ b/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts > @@ -278,6 +278,6 @@ > <0 0 41 &gic 0 41 4>, > <0 0 42 &gic 0 42 4>; > > - /include/ "vexpress-v2m-rs1.dtsi" > + /include/ "arm/vexpress-v2m-rs1.dtsi" > }; > }; > diff --git a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts > b/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts > index 17f63f7..350f402 100644 > --- a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts > +++ b/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts > @@ -636,6 +636,6 @@ > <0 0 41 &gic 0 41 4>, > <0 0 42 &gic 0 42 4>; > > - /include/ "vexpress-v2m-rs1.dtsi" > + /include/ "arm/vexpress-v2m-rs1.dtsi" > }; > }; > diff --git a/arch/arm/boot/dts/vexpress-v2p-ca5s.dts > b/arch/arm/boot/dts/vexpress-v2p-ca5s.dts > index d2709b7..585ced0 100644 > --- a/arch/arm/boot/dts/vexpress-v2p-ca5s.dts > +++ b/arch/arm/boot/dts/vexpress-v2p-ca5s.dts > @@ -248,6 +248,6 @@ > <0 0 41 &gic 0 41 4>, > <0 0 42 &gic 0 42 4>; > > - /include/ "vexpress-v2m-rs1.dtsi" > + /include/ "arm/vexpress-v2m-rs1.dtsi" > }; > }; > diff --git a/arch/arm64/boot/dts/arm/vexpress-v2f-1xv7-ca53x2.dts > b/arch/arm64/boot/dts/arm/vexpress-v2f-1xv7-ca53x2.dts > index 5b1d018..c044804 100644 > --- a/arch/arm64/boot/dts/arm/vexpress-v2f-1xv7-ca53x2.dts > +++ b/arch/arm64/boot/dts/arm/vexpress-v2f-1xv7-ca53x2.dts > @@ -186,6 +186,6 @@ > <0 0 41 &gic GIC_SPI 41 > IRQ_TYPE_LEVEL_HIGH>, > <0 0 42 &gic GIC_SPI 42 > IRQ_TYPE_LEVEL_HIGH>; > > - /include/ "../../../../arm/boot/dts/vexpress-v2m > -rs1.dtsi" > + /include/ "arm/vexpress-v2m-rs1.dtsi" > }; > }; > diff --git a/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi > b/kernel/dts/arm/vexpress-v2m-rs1.dtsi > similarity index 100% > rename from arch/arm/boot/dts/vexpress-v2m-rs1.dtsi > rename to kernel/dts/arm/vexpress-v2m-rs1.dtsi > diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib > index 79e8661..b4d9fb6 100644 > --- a/scripts/Makefile.lib > +++ b/scripts/Makefile.lib > @@ -163,6 +163,7 @@ dtc_cpp_flags = -Wp,-MD,$(depfile).pre.tmp -nostdinc > \ > -I$(srctree)/arch/$(SRCARCH)/boot/dts > \ > -I$(srctree)/arch/$(SRCARCH)/boot/dts/include > \ > -I$(srctree)/drivers/of/testcase-data > \ > + -I$(srctree)/kernel/dts > \ > -undef -D__DTS__ > > # Finds the multi-part object the current object will be linked into > @@ -285,7 +286,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) >
+arm-soc On Tue, Aug 11, 2015 at 5:07 AM, Ian Campbell <ian.campbell@citrix.com> wrote: > On Mon, 2015-08-03 at 17:06 +0100, Ian Campbell wrote: >> 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. > > Hi Grant, > > Do you think there is any chance of getting this into 4.2-rc$NEXT or shall > we wait until 4.3? I'm assuming this should go via the DT tree, but maybe > it should go via an ARM tree? I was assuming this would go thru the arm-soc tree which is why I acked it. It is getting a bit late for 4.2 at this point, but I guess the standalone tree remains broken for these platforms until this is done. Probably not such a big deal in grand scheme of things. Rob
On Fri, 2015-08-14 at 16:21 -0500, Rob Herring wrote: > +arm-soc I could've sworn I did the same at one point. Obviously not. > > On Tue, Aug 11, 2015 at 5:07 AM, Ian Campbell < > ian.campbell@citrix.com> wrote: > > On Mon, 2015-08-03 at 17:06 +0100, Ian Campbell wrote: > > > 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. > > > > Hi Grant, > > > > Do you think there is any chance of getting this into 4.2-rc$NEXT > > or shall > > we wait until 4.3? I'm assuming this should go via the DT tree, but > > maybe > > it should go via an ARM tree? > > I was assuming this would go thru the arm-soc tree which is why I > acked it. It is getting a bit late for 4.2 at this point, but I guess > the standalone tree remains broken for these platforms until this is > done. Correct. > Probably not such a big deal in grand scheme of things. I guess not. FWIW I've not pushed since the breakage started happening, so the split tree isn't broken, but it's also now however many weeks behind. Once 4.3-rc1 arrives with this fixed I'll push all the 4.2-rcN and 4.2 as well. Ian.
On Fri, Aug 14, 2015 at 2:21 PM, Rob Herring <robherring2@gmail.com> wrote: > +arm-soc > > On Tue, Aug 11, 2015 at 5:07 AM, Ian Campbell <ian.campbell@citrix.com> wrote: >> On Mon, 2015-08-03 at 17:06 +0100, Ian Campbell wrote: >>> 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. >> >> Hi Grant, >> >> Do you think there is any chance of getting this into 4.2-rc$NEXT or shall >> we wait until 4.3? I'm assuming this should go via the DT tree, but maybe >> it should go via an ARM tree? > > I was assuming this would go thru the arm-soc tree which is why I > acked it. It is getting a bit late for 4.2 at this point, but I guess > the standalone tree remains broken for these platforms until this is > done. Probably not such a big deal in grand scheme of things. I'm cc:d in the far tail of a thread, so I'll just comment here instead of further up: I'm not a fan at all of creating kernel/dts/<arch>/*, at least if there's expected to be contents in there. We don't have include/linux/asm-<arch>/ in the common tree either. Let's not create that for dts. So, while I'm all for a prefix-based sharing of DTSI files, I don't want them to go in a common kernel/dts directory. Besides sharing some snippets between arm and arm64, what else is expected to need to go into such a shared location today? -Olof
On Sun, Aug 23, 2015 at 6:13 PM, Olof Johansson <olof@lixom.net> wrote: > On Fri, Aug 14, 2015 at 2:21 PM, Rob Herring <robherring2@gmail.com> wrote: >> +arm-soc >> >> On Tue, Aug 11, 2015 at 5:07 AM, Ian Campbell <ian.campbell@citrix.com> wrote: >>> On Mon, 2015-08-03 at 17:06 +0100, Ian Campbell wrote: >>>> 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. >>> >>> Hi Grant, >>> >>> Do you think there is any chance of getting this into 4.2-rc$NEXT or shall >>> we wait until 4.3? I'm assuming this should go via the DT tree, but maybe >>> it should go via an ARM tree? >> >> I was assuming this would go thru the arm-soc tree which is why I >> acked it. It is getting a bit late for 4.2 at this point, but I guess >> the standalone tree remains broken for these platforms until this is >> done. Probably not such a big deal in grand scheme of things. > > I'm cc:d in the far tail of a thread, so I'll just comment here > instead of further up: > > I'm not a fan at all of creating kernel/dts/<arch>/*, at least if > there's expected to be contents in there. > > We don't have include/linux/asm-<arch>/ in the common tree either. > Let's not create that for dts. I'd really like to move ALL dts files from arch/*. There's nothing really tied to the architecture. They may happen to use some bindings that only apply to an architecture, but fundamentally they don't depend on the arch. Also, I'd like to be able to do "make all-dtbs" and build every dtb in the tree. That said, I'm not crazy enough to propose this re-org in the kernel tree, but would like to do that if/when we moved dts files out of the kernel. > So, while I'm all for a prefix-based sharing of DTSI files, I don't > want them to go in a common kernel/dts directory. > > Besides sharing some snippets between arm and arm64, what else is > expected to need to go into such a shared location today? Overlays. You easily have the same sharing of common boards. There are also usecases of overlays on architectures that don't generally use DT (x86). We could also see sharing between PPC and ARM on FSL networking parts, but I've not heard if they actually have that problem. Rob
On Sun, Aug 23, 2015 at 4:42 PM, Rob Herring <robherring2@gmail.com> wrote: > On Sun, Aug 23, 2015 at 6:13 PM, Olof Johansson <olof@lixom.net> wrote: >> On Fri, Aug 14, 2015 at 2:21 PM, Rob Herring <robherring2@gmail.com> wrote: >>> +arm-soc >>> >>> On Tue, Aug 11, 2015 at 5:07 AM, Ian Campbell <ian.campbell@citrix.com> wrote: >>>> On Mon, 2015-08-03 at 17:06 +0100, Ian Campbell wrote: >>>>> 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. >>>> >>>> Hi Grant, >>>> >>>> Do you think there is any chance of getting this into 4.2-rc$NEXT or shall >>>> we wait until 4.3? I'm assuming this should go via the DT tree, but maybe >>>> it should go via an ARM tree? >>> >>> I was assuming this would go thru the arm-soc tree which is why I >>> acked it. It is getting a bit late for 4.2 at this point, but I guess >>> the standalone tree remains broken for these platforms until this is >>> done. Probably not such a big deal in grand scheme of things. >> >> I'm cc:d in the far tail of a thread, so I'll just comment here >> instead of further up: >> >> I'm not a fan at all of creating kernel/dts/<arch>/*, at least if >> there's expected to be contents in there. >> >> We don't have include/linux/asm-<arch>/ in the common tree either. >> Let's not create that for dts. > > I'd really like to move ALL dts files from arch/*. There's nothing > really tied to the architecture. They may happen to use some bindings > that only apply to an architecture, but fundamentally they don't > depend on the arch. Also, I'd like to be able to do "make all-dtbs" > and build every dtb in the tree. The main benefit of keeping it per architecture and platform is that it partitions the maintainer and review space a bit. Right now it's not possible to do even per-arch "all-dtbs" since only the currently configured platforms will get their dtbs compiled. > That said, I'm not crazy enough to propose this re-org in the kernel > tree, but would like to do that if/when we moved dts files out of the > kernel. I believe this is currently still quite firmly in the "if" stage. :( >> So, while I'm all for a prefix-based sharing of DTSI files, I don't >> want them to go in a common kernel/dts directory. >> >> Besides sharing some snippets between arm and arm64, what else is >> expected to need to go into such a shared location today? > > Overlays. You easily have the same sharing of common boards. There are > also usecases of overlays on architectures that don't generally use DT > (x86). Ok, overlays might make sense if they can be made to work generically enough and not be tied to expectations of the base board platform. Still, even then I don't see dts as a core kernel feature (kernel/*), lib/* might make more sense. And I don't want to see things like vexpress stuff in there. > We could also see sharing between PPC and ARM on FSL networking parts, > but I've not heard if they actually have that problem. Yeah, there could potentially be some sharing between MIPS and ARM{,64} too, but I don't know if we'll actually see it done. -Olof
On Sun, Aug 23, 2015 at 6:52 PM, Olof Johansson <olof@lixom.net> wrote: > On Sun, Aug 23, 2015 at 4:42 PM, Rob Herring <robherring2@gmail.com> wrote: >> On Sun, Aug 23, 2015 at 6:13 PM, Olof Johansson <olof@lixom.net> wrote: >>> On Fri, Aug 14, 2015 at 2:21 PM, Rob Herring <robherring2@gmail.com> wrote: >>>> +arm-soc >>>> >>>> On Tue, Aug 11, 2015 at 5:07 AM, Ian Campbell <ian.campbell@citrix.com> wrote: >>>>> On Mon, 2015-08-03 at 17:06 +0100, Ian Campbell wrote: >>>>>> 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. >>>>> >>>>> Hi Grant, >>>>> >>>>> Do you think there is any chance of getting this into 4.2-rc$NEXT or shall >>>>> we wait until 4.3? I'm assuming this should go via the DT tree, but maybe >>>>> it should go via an ARM tree? >>>> >>>> I was assuming this would go thru the arm-soc tree which is why I >>>> acked it. It is getting a bit late for 4.2 at this point, but I guess >>>> the standalone tree remains broken for these platforms until this is >>>> done. Probably not such a big deal in grand scheme of things. >>> >>> I'm cc:d in the far tail of a thread, so I'll just comment here >>> instead of further up: >>> >>> I'm not a fan at all of creating kernel/dts/<arch>/*, at least if >>> there's expected to be contents in there. >>> >>> We don't have include/linux/asm-<arch>/ in the common tree either. >>> Let's not create that for dts. >> >> I'd really like to move ALL dts files from arch/*. There's nothing >> really tied to the architecture. They may happen to use some bindings >> that only apply to an architecture, but fundamentally they don't >> depend on the arch. Also, I'd like to be able to do "make all-dtbs" >> and build every dtb in the tree. > > The main benefit of keeping it per architecture and platform is that > it partitions the maintainer and review space a bit. Except we have a fire hose and a bunch of dripping faucets. > Right now it's not possible to do even per-arch "all-dtbs" since only > the currently configured platforms will get their dtbs compiled. I know. It's been on my todo list for a while. Having that per arch at least would be an improvement. Having it arch independent would mean I don't even need a cross-compiler (probably). >> That said, I'm not crazy enough to propose this re-org in the kernel >> tree, but would like to do that if/when we moved dts files out of the >> kernel. > > I believe this is currently still quite firmly in the "if" stage. :( There's some renewed discussion around it recently, but still no one to step up and do it. >>> So, while I'm all for a prefix-based sharing of DTSI files, I don't >>> want them to go in a common kernel/dts directory. >>> >>> Besides sharing some snippets between arm and arm64, what else is >>> expected to need to go into such a shared location today? >> >> Overlays. You easily have the same sharing of common boards. There are >> also usecases of overlays on architectures that don't generally use DT >> (x86). > > Ok, overlays might make sense if they can be made to work generically > enough and not be tied to expectations of the base board platform. That's the goal at least. > Still, even then I don't see dts as a core kernel feature (kernel/*), > lib/* might make more sense. And I don't want to see things like > vexpress stuff in there. How's it any different than vexpress board stuff under drivers/. The original suggestion was under include/dt-bindings/. Not sure if you saw or like that? >> We could also see sharing between PPC and ARM on FSL networking parts, >> but I've not heard if they actually have that problem. > > Yeah, there could potentially be some sharing between MIPS and > ARM{,64} too, but I don't know if we'll actually see it done. Yep, hard to say. Rob
Hi, On Mon, Aug 24, 2015 at 1:58 PM, Rob Herring <robherring2@gmail.com> wrote: > On Sun, Aug 23, 2015 at 6:52 PM, Olof Johansson <olof@lixom.net> wrote: >> On Sun, Aug 23, 2015 at 4:42 PM, Rob Herring <robherring2@gmail.com> wrote: >>> On Sun, Aug 23, 2015 at 6:13 PM, Olof Johansson <olof@lixom.net> wrote: >>>> On Fri, Aug 14, 2015 at 2:21 PM, Rob Herring <robherring2@gmail.com> wrote: >>>>> +arm-soc >>>>> >>>>> On Tue, Aug 11, 2015 at 5:07 AM, Ian Campbell <ian.campbell@citrix.com> wrote: >>>>>> On Mon, 2015-08-03 at 17:06 +0100, Ian Campbell wrote: >>>>>>> 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. >>>>>> >>>>>> Hi Grant, >>>>>> >>>>>> Do you think there is any chance of getting this into 4.2-rc$NEXT or shall >>>>>> we wait until 4.3? I'm assuming this should go via the DT tree, but maybe >>>>>> it should go via an ARM tree? >>>>> >>>>> I was assuming this would go thru the arm-soc tree which is why I >>>>> acked it. It is getting a bit late for 4.2 at this point, but I guess >>>>> the standalone tree remains broken for these platforms until this is >>>>> done. Probably not such a big deal in grand scheme of things. >>>> >>>> I'm cc:d in the far tail of a thread, so I'll just comment here >>>> instead of further up: >>>> >>>> I'm not a fan at all of creating kernel/dts/<arch>/*, at least if >>>> there's expected to be contents in there. >>>> >>>> We don't have include/linux/asm-<arch>/ in the common tree either. >>>> Let's not create that for dts. >>> >>> I'd really like to move ALL dts files from arch/*. There's nothing >>> really tied to the architecture. They may happen to use some bindings >>> that only apply to an architecture, but fundamentally they don't >>> depend on the arch. Also, I'd like to be able to do "make all-dtbs" >>> and build every dtb in the tree. >> >> The main benefit of keeping it per architecture and platform is that >> it partitions the maintainer and review space a bit. > > Except we have a fire hose and a bunch of dripping faucets. > >> Right now it's not possible to do even per-arch "all-dtbs" since only >> the currently configured platforms will get their dtbs compiled. > > I know. It's been on my todo list for a while. Having that per arch at > least would be an improvement. Having it arch independent would mean I > don't even need a cross-compiler (probably). Yeah, seems like something that should work quite well in the scope of Ian's tree if nothing else. Maybe we should build both dtb-y and dtb-n when COMPILE_TEST is set? :) >>> That said, I'm not crazy enough to propose this re-org in the kernel >>> tree, but would like to do that if/when we moved dts files out of the >>> kernel. >> >> I believe this is currently still quite firmly in the "if" stage. :( > > There's some renewed discussion around it recently, but still no one > to step up and do it. And I believe there are still major concerns from platform maintainers that it will make development much more complicated. >>>> So, while I'm all for a prefix-based sharing of DTSI files, I don't >>>> want them to go in a common kernel/dts directory. >>>> >>>> Besides sharing some snippets between arm and arm64, what else is >>>> expected to need to go into such a shared location today? >>> >>> Overlays. You easily have the same sharing of common boards. There are >>> also usecases of overlays on architectures that don't generally use DT >>> (x86). >> >> Ok, overlays might make sense if they can be made to work generically >> enough and not be tied to expectations of the base board platform. > > That's the goal at least. > >> Still, even then I don't see dts as a core kernel feature (kernel/*), >> lib/* might make more sense. And I don't want to see things like >> vexpress stuff in there. > > How's it any different than vexpress board stuff under drivers/. I'm not sure how to interpret this argument. We don't have vexpress board stuff under kernel/boards/, so we shouldn't have the corresponding DT contents under kernel/dts. > The original suggestion was under include/dt-bindings/. Not sure if > you saw or like that? We don't store driver code in include/, so I don't see why we should store machine descriptions there. Something like lib/ seems more appropriate. Or drivers/..., but I suspect that could cause further confusion on the expected separation of binding/hardware description and the consuming drivers. >>> We could also see sharing between PPC and ARM on FSL networking parts, >>> but I've not heard if they actually have that problem. >> >> Yeah, there could potentially be some sharing between MIPS and >> ARM{,64} too, but I don't know if we'll actually see it done. > > Yep, hard to say. > > Rob
On Mon, 2015-08-24 at 15:22 -0700, Olof Johansson wrote: > Hi, > > On Mon, Aug 24, 2015 at 1:58 PM, Rob Herring <robherring2@gmail.com> > wrote: > > On Sun, Aug 23, 2015 at 6:52 PM, Olof Johansson <olof@lixom.net> wrote: > > > On Sun, Aug 23, 2015 at 4:42 PM, Rob Herring <robherring2@gmail.com> > > > wrote: > > > > On Sun, Aug 23, 2015 at 6:13 PM, Olof Johansson <olof@lixom.net> > > > > wrote: > > > > > > > > Right now it's not possible to do even per-arch "all-dtbs" since only > > > the currently configured platforms will get their dtbs compiled. > > > > I know. It's been on my todo list for a while. Having that per arch at > > least would be an improvement. Having it arch independent would mean I > > don't even need a cross-compiler (probably). > > Yeah, seems like something that should work quite well in the scope of > Ian's tree if nothing else. In the split tree "make all -k" will already build every dtb (and always has done), in fact this is how I discovered the breakage which I'm trying to address with this patch since the daily cronjob which does the conversion runs this. > Something like lib/ seems more appropriate. Or drivers/..., but I > suspect that could cause further confusion on the expected separation > of binding/hardware description and the consuming drivers. I'm quite happy to rework the patch with whatever path is settled upon. Or if someone has an alternative suggestion for how to fix the build in the split devicetree git tree I'm happy to give that a go too. > > > > We could also see sharing between PPC and ARM on FSL networking > > > > parts, > > > > but I've not heard if they actually have that problem. > > > > > > Yeah, there could potentially be some sharing between MIPS and > > > ARM{,64} too, but I don't know if we'll actually see it done. > > > > Yep, hard to say. > > > > Rob
Hi Olof, On Mon, 2015-08-24 at 15:22 -0700, Olof Johansson wrote: A little while ago you were trying to explain the scheme you would like to see on IRC but my thick skull was getting in the way :-/ Then you had to run... So, ping? Ian.
diff --git a/Documentation/devicetree/bindings/arm/vexpress.txt b/Documentation/devicetree/bindings/arm/vexpress.txt index 39844cd..b6031d9 100644 --- a/Documentation/devicetree/bindings/arm/vexpress.txt +++ b/Documentation/devicetree/bindings/arm/vexpress.txt @@ -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" }; }; diff --git a/MAINTAINERS b/MAINTAINERS index a226416..1941078 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -7537,6 +7537,7 @@ S: Maintained F: Documentation/devicetree/ F: arch/*/boot/dts/ F: include/dt-bindings/ +F: kernel/dts/ OPEN FIRMWARE AND DEVICE TREE OVERLAYS M: Pantelis Antoniou <pantelis.antoniou@konsulko.com> diff --git a/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts b/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts index 9420053..b144092 100644 --- a/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts +++ b/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts @@ -278,6 +278,6 @@ <0 0 41 &gic 0 41 4>, <0 0 42 &gic 0 42 4>; - /include/ "vexpress-v2m-rs1.dtsi" + /include/ "arm/vexpress-v2m-rs1.dtsi" }; }; diff --git a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts b/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts index 17f63f7..350f402 100644 --- a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts +++ b/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts @@ -636,6 +636,6 @@ <0 0 41 &gic 0 41 4>, <0 0 42 &gic 0 42 4>; - /include/ "vexpress-v2m-rs1.dtsi" + /include/ "arm/vexpress-v2m-rs1.dtsi" }; }; diff --git a/arch/arm/boot/dts/vexpress-v2p-ca5s.dts b/arch/arm/boot/dts/vexpress-v2p-ca5s.dts index d2709b7..585ced0 100644 --- a/arch/arm/boot/dts/vexpress-v2p-ca5s.dts +++ b/arch/arm/boot/dts/vexpress-v2p-ca5s.dts @@ -248,6 +248,6 @@ <0 0 41 &gic 0 41 4>, <0 0 42 &gic 0 42 4>; - /include/ "vexpress-v2m-rs1.dtsi" + /include/ "arm/vexpress-v2m-rs1.dtsi" }; }; diff --git a/arch/arm64/boot/dts/arm/vexpress-v2f-1xv7-ca53x2.dts b/arch/arm64/boot/dts/arm/vexpress-v2f-1xv7-ca53x2.dts index 5b1d018..c044804 100644 --- a/arch/arm64/boot/dts/arm/vexpress-v2f-1xv7-ca53x2.dts +++ b/arch/arm64/boot/dts/arm/vexpress-v2f-1xv7-ca53x2.dts @@ -186,6 +186,6 @@ <0 0 41 &gic GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>, <0 0 42 &gic GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; - /include/ "../../../../arm/boot/dts/vexpress-v2m-rs1.dtsi" + /include/ "arm/vexpress-v2m-rs1.dtsi" }; }; diff --git a/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi b/kernel/dts/arm/vexpress-v2m-rs1.dtsi similarity index 100% rename from arch/arm/boot/dts/vexpress-v2m-rs1.dtsi rename to kernel/dts/arm/vexpress-v2m-rs1.dtsi diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 79e8661..b4d9fb6 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -163,6 +163,7 @@ dtc_cpp_flags = -Wp,-MD,$(depfile).pre.tmp -nostdinc \ -I$(srctree)/arch/$(SRCARCH)/boot/dts \ -I$(srctree)/arch/$(SRCARCH)/boot/dts/include \ -I$(srctree)/drivers/of/testcase-data \ + -I$(srctree)/kernel/dts \ -undef -D__DTS__ # Finds the multi-part object the current object will be linked into @@ -285,7 +286,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)