Kconfig: Migrate BOARD_LATE_INIT to a select

This option should not really be user selectable.  Note that on PowerPC
we currently only need BOARD_LATE_INIT when CHAIN_OF_TRUST is enabled so be
conditional on that.

Signed-off-by: Tom Rini <trini@konsulko.com>
Acked-by: Masahiro Yamada <yamada.masahiro@socionext.com> (for UniPhier)
diff --git a/arch/Kconfig b/arch/Kconfig
index ffc7b45..bb1a818 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -60,6 +60,7 @@
 
 config SANDBOX
 	bool "Sandbox"
+	select BOARD_LATE_INIT
 	select SUPPORT_OF_CONTROL
 	select DM
 	select DM_KEYBOARD
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 1f59679..30f0925 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -224,10 +224,12 @@
 
 config TARGET_MX25PDK
 	bool "Support mx25pdk"
+	select BOARD_LATE_INIT
 	select CPU_ARM926EJS
 
 config TARGET_ZMX25
 	bool "Support zmx25"
+	select BOARD_LATE_INIT
 	select CPU_ARM926EJS
 
 config TARGET_APF27
@@ -311,6 +313,7 @@
 
 config TARGET_X600
 	bool "Support x600"
+	select BOARD_LATE_INIT
 	select CPU_ARM926EJS
 	select SUPPORT_SPL
 
@@ -320,6 +323,7 @@
 
 config TARGET_IMX31_PHYCORE_EET
 	bool "Support imx31_phycore_eet"
+	select BOARD_LATE_INIT
 	select CPU_ARM1136
 
 config TARGET_MX31ADS
@@ -328,6 +332,7 @@
 
 config TARGET_MX31PDK
 	bool "Support mx31pdk"
+	select BOARD_LATE_INIT
 	select CPU_ARM1136
 	select SUPPORT_SPL
 
@@ -346,6 +351,7 @@
 
 config TARGET_MX35PDK
 	bool "Support mx35pdk"
+	select BOARD_LATE_INIT
 	select CPU_ARM1136
 
 config ARCH_BCM283X
@@ -372,14 +378,17 @@
 config TARGET_BRXRE1
 	bool "Support BRXRE1"
 	select ARCH_OMAP2
+	select BOARD_LATE_INIT
 
 config TARGET_BRPPT1
 	bool "Support BRPPT1"
 	select ARCH_OMAP2
+	select BOARD_LATE_INIT
 
 config TARGET_DRACO
 	bool "Support draco"
 	select ARCH_OMAP2
+	select BOARD_LATE_INIT
 	select DM
 	select DM_SERIAL
 	select DM_GPIO
@@ -387,6 +396,7 @@
 config TARGET_THUBAN
 	bool "Support thuban"
 	select ARCH_OMAP2
+	select BOARD_LATE_INIT
 	select DM
 	select DM_SERIAL
 	select DM_GPIO
@@ -394,6 +404,7 @@
 config TARGET_RASTABAN
 	bool "Support rastaban"
 	select ARCH_OMAP2
+	select BOARD_LATE_INIT
 	select DM
 	select DM_SERIAL
 	select DM_GPIO
@@ -401,6 +412,7 @@
 config TARGET_ETAMIN
 	bool "Support etamin"
 	select ARCH_OMAP2
+	select BOARD_LATE_INIT
 	select DM
 	select DM_SERIAL
 	select DM_GPIO
@@ -408,6 +420,7 @@
 config TARGET_PXM2
 	bool "Support pxm2"
 	select ARCH_OMAP2
+	select BOARD_LATE_INIT
 	select DM
 	select DM_SERIAL
 	select DM_GPIO
@@ -415,6 +428,7 @@
 config TARGET_RUT
 	bool "Support rut"
 	select ARCH_OMAP2
+	select BOARD_LATE_INIT
 	select DM
 	select DM_SERIAL
 	select DM_GPIO
@@ -508,6 +522,7 @@
 
 config TARGET_MX51EVK
 	bool "Support mx51evk"
+	select BOARD_LATE_INIT
 	select CPU_V7
 
 config TARGET_MX53ARD
@@ -516,10 +531,12 @@
 
 config TARGET_MX53EVK
 	bool "Support mx53evk"
+	select BOARD_LATE_INIT
 	select CPU_V7
 
 config TARGET_MX53LOCO
 	bool "Support mx53loco"
+	select BOARD_LATE_INIT
 	select CPU_V7
 
 config TARGET_MX53SMD
@@ -634,6 +651,7 @@
 
 config TARGET_COLIBRI_VF
 	bool "Support Colibri VF50/61"
+	select BOARD_LATE_INIT
 	select CPU_V7
 	select SYS_FSL_ERRATUM_ESDHC111
 
@@ -653,6 +671,7 @@
 
 config ARCH_ZYNQ
 	bool "Xilinx Zynq Platform"
+	select BOARD_LATE_INIT
 	select CPU_V7
 	select SUPPORT_SPL
 	select OF_CONTROL
