All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v3 09/10] kconfig: move CONFIG_OF_* to Kconfig
@ 2014-09-22 10:59 Masahiro Yamada
  2014-09-22 10:59 ` [U-Boot] [PATCH v3 10/10] kconfig: move CONFIG_DEFAULT_DEVICE_TREE to kconfig Masahiro Yamada
                   ` (2 more replies)
  0 siblings, 3 replies; 19+ messages in thread
From: Masahiro Yamada @ 2014-09-22 10:59 UTC (permalink / raw)
  To: u-boot

This commit moves:
  CONFIG_OF_CONTROL
  CONFIG_OF_SEPARATE
  CONFIG_OF_EMBED
  CONFIG_OF_HOSTFILE

Because these options are currently not supported for SPL,
the "Device Tree Control" menu does not appear in the SPL
configuration.

Note:
zynq-common.h should be adjusted so as not to change the
default value of CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Stephen Warren <swarren@nvidia.com>
Cc: Minkyu Kang <mk7.kang@samsung.com>
Cc: Michal Simek <michal.simek@xilinx.com>
---

Changes in v3:
  - Rename HAVE_OF_CONTROL_SUPPORT to SUPPORT_OF_CONTROL
    because HAVE_OF_CONTRO_SUPPORT sounds too long
  - Do not specify the default of  choice "Provider of DTB for DT control"
  - Fix the default value of Sandbox

Changes in v2:
  - Add "select OF_CONTROL" to TEGRA and Exynos5 boards
    because they always need a device tree to boot U-Boot
  - Add HAVE_OF_CONTROL_SUPPORT
  - Do not touch mx6qsabreauto board
    (This will be coverd by commit 19a895cbe9430 in u-boot-imx.
     Fabio has already sent a pull-req.)
  - cleanup left-over comments in include/configs/exynos-*.h

 Kconfig                                  |  2 ++
 arch/Kconfig                             |  4 +++
 arch/arm/Kconfig                         |  1 +
 arch/arm/cpu/armv7/exynos/Kconfig        |  5 ++++
 configs/am335x_boneblack_vboot_defconfig |  1 +
 configs/coreboot-x86_defconfig           |  1 +
 configs/microblaze-generic_defconfig     |  2 ++
 configs/odroid_defconfig                 |  1 +
 configs/origen_defconfig                 |  1 +
 configs/s5pc210_universal_defconfig      |  1 +
 configs/sandbox_defconfig                |  2 ++
 configs/trats2_defconfig                 |  1 +
 configs/trats_defconfig                  |  1 +
 configs/zynq_microzed_defconfig          |  1 +
 configs/zynq_zc70x_defconfig             |  1 +
 configs/zynq_zc770_xm010_defconfig       |  1 +
 configs/zynq_zc770_xm012_defconfig       |  1 +
 configs/zynq_zc770_xm013_defconfig       |  1 +
 configs/zynq_zed_defconfig               |  1 +
 dts/Kconfig                              | 48 ++++++++++++++++++++++++++++++++
 include/configs/am335x_evm.h             |  2 --
 include/configs/arndale.h                |  2 --
 include/configs/beaver.h                 |  2 --
 include/configs/cardhu.h                 |  2 --
 include/configs/colibri_t20_iris.h       |  2 --
 include/configs/colibri_t30.h            |  2 --
 include/configs/coreboot.h               |  2 --
 include/configs/dalmore.h                |  2 --
 include/configs/exynos4-dt.h             |  4 ---
 include/configs/exynos5-dt.h             |  4 ---
 include/configs/harmony.h                |  2 --
 include/configs/jetson-tk1.h             |  2 --
 include/configs/medcom-wide.h            |  2 --
 include/configs/microblaze-generic.h     |  2 --
 include/configs/paz00.h                  |  2 --
 include/configs/plutux.h                 |  2 --
 include/configs/sandbox.h                |  2 --
 include/configs/seaboard.h               |  2 --
 include/configs/tec-ng.h                 |  2 --
 include/configs/tec.h                    |  2 --
 include/configs/tegra-common-post.h      |  1 -
 include/configs/trimslice.h              |  2 --
 include/configs/venice2.h                |  2 --
 include/configs/ventana.h                |  2 --
 include/configs/whistler.h               |  2 --
 include/configs/zynq-common.h            |  9 +-----
 46 files changed, 78 insertions(+), 61 deletions(-)
 create mode 100644 dts/Kconfig

diff --git a/Kconfig b/Kconfig
index fc5e7cd..e0c8992 100644
--- a/Kconfig
+++ b/Kconfig
@@ -106,6 +106,8 @@ source "arch/Kconfig"
 
 source "common/Kconfig"
 
+source "dts/Kconfig"
+
 source "net/Kconfig"
 
 source "drivers/Kconfig"
diff --git a/arch/Kconfig b/arch/Kconfig
index c9ccb7d..bf26764 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -7,6 +7,7 @@ config ARC
 
 config ARM
 	bool "ARM architecture"
+	select SUPPORT_OF_CONTROL
 
 config AVR32
 	bool "AVR32 architecture"
@@ -19,6 +20,7 @@ config M68K
 
 config MICROBLAZE
 	bool "MicroBlaze architecture"
+	select SUPPORT_OF_CONTROL
 
 config MIPS
 	bool "MIPS architecture"
@@ -37,6 +39,7 @@ config PPC
 
 config SANDBOX
 	bool "Sandbox"
+	select SUPPORT_OF_CONTROL
 
 config SH
 	bool "SuperH architecture"
@@ -46,6 +49,7 @@ config SPARC
 
 config X86
 	bool "x86 architecture"
+	select SUPPORT_OF_CONTROL
 
 endchoice
 
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 1d8b402..16cbb5e 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -462,6 +462,7 @@ config ZYNQ
 config TEGRA
 	bool "NVIDIA Tegra"
 	select SPL
+	select OF_CONTROL if !SPL_BUILD
 
 config TARGET_VEXPRESS_AEMV8A
 	bool "Support vexpress_aemv8a"
diff --git a/arch/arm/cpu/armv7/exynos/Kconfig b/arch/arm/cpu/armv7/exynos/Kconfig
index d132f03..e7c93d8 100644
--- a/arch/arm/cpu/armv7/exynos/Kconfig
+++ b/arch/arm/cpu/armv7/exynos/Kconfig
@@ -23,18 +23,23 @@ config TARGET_ODROID
 
 config TARGET_ARNDALE
 	bool "Exynos5250 Arndale board"
+	select OF_CONTROL if !SPL_BUILD
 
 config TARGET_SMDK5250
 	bool "SMDK5250 board"
+	select OF_CONTROL if !SPL_BUILD
 
 config TARGET_SNOW
 	bool "Snow board"
+	select OF_CONTROL if !SPL_BUILD
 
 config TARGET_SMDK5420
 	bool "SMDK5420 board"
+	select OF_CONTROL if !SPL_BUILD
 
 config TARGET_PEACH_PIT
 	bool "Peach Pi board"
+	select OF_CONTROL if !SPL_BUILD
 
 endchoice
 
diff --git a/configs/am335x_boneblack_vboot_defconfig b/configs/am335x_boneblack_vboot_defconfig
index 00317c4..af7ceca 100644
--- a/configs/am335x_boneblack_vboot_defconfig
+++ b/configs/am335x_boneblack_vboot_defconfig
@@ -2,3 +2,4 @@ CONFIG_SPL=y
 CONFIG_SYS_EXTRA_OPTIONS="SERIAL1,CONS_INDEX=1,EMMC_BOOT,ENABLE_VBOOT"
 +S:CONFIG_ARM=y
 +S:CONFIG_TARGET_AM335X_EVM=y
+CONFIG_OF_CONTROL=y
diff --git a/configs/coreboot-x86_defconfig b/configs/coreboot-x86_defconfig
index a06c527..3cc034a 100644
--- a/configs/coreboot-x86_defconfig
+++ b/configs/coreboot-x86_defconfig
@@ -1,3 +1,4 @@
 CONFIG_SYS_EXTRA_OPTIONS="SYS_TEXT_BASE=0x01110000"
 CONFIG_X86=y
 CONFIG_TARGET_COREBOOT=y
+CONFIG_OF_CONTROL=y
diff --git a/configs/microblaze-generic_defconfig b/configs/microblaze-generic_defconfig
index 7f23786..1dc7441 100644
--- a/configs/microblaze-generic_defconfig
+++ b/configs/microblaze-generic_defconfig
@@ -1,3 +1,5 @@
 CONFIG_SPL=y
 +S:CONFIG_MICROBLAZE=y
 +S:CONFIG_TARGET_MICROBLAZE_GENERIC=y
+CONFIG_OF_CONTROL=y
+CONFIG_OF_EMBED=y
diff --git a/configs/odroid_defconfig b/configs/odroid_defconfig
index a1c7ac5..98ca447 100644
--- a/configs/odroid_defconfig
+++ b/configs/odroid_defconfig
@@ -1,3 +1,4 @@
 CONFIG_ARM=y
 CONFIG_ARCH_EXYNOS=y
 CONFIG_TARGET_ODROID=y
+CONFIG_OF_CONTROL=y
diff --git a/configs/origen_defconfig b/configs/origen_defconfig
index aa92381..1d712e8 100644
--- a/configs/origen_defconfig
+++ b/configs/origen_defconfig
@@ -2,3 +2,4 @@ CONFIG_SPL=y
 +S:CONFIG_ARM=y
 +S:CONFIG_ARCH_EXYNOS=y
 +S:CONFIG_TARGET_ORIGEN=y
+CONFIG_OF_CONTROL=y
diff --git a/configs/s5pc210_universal_defconfig b/configs/s5pc210_universal_defconfig
index a9a3446..0a3ad0d 100644
--- a/configs/s5pc210_universal_defconfig
+++ b/configs/s5pc210_universal_defconfig
@@ -1,3 +1,4 @@
 CONFIG_ARM=y
 CONFIG_ARCH_EXYNOS=y
 CONFIG_TARGET_S5PC210_UNIVERSAL=y
+CONFIG_OF_CONTROL=y
diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig
index e69de29..84681db 100644
--- a/configs/sandbox_defconfig
+++ b/configs/sandbox_defconfig
@@ -0,0 +1,2 @@
+CONFIG_OF_CONTROL=y
+CONFIG_OF_HOSTFILE=y
diff --git a/configs/trats2_defconfig b/configs/trats2_defconfig
index fa82724..666011c 100644
--- a/configs/trats2_defconfig
+++ b/configs/trats2_defconfig
@@ -1,3 +1,4 @@
 CONFIG_ARM=y
 CONFIG_ARCH_EXYNOS=y
 CONFIG_TARGET_TRATS2=y
+CONFIG_OF_CONTROL=y
diff --git a/configs/trats_defconfig b/configs/trats_defconfig
index f888a51..6ef4b33 100644
--- a/configs/trats_defconfig
+++ b/configs/trats_defconfig
@@ -1,3 +1,4 @@
 CONFIG_ARM=y
 CONFIG_ARCH_EXYNOS=y
 CONFIG_TARGET_TRATS=y
+CONFIG_OF_CONTROL=y
diff --git a/configs/zynq_microzed_defconfig b/configs/zynq_microzed_defconfig
index 3aedb35..9767863 100644
--- a/configs/zynq_microzed_defconfig
+++ b/configs/zynq_microzed_defconfig
@@ -2,3 +2,4 @@ CONFIG_SPL=y
 +S:CONFIG_ARM=y
 +S:CONFIG_ZYNQ=y
 +S:CONFIG_TARGET_ZYNQ_MICROZED=y
+CONFIG_OF_CONTROL=y
diff --git a/configs/zynq_zc70x_defconfig b/configs/zynq_zc70x_defconfig
index 04c8def..d303f97 100644
--- a/configs/zynq_zc70x_defconfig
+++ b/configs/zynq_zc70x_defconfig
@@ -2,3 +2,4 @@ CONFIG_SPL=y
 +S:CONFIG_ARM=y
 +S:CONFIG_ZYNQ=y
 +S:CONFIG_TARGET_ZYNQ_ZC70X=y
+CONFIG_OF_CONTROL=y
diff --git a/configs/zynq_zc770_xm010_defconfig b/configs/zynq_zc770_xm010_defconfig
index 1178b40..4e6660f 100644
--- a/configs/zynq_zc770_xm010_defconfig
+++ b/configs/zynq_zc770_xm010_defconfig
@@ -3,3 +3,4 @@ CONFIG_SYS_EXTRA_OPTIONS="ZC770_XM010"
 +S:CONFIG_ARM=y
 +S:CONFIG_ZYNQ=y
 +S:CONFIG_TARGET_ZYNQ_ZC770=y
+CONFIG_OF_CONTROL=y
diff --git a/configs/zynq_zc770_xm012_defconfig b/configs/zynq_zc770_xm012_defconfig
index 52c2121..16d62e6 100644
--- a/configs/zynq_zc770_xm012_defconfig
+++ b/configs/zynq_zc770_xm012_defconfig
@@ -3,3 +3,4 @@ CONFIG_SYS_EXTRA_OPTIONS="ZC770_XM012"
 +S:CONFIG_ARM=y
 +S:CONFIG_ZYNQ=y
 +S:CONFIG_TARGET_ZYNQ_ZC770=y
+CONFIG_OF_CONTROL=y
diff --git a/configs/zynq_zc770_xm013_defconfig b/configs/zynq_zc770_xm013_defconfig
index 836809a..7343a64 100644
--- a/configs/zynq_zc770_xm013_defconfig
+++ b/configs/zynq_zc770_xm013_defconfig
@@ -3,3 +3,4 @@ CONFIG_SYS_EXTRA_OPTIONS="ZC770_XM013"
 +S:CONFIG_ARM=y
 +S:CONFIG_ZYNQ=y
 +S:CONFIG_TARGET_ZYNQ_ZC770=y
+CONFIG_OF_CONTROL=y
diff --git a/configs/zynq_zed_defconfig b/configs/zynq_zed_defconfig
index 2337906..38d5fa6 100644
--- a/configs/zynq_zed_defconfig
+++ b/configs/zynq_zed_defconfig
@@ -2,3 +2,4 @@ CONFIG_SPL=y
 +S:CONFIG_ARM=y
 +S:CONFIG_ZYNQ=y
 +S:CONFIG_TARGET_ZYNQ_ZED=y
+CONFIG_OF_CONTROL=y
diff --git a/dts/Kconfig b/dts/Kconfig
new file mode 100644
index 0000000..20be556
--- /dev/null
+++ b/dts/Kconfig
@@ -0,0 +1,48 @@
+#
+# Device Tree Control
+#
+# TODO:
+#   This feature is not currently supported for SPL,
+#    but this restriction should be removed in the future.
+
+config SUPPORT_OF_CONTROL
+	bool
+
+menu "Device Tree Control"
+	depends on !SPL_BUILD
+	depends on SUPPORT_OF_CONTROL
+
+config OF_CONTROL
+	bool "Run-time configuration via Device Tree"
+	help
+	  This feature provides for run-time configuration of U-Boot
+	  via a flattened device tree.
+
+choice
+	prompt "Provider of DTB for DT control"
+	depends on OF_CONTROL
+
+config OF_SEPARATE
+	bool "Separate DTB for DT control"
+	depends on !SANDBOX
+	help
+	  If this option is enabled, the device tree will be built and
+	  placed as a separate u-boot.dtb file alongside the U-Boot image.
+
+config OF_EMBED
+	bool "Embedded DTB for DT control"
+	help
+	  If this option is enabled, the device tree will be picked up and
+	  built into the U-Boot image.
+
+config OF_HOSTFILE
+	bool "Host filed DTB for DT control"
+	depends on SANDBOX
+	help
+	  If this option is enabled, DTB will be read from a file on startup.
+	  This is only useful for Sandbox.  Use the -d flag to U-Boot to
+	  specify the file to read.
+
+endchoice
+
+endmenu
diff --git a/include/configs/am335x_evm.h b/include/configs/am335x_evm.h
index df1a6fc..47a173f 100644
--- a/include/configs/am335x_evm.h
+++ b/include/configs/am335x_evm.h
@@ -23,8 +23,6 @@
 # define CONFIG_TIMESTAMP
 # define CONFIG_LZO
 # ifdef CONFIG_ENABLE_VBOOT
