All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v3 0/9] i.MX6: engicam: Add SPL_OF_CONTROL support
@ 2017-11-20 18:32 Jagan Teki
  2017-11-20 18:32 ` [U-Boot] [PATCH v3 1/9] i.MX6: engicam: Move set_fdt_file to common Jagan Teki
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: Jagan Teki @ 2017-11-20 18:32 UTC (permalink / raw)
  To: u-boot

This series has fix for data abort[1] which is observed for pinctrl data
before reloaction, thanks Lokesh for the suggestions.

Changes for v3:
- Add pinctrl data fix for 'data abort' issue
- Add proper mmc get env device support for imx6q boards
- Enabled falcon for icorem6_rqs

Changes for v2:
- Fixed imx6ul build issue
- Add FDT support for mx6ul_14x14_evk

[1] https://www.mail-archive.com/u-boot at lists.denx.de/msg267220.html

Jagan Teki (9):
  i.MX6: engicam: Move set_fdt_file to common
  i.MX6Q: icorem6: Move spl load fit to common/spl
  i.MX6Q: icore: Add SPL_OF_CONTROL support
  pinctrl: imx6ul: Fix pinctrl data overlapped with DT area
  i.MX6UL: icore: Add SPL_OF_CONTROL support
  board: icore-rqs: Fix mmc get env device
  i.MX6: engicam: Add imx6q/imx6ul boards for existing boards
  engicam: imx6q: Return mmc dev 0 for icore
  configs: icore-rqs: Enable falcon mode

 arch/arm/dts/imx6qdl-icore-rqs.dtsi                |   7 +
 arch/arm/dts/imx6qdl-icore.dtsi                    |   2 +
 arch/arm/dts/imx6qdl.dtsi                          |   5 +
 arch/arm/dts/imx6ul-geam-kit.dts                   |   4 +
 arch/arm/dts/imx6ul-isiot-emmc.dts                 |   2 +
 arch/arm/dts/imx6ul-isiot.dtsi                     |   2 +
 arch/arm/dts/imx6ul.dtsi                           |   6 +
 arch/arm/mach-imx/mx6/Kconfig                      |  49 ++---
 board/engicam/common/board.c                       |  24 ++
 board/engicam/common/board.h                       |   1 -
 board/engicam/common/spl.c                         |  42 ++++
 board/engicam/geam6ul/MAINTAINERS                  |   8 -
 board/engicam/geam6ul/README                       |  28 ---
 board/engicam/icorem6_rqs/Kconfig                  |  12 -
 board/engicam/icorem6_rqs/MAINTAINERS              |   9 -
 board/engicam/icorem6_rqs/Makefile                 |   6 -
 board/engicam/icorem6_rqs/icorem6_rqs.c            | 124 +----------
 board/engicam/{geam6ul => imx6q}/Kconfig           |   4 +-
 board/engicam/{icorem6 => imx6q}/MAINTAINERS       |   8 +-
 board/engicam/{geam6ul => imx6q}/Makefile          |   2 +-
 board/engicam/{icorem6_rqs => imx6q}/README        |   9 +-
 board/engicam/{icorem6/icorem6.c => imx6q/imx6q.c} |  98 +--------
 board/engicam/{icorem6 => imx6ul}/Kconfig          |   4 +-
 board/engicam/{isiotmx6ul => imx6ul}/MAINTAINERS   |   9 +-
 board/engicam/{icorem6 => imx6ul}/Makefile         |   2 +-
 board/engicam/{icorem6 => imx6ul}/README           |  11 +-
 .../engicam/{geam6ul/geam6ul.c => imx6ul/imx6ul.c} |  88 +-------
 board/engicam/isiotmx6ul/Kconfig                   |  12 -
 board/engicam/isiotmx6ul/Makefile                  |   6 -
 board/engicam/isiotmx6ul/README                    |  28 ---
 board/engicam/isiotmx6ul/isiotmx6ul.c              | 241 ---------------------
 configs/imx6qdl_icore_mmc_defconfig                |   3 +-
 configs/imx6qdl_icore_nand_defconfig               |   2 +-
 configs/imx6qdl_icore_rqs_defconfig                |   4 +-
 configs/imx6ul_geam_mmc_defconfig                  |   3 +-
 configs/imx6ul_geam_nand_defconfig                 |   2 +-
 configs/imx6ul_isiot_emmc_defconfig                |   3 +-
 configs/imx6ul_isiot_mmc_defconfig                 |   3 +-
 configs/imx6ul_isiot_nand_defconfig                |   2 +-
 drivers/pinctrl/nxp/pinctrl-imx6.c                 |   7 +-
 include/configs/imx6-engicam.h                     |  11 -
 41 files changed, 170 insertions(+), 723 deletions(-)
 delete mode 100644 board/engicam/geam6ul/MAINTAINERS
 delete mode 100644 board/engicam/geam6ul/README
 delete mode 100644 board/engicam/icorem6_rqs/Kconfig
 delete mode 100644 board/engicam/icorem6_rqs/MAINTAINERS
 delete mode 100644 board/engicam/icorem6_rqs/Makefile
 rename board/engicam/{geam6ul => imx6q}/Kconfig (73%)
 rename board/engicam/{icorem6 => imx6q}/MAINTAINERS (58%)
 rename board/engicam/{geam6ul => imx6q}/Makefile (80%)
 rename board/engicam/{icorem6_rqs => imx6q}/README (71%)
 rename board/engicam/{icorem6/icorem6.c => imx6q/imx6q.c} (72%)
 rename board/engicam/{icorem6 => imx6ul}/Kconfig (72%)
 rename board/engicam/{isiotmx6ul => imx6ul}/MAINTAINERS (69%)
 rename board/engicam/{icorem6 => imx6ul}/Makefile (80%)
 rename board/engicam/{icorem6 => imx6ul}/README (74%)
 rename board/engicam/{geam6ul/geam6ul.c => imx6ul/imx6ul.c} (59%)
 delete mode 100644 board/engicam/isiotmx6ul/Kconfig
 delete mode 100644 board/engicam/isiotmx6ul/Makefile
 delete mode 100644 board/engicam/isiotmx6ul/README
 delete mode 100644 board/engicam/isiotmx6ul/isiotmx6ul.c

-- 
2.7.4

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH v3 1/9] i.MX6: engicam: Move set_fdt_file to common
  2017-11-20 18:32 [U-Boot] [PATCH v3 0/9] i.MX6: engicam: Add SPL_OF_CONTROL support Jagan Teki
@ 2017-11-20 18:32 ` Jagan Teki
  2017-11-20 18:32 ` [U-Boot] [PATCH v3 2/9] i.MX6Q: icorem6: Move spl load fit to common/spl Jagan Teki
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Jagan Teki @ 2017-11-20 18:32 UTC (permalink / raw)
  To: u-boot

setenv_fdt_file to common code and set dtb based on
CONFIG_DEFAULT_DEVICE_TREE and cpu_type.

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
 board/engicam/common/board.c            | 24 ++++++++++++++++++++++++
 board/engicam/common/board.h            |  1 -
 board/engicam/geam6ul/geam6ul.c         |  6 ------
 board/engicam/icorem6/icorem6.c         |  8 --------
 board/engicam/icorem6_rqs/icorem6_rqs.c |  8 --------
 board/engicam/isiotmx6ul/isiotmx6ul.c   | 11 -----------
 6 files changed, 24 insertions(+), 34 deletions(-)

diff --git a/board/engicam/common/board.c b/board/engicam/common/board.c
index c7ec55f..f86fb2b 100644
--- a/board/engicam/common/board.c
+++ b/board/engicam/common/board.c
@@ -32,6 +32,30 @@ static void mmc_late_init(void)
 }
 #endif
 
+static void setenv_fdt_file(void)
+{
+	const char *cmp_dtb = CONFIG_DEFAULT_DEVICE_TREE;
+
+	if (!strcmp(cmp_dtb, "imx6q-icore")) {
+		if (is_mx6dq())
+			env_set("fdt_file", "imx6q-icore.dtb");
+		else if(is_mx6dl() || is_mx6solo())
+			env_set("fdt_file", "imx6dl-icore.dtb");
+	} else if (!strcmp(cmp_dtb, "imx6q-icore-rqs")) {
+		if (is_mx6dq())
+			env_set("fdt_file", "imx6q-icore-rqs.dtb");
+		else if(is_mx6dl() || is_mx6solo())
+			env_set("fdt_file", "imx6dl-icore-rqs.dtb");
+	} else if (!strcmp(cmp_dtb, "imx6ul-geam-kit"))
+		env_set("fdt_file", "imx6ul-geam-kit.dtb");
+	else if (!strcmp(cmp_dtb, "imx6ul-isiot-mmc"))
+		env_set("fdt_file", "imx6ul-isiot-mmc.dtb");
+	else if (!strcmp(cmp_dtb, "imx6ul-isiot-emmc"))
+		env_set("fdt_file", "imx6ul-isiot-emmc.dtb");
+	else if (!strcmp(cmp_dtb, "imx6ul-isiot-nand"))
+		env_set("fdt_file", "imx6ul-isiot-nand.dtb");
+}
+
 int board_late_init(void)
 {
 	switch ((imx6_src_get_boot_mode() & IMX6_BMODE_MASK) >>
diff --git a/board/engicam/common/board.h b/board/engicam/common/board.h
index f364a23..c720b0b 100644
--- a/board/engicam/common/board.h
+++ b/board/engicam/common/board.h
@@ -6,7 +6,6 @@
 
 #ifndef _BOARD_H_
 #define _BOARD_H_
-void setenv_fdt_file(void);
 void setup_gpmi_nand(void);
 void setup_display(void);
 #endif /* _BOARD_H_ */
diff --git a/board/engicam/geam6ul/geam6ul.c b/board/engicam/geam6ul/geam6ul.c
index ffd383a..15bd8b2 100644
--- a/board/engicam/geam6ul/geam6ul.c
+++ b/board/engicam/geam6ul/geam6ul.c
@@ -90,12 +90,6 @@ void setup_gpmi_nand(void)
 }
 #endif /* CONFIG_NAND_MXS */
 
-void setenv_fdt_file(void)
-{
-	if (is_mx6ul())
-		env_set("fdt_file", "imx6ul-geam-kit.dtb");
-}
-
 #ifdef CONFIG_SPL_BUILD
 /* MMC board initialization is needed till adding DM support in SPL */
 #if defined(CONFIG_FSL_ESDHC) && !defined(CONFIG_DM_MMC)
diff --git a/board/engicam/icorem6/icorem6.c b/board/engicam/icorem6/icorem6.c
index 3d4f713..59c085b 100644
--- a/board/engicam/icorem6/icorem6.c
+++ b/board/engicam/icorem6/icorem6.c
@@ -192,14 +192,6 @@ void setup_display(void)
 }
 #endif /* CONFIG_VIDEO_IPUV3 */
 
-void setenv_fdt_file(void)
-{
-	if (is_mx6dq())
-		env_set("fdt_file", "imx6q-icore.dtb");
-	else if(is_mx6dl() || is_mx6solo())
-		env_set("fdt_file", "imx6dl-icore.dtb");
-}
-
 #ifdef CONFIG_SPL_BUILD
 /* MMC board initialization is needed till adding DM support in SPL */
 #if defined(CONFIG_FSL_ESDHC) && !defined(CONFIG_DM_MMC)
diff --git a/board/engicam/icorem6_rqs/icorem6_rqs.c b/board/engicam/icorem6_rqs/icorem6_rqs.c
index 0114889..8afc9be 100644
--- a/board/engicam/icorem6_rqs/icorem6_rqs.c
+++ b/board/engicam/icorem6_rqs/icorem6_rqs.c
@@ -31,14 +31,6 @@ int board_mmc_get_env_dev(int devno)
 }
 #endif
 
-void setenv_fdt_file(void)
-{
-	if (is_mx6dq())
-		env_set("fdt_file", "imx6q-icore-rqs.dtb");
-	else if(is_mx6dl() || is_mx6solo())
-		env_set("fdt_file", "imx6dl-icore-rqs.dtb");
-}
-
 #ifdef CONFIG_SPL_BUILD
 #include <spl.h>
 
diff --git a/board/engicam/isiotmx6ul/isiotmx6ul.c b/board/engicam/isiotmx6ul/isiotmx6ul.c
index fbf1724..9afa8e4 100644
--- a/board/engicam/isiotmx6ul/isiotmx6ul.c
+++ b/board/engicam/isiotmx6ul/isiotmx6ul.c
@@ -98,17 +98,6 @@ int board_mmc_get_env_dev(int devno)
 }
 #endif
 
-void setenv_fdt_file(void)
-{
-	if (is_mx6ul()) {
-#ifdef CONFIG_ENV_IS_IN_MMC
-		env_set("fdt_file", "imx6ul-isiot-emmc.dtb");
-#else
-		env_set("fdt_file", "imx6ul-isiot-nand.dtb");
-#endif
-	}
-}
-
 #ifdef CONFIG_SPL_BUILD
 #include <spl.h>
 
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH v3 2/9] i.MX6Q: icorem6: Move spl load fit to common/spl
  2017-11-20 18:32 [U-Boot] [PATCH v3 0/9] i.MX6: engicam: Add SPL_OF_CONTROL support Jagan Teki
  2017-11-20 18:32 ` [U-Boot] [PATCH v3 1/9] i.MX6: engicam: Move set_fdt_file to common Jagan Teki
@ 2017-11-20 18:32 ` Jagan Teki
  2017-11-20 18:32 ` [U-Boot] [PATCH v3 3/9] i.MX6Q: icore: Add SPL_OF_CONTROL support Jagan Teki
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Jagan Teki @ 2017-11-20 18:32 UTC (permalink / raw)
  To: u-boot