@@ -673,6 +692,7 @@
 config ARCH_ZYNQMP
 	bool "Support Xilinx ZynqMP Platform"
 	select ARM64
+	select BOARD_LATE_INIT
 	select DM
 	select OF_CONTROL
 	select DM_SERIAL
@@ -733,6 +753,7 @@
 	select ARCH_LS2080A
 	select ARM64
 	select ARMV8_MULTIENTRY
+	select BOARD_LATE_INIT
 	select SUPPORT_SPL
 	help
 	  Support for Freescale LS2080AQDS platform
@@ -745,6 +766,7 @@
 	select ARCH_LS2080A
 	select ARM64
 	select ARMV8_MULTIENTRY
+	select BOARD_LATE_INIT
 	select SUPPORT_SPL
 	help
 	  Support for Freescale LS2080ARDB platform.
@@ -767,6 +789,7 @@
 	bool "Support ls1012aqds"
 	select ARCH_LS1012A
 	select ARM64
+	select BOARD_LATE_INIT
 	help
 	  Support for Freescale LS1012AQDS platform.
 	  The LS1012A Development System (QDS) is a high-performance
@@ -777,6 +800,7 @@
 	bool "Support ls1012ardb"
 	select ARCH_LS1012A
 	select ARM64
+	select BOARD_LATE_INIT
 	help
 	  Support for Freescale LS1012ARDB platform.
 	  The LS1012A Reference design board (RDB) is a high-performance
@@ -795,6 +819,7 @@
 
 config TARGET_LS1021AQDS
 	bool "Support ls1021aqds"
+	select BOARD_LATE_INIT
 	select CPU_V7
 	select CPU_V7_HAS_NONSEC
 	select CPU_V7_HAS_VIRT
@@ -806,6 +831,7 @@
 
 config TARGET_LS1021ATWR
 	bool "Support ls1021atwr"
+	select BOARD_LATE_INIT
 	select CPU_V7
 	select CPU_V7_HAS_NONSEC
 	select CPU_V7_HAS_VIRT
@@ -816,6 +842,7 @@
 
 config TARGET_LS1021AIOT
 	bool "Support ls1021aiot"
+	select BOARD_LATE_INIT
 	select CPU_V7
 	select CPU_V7_HAS_NONSEC
 	select CPU_V7_HAS_VIRT
@@ -833,6 +860,7 @@
 	select ARCH_LS1043A
 	select ARM64
 	select ARMV8_MULTIENTRY
+	select BOARD_LATE_INIT
 	select SUPPORT_SPL
 	help
 	  Support for Freescale LS1043AQDS platform.
@@ -842,6 +870,7 @@
 	select ARCH_LS1043A
 	select ARM64
 	select ARMV8_MULTIENTRY
+	select BOARD_LATE_INIT
 	select SUPPORT_SPL
 	help
 	  Support for Freescale LS1043ARDB platform.
@@ -851,6 +880,7 @@
 	select ARCH_LS1046A
 	select ARM64
 	select ARMV8_MULTIENTRY
+	select BOARD_LATE_INIT
 	select SUPPORT_SPL
 	select DM_SPI_FLASH if DM_SPI
 	help
@@ -864,6 +894,7 @@
 	select ARCH_LS1046A
 	select ARM64
 	select ARMV8_MULTIENTRY
+	select BOARD_LATE_INIT
 	select SUPPORT_SPL
 	select DM_SPI_FLASH if DM_SPI
 	select POWER_MC34VR500
@@ -887,6 +918,7 @@
 
 config ARCH_UNIPHIER
 	bool "Socionext UniPhier SoCs"
+	select BOARD_LATE_INIT
 	select CLK_UNIPHIER
 	select DM
 	select DM_GPIO
diff --git a/arch/arm/cpu/armv7/mx5/Kconfig b/arch/arm/cpu/armv7/mx5/Kconfig
index 5fb5513..7b55747 100644
--- a/arch/arm/cpu/armv7/mx5/Kconfig
+++ b/arch/arm/cpu/armv7/mx5/Kconfig
@@ -20,6 +20,7 @@
 
 config TARGET_MX53CX9020
 	bool "Support CX9020"
+	select BOARD_LATE_INIT
 	select CPU_V7
 	select MX53
 	select DM
diff --git a/arch/arm/cpu/armv7/mx6/Kconfig b/arch/arm/cpu/armv7/mx6/Kconfig
index c646966..b8dc5c8 100644
--- a/arch/arm/cpu/armv7/mx6/Kconfig
+++ b/arch/arm/cpu/armv7/mx6/Kconfig
@@ -53,10 +53,12 @@
 
 config TARGET_ADVANTECH_DMS_BA16
 	bool "Advantech dms-ba16"
+	select BOARD_LATE_INIT
 	select MX6Q
 
 config TARGET_APALIS_IMX6
 	bool "Toradex Apalis iMX6 board"