-#  define CONFIG_OF_CONTROL
-#  define CONFIG_OF_SEPARATE
 #  define CONFIG_DEFAULT_DEVICE_TREE am335x-boneblack
 #  define CONFIG_FIT_SIGNATURE
 #  define CONFIG_RSA
diff --git a/include/configs/arndale.h b/include/configs/arndale.h
index 75f9933..7f06907 100644
--- a/include/configs/arndale.h
+++ b/include/configs/arndale.h
@@ -22,8 +22,6 @@
 #define CONFIG_DISPLAY_CPUINFO
 #define CONFIG_DISPLAY_BOARDINFO
 
-#define CONFIG_OF_CONTROL
-#define CONFIG_OF_SEPARATE
 
 /* Allow tracing to be enabled */
 #define CONFIG_TRACE
diff --git a/include/configs/beaver.h b/include/configs/beaver.h
index d8ed717..4c7cf5f 100644
--- a/include/configs/beaver.h
+++ b/include/configs/beaver.h
@@ -26,8 +26,6 @@
 
 /* Enable fdt support for Beaver. Flash the image in u-boot-dtb.bin */
 #define CONFIG_DEFAULT_DEVICE_TREE	tegra30-beaver
-#define CONFIG_OF_CONTROL
-#define CONFIG_OF_SEPARATE
 
 /* High-level configuration options */
 #define V_PROMPT		"Tegra30 (Beaver) # "
diff --git a/include/configs/cardhu.h b/include/configs/cardhu.h
index 59f429c..1616a54 100644
--- a/include/configs/cardhu.h
+++ b/include/configs/cardhu.h
@@ -26,8 +26,6 @@
 
 /* Enable fdt support for Cardhu. Flash the image in u-boot-dtb.bin */
 #define CONFIG_DEFAULT_DEVICE_TREE	tegra30-cardhu
-#define CONFIG_OF_CONTROL
-#define CONFIG_OF_SEPARATE
 
 /* High-level configuration options */
 #define V_PROMPT		"Tegra30 (Cardhu) # "
diff --git a/include/configs/colibri_t20_iris.h b/include/configs/colibri_t20_iris.h
index 6f9e08c..3ce1f9b 100644
--- a/include/configs/colibri_t20_iris.h
+++ b/include/configs/colibri_t20_iris.h
@@ -11,8 +11,6 @@
 
 /* Enable FDT support */
 #define CONFIG_DEFAULT_DEVICE_TREE	tegra20-colibri_t20_iris
-#define CONFIG_OF_CONTROL
-#define CONFIG_OF_SEPARATE
 
 /* High-level configuration options */
 #define V_PROMPT                   "Tegra20 (Colibri) # "
diff --git a/include/configs/colibri_t30.h b/include/configs/colibri_t30.h
index eacff5b..d9e2d86 100644
--- a/include/configs/colibri_t30.h
+++ b/include/configs/colibri_t30.h
@@ -12,8 +12,6 @@
 #include "tegra30-common.h"
 
 #define CONFIG_DEFAULT_DEVICE_TREE	tegra30-colibri
-#define CONFIG_OF_CONTROL
-#define CONFIG_OF_SEPARATE
 
 #define V_PROMPT			"Colibri T30 # "
 #define CONFIG_TEGRA_BOARD_STRING	"Toradex Colibri T30"
diff --git a/include/configs/coreboot.h b/include/configs/coreboot.h
index a1a63a0..915245e 100644
--- a/include/configs/coreboot.h
+++ b/include/configs/coreboot.h
@@ -28,8 +28,6 @@
 
 #define CONFIG_LMB
 #define CONFIG_OF_LIBFDT
-#define CONFIG_OF_CONTROL
-#define CONFIG_OF_SEPARATE
 #define CONFIG_DEFAULT_DEVICE_TREE	link
 
 #define CONFIG_BOOTSTAGE
diff --git a/include/configs/dalmore.h b/include/configs/dalmore.h
index fd774a3..e3bb27f 100644
--- a/include/configs/dalmore.h
+++ b/include/configs/dalmore.h
@@ -23,8 +23,6 @@
 
 /* Enable fdt support for Dalmore. Flash the image in u-boot-dtb.bin */
 #define CONFIG_DEFAULT_DEVICE_TREE	tegra114-dalmore
-#define CONFIG_OF_CONTROL
-#define CONFIG_OF_SEPARATE
 
 /* High-level configuration options */
 #define V_PROMPT		"Tegra114 (Dalmore) # "
diff --git a/include/configs/exynos4-dt.h b/include/configs/exynos4-dt.h
index 7dac1a3..99472ac 100644
--- a/include/configs/exynos4-dt.h
+++ b/include/configs/exynos4-dt.h
@@ -22,10 +22,6 @@
 #define CONFIG_BOARD_COMMON
 #define CONFIG_SYS_GENERIC_BOARD
 
-/* Enable fdt support */
-#define CONFIG_OF_CONTROL
-#define CONFIG_OF_SEPARATE
-
 #define CONFIG_SYS_CACHELINE_SIZE	32
 
 /* input clock of PLL: EXYNOS4 boards have 24MHz input clock */
diff --git a/include/configs/exynos5-dt.h b/include/configs/exynos5-dt.h
index a7c6292..1dc3002 100644
--- a/include/configs/exynos5-dt.h
+++ b/include/configs/exynos5-dt.h
@@ -24,10 +24,6 @@
 #define CONFIG_ARCH_EARLY_INIT_R
 #define CONFIG_EXYNOS_SPL
 
-/* Enable fdt support for Exynos5250 */
-#define CONFIG_OF_CONTROL
-#define CONFIG_OF_SEPARATE
-
 /* Allow tracing to be enabled */
 #define CONFIG_TRACE
 #define CONFIG_CMD_TRACE
diff --git a/include/configs/harmony.h b/include/configs/harmony.h
index 3ec0e41..97db202 100644
--- a/include/configs/harmony.h
+++ b/include/configs/harmony.h
@@ -13,8 +13,6 @@
 
 /* Enable fdt support for Harmony. Flash the image in u-boot-dtb.bin */
 #define CONFIG_DEFAULT_DEVICE_TREE	tegra20-harmony
-#define CONFIG_OF_CONTROL
-#define CONFIG_OF_SEPARATE
 
 /* High-level configuration options */
 #define V_PROMPT		"Tegra20 (Harmony) # "
diff --git a/include/configs/jetson-tk1.h b/include/configs/jetson-tk1.h
index d03a66c..dc7e324 100644
--- a/include/configs/jetson-tk1.h
+++ b/include/configs/jetson-tk1.h
@@ -14,8 +14,6 @@
 
 /* Enable fdt support for Jetson TK1. Flash the image in u-boot-dtb.bin */
 #define CONFIG_DEFAULT_DEVICE_TREE	tegra124-jetson-tk1
-#define CONFIG_OF_CONTROL
-#define CONFIG_OF_SEPARATE
 
 /* High-level configuration options */
 #define V_PROMPT			"Tegra124 (Jetson TK1) # "
diff --git a/include/configs/medcom-wide.h b/include/configs/medcom-wide.h
index 40155c3..5e52574 100644
--- a/include/configs/medcom-wide.h
+++ b/include/configs/medcom-wide.h
@@ -14,8 +14,6 @@
 
 /* Enable fdt support for Medcom-Wide. Flash the image in u-boot-dtb.bin */
 #define CONFIG_DEFAULT_DEVICE_TREE	tegra20-medcom-wide
-#define CONFIG_OF_CONTROL
-#define CONFIG_OF_SEPARATE
 
 /* High-level configuration options */
 #define V_PROMPT			"Tegra20 (Medcom-Wide) # "
diff --git a/include/configs/microblaze-generic.h b/include/configs/microblaze-generic.h
index 1a82a57..f5e83ff 100644
--- a/include/configs/microblaze-generic.h
+++ b/include/configs/microblaze-generic.h
@@ -15,8 +15,6 @@
 #define	MICROBLAZE_V5		1
 
 /* Open Firmware DTS */
-#define CONFIG_OF_CONTROL	1
-#define CONFIG_OF_EMBED		1
 #define CONFIG_DEFAULT_DEVICE_TREE microblaze-generic
 
 /* linear and spi flash memory */
diff --git a/include/configs/paz00.h b/include/configs/paz00.h
index dd0abf8..01cb649 100644
--- a/include/configs/paz00.h
+++ b/include/configs/paz00.h
@@ -22,8 +22,6 @@
 
 /* Enable fdt support for Paz00. Flash the image in u-boot-dtb.bin */
 #define CONFIG_DEFAULT_DEVICE_TREE	tegra20-paz00
-#define CONFIG_OF_CONTROL
-#define CONFIG_OF_SEPARATE
 
 /* High-level configuration options */
 #define V_PROMPT		"Tegra20 (Paz00) MOD # "
diff --git a/include/configs/plutux.h b/include/configs/plutux.h
index a473f23..719d81a 100644
--- a/include/configs/plutux.h
+++ b/include/configs/plutux.h
@@ -14,8 +14,6 @@
 
 /* Enable fdt support for Plutux. Flash the image in u-boot-dtb.bin */
 #define CONFIG_DEFAULT_DEVICE_TREE	tegra20-plutux
-#define CONFIG_OF_CONTROL
-#define CONFIG_OF_SEPARATE
 
 /* High-level configuration options */
 #define V_PROMPT			"Tegra20 (Plutux) # "
diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h
index f5fa4b3..31a0ff9 100644
--- a/include/configs/sandbox.h
+++ b/include/configs/sandbox.h
@@ -38,8 +38,6 @@
 /* Number of bits in a C 'long' on this architecture */
 #define CONFIG_SANDBOX_BITS_PER_LONG	64
 
-#define CONFIG_OF_CONTROL
-#define CONFIG_OF_HOSTFILE
 #define CONFIG_OF_LIBFDT
 #define CONFIG_LMB
 #define CONFIG_FIT
diff --git a/include/configs/seaboard.h b/include/configs/seaboard.h
index fc4f976..e61811d 100644
--- a/include/configs/seaboard.h
+++ b/include/configs/seaboard.h
@@ -21,8 +21,6 @@
 
 /* Enable fdt support for Seaboard. Flash the image in u-boot-dtb.bin */
 #define CONFIG_DEFAULT_DEVICE_TREE	tegra20-seaboard
-#define CONFIG_OF_CONTROL
-#define CONFIG_OF_SEPARATE
 
 /* High-level configuration options */
 #define V_PROMPT		"Tegra20 (SeaBoard) # "
diff --git a/include/configs/tec-ng.h b/include/configs/tec-ng.h
index 13baa76..5b4c255 100644
--- a/include/configs/tec-ng.h
+++ b/include/configs/tec-ng.h
@@ -12,8 +12,6 @@
 
 /* Enable fdt support for tec-ng. Flash the image in u-boot-dtb.bin */
 #define CONFIG_DEFAULT_DEVICE_TREE	tegra30-tec-ng
-#define CONFIG_OF_CONTROL
-#define CONFIG_OF_SEPARATE
 
 /* High-level configuration options */
 #define V_PROMPT			"Tegra30 (TEC-NG) # "
diff --git a/include/configs/tec.h b/include/configs/tec.h
index 90e7b7a..0598d5d 100644
--- a/include/configs/tec.h
+++ b/include/configs/tec.h
@@ -14,8 +14,6 @@
 
 /* Enable fdt support for TEC. Flash the image in u-boot-dtb.bin */
 #define CONFIG_DEFAULT_DEVICE_TREE	tegra20-tec
-#define CONFIG_OF_CONTROL
-#define CONFIG_OF_SEPARATE
 
 /* High-level configuration options */
 #define V_PROMPT			"Tegra20 (TEC) # "
diff --git a/include/configs/tegra-common-post.h b/include/configs/tegra-common-post.h
index c337e30..23e3c8a 100644
--- a/include/configs/tegra-common-post.h
+++ b/include/configs/tegra-common-post.h
@@ -69,7 +69,6 @@
 
 /* remove devicetree support */
 #ifdef CONFIG_OF_CONTROL
-#undef CONFIG_OF_CONTROL
 #endif
 
 /* remove I2C support */
diff --git a/include/configs/trimslice.h b/include/configs/trimslice.h
index f81cfa2..2ef010c 100644
--- a/include/configs/trimslice.h
+++ b/include/configs/trimslice.h
@@ -13,8 +13,6 @@
 
 /* Enable fdt support for TrimSlice. Flash the image in u-boot-dtb.bin */
 #define CONFIG_DEFAULT_DEVICE_TREE	tegra20-trimslice
-#define CONFIG_OF_CONTROL
-#define CONFIG_OF_SEPARATE
 
 /* High-level configuration options */
 #define V_PROMPT		"Tegra20 (TrimSlice) # "
diff --git a/include/configs/venice2.h b/include/configs/venice2.h
index 6d4e999..b516d92 100644
--- a/include/configs/venice2.h
+++ b/include/configs/venice2.h
@@ -14,8 +14,6 @@
 
 /* Enable fdt support for Venice2. Flash the image in u-boot-dtb.bin */
 #define CONFIG_DEFAULT_DEVICE_TREE	tegra124-venice2
-#define CONFIG_OF_CONTROL
-#define CONFIG_OF_SEPARATE
 
 /* High-level configuration options */
 #define V_PROMPT			"Tegra124 (Venice2) # "
diff --git a/include/configs/ventana.h b/include/configs/ventana.h
index edf3720..3b9d142 100644
--- a/include/configs/ventana.h
+++ b/include/configs/ventana.h
@@ -13,8 +13,6 @@
 
 /* Enable fdt support for Ventana. Flash the image in u-boot-dtb.bin */
 #define CONFIG_DEFAULT_DEVICE_TREE	tegra20-ventana
-#define CONFIG_OF_CONTROL
-#define CONFIG_OF_SEPARATE
 
 /* High-level configuration options */
 #define V_PROMPT		"Tegra20 (Ventana) # "
diff --git a/include/configs/whistler.h b/include/configs/whistler.h
index 9e09f03..f3bf806 100644
--- a/include/configs/whistler.h
+++ b/include/configs/whistler.h
@@ -13,8 +13,6 @@
 
 /* Enable fdt support for Whistler. Flash the image in u-boot-dtb.bin */
 #define CONFIG_DEFAULT_DEVICE_TREE	tegra20-whistler
-#define CONFIG_OF_CONTROL
-#define CONFIG_OF_SEPARATE
 
 /* High-level configuration options */
 #define V_PROMPT		"Tegra20 (Whistler) # "
diff --git a/include/configs/zynq-common.h b/include/configs/zynq-common.h
index 875cb43..5d6472f 100644
--- a/include/configs/zynq-common.h
+++ b/include/configs/zynq-common.h
@@ -227,8 +227,6 @@
 #define CONFIG_IMAGE_FORMAT_LEGACY /* enable also legacy image format */
 
 /* FDT support */
-#define CONFIG_OF_CONTROL
-#define CONFIG_OF_SEPARATE
 #define CONFIG_DISPLAY_BOARDINFO_LATE
 
 /* RSA support */
@@ -273,18 +271,13 @@
 #define CONFIG_SYS_MMC_SD_FAT_BOOT_PARTITION    1
 #define CONFIG_SPL_LIBDISK_SUPPORT
 #define CONFIG_SPL_FAT_SUPPORT
-#if defined(CONFIG_OF_CONTROL) && defined(CONFIG_OF_SEPARATE)
-# define CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME     "u-boot-dtb.img"
-#else
-# define CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME     "u-boot.img"
-#endif
+#define CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME     "u-boot-dtb.img"
 #endif
 
 /* Disable dcache for SPL just for sure */
 #ifdef CONFIG_SPL_BUILD
 #define CONFIG_SYS_DCACHE_OFF
 #undef CONFIG_FPGA
-#undef CONFIG_OF_CONTROL
 #endif
 
 /* Address in RAM where the parameters must be copied by SPL. */
-- 
1.9.1

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

