[U-Boot] [PATCH v3 09/10] kconfig: move CONFIG_OF_* to Kconfig

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

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>

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,

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

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

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!

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
But please see a request below:
[snip]
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.
Can you please add " This is suitable for debugging and development only and is not recommended for production devices."
+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
Regards, Simon

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

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

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.

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

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.

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.

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.

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.

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

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

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

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!
participants (5)
-
Masahiro Yamada
-
Michal Simek
-
Simon Glass
-
Stephen Warren
-
Tom Rini