diff mbox

[U-Boot,v2,2/3] dts: move device tree sources to arch/$(ARCH)/dts/

Message ID 1391506721-32462-3-git-send-email-yamada.m@jp.panasonic.com
State Superseded
Delegated to: Tom Rini
Headers show

Commit Message

Masahiro Yamada Feb. 4, 2014, 9:38 a.m. UTC
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.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
---

Changes in v2:
  - Newly added

 {board/samsung => arch/arm}/dts/exynos5250-arndale.dts         | 0
 {board/samsung => arch/arm}/dts/exynos5250-smdk5250.dts        | 0
 {board/samsung => arch/arm}/dts/exynos5250-snow.dts            | 0
 {board/samsung => arch/arm}/dts/exynos5420-smdk5420.dts        | 0
 {board/nvidia => arch/arm}/dts/tegra114-dalmore.dts            | 0
 {board/toradex => arch/arm}/dts/tegra20-colibri_t20_iris.dts   | 0
 {board/nvidia => arch/arm}/dts/tegra20-harmony.dts             | 0
 {board/avionic-design => arch/arm}/dts/tegra20-medcom-wide.dts | 0
 {board/compal => arch/arm}/dts/tegra20-paz00.dts               | 0
 {board/avionic-design => arch/arm}/dts/tegra20-plutux.dts      | 0
 {board/nvidia => arch/arm}/dts/tegra20-seaboard.dts            | 0
 {board/avionic-design => arch/arm}/dts/tegra20-tamonten.dtsi   | 0
 {board/avionic-design => arch/arm}/dts/tegra20-tec.dts         | 0
 {board/compulab => arch/arm}/dts/tegra20-trimslice.dts         | 0
 {board/nvidia => arch/arm}/dts/tegra20-ventana.dts             | 0
 {board/nvidia => arch/arm}/dts/tegra20-whistler.dts            | 0
 {board/nvidia => arch/arm}/dts/tegra30-beaver.dts              | 0
 {board/nvidia => arch/arm}/dts/tegra30-cardhu.dts              | 0
 {board/avionic-design => arch/arm}/dts/tegra30-tamonten.dtsi   | 0
 {board/avionic-design => arch/arm}/dts/tegra30-tec-ng.dts      | 0
 {board/xilinx => arch/arm}/dts/zynq-microzed.dts               | 0
 {board/xilinx => arch/arm}/dts/zynq-zc702.dts                  | 0
 {board/xilinx => arch/arm}/dts/zynq-zc706.dts                  | 0
 {board/xilinx => arch/arm}/dts/zynq-zc770-xm010.dts            | 0
 {board/xilinx => arch/arm}/dts/zynq-zc770-xm012.dts            | 0
 {board/xilinx => arch/arm}/dts/zynq-zc770-xm013.dts            | 0
 {board/xilinx => arch/arm}/dts/zynq-zed.dts                    | 0
 {board/xilinx => arch/microblaze}/dts/microblaze-generic.dts   | 0
 {board/chromebook-x86 => arch/x86}/dts/alex.dts                | 0
 {board/chromebook-x86 => arch/x86}/dts/link.dts                | 0
 dts/Makefile                                                   | 4 ++--
 scripts/Makefile.lib                                           | 1 -
 32 files changed, 2 insertions(+), 3 deletions(-)
 rename {board/samsung => arch/arm}/dts/exynos5250-arndale.dts (100%)
 rename {board/samsung => arch/arm}/dts/exynos5250-smdk5250.dts (100%)
 rename {board/samsung => arch/arm}/dts/exynos5250-snow.dts (100%)
 rename {board/samsung => arch/arm}/dts/exynos5420-smdk5420.dts (100%)
 rename {board/nvidia => arch/arm}/dts/tegra114-dalmore.dts (100%)
 rename {board/toradex => arch/arm}/dts/tegra20-colibri_t20_iris.dts (100%)
 rename {board/nvidia => arch/arm}/dts/tegra20-harmony.dts (100%)
 rename {board/avionic-design => arch/arm}/dts/tegra20-medcom-wide.dts (100%)
 rename {board/compal => arch/arm}/dts/tegra20-paz00.dts (100%)
 rename {board/avionic-design => arch/arm}/dts/tegra20-plutux.dts (100%)
 rename {board/nvidia => arch/arm}/dts/tegra20-seaboard.dts (100%)
 rename {board/avionic-design => arch/arm}/dts/tegra20-tamonten.dtsi (100%)
 rename {board/avionic-design => arch/arm}/dts/tegra20-tec.dts (100%)
 rename {board/compulab => arch/arm}/dts/tegra20-trimslice.dts (100%)
 rename {board/nvidia => arch/arm}/dts/tegra20-ventana.dts (100%)
 rename {board/nvidia => arch/arm}/dts/tegra20-whistler.dts (100%)
 rename {board/nvidia => arch/arm}/dts/tegra30-beaver.dts (100%)
 rename {board/nvidia => arch/arm}/dts/tegra30-cardhu.dts (100%)
 rename {board/avionic-design => arch/arm}/dts/tegra30-tamonten.dtsi (100%)
 rename {board/avionic-design => arch/arm}/dts/tegra30-tec-ng.dts (100%)
 rename {board/xilinx => arch/arm}/dts/zynq-microzed.dts (100%)
 rename {board/xilinx => arch/arm}/dts/zynq-zc702.dts (100%)
 rename {board/xilinx => arch/arm}/dts/zynq-zc706.dts (100%)
 rename {board/xilinx => arch/arm}/dts/zynq-zc770-xm010.dts (100%)
 rename {board/xilinx => arch/arm}/dts/zynq-zc770-xm012.dts (100%)
 rename {board/xilinx => arch/arm}/dts/zynq-zc770-xm013.dts (100%)
 rename {board/xilinx => arch/arm}/dts/zynq-zed.dts (100%)
 rename {board/xilinx => arch/microblaze}/dts/microblaze-generic.dts (100%)
 rename {board/chromebook-x86 => arch/x86}/dts/alex.dts (100%)
 rename {board/chromebook-x86 => arch/x86}/dts/link.dts (100%)

