diff mbox

[v5] dtb: Create a common home for cross-architecture dtsi files.

Message ID 1438618000-1091-1-git-send-email-ian.campbell@citrix.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ian Campbell Aug. 3, 2015, 4:06 p.m. UTC
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%)

Comments

Frank Rowand Aug. 3, 2015, 4:47 p.m. UTC | #1
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>
Ian Campbell Aug. 11, 2015, 10:07 a.m. UTC | #2
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)
>
Rob Herring Aug. 14, 2015, 9:21 p.m. UTC | #3
+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
Ian Campbell Aug. 16, 2015, 9:01 a.m. UTC | #4
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.
Olof Johansson Aug. 23, 2015, 11:13 p.m. UTC | #5
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
Rob Herring Aug. 23, 2015, 11:42 p.m. UTC | #6
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
Olof Johansson Aug. 23, 2015, 11:52 p.m. UTC | #7
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
Rob Herring Aug. 24, 2015, 8:58 p.m. UTC | #8
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
Olof Johansson Aug. 24, 2015, 10:22 p.m. UTC | #9
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
Ian Campbell Sept. 1, 2015, 8:44 a.m. UTC | #10
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
Ian Campbell Sept. 17, 2015, 11:07 a.m. UTC | #11
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 mbox

Patch

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)