Move spl load fit code into common/spl

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
 board/engicam/common/spl.c              | 16 ++++++++++++++++
 board/engicam/icorem6/icorem6.c         | 12 ------------
 board/engicam/icorem6_rqs/icorem6_rqs.c | 12 ------------
 3 files changed, 16 insertions(+), 24 deletions(-)

diff --git a/board/engicam/common/spl.c b/board/engicam/common/spl.c
index 8711418..f8ae3ac 100644
--- a/board/engicam/common/spl.c
+++ b/board/engicam/common/spl.c
@@ -39,6 +39,22 @@ static iomux_v3_cfg_t const uart_pads[] = {
 #endif
 };
 
+#ifdef CONFIG_SPL_LOAD_FIT
+int board_fit_config_name_match(const char *name)
+{
+        if (is_mx6dq() && !strcmp(name, "imx6q-icore"))
+                return 0;
+        else if (is_mx6dq() && !strcmp(name, "imx6q-icore-rqs"))
+                return 0;
+        else if ((is_mx6dl() || is_mx6solo()) && !strcmp(name, "imx6dl-icore"))
+                return 0;
+        else if ((is_mx6dl() || is_mx6solo()) && !strcmp(name, "imx6dl-icore-rqs"))
+                return 0;
+        else
+                return -1;
+}
+#endif
+
 #ifdef CONFIG_SPL_OS_BOOT
 int spl_start_uboot(void)
 {
diff --git a/board/engicam/icorem6/icorem6.c b/board/engicam/icorem6/icorem6.c
index 59c085b..e173124 100644
--- a/board/engicam/icorem6/icorem6.c
+++ b/board/engicam/icorem6/icorem6.c
@@ -264,16 +264,4 @@ int board_mmc_init(bd_t *bis)
 	return 0;
 }
 #endif
-
-#ifdef CONFIG_SPL_LOAD_FIT
-int board_fit_config_name_match(const char *name)
-{
-	if (is_mx6dq() && !strcmp(name, "imx6q-icore"))
-		return 0;
-	else if ((is_mx6dl() || is_mx6solo()) && !strcmp(name, "imx6dl-icore"))
-		return 0;
-	else
-		return -1;
-}
-#endif
 #endif /* CONFIG_SPL_BUILD */
diff --git a/board/engicam/icorem6_rqs/icorem6_rqs.c b/board/engicam/icorem6_rqs/icorem6_rqs.c
index 8afc9be..84ab936 100644
--- a/board/engicam/icorem6_rqs/icorem6_rqs.c
+++ b/board/engicam/icorem6_rqs/icorem6_rqs.c
@@ -147,16 +147,4 @@ void board_boot_order(u32 *spl_boot_list)
 }
 #endif
 #endif
-
-#ifdef CONFIG_SPL_LOAD_FIT
-int board_fit_config_name_match(const char *name)
-{
-	if (is_mx6dq() && !strcmp(name, "imx6q-icore-rqs"))
-		return 0;
-	else if ((is_mx6dl() || is_mx6solo()) && !strcmp(name, "imx6dl-icore-rqs"))
-		return 0;
-	else
-		return -1;
-}
-#endif
 #endif /* CONFIG_SPL_BUILD */
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH v3 3/9] i.MX6Q: icore: Add SPL_OF_CONTROL support
  2017-11-20 18:32 [U-Boot] [PATCH v3 0/9] i.MX6: engicam: Add SPL_OF_CONTROL support Jagan Teki
  2017-11-20 18:32 ` [U-Boot] [PATCH v3 1/9] i.MX6: engicam: Move set_fdt_file to common Jagan Teki
  2017-11-20 18:32 ` [U-Boot] [PATCH v3 2/9] i.MX6Q: icorem6: Move spl load fit to common/spl Jagan Teki
@ 2017-11-20 18:32 ` Jagan Teki
  2017-11-20 18:32 ` [U-Boot] [PATCH v3 4/9] pinctrl: imx6ul: Fix pinctrl data overlapped with DT area Jagan Teki
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Jagan Teki @ 2017-11-20 18:32 UTC (permalink / raw)
  To: u-boot

Add OF_CONTROL support for SPL code.

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
 arch/arm/dts/imx6qdl-icore-rqs.dtsi     |   2 +
 arch/arm/dts/imx6qdl-icore.dtsi         |   2 +
 arch/arm/dts/imx6qdl.dtsi               |   5 ++
 arch/arm/mach-imx/mx6/Kconfig           |   8 +++
 board/engicam/icorem6/icorem6.c         |  75 -----------------------
 board/engicam/icorem6_rqs/icorem6_rqs.c | 102 --------------------------------
 configs/imx6qdl_icore_mmc_defconfig     |   1 +
 configs/imx6qdl_icore_rqs_defconfig     |   1 +
 include/configs/imx6-engicam.h          |  22 +++----
 9 files changed, 31 insertions(+), 187 deletions(-)