* [U-Boot] [PATCH v3 10/10] kconfig: move CONFIG_DEFAULT_DEVICE_TREE to kconfig
  2014-09-22 10:59 [U-Boot] [PATCH v3 09/10] kconfig: move CONFIG_OF_* to Kconfig Masahiro Yamada
@ 2014-09-22 10:59 ` Masahiro Yamada
  2014-09-24 23:09   ` Simon Glass
  2014-09-25 14:46   ` [U-Boot] [U-Boot, v3, " Tom Rini
  2014-09-24 23:08 ` [U-Boot] [PATCH v3 09/10] kconfig: move CONFIG_OF_* to Kconfig Simon Glass
  2014-09-25 14:46 ` [U-Boot] [U-Boot, v3, " Tom Rini
  2 siblings, 2 replies; 19+ messages in thread
From: Masahiro Yamada @ 2014-09-22 10:59 UTC (permalink / raw)
  To: u-boot

This option specifies the default Device Tree used for the run-time
configuration of U-Boot.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Stephen Warren <swarren@nvidia.com>
Cc: Minkyu Kang <mk7.kang@samsung.com>
Cc: Michal Simek <michal.simek@xilinx.com>
---

Changes in v3: None
Changes in v2:
  - Fix the commit subject
  - Rephrase the help comment of DEFAULT_DEVICE_TREE
  - Do not touch mx6qsabreauto board
    (This will be covered by commit 19a895cbe9430 in u-boot-imx.
     Fabio has already sent a pull-req.)

 configs/am335x_boneblack_vboot_defconfig | 1 +
 configs/arndale_defconfig                | 1 +
 configs/beaver_defconfig                 | 1 +
 configs/cardhu_defconfig                 | 1 +
 configs/colibri_t20_iris_defconfig       | 1 +
 configs/colibri_t30_defconfig            | 1 +
 configs/coreboot-x86_defconfig           | 1 +
 configs/dalmore_defconfig                | 1 +
 configs/harmony_defconfig                | 1 +
 configs/jetson-tk1_defconfig             | 1 +
 configs/medcom-wide_defconfig            | 1 +
 configs/microblaze-generic_defconfig     | 1 +
 configs/odroid_defconfig                 | 1 +
 configs/origen_defconfig                 | 1 +
 configs/paz00_defconfig                  | 1 +
 configs/peach-pit_defconfig              | 1 +
 configs/plutux_defconfig                 | 1 +
 configs/s5pc210_universal_defconfig      | 1 +
 configs/sandbox_defconfig                | 1 +
 configs/seaboard_defconfig               | 1 +
 configs/smdk5250_defconfig               | 1 +
 configs/smdk5420_defconfig               | 1 +
 configs/snow_defconfig                   | 1 +
 configs/tec-ng_defconfig                 | 1 +
 configs/tec_defconfig                    | 1 +
 configs/trats2_defconfig                 | 1 +
 configs/trats_defconfig                  | 1 +
 configs/trimslice_defconfig              | 1 +
 configs/venice2_defconfig                | 1 +
 configs/ventana_defconfig                | 1 +
 configs/vexpress_aemv8a_defconfig        | 1 +
 configs/vexpress_aemv8a_semi_defconfig   | 1 +
 configs/whistler_defconfig               | 1 +
 configs/zynq_microzed_defconfig          | 1 +
 configs/zynq_zc70x_defconfig             | 1 +
 configs/zynq_zc770_xm010_defconfig       | 1 +
 configs/zynq_zc770_xm012_defconfig       | 1 +
 configs/zynq_zc770_xm013_defconfig       | 1 +
 configs/zynq_zed_defconfig               | 1 +
 dts/Kconfig                              | 7 +++++++
 include/configs/am335x_evm.h             | 1 -
 include/configs/arndale.h                | 1 -
 include/configs/beaver.h                 | 3 ---
 include/configs/cardhu.h                 | 3 ---
 include/configs/colibri_t20_iris.h       | 3 ---
 include/configs/colibri_t30.h            | 1 -
 include/configs/coreboot.h               | 1 -
 include/configs/dalmore.h                | 3 ---
 include/configs/harmony.h                | 3 ---
 include/configs/jetson-tk1.h             | 3 ---
 include/configs/medcom-wide.h            | 3 ---
 include/configs/microblaze-generic.h     | 3 ---
 include/configs/odroid.h                 | 2 --
 include/configs/origen.h                 | 2 --
 include/configs/paz00.h                  | 3 ---
 include/configs/peach-pit.h              | 2 --
 include/configs/plutux.h                 | 3 ---
 include/configs/s5pc210_universal.h      | 2 --
 include/configs/sandbox.h                | 1 -
 include/configs/seaboard.h               | 3 ---
 include/configs/smdk5250.h               | 2 --
 include/configs/smdk5420.h               | 2 --
 include/configs/snow.h                   | 2 --
 include/configs/tec-ng.h                 | 3 ---
 include/configs/tec.h                    | 3 ---
 include/configs/trats.h                  | 2 --
 include/configs/trats2.h                 | 2 --
 include/configs/trimslice.h              | 3 ---
 include/configs/venice2.h                | 3 ---
 include/configs/ventana.h                | 3 ---
 include/configs/vexpress_aemv8a.h        | 1 -
 include/configs/whistler.h               | 3 ---
 include/configs/zynq_microzed.h          | 1 -
 include/configs/zynq_zc70x.h             | 1 -
 include/configs/zynq_zc770.h             | 3 ---
 include/configs/zynq_zed.h               | 1 -
 76 files changed, 46 insertions(+), 81 deletions(-)

diff --git a/configs/am335x_boneblack_vboot_defconfig b/configs/am335x_boneblack_vboot_defconfig
index af7ceca..e257143 100644
--- a/configs/am335x_boneblack_vboot_defconfig
+++ b/configs/am335x_boneblack_vboot_defconfig
@@ -3,3 +3,4 @@ CONFIG_SYS_EXTRA_OPTIONS="SERIAL1,CONS_INDEX=1,EMMC_BOOT,ENABLE_VBOOT"
 +S:CONFIG_ARM=y
 +S:CONFIG_TARGET_AM335X_EVM=y
 CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="am335x-boneblack"
diff --git a/configs/arndale_defconfig b/configs/arndale_defconfig
index 7ea5c0d..fc30508 100644
--- a/configs/arndale_defconfig
+++ b/configs/arndale_defconfig
@@ -2,3 +2,4 @@ CONFIG_SPL=y
 +S:CONFIG_ARM=y
 +S:CONFIG_ARCH_EXYNOS=y
 +S:CONFIG_TARGET_ARNDALE=y
+CONFIG_DEFAULT_DEVICE_TREE="exynos5250-arndale"
diff --git a/configs/beaver_defconfig b/configs/beaver_defconfig
index 7c9d94b..ab615a8 100644
--- a/configs/beaver_defconfig
+++ b/configs/beaver_defconfig
@@ -2,3 +2,4 @@
 +S:CONFIG_TEGRA=y
 +S:CONFIG_TEGRA30=y
 +S:CONFIG_TARGET_BEAVER=y
+CONFIG_DEFAULT_DEVICE_TREE="tegra30-beaver"
diff --git a/configs/cardhu_defconfig b/configs/cardhu_defconfig
index bb042b4..4466e98 100644
--- a/configs/cardhu_defconfig
+++ b/configs/cardhu_defconfig
@@ -2,3 +2,4 @@
 +S:CONFIG_TEGRA=y
 +S:CONFIG_TEGRA30=y
 +S:CONFIG_TARGET_CARDHU=y
+CONFIG_DEFAULT_DEVICE_TREE="tegra30-cardhu"
diff --git a/configs/colibri_t20_iris_defconfig b/configs/colibri_t20_iris_defconfig
index b2a21e1..b76f78b 100644
--- a/configs/colibri_t20_iris_defconfig
+++ b/configs/colibri_t20_iris_defconfig
@@ -2,3 +2,4 @@
 +S:CONFIG_TEGRA=y
 +S:CONFIG_TEGRA20=y
 +S:CONFIG_TARGET_COLIBRI_T20_IRIS=y
+CONFIG_DEFAULT_DEVICE_TREE="tegra20-colibri_t20_iris"
diff --git a/configs/colibri_t30_defconfig b/configs/colibri_t30_defconfig
index abb41f3..b955303 100644
--- a/configs/colibri_t30_defconfig
+++ b/configs/colibri_t30_defconfig
@@ -2,3 +2,4 @@
 +S:CONFIG_TEGRA=y
 +S:CONFIG_TEGRA30=y
 +S:CONFIG_TARGET_COLIBRI_T30=y
+CONFIG_DEFAULT_DEVICE_TREE="tegra30-colibri"
diff --git a/configs/coreboot-x86_defconfig b/configs/coreboot-x86_defconfig
index 3cc034a..6249db7 100644
--- a/configs/coreboot-x86_defconfig
+++ b/configs/coreboot-x86_defconfig
@@ -2,3 +2,4 @@ CONFIG_SYS_EXTRA_OPTIONS="SYS_TEXT_BASE=0x01110000"
 CONFIG_X86=y
 CONFIG_TARGET_COREBOOT=y
 CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="link"
diff --git a/configs/dalmore_defconfig b/configs/dalmore_defconfig
index 70677aa..f704c75 100644
--- a/configs/dalmore_defconfig
+++ b/configs/dalmore_defconfig
@@ -2,3 +2,4 @@
 +S:CONFIG_TEGRA=y
 +S:CONFIG_TEGRA114=y
 +S:CONFIG_TARGET_DALMORE=y
+CONFIG_DEFAULT_DEVICE_TREE="tegra114-dalmore"
diff --git a/configs/harmony_defconfig b/configs/harmony_defconfig
index a52231b..d99b429 100644
--- a/configs/harmony_defconfig
+++ b/configs/harmony_defconfig
@@ -2,3 +2,4 @@
 +S:CONFIG_TEGRA=y
 +S:CONFIG_TEGRA20=y
 +S:CONFIG_TARGET_HARMONY=y
+CONFIG_DEFAULT_DEVICE_TREE="tegra20-harmony"
diff --git a/configs/jetson-tk1_defconfig b/configs/jetson-tk1_defconfig
index 00eac92..ef1d41c 100644
--- a/configs/jetson-tk1_defconfig
+++ b/configs/jetson-tk1_defconfig
@@ -2,3 +2,4 @@
 +S:CONFIG_TEGRA=y
 +S:CONFIG_TEGRA124=y
 +S:CONFIG_TARGET_JETSON_TK1=y
+CONFIG_DEFAULT_DEVICE_TREE="tegra124-jetson-tk1"
diff --git a/configs/medcom-wide_defconfig b/configs/medcom-wide_defconfig
index e9a3930..35963e9 100644
--- a/configs/medcom-wide_defconfig
+++ b/configs/medcom-wide_defconfig
@@ -2,3 +2,4 @@
 +S:CONFIG_TEGRA=y
 +S:CONFIG_TEGRA20=y
 +S:CONFIG_TARGET_MEDCOM_WIDE=y
+CONFIG_DEFAULT_DEVICE_TREE="tegra20-medcom-wide"
diff --git a/configs/microblaze-generic_defconfig b/configs/microblaze-generic_defconfig
index 1dc7441..5cfd596 100644
--- a/configs/microblaze-generic_defconfig
+++ b/configs/microblaze-generic_defconfig
@@ -3,3 +3,4 @@ CONFIG_SPL=y
 +S:CONFIG_TARGET_MICROBLAZE_GENERIC=y
 CONFIG_OF_CONTROL=y
 CONFIG_OF_EMBED=y
+CONFIG_DEFAULT_DEVICE_TREE="microblaze-generic"
diff --git a/configs/odroid_defconfig b/configs/odroid_defconfig
index 98ca447..a842837 100644
--- a/configs/odroid_defconfig
+++ b/configs/odroid_defconfig
@@ -2,3 +2,4 @@ CONFIG_ARM=y
 CONFIG_ARCH_EXYNOS=y
 CONFIG_TARGET_ODROID=y
 CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="exynos4412-odroid"
diff --git a/configs/origen_defconfig b/configs/origen_defconfig
index 1d712e8..2a7f83b 100644
--- a/configs/origen_defconfig
+++ b/configs/origen_defconfig
@@ -3,3 +3,4 @@ CONFIG_SPL=y
 +S:CONFIG_ARCH_EXYNOS=y
 +S:CONFIG_TARGET_ORIGEN=y
 CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="exynos4210-origen"
diff --git a/configs/paz00_defconfig b/configs/paz00_defconfig
index 05974eb..d2d36a5 100644
--- a/configs/paz00_defconfig
+++ b/configs/paz00_defconfig
@@ -2,3 +2,4 @@
 +S:CONFIG_TEGRA=y
 +S:CONFIG_TEGRA20=y
 +S:CONFIG_TARGET_PAZ00=y
+CONFIG_DEFAULT_DEVICE_TREE="tegra20-paz00"
diff --git a/configs/peach-pit_defconfig b/configs/peach-pit_defconfig
index 797d5e0..b944b3b 100644
--- a/configs/peach-pit_defconfig
+++ b/configs/peach-pit_defconfig
@@ -2,3 +2,4 @@ CONFIG_SPL=y
 +S:CONFIG_ARM=y
 +S:CONFIG_ARCH_EXYNOS=y
 +S:CONFIG_TARGET_PEACH_PIT=y
+CONFIG_DEFAULT_DEVICE_TREE="exynos5420-peach-pit"
diff --git a/configs/plutux_defconfig b/configs/plutux_defconfig
index 60e80ff..d2743b8 100644
--- a/configs/plutux_defconfig
+++ b/configs/plutux_defconfig
@@ -2,3 +2,4 @@
 +S:CONFIG_TEGRA=y
 +S:CONFIG_TEGRA20=y
 +S:CONFIG_TARGET_PLUTUX=y
+CONFIG_DEFAULT_DEVICE_TREE="tegra20-plutux"
diff --git a/configs/s5pc210_universal_defconfig b/configs/s5pc210_universal_defconfig
index 0a3ad0d..cdce39f 100644
--- a/configs/s5pc210_universal_defconfig
+++ b/configs/s5pc210_universal_defconfig
@@ -2,3 +2,4 @@ CONFIG_ARM=y
 CONFIG_ARCH_EXYNOS=y
 CONFIG_TARGET_S5PC210_UNIVERSAL=y
 CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="exynos4210-universal_c210"
diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig
index 84681db..47d8400 100644
--- a/configs/sandbox_defconfig
+++ b/configs/sandbox_defconfig
@@ -1,2 +1,3 @@
 CONFIG_OF_CONTROL=y
 CONFIG_OF_HOSTFILE=y
+CONFIG_DEFAULT_DEVICE_TREE="sandbox"
diff --git a/configs/seaboard_defconfig b/configs/seaboard_defconfig
index 516e760..ddf2cd6 100644
--- a/configs/seaboard_defconfig
+++ b/configs/seaboard_defconfig
@@ -2,3 +2,4 @@
 +S:CONFIG_TEGRA=y
 +S:CONFIG_TEGRA20=y
 +S:CONFIG_TARGET_SEABOARD=y
+CONFIG_DEFAULT_DEVICE_TREE="tegra20-seaboard"
diff --git a/configs/smdk5250_defconfig b/configs/smdk5250_defconfig
index 465a75a..9b76d0d 100644
--- a/configs/smdk5250_defconfig
+++ b/configs/smdk5250_defconfig
@@ -2,3 +2,4 @@ CONFIG_SPL=y
 +S:CONFIG_ARM=y
 +S:CONFIG_ARCH_EXYNOS=y
 +S:CONFIG_TARGET_SMDK5250=y
+CONFIG_DEFAULT_DEVICE_TREE="exynos5250-smdk5250"
diff --git a/configs/smdk5420_defconfig b/configs/smdk5420_defconfig
index 9dc43f2..8cf673d 100644
--- a/configs/smdk5420_defconfig
+++ b/configs/smdk5420_defconfig
@@ -2,3 +2,4 @@ CONFIG_SPL=y
 +S:CONFIG_ARM=y
 +S:CONFIG_ARCH_EXYNOS=y
 +S:CONFIG_TARGET_SMDK5420=y
+CONFIG_DEFAULT_DEVICE_TREE="exynos5420-smdk5420"
diff --git a/configs/snow_defconfig b/configs/snow_defconfig
index 2d59046..14ed793 100644
--- a/configs/snow_defconfig
+++ b/configs/snow_defconfig
@@ -2,3 +2,4 @@ CONFIG_SPL=y
 +S:CONFIG_ARM=y
 +S:CONFIG_ARCH_EXYNOS=y
 +S:CONFIG_TARGET_SNOW=y
+CONFIG_DEFAULT_DEVICE_TREE="exynos5250-snow"
diff --git a/configs/tec-ng_defconfig b/configs/tec-ng_defconfig
index e4a31cc..fabd34a 100644
--- a/configs/tec-ng_defconfig
+++ b/configs/tec-ng_defconfig
@@ -2,3 +2,4 @@
 +S:CONFIG_TEGRA=y
 +S:CONFIG_TEGRA30=y
 +S:CONFIG_TARGET_TEC_NG=y
+CONFIG_DEFAULT_DEVICE_TREE="tegra30-tec-ng"
diff --git a/configs/tec_defconfig b/configs/tec_defconfig
index 62a9542..d3cafa7 100644
--- a/configs/tec_defconfig
+++ b/configs/tec_defconfig
@@ -2,3 +2,4 @@
 +S:CONFIG_TEGRA=y
 +S:CONFIG_TEGRA20=y
 +S:CONFIG_TARGET_TEC=y
+CONFIG_DEFAULT_DEVICE_TREE="tegra20-tec"
diff --git a/configs/trats2_defconfig b/configs/trats2_defconfig
index 666011c..1b98b73 100644
--- a/configs/trats2_defconfig
+++ b/configs/trats2_defconfig
@@ -2,3 +2,4 @@ CONFIG_ARM=y
 CONFIG_ARCH_EXYNOS=y
 CONFIG_TARGET_TRATS2=y
 CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="exynos4412-trats2"
diff --git a/configs/trats_defconfig b/configs/trats_defconfig
index 6ef4b33..901a014 100644
--- a/configs/trats_defconfig
+++ b/configs/trats_defconfig
@@ -2,3 +2,4 @@ CONFIG_ARM=y
 CONFIG_ARCH_EXYNOS=y
 CONFIG_TARGET_TRATS=y
 CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="exynos4210-trats"
diff --git a/configs/trimslice_defconfig b/configs/trimslice_defconfig
index 94f23e3..0b2a6d0 100644
--- a/configs/trimslice_defconfig
+++ b/configs/trimslice_defconfig
@@ -2,3 +2,4 @@
 +S:CONFIG_TEGRA=y
 +S:CONFIG_TEGRA20=y
 +S:CONFIG_TARGET_TRIMSLICE=y
+CONFIG_DEFAULT_DEVICE_TREE="tegra20-trimslice"
diff --git a/configs/venice2_defconfig b/configs/venice2_defconfig
index dfc5407..c12dae9 100644
--- a/configs/venice2_defconfig
+++ b/configs/venice2_defconfig
@@ -2,3 +2,4 @@
 +S:CONFIG_TEGRA=y
 +S:CONFIG_TEGRA124=y
 +S:CONFIG_TARGET_VENICE2=y
+CONFIG_DEFAULT_DEVICE_TREE="tegra124-venice2"
diff --git a/configs/ventana_defconfig b/configs/ventana_defconfig
index 845e241..f62ab6b 100644
--- a/configs/ventana_defconfig
+++ b/configs/ventana_defconfig
@@ -2,3 +2,4 @@
 +S:CONFIG_TEGRA=y
 +S:CONFIG_TEGRA20=y
 +S:CONFIG_TARGET_VENTANA=y
+CONFIG_DEFAULT_DEVICE_TREE="tegra20-ventana"
diff --git a/configs/vexpress_aemv8a_defconfig b/configs/vexpress_aemv8a_defconfig
index 9e0a175..b463a33 100644
--- a/configs/vexpress_aemv8a_defconfig
+++ b/configs/vexpress_aemv8a_defconfig
@@ -1,2 +1,3 @@
 CONFIG_ARM=y
 CONFIG_TARGET_VEXPRESS_AEMV8A=y
+CONFIG_DEFAULT_DEVICE_TREE="vexpress64"
diff --git a/configs/vexpress_aemv8a_semi_defconfig b/configs/vexpress_aemv8a_semi_defconfig
index 8fdf4e0..0035ccd 100644
--- a/configs/vexpress_aemv8a_semi_defconfig
+++ b/configs/vexpress_aemv8a_semi_defconfig
@@ -1,3 +1,4 @@
 CONFIG_SYS_EXTRA_OPTIONS="SEMIHOSTING,BASE_FVP"
 CONFIG_ARM=y
 CONFIG_TARGET_VEXPRESS_AEMV8A=y
+CONFIG_DEFAULT_DEVICE_TREE="vexpress64"
diff --git a/configs/whistler_defconfig b/configs/whistler_defconfig
index 8c07c18..9553eb8 100644
--- a/configs/whistler_defconfig
+++ b/configs/whistler_defconfig
@@ -2,3 +2,4 @@
 +S:CONFIG_TEGRA=y
 +S:CONFIG_TEGRA20=y
 +S:CONFIG_TARGET_WHISTLER=y
+CONFIG_DEFAULT_DEVICE_TREE="tegra20-whistler"
diff --git a/configs/zynq_microzed_defconfig b/configs/zynq_microzed_defconfig
index 9767863..9588849 100644
--- a/configs/zynq_microzed_defconfig
+++ b/configs/zynq_microzed_defconfig
@@ -3,3 +3,4 @@ CONFIG_SPL=y
 +S:CONFIG_ZYNQ=y
 +S:CONFIG_TARGET_ZYNQ_MICROZED=y
 CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="zynq-microzed"
diff --git a/configs/zynq_zc70x_defconfig b/configs/zynq_zc70x_defconfig
index d303f97..cf50730 100644
--- a/configs/zynq_zc70x_defconfig
+++ b/configs/zynq_zc70x_defconfig
@@ -3,3 +3,4 @@ CONFIG_SPL=y
 +S:CONFIG_ZYNQ=y
 +S:CONFIG_TARGET_ZYNQ_ZC70X=y
 CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="zynq-zc702"
diff --git a/configs/zynq_zc770_xm010_defconfig b/configs/zynq_zc770_xm010_defconfig
index 4e6660f..8bb405d 100644
--- a/configs/zynq_zc770_xm010_defconfig
+++ b/configs/zynq_zc770_xm010_defconfig
@@ -4,3 +4,4 @@ CONFIG_SYS_EXTRA_OPTIONS="ZC770_XM010"
 +S:CONFIG_ZYNQ=y
 +S:CONFIG_TARGET_ZYNQ_ZC770=y
 CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="zynq-zc770-xm010"
diff --git a/configs/zynq_zc770_xm012_defconfig b/configs/zynq_zc770_xm012_defconfig
index 16d62e6..0ba5da5 100644
--- a/configs/zynq_zc770_xm012_defconfig
+++ b/configs/zynq_zc770_xm012_defconfig
@@ -4,3 +4,4 @@ CONFIG_SYS_EXTRA_OPTIONS="ZC770_XM012"
 +S:CONFIG_ZYNQ=y
 +S:CONFIG_TARGET_ZYNQ_ZC770=y
 CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="zynq-zc770-xm012"
diff --git a/configs/zynq_zc770_xm013_defconfig b/configs/zynq_zc770_xm013_defconfig
index 7343a64..13f8112 100644
--- a/configs/zynq_zc770_xm013_defconfig
+++ b/configs/zynq_zc770_xm013_defconfig
@@ -4,3 +4,4 @@ CONFIG_SYS_EXTRA_OPTIONS="ZC770_XM013"
 +S:CONFIG_ZYNQ=y
 +S:CONFIG_TARGET_ZYNQ_ZC770=y
 CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="zynq-zc770-xm013"
diff --git a/configs/zynq_zed_defconfig b/configs/zynq_zed_defconfig
index 38d5fa6..eb057fa 100644
--- a/configs/zynq_zed_defconfig
+++ b/configs/zynq_zed_defconfig
@@ -3,3 +3,4 @@ CONFIG_SPL=y
 +S:CONFIG_ZYNQ=y
 +S:CONFIG_TARGET_ZYNQ_ZED=y
 CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="zynq-zed"
diff --git a/dts/Kconfig b/dts/Kconfig
index 20be556..83ba7a6 100644
--- a/dts/Kconfig
+++ b/dts/Kconfig
@@ -45,4 +45,11 @@ config OF_HOSTFILE
 
 endchoice
 
+config DEFAULT_DEVICE_TREE
+	string "Default Device Tree for DT control"
+	help
+	  This option specifies the default Device Tree used for DT control.
+	  It can be overrided from the command line:
+	  $ make DEVICE_TREE=<device-tree-name>
+
 endmenu
diff --git a/include/configs/am335x_evm.h b/include/configs/am335x_evm.h
index 47a173f..4d4423f 100644
--- a/include/configs/am335x_evm.h
+++ b/include/configs/am335x_evm.h
@@ -23,7 +23,6 @@
 # define CONFIG_TIMESTAMP
 # define CONFIG_LZO
 # ifdef CONFIG_ENABLE_VBOOT
-#  define CONFIG_DEFAULT_DEVICE_TREE am335x-boneblack
 #  define CONFIG_FIT_SIGNATURE
 #  define CONFIG_RSA
 # endif
diff --git a/include/configs/arndale.h b/include/configs/arndale.h
index 7f06907..43077cf 100644
--- a/include/configs/arndale.h
+++ b/include/configs/arndale.h
@@ -224,7 +224,6 @@
 #define CONFIG_POWER_I2C
 #define CONFIG_POWER_MAX77686
 
-#define CONFIG_DEFAULT_DEVICE_TREE	exynos5250-arndale
 
 #define CONFIG_PREBOOT
 
diff --git a/include/configs/beaver.h b/include/configs/beaver.h
index 4c7cf5f..164b2dd 100644
--- a/include/configs/beaver.h
+++ b/include/configs/beaver.h
@@ -24,9 +24,6 @@
 /* VDD core PMIC */
 #define CONFIG_TEGRA_VDD_CORE_TPS62366A_SET1
 
-/* Enable fdt support for Beaver. Flash the image in u-boot-dtb.bin */
-#define CONFIG_DEFAULT_DEVICE_TREE	tegra30-beaver
-
 /* High-level configuration options */
 #define V_PROMPT		"Tegra30 (Beaver) # "
 #define CONFIG_TEGRA_BOARD_STRING	"NVIDIA Beaver"
diff --git a/include/configs/cardhu.h b/include/configs/cardhu.h
index 1616a54..09129c7 100644
--- a/include/configs/cardhu.h
+++ b/include/configs/cardhu.h
@@ -24,9 +24,6 @@
 /* VDD core PMIC */
 #define CONFIG_TEGRA_VDD_CORE_TPS62361B_SET3
 
-/* Enable fdt support for Cardhu. Flash the image in u-boot-dtb.bin */
-#define CONFIG_DEFAULT_DEVICE_TREE	tegra30-cardhu
-
 /* High-level configuration options */
 #define V_PROMPT		"Tegra30 (Cardhu) # "
 #define CONFIG_TEGRA_BOARD_STRING	"NVIDIA Cardhu"
diff --git a/include/configs/colibri_t20_iris.h b/include/configs/colibri_t20_iris.h
index 3ce1f9b..2b876fe 100644
--- a/include/configs/colibri_t20_iris.h
+++ b/include/configs/colibri_t20_iris.h
@@ -9,9 +9,6 @@
 
 #include "tegra20-common.h"
 
-/* Enable FDT support */
-#define CONFIG_DEFAULT_DEVICE_TREE	tegra20-colibri_t20_iris
-
 /* High-level configuration options */
 #define V_PROMPT                   "Tegra20 (Colibri) # "
 #define CONFIG_TEGRA_BOARD_STRING  "Toradex Colibri T20 on Iris"
diff --git a/include/configs/colibri_t30.h b/include/configs/colibri_t30.h
index d9e2d86..782b9d1 100644
--- a/include/configs/colibri_t30.h
+++ b/include/configs/colibri_t30.h
@@ -11,7 +11,6 @@
 
 #include "tegra30-common.h"
 
-#define CONFIG_DEFAULT_DEVICE_TREE	tegra30-colibri
 
 #define V_PROMPT			"Colibri T30 # "
 #define CONFIG_TEGRA_BOARD_STRING	"Toradex Colibri T30"
diff --git a/include/configs/coreboot.h b/include/configs/coreboot.h
index 915245e..936be14 100644
--- a/include/configs/coreboot.h
+++ b/include/configs/coreboot.h
@@ -28,7 +28,6 @@
 
 #define CONFIG_LMB
 #define CONFIG_OF_LIBFDT
-#define CONFIG_DEFAULT_DEVICE_TREE	link
 
 #define CONFIG_BOOTSTAGE
 #define CONFIG_BOOTSTAGE_REPORT
diff --git a/include/configs/dalmore.h b/include/configs/dalmore.h
index e3bb27f..ff7ec4a 100644
--- a/include/configs/dalmore.h
+++ b/include/configs/dalmore.h
@@ -21,9 +21,6 @@
 
 #include "tegra114-common.h"
 
-/* Enable fdt support for Dalmore. Flash the image in u-boot-dtb.bin */
-#define CONFIG_DEFAULT_DEVICE_TREE	tegra114-dalmore
-
 /* High-level configuration options */
 #define V_PROMPT		"Tegra114 (Dalmore) # "
 #define CONFIG_TEGRA_BOARD_STRING	"NVIDIA Dalmore"
diff --git a/include/configs/harmony.h b/include/configs/harmony.h
index 97db202..ff9fbc9 100644
--- a/include/configs/harmony.h
+++ b/include/configs/harmony.h
@@ -11,9 +11,6 @@
 #include <linux/sizes.h>
 #include "tegra20-common.h"
 
-/* Enable fdt support for Harmony. Flash the image in u-boot-dtb.bin */
-#define CONFIG_DEFAULT_DEVICE_TREE	tegra20-harmony
-
 /* High-level configuration options */
 #define V_PROMPT		"Tegra20 (Harmony) # "
 #define CONFIG_TEGRA_BOARD_STRING	"NVIDIA Harmony"
diff --git a/include/configs/jetson-tk1.h b/include/configs/jetson-tk1.h
index dc7e324..d67c025 100644
--- a/include/configs/jetson-tk1.h
+++ b/include/configs/jetson-tk1.h
@@ -12,9 +12,6 @@
 
 #include "tegra124-common.h"
 
-/* Enable fdt support for Jetson TK1. Flash the image in u-boot-dtb.bin */
-#define CONFIG_DEFAULT_DEVICE_TREE	tegra124-jetson-tk1
-
 /* High-level configuration options */
 #define V_PROMPT			"Tegra124 (Jetson TK1) # "
 #define CONFIG_TEGRA_BOARD_STRING	"NVIDIA Jetson TK1"
diff --git a/include/configs/medcom-wide.h b/include/configs/medcom-wide.h
index 5e52574..ac5208f 100644
--- a/include/configs/medcom-wide.h
+++ b/include/configs/medcom-wide.h
@@ -12,9 +12,6 @@
 
 #include "tegra20-common.h"
 
-/* Enable fdt support for Medcom-Wide. Flash the image in u-boot-dtb.bin */
-#define CONFIG_DEFAULT_DEVICE_TREE	tegra20-medcom-wide
-
 /* High-level configuration options */
 #define V_PROMPT			"Tegra20 (Medcom-Wide) # "
 #define CONFIG_TEGRA_BOARD_STRING	"Avionic Design Medcom-Wide"
diff --git a/include/configs/microblaze-generic.h b/include/configs/microblaze-generic.h
index f5e83ff..bb07060 100644
--- a/include/configs/microblaze-generic.h
+++ b/include/configs/microblaze-generic.h
@@ -14,9 +14,6 @@
 /* MicroBlaze CPU */
 #define	MICROBLAZE_V5		1
 
-/* Open Firmware DTS */
-#define CONFIG_DEFAULT_DEVICE_TREE microblaze-generic
-
 /* linear and spi flash memory */
 #ifdef XILINX_FLASH_START
 #define	FLASH
diff --git a/include/configs/odroid.h b/include/configs/odroid.h
index 29dcc4a..b616ac2 100644
--- a/include/configs/odroid.h
+++ b/include/configs/odroid.h
@@ -16,8 +16,6 @@
 
 #define CONFIG_SYS_PROMPT	"Odroid # "	/* Monitor Command Prompt */
 
-#undef CONFIG_DEFAULT_DEVICE_TREE
-#define CONFIG_DEFAULT_DEVICE_TREE	exynos4412-odroid
 
 #define CONFIG_SYS_L2CACHE_OFF
 #ifndef CONFIG_SYS_L2CACHE_OFF
diff --git a/include/configs/origen.h b/include/configs/origen.h
index 5d24916..fb1536c 100644
--- a/include/configs/origen.h
+++ b/include/configs/origen.h
@@ -13,8 +13,6 @@
 
 #define CONFIG_SYS_PROMPT		"ORIGEN # "
 
-#undef CONFIG_DEFAULT_DEVICE_TREE
-#define CONFIG_DEFAULT_DEVICE_TREE	exynos4210-origen
 
 /* High Level Configuration Options */
 #define CONFIG_EXYNOS4210		1	/* which is a EXYNOS4210 SoC */
diff --git a/include/configs/paz00.h b/include/configs/paz00.h
index 01cb649..45bb470 100644
--- a/include/configs/paz00.h
+++ b/include/configs/paz00.h
@@ -20,9 +20,6 @@
 #include <linux/sizes.h>
 #include "tegra20-common.h"
 
-/* Enable fdt support for Paz00. Flash the image in u-boot-dtb.bin */
-#define CONFIG_DEFAULT_DEVICE_TREE	tegra20-paz00
-
 /* High-level configuration options */
 #define V_PROMPT		"Tegra20 (Paz00) MOD # "
 #define CONFIG_TEGRA_BOARD_STRING	"Compal Paz00"
diff --git a/include/configs/peach-pit.h b/include/configs/peach-pit.h
index 88c093f..987cef5 100644
--- a/include/configs/peach-pit.h
+++ b/include/configs/peach-pit.h
@@ -13,8 +13,6 @@
 
 #include <configs/exynos5420.h>
 
-#undef CONFIG_DEFAULT_DEVICE_TREE
-#define CONFIG_DEFAULT_DEVICE_TREE	exynos5420-peach-pit
 
 /* select serial console configuration */
 #define CONFIG_SERIAL3		/* use SERIAL 3 */
diff --git a/include/configs/plutux.h b/include/configs/plutux.h
index 719d81a..b663b89 100644
--- a/include/configs/plutux.h
+++ b/include/configs/plutux.h
@@ -12,9 +12,6 @@
 
 #include "tegra20-common.h"
 
-/* Enable fdt support for Plutux. Flash the image in u-boot-dtb.bin */
-#define CONFIG_DEFAULT_DEVICE_TREE	tegra20-plutux
-
 /* High-level configuration options */
 #define V_PROMPT			"Tegra20 (Plutux) # "
 #define CONFIG_TEGRA_BOARD_STRING	"Avionic Design Plutux"
diff --git a/include/configs/s5pc210_universal.h b/include/configs/s5pc210_universal.h
index 20985da..082d51c 100644
--- a/include/configs/s5pc210_universal.h
+++ b/include/configs/s5pc210_universal.h
@@ -14,8 +14,6 @@
 
 #define CONFIG_SYS_PROMPT	"Universal # "	/* Monitor Command Prompt */
 
-#undef CONFIG_DEFAULT_DEVICE_TREE
-#define CONFIG_DEFAULT_DEVICE_TREE	exynos4210-universal_c210
 
 #define CONFIG_TIZEN			/* TIZEN lib */
 
diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h
index 31a0ff9..5d36416 100644
--- a/include/configs/sandbox.h
+++ b/include/configs/sandbox.h
@@ -44,7 +44,6 @@
 #define CONFIG_FIT_SIGNATURE
 #define CONFIG_RSA
 #define CONFIG_CMD_FDT
-#define CONFIG_DEFAULT_DEVICE_TREE	sandbox
 #define CONFIG_ANDROID_BOOT_IMAGE
 
 #define CONFIG_FS_FAT
diff --git a/include/configs/seaboard.h b/include/configs/seaboard.h
index e61811d..04e4f82 100644
--- a/include/configs/seaboard.h
+++ b/include/configs/seaboard.h
@@ -19,9 +19,6 @@
 
 #include "tegra20-common.h"
 
-/* Enable fdt support for Seaboard. Flash the image in u-boot-dtb.bin */
-#define CONFIG_DEFAULT_DEVICE_TREE	tegra20-seaboard
-
 /* High-level configuration options */
 #define V_PROMPT		"Tegra20 (SeaBoard) # "
 #define CONFIG_TEGRA_BOARD_STRING	"NVIDIA Seaboard"
diff --git a/include/configs/smdk5250.h b/include/configs/smdk5250.h
index 66fa179..6117094 100644
--- a/include/configs/smdk5250.h
+++ b/include/configs/smdk5250.h
@@ -11,8 +11,6 @@
 
 #include <configs/exynos5250-dt.h>
 
-#undef CONFIG_DEFAULT_DEVICE_TREE
-#define CONFIG_DEFAULT_DEVICE_TREE	exynos5250-smdk5250
 
 /* Enable FIT support and comparison */
 #define CONFIG_FIT
diff --git a/include/configs/smdk5420.h b/include/configs/smdk5420.h
index 606739b..36a156f 100644
--- a/include/configs/smdk5420.h
+++ b/include/configs/smdk5420.h
@@ -15,8 +15,6 @@
 
 #define CONFIG_SMDK5420			/* which is in a SMDK5420 */
 
-#undef CONFIG_DEFAULT_DEVICE_TREE
-#define CONFIG_DEFAULT_DEVICE_TREE	exynos5420-smdk5420
 
 /* select serial console configuration */
 #define CONFIG_SERIAL3		/* use SERIAL 3 */
diff --git a/include/configs/snow.h b/include/configs/snow.h
index 673fa14..fbaaa59 100644
--- a/include/configs/snow.h
+++ b/include/configs/snow.h
@@ -11,8 +11,6 @@
 
 #include <configs/exynos5250-dt.h>
 
-#undef CONFIG_DEFAULT_DEVICE_TREE
-#define CONFIG_DEFAULT_DEVICE_TREE	exynos5250-snow
 
 /* Enable FIT support and comparison */
 #define CONFIG_FIT
diff --git a/include/configs/tec-ng.h b/include/configs/tec-ng.h
index 5b4c255..51f87da 100644
--- a/include/configs/tec-ng.h
+++ b/include/configs/tec-ng.h
@@ -10,9 +10,6 @@
 
 #include "tegra30-common.h"
 
-/* Enable fdt support for tec-ng. Flash the image in u-boot-dtb.bin */
-#define CONFIG_DEFAULT_DEVICE_TREE	tegra30-tec-ng
-
 /* High-level configuration options */
 #define V_PROMPT			"Tegra30 (TEC-NG) # "
 #define CONFIG_TEGRA_BOARD_STRING	"Avionic Design Tamonten? NG Evaluation Carrier"
diff --git a/include/configs/tec.h b/include/configs/tec.h
index 0598d5d..9ea4ff4 100644
--- a/include/configs/tec.h
+++ b/include/configs/tec.h
@@ -12,9 +12,6 @@
 
 #include "tegra20-common.h"
 
-/* Enable fdt support for TEC. Flash the image in u-boot-dtb.bin */
-#define CONFIG_DEFAULT_DEVICE_TREE	tegra20-tec
-
 /* High-level configuration options */
 #define V_PROMPT			"Tegra20 (TEC) # "
 #define CONFIG_TEGRA_BOARD_STRING	"Avionic Design Tamonten Evaluation Carrier"
diff --git a/include/configs/trats.h b/include/configs/trats.h
index 6fa646b..43751e7 100644
--- a/include/configs/trats.h
+++ b/include/configs/trats.h
@@ -16,8 +16,6 @@
 
 #define CONFIG_TRATS
 
-#undef CONFIG_DEFAULT_DEVICE_TREE
-#define CONFIG_DEFAULT_DEVICE_TREE	exynos4210-trats
 
 #define CONFIG_TIZEN			/* TIZEN lib */
 
diff --git a/include/configs/trats2.h b/include/configs/trats2.h
index 1450865..e9a04f7 100644
--- a/include/configs/trats2.h
+++ b/include/configs/trats2.h
@@ -15,8 +15,6 @@
 
 #define CONFIG_SYS_PROMPT	"Trats2 # "	/* Monitor Command Prompt */
 
-#undef CONFIG_DEFAULT_DEVICE_TREE
-#define CONFIG_DEFAULT_DEVICE_TREE	exynos4412-trats2
 
 #define CONFIG_TIZEN			/* TIZEN lib */
 
diff --git a/include/configs/trimslice.h b/include/configs/trimslice.h
index 2ef010c..7c00642 100644
--- a/include/configs/trimslice.h
+++ b/include/configs/trimslice.h
@@ -11,9 +11,6 @@
 #include <linux/sizes.h>
 #include "tegra20-common.h"
 
-/* Enable fdt support for TrimSlice. Flash the image in u-boot-dtb.bin */
-#define CONFIG_DEFAULT_DEVICE_TREE	tegra20-trimslice
-
 /* High-level configuration options */
 #define V_PROMPT		"Tegra20 (TrimSlice) # "
 #define CONFIG_TEGRA_BOARD_STRING	"Compulab Trimslice"
diff --git a/include/configs/venice2.h b/include/configs/venice2.h
index b516d92..6897aa8 100644
--- a/include/configs/venice2.h
+++ b/include/configs/venice2.h
@@ -12,9 +12,6 @@
 
 #include "tegra124-common.h"
 
-/* Enable fdt support for Venice2. Flash the image in u-boot-dtb.bin */
-#define CONFIG_DEFAULT_DEVICE_TREE	tegra124-venice2
-
 /* High-level configuration options */
 #define V_PROMPT			"Tegra124 (Venice2) # "
 #define CONFIG_TEGRA_BOARD_STRING	"NVIDIA Venice2"
diff --git a/include/configs/ventana.h b/include/configs/ventana.h
index 3b9d142..f195f8a 100644
--- a/include/configs/ventana.h
+++ b/include/configs/ventana.h
@@ -11,9 +11,6 @@
 #include <linux/sizes.h>
 #include "tegra20-common.h"
 
-/* Enable fdt support for Ventana. Flash the image in u-boot-dtb.bin */
-#define CONFIG_DEFAULT_DEVICE_TREE	tegra20-ventana
-
 /* High-level configuration options */
 #define V_PROMPT		"Tegra20 (Ventana) # "
 #define CONFIG_TEGRA_BOARD_STRING	"NVIDIA Ventana"
diff --git a/include/configs/vexpress_aemv8a.h b/include/configs/vexpress_aemv8a.h
index 0897932..f3af971 100644
--- a/include/configs/vexpress_aemv8a.h
+++ b/include/configs/vexpress_aemv8a.h
@@ -51,7 +51,6 @@
 /* Flat Device Tree Definitions */
 #define CONFIG_OF_LIBFDT
 
-#define CONFIG_DEFAULT_DEVICE_TREE	vexpress64
 
 /* SMP Spin Table Definitions */
 #ifdef CONFIG_BASE_FVP
diff --git a/include/configs/whistler.h b/include/configs/whistler.h
index f3bf806..10e70d2 100644
--- a/include/configs/whistler.h
+++ b/include/configs/whistler.h
@@ -11,9 +11,6 @@
 #include <linux/sizes.h>
 #include "tegra20-common.h"
 
-/* Enable fdt support for Whistler. Flash the image in u-boot-dtb.bin */
-#define CONFIG_DEFAULT_DEVICE_TREE	tegra20-whistler
-
 /* High-level configuration options */
 #define V_PROMPT		"Tegra20 (Whistler) # "
 #define CONFIG_TEGRA_BOARD_STRING	"NVIDIA Whistler"
diff --git a/include/configs/zynq_microzed.h b/include/configs/zynq_microzed.h
index b0328a2..549a664 100644
--- a/include/configs/zynq_microzed.h
+++ b/include/configs/zynq_microzed.h
@@ -19,7 +19,6 @@
 #define CONFIG_SYS_NO_FLASH
 
 #define CONFIG_ZYNQ_SDHCI0
-#define CONFIG_DEFAULT_DEVICE_TREE	zynq-microzed
 
 #include <configs/zynq-common.h>
 
diff --git a/include/configs/zynq_zc70x.h b/include/configs/zynq_zc70x.h
index 291a5fe..b659054 100644
--- a/include/configs/zynq_zc70x.h
+++ b/include/configs/zynq_zc70x.h
@@ -23,7 +23,6 @@
 #define CONFIG_ZYNQ_I2C0
 #define CONFIG_ZYNQ_EEPROM
 #define CONFIG_ZYNQ_BOOT_FREEBSD
-#define CONFIG_DEFAULT_DEVICE_TREE	zynq-zc702
 
 #include <configs/zynq-common.h>
 
diff --git a/include/configs/zynq_zc770.h b/include/configs/zynq_zc770.h
index 8aa96e7..16b9047 100644
--- a/include/configs/zynq_zc770.h
+++ b/include/configs/zynq_zc770.h
@@ -20,18 +20,15 @@
 # define CONFIG_ZYNQ_GEM_PHY_ADDR0	7
 # define CONFIG_ZYNQ_SDHCI0
 # define CONFIG_ZYNQ_SPI
-# define CONFIG_DEFAULT_DEVICE_TREE	zynq-zc770-xm010
 
 #elif defined(CONFIG_ZC770_XM012)
 # define CONFIG_ZYNQ_SERIAL_UART1
 # undef CONFIG_SYS_NO_FLASH
-# define CONFIG_DEFAULT_DEVICE_TREE	zynq-zc770-xm012
 
 #elif defined(CONFIG_ZC770_XM013)
 # define CONFIG_ZYNQ_SERIAL_UART0
 # define CONFIG_ZYNQ_GEM1
 # define CONFIG_ZYNQ_GEM_PHY_ADDR1	7
-# define CONFIG_DEFAULT_DEVICE_TREE	zynq-zc770-xm013
 
 #else
 # define CONFIG_ZYNQ_SERIAL_UART0
diff --git a/include/configs/zynq_zed.h b/include/configs/zynq_zed.h
index ce17d40..946de95 100644
--- a/include/configs/zynq_zed.h
+++ b/include/configs/zynq_zed.h
@@ -21,7 +21,6 @@
 #define CONFIG_ZYNQ_USB
 #define CONFIG_ZYNQ_SDHCI0
 #define CONFIG_ZYNQ_BOOT_FREEBSD
-#define CONFIG_DEFAULT_DEVICE_TREE	zynq-zed
 
 #include <configs/zynq-common.h>
 
-- 
1.9.1

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

* [U-Boot] [PATCH v3 09/10] kconfig: move CONFIG_OF_* to Kconfig
  2014-09-22 10:59 [U-Boot] [PATCH v3 09/10] kconfig: move CONFIG_OF_* to Kconfig Masahiro Yamada
  2014-09-22 10:59 ` [U-Boot] [PATCH v3 10/10] kconfig: move CONFIG_DEFAULT_DEVICE_TREE to kconfig Masahiro Yamada
