All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v3 0/3] Simplify dts/Makefile and support multiple DTBs generation
@ 2014-02-05  2:28 Masahiro Yamada
  2014-02-05  2:28 ` [U-Boot] [PATCH v3 1/3] dts: re-write dts/Makefile more simply with Kbuild Masahiro Yamada
                   ` (2 more replies)
  0 siblings, 3 replies; 17+ messages in thread
From: Masahiro Yamada @ 2014-02-05  2:28 UTC (permalink / raw)
  To: u-boot


1/3 re-writes dts/Makefile more simply.
It does not change the behavior except removal of ./u-boot.dts

2/3 moves *.dts from board/$(VENDOR)/dts to arch/$(ARCH)/dts

3/3 adds multipe DTBs generation
(Multiple DTBs generation was suggested by Simon.)

This patch uses my Kbuild series as a prerequisite.
"Switch over to real Kbuild" series version 9
must be applied beforehand.

Changes in v3:
  - Fix build error for x86 architecture
  - Change shorten log CP to COPY

Changes in v2:
  - Rebase on Kbuild series v9
  - Add ';' which was missing in arch/arm/lib/board.c
  - Add 2/3 and 3/3


Masahiro Yamada (3):
  dts: re-write dts/Makefile more simply with Kbuild
  dts: move device tree sources to arch/$(ARCH)/dts/
  dts: generate multiple device tree blobs

 .gitignore                                         |  1 -
 Makefile                                           | 16 ++---
 arch/arm/dts/.gitignore                            |  1 +
 arch/arm/dts/Makefile                              | 37 ++++++++++
 .../arm}/dts/exynos5250-arndale.dts                |  0
 .../arm}/dts/exynos5250-smdk5250.dts               |  0
 .../samsung => arch/arm}/dts/exynos5250-snow.dts   |  0
 .../arm}/dts/exynos5420-smdk5420.dts               |  0
 .../nvidia => arch/arm}/dts/tegra114-dalmore.dts   |  0
 .../arm}/dts/tegra20-colibri_t20_iris.dts          |  0
 {board/nvidia => arch/arm}/dts/tegra20-harmony.dts |  0
 .../arm}/dts/tegra20-medcom-wide.dts               |  0
 {board/compal => arch/arm}/dts/tegra20-paz00.dts   |  0
 .../arm}/dts/tegra20-plutux.dts                    |  0
 .../nvidia => arch/arm}/dts/tegra20-seaboard.dts   |  0
 .../arm}/dts/tegra20-tamonten.dtsi                 |  0
 .../arm}/dts/tegra20-tec.dts                       |  0
 .../arm}/dts/tegra20-trimslice.dts                 |  0
 {board/nvidia => arch/arm}/dts/tegra20-ventana.dts |  0
 .../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
 .../arm}/dts/tegra30-tamonten.dtsi                 |  0
 .../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
 .../xilinx => arch/arm}/dts/zynq-zc770-xm010.dts   |  0
 .../xilinx => arch/arm}/dts/zynq-zc770-xm012.dts   |  0
 .../xilinx => arch/arm}/dts/zynq-zc770-xm013.dts   |  0
 {board/xilinx => arch/arm}/dts/zynq-zed.dts        |  0
 arch/arm/lib/board.c                               |  2 +-
 arch/microblaze/dts/.gitignore                     |  1 +
 arch/microblaze/dts/Makefile                       | 11 +++
 .../microblaze}/dts/microblaze-generic.dts         |  0
 arch/microblaze/lib/board.c                        |  2 +-
 arch/x86/dts/.gitignore                            |  1 +
 arch/x86/dts/Makefile                              | 12 ++++
 {board/chromebook-x86 => arch/x86}/dts/alex.dts    |  0
 {board/chromebook-x86 => arch/x86}/dts/link.dts    |  0
 arch/x86/lib/init_helpers.c                        |  2 +-
 common/board_f.c                                   |  2 +-
 dts/.gitignore                                     |  2 +
 dts/Makefile                                       | 81 ++++++++--------------
 include/common.h                                   |  2 +-
 scripts/Makefile.lib                               | 11 ++-
 46 files changed, 112 insertions(+), 72 deletions(-)
 create mode 100644 arch/arm/dts/.gitignore
 create mode 100644 arch/arm/dts/Makefile
 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%)
 create mode 100644 arch/microblaze/dts/.gitignore
 create mode 100644 arch/microblaze/dts/Makefile
 rename {board/xilinx => arch/microblaze}/dts/microblaze-generic.dts (100%)
 create mode 100644 arch/x86/dts/.gitignore
 create mode 100644 arch/x86/dts/Makefile
 rename {board/chromebook-x86 => arch/x86}/dts/alex.dts (100%)
 rename {board/chromebook-x86 => arch/x86}/dts/link.dts (100%)
 create mode 100644 dts/.gitignore

-- 
1.8.3.2

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [U-Boot] [PATCH v3 1/3] dts: re-write dts/Makefile more simply with Kbuild
  2014-02-05  2:28 [U-Boot] [PATCH v3 0/3] Simplify dts/Makefile and support multiple DTBs generation Masahiro Yamada
