diff mbox

[U-Boot,v3,08/15] i.MX6UL: isiot: Add mmc_late_init

Message ID 1486047373-31676-9-git-send-email-jagan@openedev.com
State Changes Requested
Delegated to: Stefano Babic
Headers show

Commit Message

Jagan Teki Feb. 2, 2017, 2:56 p.m. UTC
From: Jagan Teki <jagan@amarulasolutions.com>

Let the runtime code can set the mmcdev and mmcroot based
on the devno using mmc_get_env_dev instead of defining
separately in build-time configs using mmc_late_init func.

Cc: Stefano Babic <sbabic@denx.de>
Cc: Matteo Lisi <matteo.lisi@engicam.com>
Cc: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
 board/engicam/isiotmx6ul/isiotmx6ul.c | 22 ++++++++++++++++++++++
 include/configs/imx6ul_isiot.h        |  2 --
 2 files changed, 22 insertions(+), 2 deletions(-)

Comments

Stefano Babic Feb. 19, 2017, 3:53 p.m. UTC | #1
On 02/02/2017 15:56, Jagan Teki wrote:
> From: Jagan Teki <jagan@amarulasolutions.com>
> 
> Let the runtime code can set the mmcdev and mmcroot based
> on the devno using mmc_get_env_dev instead of defining
> separately in build-time configs using mmc_late_init func.
> 
> Cc: Stefano Babic <sbabic@denx.de>
> Cc: Matteo Lisi <matteo.lisi@engicam.com>
> Cc: Michael Trimarchi <michael@amarulasolutions.com>
> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
> ---
>  board/engicam/isiotmx6ul/isiotmx6ul.c | 22 ++++++++++++++++++++++
>  include/configs/imx6ul_isiot.h        |  2 --
>  2 files changed, 22 insertions(+), 2 deletions(-)
> 
> diff --git a/board/engicam/isiotmx6ul/isiotmx6ul.c b/board/engicam/isiotmx6ul/isiotmx6ul.c
> index fa91956..18989d8 100644
> --- a/board/engicam/isiotmx6ul/isiotmx6ul.c
> +++ b/board/engicam/isiotmx6ul/isiotmx6ul.c
> @@ -7,6 +7,7 @@
>   */
>  
>  #include <common.h>
> +#include <mmc.h>
>  
>  #include <asm/io.h>
>  #include <asm/gpio.h>
> @@ -103,6 +104,24 @@ static void setup_gpmi_nand(void)
>  }
>  #endif /* CONFIG_NAND_MXS */
>  
> +#ifdef CONFIG_ENV_IS_IN_MMC
> +static void mmc_late_init(void)
> +{
> +	char cmd[32];
> +	char mmcblk[32];
> +	u32 dev_no = mmc_get_env_dev();
> +
> +	setenv_ulong("mmcdev", dev_no);
> +
> +	/* Set mmcblk env */
> +	sprintf(mmcblk, "/dev/mmcblk%dp2 rootwait rw", dev_no);
> +	setenv("mmcroot", mmcblk);
> +
> +	sprintf(cmd, "mmc dev %d", dev_no);
> +	run_command(cmd, 0);
> +}
> +#endif
> +
>  int board_late_init(void)
>  {
>  	switch ((imx6_src_get_boot_mode() & IMX6_BMODE_MASK) >>
> @@ -111,6 +130,9 @@ int board_late_init(void)
>  	case IMX6_BMODE_ESD:
>  	case IMX6_BMODE_MMC:
>  	case IMX6_BMODE_EMMC:
> +#ifdef CONFIG_ENV_IS_IN_MMC
> +		mmc_late_init();
> +#endif
>  		setenv("modeboot", "mmcboot");
>  		break;
>  	case IMX6_BMODE_NAND:
> diff --git a/include/configs/imx6ul_isiot.h b/include/configs/imx6ul_isiot.h
> index 7258fed..4009648 100644
> --- a/include/configs/imx6ul_isiot.h
> +++ b/include/configs/imx6ul_isiot.h
> @@ -45,9 +45,7 @@
>  	"fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0" \
>  	"fdt_addr=0x87800000\0" \
>  	"boot_fdt=try\0" \
> -	"mmcdev=0\0" \
>  	"mmcpart=1\0" \
> -	"mmcroot=/dev/mmcblk0p2 rootwait rw\0" \
>  	"nandroot=ubi0:rootfs rootfstype=ubifs\0" \
>  	"mmcautodetect=yes\0" \
>  	"mmcargs=setenv bootargs console=${console},${baudrate} " \
> 

Reviewed by : Stefano Babic |sbabic@denx.de>

Best regards,
Stefano Babic
diff mbox

Patch

diff --git a/board/engicam/isiotmx6ul/isiotmx6ul.c b/board/engicam/isiotmx6ul/isiotmx6ul.c
index fa91956..18989d8 100644
--- a/board/engicam/isiotmx6ul/isiotmx6ul.c
+++ b/board/engicam/isiotmx6ul/isiotmx6ul.c
@@ -7,6 +7,7 @@ 
  */
 
 #include <common.h>
+#include <mmc.h>
 
 #include <asm/io.h>
 #include <asm/gpio.h>
@@ -103,6 +104,24 @@  static void setup_gpmi_nand(void)
 }
 #endif /* CONFIG_NAND_MXS */
 
+#ifdef CONFIG_ENV_IS_IN_MMC
+static void mmc_late_init(void)
+{
+	char cmd[32];
+	char mmcblk[32];
+	u32 dev_no = mmc_get_env_dev();
+
+	setenv_ulong("mmcdev", dev_no);
+
+	/* Set mmcblk env */
+	sprintf(mmcblk, "/dev/mmcblk%dp2 rootwait rw", dev_no);
+	setenv("mmcroot", mmcblk);
+
+	sprintf(cmd, "mmc dev %d", dev_no);
+	run_command(cmd, 0);
+}
+#endif
+
 int board_late_init(void)
 {
 	switch ((imx6_src_get_boot_mode() & IMX6_BMODE_MASK) >>
@@ -111,6 +130,9 @@  int board_late_init(void)
 	case IMX6_BMODE_ESD:
 	case IMX6_BMODE_MMC:
 	case IMX6_BMODE_EMMC:
+#ifdef CONFIG_ENV_IS_IN_MMC
+		mmc_late_init();
+#endif
 		setenv("modeboot", "mmcboot");
 		break;
 	case IMX6_BMODE_NAND:
diff --git a/include/configs/imx6ul_isiot.h b/include/configs/imx6ul_isiot.h
index 7258fed..4009648 100644
--- a/include/configs/imx6ul_isiot.h
+++ b/include/configs/imx6ul_isiot.h
@@ -45,9 +45,7 @@ 
 	"fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0" \
 	"fdt_addr=0x87800000\0" \
 	"boot_fdt=try\0" \
-	"mmcdev=0\0" \
 	"mmcpart=1\0" \
-	"mmcroot=/dev/mmcblk0p2 rootwait rw\0" \
 	"nandroot=ubi0:rootfs rootfstype=ubifs\0" \
 	"mmcautodetect=yes\0" \
 	"mmcargs=setenv bootargs console=${console},${baudrate} " \