Comments

Simon Glass Feb. 5, 2014, 9:47 p.m. UTC | #1
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. 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 have strong feelings, just questing this...

Regards,
Simon

>
> Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
> ---
>
> Changes in v2:
>   - Newly added
>
>  {board/samsung => arch/arm}/dts/exynos5250-arndale.dts         | 0
>  {board/samsung => arch/arm}/dts/exynos5250-smdk5250.dts        | 0
>  {board/samsung => arch/arm}/dts/exynos5250-snow.dts            | 0
>  {board/samsung => arch/arm}/dts/exynos5420-smdk5420.dts        | 0
>  {board/nvidia => arch/arm}/dts/tegra114-dalmore.dts            | 0
>  {board/toradex => arch/arm}/dts/tegra20-colibri_t20_iris.dts   | 0
>  {board/nvidia => arch/arm}/dts/tegra20-harmony.dts             | 0
>  {board/avionic-design => arch/arm}/dts/tegra20-medcom-wide.dts | 0
>  {board/compal => arch/arm}/dts/tegra20-paz00.dts               | 0
>  {board/avionic-design => arch/arm}/dts/tegra20-plutux.dts      | 0
>  {board/nvidia => arch/arm}/dts/tegra20-seaboard.dts            | 0
>  {board/avionic-design => arch/arm}/dts/tegra20-tamonten.dtsi   | 0
>  {board/avionic-design => arch/arm}/dts/tegra20-tec.dts         | 0
>  {board/compulab => arch/arm}/dts/tegra20-trimslice.dts         | 0
>  {board/nvidia => arch/arm}/dts/tegra20-ventana.dts             | 0
>  {board/nvidia => arch/arm}/dts/tegra20-whistler.dts            | 0
>  {board/nvidia => arch/arm}/dts/tegra30-beaver.dts              | 0
>  {board/nvidia => arch/arm}/dts/tegra30-cardhu.dts              | 0
>  {board/avionic-design => arch/arm}/dts/tegra30-tamonten.dtsi   | 0
>  {board/avionic-design => arch/arm}/dts/tegra30-tec-ng.dts      | 0
>  {board/xilinx => arch/arm}/dts/zynq-microzed.dts               | 0
>  {board/xilinx => arch/arm}/dts/zynq-zc702.dts                  | 0
>  {board/xilinx => arch/arm}/dts/zynq-zc706.dts                  | 0
>  {board/xilinx => arch/arm}/dts/zynq-zc770-xm010.dts            | 0
>  {board/xilinx => arch/arm}/dts/zynq-zc770-xm012.dts            | 0
>  {board/xilinx => arch/arm}/dts/zynq-zc770-xm013.dts            | 0
>  {board/xilinx => arch/arm}/dts/zynq-zed.dts                    | 0
>  {board/xilinx => arch/microblaze}/dts/microblaze-generic.dts   | 0
>  {board/chromebook-x86 => arch/x86}/dts/alex.dts                | 0
>  {board/chromebook-x86 => arch/x86}/dts/link.dts                | 0
>  dts/Makefile                                                   | 4 ++--
>  scripts/Makefile.lib                                           | 1 -
>  32 files changed, 2 insertions(+), 3 deletions(-)
>  rename {board/samsung => arch/arm}/dts/exynos5250-arndale.dts (100%)
>  rename {board/samsung => arch/arm}/dts/exynos5250-smdk5250.dts (100%)
>  rename {board/samsung => arch/arm}/dts/exynos5250-snow.dts (100%)
>  rename {board/samsung => arch/arm}/dts/exynos5420-smdk5420.dts (100%)
>  rename {board/nvidia => arch/arm}/dts/tegra114-dalmore.dts (100%)
>  rename {board/toradex => arch/arm}/dts/tegra20-colibri_t20_iris.dts (100%)
>  rename {board/nvidia => arch/arm}/dts/tegra20-harmony.dts (100%)
>  rename {board/avionic-design => arch/arm}/dts/tegra20-medcom-wide.dts (100%)
>  rename {board/compal => arch/arm}/dts/tegra20-paz00.dts (100%)
>  rename {board/avionic-design => arch/arm}/dts/tegra20-plutux.dts (100%)
>  rename {board/nvidia => arch/arm}/dts/tegra20-seaboard.dts (100%)
>  rename {board/avionic-design => arch/arm}/dts/tegra20-tamonten.dtsi (100%)
>  rename {board/avionic-design => arch/arm}/dts/tegra20-tec.dts (100%)
>  rename {board/compulab => arch/arm}/dts/tegra20-trimslice.dts (100%)
>  rename {board/nvidia => arch/arm}/dts/tegra20-ventana.dts (100%)
>  rename {board/nvidia => arch/arm}/dts/tegra20-whistler.dts (100%)
>  rename {board/nvidia => arch/arm}/dts/tegra30-beaver.dts (100%)
>  rename {board/nvidia => arch/arm}/dts/tegra30-cardhu.dts (100%)
>  rename {board/avionic-design => arch/arm}/dts/tegra30-tamonten.dtsi (100%)
>  rename {board/avionic-design => arch/arm}/dts/tegra30-tec-ng.dts (100%)
>  rename {board/xilinx => arch/arm}/dts/zynq-microzed.dts (100%)
>  rename {board/xilinx => arch/arm}/dts/zynq-zc702.dts (100%)
>  rename {board/xilinx => arch/arm}/dts/zynq-zc706.dts (100%)
>  rename {board/xilinx => arch/arm}/dts/zynq-zc770-xm010.dts (100%)
>  rename {board/xilinx => arch/arm}/dts/zynq-zc770-xm012.dts (100%)
>  rename {board/xilinx => arch/arm}/dts/zynq-zc770-xm013.dts (100%)
>  rename {board/xilinx => arch/arm}/dts/zynq-zed.dts (100%)
>  rename {board/xilinx => arch/microblaze}/dts/microblaze-generic.dts (100%)
>  rename {board/chromebook-x86 => arch/x86}/dts/alex.dts (100%)
>  rename {board/chromebook-x86 => arch/x86}/dts/link.dts (100%)
>
> diff --git a/board/samsung/dts/exynos5250-arndale.dts b/arch/arm/dts/exynos5250-arndale.dts
> similarity index 100%
> rename from board/samsung/dts/exynos5250-arndale.dts
> rename to arch/arm/dts/exynos5250-arndale.dts
> diff --git a/board/samsung/dts/exynos5250-smdk5250.dts b/arch/arm/dts/exynos5250-smdk5250.dts
> similarity index 100%
> rename from board/samsung/dts/exynos5250-smdk5250.dts
> rename to arch/arm/dts/exynos5250-smdk5250.dts
> diff --git a/board/samsung/dts/exynos5250-snow.dts b/arch/arm/dts/exynos5250-snow.dts
> similarity index 100%
> rename from board/samsung/dts/exynos5250-snow.dts
> rename to arch/arm/dts/exynos5250-snow.dts
> diff --git a/board/samsung/dts/exynos5420-smdk5420.dts b/arch/arm/dts/exynos5420-smdk5420.dts
> similarity index 100%
> rename from board/samsung/dts/exynos5420-smdk5420.dts
> rename to arch/arm/dts/exynos5420-smdk5420.dts
> diff --git a/board/nvidia/dts/tegra114-dalmore.dts b/arch/arm/dts/tegra114-dalmore.dts
> similarity index 100%
> rename from board/nvidia/dts/tegra114-dalmore.dts
> rename to arch/arm/dts/tegra114-dalmore.dts
> diff --git a/board/toradex/dts/tegra20-colibri_t20_iris.dts b/arch/arm/dts/tegra20-colibri_t20_iris.dts
> similarity index 100%
> rename from board/toradex/dts/tegra20-colibri_t20_iris.dts
> rename to arch/arm/dts/tegra20-colibri_t20_iris.dts
> diff --git a/board/nvidia/dts/tegra20-harmony.dts b/arch/arm/dts/tegra20-harmony.dts
> similarity index 100%
> rename from board/nvidia/dts/tegra20-harmony.dts
> rename to arch/arm/dts/tegra20-harmony.dts
> diff --git a/board/avionic-design/dts/tegra20-medcom-wide.dts b/arch/arm/dts/tegra20-medcom-wide.dts
> similarity index 100%
> rename from board/avionic-design/dts/tegra20-medcom-wide.dts
> rename to arch/arm/dts/tegra20-medcom-wide.dts
> diff --git a/board/compal/dts/tegra20-paz00.dts b/arch/arm/dts/tegra20-paz00.dts
> similarity index 100%
> rename from board/compal/dts/tegra20-paz00.dts
> rename to arch/arm/dts/tegra20-paz00.dts
> diff --git a/board/avionic-design/dts/tegra20-plutux.dts b/arch/arm/dts/tegra20-plutux.dts
> similarity index 100%
> rename from board/avionic-design/dts/tegra20-plutux.dts
> rename to arch/arm/dts/tegra20-plutux.dts
> diff --git a/board/nvidia/dts/tegra20-seaboard.dts b/arch/arm/dts/tegra20-seaboard.dts
> similarity index 100%
> rename from board/nvidia/dts/tegra20-seaboard.dts
> rename to arch/arm/dts/tegra20-seaboard.dts
> diff --git a/board/avionic-design/dts/tegra20-tamonten.dtsi b/arch/arm/dts/tegra20-tamonten.dtsi
> similarity index 100%
> rename from board/avionic-design/dts/tegra20-tamonten.dtsi
> rename to arch/arm/dts/tegra20-tamonten.dtsi
> diff --git a/board/avionic-design/dts/tegra20-tec.dts b/arch/arm/dts/tegra20-tec.dts
> similarity index 100%
> rename from board/avionic-design/dts/tegra20-tec.dts
> rename to arch/arm/dts/tegra20-tec.dts
> diff --git a/board/compulab/dts/tegra20-trimslice.dts b/arch/arm/dts/tegra20-trimslice.dts
> similarity index 100%
> rename from board/compulab/dts/tegra20-trimslice.dts
> rename to arch/arm/dts/tegra20-trimslice.dts
> diff --git a/board/nvidia/dts/tegra20-ventana.dts b/arch/arm/dts/tegra20-ventana.dts
> similarity index 100%
> rename from board/nvidia/dts/tegra20-ventana.dts
> rename to arch/arm/dts/tegra20-ventana.dts
> diff --git a/board/nvidia/dts/tegra20-whistler.dts b/arch/arm/dts/tegra20-whistler.dts
> similarity index 100%
> rename from board/nvidia/dts/tegra20-whistler.dts
> rename to arch/arm/dts/tegra20-whistler.dts
> diff --git a/board/nvidia/dts/tegra30-beaver.dts b/arch/arm/dts/tegra30-beaver.dts
> similarity index 100%
> rename from board/nvidia/dts/tegra30-beaver.dts
> rename to arch/arm/dts/tegra30-beaver.dts
> diff --git a/board/nvidia/dts/tegra30-cardhu.dts b/arch/arm/dts/tegra30-cardhu.dts
> similarity index 100%
> rename from board/nvidia/dts/tegra30-cardhu.dts
> rename to arch/arm/dts/tegra30-cardhu.dts
> diff --git a/board/avionic-design/dts/tegra30-tamonten.dtsi b/arch/arm/dts/tegra30-tamonten.dtsi
> similarity index 100%
> rename from board/avionic-design/dts/tegra30-tamonten.dtsi
> rename to arch/arm/dts/tegra30-tamonten.dtsi
> diff --git a/board/avionic-design/dts/tegra30-tec-ng.dts b/arch/arm/dts/tegra30-tec-ng.dts
> similarity index 100%
> rename from board/avionic-design/dts/tegra30-tec-ng.dts
> rename to arch/arm/dts/tegra30-tec-ng.dts
> diff --git a/board/xilinx/dts/zynq-microzed.dts b/arch/arm/dts/zynq-microzed.dts
> similarity index 100%
> rename from board/xilinx/dts/zynq-microzed.dts
> rename to arch/arm/dts/zynq-microzed.dts
> diff --git a/board/xilinx/dts/zynq-zc702.dts b/arch/arm/dts/zynq-zc702.dts
> similarity index 100%
> rename from board/xilinx/dts/zynq-zc702.dts
> rename to arch/arm/dts/zynq-zc702.dts
> diff --git a/board/xilinx/dts/zynq-zc706.dts b/arch/arm/dts/zynq-zc706.dts
> similarity index 100%
> rename from board/xilinx/dts/zynq-zc706.dts
> rename to arch/arm/dts/zynq-zc706.dts
> diff --git a/board/xilinx/dts/zynq-zc770-xm010.dts b/arch/arm/dts/zynq-zc770-xm010.dts
> similarity index 100%
> rename from board/xilinx/dts/zynq-zc770-xm010.dts
> rename to arch/arm/dts/zynq-zc770-xm010.dts
> diff --git a/board/xilinx/dts/zynq-zc770-xm012.dts b/arch/arm/dts/zynq-zc770-xm012.dts
> similarity index 100%
> rename from board/xilinx/dts/zynq-zc770-xm012.dts
> rename to arch/arm/dts/zynq-zc770-xm012.dts
> diff --git a/board/xilinx/dts/zynq-zc770-xm013.dts b/arch/arm/dts/zynq-zc770-xm013.dts
> similarity index 100%
> rename from board/xilinx/dts/zynq-zc770-xm013.dts
> rename to arch/arm/dts/zynq-zc770-xm013.dts
> diff --git a/board/xilinx/dts/zynq-zed.dts b/arch/arm/dts/zynq-zed.dts
> similarity index 100%
> rename from board/xilinx/dts/zynq-zed.dts
> rename to arch/arm/dts/zynq-zed.dts
> diff --git a/board/xilinx/dts/microblaze-generic.dts b/arch/microblaze/dts/microblaze-generic.dts
> similarity index 100%
> rename from board/xilinx/dts/microblaze-generic.dts
> rename to arch/microblaze/dts/microblaze-generic.dts
> diff --git a/board/chromebook-x86/dts/alex.dts b/arch/x86/dts/alex.dts
> similarity index 100%
> rename from board/chromebook-x86/dts/alex.dts
> rename to arch/x86/dts/alex.dts
> diff --git a/board/chromebook-x86/dts/link.dts b/arch/x86/dts/link.dts
> similarity index 100%
> rename from board/chromebook-x86/dts/link.dts
> rename to arch/x86/dts/link.dts
> diff --git a/dts/Makefile b/dts/Makefile
> index c47fba7..5d2abd9 100644
> --- a/dts/Makefile
> +++ b/dts/Makefile
> @@ -12,9 +12,9 @@ ifeq ($(DEVICE_TREE),)
>  DEVICE_TREE := notfound
>  endif
>
> -DTS := $(srctree)/board/$(VENDOR)/dts/$(DEVICE_TREE).dts
> +DTS := $(srctree)/arch/$(ARCH)/dts/$(DEVICE_TREE).dts
>
> -DTC_FLAGS += -i $(srctree)/arch/$(ARCH)/dts -R 4 -p 0x1000
> +DTC_FLAGS += -R 4 -p 0x1000
>
>  $(obj)/dt.dtb: $(DTS) FORCE
>         $(call if_changed_dep,dtc)
> diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
> index ee3ceac..02b17b1 100644
> --- a/scripts/Makefile.lib
> +++ b/scripts/Makefile.lib
> @@ -153,7 +153,6 @@ ld_flags       = $(LDFLAGS) $(ldflags-y)
>
>  # Modified for U-Boot
>  dtc_cpp_flags  = -Wp,-MD,$(depfile).pre.tmp -nostdinc                    \
> -                -I$(srctree)/board/$(VENDOR)/dts/                       \
>                  -I$(srctree)/arch/$(ARCH)/dts                           \
>                  -undef -D__DTS__
>
> --
> 1.8.3.2
>
Masahiro Yamada Feb. 6, 2014, 5:50 a.m. UTC | #2
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.

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.