@ 2014-02-05  2:28 ` Masahiro Yamada
  2014-02-15 23:41   ` Simon Glass
                     ` (2 more replies)
  2014-02-05  2:28 ` [U-Boot] [PATCH v3 2/3] dts: move device tree sources to arch/$(ARCH)/dts/ Masahiro Yamada
  2014-02-05  2:28 ` [U-Boot] [PATCH v3 3/3] dts: generate multiple device tree blobs Masahiro Yamada
  2 siblings, 3 replies; 17+ messages in thread
From: Masahiro Yamada @ 2014-02-05  2:28 UTC (permalink / raw)
  To: u-boot

Useful rules in scripts/Makefile.lib allows us to easily
generate a device tree blob and wrap it in assembly code.

We do not need to parse a linker script to get output format and arch.

This commit deletes ./u-boot.dtb since it is a copy of dts/dt.dtb.

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

Changes in v3: None
Changes in v2:
  - Rebase on Kbuild series v9
  - Add ';' which was missing in arch/arm/lib/board.c

 .gitignore                  |  1 -
 Makefile                    | 16 +++++-----
 arch/arm/lib/board.c        |  2 +-
 arch/microblaze/lib/board.c |  2 +-
 arch/x86/lib/init_helpers.c |  2 +-
 common/board_f.c            |  2 +-
 dts/.gitignore              |  2 ++
 dts/Makefile                | 72 +++++++++++++--------------------------------
 include/common.h            |  2 +-
 scripts/Makefile.lib        | 12 ++++----
 10 files changed, 41 insertions(+), 72 deletions(-)
 create mode 100644 dts/.gitignore

diff --git a/.gitignore b/.gitignore
index 24019b3..5882ff5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -48,7 +48,6 @@
 /u-boot.lds
 /u-boot.ubl
 /u-boot.ais
-/u-boot.dtb
 /u-boot.sb
 
 #
diff --git a/Makefile b/Makefile
index cb9c243..b425bfb 100644
--- a/Makefile
+++ b/Makefile
@@ -722,7 +722,7 @@ ALL-$(CONFIG_RAMBOOT_PBL) += u-boot.pbl
 ALL-$(CONFIG_SPL) += spl/u-boot-spl.bin
 ALL-$(CONFIG_SPL_FRAMEWORK) += u-boot.img
 ALL-$(CONFIG_TPL) += tpl/u-boot-tpl.bin
-ALL-$(CONFIG_OF_SEPARATE) += u-boot.dtb u-boot-dtb.bin
+ALL-$(CONFIG_OF_SEPARATE) += u-boot-dtb.bin
 ifneq ($(CONFIG_SPL_TARGET),)
 ALL-$(CONFIG_SPL) += $(CONFIG_SPL_TARGET:"%"=%)
 endif
@@ -746,11 +746,11 @@ endif
 
 all:		$(ALL-y)
 
-u-boot.dtb:	checkdtc u-boot
-		$(MAKE) $(build)=dts binary
-		mv dts/dt.dtb $@
+PHONY += dtbs
+dtbs dts/dt.dtb: checkdtc u-boot
+	$(Q)$(MAKE) $(build)=dts dtbs
 
-u-boot-dtb.bin:	u-boot.bin u-boot.dtb
+u-boot-dtb.bin: u-boot.bin dts/dt.dtb
 		cat $^ >$@
 
 u-boot.hex:	u-boot
@@ -877,8 +877,8 @@ u-boot-nodtb-tegra.bin: spl/u-boot-spl.bin u-boot.bin
 		rm spl/u-boot-spl-pad.bin
 
 ifeq ($(CONFIG_OF_SEPARATE),y)
-u-boot-dtb-tegra.bin: u-boot-nodtb-tegra.bin u-boot.dtb
-		cat u-boot-nodtb-tegra.bin u-boot.dtb > $@
+u-boot-dtb-tegra.bin: u-boot-nodtb-tegra.bin dts/dt.dtb
+		cat $^ > $@
 endif
 endif
 
@@ -1173,7 +1173,7 @@ include/license.h: tools/bin2header COPYING
 # Directories & files removed with 'make clean'
 CLEAN_DIRS  += $(MODVERDIR)
 CLEAN_FILES += u-boot.lds include/bmp_logo.h include/bmp_logo_data.h \
-	       board/*/config.tmp board/*/*/config.tmp dts/*.tmp \
+	       board/*/config.tmp board/*/*/config.tmp \
 	       include/autoconf.mk* include/spl-autoconf.mk \
 	       include/tpl-autoconf.mk
 
diff --git a/arch/arm/lib/board.c b/arch/arm/lib/board.c
index b770e25..38b9c7d 100644
--- a/arch/arm/lib/board.c
+++ b/arch/arm/lib/board.c
@@ -280,7 +280,7 @@ void board_init_f(ulong bootflag)
 	gd->mon_len = _bss_end_ofs;
 #ifdef CONFIG_OF_EMBED
 	/* Get a pointer to the FDT */
-	gd->fdt_blob = _binary_dt_dtb_start;
+	gd->fdt_blob = __dtb_db_begin;
 #elif defined CONFIG_OF_SEPARATE
 	/* FDT is at end of image */
 	gd->fdt_blob = (void *)(_end_ofs + _TEXT_BASE);
diff --git a/arch/microblaze/lib/board.c b/arch/microblaze/lib/board.c
index 59956a8..fafeeae 100644
--- a/arch/microblaze/lib/board.c
+++ b/arch/microblaze/lib/board.c
@@ -87,7 +87,7 @@ void board_init_f(ulong not_used)
 
 #ifdef CONFIG_OF_EMBED
 	/* Get a pointer to the FDT */
-	gd->fdt_blob = _binary_dt_dtb_start;
+	gd->fdt_blob = __dtb_dt_begin;
 #elif defined CONFIG_OF_SEPARATE
 	/* FDT is at end of image */
 	gd->fdt_blob = (void *)__end;
diff --git a/arch/x86/lib/init_helpers.c b/arch/x86/lib/init_helpers.c
index 582c0ff..b5d937f 100644
--- a/arch/x86/lib/init_helpers.c
+++ b/arch/x86/lib/init_helpers.c
@@ -92,7 +92,7 @@ int find_fdt(void)
 {
 #ifdef CONFIG_OF_EMBED
 	/* Get a pointer to the FDT */
-	gd->fdt_blob = _binary_dt_dtb_start;
+	gd->fdt_blob = __dtb_dt_begin;
 #elif defined CONFIG_OF_SEPARATE
 	/* FDT is at end of image */
 	gd->fdt_blob = (ulong *)&_end;
diff --git a/common/board_f.c b/common/board_f.c
index aa70c3e..d0ee6f7 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -360,7 +360,7 @@ static int setup_fdt(void)
 {
 #ifdef CONFIG_OF_EMBED
 	/* Get a pointer to the FDT */
-	gd->fdt_blob = _binary_dt_dtb_start;
+	gd->fdt_blob = __dtb_dt_begin;
 #elif defined CONFIG_OF_SEPARATE
 	/* FDT is at end of image */
 # ifdef CONFIG_SYS_SYM_OFFSETS
diff --git a/dts/.gitignore b/dts/.gitignore
new file mode 100644
index 0000000..1b37180
--- /dev/null
+++ b/dts/.gitignore
@@ -0,0 +1,2 @@
+*.dtb
+*.dtb.S
diff --git a/dts/Makefile b/dts/Makefile
index 1e7609a..c47fba7 100644
--- a/dts/Makefile
+++ b/dts/Makefile
@@ -7,64 +7,32 @@
 # This Makefile builds the internal U-Boot fdt if CONFIG_OF_CONTROL is
 # enabled. See doc/README.fdt-control for more details.
 
-DTS_INCDIRS =  $(SRCTREE)/board/$(VENDOR)/$(BOARD)/dts
-DTS_INCDIRS += $(SRCTREE)/board/$(VENDOR)/dts
-DTS_INCDIRS += $(SRCTREE)/arch/$(ARCH)/dts
+DEVICE_TREE ?= $(CONFIG_DEFAULT_DEVICE_TREE:"%"=%)
+ifeq ($(DEVICE_TREE),)
+DEVICE_TREE := notfound
+endif
 
-DTS_CPPFLAGS := -x assembler-with-cpp -undef -D__DTS__ \
-		-nostdinc $(addprefix -I,$(DTS_INCDIRS))
+DTS := $(srctree)/board/$(VENDOR)/dts/$(DEVICE_TREE).dts
 
-DTC_FLAGS := -R 4 -p 0x1000 \
-	$(addprefix -i ,$(DTS_INCDIRS))
+DTC_FLAGS += -i $(srctree)/arch/$(ARCH)/dts -R 4 -p 0x1000
 
-# Use a constant name for this so we can access it from C code.
-# objcopy doesn't seem to allow us to set the symbol name independently of
-# the filename.
-DT_BIN	:= $(obj)/dt.dtb
+$(obj)/dt.dtb: $(DTS) FORCE
+	$(call if_changed_dep,dtc)
 
-DEVICE_TREE ?= $(CONFIG_DEFAULT_DEVICE_TREE:"%"=%)
-ifeq ($(DEVICE_TREE),)
-$(DT_BIN): FORCE
-	echo >&2 "Please define CONFIG_DEFAULT_DEVICE_TREE in your board header file"
-else
-$(DT_BIN): $(TOPDIR)/board/$(VENDOR)/dts/$(DEVICE_TREE).dts
-	$(CPP) $(DTS_CPPFLAGS) $< -o $(DT_BIN).dts.tmp
-	$(DTC) $(DTC_FLAGS) -O dtb -o ${DT_BIN} $(DT_BIN).dts.tmp
-endif
+targets += dt.dtb
 
-process_lds = \
-	$(1) | sed -r -n 's/^OUTPUT_$(2)[ ("]*([^")]*).*/\1/p'
+$(DTS):
+	@echo >&2
+	@echo >&2 "Device Tree Source is not specified."
+	@echo >&2 "Please define 'CONFIG_DEFAULT_DEVICE_TREE'"
+	@echo >&2 "or build with 'DEVICE_TREE=<dts-file-name>' argument"
+	@/bin/false
 
-# Run the compiler and get the link script from the linker
-GET_LDS = $(CC) $(c_flags) $(ld_flags) -Wl,--verbose 2>&1
+.SECONDARY: $(obj)/dt.dtb.S
 
-$(obj)/dt.o: $(DT_BIN)
-	# We want the output format and arch.
-	# We also hope to win a prize for ugliest Makefile / shell interaction
-	# We look in the LDSCRIPT first.
-	# Then try the linker which should give us the answer.
-	# Then check it worked.
-	[ -n "$(LDSCRIPT)" ] && \
-		oformat=`$(call process_lds,cat $(LDSCRIPT),FORMAT)` && \
-		oarch=`$(call process_lds,cat $(LDSCRIPT),ARCH)` ;\
-	\
-	[ -z $${oformat} ] && \
-		oformat=`$(call process_lds,$(GET_LDS),FORMAT)` ;\
-	[ -z $${oarch} ] && \
-		oarch=`$(call process_lds,$(GET_LDS),ARCH)` ;\
-	\
-	[ -z $${oformat} ] && \
-		echo "Cannot read OUTPUT_FORMAT from lds file $(LDSCRIPT)" && \
-		exit 1 || true ;\
-	[ -z $${oarch} ] && \
-		echo "Cannot read OUTPUT_ARCH from lds file $(LDSCRIPT)" && \
-		exit 1 || true ;\
-	\
-	cd $(dir ${DT_BIN}) && \
-	$(OBJCOPY) -I binary -O $${oformat} -B $${oarch} \
-		$(notdir ${DT_BIN}) $(notdir $@)
-	rm $(DT_BIN)
+obj-$(CONFIG_OF_EMBED) := dt.dtb.o
 
-obj-$(CONFIG_OF_EMBED)	:= dt.o
+dtbs: $(obj)/dt.dtb
+	@:
 
-binary:	$(DT_BIN)
+clean-files := dt.dtb.S
diff --git a/include/common.h b/include/common.h
index c15e5a4..b590f3a 100644
--- a/include/common.h
+++ b/include/common.h
@@ -302,7 +302,7 @@ int	checkdram     (void);
 int	last_stage_init(void);
 extern ulong monitor_flash_len;
 int mac_read_from_eeprom(void);
-extern u8 _binary_dt_dtb_start[];	/* embedded device tree blob */
+extern u8 __dtb_dt_begin[];	/* embedded device tree blob */
 int set_cpu_clk_info(void);
 int print_cpuinfo(void);
 int update_flash_size(int flash_size);
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index d4b5cb5..ee3ceac 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -151,9 +151,10 @@ cpp_flags      = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(UBOOTINCLUDE)     \
 
 ld_flags       = $(LDFLAGS) $(ldflags-y)
 
+# Modified for U-Boot
 dtc_cpp_flags  = -Wp,-MD,$(depfile).pre.tmp -nostdinc                    \
-		 -I$(srctree)/arch/$(SRCARCH)/boot/dts                   \
-		 -I$(srctree)/arch/$(SRCARCH)/boot/dts/include           \
+		 -I$(srctree)/board/$(VENDOR)/dts/                       \
+		 -I$(srctree)/arch/$(ARCH)/dts                           \
 		 -undef -D__DTS__
 
 # Finds the multi-part object the current object will be linked into
@@ -247,25 +248,24 @@ cmd_gzip = (cat $(filter-out FORCE,$^) | gzip -n -f -9 > $@) || \
 
 # Generate an assembly file to wrap the output of the device tree compiler
 quiet_cmd_dt_S_dtb= DTB     $@
+# Modified for U-Boot
 cmd_dt_S_dtb=						\
 (							\
-	echo '\#include <asm-generic/vmlinux.lds.h>'; 	\
 	echo '.section .dtb.init.rodata,"a"';		\
-	echo '.balign STRUCT_ALIGNMENT';		\
 	echo '.global __dtb_$(*F)_begin';		\
 	echo '__dtb_$(*F)_begin:';			\
 	echo '.incbin "$<" ';				\
 	echo '__dtb_$(*F)_end:';			\
 	echo '.global __dtb_$(*F)_end';			\
-	echo '.balign STRUCT_ALIGNMENT'; 		\
 ) > $@
 
 $(obj)/%.dtb.S: $(obj)/%.dtb
 	$(call cmd,dt_S_dtb)
 
 quiet_cmd_dtc = DTC     $@
+# Modified for U-Boot
 cmd_dtc = $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \
-	$(objtree)/scripts/dtc/dtc -O dtb -o $@ -b 0 \
+	dtc -O dtb -o $@ -b 0 \
 		-i $(dir $<) $(DTC_FLAGS) \
 		-d $(depfile).dtc.tmp $(dtc-tmp) ; \
 	cat $(depfile).pre.tmp $(depfile).dtc.tmp > $(depfile)
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [U-Boot] [PATCH v3 2/3] dts: move device tree sources to arch/$(ARCH)/dts/
  2014-02-05  2:28 [U-Boot] [PATCH v3 0/3] Simplify dts/Makefile and support multiple DTBs generation Masahiro Yamada
  2014-02-05  2:28 ` [U-Boot] [PATCH v3 1/3] dts: re-write dts/Makefile more simply with Kbuild Masahiro Yamada