+	select BOARD_LATE_INIT
 	select SUPPORT_SPL
 	select DM
 	select DM_SERIAL
@@ -67,12 +69,15 @@
 
 config TARGET_ARISTAINETOS2
 	bool "aristainetos2"
+	select BOARD_LATE_INIT
 
 config TARGET_ARISTAINETOS2B
 	bool "Support aristainetos2-revB"
+	select BOARD_LATE_INIT
 
 config TARGET_CGTQMX6EVAL
 	bool "cgtqmx6eval"
+	select BOARD_LATE_INIT
 	select SUPPORT_SPL
 	select DM
 	select DM_THERMAL
@@ -86,6 +91,7 @@
 
 config TARGET_COLIBRI_IMX6
 	bool "Toradex Colibri iMX6 board"
+	select BOARD_LATE_INIT
 	select SUPPORT_SPL
 	select DM
 	select DM_SERIAL
@@ -93,17 +99,21 @@
 
 config TARGET_EMBESTMX6BOARDS
 	bool "embestmx6boards"
+	select BOARD_LATE_INIT
 
 config TARGET_GE_B450V3
 	bool "General Electric B450v3"
+	select BOARD_LATE_INIT
 	select MX6Q
 
 config TARGET_GE_B650V3
 	bool "General Electric B650v3"
+	select BOARD_LATE_INIT
 	select MX6Q
 
 config TARGET_GE_B850V3
 	bool "General Electric B850v3"
+	select BOARD_LATE_INIT
 	select MX6Q
 
 config TARGET_GW_VENTANA
@@ -112,10 +122,12 @@
 
 config TARGET_KOSAGI_NOVENA
 	bool "Kosagi Novena"
+	select BOARD_LATE_INIT
 	select SUPPORT_SPL
 
 config TARGET_MX6CUBOXI
 	bool "Solid-run mx6 boards"
+	select BOARD_LATE_INIT
 	select SUPPORT_SPL
 
 config TARGET_MX6QARM2
@@ -147,11 +159,13 @@
 
 config TARGET_MX6QSABREAUTO
 	bool "mx6qsabreauto"
+	select BOARD_LATE_INIT
 	select DM
 	select DM_THERMAL
 
 config TARGET_MX6SABRESD
 	bool "mx6sabresd"
+	select BOARD_LATE_INIT
 	select SUPPORT_SPL
 	select DM
 	select DM_THERMAL
@@ -162,6 +176,7 @@
 
 config TARGET_MX6SLLEVK
         bool "mx6sll evk"
+	select BOARD_LATE_INIT
         select MX6SLL
         select DM
         select DM_THERMAL
@@ -175,18 +190,21 @@
 
 config TARGET_MX6SXSABREAUTO
         bool "mx6sxsabreauto"
+	select BOARD_LATE_INIT
 	select MX6SX
         select DM
         select DM_THERMAL
 
 config TARGET_MX6UL_9X9_EVK
 	bool "mx6ul_9x9_evk"
+	select BOARD_LATE_INIT
 	select MX6UL
 	select DM
 	select DM_THERMAL
 	select SUPPORT_SPL
 
 config TARGET_MX6UL_14X14_EVK
+	select BOARD_LATE_INIT
 	bool "mx6ul_14x14_evk"
 	select MX6UL
 	select DM
@@ -207,6 +225,7 @@
 
 config TARGET_MX6ULL_14X14_EVK
 	bool "Support mx6ull_14x14_evk"
+	select BOARD_LATE_INIT
 	select MX6ULL
 	select DM
 	select DM_THERMAL
@@ -224,6 +243,7 @@
 
 config TARGET_LITEBOARD
 	bool "Grinn liteBoard (i.MX6UL)"
+	select BOARD_LATE_INIT
 	select LITESOM
 
 config TARGET_PLATINUM_PICON
@@ -236,6 +256,7 @@
 
 config TARGET_PCM058
 	bool "Phytec PCM058 i.MX6 Quad"
+	select BOARD_LATE_INIT
 	select SUPPORT_SPL
 
 config TARGET_SECOMX6
@@ -249,13 +270,16 @@
 
 config TARGET_TQMA6
 	bool "TQ Systems TQMa6 board"
+	select BOARD_LATE_INIT
 
 config TARGET_UDOO
 	bool "udoo"
+	select BOARD_LATE_INIT
 	select SUPPORT_SPL
 
 config TARGET_UDOO_NEO
 	bool "UDOO Neo"
+	select BOARD_LATE_INIT
 	select SUPPORT_SPL
 	select MX6SX
 	select DM
@@ -263,19 +287,23 @@
 
 config TARGET_SAMTEC_VINING_2000
 	bool "samtec VIN|ING 2000"
+	select BOARD_LATE_INIT
 	select MX6SX
 	select DM
 	select DM_THERMAL
 
 config TARGET_WANDBOARD
 	bool "wandboard"