> 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.

What if Freescale decided to adopt device tree?
They support various boards on ARM, PowerPC, M68K.

Renesus is the same. They have ARM and SuperH boards.


On the other hand, different vendors can produce similar boards.
For example avionic design, which develops Tegra boards,
are using nVidia's sources.

When I saw  board/nvidia/common/common.mk
and board/avionic-design/*/Makefile, etc., I think we're screwed up
with <vendor> directory.

Best Regards
Masahiro Yamada
Scott Wood Feb. 7, 2014, 6:26 p.m. UTC | #3
On Wed, 2014-02-05 at 14:47 -0700, Simon Glass wrote:
> 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. 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 have strong feelings, just questing this...

Having all the device trees in one place (I don't even see why it should
be split by arch; some common dtsi files may be shared by multiple
arches) is nice for grepping and maintenance.  If it gets too large it
can grow an internal hierarchy.

Just like net drivers go under drivers/net regardless of arch, etc.

-Scott
Simon Glass Feb. 15, 2014, 11:46 p.m. UTC | #4
Hi Masahiro,

On 5 February 2014 22:50, Masahiro Yamada <yamada.m@jp.panasonic.com> 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.
>
> 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.

Hmm, but would it be such a big problem to keep the general ARM and
SOC stuff in arch/arm/dts and the board-specific stuff in board/ ?

One of the problems with Linux is that their board-specific code is
spread all over the place, and I'm not sure we want to emulate it?

>
>> 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.

Shouldn't the SoC part go in arch/arm and arch/microblaze? Then just
the board-specific stuff can go in board/

>
> What if Freescale decided to adopt device tree?
> They support various boards on ARM, PowerPC, M68K.
>
> Renesus is the same. They have ARM and SuperH boards.

I'm not convinced yet. I think maybe you have forgotten about the
.dtsi files for SoCs. They are common, but no one is going to include
a board .dts file (nor can they), so putting them in a common area
does not seem like a win to me.

>
>
> On the other hand, different vendors can produce similar boards.
> For example avionic design, which develops Tegra boards,
> are using nVidia's sources.
>
> When I saw  board/nvidia/common/common.mk
> and board/avionic-design/*/Makefile, etc., I think we're screwed up
> with <vendor> directory.