@ 2014-02-05  2:28 ` Masahiro Yamada
  2014-02-19 21:11   ` [U-Boot] [U-Boot, v3, " Tom Rini
  2014-02-05  2:28 ` [U-Boot] [PATCH v3 3/3] dts: generate multiple device tree blobs Masahiro Yamada
  2 siblings, 1 reply; 17+ messages in thread
From: Masahiro Yamada @ 2014-02-05  2:28 UTC (permalink / raw)
  To: u-boot

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 v3: None
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

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [U-Boot] [PATCH v3 3/3] dts: generate multiple device tree blobs
  2014-02-05  2:28 [U-Boot] [PATCH v3 0/3] Simplify dts/Makefile and support multiple DTBs generation Masahiro Yamada
  2014-02-05  2:28 ` [U-Boot] [PATCH v3 1/3] dts: re-write dts/Makefile more simply with Kbuild Masahiro Yamada
  2014-02-05  2:28 ` [U-Boot] [PATCH v3 2/3] dts: move device tree sources to arch/$(ARCH)/dts/ Masahiro Yamada
@ 2014-02-05  2:28 ` Masahiro Yamada
  2014-02-15 23:41   ` Simon Glass
  2014-02-19 21:11   ` [U-Boot] [U-Boot, v3, " Tom Rini
  2 siblings, 2 replies; 17+ messages in thread
From: Masahiro Yamada @ 2014-02-05  2:28 UTC (permalink / raw)
  To: u-boot

It is convenient to have all device trees on the same SoC compiled.
It allows for later easy repackaging without the need to re-run
the make file.

  - Build device trees with the same SoC under arch/$(ARCH)/dts

  - Copy the one specified by CONFIG_DEFAULT_DEVICE_TREE or
    DEVICE_TREE=... to dts/dt.dtb

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

Changes in v3:
  - Fix build error for x86 architecture
  - Change shorten log CP to COPY

Changes in v2:
  - Newly added

 arch/arm/dts/.gitignore        |  1 +
 arch/arm/dts/Makefile          | 37 +++++++++++++++++++++++++++++++++++++
 arch/microblaze/dts/.gitignore |  1 +
 arch/microblaze/dts/Makefile   | 11 +++++++++++
 arch/x86/dts/.gitignore        |  1 +
 arch/x86/dts/Makefile          | 12 ++++++++++++
 dts/Makefile                   | 31 ++++++++++++++++++++-----------
 7 files changed, 83 insertions(+), 11 deletions(-)
 create mode 100644 arch/arm/dts/.gitignore
 create mode 100644 arch/arm/dts/Makefile
 create mode 100644 arch/microblaze/dts/.gitignore
 create mode 100644 arch/microblaze/dts/Makefile
 create mode 100644 arch/x86/dts/.gitignore
 create mode 100644 arch/x86/dts/Makefile

diff --git a/arch/arm/dts/.gitignore b/arch/arm/dts/.gitignore
new file mode 100644
index 0000000..b60ed20
--- /dev/null
+++ b/arch/arm/dts/.gitignore
@@ -0,0 +1 @@
+*.dtb
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
new file mode 100644
index 0000000..2658911
--- /dev/null
+++ b/arch/arm/dts/Makefile
@@ -0,0 +1,37 @@
+dtb-$(CONFIG_EXYNOS5) += exynos5250-arndale.dtb \
+	exynos5250-snow.dtb \
+	exynos5250-smdk5250.dtb \
+	exynos5420-smdk5420.dtb
+
+dtb-$(CONFIG_TEGRA) += tegra20-harmony.dtb \
+	tegra20-medcom-wide.dtb \
+	tegra20-paz00.dtb \
+	tegra20-plutux.dtb \
+	tegra20-seaboard.dtb \
+	tegra20-tec.dtb \
+	tegra20-trimslice.dtb \
+	tegra20-ventana.dtb \
+	tegra20-whistler.dtb \
+	tegra20-colibri_t20_iris.dtb \
+	tegra30-beaver.dtb \
+	tegra30-cardhu.dtb \
+	tegra30-tec-ng.dtb \
+	tegra114-dalmore.dtb
+
+dtb-$(CONFIG_ZYNQ) += zynq-zc702.dtb \
+	zynq-zc706.dtb \
+	zynq-zed.dtb \
+	zynq-microzed.dtb \
+	zynq-zc770-xm010.dtb \
+	zynq-zc770-xm012.dtb \
+	zynq-zc770-xm013.dtb
+
+targets += $(dtb-y)
+
+DTC_FLAGS += -R 4 -p 0x1000
+
+PHONY += dtbs
+dtbs: $(addprefix $(obj)/, $(dtb-y))
+	@:
+
+clean-files := *.dtb
diff --git a/arch/microblaze/dts/.gitignore b/arch/microblaze/dts/.gitignore
new file mode 100644
index 0000000..b60ed20
--- /dev/null
+++ b/arch/microblaze/dts/.gitignore
@@ -0,0 +1 @@
+*.dtb
diff --git a/arch/microblaze/dts/Makefile b/arch/microblaze/dts/Makefile
new file mode 100644
index 0000000..6d4a11f
--- /dev/null
+++ b/arch/microblaze/dts/Makefile
@@ -0,0 +1,11 @@
+dtb-y += microblaze-generic.dtb
+
+targets += $(dtb-y)
+
+DTC_FLAGS += -R 4 -p 0x1000
+
+PHONY += dtbs
+dtbs: $(addprefix $(obj)/, $(dtb-y))
+	@:
+
+clean-files := *.dtb
diff --git a/arch/x86/dts/.gitignore b/arch/x86/dts/.gitignore
new file mode 100644
index 0000000..b60ed20
--- /dev/null
+++ b/arch/x86/dts/.gitignore
@@ -0,0 +1 @@
+*.dtb
diff --git a/arch/x86/dts/Makefile b/arch/x86/dts/Makefile
new file mode 100644
index 0000000..48265ef
--- /dev/null
+++ b/arch/x86/dts/Makefile
@@ -0,0 +1,12 @@
+dtb-y += link.dtb \
+	alex.dtb
+
+targets += $(dtb-y)
+
+DTC_FLAGS += -R 4 -p 0x1000
+
+PHONY += dtbs
+dtbs: $(addprefix $(obj)/, $(dtb-y))
+	@:
+
+clean-files := *.dtb
diff --git a/dts/Makefile b/dts/Makefile
index 5d2abd9..9907463 100644
--- a/dts/Makefile
+++ b/dts/Makefile
@@ -9,24 +9,30 @@
 
 DEVICE_TREE ?= $(CONFIG_DEFAULT_DEVICE_TREE:"%"=%)
 ifeq ($(DEVICE_TREE),)
-DEVICE_TREE := notfound
+DEVICE_TREE := unset
 endif
 
-DTS := $(srctree)/arch/$(ARCH)/dts/$(DEVICE_TREE).dts
+DTB := arch/$(ARCH)/dts/$(DEVICE_TREE).dtb
 
-DTC_FLAGS += -R 4 -p 0x1000
+quiet_cmd_copy = COPY    $@
+      cmd_copy = cp $< $@
 
-$(obj)/dt.dtb: $(DTS) FORCE
-	$(call if_changed_dep,dtc)
+$(obj)/dt.dtb: $(DTB) FORCE
+	$(call if_changed,copy)
 
 targets += dt.dtb
 
-$(DTS):
-	@echo >&2
-	@echo >&2 "Device Tree Source is not specified."
-	@echo >&2 "Please define 'CONFIG_DEFAULT_DEVICE_TREE'"
-	@echo >&2 "or build with 'DEVICE_TREE=<dts-file-name>' argument"
-	@/bin/false
+$(DTB): arch-dtbs
+	$(Q)test -e $@ || (						\
+	echo >&2;							\
+	echo >&2 "Device Tree Source is not correctly specified.";	\
+	echo >&2 "Please define 'CONFIG_DEFAULT_DEVICE_TREE'";		\
+	echo >&2 "or build with 'DEVICE_TREE=<device_tree>' argument";	\
+	echo >&2;							\
+	/bin/false)
+
+arch-dtbs:
+	$(Q)$(MAKE) $(build)=arch/$(ARCH)/dts dtbs
 
 .SECONDARY: $(obj)/dt.dtb.S
 
@@ -36,3 +42,6 @@ dtbs: $(obj)/dt.dtb
 	@:
 
 clean-files := dt.dtb.S
+
+# Let clean descend into dts directories
+subdir- += ../arch/*/dts
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [U-Boot] [PATCH v3 3/3] dts: generate multiple device tree blobs
  2014-02-05  2:28 ` [U-Boot] [PATCH v3 3/3] dts: generate multiple device tree blobs Masahiro Yamada
@ 2014-02-15 23:41   ` Simon Glass
  2014-02-19 21:11   ` [U-Boot] [U-Boot, v3, " Tom Rini
  1 sibling, 0 replies; 17+ messages in thread
From: Simon Glass @ 2014-02-15 23:41 UTC (permalink / raw)
  To: u-boot

Hi,

On 4 February 2014 19:28, Masahiro Yamada <yamada.m@jp.panasonic.com> wrote:
> It is convenient to have all device trees on the same SoC compiled.
> It allows for later easy repackaging without the need to re-run
> the make file.
>
>   - Build device trees with the same SoC under arch/$(ARCH)/dts
>
>   - Copy the one specified by CONFIG_DEFAULT_DEVICE_TREE or
>     DEVICE_TREE=... to dts/dt.dtb
>
> Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>

Please see my comments on v2.

Regards,
Simon

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [U-Boot] [PATCH v3 1/3] dts: re-write dts/Makefile more simply with Kbuild
  2014-02-05  2:28 ` [U-Boot] [PATCH v3 1/3] dts: re-write dts/Makefile more simply with Kbuild Masahiro Yamada
@ 2014-02-15 23:41   ` Simon Glass
  2014-02-19 21:11   ` [U-Boot] [U-Boot, v3, " Tom Rini
  2014-05-27 18:32   ` [U-Boot] [PATCH v3 " York Sun
  2 siblings, 0 replies; 17+ messages in thread
From: Simon Glass @ 2014-02-15 23:41 UTC (permalink / raw)
  To: u-boot

Hi,

On 4 February 2014 19:28, Masahiro Yamada <yamada.m@jp.panasonic.com> wrote:
> Useful rules in scripts/Makefile.lib allows us to easily
> generate a device tree blob and wrap it in assembly code.
>
> We do not need to parse a linker script to get output format and arch.
>
> This commit deletes ./u-boot.dtb since it is a copy of dts/dt.dtb.
>
> Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>

Sorry I left comments on v2.

Regards,
Simon

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [U-Boot] [U-Boot, v3, 1/3] dts: re-write dts/Makefile more simply with Kbuild
  2014-02-05  2:28 ` [U-Boot] [PATCH v3 1/3] dts: re-write dts/Makefile more simply with Kbuild Masahiro Yamada
  2014-02-15 23:41   ` Simon Glass
@ 2014-02-19 21:11   ` Tom Rini
  2014-02-20  9:30     ` Masahiro Yamada
  2014-05-27 18:32   ` [U-Boot] [PATCH v3 " York Sun
  2 siblings, 1 reply; 17+ messages in thread
From: Tom Rini @ 2014-02-19 21:11 UTC (permalink / raw)
  To: u-boot

On Wed, Feb 05, 2014 at 11:28:25AM +0900, Masahiro Yamada wrote:

> Useful rules in scripts/Makefile.lib allows us to easily
> generate a device tree blob and wrap it in assembly code.
> 
> We do not need to parse a linker script to get output format and arch.
> 
> This commit deletes ./u-boot.dtb since it is a copy of dts/dt.dtb.
> 
> Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140219/76e0d26e/attachment.pgp>

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [U-Boot] [U-Boot, v3, 2/3] dts: move device tree sources to arch/$(ARCH)/dts/
  2014-02-05  2:28 ` [U-Boot] [PATCH v3 2/3] dts: move device tree sources to arch/$(ARCH)/dts/ Masahiro Yamada
@ 2014-02-19 21:11   ` Tom Rini
  2014-02-20  9:22     ` Masahiro Yamada
  0 siblings, 1 reply; 17+ messages in thread
From: Tom Rini @ 2014-02-19 21:11 UTC (permalink / raw)
  To: u-boot

On Wed, Feb 05, 2014 at 11:28:26AM +0900, Masahiro Yamada 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.
> 
> Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140219/097637ba/attachment.pgp>

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [U-Boot] [U-Boot, v3, 3/3] dts: generate multiple device tree blobs
  2014-02-05  2:28 ` [U-Boot] [PATCH v3 3/3] dts: generate multiple device tree blobs Masahiro Yamada
  2014-02-15 23:41   ` Simon Glass
@ 2014-02-19 21:11   ` Tom Rini
  1 sibling, 0 replies; 17+ messages in thread
From: Tom Rini @ 2014-02-19 21:11 UTC (permalink / raw)
  To: u-boot

On Wed, Feb 05, 2014 at 11:28:27AM +0900, Masahiro Yamada wrote:

> It is convenient to have all device trees on the same SoC compiled.
> It allows for later easy repackaging without the need to re-run
> the make file.
> 
>   - Build device trees with the same SoC under arch/$(ARCH)/dts
> 
>   - Copy the one specified by CONFIG_DEFAULT_DEVICE_TREE or
>     DEVICE_TREE=... to dts/dt.dtb
> 
> Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140219/f0e11826/attachment.pgp>

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [U-Boot] [U-Boot, v3, 2/3] dts: move device tree sources to arch/$(ARCH)/dts/
  2014-02-19 21:11   ` [U-Boot] [U-Boot, v3, " Tom Rini
@ 2014-02-20  9:22     ` Masahiro Yamada
  2014-02-20 13:43       ` Tom Rini
  0 siblings, 1 reply; 17+ messages in thread
From: Masahiro Yamada @ 2014-02-20  9:22 UTC (permalink / raw)
  To: u-boot

Hello Tom, Simon

> > 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>
> 
> Applied to u-boot/master, thanks!
> 
> -- 
> Tom


This series was applied sooner than I had expected.
Simon and I were still discussing this series.

So I am afraid Simon is really not happy about it
because he was opposed to moving *.dts files
from vendor directories to arch directories.

Tom also mentioned as follows:
> 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.

I'd like to know Tom's option about the device tree structure.
Let me confirm if my patch is doing right thing.


Best Regards
Masahiro Yamada

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [U-Boot] [U-Boot, v3, 1/3] dts: re-write dts/Makefile more simply with Kbuild
  2014-02-19 21:11   ` [U-Boot] [U-Boot, v3, " Tom Rini
@ 2014-02-20  9:30     ` Masahiro Yamada
  2014-02-20 13:39       ` Tom Rini
  0 siblings, 1 reply; 17+ messages in thread
From: Masahiro Yamada @ 2014-02-20  9:30 UTC (permalink / raw)
  To: u-boot

Hello Tom, Simon,

On Wed, 19 Feb 2014 16:11:11 -0500
Tom Rini <trini@ti.com> wrote:

> On Wed, Feb 05, 2014 at 11:28:25AM +0900, Masahiro Yamada wrote:
> 
> > Useful rules in scripts/Makefile.lib allows us to easily
> > generate a device tree blob and wrap it in assembly code.
> > 
> > We do not need to parse a linker script to get output format and arch.
> > 
> > This commit deletes ./u-boot.dtb since it is a copy of dts/dt.dtb.
> > 
> > Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
> 
> Applied to u-boot/master, thanks!
> 
> -- 
> Tom


Ditto.
Possibly it was missed because Simon and I were discussing
in version 2 thread.


> > >
> > > Besides,  dts/dt.dtb is a prerequisite of dts/dt.dtb.S
> > > when CONFIG_OF_EMBED is enabled.
> > >
> > > I believe keeping dts/dt.dtb is reasonable enough.
> > >
> > > Better to keep both?
> > 
> > Yes I think so.
> 
> 
> OK.
> I will revive ./u-boot.dtb and post a new version.
> 
> And I will send it as a single patch
> dropping 2/3 and 3/3.
> Do you think it's better?
> 
> Many kbuild-related patches are being stuck on patchwork
> and my local branch is getting messed up.
> I don't want to delay this patch any more.


I was planning to post a new version.
But before that, version 3 was applied.

So, what should I do?
Shall I post a follow-up patch to revive a
device tree at the top directory (./u-boot.dtb) ?



Best Regards
Masahiro Yamada

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [U-Boot] [U-Boot, v3, 1/3] dts: re-write dts/Makefile more simply with Kbuild
  2014-02-20  9:30     ` Masahiro Yamada
@ 2014-02-20 13:39       ` Tom Rini
  0 siblings, 0 replies; 17+ messages in thread
From: Tom Rini @ 2014-02-20 13:39 UTC (permalink / raw)
  To: u-boot

On Thu, Feb 20, 2014 at 06:30:44PM +0900, Masahiro Yamada wrote:
> Hello Tom, Simon,
> 
> On Wed, 19 Feb 2014 16:11:11 -0500
> Tom Rini <trini@ti.com> wrote:
> 
> > On Wed, Feb 05, 2014 at 11:28:25AM +0900, Masahiro Yamada wrote:
> > 
> > > Useful rules in scripts/Makefile.lib allows us to easily
> > > generate a device tree blob and wrap it in assembly code.
> > > 
> > > We do not need to parse a linker script to get output format and arch.
> > > 
> > > This commit deletes ./u-boot.dtb since it is a copy of dts/dt.dtb.
> > > 
> > > Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
> > 
> > Applied to u-boot/master, thanks!
> > 
> > -- 
> > Tom
> 
> 
> Ditto.
> Possibly it was missed because Simon and I were discussing
> in version 2 thread.
> 
> 
> > > >
> > > > Besides,  dts/dt.dtb is a prerequisite of dts/dt.dtb.S
> > > > when CONFIG_OF_EMBED is enabled.
> > > >
> > > > I believe keeping dts/dt.dtb is reasonable enough.
> > > >
> > > > Better to keep both?
> > > 
> > > Yes I think so.
> > 
> > 
> > OK.
> > I will revive ./u-boot.dtb and post a new version.
> > 
> > And I will send it as a single patch
> > dropping 2/3 and 3/3.
> > Do you think it's better?
> > 
> > Many kbuild-related patches are being stuck on patchwork
> > and my local branch is getting messed up.
> > I don't want to delay this patch any more.
> 
> 
> I was planning to post a new version.
> But before that, version 3 was applied.
> 
> So, what should I do?
> Shall I post a follow-up patch to revive a
> device tree at the top directory (./u-boot.dtb) ?

heh, so this is what happens when I try and get ahead of the curve :)
Just do a follow up to bring things into line with what you and Simon
had agreed on.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140220/5f5100f0/attachment.pgp>

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [U-Boot] [U-Boot, v3, 2/3] dts: move device tree sources to arch/$(ARCH)/dts/
  2014-02-20  9:22     ` Masahiro Yamada
@ 2014-02-20 13:43       ` Tom Rini
  0 siblings, 0 replies; 17+ messages in thread
From: Tom Rini @ 2014-02-20 13:43 UTC (permalink / raw)
  To: u-boot

On Thu, Feb 20, 2014 at 06:22:20PM +0900, Masahiro Yamada wrote:
> Hello Tom, Simon
> 
> > > 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>
> > 
> > Applied to u-boot/master, thanks!
> > 
> > -- 
> > Tom
> 
> 
> This series was applied sooner than I had expected.
> Simon and I were still discussing this series.
> 
> So I am afraid Simon is really not happy about it
> because he was opposed to moving *.dts files
> from vendor directories to arch directories.
> 
> Tom also mentioned as follows:
> > 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.
> 
> I'd like to know Tom's option about the device tree structure.
> Let me confirm if my patch is doing right thing.

So, for clarity, yes, I this this is the right way to go and we should
focus our "we can do better" efforts on the discussion that is / will be
happening with the kernel folks about how things should be handled once
all these blobs move out of the kernel as that'll be something we want
to leverage too.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140220/80b06850/attachment.pgp>

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [U-Boot] [PATCH v3 1/3] dts: re-write dts/Makefile more simply with Kbuild
  2014-02-05  2:28 ` [U-Boot] [PATCH v3 1/3] dts: re-write dts/Makefile more simply with Kbuild Masahiro Yamada
  2014-02-15 23:41   ` Simon Glass
  2014-02-19 21:11   ` [U-Boot] [U-Boot, v3, " Tom Rini
@ 2014-05-27 18:32   ` York Sun
  2014-05-28  0:54     ` Masahiro Yamada
  2 siblings, 1 reply; 17+ messages in thread
From: York Sun @ 2014-05-27 18:32 UTC (permalink / raw)
  To: u-boot

On 02/04/2014 06:28 PM, Masahiro Yamada wrote:
> Useful rules in scripts/Makefile.lib allows us to easily
> generate a device tree blob and wrap it in assembly code.
> 
> We do not need to parse a linker script to get output format and arch.
> 
> This commit deletes ./u-boot.dtb since it is a copy of dts/dt.dtb.
> 
> Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
> ---
> 
> Changes in v3: None
> Changes in v2:
>   - Rebase on Kbuild series v9
>   - Add ';' which was missing in arch/arm/lib/board.c
> 

<snip>

>  
> diff --git a/arch/arm/lib/board.c b/arch/arm/lib/board.c
> index b770e25..38b9c7d 100644
> --- a/arch/arm/lib/board.c
> +++ b/arch/arm/lib/board.c
> @@ -280,7 +280,7 @@ void board_init_f(ulong bootflag)
>  	gd->mon_len = _bss_end_ofs;
>  #ifdef CONFIG_OF_EMBED
>  	/* Get a pointer to the FDT */
> -	gd->fdt_blob = _binary_dt_dtb_start;
> +	gd->fdt_blob = __dtb_db_begin;

Is this a typo? I believe it should be __dtb_dt_begin. Did anyone see the
compiling error?

York

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [U-Boot] [PATCH v3 1/3] dts: re-write dts/Makefile more simply with Kbuild
  2014-05-27 18:32   ` [U-Boot] [PATCH v3 " York Sun
@ 2014-05-28  0:54     ` Masahiro Yamada
  2014-06-01 16:34       ` Simon Glass
  0 siblings, 1 reply; 17+ messages in thread
From: Masahiro Yamada @ 2014-05-28  0:54 UTC (permalink / raw)
  To: u-boot

Hi York,

> > diff --git a/arch/arm/lib/board.c b/arch/arm/lib/board.c
> > index b770e25..38b9c7d 100644
> > --- a/arch/arm/lib/board.c
> > +++ b/arch/arm/lib/board.c
> > @@ -280,7 +280,7 @@ void board_init_f(ulong bootflag)
> >  	gd->mon_len = _bss_end_ofs;
> >  #ifdef CONFIG_OF_EMBED
> >  	/* Get a pointer to the FDT */
> > -	gd->fdt_blob = _binary_dt_dtb_start;
> > +	gd->fdt_blob = __dtb_db_begin;
> 
> Is this a typo? I believe it should be __dtb_dt_begin. Did anyone see the
> compiling error?


Yes, it's a typo.
I had already posted a patch.
http://patchwork.ozlabs.org/patch/342815/

Even such a simple one has been waiting for more than one month
in Patchwork queue.
:-(

For now, CONFIG_OF_EMBED is defined for MicroBlaze.
I guess nobody saw the compile error.



Best Regards
Masahiro Yamada]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [U-Boot] [PATCH v3 1/3] dts: re-write dts/Makefile more simply with Kbuild
  2014-05-28  0:54     ` Masahiro Yamada
@ 2014-06-01 16:34       ` Simon Glass
  2014-06-02  6:18         ` Michal Simek
  0 siblings, 1 reply; 17+ messages in thread
From: Simon Glass @ 2014-06-01 16:34 UTC (permalink / raw)
  To: u-boot

Hi,

On 27 May 2014 18:54, Masahiro Yamada <yamada.m@jp.panasonic.com> wrote:
> Hi York,
>
>> > diff --git a/arch/arm/lib/board.c b/arch/arm/lib/board.c
>> > index b770e25..38b9c7d 100644
>> > --- a/arch/arm/lib/board.c
>> > +++ b/arch/arm/lib/board.c
>> > @@ -280,7 +280,7 @@ void board_init_f(ulong bootflag)
>> >     gd->mon_len = _bss_end_ofs;
>> >  #ifdef CONFIG_OF_EMBED
>> >     /* Get a pointer to the FDT */
>> > -   gd->fdt_blob = _binary_dt_dtb_start;
>> > +   gd->fdt_blob = __dtb_db_begin;
>>
>> Is this a typo? I believe it should be __dtb_dt_begin. Did anyone see the
>> compiling error?
>
>
> Yes, it's a typo.
> I had already posted a patch.
> http://patchwork.ozlabs.org/patch/342815/
>
> Even such a simple one has been waiting for more than one month
> in Patchwork queue.
> :-(
>
> For now, CONFIG_OF_EMBED is defined for MicroBlaze.
> I guess nobody saw the compile error.

I suspect all boards that use CONFIG_OF_CONTROL also use generic board
now. I expect that this file will be deleted at the end of the year.

Regards,
Simon

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [U-Boot] [PATCH v3 1/3] dts: re-write dts/Makefile more simply with Kbuild
  2014-06-01 16:34       ` Simon Glass
@ 2014-06-02  6:18         ` Michal Simek
  0 siblings, 0 replies; 17+ messages in thread
From: Michal Simek @ 2014-06-02  6:18 UTC (permalink / raw)
  To: u-boot

On 06/01/2014 06:34 PM, Simon Glass wrote:
> Hi,
> 
> On 27 May 2014 18:54, Masahiro Yamada <yamada.m@jp.panasonic.com> wrote:
>> Hi York,
>>
>>>> diff --git a/arch/arm/lib/board.c b/arch/arm/lib/board.c
>>>> index b770e25..38b9c7d 100644
>>>> --- a/arch/arm/lib/board.c
>>>> +++ b/arch/arm/lib/board.c
>>>> @@ -280,7 +280,7 @@ void board_init_f(ulong bootflag)
>>>>     gd->mon_len = _bss_end_ofs;
>>>>  #ifdef CONFIG_OF_EMBED
>>>>     /* Get a pointer to the FDT */
>>>> -   gd->fdt_blob = _binary_dt_dtb_start;
>>>> +   gd->fdt_blob = __dtb_db_begin;
>>>
>>> Is this a typo? I believe it should be __dtb_dt_begin. Did anyone see the
>>> compiling error?
>>
>>
>> Yes, it's a typo.
>> I had already posted a patch.
>> http://patchwork.ozlabs.org/patch/342815/
>>
>> Even such a simple one has been waiting for more than one month
>> in Patchwork queue.
>> :-(
>>
>> For now, CONFIG_OF_EMBED is defined for MicroBlaze.
>> I guess nobody saw the compile error.
> 
> I suspect all boards that use CONFIG_OF_CONTROL also use generic board
> now. I expect that this file will be deleted at the end of the year.

No. Microblaze has no generic board support yet.
For zynq I have sent patches out but they will be merged in the next
merge window.

Thanks,
Michal

-- 
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Microblaze cpu - http://www.monstr.eu/fdt/
Maintainer of Linux kernel - Xilinx Zynq ARM architecture
Microblaze U-BOOT custodian and responsible for u-boot arm zynq platform


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 263 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140602/b25c01bd/attachment.pgp>

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2014-06-02  6:18 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-05  2:28 [U-Boot] [PATCH v3 0/3] Simplify dts/Makefile and support multiple DTBs generation Masahiro Yamada
2014-02-05  2:28 ` [U-Boot] [PATCH v3 1/3] dts: re-write dts/Makefile more simply with Kbuild Masahiro Yamada
2014-02-15 23:41   ` Simon Glass
2014-02-19 21:11   ` [U-Boot] [U-Boot, v3, " Tom Rini
2014-02-20  9:30     ` Masahiro Yamada
2014-02-20 13:39       ` Tom Rini
2014-05-27 18:32   ` [U-Boot] [PATCH v3 " York Sun
2014-05-28  0:54     ` Masahiro Yamada
2014-06-01 16:34       ` Simon Glass
2014-06-02  6:18         ` Michal Simek
2014-02-05  2:28 ` [U-Boot] [PATCH v3 2/3] dts: move device tree sources to arch/$(ARCH)/dts/ Masahiro Yamada
2014-02-19 21:11   ` [U-Boot] [U-Boot, v3, " Tom Rini
2014-02-20  9:22     ` Masahiro Yamada
2014-02-20 13:43       ` Tom Rini
2014-02-05  2:28 ` [U-Boot] [PATCH v3 3/3] dts: generate multiple device tree blobs Masahiro Yamada
2014-02-15 23:41   ` Simon Glass
2014-02-19 21:11   ` [U-Boot] [U-Boot, v3, " Tom Rini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.