+	select BOARD_LATE_INIT
 	select SUPPORT_SPL
 
 config TARGET_WARP
 	bool "WaRP"
+	select BOARD_LATE_INIT
 
 config TARGET_XPRESS
 	bool "CCV xPress"
+	select BOARD_LATE_INIT
 	select MX6UL
 	select DM
 	select DM_THERMAL
@@ -283,12 +311,14 @@
 
 config TARGET_ZC5202
 	bool "zc5202"
+	select BOARD_LATE_INIT
 	select SUPPORT_SPL
 	select DM
 	select DM_THERMAL
 
 config TARGET_ZC5601
 	bool "zc5601"
+	select BOARD_LATE_INIT
 	select SUPPORT_SPL
 	select DM
 	select DM_THERMAL
diff --git a/arch/arm/cpu/armv7/mx7/Kconfig b/arch/arm/cpu/armv7/mx7/Kconfig
index fb00b8c..8dfb4c9 100644
--- a/arch/arm/cpu/armv7/mx7/Kconfig
+++ b/arch/arm/cpu/armv7/mx7/Kconfig
@@ -18,18 +18,21 @@
 
 config TARGET_MX7DSABRESD
 	bool "mx7dsabresd"
+	select BOARD_LATE_INIT
 	select MX7D
 	select DM
 	select DM_THERMAL
 
 config TARGET_WARP7
 	bool "warp7"
+	select BOARD_LATE_INIT
 	select MX7D
 	select DM
 	select DM_THERMAL
 
 config TARGET_COLIBRI_IMX7
 	bool "Support Colibri iMX7S/iMX7D modules"
+	select BOARD_LATE_INIT
 	select DM
 	select DM_SERIAL
 	select DM_THERMAL
diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
index 13e19ba..642936b 100644
--- a/arch/arm/mach-at91/Kconfig
+++ b/arch/arm/mach-at91/Kconfig
@@ -25,6 +25,7 @@
 
 config TARGET_GURNARD
 	bool "Support gurnard"
+	select BOARD_LATE_INIT
 	select CPU_ARM926EJS
 	select DM
 	select DM_SERIAL
@@ -96,6 +97,7 @@
 
 config TARGET_SAMA5D3XEK
 	bool "SAMA5D3X-EK board"
+	select BOARD_LATE_INIT
 	select CPU_V7
 	select SUPPORT_SPL
 
diff --git a/arch/arm/mach-davinci/Kconfig b/arch/arm/mach-davinci/Kconfig
index c593dad..4757f24 100644
--- a/arch/arm/mach-davinci/Kconfig
+++ b/arch/arm/mach-davinci/Kconfig
@@ -18,6 +18,7 @@
 
 config TARGET_EA20
 	bool "EA20 board"
+	select BOARD_LATE_INIT
 
 config TARGET_OMAPL138_LCDK
 	bool "OMAPL138 LCDK"
diff --git a/arch/arm/mach-kirkwood/Kconfig b/arch/arm/mach-kirkwood/Kconfig
index 9c24921..ddfae8c 100644
--- a/arch/arm/mach-kirkwood/Kconfig
+++ b/arch/arm/mach-kirkwood/Kconfig
@@ -33,6 +33,7 @@
 
 config TARGET_KM_KIRKWOOD
 	bool "KM_KIRKWOOD Board"
+	select BOARD_LATE_INIT
 
 config TARGET_NET2BIG_V2
 	bool "LaCie 2Big Network v2 NAS Board"
diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
index 40476dc..f005277 100644
--- a/arch/arm/mach-mvebu/Kconfig
+++ b/arch/arm/mach-mvebu/Kconfig
@@ -86,6 +86,7 @@
 config TARGET_MVEBU_ARMADA_8K
 	bool "Support Armada 7k/8k platforms"
 	select ARMADA_8K
+	select BOARD_LATE_INIT
 
 config TARGET_DB_MV784MP_GP
 	bool "Support db-mv784mp-gp"
@@ -101,6 +102,7 @@
 
 config TARGET_THEADORABLE
 	bool "Support theadorable Armada XP"
+	select BOARD_LATE_INIT if USB
 	select MV78260
 
 endchoice
diff --git a/arch/arm/mach-omap2/am33xx/Kconfig b/arch/arm/mach-omap2/am33xx/Kconfig
index 56c4406..ae1c3cf 100644
--- a/arch/arm/mach-omap2/am33xx/Kconfig
+++ b/arch/arm/mach-omap2/am33xx/Kconfig
@@ -6,6 +6,7 @@
 
 config TARGET_AM335X_EVM
 	bool "Support am335x_evm"
+	select BOARD_LATE_INIT
 	select DM
 	select DM_SERIAL
 	select DM_GPIO
@@ -20,6 +21,7 @@
 
 config TARGET_AM335X_BALTOS
 	bool "Support am335x_baltos"
+	select BOARD_LATE_INIT
 	select DM
 	select DM_SERIAL
 	select DM_GPIO