@ 2014-09-24 23:08 ` Simon Glass
  2014-09-25  7:12   ` Michal Simek
  2014-09-25  7:38   ` Masahiro Yamada
  2014-09-25 14:46 ` [U-Boot] [U-Boot, v3, " Tom Rini
  2 siblings, 2 replies; 19+ messages in thread
From: Simon Glass @ 2014-09-24 23:08 UTC (permalink / raw)
  To: u-boot

Hi Masahiro,

On 22 September 2014 04:59, Masahiro Yamada <yamada.m@jp.panasonic.com> wrote:
> This commit moves:
>   CONFIG_OF_CONTROL
>   CONFIG_OF_SEPARATE
>   CONFIG_OF_EMBED
>   CONFIG_OF_HOSTFILE
>
> Because these options are currently not supported for SPL,
> the "Device Tree Control" menu does not appear in the SPL
> configuration.
>
> Note:
> zynq-common.h should be adjusted so as not to change the
> default value of CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME.
>
> Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Stephen Warren <swarren@nvidia.com>
> Cc: Minkyu Kang <mk7.kang@samsung.com>
> Cc: Michal Simek <michal.simek@xilinx.com>

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

* [U-Boot] [PATCH v3 10/10] kconfig: move CONFIG_DEFAULT_DEVICE_TREE to kconfig
  2014-09-22 10:59 ` [U-Boot] [PATCH v3 10/10] kconfig: move CONFIG_DEFAULT_DEVICE_TREE to kconfig Masahiro Yamada
@ 2014-09-24 23:09   ` Simon Glass
  2014-09-25  8:06     ` Masahiro Yamada
  2014-09-25 14:46   ` [U-Boot] [U-Boot, v3, " Tom Rini
  1 sibling, 1 reply; 19+ messages in thread
From: Simon Glass @ 2014-09-24 23:09 UTC (permalink / raw)
  To: u-boot

Hi Masahiro,


On 22 September 2014 04:59, Masahiro Yamada <yamada.m@jp.panasonic.com> wrote:
> This option specifies the default Device Tree used for the run-time
> configuration of U-Boot.
>
> Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Stephen Warren <swarren@nvidia.com>
> Cc: Minkyu Kang <mk7.kang@samsung.com>
> Cc: Michal Simek <michal.simek@xilinx.com>
> ---
>
> Changes in v3: None
> Changes in v2:
>   - Fix the commit subject
>   - Rephrase the help comment of DEFAULT_DEVICE_TREE
>   - Do not touch mx6qsabreauto board
>     (This will be covered by commit 19a895cbe9430 in u-boot-imx.
>      Fabio has already sent a pull-req.)
>
>  configs/am335x_boneblack_vboot_defconfig | 1 +
>  configs/arndale_defconfig                | 1 +
>  configs/beaver_defconfig                 | 1 +
>  configs/cardhu_defconfig                 | 1 +
>  configs/colibri_t20_iris_defconfig       | 1 +
>  configs/colibri_t30_defconfig            | 1 +
>  configs/coreboot-x86_defconfig           | 1 +
>  configs/dalmore_defconfig                | 1 +
>  configs/harmony_defconfig                | 1 +
>  configs/jetson-tk1_defconfig             | 1 +
>  configs/medcom-wide_defconfig            | 1 +
>  configs/microblaze-generic_defconfig     | 1 +
>  configs/odroid_defconfig                 | 1 +
>  configs/origen_defconfig                 | 1 +
>  configs/paz00_defconfig                  | 1 +
>  configs/peach-pit_defconfig              | 1 +
>  configs/plutux_defconfig                 | 1 +
>  configs/s5pc210_universal_defconfig      | 1 +
>  configs/sandbox_defconfig                | 1 +
>  configs/seaboard_defconfig               | 1 +
>  configs/smdk5250_defconfig               | 1 +
>  configs/smdk5420_defconfig               | 1 +
>  configs/snow_defconfig                   | 1 +
>  configs/tec-ng_defconfig                 | 1 +
>  configs/tec_defconfig                    | 1 +
>  configs/trats2_defconfig                 | 1 +
>  configs/trats_defconfig                  | 1 +
>  configs/trimslice_defconfig              | 1 +
>  configs/venice2_defconfig                | 1 +
>  configs/ventana_defconfig                | 1 +
>  configs/vexpress_aemv8a_defconfig        | 1 +
>  configs/vexpress_aemv8a_semi_defconfig   | 1 +
>  configs/whistler_defconfig               | 1 +
>  configs/zynq_microzed_defconfig          | 1 +
>  configs/zynq_zc70x_defconfig             | 1 +
>  configs/zynq_zc770_xm010_defconfig       | 1 +
>  configs/zynq_zc770_xm012_defconfig       | 1 +
>  configs/zynq_zc770_xm013_defconfig       | 1 +
>  configs/zynq_zed_defconfig               | 1 +
>  dts/Kconfig                              | 7 +++++++
>  include/configs/am335x_evm.h             | 1 -
>  include/configs/arndale.h                | 1 -
>  include/configs/beaver.h                 | 3 ---
>  include/configs/cardhu.h                 | 3 ---
>  include/configs/colibri_t20_iris.h       | 3 ---
>  include/configs/colibri_t30.h            | 1 -
>  include/configs/coreboot.h               | 1 -
>  include/configs/dalmore.h                | 3 ---
>  include/configs/harmony.h                | 3 ---
>  include/configs/jetson-tk1.h             | 3 ---
>  include/configs/medcom-wide.h            | 3 ---
>  include/configs/microblaze-generic.h     | 3 ---
>  include/configs/odroid.h                 | 2 --
>  include/configs/origen.h                 | 2 --
>  include/configs/paz00.h                  | 3 ---
>  include/configs/peach-pit.h              | 2 --
>  include/configs/plutux.h                 | 3 ---
>  include/configs/s5pc210_universal.h      | 2 --
>  include/configs/sandbox.h                | 1 -
>  include/configs/seaboard.h               | 3 ---
>  include/configs/smdk5250.h               | 2 --
>  include/configs/smdk5420.h               | 2 --
>  include/configs/snow.h                   | 2 --
>  include/configs/tec-ng.h                 | 3 ---
>  include/configs/tec.h                    | 3 ---
>  include/configs/trats.h                  | 2 --
>  include/configs/trats2.h                 | 2 --
>  include/configs/trimslice.h              | 3 ---
>  include/configs/venice2.h                | 3 ---
>  include/configs/ventana.h                | 3 ---
>  include/configs/vexpress_aemv8a.h        | 1 -
>  include/configs/whistler.h               | 3 ---
>  include/configs/zynq_microzed.h          | 1 -
>  include/configs/zynq_zc70x.h             | 1 -
>  include/configs/zynq_zc770.h             | 3 ---
>  include/configs/zynq_zed.h               | 1 -
>  76 files changed, 46 insertions(+), 81 deletions(-)
>
> diff --git a/configs/am335x_boneblack_vboot_defconfig b/configs/am335x_boneblack_vboot_defconfig
> index af7ceca..e257143 100644
> --- a/configs/am335x_boneblack_vboot_defconfig
> +++ b/configs/am335x_boneblack_vboot_defconfig
> @@ -3,3 +3,4 @@ CONFIG_SYS_EXTRA_OPTIONS="SERIAL1,CONS_INDEX=1,EMMC_BOOT,ENABLE_VBOOT"
>  +S:CONFIG_ARM=y
>  +S:CONFIG_TARGET_AM335X_EVM=y
>  CONFIG_OF_CONTROL=y
> +CONFIG_DEFAULT_DEVICE_TREE="am335x-boneblack"

Do we want to include this for SPL too? At some point we might support
this. But if you want to define it only for U-Boot, that's OK.

Regards,

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

* [U-Boot] [PATCH v3 09/10] kconfig: move CONFIG_OF_* to Kconfig
  2014-09-24 23:08 ` [U-Boot] [PATCH v3 09/10] kconfig: move CONFIG_OF_* to Kconfig Simon Glass
@ 2014-09-25  7:12   ` Michal Simek
  2014-09-25  7:38   ` Masahiro Yamada
  1 sibling, 0 replies; 19+ messages in thread
From: Michal Simek @ 2014-09-25  7:12 UTC (permalink / raw)
  To: u-boot

On 09/25/2014 01:08 AM, Simon Glass wrote:
> Hi Masahiro,
> 
> On 22 September 2014 04:59, Masahiro Yamada <yamada.m@jp.panasonic.com> wrote:
>> This commit moves:
>>   CONFIG_OF_CONTROL
>>   CONFIG_OF_SEPARATE
>>   CONFIG_OF_EMBED
>>   CONFIG_OF_HOSTFILE
>>
>> Because these options are currently not supported for SPL,
>> the "Device Tree Control" menu does not appear in the SPL
>> configuration.
>>
>> Note:
>> zynq-common.h should be adjusted so as not to change the
>> default value of CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME.
>>
>> Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
>> Cc: Simon Glass <sjg@chromium.org>
>> Cc: Stephen Warren <swarren@nvidia.com>
>> Cc: Minkyu Kang <mk7.kang@samsung.com>
>> Cc: Michal Simek <michal.simek@xilinx.com>
> 
> From the bits that I understand (not zynq and microblaze)
> 
> Acked-by: Simon Glass <sjg@chromium.org>

:-)

No problem for zynq and Microblaze.

Acked-by: Michal Simek <michal.simek@xilinx.com>

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: 198 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140925/af3769dd/attachment.pgp>

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

* [U-Boot] [PATCH v3 09/10] kconfig: move CONFIG_OF_* to Kconfig
  2014-09-24 23:08 ` [U-Boot] [PATCH v3 09/10] kconfig: move CONFIG_OF_* to Kconfig Simon Glass
  2014-09-25  7:12   ` Michal Simek
@ 2014-09-25  7:38   ` Masahiro Yamada
  2014-09-25 13:18     ` Tom Rini
  1 sibling, 1 reply; 19+ messages in thread
From: Masahiro Yamada @ 2014-09-25  7:38 UTC (permalink / raw)
  To: u-boot

Hi Simon,



On Wed, 24 Sep 2014 17:08:11 -0600
Simon Glass <sjg@chromium.org> wrote:

> > +config OF_EMBED
> > +       bool "Embedded DTB for DT control"
> > +       help
> > +         If this option is enabled, the device tree will be picked up and
> > +         built into the U-Boot image.
> 
> Can you please add " This is suitable for debugging
> and development only and is not recommended for production devices."


Why is CONFIG_OF_EMBED not recommended for production devices?


Best Regards
Masahiro Yamada

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

* [U-Boot] [PATCH v3 10/10] kconfig: move CONFIG_DEFAULT_DEVICE_TREE to kconfig
  2014-09-24 23:09   ` Simon Glass
@ 2014-09-25  8:06     ` Masahiro Yamada
  2014-09-25 13:49       ` Simon Glass
  0 siblings, 1 reply; 19+ messages in thread
From: Masahiro Yamada @ 2014-09-25  8:06 UTC (permalink / raw)
  To: u-boot

Hi Simon,



On Wed, 24 Sep 2014 17:09:35 -0600
Simon Glass <sjg@chromium.org> wrote:
> >
> > diff --git a/configs/am335x_boneblack_vboot_defconfig b/configs/am335x_boneblack_vboot_defconfig
> > index af7ceca..e257143 100644
> > --- a/configs/am335x_boneblack_vboot_defconfig
> > +++ b/configs/am335x_boneblack_vboot_defconfig
> > @@ -3,3 +3,4 @@ CONFIG_SYS_EXTRA_OPTIONS="SERIAL1,CONS_INDEX=1,EMMC_BOOT,ENABLE_VBOOT"
> >  +S:CONFIG_ARM=y
> >  +S:CONFIG_TARGET_AM335X_EVM=y
> >  CONFIG_OF_CONTROL=y
> > +CONFIG_DEFAULT_DEVICE_TREE="am335x-boneblack"
> 
> Do we want to include this for SPL too? At some point we might support
> this. But if you want to define it only for U-Boot, that's OK.
> 
> Regards,



I was planning to expand this for SPL in the future,
but if you want to do that now, I am fine with it.

(The series is just moving CONFIGs verbatim from headers to defconfigs)


I am afraid the current SPL implementation is too special.

 - special Makefile (scripts/Makefile.spl)
 - special linker scripts  (u-boot-spl.lds)
 - special boot sequence (common/spl/spl.c)

etc.  We need extra efforts because of that.


My long-term goal is to implement the normal image and the SPL image
as more symetirical ones, and I hope CONFIG_SPL_* will go away eventually.


If we had implemented SPL as a generic case, you would not have needed
a separate work for CONFIG_SPL_DM, right?
Perhaps, you would have implemented the Driver Model for both of the normal and SPL
in the first place (and just enable CONFIG_DM for SPL and it would work).

But unfortunately, we don't.
Nor can I do that now.
I guess we need more refactoring.


If the device tree control for SPL is urgent necessity,
I am fine with CONFIG_SPL_OF_CONTROL like before, or another implementation.


Comments are welcome on this issue, of course.


Best Regards
Masahiro Yamada

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

* [U-Boot] [PATCH v3 09/10] kconfig: move CONFIG_OF_* to Kconfig
  2014-09-25  7:38   ` Masahiro Yamada
@ 2014-09-25 13:18     ` Tom Rini
  2014-09-25 13:44       ` Simon Glass
  0 siblings, 1 reply; 19+ messages in thread
From: Tom Rini @ 2014-09-25 13:18 UTC (permalink / raw)
  To: u-boot

On Thu, Sep 25, 2014 at 04:38:09PM +0900, Masahiro Yamada wrote:
> Hi Simon,
> 
> 
> 
> On Wed, 24 Sep 2014 17:08:11 -0600
> Simon Glass <sjg@chromium.org> wrote:
> 
> > > +config OF_EMBED
> > > +       bool "Embedded DTB for DT control"
> > > +       help
> > > +         If this option is enabled, the device tree will be picked up and
> > > +         built into the U-Boot image.
> > 
> > Can you please add " This is suitable for debugging
> > and development only and is not recommended for production devices."
> 
> 
> Why is CONFIG_OF_EMBED not recommended for production devices?

It's kind-of a question for the devicetree folks.  The last time (a
while back now) I asked for some general advice on how a DT should be
shipped with hardware, being able to update the DT without replacing the
whole of firmware was seen as a good thing.  Combine this with that we
should try (yes, we can't today due to incompatible bindings) share the
DT between U-Boot and the kernel (or really, U-Boot and anything but
again, last I checked the BSD bindings were very very different),
embedding doesn't seem good.

-- 
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/20140925/365310db/attachment.pgp>

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

* [U-Boot] [PATCH v3 09/10] kconfig: move CONFIG_OF_* to Kconfig
  2014-09-25 13:18     ` Tom Rini
@ 2014-09-25 13:44       ` Simon Glass
  2014-09-26 13:49         ` Tom Rini
  0 siblings, 1 reply; 19+ messages in thread
From: Simon Glass @ 2014-09-25 13:44 UTC (permalink / raw)
  To: u-boot

Hi,

On 25 September 2014 07:18, Tom Rini <trini@ti.com> wrote:
> On Thu, Sep 25, 2014 at 04:38:09PM +0900, Masahiro Yamada wrote:
>> Hi Simon,
>>
>>
>>
>> On Wed, 24 Sep 2014 17:08:11 -0600
>> Simon Glass <sjg@chromium.org> wrote:
>>
>> > > +config OF_EMBED
>> > > +       bool "Embedded DTB for DT control"
>> > > +       help
>> > > +         If this option is enabled, the device tree will be picked up and
>> > > +         built into the U-Boot image.
>> >
>> > Can you please add " This is suitable for debugging
>> > and development only and is not recommended for production devices."
>>
>>
>> Why is CONFIG_OF_EMBED not recommended for production devices?
>
> It's kind-of a question for the devicetree folks.  The last time (a
> while back now) I asked for some general advice on how a DT should be
> shipped with hardware, being able to update the DT without replacing the
> whole of firmware was seen as a good thing.  Combine this with that we
> should try (yes, we can't today due to incompatible bindings) share the
> DT between U-Boot and the kernel (or really, U-Boot and anything but
> again, last I checked the BSD bindings were very very different),
> embedding doesn't seem good.

Addressing the binding differences, it's hard to see what these are
right now since the sorting and other churn in the Linux device tree
files. I think it would be good to sync the U-Boot files to the Linux
ones so we can see what bindings still differ.

Regards,
Simon

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

* [U-Boot] [PATCH v3 10/10] kconfig: move CONFIG_DEFAULT_DEVICE_TREE to kconfig
  2014-09-25  8:06     ` Masahiro Yamada
@ 2014-09-25 13:49       ` Simon Glass
  0 siblings, 0 replies; 19+ messages in thread
From: Simon Glass @ 2014-09-25 13:49 UTC (permalink / raw)
  To: u-boot

Hi Masahiro,

On 25 September 2014 02:06, Masahiro Yamada <yamada.m@jp.panasonic.com> wrote:
> Hi Simon,
>
>
>
> On Wed, 24 Sep 2014 17:09:35 -0600
> Simon Glass <sjg@chromium.org> wrote:
>> >
>> > diff --git a/configs/am335x_boneblack_vboot_defconfig b/configs/am335x_boneblack_vboot_defconfig
>> > index af7ceca..e257143 100644
>> > --- a/configs/am335x_boneblack_vboot_defconfig
>> > +++ b/configs/am335x_boneblack_vboot_defconfig
>> > @@ -3,3 +3,4 @@ CONFIG_SYS_EXTRA_OPTIONS="SERIAL1,CONS_INDEX=1,EMMC_BOOT,ENABLE_VBOOT"
>> >  +S:CONFIG_ARM=y
>> >  +S:CONFIG_TARGET_AM335X_EVM=y
>> >  CONFIG_OF_CONTROL=y
>> > +CONFIG_DEFAULT_DEVICE_TREE="am335x-boneblack"
>>
>> Do we want to include this for SPL too? At some point we might support
>> this. But if you want to define it only for U-Boot, that's OK.
>>
>> Regards,
>
>
>
> I was planning to expand this for SPL in the future,
> but if you want to do that now, I am fine with it.
>
> (The series is just moving CONFIGs verbatim from headers to defconfigs)
>
>
> I am afraid the current SPL implementation is too special.
>
>  - special Makefile (scripts/Makefile.spl)
>  - special linker scripts  (u-boot-spl.lds)
>  - special boot sequence (common/spl/spl.c)
>
> etc.  We need extra efforts because of that.
>
>
> My long-term goal is to implement the normal image and the SPL image
> as more symetirical ones, and I hope CONFIG_SPL_* will go away eventually.
>
>
> If we had implemented SPL as a generic case, you would not have needed
> a separate work for CONFIG_SPL_DM, right?
> Perhaps, you would have implemented the Driver Model for both of the normal and SPL
> in the first place (and just enable CONFIG_DM for SPL and it would work).
>
> But unfortunately, we don't.
> Nor can I do that now.
> I guess we need more refactoring.
>
>
> If the device tree control for SPL is urgent necessity,
> I am fine with CONFIG_SPL_OF_CONTROL like before, or another implementation.
>
>
> Comments are welcome on this issue, of course.

Yes SPL should become less special, all of this sounds good.

With the DM SPL series we are getting close to just being able to
enable FDT in SPL just like any other feature. I'm not planning to
look at that imminently though as the DM SPL stuff is still pretty
new.

Note that the reason for CONFIG_SPL_DM is mostly a migration exercise.
It allows boards to decide when they are ready to switch to DM. I
expect the option will be removed one day (since boards with SPL are
mostly the well maintained ones I think).

Regards,
Simon

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

* [U-Boot] [U-Boot, v3, 09/10] kconfig: move CONFIG_OF_* to Kconfig
  2014-09-22 10:59 [U-Boot] [PATCH v3 09/10] kconfig: move CONFIG_OF_* to Kconfig Masahiro Yamada
  2014-09-22 10:59 ` [U-Boot] [PATCH v3 10/10] kconfig: move CONFIG_DEFAULT_DEVICE_TREE to kconfig Masahiro Yamada
  2014-09-24 23:08 ` [U-Boot] [PATCH v3 09/10] kconfig: move CONFIG_OF_* to Kconfig Simon Glass
@ 2014-09-25 14:46 ` Tom Rini
  2 siblings, 0 replies; 19+ messages in thread
From: Tom Rini @ 2014-09-25 14:46 UTC (permalink / raw)
  To: u-boot

On Mon, Sep 22, 2014 at 07:59:05PM +0900, Masahiro Yamada wrote:

> This commit moves:
>   CONFIG_OF_CONTROL
>   CONFIG_OF_SEPARATE
>   CONFIG_OF_EMBED
>   CONFIG_OF_HOSTFILE
> 
> Because these options are currently not supported for SPL,
> the "Device Tree Control" menu does not appear in the SPL
> configuration.
> 
> Note:
> zynq-common.h should be adjusted so as not to change the
> default value of CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME.
> 
> Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
> Acked-by: Simon Glass <sjg@chromium.org>
> Cc: Stephen Warren <swarren@nvidia.com>
> Cc: Minkyu Kang <mk7.kang@samsung.com>
> Acked-by: Michal Simek <michal.simek@xilinx.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/20140925/6bf5972f/attachment.pgp>

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

* [U-Boot] [U-Boot, v3, 10/10] kconfig: move CONFIG_DEFAULT_DEVICE_TREE to kconfig
  2014-09-22 10:59 ` [U-Boot] [PATCH v3 10/10] kconfig: move CONFIG_DEFAULT_DEVICE_TREE to kconfig Masahiro Yamada
  2014-09-24 23:09   ` Simon Glass
@ 2014-09-25 14:46   ` Tom Rini
  1 sibling, 0 replies; 19+ messages in thread
From: Tom Rini @ 2014-09-25 14:46 UTC (permalink / raw)
  To: u-boot

On Mon, Sep 22, 2014 at 07:59:06PM +0900, Masahiro Yamada wrote:

> This option specifies the default Device Tree used for the run-time
> configuration of U-Boot.
> 
> Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Stephen Warren <swarren@nvidia.com>
> Cc: Minkyu Kang <mk7.kang@samsung.com>
> Cc: Michal Simek <michal.simek@xilinx.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/20140925/d91d422e/attachment.pgp>

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

* [U-Boot] [PATCH v3 09/10] kconfig: move CONFIG_OF_* to Kconfig
  2014-09-25 13:44       ` Simon Glass
@ 2014-09-26 13:49         ` Tom Rini
  2014-09-26 14:52           ` Stephen Warren
  2014-10-02 13:09           ` Masahiro Yamada
  0 siblings, 2 replies; 19+ messages in thread
From: Tom Rini @ 2014-09-26 13:49 UTC (permalink / raw)
  To: u-boot

On Thu, Sep 25, 2014 at 07:44:30AM -0600, Simon Glass wrote:
> Hi,
> 
> On 25 September 2014 07:18, Tom Rini <trini@ti.com> wrote:
> > On Thu, Sep 25, 2014 at 04:38:09PM +0900, Masahiro Yamada wrote:
> >> Hi Simon,
> >>
> >>
> >>
> >> On Wed, 24 Sep 2014 17:08:11 -0600
> >> Simon Glass <sjg@chromium.org> wrote:
> >>
> >> > > +config OF_EMBED
> >> > > +       bool "Embedded DTB for DT control"
> >> > > +       help
> >> > > +         If this option is enabled, the device tree will be picked up and
> >> > > +         built into the U-Boot image.
> >> >
> >> > Can you please add " This is suitable for debugging
> >> > and development only and is not recommended for production devices."
> >>
> >>
> >> Why is CONFIG_OF_EMBED not recommended for production devices?
> >
> > It's kind-of a question for the devicetree folks.  The last time (a
> > while back now) I asked for some general advice on how a DT should be
> > shipped with hardware, being able to update the DT without replacing the
> > whole of firmware was seen as a good thing.  Combine this with that we
> > should try (yes, we can't today due to incompatible bindings) share the
> > DT between U-Boot and the kernel (or really, U-Boot and anything but
> > again, last I checked the BSD bindings were very very different),
> > embedding doesn't seem good.
> 
> Addressing the binding differences, it's hard to see what these are
> right now since the sorting and other churn in the Linux device tree
> files. I think it would be good to sync the U-Boot files to the Linux
> ones so we can see what bindings still differ.

Yes, agreed.

-- 
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/20140926/015e1d0c/attachment.pgp>

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

* [U-Boot] [PATCH v3 09/10] kconfig: move CONFIG_OF_* to Kconfig
  2014-09-26 13:49         ` Tom Rini
@ 2014-09-26 14:52           ` Stephen Warren
  2014-09-26 15:24             ` Tom Rini
  2014-10-02 13:09           ` Masahiro Yamada
  1 sibling, 1 reply; 19+ messages in thread
From: Stephen Warren @ 2014-09-26 14:52 UTC (permalink / raw)
  To: u-boot

On 09/26/2014 07:49 AM, Tom Rini wrote:
> On Thu, Sep 25, 2014 at 07:44:30AM -0600, Simon Glass wrote:
>> Hi,
>>
>> On 25 September 2014 07:18, Tom Rini <trini@ti.com> wrote:
>>> On Thu, Sep 25, 2014 at 04:38:09PM +0900, Masahiro Yamada wrote:
>>>> Hi Simon,
>>>>
>>>>
>>>>
>>>> On Wed, 24 Sep 2014 17:08:11 -0600
>>>> Simon Glass <sjg@chromium.org> wrote:
>>>>
>>>>>> +config OF_EMBED
>>>>>> +       bool "Embedded DTB for DT control"
>>>>>> +       help
>>>>>> +         If this option is enabled, the device tree will be picked up and
>>>>>> +         built into the U-Boot image.
>>>>>
>>>>> Can you please add " This is suitable for debugging
>>>>> and development only and is not recommended for production devices."
>>>>
>>>>
>>>> Why is CONFIG_OF_EMBED not recommended for production devices?
>>>
>>> It's kind-of a question for the devicetree folks.  The last time (a
>>> while back now) I asked for some general advice on how a DT should be
>>> shipped with hardware, being able to update the DT without replacing the
>>> whole of firmware was seen as a good thing.  Combine this with that we
>>> should try (yes, we can't today due to incompatible bindings) share the
>>> DT between U-Boot and the kernel (or really, U-Boot and anything but
>>> again, last I checked the BSD bindings were very very different),
>>> embedding doesn't seem good.
>>
>> Addressing the binding differences, it's hard to see what these are
>> right now since the sorting and other churn in the Linux device tree
>> files. I think it would be good to sync the U-Boot files to the Linux
>> ones so we can see what bindings still differ.
>
> Yes, agreed.

There's a difference between:

a) The DT that U-Boot uses.

b) The DT that is passed to the kernel.