Well the probably as I see it is that board/nvidia has some SoC code
that other boards want to use. The solution to that might be to move
the code to arch/arm/cpu/armv7/tegra... instead?

>
> Best Regards
> Masahiro Yamada
>

Regards,
Simon
Masahiro Yamada Feb. 18, 2014, 9:43 a.m. UTC | #5
Hello Simon,


> >>
> >> 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.
> >
> > 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.
> 
> Hmm, but would it be such a big problem to keep the general ARM and
> SOC stuff in arch/arm/dts and the board-specific stuff in board/ ?
> One of the problems with Linux is that their board-specific code is
> spread all over the place, and I'm not sure we want to emulate it?

Opposite.
Board-specific code mostly resides under
arch/arm/mach-* or arch/arm/plat-*.
And what else is arch/arm/configs and arch/arm/boot/dts. That's it.


We have board-specific part
 - entries in boards.cfg
 - include/configs/<board_config>.h
 - board/<vendor>/<board> or board/<board>
 - arch/<ARCH>/include/am/arch-<soc> includes sometimes
   board-specific headers  as well as SoC specific headers.
   (Because there is no other place to store board-specific header files)

Various stuff under include/, for exmple
  - include/xilinx.h:  vendor specific?
  - include/sandboxblockdev.h:  arch specific?