@@ -32,18 +34,21 @@
 
 config TARGET_AM335X_SHC
 	bool "Support am335x based shc board from bosch"
+	select BOARD_LATE_INIT
 	select DM
 	select DM_SERIAL
 	select DM_GPIO
 
 config TARGET_AM335X_SL50
 	bool "Support am335x_sl50"
+	select BOARD_LATE_INIT
 	select DM
 	select DM_SERIAL
 	select DM_GPIO
 
 config TARGET_BAV335X
 	bool "Support bav335x"
+	select BOARD_LATE_INIT
 	select DM
 	select DM_SERIAL
 	help
@@ -96,6 +101,7 @@
 
 config TARGET_AM43XX_EVM
 	bool "Support am43xx_evm"
+	select BOARD_LATE_INIT
 	select TI_I2C_BOARD_DETECT
 	help
 	  This option specifies support for the AM43xx
diff --git a/arch/arm/mach-omap2/omap3/Kconfig b/arch/arm/mach-omap2/omap3/Kconfig
index 7d884a2..4a7957f 100644
--- a/arch/arm/mach-omap2/omap3/Kconfig
+++ b/arch/arm/mach-omap2/omap3/Kconfig
@@ -96,9 +96,11 @@
 
 config TARGET_MCX
 	bool "MCX"
+	select BOARD_LATE_INIT
 
 config TARGET_OMAP3_LOGIC
 	bool "OMAP3 Logic"
+	select BOARD_LATE_INIT
 	select DM
 	select DM_SERIAL
 	select DM_GPIO
diff --git a/arch/arm/mach-omap2/omap5/Kconfig b/arch/arm/mach-omap2/omap5/Kconfig
index 242d1ee..c5edc7c 100644
--- a/arch/arm/mach-omap2/omap5/Kconfig
+++ b/arch/arm/mach-omap2/omap5/Kconfig
@@ -51,11 +51,13 @@
 
 config TARGET_DRA7XX_EVM
 	bool "TI DRA7XX"
+	select BOARD_LATE_INIT
 	select TI_I2C_BOARD_DETECT
 	select PHYS_64BIT
 
 config TARGET_AM57XX_EVM
 	bool "AM57XX"
+	select BOARD_LATE_INIT
 	select TI_I2C_BOARD_DETECT
 
 endchoice
diff --git a/arch/arm/mach-rockchip/rk3036/Kconfig b/arch/arm/mach-rockchip/rk3036/Kconfig
index 9263608..c63db34 100644
--- a/arch/arm/mach-rockchip/rk3036/Kconfig
+++ b/arch/arm/mach-rockchip/rk3036/Kconfig
@@ -2,9 +2,11 @@
 
 config TARGET_EVB_RK3036
 	bool "EVB_RK3036"
+	select BOARD_LATE_INIT
 
 config TARGET_KYLIN_RK3036
 	bool "KYLIN_RK3036"
+	select BOARD_LATE_INIT
 
 config SYS_SOC
 	default "rockchip"
diff --git a/arch/arm/mach-rockchip/rk3288/Kconfig b/arch/arm/mach-rockchip/rk3288/Kconfig
index 54545f3..35d8dbf 100644
--- a/arch/arm/mach-rockchip/rk3288/Kconfig
+++ b/arch/arm/mach-rockchip/rk3288/Kconfig
@@ -2,6 +2,7 @@
 
 config TARGET_FIREFLY_RK3288
 	bool "Firefly-RK3288"
+	select BOARD_LATE_INIT
 	help
 	  Firefly is a RK3288-based development board with 2 USB ports,
 	  HDMI, VGA, micro-SD card, audio, WiFi  and Gigabit Ethernet, It
@@ -10,6 +11,7 @@
 
 config TARGET_EVB_RK3288
 	bool "Evb-RK3288"
+	select BOARD_LATE_INIT
 	help
 	  EVB-RK3288 is a RK3288-based development board with 2 USB ports,
 	  HDMI, VGA, micro-SD card, audio, WiFi  and Gigabit Ethernet, It
@@ -18,6 +20,7 @@
 
 config TARGET_FENNEC_RK3288
 	bool "Fennec-RK3288"
+	select BOARD_LATE_INIT
 	help
 	  Fennec is a RK3288-based development board with 2 USB ports,
 	  HDMI, micro-SD card, audio, WiFi and Gigabit Ethernet. It also
@@ -26,6 +29,7 @@
 
 config TARGET_POPMETAL_RK3288
 	bool "PopMetal-RK3288"
+	select BOARD_LATE_INIT
 	help
 	  PopMetal is a RK3288-based development board with 3 USB host ports,
 	  1 micro USB OTG port, HDMI, VGA, micro-SD card, audio, WiFi, Gigabit
@@ -35,6 +39,7 @@
 
 config TARGET_MINIARM_RK3288
 	bool "miniarm-RK3288"