I don't see any problem embedding (a) into the U-Boot binary at all, 
since U-Boot is the only consumer. There's no need to update the DT 
separately. Even when not using CONFIG_OF_EMBED, the DT really is 
logically part of the bootloader.

(b) is the case where people care about updating the DT separately from 
the firmware.

Now, if we ever get to the point where we pass the same DT to both 
U-Boot and the kernel, then yes, embedding the DT into the U-Boot binary 
would be a bad idea, since the DT couldn't be updated separately then.

However, I think it's a bad idea to pass the same DT to both, since then 
updating it might break your bootloader and kernel, rather than just 
your kernel, which complicates recovery. Ideally, the only thing shared 
between bootloader and kernel should be the ability for the bootloader 
to load data (DT, initrd, kernel image) into memory, set up the 
appropriate CPU state, and jump to the kernel.

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

* [U-Boot] [PATCH v3 09/10] kconfig: move CONFIG_OF_* to Kconfig
  2014-09-26 14:52           ` Stephen Warren
@ 2014-09-26 15:24             ` Tom Rini
  2014-09-26 15:35               ` Stephen Warren
  2014-09-26 18:33               ` Simon Glass
  0 siblings, 2 replies; 19+ messages in thread
From: Tom Rini @ 2014-09-26 15:24 UTC (permalink / raw)
  To: u-boot