And we often missed to remove remainders of dead boards.

U-Boot has more troublesome directory structure.


> >> 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.
> 
> Shouldn't the SoC part go in arch/arm and arch/microblaze? Then just
> the board-specific stuff can go in board/

What is SoC part? What is Board part?

> >
> > What if Freescale decided to adopt device tree?
> > They support various boards on ARM, PowerPC, M68K.
> >
> > Renesus is the same. They have ARM and SuperH boards.
> 
> I'm not convinced yet. I think maybe you have forgotten about the
> .dtsi files for SoCs. They are common, but no one is going to include
> a board .dts file (nor can they), so putting them in a common area
> does not seem like a win to me.

I do know that *.dtsi files are included from others, while
*.dts files are not included from anywhere.
And I understand your policy, *.dtsi to arch dir and *.dts to vendor dir.
(No that I care, we have two exceptions:
./board/avionic-design/dts/tegra20-tamonten.dtsi
./board/avionic-design/dts/tegra30-tamonten.dtsi)

If I have to mention a win,
we can save makefiles by not putting almost same ones in
vendor directories.


Anyway, we have 3 structures proposed so far.

[1] board/$(VENDOR)/dts/  (current structure)
[2] arch/$(ARCH)/dts/  (suggested by me)
[3] dts/  for all architectures (suggested by Scott)