+	select BOARD_LATE_INIT
 	help
 	  Miniarm is a RK3288-based development board with 2 USB ports, HDMI,
 	  micro-SD card, audio, Gigabit Ethernet. It also includes on-board
@@ -43,6 +48,7 @@
 
 config TARGET_CHROMEBOOK_JERRY
 	bool "Google/Rockchip Veyron-Jerry Chromebook"
+	select BOARD_LATE_INIT
 	help
 	  Jerry is a RK3288-based clamshell device with 2 USB 3.0 ports,
 	  HDMI, an 11.9 inch EDP display, micro-SD card, touchpad and
@@ -51,6 +57,7 @@
 
 config TARGET_CHROMEBIT_MICKEY
 	bool "Google/Rockchip Veyron-Mickey Chromebit"
+	select BOARD_LATE_INIT
 	help
 	  Mickey is a small RK3288-based device with one USB 3.0 port, HDMI
 	  and WiFi. It has a separate power port and is designed to connect
@@ -60,6 +67,7 @@
 
 config TARGET_CHROMEBOOK_MINNIE
 	bool "Google/Rockchip Veyron-Minnie Chromebook"
+	select BOARD_LATE_INIT
 	help
 	  Minnie is a RK3288-based convertible clamshell device with 2 USB 3.0
 	  ports, micro HDMI, a 10.1-inch 1280x800 EDP display, micro-SD card,
@@ -70,6 +78,7 @@
 
 config TARGET_ROCK2
 	bool "Radxa Rock 2"
+	select BOARD_LATE_INIT
 	help
 	  Rock 2 is a SOM and base-board combination based on RK3288. It
 	  includes Ethernet, HDMI, 3 USB, micro-SD, audio, SATA, WiFi and
diff --git a/arch/arm/mach-socfpga/Kconfig b/arch/arm/mach-socfpga/Kconfig
index 6991af8..df9e8d4 100644
--- a/arch/arm/mach-socfpga/Kconfig
+++ b/arch/arm/mach-socfpga/Kconfig
@@ -64,6 +64,7 @@
 
 config TARGET_SOCFPGA_SAMTEC_VINING_FPGA
 	bool "samtec VIN|ING FPGA (Cyclone V)"
+	select BOARD_LATE_INIT
 	select TARGET_SOCFPGA_CYCLONE5
 
 config TARGET_SOCFPGA_SR1500
diff --git a/arch/arm/mach-tegra/tegra114/Kconfig b/arch/arm/mach-tegra/tegra114/Kconfig
index 1047b92..5f0f909 100644
--- a/arch/arm/mach-tegra/tegra114/Kconfig
+++ b/arch/arm/mach-tegra/tegra114/Kconfig
@@ -6,6 +6,7 @@
 
 config TARGET_DALMORE
 	bool "NVIDIA Tegra114 Dalmore evaluation board"
+	select BOARD_LATE_INIT
 
 endchoice
 
diff --git a/arch/arm/mach-tegra/tegra124/Kconfig b/arch/arm/mach-tegra/tegra124/Kconfig
index df77462..ca96a26 100644
--- a/arch/arm/mach-tegra/tegra124/Kconfig
+++ b/arch/arm/mach-tegra/tegra124/Kconfig
@@ -6,12 +6,14 @@
 
 config TARGET_JETSON_TK1
 	bool "NVIDIA Tegra124 Jetson TK1 board"
+	select BOARD_LATE_INIT
 	select CPU_V7_HAS_NONSEC
 	select CPU_V7_HAS_VIRT
 	select ARCH_SUPPORT_PSCI
 
 config TARGET_CEI_TK1_SOM
 	bool "Colorado Engineering Inc Tegra124 TK1-som board"
+	select BOARD_LATE_INIT
 	select CPU_V7_HAS_NONSEC if !SPL_BUILD
 	select CPU_V7_HAS_VIRT if !SPL_BUILD
 	help
@@ -23,6 +25,7 @@
 
 config TARGET_NYAN_BIG
 	bool "Google/NVIDIA Nyan-big Chromebook"
+	select BOARD_LATE_INIT
 	help
 	  Nyan Big is a Tegra124 clamshell board that is very similar
 	  to venice2, but it has a different panel, the sdcard CD and WP
@@ -32,6 +35,7 @@
 
 config TARGET_VENICE2
 	bool "NVIDIA Tegra124 Venice2"
+	select BOARD_LATE_INIT
 
 endchoice
 
diff --git a/arch/arm/mach-tegra/tegra186/Kconfig b/arch/arm/mach-tegra/tegra186/Kconfig
index 97cf23f..b2e53b5 100644
--- a/arch/arm/mach-tegra/tegra186/Kconfig
+++ b/arch/arm/mach-tegra/tegra186/Kconfig
@@ -9,6 +9,7 @@
 
 config TARGET_P2771_0000
 	bool "NVIDIA Tegra186 P2771-0000 board"