On Fri, Sep 26, 2014 at 08:52:11AM -0600, Stephen Warren wrote:
> On 09/26/2014 07:49 AM, Tom Rini wrote:
> >On Thu, Sep 25, 2014 at 07:44:30AM -0600, Simon Glass wrote:
> >>Hi,
> >>
> >>On 25 September 2014 07:18, Tom Rini <trini@ti.com> wrote:
> >>>On Thu, Sep 25, 2014 at 04:38:09PM +0900, Masahiro Yamada wrote:
> >>>>Hi Simon,
> >>>>
> >>>>
> >>>>
> >>>>On Wed, 24 Sep 2014 17:08:11 -0600
> >>>>Simon Glass <sjg@chromium.org> wrote:
> >>>>
> >>>>>>+config OF_EMBED
> >>>>>>+       bool "Embedded DTB for DT control"
> >>>>>>+       help
> >>>>>>+         If this option is enabled, the device tree will be picked up and
> >>>>>>+         built into the U-Boot image.
> >>>>>
> >>>>>Can you please add " This is suitable for debugging
> >>>>>and development only and is not recommended for production devices."
> >>>>
> >>>>
> >>>>Why is CONFIG_OF_EMBED not recommended for production devices?
> >>>
> >>>It's kind-of a question for the devicetree folks.  The last time (a
> >>>while back now) I asked for some general advice on how a DT should be
> >>>shipped with hardware, being able to update the DT without replacing the
> >>>whole of firmware was seen as a good thing.  Combine this with that we
> >>>should try (yes, we can't today due to incompatible bindings) share the
> >>>DT between U-Boot and the kernel (or really, U-Boot and anything but
> >>>again, last I checked the BSD bindings were very very different),
> >>>embedding doesn't seem good.
> >>
> >>Addressing the binding differences, it's hard to see what these are
> >>right now since the sorting and other churn in the Linux device tree
> >>files. I think it would be good to sync the U-Boot files to the Linux
> >>ones so we can see what bindings still differ.
> >
> >Yes, agreed.
> 
> There's a difference between:
> 
> a) The DT that U-Boot uses.
> 
> b) The DT that is passed to the kernel.
> 
> I don't see any problem embedding (a) into the U-Boot binary at all,
> since U-Boot is the only consumer. There's no need to update the DT
> separately. Even when not using CONFIG_OF_EMBED, the DT really is
> logically part of the bootloader.
> 
> (b) is the case where people care about updating the DT separately
> from the firmware.
> 
> Now, if we ever get to the point where we pass the same DT to both
> U-Boot and the kernel, then yes, embedding the DT into the U-Boot
> binary would be a bad idea, since the DT couldn't be updated
> separately then.

