From: Jagan Teki <ja...@amarulasolutions.com>

Add runtime, modeboot env which is setting mmcboot, or
nandboot based on the bootdevice so-that conditional
macros b/w MMC and NAND for CONFIG_BOOTCOMMAND should
be avoided in config files.

Cc: Matteo Lisi <matteo.l...@engicam.com>
Cc: Michael Trimarchi <mich...@amarulasolutions.com>
Reviewed by: Stefano Babic <sba...@denx.de>
Signed-off-by: Jagan Teki <ja...@amarulasolutions.com>
---
 board/engicam/isiotmx6ul/isiotmx6ul.c | 21 ++++++++++++++++++++
 configs/imx6ul_isiot_emmc_defconfig   |  1 +
 configs/imx6ul_isiot_mmc_defconfig    |  1 +
 configs/imx6ul_isiot_nand_defconfig   |  1 +
 include/configs/imx6ul_isiot.h        | 36 ++++++++++++++++-------------------
 5 files changed, 40 insertions(+), 20 deletions(-)

diff --git a/board/engicam/isiotmx6ul/isiotmx6ul.c 
b/board/engicam/isiotmx6ul/isiotmx6ul.c
index 9cde4fc..0e607e0 100644
--- a/board/engicam/isiotmx6ul/isiotmx6ul.c
+++ b/board/engicam/isiotmx6ul/isiotmx6ul.c
@@ -103,6 +103,27 @@ static void setup_gpmi_nand(void)
 }
 #endif /* CONFIG_NAND_MXS */
 
+int board_late_init(void)
+{
+       switch ((imx6_src_get_boot_mode() & IMX6_BMODE_MASK) >>
+                       IMX6_BMODE_SHIFT) {
+       case IMX6_BMODE_SD:
+       case IMX6_BMODE_ESD:
+       case IMX6_BMODE_MMC:
+       case IMX6_BMODE_EMMC:
+               setenv("modeboot", "mmcboot");
+               break;
+       case IMX6_BMODE_NAND:
+               setenv("modeboot", "nandboot");
+               break;
+       default:
+               setenv("modeboot", "");
+               break;
+       }
+
+       return 0;
+}
+
 int board_init(void)
 {
        /* Address of boot parameters */
diff --git a/configs/imx6ul_isiot_emmc_defconfig 
b/configs/imx6ul_isiot_emmc_defconfig
index 94fe808..4c3664f 100644
--- a/configs/imx6ul_isiot_emmc_defconfig
+++ b/configs/imx6ul_isiot_emmc_defconfig
@@ -37,3 +37,4 @@ CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX6=y
 CONFIG_MXC_UART=y
 CONFIG_IMX_THERMAL=y
+CONFIG_BOARD_LATE_INIT=y
diff --git a/configs/imx6ul_isiot_mmc_defconfig 
b/configs/imx6ul_isiot_mmc_defconfig
index 8ecdd8e..ea2d378 100644
--- a/configs/imx6ul_isiot_mmc_defconfig
+++ b/configs/imx6ul_isiot_mmc_defconfig
@@ -39,3 +39,4 @@ CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX6=y
 CONFIG_MXC_UART=y
 CONFIG_IMX_THERMAL=y
+CONFIG_BOARD_LATE_INIT=y
diff --git a/configs/imx6ul_isiot_nand_defconfig 
b/configs/imx6ul_isiot_nand_defconfig
index 6f1a054..f02a2ac 100644
--- a/configs/imx6ul_isiot_nand_defconfig
+++ b/configs/imx6ul_isiot_nand_defconfig
@@ -40,3 +40,4 @@ CONFIG_PINCTRL_IMX6=y
 CONFIG_SYS_I2C_MXC=y
 CONFIG_MXC_UART=y
 CONFIG_IMX_THERMAL=y
+CONFIG_BOARD_LATE_INIT=y
diff --git a/include/configs/imx6ul_isiot.h b/include/configs/imx6ul_isiot.h
index 1b0e436..7258fed 100644
--- a/include/configs/imx6ul_isiot.h
+++ b/include/configs/imx6ul_isiot.h
@@ -64,8 +64,7 @@
        "fitboot=echo Booting FIT image from mmc ...; " \
                "run mmcargs; " \
                "bootm ${loadaddr}\0" \
-       "mmcboot=echo Booting from mmc ...; " \
-               "run mmcargs; " \
+       "_mmcboot=run mmcargs; " \
                "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
                        "if run loadfdt; then " \
                                "bootm ${loadaddr} - ${fdt_addr}; " \
@@ -79,6 +78,20 @@
                "else " \
                        "bootm; " \
                "fi\0" \
+       "mmcboot=echo Booting from mmc ...; " \
+               "if mmc rescan; then " \
+                       "if run loadbootscript; then " \
+                               "run bootscript; " \
+                       "else " \
+                               "if run loadfit; then " \
+                                       "run fitboot; " \
+                               "else " \
+                                       "if run loadimage; then " \
+                                               "run _mmcboot; " \
+                                       "fi; " \
+                               "fi; " \
+                       "fi; " \
+               "fi\0" \
        "nandboot=echo Booting from nand ...; " \
                "if mtdparts; then " \
                        "echo Starting nand boot ...; " \
@@ -90,24 +103,7 @@
                "nand read ${fdt_addr} dtb 0x100000; " \
                "bootm ${loadaddr} - ${fdt_addr}\0"
 
-#ifdef CONFIG_NAND_MXS
-# define CONFIG_BOOTCOMMAND            "run nandboot"
-#else
-# define CONFIG_BOOTCOMMAND \
-       "if mmc rescan; then " \
-               "if run loadbootscript; then " \
-                       "run bootscript; " \
-               "else " \
-                       "if run loadfit; then " \
-                               "run fitboot; " \
-                       "else " \
-                               "if run loadimage; then " \
-                                       "run mmcboot; " \
-                               "fi; " \
-                       "fi; " \
-               "fi; " \
-       "fi"
-#endif
+#define CONFIG_BOOTCOMMAND             "run $modeboot"
 
 /* Miscellaneous configurable options */
 #define CONFIG_SYS_MEMTEST_START       0x80000000
-- 
1.9.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to