Skip to contentSkip to conversation

i.MX6: engicam: Add SPL_OF_CONTROL support

PATCH New Jagan Teki 2 participants 11 messages Nov 20, 2017 – Nov 27, 2017

Subsystems (6)
lore
Share & tools
lore

Jagan Teki

author
#0 lore raw

v3 cover i.MX6: engicam: Add SPL_OF_CONTROL support

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
Signature · 1 line
2.7.4
author
#1 lore raw

PATCH v3 1/9 i.MX6: engicam: Move set_fdt_file to common

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

---
 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(-)
board/engicam/common/board.c +24 -0
index c7ec55f..f86fb2b 100644
@@ -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) >>
board/engicam/common/board.h +0 -1
index f364a23..c720b0b 100644
@@ -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_ */
board/engicam/geam6ul/geam6ul.c +0 -6
index ffd383a..15bd8b2 100644
@@ -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)
board/engicam/icorem6/icorem6.c +0 -8
index 3d4f713..59c085b 100644
@@ -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)
board/engicam/icorem6_rqs/icorem6_rqs.c +0 -8
index 0114889..8afc9be 100644
@@ -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>
 
board/engicam/isiotmx6ul/isiotmx6ul.c +0 -11
index fbf1724..9afa8e4 100644
@@ -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>
 
Signature · 1 line
2.7.4
author
#2 lore raw

PATCH v3 2/9 i.MX6Q: icorem6: Move spl load fit to common/spl

In reply to Jagan Teki

Move spl load fit code into common/spl

---
 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(-)
board/engicam/common/spl.c +16 -0
index 8711418..f8ae3ac 100644
@@ -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)
 {
board/engicam/icorem6/icorem6.c +0 -12
index 59c085b..e173124 100644
@@ -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 */
board/engicam/icorem6_rqs/icorem6_rqs.c +0 -12
index 8afc9be..84ab936 100644
@@ -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 */
Signature · 1 line
2.7.4
author
#3 lore raw

PATCH v3 3/9 i.MX6Q: icore: Add SPL_OF_CONTROL support

In reply to Jagan Teki

Add OF_CONTROL support for SPL code.

---
 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(-)
arch/arm/dts/imx6qdl-icore-rqs.dtsi +2 -0
index 8b9d5b4..65cbf5a 100644
@@ -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
arch/arm/dts/imx6qdl-icore.dtsi +2 -0
index a485c3e..06d9bc3 100644
@@ -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
arch/arm/dts/imx6qdl.dtsi +5 -0
index b13b0b2..e04b570 100644
@@ -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";
arch/arm/mach-imx/mx6/Kconfig +8 -0
index fd73c67..b9aec2f 100644
@@ -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"
board/engicam/icorem6/icorem6.c +0 -75

84 lines not on this page · raw message

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

119 lines not on this page · raw message

configs/imx6qdl_icore_mmc_defconfig +1 -0
index 6e93c49..31cf1e6 100644
@@ -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
configs/imx6qdl_icore_rqs_defconfig +1 -0
index fbe9651..1e57deb 100644
@@ -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
include/configs/imx6-engicam.h +12 -10
index 86c1d38..b88afd7 100644
@@ -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 */
Signature · 1 line
2.7.4
author
#4 lore raw

PATCH v3 4/9 pinctrl: imx6ul: Fix pinctrl data overlapped with DT area

In reply to Jagan Teki

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

---
 drivers/pinctrl/nxp/pinctrl-imx6.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
drivers/pinctrl/nxp/pinctrl-imx6.c +6 -1
index 0f767d9..cac577b 100644
@@ -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 */ }
 };
Signature · 1 line
2.7.4
author
#5 lore raw

PATCH v3 5/9 i.MX6UL: icore: Add SPL_OF_CONTROL support

In reply to Jagan Teki

Add OF_CONTROL support for SPL code.

---
 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(-)
arch/arm/dts/imx6ul-geam-kit.dts +4 -0
index 07c21cb..15e3f94 100644
@@ -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
arch/arm/dts/imx6ul-isiot-emmc.dts +2 -0
index 677de96..a611e3b 100644
@@ -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
arch/arm/dts/imx6ul-isiot.dtsi +2 -0
index 9a3c35c..5007a88 100644
@@ -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
arch/arm/dts/imx6ul.dtsi +6 -0
index def5f8c..7affab8 100644
@@ -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";
arch/arm/mach-imx/mx6/Kconfig +9 -0
index b9aec2f..770a3c1 100644
@@ -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"
board/engicam/geam6ul/geam6ul.c +0 -81

90 lines not on this page · raw message

board/engicam/isiotmx6ul/isiotmx6ul.c +0 -101

111 lines not on this page · raw message