diff --git a/arch/arm/dts/imx6qdl-icore-rqs.dtsi b/arch/arm/dts/imx6qdl-icore-rqs.dtsi
index 8b9d5b4..65cbf5a 100644
--- a/arch/arm/dts/imx6qdl-icore-rqs.dtsi
+++ b/arch/arm/dts/imx6qdl-icore-rqs.dtsi
@@ -100,6 +100,7 @@
 };
 
 &usdhc3 {
+	u-boot,dm-spl;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_usdhc3>;
 	cd-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
@@ -165,6 +166,7 @@
 	};
 
 	pinctrl_usdhc3: usdhc3grp {
+		u-boot,dm-spl;
 		fsl,pins = <
 			MX6QDL_PAD_SD3_CMD__SD3_CMD    0x17070
 			MX6QDL_PAD_SD3_CLK__SD3_CLK    0x10070
diff --git a/arch/arm/dts/imx6qdl-icore.dtsi b/arch/arm/dts/imx6qdl-icore.dtsi
index a485c3e..06d9bc3 100644
--- a/arch/arm/dts/imx6qdl-icore.dtsi
+++ b/arch/arm/dts/imx6qdl-icore.dtsi
@@ -118,6 +118,7 @@
 };
 
 &usdhc1 {
+	u-boot,dm-spl;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_usdhc1>;
 	cd-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
@@ -208,6 +209,7 @@
 	};
 
 	pinctrl_usdhc1: usdhc1grp {
+		u-boot,dm-spl;
 		fsl,pins = <
 			MX6QDL_PAD_SD1_CMD__SD1_CMD    0x17070
 			MX6QDL_PAD_SD1_CLK__SD1_CLK    0x10070
diff --git a/arch/arm/dts/imx6qdl.dtsi b/arch/arm/dts/imx6qdl.dtsi
index b13b0b2..e04b570 100644
--- a/arch/arm/dts/imx6qdl.dtsi
+++ b/arch/arm/dts/imx6qdl.dtsi
@@ -77,6 +77,7 @@
 		compatible = "simple-bus";
 		interrupt-parent = <&gpc>;
 		ranges;
+		u-boot,dm-spl;
 
 		dma_apbh: dma-apbh at 00110000 {
 			compatible = "fsl,imx6q-dma-apbh", "fsl,imx28-dma-apbh";
@@ -225,6 +226,7 @@
 			#size-cells = <1>;
 			reg = <0x02000000 0x100000>;
 			ranges;
+			u-boot,dm-spl;
 
 			spba-bus at 02000000 {
 				compatible = "fsl,spba-bus", "simple-bus";
@@ -516,6 +518,7 @@
 				#gpio-cells = <2>;
 				interrupt-controller;
 				#interrupt-cells = <2>;
+				u-boot,dm-spl;
 			};
 
 			gpio2: gpio at 020a0000 {
@@ -805,6 +808,7 @@
 			iomuxc: iomuxc at 020e0000 {
 				compatible = "fsl,imx6dl-iomuxc", "fsl,imx6q-iomuxc";
 				reg = <0x020e0000 0x4000>;
+				u-boot,dm-spl;
 			};
 
 			ldb: ldb at 020e0008 {
@@ -889,6 +893,7 @@
 			#size-cells = <1>;
 			reg = <0x02100000 0x100000>;
 			ranges;
+			u-boot,dm-spl;
 
 			crypto: caam at 2100000 {
 				compatible = "fsl,sec-v4.0";
diff --git a/arch/arm/mach-imx/mx6/Kconfig b/arch/arm/mach-imx/mx6/Kconfig
index fd73c67..b9aec2f 100644
--- a/arch/arm/mach-imx/mx6/Kconfig
+++ b/arch/arm/mach-imx/mx6/Kconfig
@@ -213,6 +213,10 @@ config TARGET_MX6Q_ICORE
 	select DM_THERMAL
 	select SUPPORT_SPL
 	select SPL_LOAD_FIT
+	select SPL_DM if SPL
+	select SPL_OF_CONTROL if SPL
+	select SPL_SEPARATE_BSS if SPL
+	select SPL_PINCTRL if SPL
 
 config TARGET_MX6Q_ICORE_RQS
 	bool "Support Engicam i.Core RQS"
@@ -228,6 +232,10 @@ config TARGET_MX6Q_ICORE_RQS
 	select DM_THERMAL
 	select SUPPORT_SPL
 	select SPL_LOAD_FIT
+	select SPL_DM if SPL
+	select SPL_OF_CONTROL if SPL
+	select SPL_SEPARATE_BSS if SPL
+	select SPL_PINCTRL if SPL
 
 config TARGET_MX6SABREAUTO
 	bool "mx6sabreauto"
diff --git a/board/engicam/icorem6/icorem6.c b/board/engicam/icorem6/icorem6.c
index e173124..a967ccd 100644
--- a/board/engicam/icorem6/icorem6.c
+++ b/board/engicam/icorem6/icorem6.c
@@ -7,7 +7,6 @@
  */
 
 #include <common.h>
-#include <mmc.h>
 
 #include <asm/io.h>
 #include <asm/gpio.h>
@@ -191,77 +190,3 @@ void setup_display(void)
 	writel(reg, &iomux->gpr[3]);
 }
 #endif /* CONFIG_VIDEO_IPUV3 */
-
-#ifdef CONFIG_SPL_BUILD
-/* MMC board initialization is needed till adding DM support in SPL */
-#if defined(CONFIG_FSL_ESDHC) && !defined(CONFIG_DM_MMC)
-#include <mmc.h>
-#include <fsl_esdhc.h>
-
-#define USDHC_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE |             \
-	PAD_CTL_PUS_22K_UP  | PAD_CTL_SPEED_LOW |               \
-	PAD_CTL_DSE_80ohm   | PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
-
-static iomux_v3_cfg_t const usdhc1_pads[] = {
-	IOMUX_PADS(PAD_SD1_CLK__SD1_CLK	| MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_SD1_CMD__SD1_CMD	| MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_SD1_DAT0__SD1_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_SD1_DAT1__SD1_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_SD1_DAT2__SD1_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_SD1_DAT3__SD1_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_GPIO_1__GPIO1_IO01 | MUX_PAD_CTRL(NO_PAD_CTRL)),/* CD */
-};
-
-#define USDHC1_CD_GPIO	IMX_GPIO_NR(1, 1)
-
-struct fsl_esdhc_cfg usdhc_cfg[1] = {
-	{USDHC1_BASE_ADDR, 0, 4},
-};
-
-int board_mmc_getcd(struct mmc *mmc)
-{
-	struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
-	int ret = 0;
-
-	switch (cfg->esdhc_base) {
-	case USDHC1_BASE_ADDR:
-		ret = !gpio_get_value(USDHC1_CD_GPIO);
-		break;
-	}
-
-	return ret;
-}
-
-int board_mmc_init(bd_t *bis)
-{
-	int i, ret;
-
-	/*
-	* According to the board_mmc_init() the following map is done:
-	* (U-boot device node)    (Physical Port)
-	* mmc0				USDHC1
-	*/
-	for (i = 0; i < CONFIG_SYS_FSL_USDHC_NUM; i++) {
-		switch (i) {
-		case 0:
-			SETUP_IOMUX_PADS(usdhc1_pads);
-			gpio_direction_input(USDHC1_CD_GPIO);
-			usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK);
-			break;
-		default:
-			printf("Warning - USDHC%d controller not supporting\n",
-			       i + 1);
-			return 0;
-		}
-
-		ret = fsl_esdhc_initialize(bis, &usdhc_cfg[i]);
-		if (ret) {
-			printf("Warning: failed to initialize mmc dev %d\n", i);
-			return ret;
-		}
-	}
-
-	return 0;
-}
-#endif
-#endif /* CONFIG_SPL_BUILD */
diff --git a/board/engicam/icorem6_rqs/icorem6_rqs.c b/board/engicam/icorem6_rqs/icorem6_rqs.c
index 84ab936..cd73dfa 100644
--- a/board/engicam/icorem6_rqs/icorem6_rqs.c
+++ b/board/engicam/icorem6_rqs/icorem6_rqs.c
@@ -6,21 +6,7 @@
  * SPDX-License-Identifier:	GPL-2.0+
  */
 
-#include <common.h>
-#include <mmc.h>
-
-#include <asm/io.h>
-#include <asm/gpio.h>
-#include <linux/sizes.h>
-
-#include <asm/arch/clock.h>
-#include <asm/arch/crm_regs.h>
-#include <asm/arch/iomux.h>
-#include <asm/arch/mx6-pins.h>
 #include <asm/arch/sys_proto.h>
-#include <asm/mach-imx/iomux-v3.h>
-
-#include "../common/board.h"
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -34,93 +20,6 @@ int board_mmc_get_env_dev(int devno)
 #ifdef CONFIG_SPL_BUILD
 #include <spl.h>
 
-/* MMC board initialization is needed till adding DM support in SPL */
-#if defined(CONFIG_FSL_ESDHC) && !defined(CONFIG_DM_MMC)
-#include <mmc.h>
-#include <fsl_esdhc.h>
-
-#define USDHC_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE |             \
-	PAD_CTL_PUS_47K_UP  | PAD_CTL_SPEED_HIGH |               \
-	PAD_CTL_DSE_40ohm   | PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
-
-static iomux_v3_cfg_t const usdhc3_pads[] = {
-	IOMUX_PADS(PAD_SD3_CLK__SD3_CLK	| MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_SD3_CMD__SD3_CMD	| MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_SD3_DAT0__SD3_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_SD3_DAT1__SD3_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_SD3_DAT2__SD3_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_SD3_DAT3__SD3_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-};
-
-static iomux_v3_cfg_t const usdhc4_pads[] = {
-	IOMUX_PADS(PAD_SD4_CLK__SD4_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_SD4_CMD__SD4_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_SD4_DAT0__SD4_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_SD4_DAT1__SD4_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_SD4_DAT2__SD4_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_SD4_DAT3__SD4_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_SD4_DAT4__SD4_DATA4 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_SD4_DAT5__SD4_DATA5 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_SD4_DAT6__SD4_DATA6 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_SD4_DAT7__SD4_DATA7 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-};
-
-struct fsl_esdhc_cfg usdhc_cfg[2] = {
-	{USDHC3_BASE_ADDR, 1, 4},
-	{USDHC4_BASE_ADDR, 1, 8},
-};
-
-int board_mmc_getcd(struct mmc *mmc)
-{
-	struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
-	int ret = 0;
-
-	switch (cfg->esdhc_base) {
-	case USDHC3_BASE_ADDR:
-	case USDHC4_BASE_ADDR:
-		ret = 1;
-		break;
-	}
-
-	return ret;
-}
-
-int board_mmc_init(bd_t *bis)
-{
-	int i, ret;
-
-	/*
-	* According to the board_mmc_init() the following map is done:
-	* (U-boot device node)    (Physical Port)
-	* mmc0			USDHC3
-	* mmc1			USDHC4
-	*/
-	for (i = 0; i < CONFIG_SYS_FSL_USDHC_NUM; i++) {
-		switch (i) {
-		case 0:
-			SETUP_IOMUX_PADS(usdhc3_pads);
-			usdhc_cfg[i].sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK);
-			break;
-		case 1:
-			SETUP_IOMUX_PADS(usdhc4_pads);
-			usdhc_cfg[i].sdhc_clk = mxc_get_clock(MXC_ESDHC4_CLK);
-			break;
-		default:
-			printf("Warning - USDHC%d controller not supporting\n",
-			       i + 1);
-			return 0;
-		}
-
-		ret = fsl_esdhc_initialize(bis, &usdhc_cfg[i]);
-		if (ret) {
-			printf("Warning: failed to initialize mmc dev %d\n", i);
-			return ret;
-		}
-	}
-
-	return 0;
-}
-
 #ifdef CONFIG_ENV_IS_IN_MMC
 void board_boot_order(u32 *spl_boot_list)
 {
@@ -146,5 +45,4 @@ void board_boot_order(u32 *spl_boot_list)
 	spl_boot_list[0] = boot_dev;
 }
 #endif
-#endif
 #endif /* CONFIG_SPL_BUILD */
diff --git a/configs/imx6qdl_icore_mmc_defconfig b/configs/imx6qdl_icore_mmc_defconfig
index 6e93c49..31cf1e6 100644
--- a/configs/imx6qdl_icore_mmc_defconfig
+++ b/configs/imx6qdl_icore_mmc_defconfig
@@ -48,3 +48,4 @@ CONFIG_MXC_UART=y
 CONFIG_IMX_THERMAL=y
 CONFIG_VIDEO=y
 CONFIG_VIDEO_IPUV3=y
+CONFIG_SYS_MALLOC_F_LEN=0x2000
diff --git a/configs/imx6qdl_icore_rqs_defconfig b/configs/imx6qdl_icore_rqs_defconfig
index fbe9651..1e57deb 100644
--- a/configs/imx6qdl_icore_rqs_defconfig
+++ b/configs/imx6qdl_icore_rqs_defconfig
@@ -40,3 +40,4 @@ CONFIG_FEC_MXC=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX6=y
 CONFIG_MXC_UART=y
+CONFIG_SYS_MALLOC_F_LEN=0x2000
diff --git a/include/configs/imx6-engicam.h b/include/configs/imx6-engicam.h
index 86c1d38..b88afd7 100644
--- a/include/configs/imx6-engicam.h
+++ b/include/configs/imx6-engicam.h
@@ -216,16 +216,18 @@
 
 # include "imx6_spl.h"
 # ifdef CONFIG_SPL_BUILD
-#  if defined(CONFIG_TARGET_MX6Q_ICORE_RQS) || defined(CONFIG_TARGET_MX6UL_ISIOT)
-#   define CONFIG_SYS_FSL_USDHC_NUM	2
-#  else
-#   define CONFIG_SYS_FSL_USDHC_NUM	1
-#  endif
-
-#  define CONFIG_SYS_FSL_ESDHC_ADDR	0
-#  undef CONFIG_DM_GPIO
-#  undef CONFIG_DM_MMC
-# endif
+#  if defined(CONFIG_IMX6UL)
+#   if defined(CONFIG_TARGET_MX6UL_ISIOT)
+#    define CONFIG_SYS_FSL_USDHC_NUM	2
+#   else
+#    define CONFIG_SYS_FSL_USDHC_NUM	1
+#   endif
+
+#   define CONFIG_SYS_FSL_ESDHC_ADDR	0
+#   undef CONFIG_DM_GPIO
+#   undef CONFIG_DM_MMC
+#  endif /* CONFIG_IMX6UL */
+# endif /* CONFIG_SPL_BUILD */
 #endif
 
 #endif /* __IMX6_ENGICAM_CONFIG_H */
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH v3 4/9] pinctrl: imx6ul: Fix pinctrl data overlapped with DT area
  2017-11-20 18:32 [U-Boot] [PATCH v3 0/9] i.MX6: engicam: Add SPL_OF_CONTROL support Jagan Teki
                   ` (2 preceding siblings ...)
  2017-11-20 18:32 ` [U-Boot] [PATCH v3 3/9] i.MX6Q: icore: Add SPL_OF_CONTROL support Jagan Teki
@ 2017-11-20 18:32 ` Jagan Teki
  2017-11-20 18:32 ` [U-Boot] [PATCH v3 5/9] i.MX6UL: icore: Add SPL_OF_CONTROL support Jagan Teki
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Jagan Teki @ 2017-11-20 18:32 UTC (permalink / raw)
  To: u-boot

before relocation pinctrl data BSS is overlapping DT area,
when .data is using uninitialized global variable,
imx6_pinctrl_soc_info. So assign them flags ZERO_OFFSET_VALID
to prevent BSS overlap

Suggested-by: Lokesh Vutla <lokeshvutla@ti.com>
Reported-by: Jagan Teki <jagan@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
 drivers/pinctrl/nxp/pinctrl-imx6.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/pinctrl/nxp/pinctrl-imx6.c b/drivers/pinctrl/nxp/pinctrl-imx6.c
index 0f767d9..cac577b 100644
--- a/drivers/pinctrl/nxp/pinctrl-imx6.c
+++ b/drivers/pinctrl/nxp/pinctrl-imx6.c
@@ -13,6 +13,11 @@
 
 static struct imx_pinctrl_soc_info imx6_pinctrl_soc_info;
 
+/* FIXME Before reloaction, BSS is overlapped with DT area */
+static struct imx_pinctrl_soc_info imx6ul_pinctrl_soc_info = {
+	.flags = ZERO_OFFSET_VALID,
+};
+
 static struct imx_pinctrl_soc_info imx6_snvs_pinctrl_soc_info = {
 	.flags = ZERO_OFFSET_VALID,
 };
@@ -32,7 +37,7 @@ static const struct udevice_id imx6_pinctrl_match[] = {
 	{ .compatible = "fsl,imx6sll-iomuxc-snvs", .data = (ulong)&imx6_snvs_pinctrl_soc_info },
 	{ .compatible = "fsl,imx6sll-iomuxc", .data = (ulong)&imx6_pinctrl_soc_info },
 	{ .compatible = "fsl,imx6sx-iomuxc", .data = (ulong)&imx6_pinctrl_soc_info },
-	{ .compatible = "fsl,imx6ul-iomuxc", .data = (ulong)&imx6_pinctrl_soc_info },
+	{ .compatible = "fsl,imx6ul-iomuxc", .data = (ulong)&imx6ul_pinctrl_soc_info },
 	{ .compatible = "fsl,imx6ull-iomuxc-snvs", .data = (ulong)&imx6_snvs_pinctrl_soc_info },
 	{ /* sentinel */ }
 };
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH v3 5/9] i.MX6UL: icore: Add SPL_OF_CONTROL support
  2017-11-20 18:32 [U-Boot] [PATCH v3 0/9] i.MX6: engicam: Add SPL_OF_CONTROL support Jagan Teki
                   ` (3 preceding siblings ...)
  2017-11-20 18:32 ` [U-Boot] [PATCH v3 4/9] pinctrl: imx6ul: Fix pinctrl data overlapped with DT area Jagan Teki
@ 2017-11-20 18:32 ` Jagan Teki
  2017-11-20 18:32 ` [U-Boot] [PATCH v3 6/9] board: icore-rqs: Fix mmc get env device Jagan Teki
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Jagan Teki @ 2017-11-20 18:32 UTC (permalink / raw)
  To: u-boot

Add OF_CONTROL support for SPL code.

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
 arch/arm/dts/imx6ul-geam-kit.dts      |   4 ++
 arch/arm/dts/imx6ul-isiot-emmc.dts    |   2 +
 arch/arm/dts/imx6ul-isiot.dtsi        |   2 +
 arch/arm/dts/imx6ul.dtsi              |   6 ++
 arch/arm/mach-imx/mx6/Kconfig         |   9 +++
 board/engicam/geam6ul/geam6ul.c       |  81 ---------------------------
 board/engicam/isiotmx6ul/isiotmx6ul.c | 101 ----------------------------------
 configs/imx6ul_geam_mmc_defconfig     |   1 +
 configs/imx6ul_isiot_emmc_defconfig   |   1 +
 configs/imx6ul_isiot_mmc_defconfig    |   1 +
 include/configs/imx6-engicam.h        |  13 -----
 11 files changed, 26 insertions(+), 195 deletions(-)

diff --git a/arch/arm/dts/imx6ul-geam-kit.dts b/arch/arm/dts/imx6ul-geam-kit.dts
index 07c21cb..15e3f94 100644
--- a/arch/arm/dts/imx6ul-geam-kit.dts
+++ b/arch/arm/dts/imx6ul-geam-kit.dts
@@ -87,6 +87,7 @@
 };
 
 &usdhc1 {
+	u-boot,dm-spl;
 	pinctrl-names = "default", "state_100mhz", "state_200mhz";
 	pinctrl-0 = <&pinctrl_usdhc1>;
 	pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
@@ -134,6 +135,7 @@
 	};
 
 	pinctrl_usdhc1: usdhc1grp {
+		u-boot,dm-spl;
 		fsl,pins = <
 			MX6UL_PAD_SD1_CMD__USDHC1_CMD     0x17059
 			MX6UL_PAD_SD1_CLK__USDHC1_CLK     0x10059
@@ -145,6 +147,7 @@
 	};
 
 	pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
+		u-boot,dm-spl;
 		fsl,pins = <
 			MX6UL_PAD_SD1_CMD__USDHC1_CMD     0x170b9
 			MX6UL_PAD_SD1_CLK__USDHC1_CLK     0x100b9
@@ -156,6 +159,7 @@
 	};
 
 	pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
+		u-boot,dm-spl;
 		fsl,pins = <
 			MX6UL_PAD_SD1_CMD__USDHC1_CMD     0x170f9
 			MX6UL_PAD_SD1_CLK__USDHC1_CLK     0x100f9