Well part of the issue here is that at some decent levels of thinking
why wouldn't (a) be at least a strict subset (generated?) of (b) ?

> However, I think it's a bad idea to pass the same DT to both, since
> then updating it might break your bootloader and kernel, rather than
> just your kernel, which complicates recovery. Ideally, the only
> thing shared between bootloader and kernel should be the ability for
> the bootloader to load data (DT, initrd, kernel image) into memory,
> set up the appropriate CPU state, and jump to the kernel.

Well, the issue is that I've heard of some interest in trying to move
forward with the case where U-Boot and Kernel share a DT or at least
bundling one with another.

Now in my mind, it seems somewhat likely that we'll need to have "SPL"
which has hard-coded information to it and just can't rely on a full DT
being present and used and that loads U-Boot which can use a full DT.
In that case watchdog+bootcount+redundant image is recovery path
(watchdog cycles, bootcount sees we failed N times to get into something
further, picks backup version to boot).

Of course there's lots of other fun bits around here to worry and think
about.

-- 
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/20140926/aadfad25/attachment.pgp>

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

* [U-Boot] [PATCH v3 09/10] kconfig: move CONFIG_OF_* to Kconfig
  2014-09-26 15:24             ` Tom Rini
@ 2014-09-26 15:35               ` Stephen Warren
  2014-09-26 18:33               ` Simon Glass
  1 sibling, 0 replies; 19+ messages in thread
From: Stephen Warren @ 2014-09-26 15:35 UTC (permalink / raw)
  To: u-boot

On 09/26/2014 09:24 AM, Tom Rini wrote:
> On Fri, Sep 26, 2014 at 08:52:11AM -0600, Stephen Warren wrote:
>> On 09/26/2014 07:49 AM, Tom Rini wrote:
>>> On Thu, Sep 25, 2014 at 07:44:30AM -0600, Simon Glass wrote:
>>>> Hi,
>>>>
>>>> On 25 September 2014 07:18, Tom Rini <trini@ti.com> wrote:
>>>>> On Thu, Sep 25, 2014 at 04:38:09PM +0900, Masahiro Yamada wrote:
>>>>>> Hi Simon,
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, 24 Sep 2014 17:08:11 -0600
>>>>>> Simon Glass <sjg@chromium.org> wrote:
>>>>>>
>>>>>>>> +config OF_EMBED
>>>>>>>> +       bool "Embedded DTB for DT control"
>>>>>>>> +       help
>>>>>>>> +         If this option is enabled, the device tree will be picked up and
>>>>>>>> +         built into the U-Boot image.
>>>>>>>
>>>>>>> Can you please add " This is suitable for debugging
>>>>>>> and development only and is not recommended for production devices."
>>>>>>
>>>>>>
>>>>>> Why is CONFIG_OF_EMBED not recommended for production devices?
>>>>>
>>>>> It's kind-of a question for the devicetree folks.  The last time (a
>>>>> while back now) I asked for some general advice on how a DT should be
>>>>> shipped with hardware, being able to update the DT without replacing the
>>>>> whole of firmware was seen as a good thing.  Combine this with that we
>>>>> should try (yes, we can't today due to incompatible bindings) share the
>>>>> DT between U-Boot and the kernel (or really, U-Boot and anything but
>>>>> again, last I checked the BSD bindings were very very different),
>>>>> embedding doesn't seem good.
>>>>
>>>> Addressing the binding differences, it's hard to see what these are
>>>> right now since the sorting and other churn in the Linux device tree
>>>> files. I think it would be good to sync the U-Boot files to the Linux
>>>> ones so we can see what bindings still differ.
>>>
>>> Yes, agreed.
>>
>> There's a difference between:
>>
>> a) The DT that U-Boot uses.
>>
>> b) The DT that is passed to the kernel.
>>
>> I don't see any problem embedding (a) into the U-Boot binary at all,
>> since U-Boot is the only consumer. There's no need to update the DT
>> separately. Even when not using CONFIG_OF_EMBED, the DT really is
>> logically part of the bootloader.
>>
>> (b) is the case where people care about updating the DT separately
>> from the firmware.
>>
>> Now, if we ever get to the point where we pass the same DT to both
>> U-Boot and the kernel, then yes, embedding the DT into the U-Boot
>> binary would be a bad idea, since the DT couldn't be updated
>> separately then.
>
> Well part of the issue here is that at some decent levels of thinking
> why wouldn't (a) be at least a strict subset (generated?) of (b) ?
>
>> However, I think it's a bad idea to pass the same DT to both, since
>> then updating it might break your bootloader and kernel, rather than
>> just your kernel, which complicates recovery. Ideally, the only
>> thing shared between bootloader and kernel should be the ability for
>> the bootloader to load data (DT, initrd, kernel image) into memory,
>> set up the appropriate CPU state, and jump to the kernel.
>
> Well, the issue is that I've heard of some interest in trying to move
> forward with the case where U-Boot and Kernel share a DT or at least
> bundling one with another.

Well, it depends on what you mean by "sharing a DT".

Certainly, they should share the same DT bindings (schema), so there's 
only one way of defining each device/feature/... in DT.

Certainly, they should share identical DT source files (*.dts). Or 
perhaps the U-Boot one is a subset of the kernel one, but at least 
identical content where they define the same thing.

This in turn means they'd share identical DT binary content (*.dtb), 
again perhaps with the same subset argument.

However, sharing the same physical copy of the DT in storage seems 
dangerous, since then you can't update the DT you pass to the kernel 
without risking something going wrong with the bootloader if the 
bootloader doesn't like the new DT you want to pass to the kernel.

Given that last point, CONFIG_OF_EMBED doesn't seem like any kind of 
problem to me; the DT copy that U-Boot uses would be strictly for U-Boot 
anyway, so there's no "separate updating" argument, and updating a DT 
that U-Boot uses is just as dangerous as updating the U-Boot code itself.

> Now in my mind, it seems somewhat likely that we'll need to have "SPL"
> which has hard-coded information to it and just can't rely on a full DT
> being present and used and that loads U-Boot which can use a full DT.

Indeed, that was the point I was making to Simon earlier on. My thoughts 
are that if U-Boot needs hard-coded information anywhere, it should just 
use it always and not use DT. However, if U-Boot really wants to use DT, 
it should always use it and not have hard-coded tables of devices at 
all. Mixing both seems like a maintenance disaster. I would obviously 
prefer not using DT at all myself, in a bootloader at least.

> In that case watchdog+bootcount+redundant image is recovery path
> (watchdog cycles, bootcount sees we failed N times to get into something
> further, picks backup version to boot).
>
> Of course there's lots of other fun bits around here to worry and think
> about.

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

* [U-Boot] [PATCH v3 09/10] kconfig: move CONFIG_OF_* to Kconfig
  2014-09-26 15:24             ` Tom Rini
  2014-09-26 15:35               ` Stephen Warren
@ 2014-09-26 18:33               ` Simon Glass
  1 sibling, 0 replies; 19+ messages in thread