configs/imx6ul_geam_mmc_defconfig +1 -0
index ce7c288..c147d4a 100644
@@ -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
configs/imx6ul_isiot_emmc_defconfig +1 -0
index 94af53e..5f8a574 100644
@@ -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
configs/imx6ul_isiot_mmc_defconfig +1 -0
index 0a990d7..367dfa1 100644
@@ -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
include/configs/imx6-engicam.h +0 -13
index b88afd7..0c45e06 100644
@@ -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 */
Signature · 1 line
2.7.4
author
#6 lore raw

PATCH v3 6/9 board: icore-rqs: Fix mmc get env device

In reply to Jagan Teki

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

---
 arch/arm/dts/imx6qdl-icore-rqs.dtsi     | 5 +++++
 board/engicam/icorem6_rqs/icorem6_rqs.c | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)
arch/arm/dts/imx6qdl-icore-rqs.dtsi +5 -0
index 65cbf5a..816cdce 100644
@@ -43,6 +43,11 @@
 #include <dt-bindings/clock/imx6qdl-clock.h>
 
 / {
+	aliases {
+		mmc1 = &usdhc3;
+		mmc2 = &usdhc4;
+	};
+
 	memory {
 		reg = <0x10000000 0x80000000>;
 	};
board/engicam/icorem6_rqs/icorem6_rqs.c +1 -1
index cd73dfa..a55a754 100644
@@ -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
 
Signature · 1 line
2.7.4
author
#7 lore raw

PATCH v3 7/9 i.MX6: engicam: Add imx6q/imx6ul boards for existing boards

In reply to Jagan Teki

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

---
 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
arch/arm/mach-imx/mx6/Kconfig +6 -44
index 770a3c1..04883e5 100644
@@ -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"
board/engicam/common/board.c +1 -1
index f86fb2b..f633c71 100644
@@ -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"))
board/engicam/common/spl.c +26 -0
index f8ae3ac..6e2389d 100644
@@ -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)
 {
board/engicam/geam6ul/MAINTAINERS deleted +0 -8
deleted file mode 100644
index 2b882d2..0000000
@@ -1,8 +0,0 @@
-GEAM6UL BOARD
-M:	Jagan Teki <[email protected]>
-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
board/engicam/geam6ul/README deleted +0 -28
deleted file mode 100644
index 0df6ae4..0000000
@@ -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.
board/engicam/icorem6_rqs/Kconfig deleted +0 -12
deleted file mode 100644
index 6dc3a07..0000000
@@ -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
board/engicam/icorem6_rqs/MAINTAINERS deleted +0 -9
deleted file mode 100644
index 9a74265..0000000
@@ -1,9 +0,0 @@
-ICOREM6QDL_RQS BOARD
-M:	Jagan Teki <[email protected]>
-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
board/engicam/icorem6_rqs/Makefile deleted +0 -6
deleted file mode 100644
index 2e3933c..0000000
@@ -1,6 +0,0 @@
-# Copyright (C) 2016 Amarula Solutions B.V.
-#
-# SPDX-License-Identifier:	GPL-2.0+
-#
-
-obj-y  := icorem6_rqs.o
board/engicam/imx6q/Kconfig renamed from board/engicam/geam6ul/Kconfig +2 -2
similarity index 73%
rename from board/engicam/geam6ul/Kconfig
rename to board/engicam/imx6q/Kconfig
index 7f4023e..48eb60c 100644
@@ -1,7 +1,7 @@
-if TARGET_MX6UL_GEAM
+if TARGET_MX6Q_ENGICAM
 
 config SYS_BOARD
-	default "geam6ul"
+	default "imx6q"
 
 config SYS_VENDOR
 	default "engicam"
board/engicam/imx6q/MAINTAINERS renamed from board/engicam/icorem6/MAINTAINERS +6 -2
similarity index 58%
rename from board/engicam/icorem6/MAINTAINERS
rename to board/engicam/imx6q/MAINTAINERS
index a348bdd..82efb46 100644
@@ -1,10 +1,14 @@
-ICOREM6QDL BOARD
+MX6Q_ENGICAM BOARD
 M:	Jagan Teki <[email protected]>
 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
board/engicam/imx6q/Makefile renamed from board/engicam/geam6ul/Makefile +1 -1
similarity index 80%
rename from board/engicam/geam6ul/Makefile
rename to board/engicam/imx6q/Makefile
index 0e367e2..ef2fb6a 100644
@@ -3,4 +3,4 @@
 # SPDX-License-Identifier:	GPL-2.0+
 #
 
-obj-y  := geam6ul.o
+obj-y  := imx6q.o
board/engicam/imx6q/README renamed from board/engicam/icorem6_rqs/README +6 -3
similarity index 71%
rename from board/engicam/icorem6_rqs/README
rename to board/engicam/imx6q/README
index 97e978c..3f3478c 100644
@@ -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
board/engicam/imx6q/imx6q.c renamed from board/engicam/icorem6/icorem6.c +8 -2
similarity index 97%
rename from board/engicam/icorem6/icorem6.c
rename to board/engicam/imx6q/imx6q.c
index a967ccd..bb0c866 100644
@@ -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
board/engicam/imx6ul/Kconfig renamed from board/engicam/icorem6/Kconfig +2 -2
similarity index 72%
rename from board/engicam/icorem6/Kconfig
rename to board/engicam/imx6ul/Kconfig
index 4a1c9ac..e91dd15 100644
@@ -1,7 +1,7 @@
-if TARGET_MX6Q_ICORE
+if TARGET_MX6UL_ENGICAM
 
 config SYS_BOARD
-	default "icorem6"
+	default "imx6ul"
 
 config SYS_VENDOR
 	default "engicam"
board/engicam/imx6ul/MAINTAINERS renamed from board/engicam/isiotmx6ul/MAINTAINERS +6 -3
similarity index 69%
rename from board/engicam/isiotmx6ul/MAINTAINERS
rename to board/engicam/imx6ul/MAINTAINERS
index 9b66c8d..37f84f8 100644
@@ -1,11 +1,14 @@
-ISIOTMX6UL BOARD
+MX6UL_ENGICAM BOARD
 M:	Jagan Teki <[email protected]>
 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
board/engicam/imx6ul/Makefile renamed from board/engicam/icorem6/Makefile +1 -1
similarity index 80%
rename from board/engicam/icorem6/Makefile
rename to board/engicam/imx6ul/Makefile
index 9ec9ecd..c78c7e4 100644
@@ -3,4 +3,4 @@
 # SPDX-License-Identifier:	GPL-2.0+
 #
 
-obj-y  := icorem6.o
+obj-y  := imx6ul.o
board/engicam/imx6ul/README renamed from board/engicam/icorem6/README +7 -4
similarity index 74%
rename from board/engicam/icorem6/README
rename to board/engicam/imx6ul/README
index 3779e96..1e85f61 100644
@@ -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
board/engicam/imx6ul/imx6ul.c renamed from board/engicam/geam6ul/geam6ul.c +9 -0
similarity index 95%
rename from board/engicam/geam6ul/geam6ul.c
rename to board/engicam/imx6ul/imx6ul.c
index 23e7e4b..a903a36 100644
@@ -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
board/engicam/isiotmx6ul/Kconfig deleted +0 -12
deleted file mode 100644
index 10c2c50..0000000
@@ -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
board/engicam/isiotmx6ul/Makefile deleted +0 -6
deleted file mode 100644
index f4f8c78..0000000
@@ -1,6 +0,0 @@
-# Copyright (C) 2016 Amarula Solutions B.V.
-#
-# SPDX-License-Identifier:	GPL-2.0+
-#
-
-obj-y  := isiotmx6ul.o
board/engicam/isiotmx6ul/README deleted +0 -28
deleted file mode 100644
index 1d177ac..0000000
@@ -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.
board/engicam/isiotmx6ul/isiotmx6ul.c deleted +0 -129

129 lines not on this page · raw message

configs/imx6qdl_icore_mmc_defconfig +1 -1
index 31cf1e6..256ccb9 100644
@@ -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
configs/imx6qdl_icore_nand_defconfig +1 -1
index ab8b6d2..21cfb85 100644
@@ -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
configs/imx6qdl_icore_rqs_defconfig +1 -1
index 1e57deb..6cf9852 100644
@@ -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
configs/imx6ul_geam_mmc_defconfig +1 -1
index c147d4a..b2ac4a2 100644
@@ -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
configs/imx6ul_geam_nand_defconfig +1 -1
index 4e51892..d920af7 100644
@@ -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
configs/imx6ul_isiot_emmc_defconfig +1 -1
index 5f8a574..72ae08e 100644
@@ -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
configs/imx6ul_isiot_mmc_defconfig +1 -1
index 367dfa1..ffd12bf 100644
@@ -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
configs/imx6ul_isiot_nand_defconfig +1 -1
index dde1cc2..aaaf9e6 100644
@@ -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
Signature · 1 line
2.7.4
author
#8 lore raw

PATCH v3 8/9 engicam: imx6q: Return mmc dev 0 for icore

In reply to Jagan Teki

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

---
 board/engicam/imx6q/imx6q.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
board/engicam/imx6q/imx6q.c +2 -1
index bb0c866..fe37088 100644
@@ -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
Signature · 1 line
2.7.4
author
#9 lore raw

PATCH v3 9/9 configs: icore-rqs: Enable falcon mode

In reply to Jagan Teki
---
 configs/imx6qdl_icore_rqs_defconfig | 1 +
 1 file changed, 1 insertion(+)
configs/imx6qdl_icore_rqs_defconfig +1 -0
index 6cf9852..aaf9646 100644
@@ -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
Signature · 1 line
2.7.4
#10 lore raw

v3 cover i.MX6: engicam: Add SPL_OF_CONTROL support

In reply to Jagan Teki
Quoted 7 lines · Jagan Teki

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

Quoted 80 lines

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
Signature · 5 lines
=====================================================================
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
=====================================================================