In my option, [2] and [3] seem to be reasonable enough.

If we cannot reach an agreement,
shall we postpone 2/3 and 3/3 and apply only 1/3?


> > On the other hand, different vendors can produce similar boards.
> > For example avionic design, which develops Tegra boards,
> > are using nVidia's sources.
> >
> > When I saw  board/nvidia/common/common.mk
> > and board/avionic-design/*/Makefile, etc., I think we're screwed up
> > with <vendor> directory.
> 
> Well the probably as I see it is that board/nvidia has some SoC code
> that other boards want to use. The solution to that might be to move
> the code to arch/arm/cpu/armv7/tegra... instead?

Concerning the result, board/nvidia/common turned out to be
SoC-specific code, not Vendor-specific (board-specific) code.

But I guess the difference between SoC-specific code and board-specific
code was not clear when nVidia develpers posted that code first.

Maybe I am digressing, but it also happens to me quite often.
It is difficult for me to decide whether each code should
go to board/panasonic or arch/arm/cpu/armv7/uniphier.

I'd say, vendor (and board) directories are harmful.


Best Regards
Masahiro Yamada
Tom Rini Feb. 18, 2014, 2:32 p.m. UTC | #6
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.
Michal Simek Feb. 18, 2014, 2:59 p.m. UTC | #7
On 02/18/2014 03:32 PM, Tom Rini wrote:
> 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.

We share all soft IP drivers between ARM and Microblaze and we will continue
in this style. The point is to have the same binding which we have.
We are using device-tree generator to get the latest binding which is
in sync with kernel. When we adopt u-boot configured by device-tree
(when variable handling in u-boot is fixed) we will use the same binding
in uboot too.

I personally don't care where DTS files will be placed because we will
generate them as we are doing now.

Thanks,
Michal
Simon Glass Feb. 19, 2014, 6:06 a.m. UTC | #8
Hi Masahiro,

On 18 February 2014 01:43, Masahiro Yamada <yamada.m@jp.panasonic.com> wrote:
> Hello Simon,
>
>
>> >>
>> >> 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.
>> >
>> > 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.
>>
>> Hmm, but would it be such a big problem to keep the general ARM and
>> SOC stuff in arch/arm/dts and the board-specific stuff in board/ ?
>> One of the problems with Linux is that their board-specific code is
>> spread all over the place, and I'm not sure we want to emulate it?
>
> Opposite.
> Board-specific code mostly resides under
> arch/arm/mach-* or arch/arm/plat-*.
> And what else is arch/arm/configs and arch/arm/boot/dts. That's it.
>
>
> We have board-specific part
>  - entries in boards.cfg
>  - include/configs/<board_config>.h
>  - board/<vendor>/<board> or board/<board>
>  - arch/<ARCH>/include/am/arch-<soc> includes sometimes
>    board-specific headers  as well as SoC specific headers.
>    (Because there is no other place to store board-specific header files)
>
> Various stuff under include/, for exmple
>   - include/xilinx.h:  vendor specific?
>   - include/sandboxblockdev.h:  arch specific?
>
> And we often missed to remove remainders of dead boards.
>
> U-Boot has more troublesome directory structure.

Well Linux got board-specific directories and systems only relatively
recently I suppose. U-Boot has the benefit of many years of legacy :-)

>
>
>> >> 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.
>>
>> Shouldn't the SoC part go in arch/arm and arch/microblaze? Then just
>> the board-specific stuff can go in board/
>
> What is SoC part? What is Board part?

Well SoC is the chip from a vendor like Nvidia. Normally they would
provide a set of .dtsi files, say for example tegra20.dtsi,
tegra30.dtsi, etc. It makes sense to have a common SoC directory that
all boards can use.

Then a board that uses say a Tegra SoC on it can just include those
files and connect things up as required.

>
>> >
>> > What if Freescale decided to adopt device tree?
>> > They support various boards on ARM, PowerPC, M68K.
>> >
>> > Renesus is the same. They have ARM and SuperH boards.
>>
>> I'm not convinced yet. I think maybe you have forgotten about the
>> .dtsi files for SoCs. They are common, but no one is going to include
>> a board .dts file (nor can they), so putting them in a common area
>> does not seem like a win to me.
>
> I do know that *.dtsi files are included from others, while
> *.dts files are not included from anywhere.
> And I understand your policy, *.dtsi to arch dir and *.dts to vendor dir.
> (No that I care, we have two exceptions:
> ./board/avionic-design/dts/tegra20-tamonten.dtsi
> ./board/avionic-design/dts/tegra30-tamonten.dtsi)
>
> If I have to mention a win,
> we can save makefiles by not putting almost same ones in
> vendor directories.
>
>
> Anyway, we have 3 structures proposed so far.
>
> [1] board/$(VENDOR)/dts/  (current structure)
> [2] arch/$(ARCH)/dts/  (suggested by me)
> [3] dts/  for all architectures (suggested by Scott)
>
> In my option, [2] and [3] seem to be reasonable enough.
>
> If we cannot reach an agreement,
> shall we postpone 2/3 and 3/3 and apply only 1/3?
>

I don't want to hold up progress, but I am not sure that the Linux
approach is a great idea. I prefer this:

arch/$(ARCH)/dts   - SoC .dtsi files
board/$(VENDOR)/dts   - Board-specific .dts files (which include the above)

but as you say we don't have a lot of files so it is not a huge deal.

>
>> > On the other hand, different vendors can produce similar boards.
>> > For example avionic design, which develops Tegra boards,
>> > are using nVidia's sources.
>> >
>> > When I saw  board/nvidia/common/common.mk
>> > and board/avionic-design/*/Makefile, etc., I think we're screwed up
>> > with <vendor> directory.
>>
>> Well the probably as I see it is that board/nvidia has some SoC code
>> that other boards want to use. The solution to that might be to move
>> the code to arch/arm/cpu/armv7/tegra... instead?
>
> Concerning the result, board/nvidia/common turned out to be
> SoC-specific code, not Vendor-specific (board-specific) code.
>