From: Simon Glass @ 2014-09-26 18:33 UTC (permalink / raw)
  To: u-boot

Hi Tom,

On 26 September 2014 09:24, Tom Rini <trini@ti.com> wrote:

> On Fri, Sep 26, 2014 at 08:52:11AM -0600, Stephen Warren wrote:
> > On 09/26/2014 07:49 AM, Tom Rini wrote:
> > >On Thu, Sep 25, 2014 at 07:44:30AM -0600, Simon Glass wrote:
> > >>Hi,
> > >>
> > >>On 25 September 2014 07:18, Tom Rini <trini@ti.com> wrote:
> > >>>On Thu, Sep 25, 2014 at 04:38:09PM +0900, Masahiro Yamada wrote:
> > >>>>Hi Simon,
> > >>>>
> > >>>>
> > >>>>
> > >>>>On Wed, 24 Sep 2014 17:08:11 -0600
> > >>>>Simon Glass <sjg@chromium.org> wrote:
> > >>>>
> > >>>>>>+config OF_EMBED
> > >>>>>>+       bool "Embedded DTB for DT control"
> > >>>>>>+       help
> > >>>>>>+         If this option is enabled, the device tree will be
> picked up and
> > >>>>>>+         built into the U-Boot image.
> > >>>>>
> > >>>>>Can you please add " This is suitable for debugging
> > >>>>>and development only and is not recommended for production devices."
> > >>>>
> > >>>>
> > >>>>Why is CONFIG_OF_EMBED not recommended for production devices?
> > >>>
> > >>>It's kind-of a question for the devicetree folks.  The last time (a
> > >>>while back now) I asked for some general advice on how a DT should be
> > >>>shipped with hardware, being able to update the DT without replacing
> the
> > >>>whole of firmware was seen as a good thing.  Combine this with that we
> > >>>should try (yes, we can't today due to incompatible bindings) share
> the
> > >>>DT between U-Boot and the kernel (or really, U-Boot and anything but
> > >>>again, last I checked the BSD bindings were very very different),
> > >>>embedding doesn't seem good.
> > >>
> > >>Addressing the binding differences, it's hard to see what these are
> > >>right now since the sorting and other churn in the Linux device tree
> > >>files. I think it would be good to sync the U-Boot files to the Linux
> > >>ones so we can see what bindings still differ.
> > >
> > >Yes, agreed.
> >
> > There's a difference between:
> >
> > a) The DT that U-Boot uses.
> >
> > b) The DT that is passed to the kernel.
> >
> > I don't see any problem embedding (a) into the U-Boot binary at all,
> > since U-Boot is the only consumer. There's no need to update the DT
> > separately. Even when not using CONFIG_OF_EMBED, the DT really is
> > logically part of the bootloader.
> >
> > (b) is the case where people care about updating the DT separately
> > from the firmware.
> >
> > Now, if we ever get to the point where we pass the same DT to both
> > U-Boot and the kernel, then yes, embedding the DT into the U-Boot
> > binary would be a bad idea, since the DT couldn't be updated
> > separately then.
>
> Well part of the issue here is that at some decent levels of thinking
> why wouldn't (a) be at least a strict subset (generated?) of (b) ?
>
> > However, I think it's a bad idea to pass the same DT to both, since
> > then updating it might break your bootloader and kernel, rather than
> > just your kernel, which complicates recovery. Ideally, the only
> > thing shared between bootloader and kernel should be the ability for
> > the bootloader to load data (DT, initrd, kernel image) into memory,
> > set up the appropriate CPU state, and jump to the kernel.
>
> Well, the issue is that I've heard of some interest in trying to move
> forward with the case where U-Boot and Kernel share a DT or at least
> bundling one with another.
>
> Now in my mind, it seems somewhat likely that we'll need to have "SPL"
> which has hard-coded information to it and just can't rely on a full DT
> being present and used and that loads U-Boot which can use a full DT.
> In that case watchdog+bootcount+redundant image is recovery path
> (watchdog cycles, bootcount sees we failed N times to get into something
> further, picks backup version to boot).
>

If you look at Exynos there is a static table of information.
See ./arch/arm/include/asm/arch-exynos/spl.h. In Chrome OS this is just
copied from the device tree by a tool, so in principle it would be good to
just have the DT available in SPL. There is actually no impediment to this
really, it was done at the time to save time for the two settings that were
needed and it grew from there. Provided that the DT is available I think it
can in principle be used for everything, but I suppose there may be hard
cases / exceptions. I feel that DT should buy Stephen flowers as there
seems to have been a falling out :-)


>
> Of course there's lots of other fun bits around here to worry and think
> about.
>
> --
> Tom
>

Regards,
Simon

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

* [U-Boot] [PATCH v3 09/10] kconfig: move CONFIG_OF_* to Kconfig
  2014-09-26 13:49         ` Tom Rini
  2014-09-26 14:52           ` Stephen Warren
@ 2014-10-02 13:09           ` Masahiro Yamada
  2014-10-04  2:20             ` Simon Glass
  1 sibling, 1 reply; 19+ messages in thread
From: Masahiro Yamada @ 2014-10-02 13:09 UTC (permalink / raw)
  To: u-boot

Hi.



On Fri, 26 Sep 2014 09:49:01 -0400
Tom Rini <trini@ti.com> wrote:

> On Thu, Sep 25, 2014 at 07:44:30AM -0600, Simon Glass wrote:
> > Hi,
> > 
> > On 25 September 2014 07:18, Tom Rini <trini@ti.com> wrote:
> > > On Thu, Sep 25, 2014 at 04:38:09PM +0900, Masahiro Yamada wrote:
> > >> Hi Simon,
> > >>
> > >>
> > >>
> > >> On Wed, 24 Sep 2014 17:08:11 -0600
> > >> Simon Glass <sjg@chromium.org> wrote:
> > >>
> > >> > > +config OF_EMBED
> > >> > > +       bool "Embedded DTB for DT control"
> > >> > > +       help
> > >> > > +         If this option is enabled, the device tree will be picked up and
> > >> > > +         built into the U-Boot image.
> > >> >
> > >> > Can you please add " This is suitable for debugging
> > >> > and development only and is not recommended for production devices."
> > >>
> > >>
> > >> Why is CONFIG_OF_EMBED not recommended for production devices?
> > >
> > > It's kind-of a question for the devicetree folks.  The last time (a
> > > while back now) I asked for some general advice on how a DT should be
> > > shipped with hardware, being able to update the DT without replacing the
> > > whole of firmware was seen as a good thing.  Combine this with that we
> > > should try (yes, we can't today due to incompatible bindings) share the
> > > DT between U-Boot and the kernel (or really, U-Boot and anything but
> > > again, last I checked the BSD bindings were very very different),
> > > embedding doesn't seem good.
> > 
> > Addressing the binding differences, it's hard to see what these are
> > right now since the sorting and other churn in the Linux device tree
> > files. I think it would be good to sync the U-Boot files to the Linux
> > ones so we can see what bindings still differ.
> 
> Yes, agreed.


Interesting.

If so, "u-boot,dm-pre-reloc" is a bad idea, isn't it?

It seems a really U-Boot-specific property,
although I only see it in test/dm/test.dts.


Best Regards
Masahiro Yamada

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

* [U-Boot] [PATCH v3 09/10] kconfig: move CONFIG_OF_* to Kconfig
  2014-10-02 13:09           ` Masahiro Yamada
@ 2014-10-04  2:20             ` Simon Glass
  0 siblings, 0 replies; 19+ messages in thread
From: Simon Glass @ 2014-10-04  2:20 UTC (permalink / raw)
  To: u-boot

Hi Masahiro,

On 2 October 2014 07:09, Masahiro Yamada <yamada.m@jp.panasonic.com> wrote:
> Hi.
>
>
>
> On Fri, 26 Sep 2014 09:49:01 -0400
> Tom Rini <trini@ti.com> wrote:
>
>> On Thu, Sep 25, 2014 at 07:44:30AM -0600, Simon Glass wrote:
>> > Hi,
>> >
>> > On 25 September 2014 07:18, Tom Rini <trini@ti.com> wrote:
>> > > On Thu, Sep 25, 2014 at 04:38:09PM +0900, Masahiro Yamada wrote:
>> > >> Hi Simon,
>> > >>
>> > >>
>> > >>
>> > >> On Wed, 24 Sep 2014 17:08:11 -0600
>> > >> Simon Glass <sjg@chromium.org> wrote:
>> > >>
>> > >> > > +config OF_EMBED
>> > >> > > +       bool "Embedded DTB for DT control"
>> > >> > > +       help
>> > >> > > +         If this option is enabled, the device tree will be picked up and
>> > >> > > +         built into the U-Boot image.
>> > >> >
>> > >> > Can you please add " This is suitable for debugging
>> > >> > and development only and is not recommended for production devices."
>> > >>
>> > >>
>> > >> Why is CONFIG_OF_EMBED not recommended for production devices?
>> > >
>> > > It's kind-of a question for the devicetree folks.  The last time (a
>> > > while back now) I asked for some general advice on how a DT should be
>> > > shipped with hardware, being able to update the DT without replacing the
>> > > whole of firmware was seen as a good thing.  Combine this with that we
>> > > should try (yes, we can't today due to incompatible bindings) share the
>> > > DT between U-Boot and the kernel (or really, U-Boot and anything but
>> > > again, last I checked the BSD bindings were very very different),
>> > > embedding doesn't seem good.
>> >
>> > Addressing the binding differences, it's hard to see what these are
>> > right now since the sorting and other churn in the Linux device tree
>> > files. I think it would be good to sync the U-Boot files to the Linux
>> > ones so we can see what bindings still differ.
>>
>> Yes, agreed.
>
>
> Interesting.
>
> If so, "u-boot,dm-pre-reloc" is a bad idea, isn't it?
>
> It seems a really U-Boot-specific property,
> although I only see it in test/dm/test.dts.

Yes it is U-Boot-specific, hence the prefix, but that is permitted. It
is useful to avoid hacks I think, but let's see how it goes. Linux has
its own properties also, also linux,stdout-path.

Regards,
Simon

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

end of thread, other threads:[~2014-10-04  2:20 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-09-22 10:59 [U-Boot] [PATCH v3 09/10] kconfig: move CONFIG_OF_* to Kconfig Masahiro Yamada
2014-09-22 10:59 ` [U-Boot] [PATCH v3 10/10] kconfig: move CONFIG_DEFAULT_DEVICE_TREE to kconfig Masahiro Yamada
2014-09-24 23:09   ` Simon Glass
2014-09-25  8:06     ` Masahiro Yamada
2014-09-25 13:49       ` Simon Glass
2014-09-25 14:46   ` [U-Boot] [U-Boot, v3, " Tom Rini
2014-09-24 23:08 ` [U-Boot] [PATCH v3 09/10] kconfig: move CONFIG_OF_* to Kconfig Simon Glass
2014-09-25  7:12   ` Michal Simek
2014-09-25  7:38   ` Masahiro Yamada
2014-09-25 13:18     ` Tom Rini
2014-09-25 13:44       ` Simon Glass
2014-09-26 13:49         ` Tom Rini
2014-09-26 14:52           ` Stephen Warren
2014-09-26 15:24             ` Tom Rini
2014-09-26 15:35               ` Stephen Warren
2014-09-26 18:33               ` Simon Glass
2014-10-02 13:09           ` Masahiro Yamada
2014-10-04  2:20             ` Simon Glass
2014-09-25 14:46 ` [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.