+	select BOARD_LATE_INIT
 	help
 	  P2771-0000 is a P3310 CPU board married to a P2597 I/O board. The
 	  combination contains SoC, DRAM, eMMC, SD card slot, HDMI, USB
diff --git a/arch/arm/mach-tegra/tegra20/Kconfig b/arch/arm/mach-tegra/tegra20/Kconfig
index 1bb8dff..99445a4 100644
--- a/arch/arm/mach-tegra/tegra20/Kconfig
+++ b/arch/arm/mach-tegra/tegra20/Kconfig
@@ -6,33 +6,43 @@
 
 config TARGET_HARMONY
 	bool "NVIDIA Tegra20 Harmony evaluation board"
+	select BOARD_LATE_INIT
 
 config TARGET_MEDCOM_WIDE
 	bool "Avionic Design Medcom-Wide board"
+	select BOARD_LATE_INIT
 
 config TARGET_PAZ00
 	bool "Paz00 board"
+	select BOARD_LATE_INIT
 
 config TARGET_PLUTUX
 	bool "Avionic Design Plutux board"
+	select BOARD_LATE_INIT
 
 config TARGET_SEABOARD
 	bool "NVIDIA Seaboard"
+	select BOARD_LATE_INIT
 
 config TARGET_TEC
 	bool "Avionic Design Tamonten Evaluation Carrier"
+	select BOARD_LATE_INIT
 
 config TARGET_TRIMSLICE
 	bool "Compulab TrimSlice board"
+	select BOARD_LATE_INIT
 
 config TARGET_VENTANA
 	bool "NVIDIA Tegra20 Ventana evaluation board"
+	select BOARD_LATE_INIT
 
 config TARGET_WHISTLER
 	bool "NVIDIA Tegra20 Whistler evaluation board"
+	select BOARD_LATE_INIT
 
 config TARGET_COLIBRI_T20
 	bool "Toradex Colibri T20 board"
+	select BOARD_LATE_INIT
 
 endchoice
 
diff --git a/arch/arm/mach-tegra/tegra210/Kconfig b/arch/arm/mach-tegra/tegra210/Kconfig
index 055fb12..3637473 100644
--- a/arch/arm/mach-tegra/tegra210/Kconfig
+++ b/arch/arm/mach-tegra/tegra210/Kconfig
@@ -5,6 +5,7 @@
 
 config TARGET_E2220_1170
 	bool "NVIDIA Tegra210 E2220-1170 board"
+	select BOARD_LATE_INIT
 	help
 	  E2220-1170 is a Tegra210 bringup board with onboard SoC, DRAM,
 	  eMMC, SD card slot, HDMI, USB micro-B port, and sockets for various
@@ -12,6 +13,7 @@
 
 config TARGET_P2371_0000
 	bool "NVIDIA Tegra210 P2371-0000 board"
+	select BOARD_LATE_INIT
 	help
 	  P2371-0000 is a P2581 or P2530 CPU board married to a P2595 I/O
 	  board. The combination contains SoC, DRAM, eMMC, SD card slot,
@@ -20,6 +22,7 @@
 
 config TARGET_P2371_2180
 	bool "NVIDIA Tegra210 P2371-2180 (Jetson TX1) board"
+	select BOARD_LATE_INIT
 	help
 	  P2371-2180 (Jetson TX1 developer kit) is a P2180 CPU board married
 	  to a P2597 I/O board. The combination contains SoC, DRAM, eMMC, SD
@@ -28,6 +31,7 @@
 
 config TARGET_P2571
 	bool "NVIDIA Tegra210 P2571 base board"
+	select BOARD_LATE_INIT
 	help
 	  P2571 is a P2530 married to a P1963 I/O board
 
diff --git a/arch/arm/mach-tegra/tegra30/Kconfig b/arch/arm/mach-tegra/tegra30/Kconfig
index e78331e..85b8ce2 100644
--- a/arch/arm/mach-tegra/tegra30/Kconfig
+++ b/arch/arm/mach-tegra/tegra30/Kconfig
@@ -6,18 +6,23 @@
 
 config TARGET_APALIS_T30
 	bool "Toradex Apalis T30 board"
+	select BOARD_LATE_INIT
 
 config TARGET_BEAVER
 	bool "NVIDIA Tegra30 Beaver evaluation board"
+	select BOARD_LATE_INIT
 
 config TARGET_CARDHU
 	bool "NVIDIA Tegra30 Cardhu evaluation board"
+	select BOARD_LATE_INIT
 
 config TARGET_COLIBRI_T30
 	bool "Toradex Colibri T30 board"
+	select BOARD_LATE_INIT
 
 config TARGET_TEC_NG
 	bool "Avionic Design TEC-NG board"
+	select BOARD_LATE_INIT
 
 endchoice
 
diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig
index 30ea484..80d85e4 100644
--- a/arch/microblaze/Kconfig
+++ b/arch/microblaze/Kconfig
@@ -10,6 +10,7 @@
 
 config TARGET_MICROBLAZE_GENERIC
 	bool "Support microblaze-generic"