Agreed, but we don't put .dtsi files in there, so that is a different problem.

> But I guess the difference between SoC-specific code and board-specific
> code was not clear when nVidia develpers posted that code first.
>
> Maybe I am digressing, but it also happens to me quite often.
> It is difficult for me to decide whether each code should
> go to board/panasonic or arch/arm/cpu/armv7/uniphier.
>
> I'd say, vendor (and board) directories are harmful.

Interesting...the idea with board files I think is that it is for code
specific to a board. My hope is that there would be less of that with
device tree, but it is early days.

You are right about the common directory in board/<vendor>. But this
is probably worth a wider discussion than just device tree files.

Regards,
Simon
diff mbox

Patch

diff --git a/board/samsung/dts/exynos5250-arndale.dts b/arch/arm/dts/exynos5250-arndale.dts
similarity index 100%
rename from board/samsung/dts/exynos5250-arndale.dts
rename to arch/arm/dts/exynos5250-arndale.dts
diff --git a/board/samsung/dts/exynos5250-smdk5250.dts b/arch/arm/dts/exynos5250-smdk5250.dts
similarity index 100%
rename from board/samsung/dts/exynos5250-smdk5250.dts
rename to arch/arm/dts/exynos5250-smdk5250.dts
diff --git a/board/samsung/dts/exynos5250-snow.dts b/arch/arm/dts/exynos5250-snow.dts
similarity index 100%
rename from board/samsung/dts/exynos5250-snow.dts
rename to arch/arm/dts/exynos5250-snow.dts
diff --git a/board/samsung/dts/exynos5420-smdk5420.dts b/arch/arm/dts/exynos5420-smdk5420.dts
similarity index 100%
rename from board/samsung/dts/exynos5420-smdk5420.dts
rename to arch/arm/dts/exynos5420-smdk5420.dts
diff --git a/board/nvidia/dts/tegra114-dalmore.dts b/arch/arm/dts/tegra114-dalmore.dts
similarity index 100%
rename from board/nvidia/dts/tegra114-dalmore.dts
rename to arch/arm/dts/tegra114-dalmore.dts
diff --git a/board/toradex/dts/tegra20-colibri_t20_iris.dts b/arch/arm/dts/tegra20-colibri_t20_iris.dts
similarity index 100%
rename from board/toradex/dts/tegra20-colibri_t20_iris.dts
rename to arch/arm/dts/tegra20-colibri_t20_iris.dts
diff --git a/board/nvidia/dts/tegra20-harmony.dts b/arch/arm/dts/tegra20-harmony.dts
similarity index 100%
rename from board/nvidia/dts/tegra20-harmony.dts
rename to arch/arm/dts/tegra20-harmony.dts
diff --git a/board/avionic-design/dts/tegra20-medcom-wide.dts b/arch/arm/dts/tegra20-medcom-wide.dts
similarity index 100%
rename from board/avionic-design/dts/tegra20-medcom-wide.dts
rename to arch/arm/dts/tegra20-medcom-wide.dts
diff --git a/board/compal/dts/tegra20-paz00.dts b/arch/arm/dts/tegra20-paz00.dts
similarity index 100%
rename from board/compal/dts/tegra20-paz00.dts
rename to arch/arm/dts/tegra20-paz00.dts
diff --git a/board/avionic-design/dts/tegra20-plutux.dts b/arch/arm/dts/tegra20-plutux.dts
similarity index 100%
rename from board/avionic-design/dts/tegra20-plutux.dts
rename to arch/arm/dts/tegra20-plutux.dts
diff --git a/board/nvidia/dts/tegra20-seaboard.dts b/arch/arm/dts/tegra20-seaboard.dts
similarity index 100%
rename from board/nvidia/dts/tegra20-seaboard.dts
rename to arch/arm/dts/tegra20-seaboard.dts
diff --git a/board/avionic-design/dts/tegra20-tamonten.dtsi b/arch/arm/dts/tegra20-tamonten.dtsi
similarity index 100%
rename from board/avionic-design/dts/tegra20-tamonten.dtsi
rename to arch/arm/dts/tegra20-tamonten.dtsi
diff --git a/board/avionic-design/dts/tegra20-tec.dts b/arch/arm/dts/tegra20-tec.dts
similarity index 100%
rename from board/avionic-design/dts/tegra20-tec.dts
rename to arch/arm/dts/tegra20-tec.dts
diff --git a/board/compulab/dts/tegra20-trimslice.dts b/arch/arm/dts/tegra20-trimslice.dts
similarity index 100%
rename from board/compulab/dts/tegra20-trimslice.dts
rename to arch/arm/dts/tegra20-trimslice.dts
diff --git a/board/nvidia/dts/tegra20-ventana.dts b/arch/arm/dts/tegra20-ventana.dts
similarity index 100%
rename from board/nvidia/dts/tegra20-ventana.dts
rename to arch/arm/dts/tegra20-ventana.dts
diff --git a/board/nvidia/dts/tegra20-whistler.dts b/arch/arm/dts/tegra20-whistler.dts
similarity index 100%
rename from board/nvidia/dts/tegra20-whistler.dts
rename to arch/arm/dts/tegra20-whistler.dts
diff --git a/board/nvidia/dts/tegra30-beaver.dts b/arch/arm/dts/tegra30-beaver.dts
similarity index 100%
rename from board/nvidia/dts/tegra30-beaver.dts
rename to arch/arm/dts/tegra30-beaver.dts
diff --git a/board/nvidia/dts/tegra30-cardhu.dts b/arch/arm/dts/tegra30-cardhu.dts
similarity index 100%
rename from board/nvidia/dts/tegra30-cardhu.dts
rename to arch/arm/dts/tegra30-cardhu.dts
diff --git a/board/avionic-design/dts/tegra30-tamonten.dtsi b/arch/arm/dts/tegra30-tamonten.dtsi
similarity index 100%
rename from board/avionic-design/dts/tegra30-tamonten.dtsi
rename to arch/arm/dts/tegra30-tamonten.dtsi
diff --git a/board/avionic-design/dts/tegra30-tec-ng.dts b/arch/arm/dts/tegra30-tec-ng.dts
similarity index 100%
rename from board/avionic-design/dts/tegra30-tec-ng.dts
rename to arch/arm/dts/tegra30-tec-ng.dts
diff --git a/board/xilinx/dts/zynq-microzed.dts b/arch/arm/dts/zynq-microzed.dts
similarity index 100%
rename from board/xilinx/dts/zynq-microzed.dts
rename to arch/arm/dts/zynq-microzed.dts
diff --git a/board/xilinx/dts/zynq-zc702.dts b/arch/arm/dts/zynq-zc702.dts
similarity index 100%
rename from board/xilinx/dts/zynq-zc702.dts
rename to arch/arm/dts/zynq-zc702.dts
diff --git a/board/xilinx/dts/zynq-zc706.dts b/arch/arm/dts/zynq-zc706.dts
similarity index 100%
rename from board/xilinx/dts/zynq-zc706.dts
rename to arch/arm/dts/zynq-zc706.dts
diff --git a/board/xilinx/dts/zynq-zc770-xm010.dts b/arch/arm/dts/zynq-zc770-xm010.dts
similarity index 100%
rename from board/xilinx/dts/zynq-zc770-xm010.dts
rename to arch/arm/dts/zynq-zc770-xm010.dts
diff --git a/board/xilinx/dts/zynq-zc770-xm012.dts b/arch/arm/dts/zynq-zc770-xm012.dts
similarity index 100%
rename from board/xilinx/dts/zynq-zc770-xm012.dts
rename to arch/arm/dts/zynq-zc770-xm012.dts
diff --git a/board/xilinx/dts/zynq-zc770-xm013.dts b/arch/arm/dts/zynq-zc770-xm013.dts
similarity index 100%
rename from board/xilinx/dts/zynq-zc770-xm013.dts
rename to arch/arm/dts/zynq-zc770-xm013.dts
diff --git a/board/xilinx/dts/zynq-zed.dts b/arch/arm/dts/zynq-zed.dts
similarity index 100%
rename from board/xilinx/dts/zynq-zed.dts
rename to arch/arm/dts/zynq-zed.dts
diff --git a/board/xilinx/dts/microblaze-generic.dts b/arch/microblaze/dts/microblaze-generic.dts
similarity index 100%
rename from board/xilinx/dts/microblaze-generic.dts
rename to arch/microblaze/dts/microblaze-generic.dts
diff --git a/board/chromebook-x86/dts/alex.dts b/arch/x86/dts/alex.dts
similarity index 100%
rename from board/chromebook-x86/dts/alex.dts
rename to arch/x86/dts/alex.dts
diff --git a/board/chromebook-x86/dts/link.dts b/arch/x86/dts/link.dts
similarity index 100%
rename from board/chromebook-x86/dts/link.dts
rename to arch/x86/dts/link.dts
diff --git a/dts/Makefile b/dts/Makefile
index c47fba7..5d2abd9 100644
--- a/dts/Makefile
+++ b/dts/Makefile
@@ -12,9 +12,9 @@  ifeq ($(DEVICE_TREE),)
 DEVICE_TREE := notfound
 endif
 
-DTS := $(srctree)/board/$(VENDOR)/dts/$(DEVICE_TREE).dts
+DTS := $(srctree)/arch/$(ARCH)/dts/$(DEVICE_TREE).dts
 
-DTC_FLAGS += -i $(srctree)/arch/$(ARCH)/dts -R 4 -p 0x1000
+DTC_FLAGS += -R 4 -p 0x1000
 
 $(obj)/dt.dtb: $(DTS) FORCE
 	$(call if_changed_dep,dtc)
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index ee3ceac..02b17b1 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -153,7 +153,6 @@  ld_flags       = $(LDFLAGS) $(ldflags-y)
 
 # Modified for U-Boot
 dtc_cpp_flags  = -Wp,-MD,$(depfile).pre.tmp -nostdinc                    \
-		 -I$(srctree)/board/$(VENDOR)/dts/                       \
 		 -I$(srctree)/arch/$(ARCH)/dts                           \
 		 -undef -D__DTS__