[U-Boot] [PATCH 27/31] ARM: k2g: Update board_name u-boot env variable at runtime

Franklin S Cooper Jr fcooper at ti.com
Thu Mar 2 19:04:31 UTC 2017


Enable CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG to allow "board_name" to
be set depending on the board it is being ran on.

Update findfdt to use this new dynamic board_name value to determine
which dtb should be used.

Signed-off-by: Franklin S Cooper Jr <fcooper at ti.com>
---
 board/ti/ks2_evm/board_k2g.c | 13 +++++++++++++
 include/configs/k2g_evm.h    | 14 ++++++++++++--
 2 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/board/ti/ks2_evm/board_k2g.c b/board/ti/ks2_evm/board_k2g.c
index 0fbc64a..70164ee 100644
--- a/board/ti/ks2_evm/board_k2g.c
+++ b/board/ti/ks2_evm/board_k2g.c
@@ -198,6 +198,19 @@ int embedded_dtb_select(void)
 }
 #endif
 
+#ifdef CONFIG_BOARD_LATE_INIT
+int board_late_init(void)
+{
+#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
+	if (board_is_k2g_gp())
+		setenv("board_name", "66AK2GGP\0");
+	else if (board_is_k2g_ice())
+		setenv("board_name", "66AK2GIC\0");
+#endif
+	return 0;
+}
+#endif
+
 #ifdef CONFIG_BOARD_EARLY_INIT_F
 int board_early_init_f(void)
 {
diff --git a/include/configs/k2g_evm.h b/include/configs/k2g_evm.h
index bd25231..0d11e4e 100644
--- a/include/configs/k2g_evm.h
+++ b/include/configs/k2g_evm.h
@@ -13,6 +13,9 @@
 /* Platform type */
 #define CONFIG_SOC_K2G
 
+#define CONFIG_BOARD_LATE_INIT
+#define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
+
 /* U-Boot general configuration */
 #define CONFIG_EXTRA_ENV_KS2_BOARD_SETTINGS				\
 	DEFAULT_MMC_TI_ARGS						\
@@ -25,7 +28,14 @@
 	"rd_spec=-\0"							\
 	"args_ubi=setenv bootargs ${bootargs} rootfstype=ubifs "	\
 	"root=ubi0:rootfs rootflags=sync rw ubi.mtd=ubifs,2048\0"	\
-	"name_fdt=keystone-k2g-evm.dtb\0"				\
+	"findfdt="\
+		"if test $board_name = 66AK2GGP; then " \
+			 "setenv name_fdt keystone-k2g-evm.dtb; " \
+		"else if test $board_name = 66AK2GIC; then " \
+			 "setenv name_fdt keystone-k2g-ice.dtb; " \
+		"else if test $name_fdt = undefined; then " \
+			"echo WARNING: Could not determine device tree to use;"\
+		"fi;fi;fi;\0" \
 	"name_mon=skern-k2g.bin\0"					\
 	"name_ubi=k2g-evm-ubifs.ubi\0"					\
 	"name_uboot=u-boot-spi-k2g-evm.gph\0"				\
@@ -43,7 +53,7 @@
 	"run envboot; "							\
 	"run set_name_pmmc init_${boot} init_fw_rd_${boot} "		\
 	"get_pmmc_${boot} run_pmmc get_mon_${boot} run_mon "		\
-	"get_fdt_${boot} get_kern_${boot} run_kern"
+	"findfdt get_fdt_${boot} get_kern_${boot} run_kern"
 
 #include <configs/ti_armv7_keystone2.h>
 
-- 
2.10.0



More information about the U-Boot mailing list