diff --git a/arch/arm/dts/imx6ul-isiot-emmc.dts b/arch/arm/dts/imx6ul-isiot-emmc.dts
index 677de96..a611e3b 100644
--- a/arch/arm/dts/imx6ul-isiot-emmc.dts
+++ b/arch/arm/dts/imx6ul-isiot-emmc.dts
@@ -50,6 +50,7 @@
 };
 
 &usdhc2 {
+	u-boot,dm-spl;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_usdhc2>;
 	cd-gpios = <&gpio4 5 GPIO_ACTIVE_LOW>;
@@ -60,6 +61,7 @@
 
 &iomuxc {
 	pinctrl_usdhc2: usdhc2grp {
+		u-boot,dm-spl;
 		fsl,pins = <
 			MX6UL_PAD_NAND_RE_B__USDHC2_CLK      0x17070
 			MX6UL_PAD_NAND_WE_B__USDHC2_CMD      0x10070
diff --git a/arch/arm/dts/imx6ul-isiot.dtsi b/arch/arm/dts/imx6ul-isiot.dtsi
index 9a3c35c..5007a88 100644
--- a/arch/arm/dts/imx6ul-isiot.dtsi
+++ b/arch/arm/dts/imx6ul-isiot.dtsi
@@ -82,6 +82,7 @@
 };
 
 &usdhc1 {
+	u-boot,dm-spl;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_usdhc1>;
 	cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
@@ -128,6 +129,7 @@
 	};
 
 	pinctrl_usdhc1: usdhc1grp {
+		u-boot,dm-spl;
 		fsl,pins = <
 			MX6UL_PAD_SD1_CMD__USDHC1_CMD     0x17059
 			MX6UL_PAD_SD1_CLK__USDHC1_CLK     0x10059
diff --git a/arch/arm/dts/imx6ul.dtsi b/arch/arm/dts/imx6ul.dtsi
index def5f8c..7affab8 100644
--- a/arch/arm/dts/imx6ul.dtsi
+++ b/arch/arm/dts/imx6ul.dtsi
@@ -134,6 +134,7 @@
 		compatible = "simple-bus";
 		interrupt-parent = <&gpc>;
 		ranges;
+		u-boot,dm-spl;
 
 		pmu {
 			compatible = "arm,cortex-a7-pmu";
@@ -185,6 +186,7 @@
 			#size-cells = <1>;
 			reg = <0x02000000 0x100000>;
 			ranges;
+			u-boot,dm-spl;
 
 			spba-bus at 02000000 {
 				compatible = "fsl,spba-bus", "simple-bus";
@@ -415,6 +417,7 @@
 				#interrupt-cells = <2>;
 				gpio-ranges = <&iomuxc  0 23 10>, <&iomuxc 10 17 6>,
 					      <&iomuxc 16 33 16>;
+				u-boot,dm-spl;
 			};
 
 			gpio2: gpio at 020a0000 {
@@ -451,6 +454,7 @@
 				interrupt-controller;
 				#interrupt-cells = <2>;
 				gpio-ranges = <&iomuxc 0 94 17>, <&iomuxc 17 117 12>;
+				u-boot,dm-spl;
 			};
 
 			gpio5: gpio at 020ac000 {
@@ -649,6 +653,7 @@
 			iomuxc: iomuxc at 020e0000 {
 				compatible = "fsl,imx6ul-iomuxc";
 				reg = <0x020e0000 0x4000>;
+				u-boot,dm-spl;
 			};
 
 			gpr: iomuxc-gpr at 020e4000 {
@@ -729,6 +734,7 @@
 			#size-cells = <1>;
 			reg = <0x02100000 0x100000>;
 			ranges;
+			u-boot,dm-spl;
 
 			usbotg1: usb at 02184000 {
 				compatible = "fsl,imx6ul-usb", "fsl,imx27-usb";
diff --git a/arch/arm/mach-imx/mx6/Kconfig b/arch/arm/mach-imx/mx6/Kconfig
index b9aec2f..770a3c1 100644
--- a/arch/arm/mach-imx/mx6/Kconfig
+++ b/arch/arm/mach-imx/mx6/Kconfig
@@ -308,6 +308,11 @@ config TARGET_MX6UL_GEAM
 	select DM_MMC
 	select DM_THERMAL
 	select SUPPORT_SPL
+	select SPL_DM if SPL
+	select SPL_OF_CONTROL if SPL
+	select SPL_SEPARATE_BSS if SPL
+	select SPL_PINCTRL if SPL
+
 config TARGET_MX6UL_ISIOT
 	bool "Support Engicam Is.IoT MX6UL"
 	select BOARD_LATE_INIT
@@ -320,6 +325,10 @@ config TARGET_MX6UL_ISIOT
 	select DM_MMC
 	select DM_THERMAL
 	select SUPPORT_SPL
+	select SPL_DM if SPL
+	select SPL_OF_CONTROL if SPL
+	select SPL_SEPARATE_BSS if SPL
+	select SPL_PINCTRL if SPL
 
 config TARGET_MX6ULL_14X14_EVK
 	bool "Support mx6ull_14x14_evk"
diff --git a/board/engicam/geam6ul/geam6ul.c b/board/engicam/geam6ul/geam6ul.c
index 15bd8b2..23e7e4b 100644
--- a/board/engicam/geam6ul/geam6ul.c
+++ b/board/engicam/geam6ul/geam6ul.c
@@ -7,7 +7,6 @@
  */
 
 #include <common.h>
-#include <mmc.h>
 
 #include <asm/io.h>
 #include <asm/gpio.h>
@@ -89,83 +88,3 @@ void setup_gpmi_nand(void)
 	setbits_le32(&mxc_ccm->CCGR0, MXC_CCM_CCGR0_APBHDMA_MASK);
 }
 #endif /* CONFIG_NAND_MXS */
-
-#ifdef CONFIG_SPL_BUILD
-/* MMC board initialization is needed till adding DM support in SPL */
-#if defined(CONFIG_FSL_ESDHC) && !defined(CONFIG_DM_MMC)
-#include <mmc.h>
-#include <fsl_esdhc.h>
-
-#define USDHC_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE |             \
-	PAD_CTL_PUS_22K_UP  | PAD_CTL_SPEED_LOW |               \
-	PAD_CTL_DSE_80ohm   | PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
-
-static iomux_v3_cfg_t const usdhc1_pads[] = {
-	IOMUX_PADS(PAD_SD1_CLK__USDHC1_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_SD1_CMD__USDHC1_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_SD1_DATA0__USDHC1_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_SD1_DATA1__USDHC1_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_SD1_DATA2__USDHC1_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_SD1_DATA3__USDHC1_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-
-	/* VSELECT */
-	IOMUX_PADS(PAD_GPIO1_IO05__USDHC1_VSELECT | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	/* CD */
-	IOMUX_PADS(PAD_UART1_RTS_B__GPIO1_IO19 | MUX_PAD_CTRL(NO_PAD_CTRL)),
-	/* RST_B */
-	IOMUX_PADS(PAD_GPIO1_IO09__GPIO1_IO09 | MUX_PAD_CTRL(NO_PAD_CTRL)),
-};
-
-#define USDHC1_CD_GPIO	IMX_GPIO_NR(1, 1)
-
-struct fsl_esdhc_cfg usdhc_cfg[1] = {
-	{USDHC1_BASE_ADDR, 0, 4},
-};
-
-int board_mmc_getcd(struct mmc *mmc)
-{
-	struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
-	int ret = 0;
-
-	switch (cfg->esdhc_base) {
-	case USDHC1_BASE_ADDR:
-		ret = !gpio_get_value(USDHC1_CD_GPIO);
-		break;
-	}
-
-	return ret;
-}
-
-int board_mmc_init(bd_t *bis)
-{
-	int i, ret;
-
-	/*
-	* According to the board_mmc_init() the following map is done:
-	* (U-boot device node)    (Physical Port)
-	* mmc0				USDHC1
-	*/
-	for (i = 0; i < CONFIG_SYS_FSL_USDHC_NUM; i++) {
-		switch (i) {
-		case 0:
-			SETUP_IOMUX_PADS(usdhc1_pads);
-			gpio_direction_input(USDHC1_CD_GPIO);
-			usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK);
-			break;
-		default:
-			printf("Warning - USDHC%d controller not supporting\n",
-			       i + 1);
-			return 0;
-		}
-
-		ret = fsl_esdhc_initialize(bis, &usdhc_cfg[i]);
-		if (ret) {
-			printf("Warning: failed to initialize mmc dev %d\n", i);
-			return ret;
-		}
-	}
-
-	return 0;
-}
-#endif /* CONFIG_FSL_ESDHC */
-#endif /* CONFIG_SPL_BUILD */
diff --git a/board/engicam/isiotmx6ul/isiotmx6ul.c b/board/engicam/isiotmx6ul/isiotmx6ul.c
index 9afa8e4..05d23c2 100644
--- a/board/engicam/isiotmx6ul/isiotmx6ul.c
+++ b/board/engicam/isiotmx6ul/isiotmx6ul.c
@@ -101,106 +101,6 @@ int board_mmc_get_env_dev(int devno)
 #ifdef CONFIG_SPL_BUILD
 #include <spl.h>
 
-/* MMC board initialization is needed till adding DM support in SPL */
-#if defined(CONFIG_FSL_ESDHC) && !defined(CONFIG_DM_MMC)
-#include <mmc.h>
-#include <fsl_esdhc.h>
-
-#define USDHC_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE |             \
-	PAD_CTL_PUS_22K_UP  | PAD_CTL_SPEED_LOW |               \
-	PAD_CTL_DSE_80ohm   | PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
-
-static iomux_v3_cfg_t const usdhc1_pads[] = {
-	IOMUX_PADS(PAD_SD1_CLK__USDHC1_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_SD1_CMD__USDHC1_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_SD1_DATA0__USDHC1_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_SD1_DATA1__USDHC1_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_SD1_DATA2__USDHC1_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_SD1_DATA3__USDHC1_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-
-	/* VSELECT */
-	IOMUX_PADS(PAD_GPIO1_IO05__USDHC1_VSELECT | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	/* CD */
-	IOMUX_PADS(PAD_UART1_RTS_B__GPIO1_IO19 | MUX_PAD_CTRL(NO_PAD_CTRL)),
-	/* RST_B */
-	IOMUX_PADS(PAD_GPIO1_IO09__GPIO1_IO09 | MUX_PAD_CTRL(NO_PAD_CTRL)),
-};
-
-static iomux_v3_cfg_t const usdhc2_pads[] = {
-	IOMUX_PADS(PAD_NAND_ALE__USDHC2_RESET_B | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_NAND_RE_B__USDHC2_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_NAND_WE_B__USDHC2_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_NAND_DATA00__USDHC2_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_NAND_DATA01__USDHC2_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_NAND_DATA02__USDHC2_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_NAND_DATA03__USDHC2_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_NAND_DATA04__USDHC2_DATA4 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-	IOMUX_PADS(PAD_NAND_DATA05__USDHC2_DATA5 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
-};
-
-#define USDHC1_CD_GPIO	IMX_GPIO_NR(1, 19)
-#define USDHC2_CD_GPIO	IMX_GPIO_NR(4, 5)
-
-struct fsl_esdhc_cfg usdhc_cfg[2] = {
-	{USDHC1_BASE_ADDR, 0, 4},
-	{USDHC2_BASE_ADDR, 0, 8},
-};
-
-int board_mmc_getcd(struct mmc *mmc)
-{
-	struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
-	int ret = 0;
-
-	switch (cfg->esdhc_base) {
-	case USDHC1_BASE_ADDR:
-		ret = !gpio_get_value(USDHC1_CD_GPIO);
-		break;
-	case USDHC2_BASE_ADDR:
-		ret = !gpio_get_value(USDHC2_CD_GPIO);
-		break;
-	}
-
-	return ret;
-}
-
-int board_mmc_init(bd_t *bis)
-{
-	int i, ret;
-
-	/*
-	* According to the board_mmc_init() the following map is done:
-	* (U-boot device node)    (Physical Port)
-	* mmc0				USDHC1
-	* mmc1				USDHC2
-	*/
-	for (i = 0; i < CONFIG_SYS_FSL_USDHC_NUM; i++) {
-		switch (i) {
-		case 0:
-			SETUP_IOMUX_PADS(usdhc1_pads);
-			gpio_direction_input(USDHC1_CD_GPIO);
-			usdhc_cfg[i].sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK);
-			break;
-		case 1:
-			SETUP_IOMUX_PADS(usdhc2_pads);
-			gpio_direction_input(USDHC2_CD_GPIO);
-			usdhc_cfg[i].sdhc_clk = mxc_get_clock(MXC_ESDHC2_CLK);
-			break;
-		default:
-			printf("Warning - USDHC%d controller not supporting\n",
-			       i + 1);
-			return 0;
-		}
-
-		ret = fsl_esdhc_initialize(bis, &usdhc_cfg[i]);
-		if (ret) {
-			printf("Warning: failed to initialize mmc dev %d\n", i);
-			return ret;
-		}
-	}
-
-	return 0;
-}
-
 #ifdef CONFIG_ENV_IS_IN_MMC
 void board_boot_order(u32 *spl_boot_list)
 {
@@ -226,5 +126,4 @@ void board_boot_order(u32 *spl_boot_list)
 	spl_boot_list[0] = boot_dev;
 }
 #endif
-#endif /* CONFIG_FSL_ESDHC */
 #endif /* CONFIG_SPL_BUILD */
diff --git a/configs/imx6ul_geam_mmc_defconfig b/configs/imx6ul_geam_mmc_defconfig
index ce7c288..c147d4a 100644
--- a/configs/imx6ul_geam_mmc_defconfig
+++ b/configs/imx6ul_geam_mmc_defconfig
@@ -40,3 +40,4 @@ CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX6=y
 CONFIG_MXC_UART=y
 CONFIG_IMX_THERMAL=y
+CONFIG_SYS_MALLOC_F_LEN=0x2000
diff --git a/configs/imx6ul_isiot_emmc_defconfig b/configs/imx6ul_isiot_emmc_defconfig
index 94af53e..5f8a574 100644
--- a/configs/imx6ul_isiot_emmc_defconfig
+++ b/configs/imx6ul_isiot_emmc_defconfig
@@ -38,3 +38,4 @@ CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX6=y
 CONFIG_MXC_UART=y
 CONFIG_IMX_THERMAL=y
+CONFIG_SYS_MALLOC_F_LEN=0x2000
diff --git a/configs/imx6ul_isiot_mmc_defconfig b/configs/imx6ul_isiot_mmc_defconfig
index 0a990d7..367dfa1 100644
--- a/configs/imx6ul_isiot_mmc_defconfig
+++ b/configs/imx6ul_isiot_mmc_defconfig
@@ -40,3 +40,4 @@ CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX6=y
 CONFIG_MXC_UART=y
 CONFIG_IMX_THERMAL=y
+CONFIG_SYS_MALLOC_F_LEN=0x2000
diff --git a/include/configs/imx6-engicam.h b/include/configs/imx6-engicam.h
index b88afd7..0c45e06 100644
--- a/include/configs/imx6-engicam.h
+++ b/include/configs/imx6-engicam.h
@@ -215,19 +215,6 @@
 # endif
 
 # include "imx6_spl.h"
-# ifdef CONFIG_SPL_BUILD
-#  if defined(CONFIG_IMX6UL)
-#   if defined(CONFIG_TARGET_MX6UL_ISIOT)
-#    define CONFIG_SYS_FSL_USDHC_NUM	2
-#   else
-#    define CONFIG_SYS_FSL_USDHC_NUM	1
-#   endif
-
-#   define CONFIG_SYS_FSL_ESDHC_ADDR	0
-#   undef CONFIG_DM_GPIO
-#   undef CONFIG_DM_MMC
-#  endif /* CONFIG_IMX6UL */
-# endif /* CONFIG_SPL_BUILD */
 #endif
 
 #endif /* __IMX6_ENGICAM_CONFIG_H */
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH v3 6/9] board: icore-rqs: Fix mmc get env device
  2017-11-20 18:32 [U-Boot] [PATCH v3 0/9] i.MX6: engicam: Add SPL_OF_CONTROL support Jagan Teki
                   ` (4 preceding siblings ...)
  2017-11-20 18:32 ` [U-Boot] [PATCH v3 5/9] i.MX6UL: icore: Add SPL_OF_CONTROL support Jagan Teki
@ 2017-11-20 18:32 ` Jagan Teki
  2017-11-20 18:32 ` [U-Boot] [PATCH v3 7/9] i.MX6: engicam: Add imx6q/imx6ul boards for existing boards Jagan Teki
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Jagan Teki @ 2017-11-20 18:32 UTC (permalink / raw)
  To: u-boot

As per USDHC boot eFUSE descriptions:
USDHC3 => devno 2
USDHC4 => devno 3

Linux will detect mmc0, mmc1, mmc2 based on the status
"okay" on usdhc so imx6qdl-icore-rqs.dtsi has enabled
usdhc1, usdhc3 and usdhc4.But U-Boot can detect based
on the aliases so add mmc1, mmc2 for usdhc3 and usdhc4
respectively and return the board_mmc_get_env_dev
by subtracting -1

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
 arch/arm/dts/imx6qdl-icore-rqs.dtsi     | 5 +++++
 board/engicam/icorem6_rqs/icorem6_rqs.c | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/arch/arm/dts/imx6qdl-icore-rqs.dtsi b/arch/arm/dts/imx6qdl-icore-rqs.dtsi
index 65cbf5a..816cdce 100644
--- a/arch/arm/dts/imx6qdl-icore-rqs.dtsi
+++ b/arch/arm/dts/imx6qdl-icore-rqs.dtsi
@@ -43,6 +43,11 @@
 #include <dt-bindings/clock/imx6qdl-clock.h>
 
 / {
+	aliases {
+		mmc1 = &usdhc3;
+		mmc2 = &usdhc4;
+	};
+
 	memory {
 		reg = <0x10000000 0x80000000>;
 	};
diff --git a/board/engicam/icorem6_rqs/icorem6_rqs.c b/board/engicam/icorem6_rqs/icorem6_rqs.c
index cd73dfa..a55a754 100644
--- a/board/engicam/icorem6_rqs/icorem6_rqs.c
+++ b/board/engicam/icorem6_rqs/icorem6_rqs.c
@@ -13,7 +13,7 @@ DECLARE_GLOBAL_DATA_PTR;
 #ifdef CONFIG_ENV_IS_IN_MMC
 int board_mmc_get_env_dev(int devno)
 {
-	return devno;
+	return devno - 1;
 }
 #endif
 
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH v3 7/9] i.MX6: engicam: Add imx6q/imx6ul boards for existing boards
  2017-11-20 18:32 [U-Boot] [PATCH v3 0/9] i.MX6: engicam: Add SPL_OF_CONTROL support Jagan Teki
                   ` (5 preceding siblings ...)
  2017-11-20 18:32 ` [U-Boot] [PATCH v3 6/9] board: icore-rqs: Fix mmc get env device Jagan Teki
@ 2017-11-20 18:32 ` Jagan Teki
  2017-11-20 18:32 ` [U-Boot] [PATCH v3 8/9] engicam: imx6q: Return mmc dev 0 for icore Jagan Teki
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Jagan Teki @ 2017-11-20 18:32 UTC (permalink / raw)
  To: u-boot

Add new board names for existing board support
imx6q - icore and icore_rqs boards
imx6ul - geam6ul and isiot boards

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
 arch/arm/mach-imx/mx6/Kconfig                      |  50 +-------
 board/engicam/common/board.c                       |   2 +-
 board/engicam/common/spl.c                         |  26 +++++
 board/engicam/geam6ul/MAINTAINERS                  |   8 --
 board/engicam/geam6ul/README                       |  28 -----
 board/engicam/icorem6_rqs/Kconfig                  |  12 --
 board/engicam/icorem6_rqs/MAINTAINERS              |   9 --
 board/engicam/icorem6_rqs/Makefile                 |   6 -
 board/engicam/{geam6ul => imx6q}/Kconfig           |   4 +-
 board/engicam/{icorem6 => imx6q}/MAINTAINERS       |   8 +-
 board/engicam/{geam6ul => imx6q}/Makefile          |   2 +-
 board/engicam/{icorem6_rqs => imx6q}/README        |   9 +-
 board/engicam/{icorem6/icorem6.c => imx6q/imx6q.c} |  10 +-
 board/engicam/{icorem6 => imx6ul}/Kconfig          |   4 +-
 board/engicam/{isiotmx6ul => imx6ul}/MAINTAINERS   |   9 +-
 board/engicam/{icorem6 => imx6ul}/Makefile         |   2 +-
 board/engicam/{icorem6 => imx6ul}/README           |  11 +-
 .../engicam/{geam6ul/geam6ul.c => imx6ul/imx6ul.c} |   9 ++
 board/engicam/isiotmx6ul/Kconfig                   |  12 --
 board/engicam/isiotmx6ul/Makefile                  |   6 -
 board/engicam/isiotmx6ul/README                    |  28 -----
 board/engicam/isiotmx6ul/isiotmx6ul.c              | 129 ---------------------
 configs/imx6qdl_icore_mmc_defconfig                |   2 +-
 configs/imx6qdl_icore_nand_defconfig               |   2 +-
 configs/imx6qdl_icore_rqs_defconfig                |   2 +-
 configs/imx6ul_geam_mmc_defconfig                  |   2 +-
 configs/imx6ul_geam_nand_defconfig                 |   2 +-
 configs/imx6ul_isiot_emmc_defconfig                |   2 +-
 configs/imx6ul_isiot_mmc_defconfig                 |   2 +-
 configs/imx6ul_isiot_nand_defconfig                |   2 +-
 30 files changed, 89 insertions(+), 311 deletions(-)
 delete mode 100644 board/engicam/geam6ul/MAINTAINERS
 delete mode 100644 board/engicam/geam6ul/README
 delete mode 100644 board/engicam/icorem6_rqs/Kconfig
 delete mode 100644 board/engicam/icorem6_rqs/MAINTAINERS
 delete mode 100644 board/engicam/icorem6_rqs/Makefile
 rename board/engicam/{geam6ul => imx6q}/Kconfig (73%)
 rename board/engicam/{icorem6 => imx6q}/MAINTAINERS (58%)
 rename board/engicam/{geam6ul => imx6q}/Makefile (80%)
 rename board/engicam/{icorem6_rqs => imx6q}/README (71%)
 rename board/engicam/{icorem6/icorem6.c => imx6q/imx6q.c} (97%)
 rename board/engicam/{icorem6 => imx6ul}/Kconfig (72%)
 rename board/engicam/{isiotmx6ul => imx6ul}/MAINTAINERS (69%)
 rename board/engicam/{icorem6 => imx6ul}/Makefile (80%)
 rename board/engicam/{icorem6 => imx6ul}/README (74%)
 rename board/engicam/{geam6ul/geam6ul.c => imx6ul/imx6ul.c} (95%)
 delete mode 100644 board/engicam/isiotmx6ul/Kconfig
 delete mode 100644 board/engicam/isiotmx6ul/Makefile
 delete mode 100644 board/engicam/isiotmx6ul/README
 delete mode 100644 board/engicam/isiotmx6ul/isiotmx6ul.c

diff --git a/arch/arm/mach-imx/mx6/Kconfig b/arch/arm/mach-imx/mx6/Kconfig
index 770a3c1..04883e5 100644
--- a/arch/arm/mach-imx/mx6/Kconfig
+++ b/arch/arm/mach-imx/mx6/Kconfig
@@ -199,27 +199,8 @@ config TARGET_MX6LOGICPD
 config TARGET_MX6QARM2
 	bool "mx6qarm2"
 
-config TARGET_MX6Q_ICORE
-	bool "Support Engicam i.Core"
-	select BOARD_LATE_INIT
-	select MX6QDL
-	select OF_CONTROL
-	select SPL_OF_LIBFDT
-	select DM
-	select DM_ETH
-	select DM_GPIO
-	select DM_I2C
-	select DM_MMC
-	select DM_THERMAL
-	select SUPPORT_SPL
-	select SPL_LOAD_FIT
-	select SPL_DM if SPL
-	select SPL_OF_CONTROL if SPL
-	select SPL_SEPARATE_BSS if SPL
-	select SPL_PINCTRL if SPL
-
-config TARGET_MX6Q_ICORE_RQS
-	bool "Support Engicam i.Core RQS"
+config TARGET_MX6Q_ENGICAM
+	bool "Support Engicam i.Core(RQS)"
 	select BOARD_LATE_INIT
 	select MX6QDL
 	select OF_CONTROL
@@ -296,25 +277,8 @@ config TARGET_MX6UL_14X14_EVK
 	select DM_THERMAL
 	select SUPPORT_SPL
 
-config TARGET_MX6UL_GEAM
-	bool "Support Engicam GEAM6UL"
-	select BOARD_LATE_INIT
-	select MX6UL
-	select OF_CONTROL
-	select DM
-	select DM_ETH
-	select DM_GPIO
-	select DM_I2C
-	select DM_MMC
-	select DM_THERMAL
-	select SUPPORT_SPL
-	select SPL_DM if SPL
-	select SPL_OF_CONTROL if SPL
-	select SPL_SEPARATE_BSS if SPL
-	select SPL_PINCTRL if SPL
-
-config TARGET_MX6UL_ISIOT
-	bool "Support Engicam Is.IoT MX6UL"
+config TARGET_MX6UL_ENGICAM
+	bool "Support Engicam GEAM6UL/Is.IoT"
 	select BOARD_LATE_INIT
 	select MX6UL
 	select OF_CONTROL
@@ -463,10 +427,8 @@ source "board/congatec/cgtqmx6eval/Kconfig"
 source "board/dhelectronics/dh_imx6/Kconfig"
 source "board/el/el6x/Kconfig"
 source "board/embest/mx6boards/Kconfig"
-source "board/engicam/geam6ul/Kconfig"
-source "board/engicam/icorem6/Kconfig"
-source "board/engicam/icorem6_rqs/Kconfig"
-source "board/engicam/isiotmx6ul/Kconfig"
+source "board/engicam/imx6q/Kconfig"
+source "board/engicam/imx6ul/Kconfig"
 source "board/freescale/mx6qarm2/Kconfig"
 source "board/freescale/mx6sabreauto/Kconfig"
 source "board/freescale/mx6sabresd/Kconfig"
diff --git a/board/engicam/common/board.c b/board/engicam/common/board.c
index f86fb2b..f633c71 100644
--- a/board/engicam/common/board.c
+++ b/board/engicam/common/board.c
@@ -49,7 +49,7 @@ static void setenv_fdt_file(void)
 	} else if (!strcmp(cmp_dtb, "imx6ul-geam-kit"))
 		env_set("fdt_file", "imx6ul-geam-kit.dtb");
 	else if (!strcmp(cmp_dtb, "imx6ul-isiot-mmc"))
-		env_set("fdt_file", "imx6ul-isiot-mmc.dtb");
+		env_set("fdt_file", "imx6ul-isiot-emmc.dtb");
 	else if (!strcmp(cmp_dtb, "imx6ul-isiot-emmc"))
 		env_set("fdt_file", "imx6ul-isiot-emmc.dtb");
 	else if (!strcmp(cmp_dtb, "imx6ul-isiot-nand"))
diff --git a/board/engicam/common/spl.c b/board/engicam/common/spl.c
index f8ae3ac..6e2389d 100644
--- a/board/engicam/common/spl.c
+++ b/board/engicam/common/spl.c
@@ -55,6 +55,32 @@ int board_fit_config_name_match(const char *name)
 }
 #endif
 
+#ifdef CONFIG_ENV_IS_IN_MMC
+void board_boot_order(u32 *spl_boot_list)
+{
+	u32 bmode = imx6_src_get_boot_mode();
+	u8 boot_dev = BOOT_DEVICE_MMC1;
+
+	switch ((bmode & IMX6_BMODE_MASK) >> IMX6_BMODE_SHIFT) {
+	case IMX6_BMODE_SD:
+	case IMX6_BMODE_ESD:
+		/* SD/eSD - BOOT_DEVICE_MMC1 */
+		break;
+	case IMX6_BMODE_MMC:
+	case IMX6_BMODE_EMMC:
+		/* MMC/eMMC */
+		boot_dev = BOOT_DEVICE_MMC2;
+		break;
+	default:
+		/* Default - BOOT_DEVICE_MMC1 */
+		printf("Wrong board boot order\n");
+		break;
+	}
+
+	spl_boot_list[0] = boot_dev;
+}
+#endif
+
 #ifdef CONFIG_SPL_OS_BOOT
 int spl_start_uboot(void)
 {
diff --git a/board/engicam/geam6ul/MAINTAINERS b/board/engicam/geam6ul/MAINTAINERS
deleted file mode 100644
index 2b882d2..0000000
--- a/board/engicam/geam6ul/MAINTAINERS
+++ /dev/null
@@ -1,8 +0,0 @@
-GEAM6UL BOARD
-M:	Jagan Teki <jagan@amarulasolutions.com>
-S:	Maintained
-F:	board/engicam/geam6ul
-F:	include/configs/imx6-engicam.h
-F:	configs/imx6ul_geam_mmc_defconfig
-F:	configs/imx6ul_geam_nand_defconfig
-F:	arch/arm/dts/imx6ul-geam-kit.dts
diff --git a/board/engicam/geam6ul/README b/board/engicam/geam6ul/README
deleted file mode 100644
index 0df6ae4..0000000
--- a/board/engicam/geam6ul/README
+++ /dev/null
@@ -1,28 +0,0 @@
-How to use U-Boot on Engicam GEAM6UL Starter Kit:
--------------------------------------------------
-
-- Configure U-Boot for Engicam GEAM6UL:
-
-$ make mrproper
-$ make imx6ul_geam_mmc_defconfig
-$ make
-
-This will generate the SPL image called SPL and the u-boot-dtb.img.
-
-- Flash the SPL image into the micro SD card:
-
-sudo dd if=SPL of=/dev/mmcblk0 bs=1k seek=1; sync
-
-- Flash the u-boot-dtb.img image into the micro SD card:
-
-sudo dd if=u-boot-dtb.img of=/dev/mmcblk0 bs=1k seek=69; sync
-
-- Jumper settings:
-
-MMC Boot: JM3 Closed
-
-- Connect the Serial cable between the Starter Kit and the PC for the console.
-(J28 is the Linux Serial console connector)
-
-- Insert the micro SD card in the board, power it up and U-Boot messages should
-come up.
diff --git a/board/engicam/icorem6_rqs/Kconfig b/board/engicam/icorem6_rqs/Kconfig
deleted file mode 100644
index 6dc3a07..0000000
--- a/board/engicam/icorem6_rqs/Kconfig
+++ /dev/null
@@ -1,12 +0,0 @@
-if TARGET_MX6Q_ICORE_RQS
-
-config SYS_BOARD
-	default "icorem6_rqs"
-
-config SYS_VENDOR
-	default "engicam"
-
-config SYS_CONFIG_NAME
-	default "imx6-engicam"
-
-endif
diff --git a/board/engicam/icorem6_rqs/MAINTAINERS b/board/engicam/icorem6_rqs/MAINTAINERS
deleted file mode 100644
index 9a74265..0000000
--- a/board/engicam/icorem6_rqs/MAINTAINERS
+++ /dev/null
@@ -1,9 +0,0 @@
-ICOREM6QDL_RQS BOARD
-M:	Jagan Teki <jagan@amarulasolutions.com>
-S:	Maintained
-F:	board/engicam/icorem6_rqs
-F:	include/configs/imx6-engicam.h
-F:	configs/imx6qdl_icore_rqs_defconfig
-F:	arch/arm/dts/imx6qdl-icore-rqs.dtsi
-F:	arch/arm/dts/imx6q-icore-rqs.dts
-F:	arch/arm/dts/imx6dl-icore-rqs.dts
diff --git a/board/engicam/icorem6_rqs/Makefile b/board/engicam/icorem6_rqs/Makefile
deleted file mode 100644
index 2e3933c..0000000
--- a/board/engicam/icorem6_rqs/Makefile
+++ /dev/null
@@ -1,6 +0,0 @@
-# Copyright (C) 2016 Amarula Solutions B.V.
-#
-# SPDX-License-Identifier:	GPL-2.0+
-#
-
-obj-y  := icorem6_rqs.o
diff --git a/board/engicam/geam6ul/Kconfig b/board/engicam/imx6q/Kconfig
similarity index 73%
rename from board/engicam/geam6ul/Kconfig
rename to board/engicam/imx6q/Kconfig
index 7f4023e..48eb60c 100644
--- a/board/engicam/geam6ul/Kconfig
+++ b/board/engicam/imx6q/Kconfig
@@ -1,7 +1,7 @@
-if TARGET_MX6UL_GEAM
+if TARGET_MX6Q_ENGICAM
 
 config SYS_BOARD
-	default "geam6ul"
+	default "imx6q"
 
 config SYS_VENDOR
 	default "engicam"
diff --git a/board/engicam/icorem6/MAINTAINERS b/board/engicam/imx6q/MAINTAINERS
similarity index 58%
rename from board/engicam/icorem6/MAINTAINERS
rename to board/engicam/imx6q/MAINTAINERS
index a348bdd..82efb46 100644
--- a/board/engicam/icorem6/MAINTAINERS
+++ b/board/engicam/imx6q/MAINTAINERS
@@ -1,10 +1,14 @@
-ICOREM6QDL BOARD
+MX6Q_ENGICAM BOARD
 M:	Jagan Teki <jagan@amarulasolutions.com>
 S:	Maintained
-F:	board/engicam/icorem6
+F:	board/engicam/imx6q
 F:	include/configs/imx6-engicam.h
 F:	configs/imx6qdl_icore_mmc_defconfig
 F:	configs/imx6qdl_icore_nand_defconfig
+F:	configs/imx6qdl_icore_rqs_defconfig
 F:	arch/arm/dts/imx6qdl-icore.dtsi
 F:	arch/arm/dts/imx6q-icore.dts
 F:	arch/arm/dts/imx6dl-icore.dts
+F:	arch/arm/dts/imx6qdl-icore-rqs.dtsi
+F:	arch/arm/dts/imx6q-icore-rqs.dts
+F:	arch/arm/dts/imx6dl-icore-rqs.dts
diff --git a/board/engicam/geam6ul/Makefile b/board/engicam/imx6q/Makefile
similarity index 80%
rename from board/engicam/geam6ul/Makefile
rename to board/engicam/imx6q/Makefile
index 0e367e2..ef2fb6a 100644
--- a/board/engicam/geam6ul/Makefile
+++ b/board/engicam/imx6q/Makefile
@@ -3,4 +3,4 @@
 # SPDX-License-Identifier:	GPL-2.0+
 #
 
-obj-y  := geam6ul.o
+obj-y  := imx6q.o
diff --git a/board/engicam/icorem6_rqs/README b/board/engicam/imx6q/README
similarity index 71%
rename from board/engicam/icorem6_rqs/README
rename to board/engicam/imx6q/README
index 97e978c..3f3478c 100644
--- a/board/engicam/icorem6_rqs/README
+++ b/board/engicam/imx6q/README
@@ -1,9 +1,12 @@
-How to use U-Boot on Engicam i.CoreM6 RQS Solo/DualLite and Quad/Dual Starter Kit:
-----------------------------------------------------------------------------------
+Hsow to use U-Boot on Engicam i.CoreM6 (RQS) Solo/DualLite/Quad/Dual Starter Kit:
+--------------------------------------------------------------------------------
 
 $ make mrproper
 
-- Configure U-Boot for Engicam i.CoreM6 RQS Quad/Dual/Solo/DualLite:
+- Configure U-Boot for Engicam i.CoreM6 Quad/Duali/Solo/DualLite:
+$ make imx6qdl_icore_mmc_defconfig
+
+- Configure U-Boot for Engicam i.CoreM6 RQS Quad/Duali/Solo/DualLite:
 $ make imx6qdl_icore_rqs_defconfig
 
 - Build U-Boot
diff --git a/board/engicam/icorem6/icorem6.c b/board/engicam/imx6q/imx6q.c
similarity index 97%
rename from board/engicam/icorem6/icorem6.c
rename to board/engicam/imx6q/imx6q.c
index a967ccd..bb0c866 100644
--- a/board/engicam/icorem6/icorem6.c
+++ b/board/engicam/imx6q/imx6q.c
@@ -25,13 +25,12 @@
 DECLARE_GLOBAL_DATA_PTR;
 
 #ifdef CONFIG_NAND_MXS
-
 #define GPMI_PAD_CTRL0	(PAD_CTL_PKE | PAD_CTL_PUE | PAD_CTL_PUS_100K_UP)
 #define GPMI_PAD_CTRL1	(PAD_CTL_DSE_40ohm | PAD_CTL_SPEED_MED | \
 			PAD_CTL_SRE_FAST)
 #define GPMI_PAD_CTRL2	(GPMI_PAD_CTRL0 | GPMI_PAD_CTRL1)
 
-iomux_v3_cfg_t gpmi_pads[] = {
+static iomux_v3_cfg_t gpmi_pads[] = {
 	IOMUX_PADS(PAD_NANDF_CLE__NAND_CLE	| MUX_PAD_CTRL(GPMI_PAD_CTRL2)),
 	IOMUX_PADS(PAD_NANDF_ALE__NAND_ALE	| MUX_PAD_CTRL(GPMI_PAD_CTRL2)),
 	IOMUX_PADS(PAD_NANDF_WP_B__NAND_WP_B	| MUX_PAD_CTRL(GPMI_PAD_CTRL2)),
@@ -190,3 +189,10 @@ void setup_display(void)
 	writel(reg, &iomux->gpr[3]);
 }
 #endif /* CONFIG_VIDEO_IPUV3 */
+
+#ifdef CONFIG_ENV_IS_IN_MMC
+int board_mmc_get_env_dev(int devno)
+{
+	return devno - 1;
+}
+#endif
diff --git a/board/engicam/icorem6/Kconfig b/board/engicam/imx6ul/Kconfig
similarity index 72%
rename from board/engicam/icorem6/Kconfig
rename to board/engicam/imx6ul/Kconfig
index 4a1c9ac..e91dd15 100644
--- a/board/engicam/icorem6/Kconfig
+++ b/board/engicam/imx6ul/Kconfig
@@ -1,7 +1,7 @@
-if TARGET_MX6Q_ICORE
+if TARGET_MX6UL_ENGICAM
 
 config SYS_BOARD
-	default "icorem6"
+	default "imx6ul"
 
 config SYS_VENDOR
 	default "engicam"
diff --git a/board/engicam/isiotmx6ul/MAINTAINERS b/board/engicam/imx6ul/MAINTAINERS
similarity index 69%
rename from board/engicam/isiotmx6ul/MAINTAINERS
rename to board/engicam/imx6ul/MAINTAINERS
index 9b66c8d..37f84f8 100644
--- a/board/engicam/isiotmx6ul/MAINTAINERS
+++ b/board/engicam/imx6ul/MAINTAINERS
@@ -1,11 +1,14 @@
-ISIOTMX6UL BOARD
+MX6UL_ENGICAM BOARD
 M:	Jagan Teki <jagan@amarulasolutions.com>
 S:	Maintained
-F:	board/engicam/isiotmx6ul
+F:	board/engicam/imx6ul
 F:	include/configs/imx6-engicam.h
-F:	configs/imx6ul_isiot_mmc_defconfig
+F:	configs/imx6ul_geam_mmc_defconfig
+F:	configs/imx6ul_geam_nand_defconfig
 F:	configs/imx6ul_isiot_emmc_defconfig
+F:	configs/imx6ul_isiot_mmc_defconfig
 F:	configs/imx6ul_isiot_nand_defconfig
+F:	arch/arm/dts/imx6ul-geam-kit.dts
 F:	arch/arm/dts/imx6ul-isiot.dtsi
 F:	arch/arm/dts/imx6ul-isiot-mmc.dts
 F:	arch/arm/dts/imx6ul-isiot-emmc.dts
diff --git a/board/engicam/icorem6/Makefile b/board/engicam/imx6ul/Makefile
similarity index 80%
rename from board/engicam/icorem6/Makefile
rename to board/engicam/imx6ul/Makefile
index 9ec9ecd..c78c7e4 100644
--- a/board/engicam/icorem6/Makefile
+++ b/board/engicam/imx6ul/Makefile
@@ -3,4 +3,4 @@
 # SPDX-License-Identifier:	GPL-2.0+
 #
 
-obj-y  := icorem6.o
+obj-y  := imx6ul.o
diff --git a/board/engicam/icorem6/README b/board/engicam/imx6ul/README
similarity index 74%
rename from board/engicam/icorem6/README
rename to board/engicam/imx6ul/README
index 3779e96..1e85f61 100644
--- a/board/engicam/icorem6/README
+++ b/board/engicam/imx6ul/README
@@ -1,10 +1,13 @@
-How to use U-Boot on Engicam i.CoreM6 Solo/DualLite and Quad/Dual Starter Kit:
------------------------------------------------------------------------------
+Hsow to use U-Boot on Engicam GEAM6UL and Is.IoT MX6UL Starter Kit:
+-------------------------------------------------------------------
 
 $ make mrproper
 
-- Configure U-Boot for Engicam i.CoreM6 Quad/Dual/Solo/DualLite:
-$ make imx6qdl_icore_mmc_defconfig
+- Configure U-Boot for Engicam GEAM6UL:
+$ make imx6ul_geam_mmc_defconfig
+
+- Configure U-Boot for Engicam Is.IoT MX6UL:
+$ make imx6ul_isiot_mmc_defconfig
 
 - Build U-Boot
 $ make
diff --git a/board/engicam/geam6ul/geam6ul.c b/board/engicam/imx6ul/imx6ul.c
similarity index 95%
rename from board/engicam/geam6ul/geam6ul.c
rename to board/engicam/imx6ul/imx6ul.c
index 23e7e4b..a903a36 100644
--- a/board/engicam/geam6ul/geam6ul.c
+++ b/board/engicam/imx6ul/imx6ul.c
@@ -7,6 +7,7 @@
  */
 
 #include <common.h>
+#include <mmc.h>
 
 #include <asm/io.h>
 #include <asm/gpio.h>
@@ -88,3 +89,11 @@ void setup_gpmi_nand(void)
 	setbits_le32(&mxc_ccm->CCGR0, MXC_CCM_CCGR0_APBHDMA_MASK);
 }
 #endif /* CONFIG_NAND_MXS */
+
+#ifdef CONFIG_ENV_IS_IN_MMC
+int board_mmc_get_env_dev(int devno)
+{
+	/* dev 0 for SD/eSD, dev 1 for MMC/eMMC */
+	return (devno == 0) ? 0 : 1;
+}
+#endif
diff --git a/board/engicam/isiotmx6ul/Kconfig b/board/engicam/isiotmx6ul/Kconfig
deleted file mode 100644
index 10c2c50..0000000
--- a/board/engicam/isiotmx6ul/Kconfig
+++ /dev/null
@@ -1,12 +0,0 @@
-if TARGET_MX6UL_ISIOT
-
-config SYS_BOARD
-	default "isiotmx6ul"
-
-config SYS_VENDOR
-	default "engicam"
-
-config SYS_CONFIG_NAME
-	default "imx6-engicam"
-
-endif
diff --git a/board/engicam/isiotmx6ul/Makefile b/board/engicam/isiotmx6ul/Makefile
deleted file mode 100644
index f4f8c78..0000000
--- a/board/engicam/isiotmx6ul/Makefile
+++ /dev/null
@@ -1,6 +0,0 @@
-# Copyright (C) 2016 Amarula Solutions B.V.
-#
-# SPDX-License-Identifier:	GPL-2.0+
-#
-
-obj-y  := isiotmx6ul.o
diff --git a/board/engicam/isiotmx6ul/README b/board/engicam/isiotmx6ul/README
deleted file mode 100644
index 1d177ac..0000000
--- a/board/engicam/isiotmx6ul/README
+++ /dev/null
@@ -1,28 +0,0 @@
-How to use U-Boot on Engicam Is.IoT MX6UL Starter Kit:
------------------------------------------------------
-
-- Configure U-Boot for Engicam Is.IoT MX6UL
-
-$ make mrproper
-$ make imx6ul_isiot_mmc_defconfig
-$ make
-
-This will generate the SPL image called SPL and the u-boot-dtb.img.
-
-- Flash the SPL image into the micro SD card:
-
-sudo dd if=SPL of=/dev/mmcblk0 bs=1k seek=1; sync
-
-- Flash the u-boot-dtb.img image into the micro SD card:
-
-sudo dd if=u-boot-dtb.img of=/dev/mmcblk0 bs=1k seek=69; sync
-
-- Jumper settings:
-
-MMC Boot: JM3 Closed
-
-- Connect the Serial cable between the Starter Kit and the PC for the console.
-(J28 is the Linux Serial console connector)
-
-- Insert the micro SD card in the board, power it up and U-Boot messages should
-come up.
diff --git a/board/engicam/isiotmx6ul/isiotmx6ul.c b/board/engicam/isiotmx6ul/isiotmx6ul.c
deleted file mode 100644
index 05d23c2..0000000
--- a/board/engicam/isiotmx6ul/isiotmx6ul.c
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (C) 2016 Amarula Solutions B.V.
- * Copyright (C) 2016 Engicam S.r.l.
- * Author: Jagan Teki <jagan@amarulasolutions.com>
- *
- * SPDX-License-Identifier:	GPL-2.0+
- */
-
-#include <common.h>
-#include <mmc.h>
-
-#include <asm/io.h>
-#include <asm/gpio.h>
-#include <linux/sizes.h>
-
-#include <asm/arch/clock.h>
-#include <asm/arch/crm_regs.h>
-#include <asm/arch/iomux.h>
-#include <asm/arch/mx6-pins.h>
-#include <asm/arch/sys_proto.h>
-#include <asm/mach-imx/iomux-v3.h>
-
-#include "../common/board.h"
-
-DECLARE_GLOBAL_DATA_PTR;
-
-#ifdef CONFIG_NAND_MXS
-
-#define GPMI_PAD_CTRL0		(PAD_CTL_PKE | PAD_CTL_PUE | PAD_CTL_PUS_100K_UP)
-#define GPMI_PAD_CTRL1		(PAD_CTL_DSE_40ohm | PAD_CTL_SPEED_MED | \
-				PAD_CTL_SRE_FAST)
-#define GPMI_PAD_CTRL2		(GPMI_PAD_CTRL0 | GPMI_PAD_CTRL1)
-
-static iomux_v3_cfg_t const nand_pads[] = {
-	IOMUX_PADS(PAD_NAND_DATA00__RAWNAND_DATA00 | MUX_PAD_CTRL(GPMI_PAD_CTRL2)),
-	IOMUX_PADS(PAD_NAND_DATA01__RAWNAND_DATA01 | MUX_PAD_CTRL(GPMI_PAD_CTRL2)),
-	IOMUX_PADS(PAD_NAND_DATA02__RAWNAND_DATA02 | MUX_PAD_CTRL(GPMI_PAD_CTRL2)),
-	IOMUX_PADS(PAD_NAND_DATA03__RAWNAND_DATA03 | MUX_PAD_CTRL(GPMI_PAD_CTRL2)),
-	IOMUX_PADS(PAD_NAND_DATA04__RAWNAND_DATA04 | MUX_PAD_CTRL(GPMI_PAD_CTRL2)),
-	IOMUX_PADS(PAD_NAND_DATA05__RAWNAND_DATA05 | MUX_PAD_CTRL(GPMI_PAD_CTRL2)),
-	IOMUX_PADS(PAD_NAND_DATA06__RAWNAND_DATA06 | MUX_PAD_CTRL(GPMI_PAD_CTRL2)),
-	IOMUX_PADS(PAD_NAND_DATA07__RAWNAND_DATA07 | MUX_PAD_CTRL(GPMI_PAD_CTRL2)),
-	IOMUX_PADS(PAD_NAND_CLE__RAWNAND_CLE | MUX_PAD_CTRL(GPMI_PAD_CTRL2)),
-	IOMUX_PADS(PAD_NAND_ALE__RAWNAND_ALE | MUX_PAD_CTRL(GPMI_PAD_CTRL2)),
-	IOMUX_PADS(PAD_NAND_CE0_B__RAWNAND_CE0_B | MUX_PAD_CTRL(GPMI_PAD_CTRL2)),
-	IOMUX_PADS(PAD_NAND_RE_B__RAWNAND_RE_B | MUX_PAD_CTRL(GPMI_PAD_CTRL2)),
-	IOMUX_PADS(PAD_NAND_WE_B__RAWNAND_WE_B | MUX_PAD_CTRL(GPMI_PAD_CTRL2)),
-	IOMUX_PADS(PAD_NAND_WP_B__RAWNAND_WP_B | MUX_PAD_CTRL(GPMI_PAD_CTRL2)),
-	IOMUX_PADS(PAD_NAND_READY_B__RAWNAND_READY_B | MUX_PAD_CTRL(GPMI_PAD_CTRL2)),
-};
-
-void setup_gpmi_nand(void)
-{
-	struct mxc_ccm_reg *mxc_ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR;
-
-	/* config gpmi nand iomux */
-	SETUP_IOMUX_PADS(nand_pads);
-
-	clrbits_le32(&mxc_ccm->CCGR4,
-		     MXC_CCM_CCGR4_RAWNAND_U_BCH_INPUT_APB_MASK |
-		     MXC_CCM_CCGR4_RAWNAND_U_GPMI_BCH_INPUT_BCH_MASK |
-		     MXC_CCM_CCGR4_RAWNAND_U_GPMI_BCH_INPUT_GPMI_IO_MASK |
-		     MXC_CCM_CCGR4_RAWNAND_U_GPMI_INPUT_APB_MASK |
-		     MXC_CCM_CCGR4_PL301_MX6QPER1_BCH_MASK);
-
-	/*
-	 * config gpmi and bch clock to 100 MHz
-	 * bch/gpmi select PLL2 PFD2 400M
-	 * 100M = 400M / 4
-	 */
-	clrbits_le32(&mxc_ccm->cscmr1,
-		     MXC_CCM_CSCMR1_BCH_CLK_SEL |
-		     MXC_CCM_CSCMR1_GPMI_CLK_SEL);
-	clrsetbits_le32(&mxc_ccm->cscdr1,
-			MXC_CCM_CSCDR1_BCH_PODF_MASK |
-			MXC_CCM_CSCDR1_GPMI_PODF_MASK,
-			(3 << MXC_CCM_CSCDR1_BCH_PODF_OFFSET) |
-			(3 << MXC_CCM_CSCDR1_GPMI_PODF_OFFSET));
-
-	/* enable gpmi and bch clock gating */
-	setbits_le32(&mxc_ccm->CCGR4,
-		     MXC_CCM_CCGR4_RAWNAND_U_BCH_INPUT_APB_MASK |
-		     MXC_CCM_CCGR4_RAWNAND_U_GPMI_BCH_INPUT_BCH_MASK |
-		     MXC_CCM_CCGR4_RAWNAND_U_GPMI_BCH_INPUT_GPMI_IO_MASK |
-		     MXC_CCM_CCGR4_RAWNAND_U_GPMI_INPUT_APB_MASK |
-		     MXC_CCM_CCGR4_PL301_MX6QPER1_BCH_MASK);
-
-	/* enable apbh clock gating */
-	setbits_le32(&mxc_ccm->CCGR0, MXC_CCM_CCGR0_APBHDMA_MASK);
-}
-#endif /* CONFIG_NAND_MXS */
-
-#ifdef CONFIG_ENV_IS_IN_MMC
-int board_mmc_get_env_dev(int devno)
-{
-	/* dev 0 for SD/eSD, dev 1 for MMC/eMMC */
-	return (devno == 0) ? 0 : 1;
-}
-#endif
-
-#ifdef CONFIG_SPL_BUILD
-#include <spl.h>
-
-#ifdef CONFIG_ENV_IS_IN_MMC
-void board_boot_order(u32 *spl_boot_list)
-{
-	u32 bmode = imx6_src_get_boot_mode();
-	u8 boot_dev = BOOT_DEVICE_MMC1;
-
-	switch ((bmode & IMX6_BMODE_MASK) >> IMX6_BMODE_SHIFT) {
-	case IMX6_BMODE_SD:
-	case IMX6_BMODE_ESD:
-		/* SD/eSD - BOOT_DEVICE_MMC1 */
-		break;
-	case IMX6_BMODE_MMC:
-	case IMX6_BMODE_EMMC:
-		/* MMC/eMMC */
-		boot_dev = BOOT_DEVICE_MMC2;
-		break;
-	default:
-		/* Default - BOOT_DEVICE_MMC1 */
-		printf("Wrong board boot order\n");
-		break;
-	}
-
-	spl_boot_list[0] = boot_dev;
-}
-#endif
-#endif /* CONFIG_SPL_BUILD */
diff --git a/configs/imx6qdl_icore_mmc_defconfig b/configs/imx6qdl_icore_mmc_defconfig
index 31cf1e6..256ccb9 100644
--- a/configs/imx6qdl_icore_mmc_defconfig
+++ b/configs/imx6qdl_icore_mmc_defconfig
@@ -3,7 +3,7 @@ CONFIG_ARCH_MX6=y
 CONFIG_SPL_GPIO_SUPPORT=y
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
-CONFIG_TARGET_MX6Q_ICORE=y
+CONFIG_TARGET_MX6Q_ENGICAM=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_SPL_LIBDISK_SUPPORT=y
 CONFIG_SPL_WATCHDOG_SUPPORT=y
diff --git a/configs/imx6qdl_icore_nand_defconfig b/configs/imx6qdl_icore_nand_defconfig
index ab8b6d2..21cfb85 100644
--- a/configs/imx6qdl_icore_nand_defconfig
+++ b/configs/imx6qdl_icore_nand_defconfig
@@ -3,7 +3,7 @@ CONFIG_ARCH_MX6=y
 CONFIG_SPL_GPIO_SUPPORT=y
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
-CONFIG_TARGET_MX6Q_ICORE=y
+CONFIG_TARGET_MX6Q_ENGICAM=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_SPL_WATCHDOG_SUPPORT=y
 # CONFIG_CMD_BMODE is not set
diff --git a/configs/imx6qdl_icore_rqs_defconfig b/configs/imx6qdl_icore_rqs_defconfig
index 1e57deb..6cf9852 100644
--- a/configs/imx6qdl_icore_rqs_defconfig
+++ b/configs/imx6qdl_icore_rqs_defconfig
@@ -3,7 +3,7 @@ CONFIG_ARCH_MX6=y
 CONFIG_SPL_GPIO_SUPPORT=y
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
-CONFIG_TARGET_MX6Q_ICORE_RQS=y
+CONFIG_TARGET_MX6Q_ENGICAM=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_SPL_LIBDISK_SUPPORT=y
 CONFIG_SPL_WATCHDOG_SUPPORT=y
diff --git a/configs/imx6ul_geam_mmc_defconfig b/configs/imx6ul_geam_mmc_defconfig
index c147d4a..b2ac4a2 100644
--- a/configs/imx6ul_geam_mmc_defconfig
+++ b/configs/imx6ul_geam_mmc_defconfig
@@ -3,7 +3,7 @@ CONFIG_ARCH_MX6=y
 CONFIG_SPL_GPIO_SUPPORT=y
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
-CONFIG_TARGET_MX6UL_GEAM=y
+CONFIG_TARGET_MX6UL_ENGICAM=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_SPL_LIBDISK_SUPPORT=y
 CONFIG_SPL_WATCHDOG_SUPPORT=y
diff --git a/configs/imx6ul_geam_nand_defconfig b/configs/imx6ul_geam_nand_defconfig
index 4e51892..d920af7 100644
--- a/configs/imx6ul_geam_nand_defconfig
+++ b/configs/imx6ul_geam_nand_defconfig
@@ -3,7 +3,7 @@ CONFIG_ARCH_MX6=y
 CONFIG_SPL_GPIO_SUPPORT=y
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
-CONFIG_TARGET_MX6UL_GEAM=y
+CONFIG_TARGET_MX6UL_ENGICAM=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_SPL_WATCHDOG_SUPPORT=y
 # CONFIG_CMD_BMODE is not set
diff --git a/configs/imx6ul_isiot_emmc_defconfig b/configs/imx6ul_isiot_emmc_defconfig
index 5f8a574..72ae08e 100644
--- a/configs/imx6ul_isiot_emmc_defconfig
+++ b/configs/imx6ul_isiot_emmc_defconfig
@@ -3,7 +3,7 @@ CONFIG_ARCH_MX6=y
 CONFIG_SPL_GPIO_SUPPORT=y
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
-CONFIG_TARGET_MX6UL_ISIOT=y
+CONFIG_TARGET_MX6UL_ENGICAM=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_SPL_LIBDISK_SUPPORT=y
 CONFIG_SPL_WATCHDOG_SUPPORT=y
diff --git a/configs/imx6ul_isiot_mmc_defconfig b/configs/imx6ul_isiot_mmc_defconfig
index 367dfa1..ffd12bf 100644
--- a/configs/imx6ul_isiot_mmc_defconfig
+++ b/configs/imx6ul_isiot_mmc_defconfig
@@ -3,7 +3,7 @@ CONFIG_ARCH_MX6=y
 CONFIG_SPL_GPIO_SUPPORT=y
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
-CONFIG_TARGET_MX6UL_ISIOT=y
+CONFIG_TARGET_MX6UL_ENGICAM=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_SPL_LIBDISK_SUPPORT=y
 CONFIG_SPL_WATCHDOG_SUPPORT=y
diff --git a/configs/imx6ul_isiot_nand_defconfig b/configs/imx6ul_isiot_nand_defconfig
index dde1cc2..aaaf9e6 100644
--- a/configs/imx6ul_isiot_nand_defconfig
+++ b/configs/imx6ul_isiot_nand_defconfig
@@ -3,7 +3,7 @@ CONFIG_ARCH_MX6=y
 CONFIG_SPL_GPIO_SUPPORT=y
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
-CONFIG_TARGET_MX6UL_ISIOT=y
+CONFIG_TARGET_MX6UL_ENGICAM=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_SPL_WATCHDOG_SUPPORT=y
 # CONFIG_CMD_BMODE is not set
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH v3 8/9] engicam: imx6q: Return mmc dev 0 for icore
  2017-11-20 18:32 [U-Boot] [PATCH v3 0/9] i.MX6: engicam: Add SPL_OF_CONTROL support Jagan Teki
                   ` (6 preceding siblings ...)
  2017-11-20 18:32 ` [U-Boot] [PATCH v3 7/9] i.MX6: engicam: Add imx6q/imx6ul boards for existing boards Jagan Teki
@ 2017-11-20 18:32 ` Jagan Teki
  2017-11-20 18:32 ` [U-Boot] [PATCH v3 9/9] configs: icore-rqs: Enable falcon mode Jagan Teki
  2017-11-27  9:53 ` [U-Boot] [PATCH v3 0/9] i.MX6: engicam: Add SPL_OF_CONTROL support Stefano Babic
  9 siblings, 0 replies; 11+ messages in thread
From: Jagan Teki @ 2017-11-20 18:32 UTC (permalink / raw)
  To: u-boot

icorem6 has sd on usdhci1 which is devno 0 so return proper
devno from board_mmc_get_env_dev for icorem6 and icorem_6rqs

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
 board/engicam/imx6q/imx6q.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/board/engicam/imx6q/imx6q.c b/board/engicam/imx6q/imx6q.c
index bb0c866..fe37088 100644
--- a/board/engicam/imx6q/imx6q.c
+++ b/board/engicam/imx6q/imx6q.c
@@ -193,6 +193,7 @@ void setup_display(void)
 #ifdef CONFIG_ENV_IS_IN_MMC
 int board_mmc_get_env_dev(int devno)
 {
-	return devno - 1;
+	/* i.CoreM6 RQS has USDHC3 for SD and USDHC4 for eMMC */
+	return (devno == 0) ? 0: (devno - 1);
 }
 #endif
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH v3 9/9] configs: icore-rqs: Enable falcon mode
  2017-11-20 18:32 [U-Boot] [PATCH v3 0/9] i.MX6: engicam: Add SPL_OF_CONTROL support Jagan Teki
                   ` (7 preceding siblings ...)
  2017-11-20 18:32 ` [U-Boot] [PATCH v3 8/9] engicam: imx6q: Return mmc dev 0 for icore Jagan Teki
@ 2017-11-20 18:32 ` Jagan Teki
  2017-11-27  9:53 ` [U-Boot] [PATCH v3 0/9] i.MX6: engicam: Add SPL_OF_CONTROL support Stefano Babic
  9 siblings, 0 replies; 11+ messages in thread
From: Jagan Teki @ 2017-11-20 18:32 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
 configs/imx6qdl_icore_rqs_defconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/configs/imx6qdl_icore_rqs_defconfig b/configs/imx6qdl_icore_rqs_defconfig
index 6cf9852..aaf9646 100644
--- a/configs/imx6qdl_icore_rqs_defconfig
+++ b/configs/imx6qdl_icore_rqs_defconfig
@@ -16,6 +16,7 @@ CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg"
 CONFIG_BOOTDELAY=3
 CONFIG_SPL=y
 CONFIG_SPL_EXT_SUPPORT=y
+CONFIG_SPL_OS_BOOT=y
 CONFIG_HUSH_PARSER=y
 CONFIG_SYS_PROMPT="icorem6qdl-rqs> "
 CONFIG_CRC32_VERIFY=y
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH v3 0/9] i.MX6: engicam: Add SPL_OF_CONTROL support
  2017-11-20 18:32 [U-Boot] [PATCH v3 0/9] i.MX6: engicam: Add SPL_OF_CONTROL support Jagan Teki
                   ` (8 preceding siblings ...)
  2017-11-20 18:32 ` [U-Boot] [PATCH v3 9/9] configs: icore-rqs: Enable falcon mode Jagan Teki
@ 2017-11-27  9:53 ` Stefano Babic
  9 siblings, 0 replies; 11+ messages in thread
From: Stefano Babic @ 2017-11-27  9:53 UTC (permalink / raw)
  To: u-boot

On 20/11/2017 19:32, Jagan Teki wrote:
> This series has fix for data abort[1] which is observed for pinctrl data
> before reloaction, thanks Lokesh for the suggestions.
> 
> Changes for v3:
> - Add pinctrl data fix for 'data abort' issue
> - Add proper mmc get env device support for imx6q boards
> - Enabled falcon for icorem6_rqs

Applied (whole series) to u-boot-imx, thanks !

Best regards,
Stefano Babic

> 
> Changes for v2:
> - Fixed imx6ul build issue
> - Add FDT support for mx6ul_14x14_evk
> 
> [1] https://www.mail-archive.com/u-boot at lists.denx.de/msg267220.html
> 
> Jagan Teki (9):
>   i.MX6: engicam: Move set_fdt_file to common
>   i.MX6Q: icorem6: Move spl load fit to common/spl
>   i.MX6Q: icore: Add SPL_OF_CONTROL support
>   pinctrl: imx6ul: Fix pinctrl data overlapped with DT area
>   i.MX6UL: icore: Add SPL_OF_CONTROL support
>   board: icore-rqs: Fix mmc get env device
>   i.MX6: engicam: Add imx6q/imx6ul boards for existing boards
>   engicam: imx6q: Return mmc dev 0 for icore
>   configs: icore-rqs: Enable falcon mode
> 
>  arch/arm/dts/imx6qdl-icore-rqs.dtsi                |   7 +
>  arch/arm/dts/imx6qdl-icore.dtsi                    |   2 +
>  arch/arm/dts/imx6qdl.dtsi                          |   5 +
>  arch/arm/dts/imx6ul-geam-kit.dts                   |   4 +
>  arch/arm/dts/imx6ul-isiot-emmc.dts                 |   2 +
>  arch/arm/dts/imx6ul-isiot.dtsi                     |   2 +
>  arch/arm/dts/imx6ul.dtsi                           |   6 +
>  arch/arm/mach-imx/mx6/Kconfig                      |  49 ++---
>  board/engicam/common/board.c                       |  24 ++
>  board/engicam/common/board.h                       |   1 -
>  board/engicam/common/spl.c                         |  42 ++++
>  board/engicam/geam6ul/MAINTAINERS                  |   8 -
>  board/engicam/geam6ul/README                       |  28 ---
>  board/engicam/icorem6_rqs/Kconfig                  |  12 -
>  board/engicam/icorem6_rqs/MAINTAINERS              |   9 -
>  board/engicam/icorem6_rqs/Makefile                 |   6 -
>  board/engicam/icorem6_rqs/icorem6_rqs.c            | 124 +----------
>  board/engicam/{geam6ul => imx6q}/Kconfig           |   4 +-
>  board/engicam/{icorem6 => imx6q}/MAINTAINERS       |   8 +-
>  board/engicam/{geam6ul => imx6q}/Makefile          |   2 +-
>  board/engicam/{icorem6_rqs => imx6q}/README        |   9 +-
>  board/engicam/{icorem6/icorem6.c => imx6q/imx6q.c} |  98 +--------
>  board/engicam/{icorem6 => imx6ul}/Kconfig          |   4 +-
>  board/engicam/{isiotmx6ul => imx6ul}/MAINTAINERS   |   9 +-
>  board/engicam/{icorem6 => imx6ul}/Makefile         |   2 +-
>  board/engicam/{icorem6 => imx6ul}/README           |  11 +-
>  .../engicam/{geam6ul/geam6ul.c => imx6ul/imx6ul.c} |  88 +-------
>  board/engicam/isiotmx6ul/Kconfig                   |  12 -
>  board/engicam/isiotmx6ul/Makefile                  |   6 -
>  board/engicam/isiotmx6ul/README                    |  28 ---
>  board/engicam/isiotmx6ul/isiotmx6ul.c              | 241 ---------------------
>  configs/imx6qdl_icore_mmc_defconfig                |   3 +-
>  configs/imx6qdl_icore_nand_defconfig               |   2 +-
>  configs/imx6qdl_icore_rqs_defconfig                |   4 +-
>  configs/imx6ul_geam_mmc_defconfig                  |   3 +-
>  configs/imx6ul_geam_nand_defconfig                 |   2 +-
>  configs/imx6ul_isiot_emmc_defconfig                |   3 +-
>  configs/imx6ul_isiot_mmc_defconfig                 |   3 +-
>  configs/imx6ul_isiot_nand_defconfig                |   2 +-
>  drivers/pinctrl/nxp/pinctrl-imx6.c                 |   7 +-
>  include/configs/imx6-engicam.h                     |  11 -
>  41 files changed, 170 insertions(+), 723 deletions(-)
>  delete mode 100644 board/engicam/geam6ul/MAINTAINERS
>  delete mode 100644 board/engicam/geam6ul/README
>  delete mode 100644 board/engicam/icorem6_rqs/Kconfig
>  delete mode 100644 board/engicam/icorem6_rqs/MAINTAINERS
>  delete mode 100644 board/engicam/icorem6_rqs/Makefile
>  rename board/engicam/{geam6ul => imx6q}/Kconfig (73%)
>  rename board/engicam/{icorem6 => imx6q}/MAINTAINERS (58%)
>  rename board/engicam/{geam6ul => imx6q}/Makefile (80%)
>  rename board/engicam/{icorem6_rqs => imx6q}/README (71%)
>  rename board/engicam/{icorem6/icorem6.c => imx6q/imx6q.c} (72%)
>  rename board/engicam/{icorem6 => imx6ul}/Kconfig (72%)
>  rename board/engicam/{isiotmx6ul => imx6ul}/MAINTAINERS (69%)
>  rename board/engicam/{icorem6 => imx6ul}/Makefile (80%)
>  rename board/engicam/{icorem6 => imx6ul}/README (74%)
>  rename board/engicam/{geam6ul/geam6ul.c => imx6ul/imx6ul.c} (59%)
>  delete mode 100644 board/engicam/isiotmx6ul/Kconfig
>  delete mode 100644 board/engicam/isiotmx6ul/Makefile
>  delete mode 100644 board/engicam/isiotmx6ul/README
>  delete mode 100644 board/engicam/isiotmx6ul/isiotmx6ul.c
> 


-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2017-11-27  9:53 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-20 18:32 [U-Boot] [PATCH v3 0/9] i.MX6: engicam: Add SPL_OF_CONTROL support Jagan Teki
2017-11-20 18:32 ` [U-Boot] [PATCH v3 1/9] i.MX6: engicam: Move set_fdt_file to common Jagan Teki
2017-11-20 18:32 ` [U-Boot] [PATCH v3 2/9] i.MX6Q: icorem6: Move spl load fit to common/spl Jagan Teki
2017-11-20 18:32 ` [U-Boot] [PATCH v3 3/9] i.MX6Q: icore: Add SPL_OF_CONTROL support Jagan Teki
2017-11-20 18:32 ` [U-Boot] [PATCH v3 4/9] pinctrl: imx6ul: Fix pinctrl data overlapped with DT area Jagan Teki
2017-11-20 18:32 ` [U-Boot] [PATCH v3 5/9] i.MX6UL: icore: Add SPL_OF_CONTROL support Jagan Teki
2017-11-20 18:32 ` [U-Boot] [PATCH v3 6/9] board: icore-rqs: Fix mmc get env device Jagan Teki
2017-11-20 18:32 ` [U-Boot] [PATCH v3 7/9] i.MX6: engicam: Add imx6q/imx6ul boards for existing boards Jagan Teki
2017-11-20 18:32 ` [U-Boot] [PATCH v3 8/9] engicam: imx6q: Return mmc dev 0 for icore Jagan Teki
2017-11-20 18:32 ` [U-Boot] [PATCH v3 9/9] configs: icore-rqs: Enable falcon mode Jagan Teki
2017-11-27  9:53 ` [U-Boot] [PATCH v3 0/9] i.MX6: engicam: Add SPL_OF_CONTROL support Stefano Babic

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.