+	select BOARD_LATE_INIT
 	select SUPPORT_SPL
 	select OF_CONTROL
 	select DM
diff --git a/arch/powerpc/cpu/mpc85xx/Kconfig b/arch/powerpc/cpu/mpc85xx/Kconfig
index 704f65b..00dd3c1 100644
--- a/arch/powerpc/cpu/mpc85xx/Kconfig
+++ b/arch/powerpc/cpu/mpc85xx/Kconfig
@@ -25,6 +25,7 @@
 config TARGET_B4860QDS
 	bool "Support B4860QDS"
 	select ARCH_B4860
+	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select SUPPORT_SPL
 	select PHYS_64BIT
 
@@ -36,11 +37,13 @@
 config TARGET_BSC9132QDS
 	bool "Support BSC9132QDS"
 	select ARCH_BSC9132
+	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select SUPPORT_SPL
 
 config TARGET_C29XPCIE
 	bool "Support C29XPCIE"
 	select ARCH_C29X
+	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select SUPPORT_SPL
 	select SUPPORT_TPL
 	select PHYS_64BIT
@@ -49,21 +52,25 @@
 	bool "Support P3041DS"
 	select PHYS_64BIT
 	select ARCH_P3041
+	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 
 config TARGET_P4080DS
 	bool "Support P4080DS"
 	select PHYS_64BIT
 	select ARCH_P4080
+	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 
 config TARGET_P5020DS
 	bool "Support P5020DS"
 	select PHYS_64BIT
 	select ARCH_P5020
+	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 
 config TARGET_P5040DS
 	bool "Support P5040DS"
 	select PHYS_64BIT
 	select ARCH_P5040
+	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 
 config TARGET_MPC8536DS
 	bool "Support MPC8536DS"
@@ -112,12 +119,14 @@
 config TARGET_P1010RDB_PA
 	bool "Support P1010RDB_PA"
 	select ARCH_P1010
+	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select SUPPORT_SPL
 	select SUPPORT_TPL
 
 config TARGET_P1010RDB_PB
 	bool "Support P1010RDB_PB"
 	select ARCH_P1010
+	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select SUPPORT_SPL
 	select SUPPORT_TPL
 
@@ -186,6 +195,7 @@
 config TARGET_P2041RDB
 	bool "Support P2041RDB"
 	select ARCH_P2041
+	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select PHYS_64BIT
 
 config TARGET_QEMU_PPCE500
@@ -196,65 +206,76 @@
 config TARGET_T1024QDS
 	bool "Support T1024QDS"
 	select ARCH_T1024
+	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select SUPPORT_SPL
 	select PHYS_64BIT
 
 config TARGET_T1023RDB
 	bool "Support T1023RDB"
 	select ARCH_T1023
+	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select SUPPORT_SPL
 	select PHYS_64BIT
 
 config TARGET_T1024RDB
 	bool "Support T1024RDB"
 	select ARCH_T1024
+	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select SUPPORT_SPL
 	select PHYS_64BIT
 
 config TARGET_T1040QDS
 	bool "Support T1040QDS"
 	select ARCH_T1040
+	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select PHYS_64BIT
 
 config TARGET_T1040RDB
 	bool "Support T1040RDB"
 	select ARCH_T1040
+	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select SUPPORT_SPL
 	select PHYS_64BIT
 
 config TARGET_T1040D4RDB
 	bool "Support T1040D4RDB"
 	select ARCH_T1040
+	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select SUPPORT_SPL
 	select PHYS_64BIT
 
 config TARGET_T1042RDB
 	bool "Support T1042RDB"
 	select ARCH_T1042
+	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select SUPPORT_SPL
 	select PHYS_64BIT
 
 config TARGET_T1042D4RDB
 	bool "Support T1042D4RDB"
 	select ARCH_T1042
+	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select SUPPORT_SPL
 	select PHYS_64BIT
 
 config TARGET_T1042RDB_PI
 	bool "Support T1042RDB_PI"
 	select ARCH_T1042
+	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select SUPPORT_SPL
 	select PHYS_64BIT
 
 config TARGET_T2080QDS
 	bool "Support T2080QDS"
 	select ARCH_T2080
+	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select SUPPORT_SPL
 	select PHYS_64BIT
 
 config TARGET_T2080RDB
 	bool "Support T2080RDB"
 	select ARCH_T2080
+	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select SUPPORT_SPL
 	select PHYS_64BIT
 
@@ -267,6 +288,7 @@
 config TARGET_T4160QDS
 	bool "Support T4160QDS"
 	select ARCH_T4160
+	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select SUPPORT_SPL
 	select PHYS_64BIT
 
@@ -279,6 +301,7 @@
 config TARGET_T4240QDS
 	bool "Support T4240QDS"
 	select ARCH_T4240
+	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select SUPPORT_SPL
 	select PHYS_64BIT