浏览代码

i.MX6Q: icorem6_rqs: Add mmc_late_init

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>
Jagan Teki 8 年之前
父节点
当前提交
d98fd1323c
共有 2 个文件被更改,包括 22 次插入2 次删除
  1. 22 0
      board/engicam/icorem6_rqs/icorem6_rqs.c
  2. 0 2
      include/configs/imx6qdl_icore_rqs.h

+ 22 - 0
board/engicam/icorem6_rqs/icorem6_rqs.c

@@ -7,6 +7,7 @@
  */
  */
 
 
 #include <common.h>
 #include <common.h>
+#include <mmc.h>
 
 
 #include <asm/io.h>
 #include <asm/io.h>
 #include <asm/gpio.h>
 #include <asm/gpio.h>
@@ -45,6 +46,24 @@ int board_init(void)
 	return 0;
 	return 0;
 }
 }
 
 
+#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)
 int board_late_init(void)
 {
 {
 	switch ((imx6_src_get_boot_mode() & IMX6_BMODE_MASK) >>
 	switch ((imx6_src_get_boot_mode() & IMX6_BMODE_MASK) >>
@@ -53,6 +72,9 @@ int board_late_init(void)
 	case IMX6_BMODE_ESD:
 	case IMX6_BMODE_ESD:
 	case IMX6_BMODE_MMC:
 	case IMX6_BMODE_MMC:
 	case IMX6_BMODE_EMMC:
 	case IMX6_BMODE_EMMC:
+#ifdef CONFIG_ENV_IS_IN_MMC
+		mmc_late_init();
+#endif
 		setenv("modeboot", "mmcboot");
 		setenv("modeboot", "mmcboot");
 		break;
 		break;
 	default:
 	default:

+ 0 - 2
include/configs/imx6qdl_icore_rqs.h

@@ -40,9 +40,7 @@
 	"fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0" \
 	"fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0" \
 	"fdt_addr=0x18000000\0" \
 	"fdt_addr=0x18000000\0" \
 	"boot_fdt=try\0" \
 	"boot_fdt=try\0" \
-	"mmcdev=0\0" \
 	"mmcpart=1\0" \
 	"mmcpart=1\0" \
-	"mmcroot=/dev/mmcblk0p2 rootwait rw\0" \
 	"mmcautodetect=yes\0" \
 	"mmcautodetect=yes\0" \
 	"mmcargs=setenv bootargs console=${console},${baudrate} " \
 	"mmcargs=setenv bootargs console=${console},${baudrate} " \
 		"root=${mmcroot}\0" \
 		"root=${mmcroot}\0" \