
On Thu, Feb 06, 2014 at 02:50:50PM +0900, Masahiro Yamada wrote:
Hello Simon,
Hi Masahiro,
On 4 February 2014 02:38, Masahiro Yamada yamada.m@jp.panasonic.com wrote:
Unlike Linux Kernel, U-Boot historically had *.dts files under board/$(VENDOR)/dts/ and *.dtsi files under arch/$(ARCH)/dts/.
I think arch/$(ARCH)/dts dicretory is a better location to store both *.dts and *.dtsi files.
For example, before this commit, board/xilinx/dts directory had both MicroBlaze dts (microblaze-generic.dts) and ARM dts (zynq-*.dts), which are totally unrelated.
This commit moves *.dts to arch/$(ARCH)/dts/ directories, allowing us to describe nicely mutiple DTBs generation in the next commit.
What is the motivation for this? I worry that we might end up with a lot of files in one directory.
We have only 35 .dtsi and .dts for ARM. I think it will be OK at least until we have 500.
Linux v3.13 has 500 .dtsi and .dts files in arch/arm/boot/dts/ and they are still adding device trees to that directory.
Last I saw the plan, still, is to remove them from the kernel "someday". Hopefully when that happens we can also leverage what comes next.
I have no idea if they will keep going, or someone will scream and turn around.
Anyway, when Linux guys someday invents a nice idea to work arond increasing device trees, we can import it to U-Boot. It should be easy for us because we already have a similar build system.
True.
One benefit of the current approach is that .dts files are split up by vendor. Even if we put the SoC .dtsi files in arch/arm, perhaps there is a benefit in leaving the board .dts files in board/<vendor>?
I don't like the idea to split up by vendor.
Now Xilinx has device trees both for ARM and Microblaze, resulting in totally unrelated device trees in one directory.
This, I think is backwards. Xilinx has (and Freescale and others are or will be joining them) a lot of things shared between them as IP blocks get reused from non-ARM to ARM CPUs. So there's a level of DT sharing for these blocks between the CPUs. The kernel is going to start having this problem as vendors start dropping their arm IP blocks into ARMv8 SoCs, and those would be in arch/arm64/. The question is, will people care enough about the duplication, or just live with it.