All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v2 0/3] ddr: vybrid: Support for vf610 built-in DDR3 memory calibration
@ 2018-12-05 16:04 Lukasz Majewski
  2018-12-05 16:04 ` [U-Boot] [PATCH v2 1/3] ddr: vybrid: Add DDRMC calibration related registers (DQS to DQ) Lukasz Majewski
                   ` (3 more replies)
  0 siblings, 4 replies; 654+ messages in thread
From: Lukasz Majewski @ 2018-12-05 16:04 UTC (permalink / raw)
  To: u-boot

This patch series provides code to perform read leveling - RDLVL, which
is adjusting the DQS strobe in relation to the DQ signals so that the
strobe edge is centered in the window of valid read data.

The code is based on Vybrid's Reference Manual's:
"VFxxx Controller Reference Manual, Rev. 0, 10/2016", page 1600,
10.1.6.16.4.1 "Software Read Leveling in MC Evaluation Mode"

and uses clarification provided by following NXP's community thread:
"Vybrid: About DDR leveling feature on DDRMC."
https://community.nxp.com/thread/395323

It depends on a BITMAP rework patch:
usb: composite: Move bitmap related operations to ./include/linux/bitmap.h
http://patchwork.ozlabs.org/patch/1006448/


Changes in v2:
- CR93_SWLVL_EXIT -> CR94_SWLVL_EXIT (EXIT is in CR94)
- Add more defines to imx-regs.h (moved from *-calibration.h)
 - CR93_SWLVL_EXIT -> CR94_SWLVL_EXIT (EXIT is in CR94)
 - Update Kconfig information regarding DDRMC_VF610_CALIBRATION
 - Update ddrmc-vf610-calibration. comment
 - Update code after extending imx-regs.h
 - Remove not needed #ifdef

Lukasz Majewski (3):
  ddr: vybrid: Add DDRMC calibration related registers (DQS to DQ)
  ddr: vybrid: Provide code to perform on-boot calibration
  ddr: vybrid: Add calibration code to memory controler's (DDRMC) setup
    code

 arch/arm/include/asm/arch-vf610/imx-regs.h  |  14 +-
 arch/arm/mach-imx/Kconfig                   |  12 +
 arch/arm/mach-imx/Makefile                  |   1 +
 arch/arm/mach-imx/ddrmc-vf610-calibration.c | 342 ++++++++++++++++++++++++++++
 arch/arm/mach-imx/ddrmc-vf610-calibration.h |  45 ++++
 arch/arm/mach-imx/ddrmc-vf610.c             |   5 +
 6 files changed, 418 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/mach-imx/ddrmc-vf610-calibration.c
 create mode 100644 arch/arm/mach-imx/ddrmc-vf610-calibration.h

-- 
2.11.0

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

* [U-Boot] [PATCH v2 1/3] ddr: vybrid: Add DDRMC calibration related registers (DQS to DQ)
  2018-12-05 16:04 [U-Boot] [PATCH v2 0/3] ddr: vybrid: Support for vf610 built-in DDR3 memory calibration Lukasz Majewski
@ 2018-12-05 16:04 ` Lukasz Majewski
  2018-12-05 16:04 ` [U-Boot] [PATCH v2 2/3] ddr: vybrid: Provide code to perform on-boot calibration Lukasz Majewski
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2018-12-05 16:04 UTC (permalink / raw)
  To: u-boot

This commit provides extra defines needed for DDR memory controller
calibration (read leveling performing).

Signed-off-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Stefan Agner <stefan.agner@toradex.com>

---

Changes in v2:
- CR93_SWLVL_EXIT -> CR94_SWLVL_EXIT (EXIT is in CR94)
- Add more defines to imx-regs.h (moved from *-calibration.h)

 arch/arm/include/asm/arch-vf610/imx-regs.h | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/arch/arm/include/asm/arch-vf610/imx-regs.h b/arch/arm/include/asm/arch-vf610/imx-regs.h
index 08ba8e94f8..e3209b0f56 100644
--- a/arch/arm/include/asm/arch-vf610/imx-regs.h
+++ b/arch/arm/include/asm/arch-vf610/imx-regs.h
@@ -206,15 +206,27 @@
 #define DDRMC_CR88_TODTL_CMD(v)				(((v) & 0x1f) << 16)
 #define DDRMC_CR89_AODT_RWSMCS(v)			((v) & 0xf)
 #define DDRMC_CR91_R2W_SMCSDL(v)			(((v) & 0x7) << 16)
+#define DDRMC_CR93_SW_LVL_MODE_OFF			(8)
+#define DDRMC_CR93_SW_LVL_MODE(v) (((v) & 0x3) << DDRMC_CR93_SW_LVL_MODE_OFF)
+#define DDRMC_CR93_SWLVL_LOAD				BIT(16)
+#define DDRMC_CR93_SWLVL_START				BIT(24)
+#define DDRMC_CR94_SWLVL_EXIT				BIT(0)
+#define DDRMC_CR94_SWLVL_OP_DONE			BIT(8)
+#define DDRMC_CR94_SWLVL_RESP_0_OFF			(24)
+#define DDRMC_CR95_SWLVL_RESP_1_OFF			(0)
 #define DDRMC_CR96_WLMRD(v)				(((v) & 0x3f) << 8)
 #define DDRMC_CR96_WLDQSEN(v)				((v) & 0x3f)
 #define DDRMC_CR97_WRLVL_EN				(1 << 24)
 #define DDRMC_CR98_WRLVL_DL_0(v)			((v) & 0xffff)
 #define DDRMC_CR99_WRLVL_DL_1(v)			((v) & 0xffff)
+#define DDRMC_CR101_PHY_RDLVL_EDGE_OFF			(24)
+#define DDRMC_CR101_PHY_RDLVL_EDGE BIT(DDRMC_CR101_PHY_RDLVL_EDGE_OFF)
 #define DDRMC_CR102_RDLVL_GT_REGEN			(1 << 16)
 #define DDRMC_CR102_RDLVL_REG_EN			(1 << 8)
-#define DDRMC_CR105_RDLVL_DL_0(v)			(((v) & 0xff) << 8)
+#define DDRMC_CR105_RDLVL_DL_0_OFF			(8)
+#define DDRMC_CR105_RDLVL_DL_0(v) (((v) & 0xff) << DDRMC_CR105_RDLVL_DL_0_OFF)
 #define DDRMC_CR106_RDLVL_GTDL_0(v)			((v) & 0xff)
+#define DDRMC_CR110_RDLVL_DL_1_OFF			(0)
 #define DDRMC_CR110_RDLVL_DL_1(v)			((v) & 0xff)
 #define DDRMC_CR110_RDLVL_GTDL_1(v)			(((v) & 0xff) << 16)
 #define DDRMC_CR114_RDLVL_GTDL_2(v)			(((v) & 0xffff) << 8)
-- 
2.11.0

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

* [U-Boot] [PATCH v2 2/3] ddr: vybrid: Provide code to perform on-boot calibration
  2018-12-05 16:04 [U-Boot] [PATCH v2 0/3] ddr: vybrid: Support for vf610 built-in DDR3 memory calibration Lukasz Majewski
  2018-12-05 16:04 ` [U-Boot] [PATCH v2 1/3] ddr: vybrid: Add DDRMC calibration related registers (DQS to DQ) Lukasz Majewski
@ 2018-12-05 16:04 ` Lukasz Majewski
  2018-12-05 16:04 ` [U-Boot] [PATCH v2 3/3] ddr: vybrid: Add calibration code to memory controler's (DDRMC) setup code Lukasz Majewski
  2019-01-02 11:28 ` [U-Boot] [PATCH v2 0/3] ddr: vybrid: Support for vf610 built-in DDR3 memory calibration Lukasz Majewski
  3 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2018-12-05 16:04 UTC (permalink / raw)
  To: u-boot

This patch provides the code to calibrate the DDR's
DQS to DQ signals (RDLVL).

It is based on:
VFxxx Controller Reference Manual, Rev. 0, 10/2016, page 1600
10.1.6.16.4.1 "Software Read Leveling in MC Evaluation Mode"

and NXP's community thread:
"Vybrid: About DDR leveling feature on DDRMC."
https://community.nxp.com/thread/395323

Signed-off-by: Lukasz Majewski <lukma@denx.de>

---

Changes in v2:
 - CR93_SWLVL_EXIT -> CR94_SWLVL_EXIT (EXIT is in CR94)
 - Update Kconfig information regarding DDRMC_VF610_CALIBRATION
 - Update ddrmc-vf610-calibration. comment
 - Update code after extending imx-regs.h

 arch/arm/mach-imx/Kconfig                   |  12 +
 arch/arm/mach-imx/Makefile                  |   1 +
 arch/arm/mach-imx/ddrmc-vf610-calibration.c | 342 ++++++++++++++++++++++++++++
 arch/arm/mach-imx/ddrmc-vf610-calibration.h |  45 ++++
 4 files changed, 400 insertions(+)
 create mode 100644 arch/arm/mach-imx/ddrmc-vf610-calibration.c
 create mode 100644 arch/arm/mach-imx/ddrmc-vf610-calibration.h

diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index a1566cc2ad..8631fbd481 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -78,3 +78,15 @@ config NXP_BOARD_REVISION
 	  NXP boards based on i.MX6/7 contain the board revision information
 	  stored in the fuses. Select this option if you want to be able to
 	  retrieve the board revision information.
+
+config DDRMC_VF610_CALIBRATION
+	bool "Enable DDRMC (DDR3) on-chip calibration"
+	depends on ARCH_VF610
+	help
+	  Vybrid (vf610) SoC provides some on-chip facility to tune the DDR3
+	  memory parameters. Select this option if you want to calculate them
+	  at boot time.
+	  NOTE:
+	  NXP does NOT recommend to perform this calibration at each boot. One
+	  shall perform it on a new PCB and then use those values to program
+	  the ddrmc_cr_setting on relevant board file.
diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile
index 53d9e5f42b..4a07b1ea69 100644
--- a/arch/arm/mach-imx/Makefile
+++ b/arch/arm/mach-imx/Makefile
@@ -51,6 +51,7 @@ obj-$(CONFIG_SECURE_BOOT) += hab.o
 endif
 ifeq ($(SOC),$(filter $(SOC),vf610))
 obj-y += ddrmc-vf610.o
+obj-$(CONFIG_DDRMC_VF610_CALIBRATION) += ddrmc-vf610-calibration.o
 endif
 ifneq ($(CONFIG_SPL_BUILD),y)
 obj-$(CONFIG_CMD_BMODE) += cmd_bmode.o
diff --git a/arch/arm/mach-imx/ddrmc-vf610-calibration.c b/arch/arm/mach-imx/ddrmc-vf610-calibration.c
new file mode 100644
index 0000000000..f29de74c39
--- /dev/null
+++ b/arch/arm/mach-imx/ddrmc-vf610-calibration.c
@@ -0,0 +1,342 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * ddrmc DDR3 calibration code for NXP's VF610
+ *
+ * Copyright (C) 2018 DENX Software Engineering
+ * Lukasz Majewski, DENX Software Engineering, lukma at denx.de
+ *
+ */
+/* #define DEBUG */
+#include <common.h>
+#include <asm/io.h>
+#include <asm/arch/imx-regs.h>
+#include <linux/bitmap.h>
+
+#include "ddrmc-vf610-calibration.h"
+
+/*
+ * Documents:
+ *
+ * [1] "Vybrid: About DDR leveling feature on DDRMC."
+ * https://community.nxp.com/thread/395323
+ *
+ * [2] VFxxx Controller Reference Manual, Rev. 0, 10/2016
+ *
+ *
+ * NOTE
+ * ====
+ *
+ * NXP recommends setting 'fixed' parameters instead of performing the
+ * training at each boot.
+ *
+ * Use those functions to determine those values on new HW, read the
+ * calculated value from registers and add them to the board specific
+ * struct ddrmc_cr_setting.
+ *
+ * SW leveling supported operations - CR93[SW_LVL_MODE]:
+ *
+ * - 0x0 (b'00) - No leveling
+ *
+ * - 0x1 (b'01) - WRLVL_DL_X - It is not recommended to perform this tuning
+ *                             on HW designs utilizing non-flyback topology
+ *                             (Single DDR3 with x16).
+ *                             Instead the WRLVL_DL_0/1 fields shall be set
+ *                             based on trace length differences from their
+ *                             layout.
+ *                             Mismatches up to 25% or tCK (clock period) are
+ *                             allowed, so the value in the filed doesn’t have
+ *                             to be very accurate.
+ *
+ * - 0x2 (b'10) - RDLVL_DL_0/1 - refers to adjusting the DQS strobe in relation
+ *                             to the DQ signals so that the strobe edge is
+ *                             centered in the window of valid read data.
+ *
+ * - 0x3 (b'11) - RDLVL_GTDL_0/1 - refers to the delay the PHY uses to un-gate
+ *                             the Read DQS strobe pad from the time that the
+ *                             PHY enables the pad to input the strobe signal.
+ *
+ */
+static int ddr_cal_get_first_edge_index(unsigned long *bmap, enum edge e,
+					int samples, int start, int max)
+{
+	int i, ret = -1;
+
+	/*
+	 * We look only for the first value (and filter out
+	 * some wrong data)
+	 */
+	switch (e) {
+	case RISING_EDGE:
+		for (i = start; i <= max - samples; i++) {
+			if (test_bit(i, bmap)) {
+				if (!test_bit(i - 1, bmap) &&
+				    test_bit(i + 1, bmap) &&
+				    test_bit(i + 2, bmap) &&
+				    test_bit(i + 3, bmap)) {
+					return i;
+				}
+			}
+		}
+		break;
+	case FALLING_EDGE:
+		for (i = start; i <= max - samples; i++) {
+			if (!test_bit(i, bmap)) {
+				if (test_bit(i - 1, bmap) &&
+				    test_bit(i - 2, bmap) &&
+				    test_bit(i - 3, bmap)) {
+					return i;
+				}
+			}
+		}
+	}
+
+	return ret;
+}
+
+static void bitmap_print(unsigned long *bmap, int max)
+{
+	int i;
+
+	debug("BITMAP [0x%p]:\n", bmap);
+	for (i = 0; i <= max; i++) {
+		debug("%d ", test_bit(i, bmap) ? 1 : 0);
+		if (i && (i % 32) == (32 - 1))
+			debug("\n");
+	}
+	debug("\n");
+}
+
+#define sw_leveling_op_done \
+	while (!(readl(&ddrmr->cr[94]) & DDRMC_CR94_SWLVL_OP_DONE))
+
+#define sw_leveling_load_value \
+	do { clrsetbits_le32(&ddrmr->cr[93], DDRMC_CR93_SWLVL_LOAD, \
+			     DDRMC_CR93_SWLVL_LOAD); } while (0)
+
+#define sw_leveling_start \
+	do { clrsetbits_le32(&ddrmr->cr[93], DDRMC_CR93_SWLVL_START, \
+			     DDRMC_CR93_SWLVL_START); } while (0)
+
+#define sw_leveling_exit \
+	do { clrsetbits_le32(&ddrmr->cr[94], DDRMC_CR94_SWLVL_EXIT, \
+			     DDRMC_CR94_SWLVL_EXIT); } while (0)
+
+/*
+ * RDLVL_DL calibration:
+ *
+ * NXP is _NOT_ recommending performing the leveling at each
+ * boot. Instead - one shall run this procedure on new boards
+ * and then use hardcoded values.
+ *
+ */
+static int ddrmc_cal_dqs_to_dq(struct ddrmr_regs *ddrmr)
+{
+	DECLARE_BITMAP(rdlvl_rsp, DDRMC_DQS_DQ_MAX_DELAY + 1);
+	int rdlvl_dl_0_min = -1, rdlvl_dl_0_max = -1;
+	int rdlvl_dl_1_min = -1, rdlvl_dl_1_max = -1;
+	int rdlvl_dl_0, rdlvl_dl_1;
+	u8 swlvl_rsp;
+	u32 tmp;
+	int i;
+
+	/* Read defaults */
+	u16 rdlvl_dl_0_def =
+		(readl(&ddrmr->cr[105]) >> DDRMC_CR105_RDLVL_DL_0_OFF) & 0xFFFF;
+	u16 rdlvl_dl_1_def = readl(&ddrmr->cr[110]) & 0xFFFF;
+
+	debug("\nRDLVL: ======================\n");
+	debug("RDLVL: DQS to DQ (RDLVL)\n");
+
+	debug("RDLVL: RDLVL_DL_0_DFL:\t 0x%x\n", rdlvl_dl_0_def);
+	debug("RDLVL: RDLVL_DL_1_DFL:\t 0x%x\n", rdlvl_dl_1_def);
+
+	/*
+	 * Set/Read setup for calibration
+	 *
+	 * Values necessary for leveling from Vybrid RM [2] - page 1600
+	 */
+	writel(0x40703030, &ddrmr->cr[144]);
+	writel(0x40, &ddrmr->cr[145]);
+	writel(0x40, &ddrmr->cr[146]);
+
+	tmp = readl(&ddrmr->cr[144]);
+	debug("RDLVL: PHY_RDLVL_RES:\t 0x%x\n", (tmp >> 24) & 0xFF);// set 0x40
+	debug("RDLVL: PHY_RDLV_LOAD:\t 0x%x\n", (tmp >> 16) & 0xFF);// set 0x70
+	debug("RDLVL: PHY_RDLV_DLL:\t 0x%x\n", (tmp >> 8) & 0xFF); // set 0x30
+	debug("RDLVL: PHY_RDLV_EN:\t 0x%x\n", tmp & 0xFF); //set 0x30
+
+	tmp = readl(&ddrmr->cr[145]);
+	debug("RDLVL: PHY_RDLV_RR:\t 0x%x\n", tmp & 0x3FF); //set 0x40
+
+	tmp = readl(&ddrmr->cr[146]);
+	debug("RDLVL: PHY_RDLV_RESP:\t 0x%x\n", tmp); //set 0x40
+
+	/*
+	 * Program/read the leveling edge RDLVL_EDGE = 0
+	 *
+	 * 0x00 is the correct output on SWLVL_RSP_X
+	 * If by any chance 1s are visible -> wrong number read
+	 */
+	clrbits_le32(&ddrmr->cr[101], DDRMC_CR101_PHY_RDLVL_EDGE);
+
+	tmp = readl(&ddrmr->cr[101]);
+	debug("RDLVL: PHY_RDLVL_EDGE:\t 0x%x\n",
+	      (tmp >> DDRMC_CR101_PHY_RDLVL_EDGE_OFF) & 0x1); //set 0
+
+	/* Program Leveling mode - CR93[SW_LVL_MODE] to ’b10 */
+	clrsetbits_le32(&ddrmr->cr[93], DDRMC_CR93_SW_LVL_MODE(0x3),
+			DDRMC_CR93_SW_LVL_MODE(0x2));
+	tmp = readl(&ddrmr->cr[93]);
+	debug("RDLVL: SW_LVL_MODE:\t 0x%x\n",
+	      (tmp >> DDRMC_CR93_SW_LVL_MODE_OFF) & 0x3);
+
+	/* Start procedure - CR93[SWLVL_START] to ’b1 */
+	sw_leveling_start;
+
+	/* Poll CR94[SWLVL_OP_DONE] */
+	sw_leveling_op_done;
+
+	/*
+	 * Program delays for RDLVL_DL_0
+	 *
+	 * The procedure is to increase the delay values from 0 to 0xFF
+	 * and read the response from the DDRMC
+	 */
+	debug("\nRDLVL: ---> RDLVL_DL_0\n");
+	bitmap_zero(rdlvl_rsp, DDRMC_DQS_DQ_MAX_DELAY + 1);
+
+	for (i = 0; i <= DDRMC_DQS_DQ_MAX_DELAY; i++) {
+		clrsetbits_le32(&ddrmr->cr[105],
+				0xFFFF << DDRMC_CR105_RDLVL_DL_0_OFF,
+				i << DDRMC_CR105_RDLVL_DL_0_OFF);
+
+		/* Load values CR93[SWLVL_LOAD] to ’b1 */
+		sw_leveling_load_value;
+
+		/* Poll CR94[SWLVL_OP_DONE] */
+		sw_leveling_op_done;
+
+		/*
+		 * Read Responses - SWLVL_RESP_0
+		 *
+		 * The 0x00 (correct response when PHY_RDLVL_EDGE = 0)
+		 * -> 1 in the bit vector
+		 */
+		swlvl_rsp = (readl(&ddrmr->cr[94]) >>
+			     DDRMC_CR94_SWLVL_RESP_0_OFF) & 0xF;
+		if (swlvl_rsp == 0)
+			generic_set_bit(i, rdlvl_rsp);
+	}
+
+	bitmap_print(rdlvl_rsp, DDRMC_DQS_DQ_MAX_DELAY);
+
+	/*
+	 * First test for rising edge 0x0 -> 0x1 in bitmap
+	 */
+	rdlvl_dl_0_min = ddr_cal_get_first_edge_index(rdlvl_rsp, RISING_EDGE,
+						      N_SAMPLES, N_SAMPLES,
+						      DDRMC_DQS_DQ_MAX_DELAY);
+
+	/*
+	 * Secondly test for falling edge 0x1 -> 0x0 in bitmap
+	 */
+	rdlvl_dl_0_max = ddr_cal_get_first_edge_index(rdlvl_rsp, FALLING_EDGE,
+						      N_SAMPLES, rdlvl_dl_0_min,
+						      DDRMC_DQS_DQ_MAX_DELAY);
+
+	debug("RDLVL: DL_0 min: %d [0x%x] DL_0 max: %d [0x%x]\n",
+	      rdlvl_dl_0_min, rdlvl_dl_0_min, rdlvl_dl_0_max, rdlvl_dl_0_max);
+	rdlvl_dl_0 = (rdlvl_dl_0_max - rdlvl_dl_0_min) / 2;
+
+	if (rdlvl_dl_0_max == -1 || rdlvl_dl_0_min == -1 || rdlvl_dl_0 <= 0) {
+		debug("RDLVL: The DQS to DQ delay cannot be found!\n");
+		debug("RDLVL: Using default - slice 0: %d!\n", rdlvl_dl_0_def);
+		rdlvl_dl_0 = rdlvl_dl_0_def;
+	}
+
+	debug("\nRDLVL: ---> RDLVL_DL_1\n");
+	bitmap_zero(rdlvl_rsp, DDRMC_DQS_DQ_MAX_DELAY + 1);
+
+	for (i = 0; i <= DDRMC_DQS_DQ_MAX_DELAY; i++) {
+		clrsetbits_le32(&ddrmr->cr[110],
+				0xFFFF << DDRMC_CR110_RDLVL_DL_1_OFF,
+				i << DDRMC_CR110_RDLVL_DL_1_OFF);
+
+		/* Load values CR93[SWLVL_LOAD] to ’b1 */
+		sw_leveling_load_value;
+
+		/* Poll CR94[SWLVL_OP_DONE] */
+		sw_leveling_op_done;
+
+		/*
+		 * Read Responses - SWLVL_RESP_1
+		 *
+		 * The 0x00 (correct response when PHY_RDLVL_EDGE = 0)
+		 * -> 1 in the bit vector
+		 */
+		swlvl_rsp = (readl(&ddrmr->cr[95]) >>
+			     DDRMC_CR95_SWLVL_RESP_1_OFF) & 0xF;
+		if (swlvl_rsp == 0)
+			generic_set_bit(i, rdlvl_rsp);
+	}
+
+	bitmap_print(rdlvl_rsp, DDRMC_DQS_DQ_MAX_DELAY);
+
+	/*
+	 * First test for rising edge 0x0 -> 0x1 in bitmap
+	 */
+	rdlvl_dl_1_min = ddr_cal_get_first_edge_index(rdlvl_rsp, RISING_EDGE,
+						      N_SAMPLES, N_SAMPLES,
+						      DDRMC_DQS_DQ_MAX_DELAY);
+
+	/*
+	 * Secondly test for falling edge 0x1 -> 0x0 in bitmap
+	 */
+	rdlvl_dl_1_max = ddr_cal_get_first_edge_index(rdlvl_rsp, FALLING_EDGE,
+						      N_SAMPLES, rdlvl_dl_1_min,
+						      DDRMC_DQS_DQ_MAX_DELAY);
+
+	debug("RDLVL: DL_1 min: %d [0x%x] DL_1 max: %d [0x%x]\n",
+	      rdlvl_dl_1_min, rdlvl_dl_1_min, rdlvl_dl_1_max, rdlvl_dl_1_max);
+	rdlvl_dl_1 = (rdlvl_dl_1_max - rdlvl_dl_1_min) / 2;
+
+	if (rdlvl_dl_1_max == -1 || rdlvl_dl_1_min == -1 || rdlvl_dl_1 <= 0) {
+		debug("RDLVL: The DQS to DQ delay cannot be found!\n");
+		debug("RDLVL: Using default - slice 1: %d!\n", rdlvl_dl_1_def);
+		rdlvl_dl_1 = rdlvl_dl_1_def;
+	}
+
+	debug("RDLVL: CALIBRATED: rdlvl_dl_0: 0x%x\t rdlvl_dl_1: 0x%x\n",
+	      rdlvl_dl_0, rdlvl_dl_1);
+
+	/* Write new delay values */
+	writel(DDRMC_CR105_RDLVL_DL_0(rdlvl_dl_0), &ddrmr->cr[105]);
+	writel(DDRMC_CR110_RDLVL_DL_1(rdlvl_dl_1), &ddrmr->cr[110]);
+
+	sw_leveling_load_value;
+	sw_leveling_op_done;
+
+	/* Exit procedure - CR94[SWLVL_EXIT] to ’b1 */
+	sw_leveling_exit;
+
+	/* Poll CR94[SWLVL_OP_DONE] */
+	sw_leveling_op_done;
+
+	return 0;
+}
+
+/*
+ * WRLVL_DL calibration:
+ *
+ * For non-flyback memory architecture - where one have a single DDR3 x16
+ * memory - it is NOT necessary to perform "Write Leveling"
+ * [3] 'Vybrid DDR3 write leveling' https://community.nxp.com/thread/429362
+ *
+ */
+
+int ddrmc_calibration(struct ddrmr_regs *ddrmr)
+{
+	ddrmc_cal_dqs_to_dq(ddrmr);
+
+	return 0;
+}
diff --git a/arch/arm/mach-imx/ddrmc-vf610-calibration.h b/arch/arm/mach-imx/ddrmc-vf610-calibration.h
new file mode 100644
index 0000000000..e82e217ab3
--- /dev/null
+++ b/arch/arm/mach-imx/ddrmc-vf610-calibration.h
@@ -0,0 +1,45 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * ddrmc DDR3 calibration code for NXP's VF610
+ *
+ * Copyright (C) 2018 DENX Software Engineering
+ * Lukasz Majewski, DENX Software Engineering, lukma at denx.de
+ *
+ */
+
+#ifndef __DDRMC_VF610_CALIBRATOIN_H_
+#define __DDRMC_VF610_CALIBRATOIN_H_
+
+/*
+ * Number of "samples" in the calibration bitmap
+ * to be considered during calibration.
+ */
+#define N_SAMPLES 3
+
+/*
+ * Constants to indicate if we are looking for a rising or
+ * falling edge in the calibration bitmap
+ */
+enum edge {
+	FALLING_EDGE = 1,
+	RISING_EDGE
+};
+
+/*
+ * The max number of delay elements when DQS to DQ setting
+ */
+#define DDRMC_DQS_DQ_MAX_DELAY 0xFF
+
+/**
+ * ddrmc_calibration - Vybrid's (VF610) DDR3 calibration code
+ *
+ * This function is calculating proper memory controller values
+ * during run time.
+ *
+ * @param ddrmr_regs - memory controller registers
+ *
+ * @return 0 on success, otherwise error code
+ */
+int ddrmc_calibration(struct ddrmr_regs *ddrmr);
+
+#endif /* __DDRMC_VF610_CALIBRATOIN_H_ */
-- 
2.11.0

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

* [U-Boot] [PATCH v2 3/3] ddr: vybrid: Add calibration code to memory controler's (DDRMC) setup code
  2018-12-05 16:04 [U-Boot] [PATCH v2 0/3] ddr: vybrid: Support for vf610 built-in DDR3 memory calibration Lukasz Majewski
  2018-12-05 16:04 ` [U-Boot] [PATCH v2 1/3] ddr: vybrid: Add DDRMC calibration related registers (DQS to DQ) Lukasz Majewski
  2018-12-05 16:04 ` [U-Boot] [PATCH v2 2/3] ddr: vybrid: Provide code to perform on-boot calibration Lukasz Majewski
@ 2018-12-05 16:04 ` Lukasz Majewski
  2019-01-02 11:28 ` [U-Boot] [PATCH v2 0/3] ddr: vybrid: Support for vf610 built-in DDR3 memory calibration Lukasz Majewski
  3 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2018-12-05 16:04 UTC (permalink / raw)
  To: u-boot

This patch extends the vf610 DDR memory controller code to support SW
leveling.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Stefan Agner <stefan.agner@toradex.com>


---

Changes in v2:
 - Remove not needed #ifdef

 arch/arm/mach-imx/ddrmc-vf610.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm/mach-imx/ddrmc-vf610.c b/arch/arm/mach-imx/ddrmc-vf610.c
index ea6a49e0fa..2f59ec907f 100644
--- a/arch/arm/mach-imx/ddrmc-vf610.c
+++ b/arch/arm/mach-imx/ddrmc-vf610.c
@@ -10,6 +10,7 @@
 #include <asm/arch/imx-regs.h>
 #include <asm/arch/iomux-vf610.h>
 #include <asm/arch/ddrmc-vf610.h>
+#include "ddrmc-vf610-calibration.h"
 
 void ddrmc_setup_iomux(const iomux_v3_cfg_t *pads, int pads_count)
 {
@@ -233,4 +234,8 @@ void ddrmc_ctrl_init_ddr3(struct ddr3_jedec_timings const *timings,
 
 	while (!(readl(&ddrmr->cr[80]) & 0x100))
 		udelay(10);
+
+#ifdef CONFIG_DDRMC_VF610_CALIBRATION
+	ddrmc_calibration(ddrmr);
+#endif
 }
-- 
2.11.0

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

* [U-Boot] [PATCH] imx: hab: Convert non-NULL IVT DCD pointer warning to an error
@ 2018-12-07 22:31 Breno Matheus Lima
  2019-01-16 12:00 ` Fabio Estevam
  0 siblings, 1 reply; 654+ messages in thread
From: Breno Matheus Lima @ 2018-12-07 22:31 UTC (permalink / raw)
  To: u-boot

The following NXP application notes and manual recommend to ensure the
IVT DCD pointer is Null prior to calling HAB API authenticate_image()
function:

- AN12263: HABv4 RVT Guidelines and Recommendations
- AN4581: Secure Boot on i.MX50, i.MX53, i.MX 6 and i.MX7 Series using
  HABv4
- CST docs: High Assurance Boot Version 4 Application Programming
  Interface Reference Manual

Commit ca89df7dd46f ("imx: hab: Convert DCD non-NULL error to warning")
converted DCD non-NULL error to warning due to the lack of documentation
at the time of first patch submission. We have warned U-Boot users since
v2018.03, and it makes sense now to follow the NXP recommendation to
ensure the IVT DCD pointer is Null.

DCD commands should only be present in the initial boot image loaded by
the SoC ROM. Starting in HAB v4.3.7 the HAB code  will generate an error
if a DCD pointer is present in an image being authenticated by calling the
HAB RVT API. Older versions of HAB will process and run DCD if it is
present, and this could lead to an incorrect authentication boot flow.

Signed-off-by: Breno Lima <breno.lima@nxp.com>
---
 arch/arm/mach-imx/hab.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-imx/hab.c b/arch/arm/mach-imx/hab.c
index b88acd13da..e07076c726 100644
--- a/arch/arm/mach-imx/hab.c
+++ b/arch/arm/mach-imx/hab.c
@@ -560,8 +560,10 @@ int imx_hab_authenticate_image(uint32_t ddr_start, uint32_t image_size,
 	}
 
 	/* Verify if IVT DCD pointer is NULL */
-	if (ivt->dcd)
-		puts("Warning: DCD pointer should be NULL\n");
+	if (ivt->dcd) {
+		puts("Error: DCD pointer must be NULL\n");
+		goto hab_authentication_exit;
+	}
 
 	start = ddr_start;
 	bytes = image_size;
-- 
2.17.1

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

* [U-Boot] [PATCH v4 1/2] Enable FEC driver to retrieve PHY address from device tree
@ 2018-12-11 11:34 Martyn Welch
  2018-12-11 11:34 ` [U-Boot] [PATCH v4 2/2] imx: Add PHYTEC phyBOARD-i.MX6UL-Segin Martyn Welch
       [not found] ` <joe.hershberger@ni.com>
  0 siblings, 2 replies; 654+ messages in thread
From: Martyn Welch @ 2018-12-11 11:34 UTC (permalink / raw)
  To: u-boot

Currently if we have more than one phy on the MDIO bus, we do not have a
good mechanism for determining which should be used at runtime. Enable the
FEC driver to determine the address for the PHY from the device tree.

Signed-off-by: Martyn Welch <martyn.welch@collabora.com>
Reviewed-by: Lukasz Majewski <lukma@denx.de>

---

Changes in v4:
- No changes in v4

Changes in v3:
- No changes in v3

Changes in v2:
- New in v2

 drivers/net/fec_mxc.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c
index 99c5c649a0..425f6197cb 100644
--- a/drivers/net/fec_mxc.c
+++ b/drivers/net/fec_mxc.c
@@ -1264,11 +1264,32 @@ static const struct eth_ops fecmxc_ops = {
 	.read_rom_hwaddr	= fecmxc_read_rom_hwaddr,
 };
 
+static int device_get_phy_addr(struct udevice *dev)
+{
+	struct ofnode_phandle_args phandle_args;
+	int reg;
+
+	if (dev_read_phandle_with_args(dev, "phy-handle", NULL, 0, 0,
+				       &phandle_args)) {
+		debug("Failed to find phy-handle");
+		return -ENODEV;
+	}
+
+	reg = ofnode_read_u32_default(phandle_args.node, "reg", 0);
+
+	return reg;
+}
+
 static int fec_phy_init(struct fec_priv *priv, struct udevice *dev)
 {
 	struct phy_device *phydev;
+	int addr;
 	int mask = 0xffffffff;
 
+	addr = device_get_phy_addr(dev);
+	if (addr >= 0)
+		mask = 1 << addr;
+
 #ifdef CONFIG_FEC_MXC_PHYADDR
 	mask = 1 << CONFIG_FEC_MXC_PHYADDR;
 #endif
-- 
2.19.2

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

* [U-Boot] [PATCH v4 2/2] imx: Add PHYTEC phyBOARD-i.MX6UL-Segin
  2018-12-11 11:34 [U-Boot] [PATCH v4 1/2] Enable FEC driver to retrieve PHY address from device tree Martyn Welch
@ 2018-12-11 11:34 ` Martyn Welch
  2019-01-18 20:01   ` Martyn Welch
       [not found] ` <joe.hershberger@ni.com>
  1 sibling, 1 reply; 654+ messages in thread
From: Martyn Welch @ 2018-12-11 11:34 UTC (permalink / raw)
  To: u-boot

Port for the PHYTEC phyBOARD-i.MX6UL-Segin single board computer. Based on
the PHYTEC phyCORE-i.MX6UL SOM (PCL063).

CPU:   Freescale i.MX6UL rev1.2 528 MHz (running at 396 MHz)
CPU:   Industrial temperature grade (-40C to 105C) at 44C
Reset cause: POR
Board: PHYTEC phyCORE-i.MX6UL
I2C:   ready
DRAM:  256 MiB
NAND:  512 MiB
MMC:   FSL_SDHC: 0
In:    serial
Out:   serial
Err:   serial
Net:   FEC0

Working:
 - Eth0
 - i2C
 - MMC/SD
 - NAND
 - UART (1 & 5)
 - USB (host & otg)

Signed-off-by: Martyn Welch <martyn.welch@collabora.com>

---

Changes in v4:
- Added PXE boot option
- Switched i2c to DM support

Changes in v3:
- Correct spelling of Phytec
- Remove unneeded license information
- Correct image name in documentation
- Correct whitespacing
- Enable SPL to boot from MMC
- Simplify defconfig, remove non-SPL build

Changes in v2:
- Switch to driver model

 arch/arm/dts/Makefile                 |   3 +-
 arch/arm/dts/imx6ul-pcl063.dtsi       | 173 +++++++++++++++++++++
 arch/arm/dts/imx6ul-phycore-segin.dts |  76 ++++++++++
 arch/arm/mach-imx/mx6/Kconfig         |  13 ++
 board/phytec/pcl063/Kconfig           |  12 ++
 board/phytec/pcl063/MAINTAINERS       |   8 +
 board/phytec/pcl063/Makefile          |   7 +
 board/phytec/pcl063/README            |  26 ++++
 board/phytec/pcl063/pcl063.c          | 206 ++++++++++++++++++++++++++
 board/phytec/pcl063/spl.c             | 160 ++++++++++++++++++++
 configs/phycore_pcl063_defconfig      |  62 ++++++++
 include/configs/pcl063.h              |  94 ++++++++++++
 12 files changed, 839 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/dts/imx6ul-pcl063.dtsi
 create mode 100644 arch/arm/dts/imx6ul-phycore-segin.dts
 create mode 100644 board/phytec/pcl063/Kconfig
 create mode 100644 board/phytec/pcl063/MAINTAINERS
 create mode 100644 board/phytec/pcl063/Makefile
 create mode 100644 board/phytec/pcl063/README
 create mode 100644 board/phytec/pcl063/pcl063.c
 create mode 100644 board/phytec/pcl063/spl.c
 create mode 100644 configs/phycore_pcl063_defconfig
 create mode 100644 include/configs/pcl063.h

diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 949ee472fc..68411623e5 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -453,7 +453,8 @@ dtb-$(CONFIG_MX6UL) += \
 	imx6ul-isiot-nand.dtb \
 	imx6ul-opos6uldev.dtb \
 	imx6ul-14x14-evk.dtb \
-	imx6ul-9x9-evk.dtb
+	imx6ul-9x9-evk.dtb \
+	imx6ul-phycore-segin.dtb
 
 dtb-$(CONFIG_MX6ULL) += imx6ull-14x14-evk.dtb
 
diff --git a/arch/arm/dts/imx6ul-pcl063.dtsi b/arch/arm/dts/imx6ul-pcl063.dtsi
new file mode 100644
index 0000000000..24a6a47983
--- /dev/null
+++ b/arch/arm/dts/imx6ul-pcl063.dtsi
@@ -0,0 +1,173 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Collabora Ltd.
+ *
+ * Based on dts[i] from Phytec barebox port:
+ * Copyright (C) 2016 PHYTEC Messtechnik GmbH
+ * Author: Christian Hemp <c.hemp@phytec.de>
+ */
+
+/dts-v1/;
+
+#include "imx6ul.dtsi"
+
+/ {
+	model = "Phytec phyCORE-i.MX6 Ultra Lite SOM";
+	compatible = "phytec,imx6ul-pcl063", "fsl,imx6ul";
+
+	memory {
+		reg = <0x80000000 0x20000000>;
+	};
+
+	chosen {
+		stdout-path = &uart1;
+	};
+};
+
+&fec1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_enet1>;
+	phy-mode = "rmii";
+	phy-handle = <&ethphy0>;
+	status = "okay";
+
+	mdio: mdio {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		ethphy0: ethernet-phy at 1 {
+			reg = <1>;
+			micrel,led-mode = <1>;
+		};
+	};
+};
+
+&gpmi {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_gpmi_nand>;
+	nand-on-flash-bbt;
+	fsl,no-blockmark-swap;
+	status = "okay";
+
+	#address-cells = <1>;
+	#size-cells = <1>;
+
+	partition at 0 {
+		label = "uboot";
+		reg = <0x0 0x400000>;
+	};
+
+	partition at 400000 {
+		label = "uboot-env";
+		reg = <0x400000 0x100000>;
+	};
+
+	partition at 500000 {
+		label = "root";
+		reg = <0x500000 0x0>;
+	};
+};
+
+&i2c1 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default", "gpio";
+	pinctrl-0 = <&pinctrl_i2c1>;
+	pinctrl-1 = <&pinctrl_i2c1_gpio>;
+	scl-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
+	sda-gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>;
+	status = "okay";
+
+	eeprom at 52 {
+		compatible = "cat,24c32";
+		reg = <0x52>;
+	};
+};
+
+&uart1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart1>;
+	status = "okay";
+};
+
+&usdhc1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usdhc1>;
+	cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
+	bus-width = <0x4>;
+	pinctrl-0 = <&pinctrl_usdhc1>;
+	no-1-8-v;
+	status = "okay";
+};
+
+&iomuxc {
+	pinctrl-names = "default";
+
+	pinctrl_enet1: enet1grp {
+		fsl,pins = <
+			MX6UL_PAD_GPIO1_IO06__ENET1_MDIO	0x1b0b0
+			MX6UL_PAD_GPIO1_IO07__ENET1_MDC		0X1b0b0
+			MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN	0x1b0b0
+			MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER	0x1b0b0
+			MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00	0x1b0b0
+			MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01	0x1b0b0
+			MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN	0x1b0b0
+			MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00	0x1b0b0
+			MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01	0x1b0b0
+			MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1	0x4001b031
+		>;
+	};
+
+	pinctrl_gpmi_nand: gpminandgrp {
+		fsl,pins = <
+			MX6UL_PAD_NAND_CLE__RAWNAND_CLE		0x0b0b1
+			MX6UL_PAD_NAND_ALE__RAWNAND_ALE		0x0b0b1
+			MX6UL_PAD_NAND_WP_B__RAWNAND_WP_B	0x0b0b1
+			MX6UL_PAD_NAND_READY_B__RAWNAND_READY_B	0x0b000
+			MX6UL_PAD_NAND_CE0_B__RAWNAND_CE0_B	0x0b0b1
+			MX6UL_PAD_NAND_RE_B__RAWNAND_RE_B	0x0b0b1
+			MX6UL_PAD_NAND_WE_B__RAWNAND_WE_B	0x0b0b1
+			MX6UL_PAD_NAND_DATA00__RAWNAND_DATA00	0x0b0b1
+			MX6UL_PAD_NAND_DATA01__RAWNAND_DATA01	0x0b0b1
+			MX6UL_PAD_NAND_DATA02__RAWNAND_DATA02	0x0b0b1
+			MX6UL_PAD_NAND_DATA03__RAWNAND_DATA03	0x0b0b1
+			MX6UL_PAD_NAND_DATA04__RAWNAND_DATA04	0x0b0b1
+			MX6UL_PAD_NAND_DATA05__RAWNAND_DATA05	0x0b0b1
+			MX6UL_PAD_NAND_DATA06__RAWNAND_DATA06	0x0b0b1
+			MX6UL_PAD_NAND_DATA07__RAWNAND_DATA07	0x0b0b1
+		>;
+	};
+
+	pinctrl_i2c1: i2cgrp {
+		fsl,pins = <
+			MX6UL_PAD_UART4_TX_DATA__I2C1_SCL       0x4001b8b0
+			MX6UL_PAD_UART4_RX_DATA__I2C1_SDA       0x4001b8b0
+		>;
+	};
+
+	pinctrl_i2c1_gpio: i2c1grp_gpio {
+		fsl,pins = <
+			MX6UL_PAD_UART4_TX_DATA__GPIO1_IO28 0x1b8b0
+			MX6UL_PAD_UART4_RX_DATA__GPIO1_IO29 0x1b8b0
+		>;
+	};
+
+	pinctrl_uart1: uart1grp {
+		fsl,pins = <
+			MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX   0x1b0b1
+			MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX   0x1b0b1
+		>;
+	};
+
+	pinctrl_usdhc1: usdhc1grp {
+		fsl,pins = <
+			MX6UL_PAD_SD1_CMD__USDHC1_CMD		0x17059
+			MX6UL_PAD_SD1_CLK__USDHC1_CLK		0x10059
+			MX6UL_PAD_SD1_DATA0__USDHC1_DATA0	0x17059
+			MX6UL_PAD_SD1_DATA1__USDHC1_DATA1	0x17059
+			MX6UL_PAD_SD1_DATA2__USDHC1_DATA2	0x17059
+			MX6UL_PAD_SD1_DATA3__USDHC1_DATA3	0x17059
+			MX6UL_PAD_UART1_RTS_B__GPIO1_IO19	0x17059
+
+		>;
+	};
+};
diff --git a/arch/arm/dts/imx6ul-phycore-segin.dts b/arch/arm/dts/imx6ul-phycore-segin.dts
new file mode 100644
index 0000000000..a46012e2b4
--- /dev/null
+++ b/arch/arm/dts/imx6ul-phycore-segin.dts
@@ -0,0 +1,76 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Collabora Ltd.
+ *
+ * Based on dts[i] from Phytec barebox port:
+ * Copyright (C) 2016 PHYTEC Messtechnik GmbH
+ * Author: Christian Hemp <c.hemp@phytec.de>
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/dts-v1/;
+
+#include "imx6ul-pcl063.dtsi"
+
+/ {
+	model = "Phytec phyBOARD-i.MX6UL-Segin SBC";
+	compatible = "phytec,phyboard-imx6ul-segin", "phytec,imx6ul-pcl063",
+		     "fsl,imx6ul";
+};
+
+&i2c1 {
+	i2c_rtc: rtc at 68 {
+		compatible = "microcrystal,rv4162";
+		reg = <0x68>;
+		status = "okay";
+	};
+};
+
+&uart5 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart5>;
+	uart-has-rtscts;
+	status = "okay";
+};
+
+&usbotg1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usb_otg1_id>;
+	dr_mode = "otg";
+	srp-disable;
+	hnp-disable;
+	adp-disable;
+	status = "okay";
+};
+
+&usbotg2 {
+	dr_mode = "host";
+	disable-over-current;
+	status = "okay";
+};
+
+&iomuxc {
+	pinctrl-names = "default";
+
+	pinctrl_uart5: uart5grp {
+		fsl,pins = <
+			MX6UL_PAD_UART5_TX_DATA__UART5_DCE_TX	0x1b0b1
+			MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX	0x1b0b1
+			MX6UL_PAD_GPIO1_IO08__UART5_DCE_RTS	0x1b0b1
+			MX6UL_PAD_GPIO1_IO09__UART5_DCE_CTS	0x1b0b1
+		>;
+	};
+
+	pinctrl_usb_otg1_id: usbotg1idgrp {
+		fsl,pins = <
+			MX6UL_PAD_GPIO1_IO00__ANATOP_OTG1_ID    0x17059
+		>;
+	};
+
+};
diff --git a/arch/arm/mach-imx/mx6/Kconfig b/arch/arm/mach-imx/mx6/Kconfig
index 06c25bae36..e253f495c5 100644
--- a/arch/arm/mach-imx/mx6/Kconfig
+++ b/arch/arm/mach-imx/mx6/Kconfig
@@ -428,6 +428,18 @@ config TARGET_PFLA02
 	select MX6QDL
 	select SUPPORT_SPL
 
+config TARGET_PCL063
+	bool "PHYTEC PCL063 (phyCORE-i.MX6UL)"
+	select MX6UL
+	select DM
+	select DM_ETH
+	select DM_GPIO
+	select DM_I2C
+	select DM_MMC
+	select DM_SERIAL
+	select DM_THERMAL
+	select SUPPORT_SPL
+
 config TARGET_SECOMX6
 	bool "secomx6 boards"
 
@@ -550,6 +562,7 @@ source "board/freescale/mx6ullevk/Kconfig"
 source "board/grinn/liteboard/Kconfig"
 source "board/phytec/pcm058/Kconfig"
 source "board/phytec/pfla02/Kconfig"
+source "board/phytec/pcl063/Kconfig"
 source "board/gateworks/gw_ventana/Kconfig"
 source "board/kosagi/novena/Kconfig"
 source "board/samtec/vining_2000/Kconfig"
diff --git a/board/phytec/pcl063/Kconfig b/board/phytec/pcl063/Kconfig
new file mode 100644
index 0000000000..977db70f64
--- /dev/null
+++ b/board/phytec/pcl063/Kconfig
@@ -0,0 +1,12 @@
+if TARGET_PCL063
+
+config SYS_BOARD
+	default "pcl063"
+
+config SYS_VENDOR
+	default "phytec"
+
+config SYS_CONFIG_NAME
+	default "pcl063"
+
+endif
diff --git a/board/phytec/pcl063/MAINTAINERS b/board/phytec/pcl063/MAINTAINERS
new file mode 100644
index 0000000000..c65a951f3d
--- /dev/null
+++ b/board/phytec/pcl063/MAINTAINERS
@@ -0,0 +1,8 @@
+PCL063 BOARD
+M:	Martyn Welch <martyn.welch@collabora.com>
+S:	Maintained
+F:	arch/arm/dts/imx6ul-pcl063.dtsi
+F:	arch/arm/dts/imx6ul-phycore-segin.dts
+F:	board/phytec/pcl063/
+F:	configs/phycore_pcl063_defconfig
+F:	include/configs/pcl063.h
diff --git a/board/phytec/pcl063/Makefile b/board/phytec/pcl063/Makefile
new file mode 100644
index 0000000000..53c73c9b08
--- /dev/null
+++ b/board/phytec/pcl063/Makefile
@@ -0,0 +1,7 @@
+# Copyright (C) 2018 Collabora Ltd.
+#
+# SPDX-License-Identifier:	GPL-2.0+
+#
+
+obj-y  := pcl063.o
+obj-$(CONFIG_SPL_BUILD) += spl.o
diff --git a/board/phytec/pcl063/README b/board/phytec/pcl063/README
new file mode 100644
index 0000000000..be83bdb0d8
--- /dev/null
+++ b/board/phytec/pcl063/README
@@ -0,0 +1,26 @@
+How to use U-Boot on PHYTEC phyBOARD-i.MX6UL-Segin
+--------------------------------------------------
+
+- Configure and build U-Boot for phyCORE-i.MX6UL:
+
+    $ make mrproper
+    $ make phycore_pcl063_defconfig
+    $ make
+
+  This will generate SPL and u-boot-dtb.img images.
+
+- The SPL and u-boot-dtb.img images need to be flashed into the micro SD card:
+
+    $ sudo dd if=SPL of=/dev/mmcblk0 bs=1k seek=1; sync
+    $ sudo dd if=u-boot-dtb.img of=/dev/mmcblk0 bs=1k seek=69; sync
+
+- Jumper settings:
+
+  JP1:   Open: Boot from NAND
+       Closed: Boot from SD/MMC1
+
+- Connect the Serial cable to UART0 and the PC for the console.
+
+- Insert the micro SD card in the board and power it up.
+
+- U-Boot messages should come up.
diff --git a/board/phytec/pcl063/pcl063.c b/board/phytec/pcl063/pcl063.c
new file mode 100644
index 0000000000..38b233d1b0
--- /dev/null
+++ b/board/phytec/pcl063/pcl063.c
@@ -0,0 +1,206 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Collabora Ltd.
+ *
+ * Based on board/ccv/xpress/xpress.c:
+ * Copyright (C) 2015-2016 Stefan Roese <sr@denx.de>
+ */
+
+#include <asm/arch/clock.h>
+#include <asm/arch/crm_regs.h>
+#include <asm/arch/mx6-pins.h>
+#include <asm/arch/sys_proto.h>
+#include <asm/mach-imx/iomux-v3.h>
+#include <asm/mach-imx/mxc_i2c.h>
+#include <fsl_esdhc.h>
+#include <linux/bitops.h>
+#include <miiphy.h>
+#include <netdev.h>
+#include <usb.h>
+#include <usb/ehci-ci.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+int dram_init(void)
+{
+	gd->ram_size = get_ram_size((void *)PHYS_SDRAM, PHYS_SDRAM_SIZE);
+
+	return 0;
+}
+
+#define UART_PAD_CTRL  (PAD_CTL_PKE         | PAD_CTL_PUE       | \
+			PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \
+			PAD_CTL_DSE_40ohm   | PAD_CTL_SRE_FAST  | \
+			PAD_CTL_HYS)
+
+static iomux_v3_cfg_t const uart1_pads[] = {
+	MX6_PAD_UART1_TX_DATA__UART1_DCE_TX | MUX_PAD_CTRL(UART_PAD_CTRL),
+	MX6_PAD_UART1_RX_DATA__UART1_DCE_RX | MUX_PAD_CTRL(UART_PAD_CTRL),
+};
+
+static iomux_v3_cfg_t const uart5_pads[] = {
+	MX6_PAD_UART5_TX_DATA__UART5_DCE_TX | MUX_PAD_CTRL(UART_PAD_CTRL),
+	MX6_PAD_UART5_RX_DATA__UART5_DCE_RX | MUX_PAD_CTRL(UART_PAD_CTRL),
+	MX6_PAD_GPIO1_IO09__UART5_DCE_CTS | MUX_PAD_CTRL(UART_PAD_CTRL),
+	MX6_PAD_GPIO1_IO08__UART5_DCE_RTS | MUX_PAD_CTRL(UART_PAD_CTRL),
+};
+
+static void setup_iomux_uart(void)
+{
+	imx_iomux_v3_setup_multiple_pads(uart1_pads, ARRAY_SIZE(uart1_pads));
+	imx_iomux_v3_setup_multiple_pads(uart5_pads, ARRAY_SIZE(uart5_pads));
+}
+
+#ifdef CONFIG_NAND_MXS
+
+#define NAND_PAD_CTRL (PAD_CTL_DSE_48ohm | PAD_CTL_SRE_SLOW | PAD_CTL_HYS)
+
+#define NAND_PAD_READY0_CTRL (PAD_CTL_DSE_48ohm | PAD_CTL_PUS_22K_UP)
+
+#define NANDREADYPC MUX_PAD_CTRL(NAND_PAD_READY0_CTRL)
+
+static iomux_v3_cfg_t const gpmi_pads[] = {
+	MX6_PAD_NAND_DATA00__RAWNAND_DATA00	| MUX_PAD_CTRL(NAND_PAD_CTRL),
+	MX6_PAD_NAND_DATA01__RAWNAND_DATA01	| MUX_PAD_CTRL(NAND_PAD_CTRL),
+	MX6_PAD_NAND_DATA02__RAWNAND_DATA02	| MUX_PAD_CTRL(NAND_PAD_CTRL),
+	MX6_PAD_NAND_DATA03__RAWNAND_DATA03	| MUX_PAD_CTRL(NAND_PAD_CTRL),
+	MX6_PAD_NAND_DATA04__RAWNAND_DATA04	| MUX_PAD_CTRL(NAND_PAD_CTRL),
+	MX6_PAD_NAND_DATA05__RAWNAND_DATA05	| MUX_PAD_CTRL(NAND_PAD_CTRL),
+	MX6_PAD_NAND_DATA06__RAWNAND_DATA06	| MUX_PAD_CTRL(NAND_PAD_CTRL),
+	MX6_PAD_NAND_DATA07__RAWNAND_DATA07	| MUX_PAD_CTRL(NAND_PAD_CTRL),
+	MX6_PAD_NAND_CLE__RAWNAND_CLE		| MUX_PAD_CTRL(NAND_PAD_CTRL),
+	MX6_PAD_NAND_ALE__RAWNAND_ALE		| MUX_PAD_CTRL(NAND_PAD_CTRL),
+	MX6_PAD_NAND_RE_B__RAWNAND_RE_B		| MUX_PAD_CTRL(NAND_PAD_CTRL),
+	MX6_PAD_NAND_WE_B__RAWNAND_WE_B		| MUX_PAD_CTRL(NAND_PAD_CTRL),
+	MX6_PAD_NAND_CE0_B__RAWNAND_CE0_B	| MUX_PAD_CTRL(NAND_PAD_CTRL),
+	MX6_PAD_NAND_READY_B__RAWNAND_READY_B	| NANDREADYPC,
+};
+
+static void setup_gpmi_nand(void)
+{
+	imx_iomux_v3_setup_multiple_pads(gpmi_pads, ARRAY_SIZE(gpmi_pads));
+
+	setup_gpmi_io_clk((3 << MXC_CCM_CSCDR1_BCH_PODF_OFFSET) |
+			  (3 << MXC_CCM_CSCDR1_GPMI_PODF_OFFSET));
+}
+
+#endif /* CONFIG_NAND_MXS */
+
+#ifdef CONFIG_FEC_MXC
+
+#define ENET_CLK_PAD_CTRL (PAD_CTL_DSE_40ohm   | PAD_CTL_SRE_FAST)
+
+#define ENET_PAD_CTRL     (PAD_CTL_PUS_100K_UP | PAD_CTL_PUE       | \
+			   PAD_CTL_SPEED_HIGH  | PAD_CTL_DSE_48ohm | \
+			   PAD_CTL_SRE_FAST)
+
+#define MDIO_PAD_CTRL     (PAD_CTL_PUS_100K_UP | PAD_CTL_PUE      | \
+			   PAD_CTL_DSE_48ohm   | PAD_CTL_SRE_FAST | \
+			   PAD_CTL_ODE)
+
+static iomux_v3_cfg_t const fec1_pads[] = {
+	MX6_PAD_GPIO1_IO06__ENET1_MDIO | MUX_PAD_CTRL(MDIO_PAD_CTRL),
+	MX6_PAD_GPIO1_IO07__ENET1_MDC | MUX_PAD_CTRL(ENET_PAD_CTRL),
+	MX6_PAD_ENET1_TX_DATA0__ENET1_TDATA00 | MUX_PAD_CTRL(ENET_PAD_CTRL),
+	MX6_PAD_ENET1_TX_DATA1__ENET1_TDATA01 | MUX_PAD_CTRL(ENET_PAD_CTRL),
+	MX6_PAD_ENET1_TX_EN__ENET1_TX_EN | MUX_PAD_CTRL(ENET_PAD_CTRL),
+	MX6_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 | MUX_PAD_CTRL(ENET_CLK_PAD_CTRL),
+	MX6_PAD_ENET1_RX_DATA0__ENET1_RDATA00 | MUX_PAD_CTRL(ENET_PAD_CTRL),
+	MX6_PAD_ENET1_RX_DATA1__ENET1_RDATA01 | MUX_PAD_CTRL(ENET_PAD_CTRL),
+	MX6_PAD_ENET1_RX_ER__ENET1_RX_ER | MUX_PAD_CTRL(ENET_PAD_CTRL),
+	MX6_PAD_ENET1_RX_EN__ENET1_RX_EN | MUX_PAD_CTRL(ENET_PAD_CTRL),
+};
+
+static iomux_v3_cfg_t const fec2_pads[] = {
+	MX6_PAD_ENET2_TX_DATA0__ENET2_TDATA00 | MUX_PAD_CTRL(ENET_PAD_CTRL),
+	MX6_PAD_ENET2_TX_DATA1__ENET2_TDATA01 | MUX_PAD_CTRL(ENET_PAD_CTRL),
+	MX6_PAD_ENET2_TX_EN__ENET2_TX_EN | MUX_PAD_CTRL(ENET_PAD_CTRL),
+	MX6_PAD_ENET2_TX_CLK__ENET2_REF_CLK2 | MUX_PAD_CTRL(ENET_CLK_PAD_CTRL),
+	MX6_PAD_ENET2_RX_DATA0__ENET2_RDATA00 | MUX_PAD_CTRL(ENET_PAD_CTRL),
+	MX6_PAD_ENET2_RX_DATA1__ENET2_RDATA01 | MUX_PAD_CTRL(ENET_PAD_CTRL),
+	MX6_PAD_ENET2_RX_ER__ENET2_RX_ER | MUX_PAD_CTRL(ENET_PAD_CTRL),
+	MX6_PAD_ENET2_RX_EN__ENET2_RX_EN | MUX_PAD_CTRL(ENET_PAD_CTRL),
+};
+
+static void setup_iomux_fec(void)
+{
+	imx_iomux_v3_setup_multiple_pads(fec1_pads, ARRAY_SIZE(fec1_pads));
+	imx_iomux_v3_setup_multiple_pads(fec2_pads, ARRAY_SIZE(fec2_pads));
+}
+
+static int setup_fec(void)
+{
+	struct iomuxc *const iomuxc_regs = (struct iomuxc *)IOMUXC_BASE_ADDR;
+	int ret;
+
+	/*
+	 * Use 50M anatop loopback REF_CLK1 for ENET1,
+	 * clear gpr1[13], set gpr1[17].
+	 */
+	clrsetbits_le32(&iomuxc_regs->gpr[1], IOMUX_GPR1_FEC1_MASK,
+			IOMUX_GPR1_FEC1_CLOCK_MUX1_SEL_MASK);
+
+	ret = enable_fec_anatop_clock(0, ENET_50MHZ);
+	if (ret)
+		return ret;
+
+	/*
+	 * Use 50M anatop loopback REF_CLK2 for ENET2,
+	 * clear gpr1[14], set gpr1[18].
+	 */
+	clrsetbits_le32(&iomuxc_regs->gpr[1], IOMUX_GPR1_FEC2_MASK,
+			IOMUX_GPR1_FEC2_CLOCK_MUX1_SEL_MASK);
+
+	ret = enable_fec_anatop_clock(1, ENET_50MHZ);
+	if (ret)
+		return ret;
+
+	enable_enet_clk(1);
+
+	return 0;
+}
+
+int board_phy_config(struct phy_device *phydev)
+{
+	/*
+	 * Defaults + Enable status LEDs (LED1: Activity, LED0: Link) & select
+	 * 50 MHz RMII clock mode.
+	 */
+	phy_write(phydev, MDIO_DEVAD_NONE, 0x1f, 0x8190);
+
+	if (phydev->drv->config)
+		phydev->drv->config(phydev);
+
+	return 0;
+}
+#endif /* CONFIG_FEC_MXC */
+
+int board_early_init_f(void)
+{
+	setup_iomux_uart();
+	setup_iomux_fec();
+
+	return 0;
+}
+
+int board_init(void)
+{
+	/* Address of boot parameters */
+	gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
+
+#ifdef CONFIG_NAND_MXS
+	setup_gpmi_nand();
+#endif
+
+#ifdef CONFIG_FEC_MXC
+	setup_fec();
+#endif
+	return 0;
+}
+
+int checkboard(void)
+{
+	puts("Board: PHYTEC phyCORE-i.MX6UL\n");
+
+	return 0;
+}
diff --git a/board/phytec/pcl063/spl.c b/board/phytec/pcl063/spl.c
new file mode 100644
index 0000000000..b93cd493f2
--- /dev/null
+++ b/board/phytec/pcl063/spl.c
@@ -0,0 +1,160 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Collabora Ltd.
+ *
+ * Based on board/ccv/xpress/spl.c:
+ * Copyright (C) 2015-2016 Stefan Roese <sr@denx.de>
+ */
+
+#include <common.h>
+#include <spl.h>
+#include <asm/arch/clock.h>
+#include <asm/io.h>
+#include <asm/arch/mx6-ddr.h>
+#include <asm/arch/mx6-pins.h>
+#include <asm/arch/crm_regs.h>
+#include <fsl_esdhc.h>
+
+/* Configuration for Micron MT41K256M16TW-107 IT:P, 32M x 16 x 8 -> 256MiB */
+
+static struct mx6ul_iomux_grp_regs mx6_grp_ioregs = {
+	.grp_addds = 0x00000030,
+	.grp_ddrmode_ctl = 0x00020000,
+	.grp_b0ds = 0x00000030,
+	.grp_ctlds = 0x00000030,
+	.grp_b1ds = 0x00000030,
+	.grp_ddrpke = 0x00000000,
+	.grp_ddrmode = 0x00020000,
+	.grp_ddr_type = 0x000c0000,
+};
+
+static struct mx6ul_iomux_ddr_regs mx6_ddr_ioregs = {
+	.dram_dqm0 = 0x00000030,
+	.dram_dqm1 = 0x00000030,
+	.dram_ras = 0x00000030,
+	.dram_cas = 0x00000030,
+	.dram_odt0 = 0x00000030,
+	.dram_odt1 = 0x00000030,
+	.dram_sdba2 = 0x00000000,
+	.dram_sdclk_0 = 0x00000030,
+	.dram_sdqs0 = 0x00000030,
+	.dram_sdqs1 = 0x00000030,
+	.dram_reset = 0x00000030,
+};
+
+static struct mx6_mmdc_calibration mx6_mmcd_calib = {
+	.p0_mpwldectrl0 = 0x00000000,
+	.p0_mpdgctrl0 = 0x41480148,
+	.p0_mprddlctl = 0x40403E42,
+	.p0_mpwrdlctl = 0x40405852,
+};
+
+struct mx6_ddr_sysinfo ddr_sysinfo = {
+	.dsize = 0,		/* Bus size = 16bit */
+	.cs_density = 18,
+	.ncs = 1,
+	.cs1_mirror = 0,
+	.rtt_wr = 1,
+	.rtt_nom = 1,
+	.walat = 1,		/* Write additional latency */
+	.ralat = 5,		/* Read additional latency */
+	.mif3_mode = 3,		/* Command prediction working mode */
+	.bi_on = 1,		/* Bank interleaving enabled */
+	.pd_fast_exit = 1,
+	.sde_to_rst = 0x10,	/* 14 cycles, 200us (JEDEC default) */
+	.rst_to_cke = 0x23,	/* 33 cycles, 500us (JEDEC default) */
+	.ddr_type = DDR_TYPE_DDR3,
+	.refsel = 1,		/* Refresh cycles at 32KHz */
+	.refr = 7,		/* 8 refresh commands per refresh cycle */
+};
+
+static struct mx6_ddr3_cfg mem_ddr = {
+	.mem_speed = 933,
+	.density = 4,
+	.width = 16,
+	.banks = 8,
+	.rowaddr = 14,
+	.coladdr = 10,
+	.pagesz = 1,
+	.trcd = 1391,
+	.trcmin = 4791,
+	.trasmin = 3400,
+};
+
+static void ccgr_init(void)
+{
+	struct mxc_ccm_reg *ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR;
+
+	writel(0xFFFFFFFF, &ccm->CCGR0);
+	writel(0xFFFFFFFF, &ccm->CCGR1);
+	writel(0xFFFFFFFF, &ccm->CCGR2);
+	writel(0xFFFFFFFF, &ccm->CCGR3);
+	writel(0xFFFFFFFF, &ccm->CCGR4);
+	writel(0xFFFFFFFF, &ccm->CCGR5);
+	writel(0xFFFFFFFF, &ccm->CCGR6);
+}
+
+static void spl_dram_init(void)
+{
+	mx6ul_dram_iocfg(mem_ddr.width, &mx6_ddr_ioregs, &mx6_grp_ioregs);
+	mx6_dram_cfg(&ddr_sysinfo, &mx6_mmcd_calib, &mem_ddr);
+}
+
+#ifdef CONFIG_FSL_ESDHC
+
+#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[] = {
+	MX6_PAD_SD1_CLK__USDHC1_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+	MX6_PAD_SD1_CMD__USDHC1_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+	MX6_PAD_SD1_DATA0__USDHC1_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+	MX6_PAD_SD1_DATA1__USDHC1_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+	MX6_PAD_SD1_DATA2__USDHC1_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+	MX6_PAD_SD1_DATA3__USDHC1_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+	MX6_PAD_UART1_RTS_B__USDHC1_CD_B | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+};
+
+static struct fsl_esdhc_cfg usdhc_cfg[] = {
+	{
+		.esdhc_base = USDHC1_BASE_ADDR,
+		.max_bus_width = 4,
+	},
+};
+
+int board_mmc_getcd(struct mmc *mmc)
+{
+	return 1;
+}
+
+int board_mmc_init(bd_t *bis)
+{
+	imx_iomux_v3_setup_multiple_pads(usdhc1_pads, ARRAY_SIZE(usdhc1_pads));
+	usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK);
+
+	return fsl_esdhc_initialize(bis, &usdhc_cfg[0]);
+}
+
+#endif /* CONFIG_FSL_ESDHC */
+
+void board_init_f(ulong dummy)
+{
+	ccgr_init();
+
+	/* Setup AIPS and disable watchdog */
+	arch_cpu_init();
+
+	/* Setup iomux and fec */
+	board_early_init_f();
+
+	/* Setup GP timer */
+	timer_init();
+
+	/* UART clocks enabled and gd valid - init serial console */
+	preloader_console_init();
+
+	/* DDR initialization */
+	spl_dram_init();
+}
diff --git a/configs/phycore_pcl063_defconfig b/configs/phycore_pcl063_defconfig
new file mode 100644
index 0000000000..02c659de23
--- /dev/null
+++ b/configs/phycore_pcl063_defconfig
@@ -0,0 +1,62 @@
+CONFIG_ARM=y
+CONFIG_ARCH_MX6=y
+CONFIG_SYS_TEXT_BASE=0x87800000
+CONFIG_SPL_LIBCOMMON_SUPPORT=y
+CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_TARGET_PCL063=y
+CONFIG_SPL_MMC_SUPPORT=y
+CONFIG_SPL_SERIAL_SUPPORT=y
+CONFIG_SPL=y
+CONFIG_DISTRO_DEFAULTS=y
+CONFIG_NR_DRAM_BANKS=8
+CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg"
+CONFIG_BOOTDELAY=3
+# CONFIG_USE_BOOTCOMMAND is not set
+CONFIG_BOARD_EARLY_INIT_F=y
+CONFIG_SPL_USB_HOST_SUPPORT=y
+CONFIG_SPL_USB_GADGET_SUPPORT=y
+CONFIG_SPL_USB_SDP_SUPPORT=y
+CONFIG_SPL_WATCHDOG_SUPPORT=y
+CONFIG_CMD_MEMTEST=y
+CONFIG_CMD_DM=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_GPT=y
+# CONFIG_RANDOM_UUID is not set
+CONFIG_CMD_I2C=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_MTD=y
+CONFIG_CMD_USB=y
+CONFIG_CMD_USB_SDP=y
+CONFIG_CMD_CACHE=y
+CONFIG_MTDIDS_DEFAULT="nand0=gpmi-nand"
+CONFIG_MTDPARTS_DEFAULT="gpmi-nand:4m(uboot),1m(env),-(root)"
+CONFIG_CMD_UBI=y
+# CONFIG_ISO_PARTITION is not set
+CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="imx6ul-phycore-segin"
+CONFIG_DM_I2C_GPIO=y
+CONFIG_SYS_I2C_MXC=y
+CONFIG_FSL_ESDHC=y
+CONFIG_MTD=y
+CONFIG_NAND=y
+CONFIG_NAND_MXS=y
+CONFIG_NAND_MXS_DT=y
+CONFIG_PHYLIB=y
+CONFIG_PHY_MICREL=y
+CONFIG_FEC_MXC=y
+CONFIG_MII=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_IMX6=y
+CONFIG_DM_PMIC=y
+# CONFIG_SPL_PMIC_CHILDREN is not set
+CONFIG_DM_REGULATOR=y
+CONFIG_DM_REGULATOR_FIXED=y
+CONFIG_MXC_UART=y
+CONFIG_USB=y
+CONFIG_DM_USB=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_GADGET_MANUFACTURER="Phytec"
+CONFIG_USB_GADGET_VENDOR_NUM=0x01b67
+CONFIG_USB_GADGET_PRODUCT_NUM=0x4fff
+CONFIG_CI_UDC=y
+CONFIG_USB_GADGET_DOWNLOAD=y
diff --git a/include/configs/pcl063.h b/include/configs/pcl063.h
new file mode 100644
index 0000000000..4ceab519cb
--- /dev/null
+++ b/include/configs/pcl063.h
@@ -0,0 +1,94 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright (C) 2018 Collabora Ltd.
+ *
+ * Based on include/configs/xpress.h:
+ * Copyright (C) 2015-2016 Stefan Roese <sr@denx.de>
+ */
+#ifndef __PCL063_H
+#define __PCL063_H
+
+#include <linux/sizes.h>
+#include "mx6_common.h"
+
+/* SPL options */
+#include "imx6_spl.h"
+
+/*
+ * There is a bug in some i.MX6UL processors that results in the initial
+ * portion of OCRAM being unavailable when booting from (at least) an SD
+ * card.
+ *
+ * Tweak the SPL text base address to avoid this.
+ */
+#undef CONFIG_SPL_TEXT_BASE
+#define CONFIG_SPL_TEXT_BASE            0x00909000
+
+/* Size of malloc() pool */
+#define CONFIG_SYS_MALLOC_LEN		(16 * SZ_1M)
+
+/* Console configs */
+#define CONFIG_MXC_UART_BASE		UART1_BASE
+
+/* MMC Configs */
+#define CONFIG_FSL_USDHC
+
+#define CONFIG_SYS_FSL_ESDHC_ADDR	USDHC1_BASE_ADDR
+
+/* Miscellaneous configurable options */
+#define CONFIG_SYS_MEMTEST_START	0x80000000
+#define CONFIG_SYS_MEMTEST_END		(CONFIG_SYS_MEMTEST_START + 0x10000000)
+
+#define CONFIG_SYS_LOAD_ADDR		CONFIG_LOADADDR
+#define CONFIG_SYS_HZ			1000
+
+/* Physical Memory Map */
+#define PHYS_SDRAM			MMDC0_ARB_BASE_ADDR
+#define PHYS_SDRAM_SIZE			SZ_256M
+
+#define CONFIG_SYS_SDRAM_BASE		PHYS_SDRAM
+#define CONFIG_SYS_INIT_RAM_ADDR	IRAM_BASE_ADDR
+#define CONFIG_SYS_INIT_RAM_SIZE	IRAM_SIZE
+
+#define CONFIG_SYS_INIT_SP_OFFSET \
+	(CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
+#define CONFIG_SYS_INIT_SP_ADDR \
+	(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
+
+#define CONFIG_ENV_SIZE			(16 << 10)
+#define CONFIG_ENV_OFFSET		(512 << 10)
+
+/* NAND */
+#define CONFIG_SYS_MAX_NAND_DEVICE	1
+#define CONFIG_SYS_NAND_BASE		0x40000000
+
+/* USB Configs */
+#define CONFIG_EHCI_HCD_INIT_AFTER_RESET
+#define CONFIG_MXC_USB_PORTSC		(PORT_PTS_UTMI | PORT_PTS_PTW)
+#define CONFIG_MXC_USB_FLAGS		0
+#define CONFIG_USB_MAX_CONTROLLER_COUNT	1
+
+#define CONFIG_IMX_THERMAL
+
+#define CONFIG_EXTRA_ENV_SETTINGS \
+	"console=ttymxc0,115200n8\0" \
+	"mtdids=" CONFIG_MTDIDS_DEFAULT "\0" \
+	"mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0" \
+	"fdt_addr_r=0x82000000\0" \
+	"fdt_high=0xffffffff\0" \
+	"initrd_high=0xffffffff\0" \
+	"kernel_addr_r=0x81000000\0" \
+	"pxefile_addr_r=0x87100000\0" \
+	"ramdisk_addr_r=0x82100000\0" \
+	"scriptaddr=0x87000000\0" \
+	BOOTENV
+
+#define BOOT_TARGET_DEVICES(func) \
+	func(MMC, mmc, 0) \
+	func(UBIFS, ubifs, 0) \
+	func(PXE, pxe, na) \
+	func(DHCP, dhcp, na)
+
+#include <config_distro_bootcmd.h>
+
+#endif /* __PCL063_H */
-- 
2.19.2

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

* [U-Boot] [PATCH 1/3] mx7: Do not call lcdif_power_down() in the SPL case
@ 2018-12-11 18:40 Otavio Salvador
  2018-12-11 18:40 ` [U-Boot] [PATCH 2/3] pico-imx7d: Add LCD support Otavio Salvador
                   ` (3 more replies)
  0 siblings, 4 replies; 654+ messages in thread
From: Otavio Salvador @ 2018-12-11 18:40 UTC (permalink / raw)
  To: u-boot

From: Fabio Estevam <festevam@gmail.com>

Like it was done on imx6 in commit 9236269de57d ("imx: mx6: Fix
implementantion reset_misc")

Do not call lcdif_power_down() in the SPL case to fix the following
build error:

  LD      spl/u-boot-spl
  MKIMAGE u-boot.img
arch/arm/mach-imx/built-in.o: In function `reset_misc':
/home/fabio/ossystems/u-boot/arch/arm/mach-imx/mx7/soc.c:372: undefined reference to `lcdif_power_down'
scripts/Makefile.spl:375: recipe for target 'spl/u-boot-spl' failed

Signed-off-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---

 arch/arm/mach-imx/mx7/soc.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm/mach-imx/mx7/soc.c b/arch/arm/mach-imx/mx7/soc.c
index 3f74f8a3ed..7cfdff0981 100644
--- a/arch/arm/mach-imx/mx7/soc.c
+++ b/arch/arm/mach-imx/mx7/soc.c
@@ -368,8 +368,10 @@ void s_init(void)
 
 void reset_misc(void)
 {
+#ifndef CONFIG_SPL_BUILD
 #ifdef CONFIG_VIDEO_MXS
 	lcdif_power_down();
 #endif
+#endif
 }
 
-- 
2.20.0

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

* [U-Boot] [PATCH 2/3] pico-imx7d: Add LCD support
  2018-12-11 18:40 [U-Boot] [PATCH 1/3] mx7: Do not call lcdif_power_down() in the SPL case Otavio Salvador
@ 2018-12-11 18:40 ` Otavio Salvador
  2018-12-11 18:40 ` [U-Boot] [PATCH 3/3] logos: Add the TechNexion's logo Otavio Salvador
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 654+ messages in thread
From: Otavio Salvador @ 2018-12-11 18:40 UTC (permalink / raw)
  To: u-boot

From: Fabio Estevam <festevam@gmail.com>

Add support for the VXT VL050-8048NT-C01 panel connected through
the 24 bit parallel LCDIF interface.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---

 board/technexion/pico-imx7d/pico-imx7d.c | 55 ++++++++++++++++++++++++
 configs/pico-hobbit-imx7d_defconfig      |  1 +
 configs/pico-imx7d_defconfig             |  1 +
 configs/pico-pi-imx7d_defconfig          |  1 +
 include/configs/pico-imx7d.h             | 12 ++++++
 5 files changed, 70 insertions(+)

diff --git a/board/technexion/pico-imx7d/pico-imx7d.c b/board/technexion/pico-imx7d/pico-imx7d.c
index 53e14693a5..767d13dfe5 100644
--- a/board/technexion/pico-imx7d/pico-imx7d.c
+++ b/board/technexion/pico-imx7d/pico-imx7d.c
@@ -39,8 +39,16 @@ DECLARE_GLOBAL_DATA_PTR;
 #define I2C_PAD_CTRL    (PAD_CTL_DSE_3P3V_32OHM | PAD_CTL_SRE_SLOW | \
 	PAD_CTL_HYS | PAD_CTL_PUE | PAD_CTL_PUS_PU100KOHM)
 
+
+#define LCD_PAD_CTRL    (PAD_CTL_HYS | PAD_CTL_PUS_PU100KOHM | \
+			 PAD_CTL_DSE_3P3V_49OHM)
+
+#define LCD_SYNC_PAD_CTRL    (PAD_CTL_HYS | PAD_CTL_PUS_PU100KOHM | \
+			      PAD_CTL_DSE_3P3V_196OHM)
+
 #ifdef CONFIG_SYS_I2C_MXC
 #define PC MUX_PAD_CTRL(I2C_PAD_CTRL)
+
 /* I2C4 for PMIC */
 static struct i2c_pads_info i2c_pad_info4 = {
 	.scl = {
@@ -246,11 +254,58 @@ int board_early_init_f(void)
 	return 0;
 }
 
+#ifdef CONFIG_VIDEO_MXS
+static iomux_v3_cfg_t const lcd_pads[] = {
+	MX7D_PAD_LCD_CLK__LCD_CLK | MUX_PAD_CTRL(LCD_PAD_CTRL),
+	MX7D_PAD_LCD_ENABLE__LCD_ENABLE | MUX_PAD_CTRL(LCD_SYNC_PAD_CTRL),
+	MX7D_PAD_LCD_HSYNC__LCD_HSYNC | MUX_PAD_CTRL(LCD_SYNC_PAD_CTRL),
+	MX7D_PAD_LCD_VSYNC__LCD_VSYNC | MUX_PAD_CTRL(LCD_SYNC_PAD_CTRL),
+	MX7D_PAD_LCD_DATA00__LCD_DATA0 | MUX_PAD_CTRL(LCD_PAD_CTRL),
+	MX7D_PAD_LCD_DATA01__LCD_DATA1 | MUX_PAD_CTRL(LCD_PAD_CTRL),
+	MX7D_PAD_LCD_DATA02__LCD_DATA2 | MUX_PAD_CTRL(LCD_PAD_CTRL),
+	MX7D_PAD_LCD_DATA03__LCD_DATA3 | MUX_PAD_CTRL(LCD_PAD_CTRL),
+	MX7D_PAD_LCD_DATA04__LCD_DATA4 | MUX_PAD_CTRL(LCD_PAD_CTRL),
+	MX7D_PAD_LCD_DATA05__LCD_DATA5 | MUX_PAD_CTRL(LCD_PAD_CTRL),
+	MX7D_PAD_LCD_DATA06__LCD_DATA6 | MUX_PAD_CTRL(LCD_PAD_CTRL),
+	MX7D_PAD_LCD_DATA07__LCD_DATA7 | MUX_PAD_CTRL(LCD_PAD_CTRL),
+	MX7D_PAD_LCD_DATA08__LCD_DATA8 | MUX_PAD_CTRL(LCD_PAD_CTRL),
+	MX7D_PAD_LCD_DATA09__LCD_DATA9 | MUX_PAD_CTRL(LCD_PAD_CTRL),
+	MX7D_PAD_LCD_DATA10__LCD_DATA10 | MUX_PAD_CTRL(LCD_PAD_CTRL),
+	MX7D_PAD_LCD_DATA11__LCD_DATA11 | MUX_PAD_CTRL(LCD_PAD_CTRL),
+	MX7D_PAD_LCD_DATA12__LCD_DATA12 | MUX_PAD_CTRL(LCD_PAD_CTRL),
+	MX7D_PAD_LCD_DATA13__LCD_DATA13 | MUX_PAD_CTRL(LCD_PAD_CTRL),
+	MX7D_PAD_LCD_DATA14__LCD_DATA14 | MUX_PAD_CTRL(LCD_PAD_CTRL),
+	MX7D_PAD_LCD_DATA15__LCD_DATA15 | MUX_PAD_CTRL(LCD_PAD_CTRL),
+	MX7D_PAD_LCD_DATA16__LCD_DATA16 | MUX_PAD_CTRL(LCD_PAD_CTRL),
+	MX7D_PAD_LCD_DATA17__LCD_DATA17 | MUX_PAD_CTRL(LCD_PAD_CTRL),
+	MX7D_PAD_LCD_DATA18__LCD_DATA18 | MUX_PAD_CTRL(LCD_PAD_CTRL),
+	MX7D_PAD_LCD_DATA19__LCD_DATA19 | MUX_PAD_CTRL(LCD_PAD_CTRL),
+	MX7D_PAD_LCD_DATA20__LCD_DATA20 | MUX_PAD_CTRL(LCD_PAD_CTRL),
+	MX7D_PAD_LCD_DATA21__LCD_DATA21 | MUX_PAD_CTRL(LCD_PAD_CTRL),
+	MX7D_PAD_LCD_DATA22__LCD_DATA22 | MUX_PAD_CTRL(LCD_PAD_CTRL),
+	MX7D_PAD_LCD_DATA23__LCD_DATA23 | MUX_PAD_CTRL(LCD_PAD_CTRL),
+	MX7D_PAD_GPIO1_IO06__GPIO1_IO6	| MUX_PAD_CTRL(LCD_PAD_CTRL),
+	MX7D_PAD_GPIO1_IO11__GPIO1_IO11 | MUX_PAD_CTRL(NO_PAD_CTRL),
+};
+
+void setup_lcd(void)
+{
+	imx_iomux_v3_setup_multiple_pads(lcd_pads, ARRAY_SIZE(lcd_pads));
+	/* Set Brightness to high */
+	gpio_direction_output(IMX_GPIO_NR(1, 11) , 1);
+	/* Set LCD enable to high */
+	gpio_direction_output(IMX_GPIO_NR(1, 6) , 1);
+}
+#endif
+
 int board_init(void)
 {
 	/* address of boot parameters */
 	gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
 
+#ifdef CONFIG_VIDEO_MXS
+	setup_lcd();
+#endif
 #ifdef CONFIG_FEC_MXC
 	setup_fec();
 #endif
diff --git a/configs/pico-hobbit-imx7d_defconfig b/configs/pico-hobbit-imx7d_defconfig
index b02cae5237..0095050d43 100644
--- a/configs/pico-hobbit-imx7d_defconfig
+++ b/configs/pico-hobbit-imx7d_defconfig
@@ -57,4 +57,5 @@ CONFIG_USB_GADGET_MANUFACTURER="FSL"
 CONFIG_USB_GADGET_VENDOR_NUM=0x0525
 CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
 CONFIG_CI_UDC=y
+CONFIG_VIDEO=y
 CONFIG_OF_LIBFDT=y
diff --git a/configs/pico-imx7d_defconfig b/configs/pico-imx7d_defconfig
index f355f07be7..3c715f743b 100644
--- a/configs/pico-imx7d_defconfig
+++ b/configs/pico-imx7d_defconfig
@@ -57,4 +57,5 @@ CONFIG_USB_GADGET_MANUFACTURER="FSL"
 CONFIG_USB_GADGET_VENDOR_NUM=0x0525
 CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
 CONFIG_CI_UDC=y
+CONFIG_VIDEO=y
 CONFIG_OF_LIBFDT=y
diff --git a/configs/pico-pi-imx7d_defconfig b/configs/pico-pi-imx7d_defconfig
index 3a182dcb81..0097c816a4 100644
--- a/configs/pico-pi-imx7d_defconfig
+++ b/configs/pico-pi-imx7d_defconfig
@@ -57,4 +57,5 @@ CONFIG_USB_GADGET_MANUFACTURER="FSL"
 CONFIG_USB_GADGET_VENDOR_NUM=0x0525
 CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
 CONFIG_CI_UDC=y
+CONFIG_VIDEO=y
 CONFIG_OF_LIBFDT=y
diff --git a/include/configs/pico-imx7d.h b/include/configs/pico-imx7d.h
index 333c0b49c1..97503a9efb 100644
--- a/include/configs/pico-imx7d.h
+++ b/include/configs/pico-imx7d.h
@@ -64,10 +64,12 @@
 #define CONFIG_EXTRA_ENV_SETTINGS \
 	"script=boot.scr\0" \
 	"image=zImage\0" \
+	"splashpos=m,m\0" \
 	"console=ttymxc4\0" \
 	"fdt_high=0xffffffff\0" \
 	"initrd_high=0xffffffff\0" \
 	"fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0" \
+	"videomode=video=ctfb:x:800,y:480,depth:24,mode:0,pclk:30000,le:46,ri:210,up:22,lo:23,hs:20,vs:10,sync:0,vmode:0\0" \
 	BOOTMENU_ENV \
 	"fdt_addr=0x83000000\0" \
 	"fdt_addr_r=0x83000000\0" \
@@ -131,6 +133,16 @@
 #define CONFIG_POWER_PFUZE3000
 #define CONFIG_POWER_PFUZE3000_I2C_ADDR	0x08
 
+#ifdef CONFIG_VIDEO
+#define CONFIG_VIDEO_MXS
+#define CONFIG_VIDEO_LOGO
+#define CONFIG_SPLASH_SCREEN
+#define CONFIG_SPLASH_SCREEN_ALIGN
+#define CONFIG_BMP_16BPP
+#define CONFIG_VIDEO_BMP_RLE8
+#define CONFIG_VIDEO_BMP_LOGO
+#endif
+
 /* FLASH and environment organization */
 #define CONFIG_ENV_SIZE			SZ_8K
 
-- 
2.20.0

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

* [U-Boot] [PATCH 3/3] logos: Add the TechNexion's logo
  2018-12-11 18:40 [U-Boot] [PATCH 1/3] mx7: Do not call lcdif_power_down() in the SPL case Otavio Salvador
  2018-12-11 18:40 ` [U-Boot] [PATCH 2/3] pico-imx7d: Add LCD support Otavio Salvador
@ 2018-12-11 18:40 ` Otavio Salvador
  2019-02-18 22:53   ` Fabio Estevam
  2018-12-12  1:47 ` [U-Boot] [PATCH 1/3] mx7: Do not call lcdif_power_down() in the SPL case Peng Fan
       [not found] ` <otavio@ossystems.com.br>
  3 siblings, 1 reply; 654+ messages in thread
From: Otavio Salvador @ 2018-12-11 18:40 UTC (permalink / raw)
  To: u-boot

From: Fabio Estevam <festevam@gmail.com>

Add the TechNexion's logo from their internal U-Boot tree.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---

 tools/logos/technexion.bmp | Bin 0 -> 22390 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 tools/logos/technexion.bmp

diff --git a/tools/logos/technexion.bmp b/tools/logos/technexion.bmp
new file mode 100644
index 0000000000000000000000000000000000000000..bccde2de5922cb5d015ce302b74937b2812404ee
GIT binary patch
literal 22390
zcmeHOO=x4+6+TbDw(PMaTejrbV_UL4mL*HFq)Rt}HZ+U0gsf)KMV8rSIdqdnD9kd;
zKwGj%7lG1d5lSFX8c5p|l0ufDr4Z6AvI~Sl7D+du_nx2cz9-A6-6;))_h9tiyXV|<
z&OP`1-sk!LGe7<j@%5b&QQtrH6QUpZdqOKb{=|KvcQ at pp9}ED#sw*qBwzfuFTU)fZ
zw?`)@Cv<k!r{Qo&lgTB`=W}}e@yF?V-+h9feDX<p>Zu>n(@#H5_wV1QXP<qRo_p>&
zdj9$6>A`~s^uh}-(2FnrgdRS8NH4wg621KL%k<Nq{hVHT<rRAM)nCwSuf0aU{ME1N
z_19mgH{SRSz4_*w^wwLyrQf~%Hof!C at 9CXC{E^;$_fPcR`+uhQ-+P}v_}~Nj at WT)3
zFMs_Tee}^s^zp}^(BD7#gg*WBQ~K<)&*<~d|3P1T@dbVP<yZ9OSO281zy4YlmH*}%
z$Tg5_AlE>yfm{Q*267GL8pt(}YarJ^u7O+wxdw6#<Qm8|kZa)E(?GIPZ#EhmRXv4W
z6r{A)Xf_+Q!s7UU>%CZOG#d4qKP!IJs}LxyKLVlh-f at qwlg=WQq;YTV^t#wxT@<x;
zFg56SuLfxIROp@F;i2Nb&_6z?g!f`w*>$%tgJ at Id9Jf<4lsaRhKRw+n3i`GX?{&{~
zfaq>l$BtV>rMvoaH?_4%^IR!i9 at SIhb(Q6`&cq8HeLuXiRuAu)Fm3 at _ItGLvF8ncn
zyh?{z=s?s$RJHM*AcG1|Pqqvkz9#5Z>e}F?NF2tSmo~`v`M#*|%toiW;3VR$6BTw9
zK8ey+O-l@##tkYOEtO@@-ZxFM)O}}W&}K^2e&?eC4WSnuY*9 at f<v?~g$}LQ`%<9@a
zd(DWAqY180Y|vp5O`8VLWs?bF(PN>%8WDs14a0v-z(kd(NP$h(3^X)kS$V at S_hGDt
zNwf;<?q#4&qmjCgu(r+As6C#uK_(r07uzVA5-!*vDt!gdb|6EFl`5OcFhir}@2u$p
z7I(%3HnGp$u-cj}=TylTPEr))ac-<z25K;J(e_}x;93kdpmV9<Kn3Gxr1(BoYcAX3
zvrtxJ&BhKzQqUJQwheqFVDBr?taB6H37Cap^L;OvWEqk%gMDD|VvBe6edN6`Tz3FZ
zJ?smtY(uJ4_<wYNK@7hg1nV>uVaB=9DI{|f;l5!EviEU_)g`muOX0C?INNO9(7?HT
z;q;CHO?ph(*#flbru{xF#_b0ZtJtKDe>3~EZEhJmHJW9H>D(^MmSABb>ZbW{Cq@{7
z_}`iV-I2H{L!vJP?X5tXan-*jaT#uM*aZRC_pV!bOeLL4XfN9`hs=D{v@)}32?GrC
z_SpGLr?%SD at E*OK*SBFiG2f&FZWws`Ys0j7z^h4&khj%?<0vTy!eqyw>UcJHoOUfH
z>wgUBTuM*SgqrAqr#S8(wzq<w3P^Ty7Q6xeVH4}he7+|fuxaJ+o*=8po>CIE;3rNP
zsbZ at ii~W{7gUdm0Z(DK=g8Xcw3hG-TeaZ6AIlFMlG~v3Qc at fMVZ{n&!1JGYE2Lxgn
z=ilhzmfQWX8HF=vtjc!ri~<~aBy<W;lviWbwtFBzs9cg6DuXkwsHg~HEHo<ys~@NX
z6w0YRB-%C`9X)2uoGlH}j_q~DG~t92(tAIcOv$u75m6!APKKQT*Ffq(2Es2EXL^bt
zZ%^13n_;EM^vG{ou)T1NB>`9D%{kHA`h~vF#Mn!Sk38N95>^I^V|q$+56`>VNgjK^
zhUh^kyo8bxa#}{vkqvBmMo1x3Nl=hwyd*%8&2%n`)3iZf<X*XAwTLREKHP8Bt3urz
zY2KEZaBMco1opGd;C169_i;cfSu(${)i26mdx6Oay(M#=K8FZHP|K&pOn(*_Z5UX?
zi}|}-#y9fRT<QtHb1(Y~*TCB|*4AB=KfJG-FB}Ur>j{L{UNHSwZ>h*34Wg``4;Q%i
z`?`X~JSN5&7$SHESAbez1MrmKm(jt)Orn<QZJBvs)$Xof``?01xO(^QQ$c*dgwzB2
zkfGFT(7E&nb+fNo@XITO8s~E}$*bIFwgNL7K}nVO=m1*5g`rQg5DO9Pi3scyiOmT6
zW`3z<QFOd1h7)AwtD+WT?44K<go)w7N+w-XY-QLl3s_<3L?D^*VF@>EBWyI@&y-bS
zF^oZ0$a`RUq{t`1UJ*dh5`le?-N5rui}}muW{PeBQH*VKOB#_t6cA6|#BIN48iI_H
z+)*c}*CTmKiv~YG^dZ71fjUdLv~LlVVTdc?%4nE_wv5N at 9?Th7l12OoI0o6#TOJ4F
zBSJ+5weqn1SjFQU;xeJ8j|;FT at 0}=4#g$UD!ehm{`k at 3oIQA(cLX9(D8C<nnb}Yzi
zOmSBaNrg}bY55cw>{v1k+kzTq8p3+Gu(F|lK|?>0#J-T6c>;c7FtY5K3Z=7Fslpdp
z8SfeJ>#0 at MAQm1_H%Rk<J(a_d*e>{NjP>Ioh);LS0ZwaWVQ<bnwE%^DATwhi#|c3<
zm>wED?Ke{_10y5rq$-Ya-^?~3=@nD;W$cvEPMFEW<@sq1TNVd_Kxe(ZVWE-`O63fr
zc%j%@G9k9^ConaK!bU;^s$cQdSmv9}$Ec^or34D1n2wnedLZphi4glj{Hj}Wp0YtD
zh+fMK0IRl=#}kM(n9hhKd^j#3$Y=nR_G8p-H~dDdAjWbUFIvswWKWys7_$P@;m|+J
zA=J7pwx`-haM0Qo=50IXq^$L#!_s)^sFAb-OfVrBMH!CI**O}6#0Za(y5O?TjK>3O
zCh0(oEGC$cwvgSORCq-zTc*JPtjTh2x>>H+S%-7%Q&hl?!bRLPuI`*AL-3b#2DFXt
zh`|vZ%SP)06>?{f#@wB;%3GMgSqm}3&06J>orn5<QrKjEi|~YtkSz7uGJ<jfhbSZc
za-=w at 7pa6joQ6PwHp)ooeJsWS<30g=kKpK22@SBxc1T6>s739`{KXAnX>$`EFfK&m
zX~$)IwVKKh!S4u%DG)^-5cdO;Ua=8Dlnf9!#ca1$X}}0(GRu<M0)0Mei>IVnsKyAS
z<_O)OqOHy!mxL=E638`dR#&ktTIs-M+(E3OCz{iMEcv!>?XD5jJG03gf29!gScq}(
z6MJD~g#d$@rRF==(`jgiGSD#>A~1#w%<1tyYT^hjq`GSj4am_E%RgO8VuSs<&DiF+
zp`1aW15n#TZ=9i|>xeNT1C_WA4ar0Kp5gR`lfswMKo<!2vB}{sijK=j!<-dASJZgw
zwTpnuy|9-chRqZatrxBNap5}=jwqbAf3SUB#|CUOMM=UgwG?@f6-ti~lz`si$sUK{
z2uyjiaY!YCCEA#=)5k)zmr>?Os}h7hBN|+-VvB(c#mr>Jok^WgwUjBRixp%oZmwei
zXE`vQsvAc%v*?9uNF4!ZDxoy0f}c<sIL-40Us?375ywUauf=Uu{!-QwA=ngA$$5+;
zofmV0P78r0S_PcH(2DvHOcf7Zznd^g94EWGVJm7%)@kSDhZcAI6ze!w<gM7!_>p@|
zckw6kv3kWYl19cJ_d%W!3Y(c2IZ|6r<$ya>MpnB3(FN^~*b1Arx_)F*>X?-UAScs6
zBy#Nu%?*r%uW#ru=El))!)}_Ad`@Jj>HN4vI5l>cQG`gspVPqRmc*}et2gpIrWf5U
z at v8JpTG{RmJ#;?lcVZh&$PD2dNws}Gb+bXLw``e8<i5*Nt=U4f*%CI%olbu;5A^p?
zau@2jtZiGhkw%bl&EC?>E!^4ddk2_}yY?NPITX{lm3BXfDrbmTXT8&wYX=VQdOJGS
zNq>yTl$$=7B4(Wb7H7q@&UoUjIJjDL{>9n<^LMoFwyMm1kjZ_w6b_9|%E%%Kw0z8P
zW~s;6chhDNXMJl=vAZz|Gxw!SyrHn@)AjpPc3S!qps&c(o$Ka!BRO8o&biH7Qftb^
zUU-|C%W-3OlTnbqXlu26>c1N`g43ml$VdT=PiQ?_+%`KrSvvP7gH2_h>g;ba?K+(6
zx*OqguI0{kv%hg12PM{ZWw0{^jTIAwhGQYEW~ScgrDg?1s<Xe*#N|lw1Vr_py)CV^
zmQ%ViiuQEr*)Tq-c!qi);VEF-;?NbkHyc2PA6Y`Y*}UtpmUbpkmL5G_H~AaK(Zoq5
zxQGiiIv0&6{!Ldro?M)G!}pdhBGcL5aPAVc>rOy~OZflu|LIk*EtoIeQT(Nn4^NQ=
zoHbPkM(Ayx>gIST?r$^u3hs3$Ai5im5}+)UI{g!yEN}d!l1o>W*tYXWsYwDSe9Xvp
z_E{lr at pjn1cjcR_4cr@`0=@-BLoE-K&hi~?4w&)1zW(VYPpfuS9Q=8dQM>iMbuJ4#
zMwYlWiF`t?fm{Q*267GL8pt(}YarJ^u7O+wxdw6#<Qm8|kZT~<K(2vY1GxtNuQc#4
D8(^5`

literal 0
HcmV?d00001

-- 
2.20.0

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

* [U-Boot] [PATCH 1/3] mx7: Do not call lcdif_power_down() in the SPL case
  2018-12-11 18:40 [U-Boot] [PATCH 1/3] mx7: Do not call lcdif_power_down() in the SPL case Otavio Salvador
  2018-12-11 18:40 ` [U-Boot] [PATCH 2/3] pico-imx7d: Add LCD support Otavio Salvador
  2018-12-11 18:40 ` [U-Boot] [PATCH 3/3] logos: Add the TechNexion's logo Otavio Salvador
@ 2018-12-12  1:47 ` Peng Fan
       [not found] ` <otavio@ossystems.com.br>
  3 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2018-12-12  1:47 UTC (permalink / raw)
  To: u-boot



> -----Original Message-----
> From: Otavio Salvador [mailto:otavio at ossystems.com.br]
> Sent: 2018年12月12日 2:41
> To: U-Boot Mailing List <u-boot@lists.denx.de>
> Cc: Stefano Babic <sbabic@denx.de>; Fabio Estevam
> <fabio.estevam@nxp.com>; Marek Vasut <marex@denx.de>; Richard Hu
> <richard.hu@technexion.com>; John Weber <john.weber@technexion.com>;
> Fabio Estevam <festevam@gmail.com>; Otavio Salvador
> <otavio@ossystems.com.br>; Ye Li <ye.li@nxp.com>; Peng Fan
> <peng.fan@nxp.com>; Bryan O'Donoghue <bryan.odonoghue@linaro.org>;
> Albert Aribaud <albert.u.boot@aribaud.net>; Rui Miguel Silva
> <rui.silva@linaro.org>; Anson Huang <anson.huang@nxp.com>; dl-linux-imx
> <linux-imx@nxp.com>
> Subject: [PATCH 1/3] mx7: Do not call lcdif_power_down() in the SPL case
> 
> From: Fabio Estevam <festevam@gmail.com>
> 
> Like it was done on imx6 in commit 9236269de57d ("imx: mx6: Fix
> implementantion reset_misc")
> 
> Do not call lcdif_power_down() in the SPL case to fix the following build error:
> 
>   LD      spl/u-boot-spl
>   MKIMAGE u-boot.img
> arch/arm/mach-imx/built-in.o: In function `reset_misc':
> /home/fabio/ossystems/u-boot/arch/arm/mach-imx/mx7/soc.c:372:
> undefined reference to `lcdif_power_down'
> scripts/Makefile.spl:375: recipe for target 'spl/u-boot-spl' failed
> 
> Signed-off-by: Fabio Estevam <festevam@gmail.com>
> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
> ---
> 
>  arch/arm/mach-imx/mx7/soc.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/arch/arm/mach-imx/mx7/soc.c b/arch/arm/mach-imx/mx7/soc.c
> index 3f74f8a3ed..7cfdff0981 100644
> --- a/arch/arm/mach-imx/mx7/soc.c
> +++ b/arch/arm/mach-imx/mx7/soc.c
> @@ -368,8 +368,10 @@ void s_init(void)
> 
>  void reset_misc(void)
>  {
> +#ifndef CONFIG_SPL_BUILD
>  #ifdef CONFIG_VIDEO_MXS
>  	lcdif_power_down();
>  #endif
> +#endif
>  }
> 

Reviewed-by: Peng Fan <peng.fan@nxp.com>

> --
> 2.20.0

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

* [U-Boot] [PATCH V2 00/10] i.MX8QXP: MEK: support SPL
@ 2018-12-21  6:21 Peng Fan
  2018-12-21  6:21 ` [U-Boot] [PATCH V2 01/10] imx8qxp: add SUPPORT_SPL option Peng Fan
                   ` (9 more replies)
  0 siblings, 10 replies; 654+ messages in thread
From: Peng Fan @ 2018-12-21  6:21 UTC (permalink / raw)
  To: u-boot

This is to support SPL for i.MX8QXP MEK board and default support SPL.
In this patchset, use SPL FIT, but actually we could not use SPL FIT
for secure boot, in NXP vendor tree, there is another format called
container, NXP use SPL + container for secure boot. The container
support is on my TODO list. But to make SPL work in upstream, use
SPL FIT here.

V2:
 Correct patch 9/10 10/10, SPL_TEXT_BASE is patch 9/10 is wrong, however 10/10
 corrected, so clean that.

Peng Fan (10):
  imx8qxp: add SUPPORT_SPL option
  imx8: scu: use dedicated MU for SPL
  arm: imx: build mach-imx for i.MX8
  gpio: introduce CONFIG_SPL_DM_PCA953X
  spl: imx8: add spl boot device
  dts: imx8qxp-mek: introduce u-boot dtsi
  imx: mkimage_fit_atf: introduce BL33_BASE_ADDR
  imx: build flash.bin for i.MX8
  imx8qxp: mek: default enable SPL
  imx8qxp: mek: update README

 Makefile                                 |   2 +-
 arch/arm/Makefile                        |   2 +-
 arch/arm/dts/fsl-imx8qxp-mek-u-boot.dtsi | 112 +++++++++++++++++++++++++++++++
 arch/arm/dts/fsl-imx8qxp-mek.dts         |   1 +
 arch/arm/mach-imx/Makefile               |  15 ++++-
 arch/arm/mach-imx/imx8/Kconfig           |   8 +++
 arch/arm/mach-imx/mkimage_fit_atf.sh     |   3 +-
 arch/arm/mach-imx/spl.c                  |  14 +++-
 board/freescale/imx8qxp_mek/Makefile     |   1 +
 board/freescale/imx8qxp_mek/README       |   8 ++-
 board/freescale/imx8qxp_mek/imximage.cfg |   4 +-
 board/freescale/imx8qxp_mek/spl.c        |  75 +++++++++++++++++++++
 configs/imx8qxp_mek_defconfig            |  24 +++++++
 drivers/gpio/Kconfig                     |  23 +++++++
 drivers/gpio/Makefile                    |   2 +-
 drivers/misc/imx8/scu.c                  |   4 ++
 include/configs/imx8qxp_mek.h            |  26 +++++++
 17 files changed, 311 insertions(+), 13 deletions(-)
 create mode 100644 arch/arm/dts/fsl-imx8qxp-mek-u-boot.dtsi
 create mode 100644 board/freescale/imx8qxp_mek/spl.c

-- 
2.14.1

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

* [U-Boot] [PATCH V2 01/10] imx8qxp: add SUPPORT_SPL option
  2018-12-21  6:21 [U-Boot] [PATCH V2 00/10] i.MX8QXP: MEK: support SPL Peng Fan
@ 2018-12-21  6:21 ` Peng Fan
  2018-12-21  6:21 ` [U-Boot] [PATCH V2 02/10] imx8: scu: use dedicated MU for SPL Peng Fan
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2018-12-21  6:21 UTC (permalink / raw)
  To: u-boot

Enable SUPPORT_SPL option for i.MX8QXP, then we could enable SPL.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 arch/arm/mach-imx/imx8/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/mach-imx/imx8/Kconfig b/arch/arm/mach-imx/imx8/Kconfig
index 0d3a87cd74..9671107cb6 100644
--- a/arch/arm/mach-imx/imx8/Kconfig
+++ b/arch/arm/mach-imx/imx8/Kconfig
@@ -5,6 +5,7 @@ config IMX8
 
 config IMX8QXP
 	select IMX8
+	select SUPPORT_SPL
 	bool
 
 config SYS_SOC
-- 
2.14.1

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

* [U-Boot] [PATCH V2 02/10] imx8: scu: use dedicated MU for SPL
  2018-12-21  6:21 [U-Boot] [PATCH V2 00/10] i.MX8QXP: MEK: support SPL Peng Fan
  2018-12-21  6:21 ` [U-Boot] [PATCH V2 01/10] imx8qxp: add SUPPORT_SPL option Peng Fan
@ 2018-12-21  6:21 ` Peng Fan
  2018-12-21  6:21 ` [U-Boot] [PATCH V2 03/10] arm: imx: build mach-imx for i.MX8 Peng Fan
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2018-12-21  6:21 UTC (permalink / raw)
  To: u-boot

SPL runs in EL3 mode, except MU0_A, others are not powered on,
and could not be used. However normal U-Boot use MU1_A, so we
could not reuse the one in dts. And we could not replace the one
in dts with MU0_A, because MU0_A is reserved in secure world.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 arch/arm/mach-imx/imx8/Kconfig | 7 +++++++
 drivers/misc/imx8/scu.c        | 4 ++++
 2 files changed, 11 insertions(+)

diff --git a/arch/arm/mach-imx/imx8/Kconfig b/arch/arm/mach-imx/imx8/Kconfig
index 9671107cb6..f76a139684 100644
--- a/arch/arm/mach-imx/imx8/Kconfig
+++ b/arch/arm/mach-imx/imx8/Kconfig
@@ -3,6 +3,13 @@ if ARCH_IMX8
 config IMX8
 	bool
 
+config MU_BASE_SPL
+	hex "MU base address used in SPL"
+	default 0x5d1b0000
+	help
+	  SPL runs in EL3 mode, it use MU0_A to communicate with SCU.
+	  So we could not reuse the one in dts which is for normal U-Boot.
+
 config IMX8QXP
 	select IMX8
 	select SUPPORT_SPL
diff --git a/drivers/misc/imx8/scu.c b/drivers/misc/imx8/scu.c
index 15101b3e5f..1b9c49c99c 100644
--- a/drivers/misc/imx8/scu.c
+++ b/drivers/misc/imx8/scu.c
@@ -191,7 +191,11 @@ static int imx8_scu_probe(struct udevice *dev)
 	if (addr == FDT_ADDR_T_NONE)
 		return -EINVAL;
 
+#ifdef CONFIG_SPL_BUILD
+	plat->base = (struct mu_type *)CONFIG_MU_BASE_SPL;
+#else
 	plat->base = (struct mu_type *)addr;
+#endif
 
 	/* U-Boot not enable interrupts, so need to enable RX interrupts */
 	mu_hal_init(plat->base);
-- 
2.14.1

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

* [U-Boot] [PATCH V2 03/10] arm: imx: build mach-imx for i.MX8
  2018-12-21  6:21 [U-Boot] [PATCH V2 00/10] i.MX8QXP: MEK: support SPL Peng Fan
  2018-12-21  6:21 ` [U-Boot] [PATCH V2 01/10] imx8qxp: add SUPPORT_SPL option Peng Fan
  2018-12-21  6:21 ` [U-Boot] [PATCH V2 02/10] imx8: scu: use dedicated MU for SPL Peng Fan
@ 2018-12-21  6:21 ` Peng Fan
  2018-12-21  6:21 ` [U-Boot] [PATCH V2 04/10] gpio: introduce CONFIG_SPL_DM_PCA953X Peng Fan
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2018-12-21  6:21 UTC (permalink / raw)
  To: u-boot

To enable SPL for i.MX8, we could reuse code in arch/arm/mach-imx.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 arch/arm/Makefile          | 2 +-
 arch/arm/mach-imx/Makefile | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 87d9d4b9f7..0e2cfd4534 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -103,7 +103,7 @@ libs-y += arch/arm/cpu/
 libs-y += arch/arm/lib/
 
 ifeq ($(CONFIG_SPL_BUILD),y)
-ifneq (,$(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_MX35)$(filter $(SOC), mx25 mx5 mx6 mx7 mx35 imx8m))
+ifneq (,$(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_MX35)$(filter $(SOC), mx25 mx5 mx6 mx7 mx35 imx8m imx8))
 libs-y += arch/arm/mach-imx/
 endif
 else
diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile
index 04783fa04e..5424848ad3 100644
--- a/arch/arm/mach-imx/Makefile
+++ b/arch/arm/mach-imx/Makefile
@@ -24,7 +24,7 @@ obj-y	+= cpu.o speed.o
 obj-$(CONFIG_GPT_TIMER) += timer.o
 obj-$(CONFIG_SYS_I2C_MXC) += i2c-mxv7.o
 endif
-ifeq ($(SOC),$(filter $(SOC),mx7 mx6 mxs imx8m))
+ifeq ($(SOC),$(filter $(SOC),mx7 mx6 mxs imx8m imx8))
 obj-y	+= misc.o
 obj-$(CONFIG_SPL_BUILD)	+= spl.o
 endif
-- 
2.14.1

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

* [U-Boot] [PATCH V2 04/10] gpio: introduce CONFIG_SPL_DM_PCA953X
  2018-12-21  6:21 [U-Boot] [PATCH V2 00/10] i.MX8QXP: MEK: support SPL Peng Fan
                   ` (2 preceding siblings ...)
  2018-12-21  6:21 ` [U-Boot] [PATCH V2 03/10] arm: imx: build mach-imx for i.MX8 Peng Fan
@ 2018-12-21  6:21 ` Peng Fan
  2018-12-21  6:21 ` [U-Boot] [PATCH V2 05/10] spl: imx8: add spl boot device Peng Fan
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2018-12-21  6:21 UTC (permalink / raw)
  To: u-boot

Introduce CONFIG_SPL_DM_PCA953X for SPL usage.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 drivers/gpio/Kconfig  | 23 +++++++++++++++++++++++
 drivers/gpio/Makefile |  2 +-
 2 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index 35344e57c6..b1c9404aaf 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -292,6 +292,29 @@ config DM_PCA953X
 	  Now, max 24 bits chips and PCA953X compatible chips are
 	  supported
 
+config SPL_DM_PCA953X
+	bool "PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports in SPL"
+	depends on DM_GPIO
+	help
+	  Say yes here to provide access to several register-oriented
+	  SMBus I/O expanders, made mostly by NXP or TI.  Compatible
+	  models include:
+
+	  4 bits:	pca9536, pca9537
+
+	  8 bits:	max7310, max7315, pca6107, pca9534, pca9538, pca9554,
+			pca9556, pca9557, pca9574, tca6408, xra1202
+
+	  16 bits:	max7312, max7313, pca9535, pca9539, pca9555, pca9575,
+			tca6416
+
+	  24 bits:	tca6424
+
+	  40 bits:	pca9505, pca9698
+
+	  Now, max 24 bits chips and PCA953X compatible chips are
+	  supported
+
 config MPC8XXX_GPIO
 	bool "Freescale MPC8XXX GPIO driver"
 	depends on DM_GPIO
diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile
index 7ed9a4ec42..dac238ae06 100644
--- a/drivers/gpio/Makefile
+++ b/drivers/gpio/Makefile
@@ -9,7 +9,7 @@ obj-$(CONFIG_AXP_GPIO)		+= axp_gpio.o
 endif
 obj-$(CONFIG_DM_GPIO)		+= gpio-uclass.o
 
-obj-$(CONFIG_DM_PCA953X)	+= pca953x_gpio.o
+obj-$(CONFIG_$(SPL_)DM_PCA953X)	+= pca953x_gpio.o
 obj-$(CONFIG_DM_74X164)		+= 74x164_gpio.o
 
 obj-$(CONFIG_AT91_GPIO)	+= at91_gpio.o
-- 
2.14.1

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

* [U-Boot] [PATCH V2 05/10] spl: imx8: add spl boot device
  2018-12-21  6:21 [U-Boot] [PATCH V2 00/10] i.MX8QXP: MEK: support SPL Peng Fan
                   ` (3 preceding siblings ...)
  2018-12-21  6:21 ` [U-Boot] [PATCH V2 04/10] gpio: introduce CONFIG_SPL_DM_PCA953X Peng Fan
@ 2018-12-21  6:21 ` Peng Fan
  2018-12-21  6:21 ` [U-Boot] [PATCH V2 06/10] dts: imx8qxp-mek: introduce u-boot dtsi Peng Fan
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2018-12-21  6:21 UTC (permalink / raw)
  To: u-boot

Add spl_boot_device for i.MX8, also add BOOT_DEVICE_MMC2_2 for
spl_boot_mode.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 arch/arm/mach-imx/spl.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-imx/spl.c b/arch/arm/mach-imx/spl.c
index 58a92278df..3ee5061b08 100644
--- a/arch/arm/mach-imx/spl.c
+++ b/arch/arm/mach-imx/spl.c
@@ -96,7 +96,7 @@ u32 spl_boot_device(void)
 	return BOOT_DEVICE_NONE;
 }
 
-#elif defined(CONFIG_MX7) || defined(CONFIG_IMX8M)
+#elif defined(CONFIG_MX7) || defined(CONFIG_IMX8M) || defined(CONFIG_IMX8)
 /* Translate iMX7/i.MX8M boot device to the SPL boot device enumeration */
 u32 spl_boot_device(void)
 {
@@ -134,6 +134,15 @@ u32 spl_boot_device(void)
 	case SD3_BOOT:
 	case MMC3_BOOT:
 		return BOOT_DEVICE_MMC1;
+#elif defined(CONFIG_IMX8)
+	case MMC1_BOOT:
+		return BOOT_DEVICE_MMC1;
+	case SD2_BOOT:
+		return BOOT_DEVICE_MMC2_2;
+	case SD3_BOOT:
+		return BOOT_DEVICE_MMC1;
+	case FLEXSPI_BOOT:
+		return BOOT_DEVICE_SPI;
 #elif defined(CONFIG_IMX8M)
 	case SD1_BOOT:
 	case MMC1_BOOT:
@@ -152,7 +161,7 @@ u32 spl_boot_device(void)
 		return BOOT_DEVICE_NONE;
 	}
 }
-#endif /* CONFIG_MX7 || CONFIG_IMX8M */
+#endif /* CONFIG_MX7 || CONFIG_IMX8M || CONFIG_IMX8 */
 
 #ifdef CONFIG_SPL_USB_GADGET_SUPPORT
 int g_dnl_bind_fixup(struct usb_device_descriptor *dev, const char *name)
@@ -171,6 +180,7 @@ u32 spl_boot_mode(const u32 boot_device)
 	/* for MMC return either RAW or FAT mode */
 	case BOOT_DEVICE_MMC1:
 	case BOOT_DEVICE_MMC2:
+	case BOOT_DEVICE_MMC2_2:
 #if defined(CONFIG_SPL_FAT_SUPPORT)
 		return MMCSD_MODE_FS;
 #elif defined(CONFIG_SUPPORT_EMMC_BOOT)
-- 
2.14.1

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

* [U-Boot] [PATCH V2 06/10] dts: imx8qxp-mek: introduce u-boot dtsi
  2018-12-21  6:21 [U-Boot] [PATCH V2 00/10] i.MX8QXP: MEK: support SPL Peng Fan
                   ` (4 preceding siblings ...)
  2018-12-21  6:21 ` [U-Boot] [PATCH V2 05/10] spl: imx8: add spl boot device Peng Fan
@ 2018-12-21  6:21 ` Peng Fan
  2018-12-21  6:21 ` [U-Boot] [PATCH V2 07/10] imx: mkimage_fit_atf: introduce BL33_BASE_ADDR Peng Fan
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2018-12-21  6:21 UTC (permalink / raw)
  To: u-boot

Introduce u-boot dtsi for i.MX8QXP MEK board.
we do not introduce a common dtsi for SoC, because different board
has different requirement on which needs to be enabled in SPL DM.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 arch/arm/dts/fsl-imx8qxp-mek-u-boot.dtsi | 112 +++++++++++++++++++++++++++++++
 arch/arm/dts/fsl-imx8qxp-mek.dts         |   1 +
 2 files changed, 113 insertions(+)
 create mode 100644 arch/arm/dts/fsl-imx8qxp-mek-u-boot.dtsi

diff --git a/arch/arm/dts/fsl-imx8qxp-mek-u-boot.dtsi b/arch/arm/dts/fsl-imx8qxp-mek-u-boot.dtsi
new file mode 100644
index 0000000000..5d50eb028e
--- /dev/null
+++ b/arch/arm/dts/fsl-imx8qxp-mek-u-boot.dtsi
@@ -0,0 +1,112 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2018 NXP
+ */
+
+&mu {
+	u-boot,dm-spl;
+};
+
+&clk {
+	u-boot,dm-spl;
+};
+
+&iomuxc {
+	u-boot,dm-spl;
+};
+
+&pd_lsio {
+	u-boot,dm-spl;
+};
+
+&pd_lsio_gpio0 {
+	u-boot,dm-spl;
+};
+
+&pd_lsio_gpio1 {
+	u-boot,dm-spl;
+};
+
+&pd_lsio_gpio2 {
+	u-boot,dm-spl;
+};
+
+&pd_lsio_gpio3 {
+	u-boot,dm-spl;
+};
+
+&pd_lsio_gpio4 {
+	u-boot,dm-spl;
+};
+
+&pd_lsio_gpio5 {
+	u-boot,dm-spl;
+};
+
+&pd_lsio_gpio6 {
+	u-boot,dm-spl;
+};
+
+&pd_lsio_gpio7 {
+	u-boot,dm-spl;
+};
+
+&pd_conn {
+	u-boot,dm-spl;
+};
+
+&pd_conn_sdch0 {
+	u-boot,dm-spl;
+};
+
+&pd_conn_sdch1 {
+	u-boot,dm-spl;
+};
+
+&pd_conn_sdch2 {
+	u-boot,dm-spl;
+};
+
+&gpio0 {
+	u-boot,dm-spl;
+};
+
+&gpio1 {
+	u-boot,dm-spl;
+};
+
+&gpio2 {
+	u-boot,dm-spl;
+};
+
+&gpio3 {
+	u-boot,dm-spl;
+};
+
+&gpio4 {
+	u-boot,dm-spl;
+};
+
+&gpio5 {
+	u-boot,dm-spl;
+};
+
+&gpio6 {
+	u-boot,dm-spl;
+};
+
+&gpio7 {
+	u-boot,dm-spl;
+};
+
+&lpuart0 {
+	u-boot,dm-spl;
+};
+
+&usdhc1 {
+	u-boot,dm-spl;
+};
+
+&usdhc2 {
+	u-boot,dm-spl;
+};
diff --git a/arch/arm/dts/fsl-imx8qxp-mek.dts b/arch/arm/dts/fsl-imx8qxp-mek.dts
index adab494cdf..41f7ec1763 100644
--- a/arch/arm/dts/fsl-imx8qxp-mek.dts
+++ b/arch/arm/dts/fsl-imx8qxp-mek.dts
@@ -6,6 +6,7 @@
 /dts-v1/;
 
 #include "fsl-imx8qxp.dtsi"
+#include "fsl-imx8qxp-mek-u-boot.dtsi"
 
 / {
 	model = "Freescale i.MX8QXP MEK";
-- 
2.14.1

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

* [U-Boot] [PATCH V2 07/10] imx: mkimage_fit_atf: introduce BL33_BASE_ADDR
  2018-12-21  6:21 [U-Boot] [PATCH V2 00/10] i.MX8QXP: MEK: support SPL Peng Fan
                   ` (5 preceding siblings ...)
  2018-12-21  6:21 ` [U-Boot] [PATCH V2 06/10] dts: imx8qxp-mek: introduce u-boot dtsi Peng Fan
@ 2018-12-21  6:21 ` Peng Fan
  2018-12-21  6:21 ` [U-Boot] [PATCH V2 08/10] imx: build flash.bin for i.MX8 Peng Fan
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2018-12-21  6:21 UTC (permalink / raw)
  To: u-boot

Introduce BL33_BASE_ADDR, then we could reuse this script for i.MX8QXP.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 arch/arm/mach-imx/mkimage_fit_atf.sh | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/arm/mach-imx/mkimage_fit_atf.sh b/arch/arm/mach-imx/mkimage_fit_atf.sh
index 77f7143263..38c9858e84 100755
--- a/arch/arm/mach-imx/mkimage_fit_atf.sh
+++ b/arch/arm/mach-imx/mkimage_fit_atf.sh
@@ -9,6 +9,7 @@
 [ -z "$BL31" ] && BL31="bl31.bin"
 [ -z "$TEE_LOAD_ADDR" ] && TEE_LOAD_ADDR="0xfe000000"
 [ -z "$ATF_LOAD_ADDR" ] && ATF_LOAD_ADDR="0x00910000"
+[ -z "$BL33_LOAD_ADDR" ] && BL33_LOAD_ADDR="0x40200000"
 
 if [ ! -f $BL31 ]; then
 	echo "ERROR: BL31 file $BL31 NOT found" >&2
@@ -58,7 +59,7 @@ cat << __HEADER_EOF
 			type = "standalone";
 			arch = "arm64";
 			compression = "none";
-			load = <0x40200000>;
+			load = <$BL33_LOAD_ADDR>;
 		};
 		atf at 1 {
 			description = "ARM Trusted Firmware";
-- 
2.14.1

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

* [U-Boot] [PATCH V2 08/10] imx: build flash.bin for i.MX8
  2018-12-21  6:21 [U-Boot] [PATCH V2 00/10] i.MX8QXP: MEK: support SPL Peng Fan
                   ` (6 preceding siblings ...)
  2018-12-21  6:21 ` [U-Boot] [PATCH V2 07/10] imx: mkimage_fit_atf: introduce BL33_BASE_ADDR Peng Fan
@ 2018-12-21  6:21 ` Peng Fan
  2018-12-21  6:21 ` [U-Boot] [PATCH V2 09/10] imx8qxp: mek: default enable SPL Peng Fan
  2018-12-21  6:21 ` [U-Boot] [PATCH V2 10/10] imx8qxp: mek: update README Peng Fan
  9 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2018-12-21  6:21 UTC (permalink / raw)
  To: u-boot

Build flash.bin for i.MX8 when SPL enabled.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 Makefile                   |  2 +-
 arch/arm/mach-imx/Makefile | 13 +++++++++++++
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index 74d4259eb6..e9a0d3ab3a 100644
--- a/Makefile
+++ b/Makefile
@@ -1200,7 +1200,7 @@ tpl/u-boot-with-tpl.bin: tpl/u-boot-tpl.bin u-boot.bin FORCE
 SPL: spl/u-boot-spl.bin FORCE
 	$(Q)$(MAKE) $(build)=arch/arm/mach-imx $@
 
-ifeq ($(CONFIG_ARCH_IMX8M), y)
+ifeq ($(CONFIG_ARCH_IMX8M)$(CONFIG_ARCH_IMX8), y)
 flash.bin: spl/u-boot-spl.bin u-boot.itb FORCE
 	$(Q)$(MAKE) $(build)=arch/arm/mach-imx $@
 endif
diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile
index 5424848ad3..e84798b35c 100644
--- a/arch/arm/mach-imx/Makefile
+++ b/arch/arm/mach-imx/Makefile
@@ -105,6 +105,7 @@ IMX_CONFIG = $(CONFIG_IMX_CONFIG:"%"=%)
 ifeq ($(CONFIG_ARCH_IMX8), y)
 CNTR_DEPFILES := $(srctree)/tools/imx_cntr_image.sh
 IMAGE_TYPE := imx8image
+SPL_DEPFILE_EXISTS := $(shell $(CPP) $(cpp_flags) -x c -o spl/u-boot-spl.cfgout $(srctree)/$(IMX_CONFIG); if [ -f spl/u-boot-spl.cfgout ]; then $(CNTR_DEPFILES) spl/u-boot-spl.cfgout; echo $$?; fi)
 DEPFILE_EXISTS := $(shell $(CPP) $(cpp_flags) -x c -o u-boot-dtb.cfgout $(srctree)/$(IMX_CONFIG); if [ -f u-boot-dtb.cfgout ]; then $(CNTR_DEPFILES) u-boot-dtb.cfgout; echo $$?; fi)
 else ifeq ($(CONFIG_ARCH_IMX8M), y)
 IMAGE_TYPE := imx8mimage
@@ -153,6 +154,18 @@ ifeq ($(DEPFILE_EXISTS),0)
 endif
 endif
 
+ifeq ($(CONFIG_ARCH_IMX8), y)
+SPL:
+
+MKIMAGEFLAGS_flash.bin = -n spl/u-boot-spl.cfgout -T $(IMAGE_TYPE) -e 0x100000
+flash.bin: MKIMAGEOUTPUT = flash.log
+
+flash.bin: spl/u-boot-spl.bin u-boot.itb FORCE
+ifeq ($(SPL_DEPFILE_EXISTS),0)
+	$(call if_changed,mkimage)
+endif
+endif
+
 else
 MKIMAGEFLAGS_SPL = -n $(filter-out $(PLUGIN).bin $< $(PHONY),$^) \
 		   -T $(IMAGE_TYPE) -e $(CONFIG_SPL_TEXT_BASE)
-- 
2.14.1

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

* [U-Boot] [PATCH V2 09/10] imx8qxp: mek: default enable SPL
  2018-12-21  6:21 [U-Boot] [PATCH V2 00/10] i.MX8QXP: MEK: support SPL Peng Fan
                   ` (7 preceding siblings ...)
  2018-12-21  6:21 ` [U-Boot] [PATCH V2 08/10] imx: build flash.bin for i.MX8 Peng Fan
@ 2018-12-21  6:21 ` Peng Fan
  2018-12-21  6:21 ` [U-Boot] [PATCH V2 10/10] imx8qxp: mek: update README Peng Fan
  9 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2018-12-21  6:21 UTC (permalink / raw)
  To: u-boot

Enable SPL for i.MX8QXP MEK, and currently use SPL FIT.
The SPL enable SPL_DM to use MMC/PINCTRL/POWER DOMAIN/CLK.

Note: SPL FIT could not support secure boot chain, because i.MX8/8X
only support i.MX container format. This container format has
not been upstreamed, so we use FIT for now. When SPL container
supported, we could switch to that.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 board/freescale/imx8qxp_mek/Makefile     |  1 +
 board/freescale/imx8qxp_mek/imximage.cfg |  4 +-
 board/freescale/imx8qxp_mek/spl.c        | 75 ++++++++++++++++++++++++++++++++
 configs/imx8qxp_mek_defconfig            | 24 ++++++++++
 include/configs/imx8qxp_mek.h            | 26 +++++++++++
 5 files changed, 127 insertions(+), 3 deletions(-)
 create mode 100644 board/freescale/imx8qxp_mek/spl.c

diff --git a/board/freescale/imx8qxp_mek/Makefile b/board/freescale/imx8qxp_mek/Makefile
index f9ee8aeff3..acaadcd84a 100644
--- a/board/freescale/imx8qxp_mek/Makefile
+++ b/board/freescale/imx8qxp_mek/Makefile
@@ -5,3 +5,4 @@
 #
 
 obj-y += imx8qxp_mek.o
+obj-$(CONFIG_SPL_BUILD) += spl.o
diff --git a/board/freescale/imx8qxp_mek/imximage.cfg b/board/freescale/imx8qxp_mek/imximage.cfg
index bbffb1a88f..259a1646bf 100644
--- a/board/freescale/imx8qxp_mek/imximage.cfg
+++ b/board/freescale/imx8qxp_mek/imximage.cfg
@@ -19,6 +19,4 @@ CONTAINER
 /* Add scfw image with exec attribute */
 IMAGE SCU mx8qx-mek-scfw-tcm.bin
 /* Add ATF image with exec attribute */
-IMAGE A35 bl31.bin 0x80000000
-/* Add U-Boot image with load attribute */
-DATA A35 u-boot-dtb.bin 0x80020000
+IMAGE A35 spl/u-boot-spl.bin 0x00100000
diff --git a/board/freescale/imx8qxp_mek/spl.c b/board/freescale/imx8qxp_mek/spl.c
new file mode 100644
index 0000000000..95ce9f37e8
--- /dev/null
+++ b/board/freescale/imx8qxp_mek/spl.c
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2018 NXP
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <spl.h>
+#include <dm/uclass.h>
+#include <dm/device.h>
+#include <dm/uclass-internal.h>
+#include <dm/device-internal.h>
+#include <dm/lists.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+void spl_board_init(void)
+{
+	struct udevice *dev;
+	int offset;
+
+	uclass_find_first_device(UCLASS_MISC, &dev);
+
+	for (; dev; uclass_find_next_device(&dev)) {
+		if (device_probe(dev))
+			continue;
+	}
+
+	offset = fdt_node_offset_by_compatible(gd->fdt_blob, -1, "nxp,imx8-pd");
+	while (offset != -FDT_ERR_NOTFOUND) {
+		lists_bind_fdt(gd->dm_root, offset_to_ofnode(offset),
+			       NULL, true);
+		offset = fdt_node_offset_by_compatible(gd->fdt_blob, offset,
+						       "nxp,imx8-pd");
+	}
+
+	uclass_find_first_device(UCLASS_POWER_DOMAIN, &dev);
+
+	for (; dev; uclass_find_next_device(&dev)) {
+		if (device_probe(dev))
+			continue;
+	}
+
+	arch_cpu_init();
+
+	board_early_init_f();
+
+	timer_init();
+
+	preloader_console_init();
+
+	puts("Normal Boot\n");
+}
+
+#ifdef CONFIG_SPL_LOAD_FIT
+int board_fit_config_name_match(const char *name)
+{
+	/* Just empty function now - can't decide what to choose */
+	debug("%s: %s\n", __func__, name);
+
+	return 0;
+}
+#endif
+
+void board_init_f(ulong dummy)
+{
+	/* Clear global data */
+	memset((void *)gd, 0, sizeof(gd_t));
+
+	/* Clear the BSS. */
+	memset(__bss_start, 0, __bss_end - __bss_start);
+
+	board_init_r(NULL, 0);
+}
diff --git a/configs/imx8qxp_mek_defconfig b/configs/imx8qxp_mek_defconfig
index 58b4ca0861..a87dbd17ff 100644
--- a/configs/imx8qxp_mek_defconfig
+++ b/configs/imx8qxp_mek_defconfig
@@ -1,11 +1,28 @@
 CONFIG_ARM=y
 CONFIG_ARCH_IMX8=y
 CONFIG_SYS_TEXT_BASE=0x80020000
+CONFIG_SPL_GPIO_SUPPORT=y
+CONFIG_SPL_LIBCOMMON_SUPPORT=y
+CONFIG_SPL_LIBGENERIC_SUPPORT=y
 CONFIG_SYS_MALLOC_F_LEN=0x2000
 CONFIG_TARGET_IMX8QXP_MEK=y
+CONFIG_SPL_MMC_SUPPORT=y
+CONFIG_SPL_SERIAL_SUPPORT=y
+CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
+CONFIG_SPL=y
 CONFIG_NR_DRAM_BANKS=3
+CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-imx/mkimage_fit_atf.sh"
+CONFIG_FIT=y
+CONFIG_SPL_LOAD_FIT=y
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/imx8qxp_mek/imximage.cfg"
 CONFIG_BOOTDELAY=3
+CONFIG_LOG=y
+CONFIG_SPL_BOARD_INIT=y
+CONFIG_SPL_SYS_MALLOC_SIMPLE=y
+CONFIG_SPL_SEPARATE_BSS=y
+CONFIG_SPL_POWER_SUPPORT=y
+CONFIG_SPL_POWER_DOMAIN=y
+CONFIG_SPL_WATCHDOG_SUPPORT=y
 CONFIG_CMD_CPU=y
 # CONFIG_CMD_IMPORTENV is not set
 CONFIG_CMD_CLK=y
@@ -18,8 +35,11 @@ CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_FAT=y
+CONFIG_SPL_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="fsl-imx8qxp-mek"
 CONFIG_ENV_IS_IN_MMC=y
+CONFIG_SPL_DM=y
+CONFIG_SPL_CLK=y
 CONFIG_CLK_IMX8=y
 CONFIG_CPU=y
 CONFIG_DM_GPIO=y
@@ -41,12 +61,16 @@ CONFIG_FEC_MXC_MDIO_BASE=0x5B040000
 CONFIG_FEC_MXC=y
 CONFIG_MII=y
 CONFIG_PINCTRL=y
+CONFIG_SPL_PINCTRL=y
 CONFIG_PINCTRL_IMX8=y
 CONFIG_POWER_DOMAIN=y
 CONFIG_IMX8_POWER_DOMAIN=y
 CONFIG_DM_REGULATOR=y
+CONFIG_SPL_DM_REGULATOR=y
 CONFIG_DM_REGULATOR_FIXED=y
 CONFIG_DM_REGULATOR_GPIO=y
+CONFIG_SPL_DM_REGULATOR_GPIO=y
 CONFIG_DM_SERIAL=y
 CONFIG_FSL_LPUART=y
+CONFIG_SPL_TINY_MEMSET=y
 # CONFIG_EFI_LOADER is not set
diff --git a/include/configs/imx8qxp_mek.h b/include/configs/imx8qxp_mek.h
index d34d174cac..312e30dc6c 100644
--- a/include/configs/imx8qxp_mek.h
+++ b/include/configs/imx8qxp_mek.h
@@ -9,6 +9,32 @@
 #include <linux/sizes.h>
 #include <asm/arch/imx-regs.h>
 
+#ifdef CONFIG_SPL_BUILD
+#define CONFIG_SPL_TEXT_BASE				0x0
+#define CONFIG_SPL_MAX_SIZE				(124 * 1024)
+#define CONFIG_SYS_MONITOR_LEN				(1024 * 1024)
+#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR
+#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR		0x250
+#define CONFIG_SYS_MMCSD_FS_BOOT_PARTITION		0
+
+#define CONFIG_SPL_LDSCRIPT		"arch/arm/cpu/armv8/u-boot-spl.lds"
+#define CONFIG_SPL_STACK		0x013E000
+#define CONFIG_SPL_BSS_START_ADDR	0x00128000
+#define CONFIG_SPL_BSS_MAX_SIZE		0x1000	/* 4 KB */
+#define CONFIG_SYS_SPL_MALLOC_START	0x00120000
+#define CONFIG_SYS_SPL_MALLOC_SIZE	0x3000	/* 12 KB */
+#define CONFIG_SERIAL_LPUART_BASE	0x5a060000
+#define CONFIG_SYS_ICACHE_OFF
+#define CONFIG_SYS_DCACHE_OFF
+#define CONFIG_MALLOC_F_ADDR		0x00120000
+
+#define CONFIG_SPL_RAW_IMAGE_ARM_TRUSTED_FIRMWARE
+
+#define CONFIG_SPL_ABORT_ON_RAW_IMAGE
+
+#define CONFIG_OF_EMBED
+#endif
+
 #define CONFIG_REMAKE_ELF
 
 #define CONFIG_BOARD_EARLY_INIT_F
-- 
2.14.1

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

* [U-Boot] [PATCH V2 10/10] imx8qxp: mek: update README
  2018-12-21  6:21 [U-Boot] [PATCH V2 00/10] i.MX8QXP: MEK: support SPL Peng Fan
                   ` (8 preceding siblings ...)
  2018-12-21  6:21 ` [U-Boot] [PATCH V2 09/10] imx8qxp: mek: default enable SPL Peng Fan
@ 2018-12-21  6:21 ` Peng Fan
  9 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2018-12-21  6:21 UTC (permalink / raw)
  To: u-boot

Update README after we switch to use SPL

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 board/freescale/imx8qxp_mek/README | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/board/freescale/imx8qxp_mek/README b/board/freescale/imx8qxp_mek/README
index e91e193d11..f32290e3a2 100644
--- a/board/freescale/imx8qxp_mek/README
+++ b/board/freescale/imx8qxp_mek/README
@@ -39,16 +39,18 @@ $ cp imx-sc-firmware-0.7/mx8qx-mek-scfw-tcm.bin	.
 
 Build U-Boot
 ============
-
+$ export ATF_LOAD_ADDR=0x80000000
+$ export BL33_LOAD_ADDR=0x80020000
 $ make imx8qxp_mek_defconfig
-$ make
+$ make flash.bin
+$ dd if=u-boot.itb of=flash.bin bs=512 seek=528
 
 Flash the binary into the SD card
 =================================
 
 Burn the flash.bin binary to SD card offset 32KB:
 
-$ sudo dd if=u-boot-dtb.imx of=/dev/sd[x] bs=1024 seek=32
+$ sudo dd if=flash.bin of=/dev/sd[x] bs=1024 seek=32
 
 Boot
 ====
-- 
2.14.1

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

* [U-Boot] [PATCH 1/2] tools/imx8m_image.sh: remove bashism
@ 2019-01-02  6:58 Baruch Siach
  2019-01-02  6:58 ` [U-Boot] [PATCH 2/2] imx8mq_evk/README: remove ARCH environment variable Baruch Siach
                   ` (2 more replies)
  0 siblings, 3 replies; 654+ messages in thread
From: Baruch Siach @ 2019-01-02  6:58 UTC (permalink / raw)
  To: u-boot

Use a single '=' to test string equality for compatibility with non-bash
shells. Otherwise, if /bin/sh is dash, build fails:

./tools/imx8m_image.sh: 15: [: signed_hdmi_imx8m.bin: unexpected operator
./tools/imx8m_image.sh: 15: [: signed_hdmi_imx8m.bin: unexpected operator
./tools/imx8m_image.sh: 15: [: spl/u-boot-spl-ddr.bin: unexpected operator
./tools/imx8m_image.sh: 15: [: spl/u-boot-spl-ddr.bin: unexpected operator
WARNING './spl/u-boot-spl-ddr.bin' not found, resulting binary is not-functional

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---
 tools/imx8m_image.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/imx8m_image.sh b/tools/imx8m_image.sh
index 6346fb64d8c5..ec0881a12812 100755
--- a/tools/imx8m_image.sh
+++ b/tools/imx8m_image.sh
@@ -12,7 +12,7 @@ blobs=`awk '/^SIGNED_HDMI/ {print $2} /^LOADER/ {print $2} /^SECOND_LOADER/ {pri
 for f in $blobs; do
 	tmp=$srctree/$f
 
-	if [ $f == "spl/u-boot-spl-ddr.bin" ] || [ $f == "u-boot.itb" ]; then
+	if [ $f = "spl/u-boot-spl-ddr.bin" ] || [ $f = "u-boot.itb" ]; then
 		continue
 	fi
 
@@ -28,7 +28,7 @@ for f in $blobs; do
 	sed -in "s;$f;$tmp;" $file
 done
 
-if [ $post_process == 1 ]; then
+if [ $post_process = 1 ]; then
 	if [ -f $srctree/lpddr4_pmu_train_1d_imem.bin ]; then
 		objcopy -I binary -O binary --pad-to 0x8000 --gap-fill=0x0 $srctree/lpddr4_pmu_train_1d_imem.bin lpddr4_pmu_train_1d_imem_pad.bin
 		objcopy -I binary -O binary --pad-to 0x4000 --gap-fill=0x0 $srctree/lpddr4_pmu_train_1d_dmem.bin lpddr4_pmu_train_1d_dmem_pad.bin
-- 
2.19.2

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

* [U-Boot] [PATCH 2/2] imx8mq_evk/README: remove ARCH environment variable
  2019-01-02  6:58 [U-Boot] [PATCH 1/2] tools/imx8m_image.sh: remove bashism Baruch Siach
@ 2019-01-02  6:58 ` Baruch Siach
  2019-01-03 13:41 ` [U-Boot] [PATCH 1/2] tools/imx8m_image.sh: remove bashism Christopher Spencer
  2019-02-28  1:43 ` Fabio Estevam
  2 siblings, 0 replies; 654+ messages in thread
From: Baruch Siach @ 2019-01-02  6:58 UTC (permalink / raw)
  To: u-boot

There is no need to set the ARCH variable when building U-Boot. In fact,
the ARCH name in U-Boot is 'arm'.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---
 board/freescale/imx8mq_evk/README | 1 -
 1 file changed, 1 deletion(-)

diff --git a/board/freescale/imx8mq_evk/README b/board/freescale/imx8mq_evk/README
index 07dbfb01fed8..1da6eaf24277 100644
--- a/board/freescale/imx8mq_evk/README
+++ b/board/freescale/imx8mq_evk/README
@@ -23,7 +23,6 @@ $ cp firmware-imx-7.9/firmware-imx-7.9/firmware/ddr/synopsys/lpddr4*.bin $(srcte
 
 Build U-Boot
 ====================
-$ export ARCH=arm64
 $ export CROSS_COMPILE=aarch64-poky-linux-
 $ make imx8mq_evk_defconfig
 $ make flash.bin
-- 
2.19.2

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

* [U-Boot] [PATCH v2 0/3] ddr: vybrid: Support for vf610 built-in DDR3 memory calibration
  2018-12-05 16:04 [U-Boot] [PATCH v2 0/3] ddr: vybrid: Support for vf610 built-in DDR3 memory calibration Lukasz Majewski
                   ` (2 preceding siblings ...)
  2018-12-05 16:04 ` [U-Boot] [PATCH v2 3/3] ddr: vybrid: Add calibration code to memory controler's (DDRMC) setup code Lukasz Majewski
@ 2019-01-02 11:28 ` Lukasz Majewski
  3 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-01-02 11:28 UTC (permalink / raw)
  To: u-boot

Hi Fabio, Stefano,

> This patch series provides code to perform read leveling - RDLVL,
> which is adjusting the DQS strobe in relation to the DQ signals so
> that the strobe edge is centered in the window of valid read data.
> 
> The code is based on Vybrid's Reference Manual's:
> "VFxxx Controller Reference Manual, Rev. 0, 10/2016", page 1600,
> 10.1.6.16.4.1 "Software Read Leveling in MC Evaluation Mode"
> 
> and uses clarification provided by following NXP's community thread:
> "Vybrid: About DDR leveling feature on DDRMC."
> https://community.nxp.com/thread/395323
> 
> It depends on a BITMAP rework patch:
> usb: composite: Move bitmap related operations
> to ./include/linux/bitmap.h http://patchwork.ozlabs.org/patch/1006448/
> 

The above patch has found its way to main line, so there is no
obstacles to pull this code.

Moreover, some Stefan's patches:
[U-Boot,v1,0/4] ddr: vybrid: various fixes

http://patchwork.ozlabs.org/cover/1007547/

Are also related to DDR_MC setup on Vybrid and fix/cleanup some issues.

> 
> Changes in v2:
> - CR93_SWLVL_EXIT -> CR94_SWLVL_EXIT (EXIT is in CR94)
> - Add more defines to imx-regs.h (moved from *-calibration.h)
>  - CR93_SWLVL_EXIT -> CR94_SWLVL_EXIT (EXIT is in CR94)
>  - Update Kconfig information regarding DDRMC_VF610_CALIBRATION
>  - Update ddrmc-vf610-calibration. comment
>  - Update code after extending imx-regs.h
>  - Remove not needed #ifdef
> 
> Lukasz Majewski (3):
>   ddr: vybrid: Add DDRMC calibration related registers (DQS to DQ)
>   ddr: vybrid: Provide code to perform on-boot calibration
>   ddr: vybrid: Add calibration code to memory controler's (DDRMC)
> setup code
> 
>  arch/arm/include/asm/arch-vf610/imx-regs.h  |  14 +-
>  arch/arm/mach-imx/Kconfig                   |  12 +
>  arch/arm/mach-imx/Makefile                  |   1 +
>  arch/arm/mach-imx/ddrmc-vf610-calibration.c | 342
> ++++++++++++++++++++++++++++
> arch/arm/mach-imx/ddrmc-vf610-calibration.h |  45 ++++
> arch/arm/mach-imx/ddrmc-vf610.c             |   5 + 6 files changed,
> 418 insertions(+), 1 deletion(-) create mode 100644
> arch/arm/mach-imx/ddrmc-vf610-calibration.c create mode 100644
> arch/arm/mach-imx/ddrmc-vf610-calibration.h
> 




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190102/0f609e40/attachment.sig>

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

* [U-Boot] [PATCH 0/3] Migrate i.MX53 based cx9020 to CONFIG_DM_MMC=y
@ 2019-01-03  6:54 linux-kernel-dev at beckhoff.com
  2019-01-03  6:54 ` [U-Boot] [PATCH 1/3] mmc: fsl_esdhc: add compatible for fsl, imx53-esdhc linux-kernel-dev at beckhoff.com
                   ` (2 more replies)
  0 siblings, 3 replies; 654+ messages in thread
From: linux-kernel-dev at beckhoff.com @ 2019-01-03  6:54 UTC (permalink / raw)
  To: u-boot

From: Patrick Bruenn <p.bruenn@beckhoff.com>


This series is based on v2019.01-rc2. It enables compatible
"fsl,imx53-esdhc" for fsl_esdhc driver and copies esdhc1 and esdhc2
device tree nodes from Linux 4.20 into imx53.dtsi. The last patch
enables these nodes for imx53-cx9020.dts and adds CONFIG_DM_MMC=y
for mx53cx9020_defconfig.

I have no other imx53 platform available for testing, but I could add
esdhc3/4 and convert more imx53 boards, if wanted.


Patrick Bruenn (3):
  mmc: fsl_esdhc: add compatible for fsl,imx53-esdhc
  arm: imx: Add esdhc1/2 nodes to imx53.dtsi
  dm: arm: imx: migrate cx9020 to CONFIG_DM_MMC

 arch/arm/dts/imx53-cx9020.dts | 52 +++++++++++++++++++++++++++++++------------
 arch/arm/dts/imx53.dtsi       | 34 ++++++++++++++++++++++++++++
 configs/mx53cx9020_defconfig  |  1 +
 drivers/mmc/fsl_esdhc.c       |  1 +
 4 files changed, 74 insertions(+), 14 deletions(-)

-- 
2.11.0

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

* [U-Boot] [PATCH 1/3] mmc: fsl_esdhc: add compatible for fsl, imx53-esdhc
  2019-01-03  6:54 [U-Boot] [PATCH 0/3] Migrate i.MX53 based cx9020 to CONFIG_DM_MMC=y linux-kernel-dev at beckhoff.com
@ 2019-01-03  6:54 ` linux-kernel-dev at beckhoff.com
  2019-01-30  8:57   ` [U-Boot] [U-Boot, " sbabic at denx.de
  2019-01-03  6:54 ` [U-Boot] [PATCH 2/3] arm: imx: Add esdhc1/2 nodes to imx53.dtsi linux-kernel-dev at beckhoff.com
  2019-01-03  6:54 ` [U-Boot] [PATCH 3/3] dm: arm: imx: migrate cx9020 to CONFIG_DM_MMC linux-kernel-dev at beckhoff.com
  2 siblings, 1 reply; 654+ messages in thread
From: linux-kernel-dev at beckhoff.com @ 2019-01-03  6:54 UTC (permalink / raw)
  To: u-boot

From: Patrick Bruenn <p.bruenn@beckhoff.com>

Add compatible "fsl,imx53-esdhc" to keep mmc working on i.MX53 platforms
with CONFIG_DM_MMC=y

Signed-off-by: Patrick Bruenn <p.bruenn@beckhoff.com>
---

 drivers/mmc/fsl_esdhc.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c
index 3cdfa7f5a68..ff912645f05 100644
--- a/drivers/mmc/fsl_esdhc.c
+++ b/drivers/mmc/fsl_esdhc.c
@@ -1579,6 +1579,7 @@ static struct esdhc_soc_data usdhc_imx7d_data = {
 };
 
 static const struct udevice_id fsl_esdhc_ids[] = {
+	{ .compatible = "fsl,imx53-esdhc", },
 	{ .compatible = "fsl,imx6ul-usdhc", },
 	{ .compatible = "fsl,imx6sx-usdhc", },
 	{ .compatible = "fsl,imx6sl-usdhc", },
-- 
2.11.0

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

* [U-Boot] [PATCH 2/3] arm: imx: Add esdhc1/2 nodes to imx53.dtsi
  2019-01-03  6:54 [U-Boot] [PATCH 0/3] Migrate i.MX53 based cx9020 to CONFIG_DM_MMC=y linux-kernel-dev at beckhoff.com
  2019-01-03  6:54 ` [U-Boot] [PATCH 1/3] mmc: fsl_esdhc: add compatible for fsl, imx53-esdhc linux-kernel-dev at beckhoff.com
@ 2019-01-03  6:54 ` linux-kernel-dev at beckhoff.com
  2019-01-30  9:15   ` [U-Boot] [U-Boot,2/3] " sbabic at denx.de
  2019-01-03  6:54 ` [U-Boot] [PATCH 3/3] dm: arm: imx: migrate cx9020 to CONFIG_DM_MMC linux-kernel-dev at beckhoff.com
  2 siblings, 1 reply; 654+ messages in thread
From: linux-kernel-dev at beckhoff.com @ 2019-01-03  6:54 UTC (permalink / raw)
  To: u-boot

From: Patrick Bruenn <p.bruenn@beckhoff.com>

These nodes are required by CX9020 when build with CONFIG_DM_MMC=y
They are copied from Linux 4.20

Signed-off-by: Patrick Bruenn <p.bruenn@beckhoff.com>
---

 arch/arm/dts/imx53.dtsi | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/arch/arm/dts/imx53.dtsi b/arch/arm/dts/imx53.dtsi
index 64591f9d476..e13009c8708 100644
--- a/arch/arm/dts/imx53.dtsi
+++ b/arch/arm/dts/imx53.dtsi
@@ -31,6 +31,8 @@
 		i2c0 = &i2c1;
 		i2c1 = &i2c2;
 		i2c2 = &i2c3;
+		mmc0 = &esdhc1;
+		mmc1 = &esdhc2;
 	};
 
 	tzic: tz-interrupt-controller at fffc000 {
@@ -54,6 +56,38 @@
 			reg = <0x50000000 0x10000000>;
 			ranges;
 
+			spba at 50000000 {
+				compatible = "fsl,spba-bus", "simple-bus";
+				#address-cells = <1>;
+				#size-cells = <1>;
+				reg = <0x50000000 0x40000>;
+				ranges;
+
+				esdhc1: esdhc at 50004000 {
+					compatible = "fsl,imx53-esdhc";
+					reg = <0x50004000 0x4000>;
+					interrupts = <1>;
+					clocks = <&clks IMX5_CLK_ESDHC1_IPG_GATE>,
+						 <&clks IMX5_CLK_DUMMY>,
+						 <&clks IMX5_CLK_ESDHC1_PER_GATE>;
+					clock-names = "ipg", "ahb", "per";
+					bus-width = <4>;
+					status = "disabled";
+				};
+
+				esdhc2: esdhc at 50008000 {
+					compatible = "fsl,imx53-esdhc";
+					reg = <0x50008000 0x4000>;
+					interrupts = <2>;
+					clocks = <&clks IMX5_CLK_ESDHC2_IPG_GATE>,
+						 <&clks IMX5_CLK_DUMMY>,
+						 <&clks IMX5_CLK_ESDHC2_PER_GATE>;
+					clock-names = "ipg", "ahb", "per";
+					bus-width = <4>;
+					status = "disabled";
+				};
+			};
+
 			iomuxc: iomuxc at 53fa8000 {
 				compatible = "fsl,imx53-iomuxc";
 				reg = <0x53fa8000 0x4000>;
-- 
2.11.0

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

* [U-Boot] [PATCH 3/3] dm: arm: imx: migrate cx9020 to CONFIG_DM_MMC
  2019-01-03  6:54 [U-Boot] [PATCH 0/3] Migrate i.MX53 based cx9020 to CONFIG_DM_MMC=y linux-kernel-dev at beckhoff.com
  2019-01-03  6:54 ` [U-Boot] [PATCH 1/3] mmc: fsl_esdhc: add compatible for fsl, imx53-esdhc linux-kernel-dev at beckhoff.com
  2019-01-03  6:54 ` [U-Boot] [PATCH 2/3] arm: imx: Add esdhc1/2 nodes to imx53.dtsi linux-kernel-dev at beckhoff.com
@ 2019-01-03  6:54 ` linux-kernel-dev at beckhoff.com
  2 siblings, 0 replies; 654+ messages in thread
From: linux-kernel-dev at beckhoff.com @ 2019-01-03  6:54 UTC (permalink / raw)
  To: u-boot

From: Patrick Bruenn <p.bruenn@beckhoff.com>

Enable esdhc1/2 device nodes for cx9020 and build with CONFIG_DM_MMC=y

Signed-off-by: Patrick Bruenn <p.bruenn@beckhoff.com>

---

 arch/arm/dts/imx53-cx9020.dts | 52 +++++++++++++++++++++++++++++++------------
 configs/mx53cx9020_defconfig  |  1 +
 2 files changed, 39 insertions(+), 14 deletions(-)

diff --git a/arch/arm/dts/imx53-cx9020.dts b/arch/arm/dts/imx53-cx9020.dts
index c2e7d86c1b8..36ceae36aa9 100644
--- a/arch/arm/dts/imx53-cx9020.dts
+++ b/arch/arm/dts/imx53-cx9020.dts
@@ -99,20 +99,6 @@
 				MX53_PAD_KEY_COL1__AUDMUX_AUD5_TXFS	0x80000000
 				MX53_PAD_KEY_ROW1__AUDMUX_AUD5_RXD	0x80000000
 
-				MX53_PAD_SD1_DATA0__ESDHC1_DAT0		0x1d5
-				MX53_PAD_SD1_DATA1__ESDHC1_DAT1		0x1d5
-				MX53_PAD_SD1_DATA2__ESDHC1_DAT2		0x1d5
-				MX53_PAD_SD1_DATA3__ESDHC1_DAT3		0x1d5
-				MX53_PAD_SD1_CMD__ESDHC1_CMD		0x1d5
-				MX53_PAD_SD1_CLK__ESDHC1_CLK		0x1d5
-
-				MX53_PAD_SD2_DATA0__ESDHC2_DAT0		0x1d5
-				MX53_PAD_SD2_DATA1__ESDHC2_DAT1		0x1d5
-				MX53_PAD_SD2_DATA2__ESDHC2_DAT2		0x1d5
-				MX53_PAD_SD2_DATA3__ESDHC2_DAT3		0x1d5
-				MX53_PAD_SD2_CMD__ESDHC2_CMD		0x1d5
-				MX53_PAD_SD2_CLK__ESDHC2_CLK		0x1d5
-
 				MX53_PAD_FEC_MDC__FEC_MDC		0x4
 				MX53_PAD_FEC_MDIO__FEC_MDIO		0x1fc
 				MX53_PAD_FEC_REF_CLK__FEC_TX_CLK	0x180
@@ -162,6 +148,28 @@
 			>;
 		};
 
+		pinctrl_esdhc1: esdhc1grp {
+			fsl,pins = <
+				MX53_PAD_SD1_DATA0__ESDHC1_DAT0		0x1d5
+				MX53_PAD_SD1_DATA1__ESDHC1_DAT1		0x1d5
+				MX53_PAD_SD1_DATA2__ESDHC1_DAT2		0x1d5
+				MX53_PAD_SD1_DATA3__ESDHC1_DAT3		0x1d5
+				MX53_PAD_SD1_CMD__ESDHC1_CMD		0x1d5
+				MX53_PAD_SD1_CLK__ESDHC1_CLK		0x1d5
+			>;
+		};
+
+		pinctrl_esdhc2: esdhc2grp {
+			fsl,pins = <
+				MX53_PAD_SD2_DATA0__ESDHC2_DAT0		0x1d5
+				MX53_PAD_SD2_DATA1__ESDHC2_DAT1		0x1d5
+				MX53_PAD_SD2_DATA2__ESDHC2_DAT2		0x1d5
+				MX53_PAD_SD2_DATA3__ESDHC2_DAT3		0x1d5
+				MX53_PAD_SD2_CMD__ESDHC2_CMD		0x1d5
+				MX53_PAD_SD2_CLK__ESDHC2_CLK		0x1d5
+			>;
+		};
+
 		pinctrl_uart2: uart2grp {
 			fsl,pins = <
 				MX53_PAD_EIM_D26__UART2_RXD_MUX	0x1e4
@@ -181,6 +189,22 @@
 	status = "okay";
 };
 
+&esdhc1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_esdhc1>;
+	cd-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
+	bus-width = <4>;
+	status = "okay";
+};
+
+&esdhc2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_esdhc2>;
+	cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
+	bus-width = <4>;
+	status = "okay";
+};
+
 &fec {
 	pinctrl-names = "default";
 	phy-mode = "rmii";
diff --git a/configs/mx53cx9020_defconfig b/configs/mx53cx9020_defconfig
index 3cff52031a0..ddd65e8ee15 100644
--- a/configs/mx53cx9020_defconfig
+++ b/configs/mx53cx9020_defconfig
@@ -19,6 +19,7 @@ CONFIG_CMD_EXT2=y
 CONFIG_CMD_EXT4=y
 CONFIG_CMD_FAT=y
 CONFIG_CMD_FS_GENERIC=y
+CONFIG_DM_MMC=y
 CONFIG_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="imx53-cx9020"
 CONFIG_ENV_IS_IN_MMC=y
-- 
2.11.0

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

* [U-Boot] [PATCH 1/2] tools/imx8m_image.sh: remove bashism
  2019-01-02  6:58 [U-Boot] [PATCH 1/2] tools/imx8m_image.sh: remove bashism Baruch Siach
  2019-01-02  6:58 ` [U-Boot] [PATCH 2/2] imx8mq_evk/README: remove ARCH environment variable Baruch Siach
@ 2019-01-03 13:41 ` Christopher Spencer
  2019-02-28  1:43 ` Fabio Estevam
  2 siblings, 0 replies; 654+ messages in thread
From: Christopher Spencer @ 2019-01-03 13:41 UTC (permalink / raw)
  To: u-boot

On Wed, 2 Jan 2019 at 07:00, Baruch Siach <baruch@tkos.co.il> wrote:
> Use a single '=' to test string equality for compatibility with non-bash
> shells. Otherwise, if /bin/sh is dash, build fails:
> 
> ./tools/imx8m_image.sh: 15: [: signed_hdmi_imx8m.bin: unexpected operator
> ./tools/imx8m_image.sh: 15: [: signed_hdmi_imx8m.bin: unexpected operator
> ./tools/imx8m_image.sh: 15: [: spl/u-boot-spl-ddr.bin: unexpected operator
> ./tools/imx8m_image.sh: 15: [: spl/u-boot-spl-ddr.bin: unexpected operator
> WARNING './spl/u-boot-spl-ddr.bin' not found, resulting binary is not-functional
> 
> Signed-off-by: Baruch Siach <baruch@tkos.co.il>

Tested-by: Chris Spencer <christopher.spencer@sea.co.uk>

Thanks,
Chris

Disclaimer: 

This email has been scanned for all known viruses by the MessageLabs Email Security System.

The contents of this email (including any attachments) are intended for the use of the mail addressee(s) shown, hence is private and in addition may include commercially sensitive information. If you are not the intended recipient of this email any disclosure, copying, distribution or use of its contents is strictly prohibited. You should notify the sender immediately and then delete it (including any attachments) from your system.

The information contained in or attached to this message may also be subject to the export control laws and regulations of the United Kingdom and the United States. This specifically includes, but is not limited to, the Arms Export Control Act (22 U.S.C. 2751-2794) and the International Traffic in Arms Regulation (22 C.F.R 120-130) as well as the Export Administration Act (50 U.S.C. App. 2401-2420), the Export Administration Regulation (15 C.F.R. 730-774) and the UK Export Control Act 2002.

Please help out the environment by only printing this e-mail if absolutely necessary - Thank you. 

SEA is the brand name of Systems Engineering & Assessment Ltd (registered office: Beckington Castle, 17 Castle Corner, Beckington, Frome, Somerset, BA11 6TA, UK - company number 02302168).

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

* [U-Boot] [PATCH] ARM: imx: fix: Provide correct enum values for ONENAND/NOR boot recognition
@ 2019-01-03 22:50 Lukasz Majewski
  0 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-01-03 22:50 UTC (permalink / raw)
  To: u-boot

According to "Table 5-1. Boot Device Select" (page 335,
i.MX 6Dual/6Quad Applications Processor Reference Manual, Rev. 4, 09/2017)
the BOOT_CFG1[3] have following values (regarding EIM booting):
0 - NOR flash and 1 - ONENAND

This commit provides correct identification of the boot medium for IMX6Q
boards booting from NOR memory (MCCMON6 is one of them).

Signed-off-by: Lukasz Majewski <lukma@denx.de>

---

 arch/arm/include/asm/mach-imx/sys_proto.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/include/asm/mach-imx/sys_proto.h b/arch/arm/include/asm/mach-imx/sys_proto.h
index 8d6832a331..d0f866b630 100644
--- a/arch/arm/include/asm/mach-imx/sys_proto.h
+++ b/arch/arm/include/asm/mach-imx/sys_proto.h
@@ -67,8 +67,8 @@ enum imx6_bmode_serial_rom {
 };
 
 enum imx6_bmode_emi {
-	IMX6_BMODE_ONENAND,
 	IMX6_BMODE_NOR,
+	IMX6_BMODE_ONENAND,
 };
 
 enum imx6_bmode {
-- 
2.11.0

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

* [U-Boot] [PATCH v2 00/11] arm: Colibri iMX7 fixes and DM_MMC conversion
@ 2019-01-08 11:42 Stefan Agner
  2019-01-08 11:42 ` [U-Boot] [PATCH v2 01/11] colibri_imx7: fix boot commands Stefan Agner
                   ` (10 more replies)
  0 siblings, 11 replies; 654+ messages in thread
From: Stefan Agner @ 2019-01-08 11:42 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

This patchset fixes some small issues with Colibri iMX7 and
converts the board to use DM_MMC. It also adds the so far
missing configuration for the eMMC variant.

This patchset gets rid of all but one deprecation warning.
The remaining warning is due to CONFIG_USB still being used.
Fixing this is not entirly trivial due to missing GPIO host/
peripheral switch capabilities and will be tackled later.

--
Stefan

Changes in v2:
- Remove imx7-colibri.dtb from Makefile
- Remove unnecessary properties
- New patch
- New patch
- Add CONFIG_FIT/DFU/CRC32_VERIFY/CMD_GPT/DFU_MMC and FAT_WRITE

Stefan Agner (11):
  colibri_imx7: fix boot commands
  arm: dts: imx7: colibri: split dt for raw NAND and eMMC devices
  configs: colibri_imx7: enable DM for raw NAND devices
  configs: colibri_imx7: use separate device tree
  arm: dts: imx7: colibri: add usdhci peripherals to device tree
  configs: colibri_imx7: use DM_MMC
  colibri_imx7: drop legacy usdhc support
  configs: colibri_imx7: enable CAAM driver
  configs: colibri_imx7: use DFU for NAND instead of MMC
  configs: colibri_imx7: use distro defaults
  configs: add default configuraiton for Colibri iMX7 with eMMC

 arch/arm/dts/Makefile                         |  3 +-
 arch/arm/dts/imx7-colibri-emmc.dts            | 47 +++++++++
 arch/arm/dts/imx7-colibri-rawnand.dts         | 46 +++++++++
 .../{imx7-colibri.dts => imx7-colibri.dtsi}   | 65 ++++++-------
 board/toradex/colibri_imx7/MAINTAINERS        |  3 +
 board/toradex/colibri_imx7/colibri_imx7.c     | 97 -------------------
 configs/colibri_imx7_defconfig                | 27 +++---
 configs/colibri_imx7_emmc_defconfig           | 66 +++++++++++++
 include/configs/colibri_imx7.h                |  5 +-
 9 files changed, 207 insertions(+), 152 deletions(-)
 create mode 100644 arch/arm/dts/imx7-colibri-emmc.dts
 create mode 100644 arch/arm/dts/imx7-colibri-rawnand.dts
 rename arch/arm/dts/{imx7-colibri.dts => imx7-colibri.dtsi} (68%)
 create mode 100644 configs/colibri_imx7_emmc_defconfig

-- 
2.20.1

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

* [U-Boot] [PATCH v2 01/11] colibri_imx7: fix boot commands
  2019-01-08 11:42 [U-Boot] [PATCH v2 00/11] arm: Colibri iMX7 fixes and DM_MMC conversion Stefan Agner
@ 2019-01-08 11:42 ` Stefan Agner
  2019-01-08 11:42 ` [U-Boot] [PATCH v2 02/11] arm: dts: imx7: colibri: split dt for raw NAND and eMMC devices Stefan Agner
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 654+ messages in thread
From: Stefan Agner @ 2019-01-08 11:42 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

Fix mixed up boot commands between raw NAND and eMMC variant. Also
make sure that the boot_file is defined for the eMMC boot command.

Fixes: a62c60610f51 ("colibri_imx7_emmc: add Colibri iMX7D 1GB (eMMC) module support")
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
---

Changes in v2: None

 include/configs/colibri_imx7.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/include/configs/colibri_imx7.h b/include/configs/colibri_imx7.h
index c31cf2888a..5a4b9801cb 100644
--- a/include/configs/colibri_imx7.h
+++ b/include/configs/colibri_imx7.h
@@ -110,13 +110,13 @@
 		"run fdt_fixup && bootz ${kernel_addr_r} - ${fdt_addr_r}\0" \
 
 #if defined(CONFIG_TARGET_COLIBRI_IMX7_NAND)
-#define CONFIG_BOOTCOMMAND "run emmcboot ; echo ; echo emmcboot failed ; " \
+#define CONFIG_BOOTCOMMAND "run ubiboot ; echo ; echo ubiboot failed ; " \
 	"setenv fdtfile ${soc}-colibri-${fdt_board}.dtb && run distro_bootcmd;"
 #define MODULE_EXTRA_ENV_SETTINGS \
 	"mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0" \
 	UBI_BOOTCMD
 #elif defined(CONFIG_TARGET_COLIBRI_IMX7_EMMC)
-#define CONFIG_BOOTCOMMAND "run ubiboot ; echo ; echo ubiboot failed ; " \
+#define CONFIG_BOOTCOMMAND "run emmcboot ; echo ; echo emmcboot failed ; " \
 	"setenv fdtfile ${soc}-colibri-emmc-${fdt_board}.dtb && run distro_bootcmd;"
 #define MODULE_EXTRA_ENV_SETTINGS \
 	"variant=-emmc\0" \
@@ -143,6 +143,7 @@
 	NFS_BOOTCMD \
 	SD_BOOTCMD \
 	MODULE_EXTRA_ENV_SETTINGS \
+	"boot_file=zImage\0" \
 	"console=ttymxc0\0" \
 	"defargs=\0" \
 	"fdt_board=eval-v3\0" \
-- 
2.20.1

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

* [U-Boot] [PATCH v2 02/11] arm: dts: imx7: colibri: split dt for raw NAND and eMMC devices
  2019-01-08 11:42 [U-Boot] [PATCH v2 00/11] arm: Colibri iMX7 fixes and DM_MMC conversion Stefan Agner
  2019-01-08 11:42 ` [U-Boot] [PATCH v2 01/11] colibri_imx7: fix boot commands Stefan Agner
@ 2019-01-08 11:42 ` Stefan Agner
  2019-01-08 11:42 ` [U-Boot] [PATCH v2 03/11] configs: colibri_imx7: enable DM for raw NAND devices Stefan Agner
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 654+ messages in thread
From: Stefan Agner @ 2019-01-08 11:42 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

In preparation of adding CONFIG_DM_MMC support use separate device
trees for raw NAND and eMMC devices.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
---

Changes in v2:
- Remove imx7-colibri.dtb from Makefile

 arch/arm/dts/Makefile                         |  3 +-
 arch/arm/dts/imx7-colibri-emmc.dts            | 16 +++++++
 arch/arm/dts/imx7-colibri-rawnand.dts         | 46 +++++++++++++++++++
 .../{imx7-colibri.dts => imx7-colibri.dtsi}   | 39 +---------------
 board/toradex/colibri_imx7/MAINTAINERS        |  3 ++
 configs/colibri_imx7_defconfig                |  2 +-
 6 files changed, 68 insertions(+), 41 deletions(-)
 create mode 100644 arch/arm/dts/imx7-colibri-emmc.dts
 create mode 100644 arch/arm/dts/imx7-colibri-rawnand.dts
 rename arch/arm/dts/{imx7-colibri.dts => imx7-colibri.dtsi} (65%)

diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index dda4e59491..768965a9fe 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -458,8 +458,7 @@ dtb-$(CONFIG_MX6UL) += \
 
 dtb-$(CONFIG_MX6ULL) += imx6ull-14x14-evk.dtb
 
-dtb-$(CONFIG_MX7) += imx7-colibri.dtb \
-	imx7d-sdb.dtb \
+dtb-$(CONFIG_MX7) += imx7d-sdb.dtb \
 	imx7d-sdb-qspi.dtb
 
 dtb-$(CONFIG_ARCH_MX7ULP) += imx7ulp-evk.dtb
diff --git a/arch/arm/dts/imx7-colibri-emmc.dts b/arch/arm/dts/imx7-colibri-emmc.dts
new file mode 100644
index 0000000000..295ca05916
--- /dev/null
+++ b/arch/arm/dts/imx7-colibri-emmc.dts
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0+ OR X11
+/*
+ * Copyright 2019 Toradex AG
+ */
+
+/dts-v1/;
+#include "imx7-colibri.dtsi"
+
+/ {
+	model = "Toradex Colibri iMX7D 1GB (eMMC)";
+	compatible = "toradex,imx7d-colibri-emmc", "fsl,imx7d";
+
+	chosen {
+		stdout-path = &uart1;
+	};
+};
diff --git a/arch/arm/dts/imx7-colibri-rawnand.dts b/arch/arm/dts/imx7-colibri-rawnand.dts
new file mode 100644
index 0000000000..4eb86fb011
--- /dev/null
+++ b/arch/arm/dts/imx7-colibri-rawnand.dts
@@ -0,0 +1,46 @@
+// SPDX-License-Identifier: GPL-2.0+ OR X11
+/*
+ * Copyright 2019 Toradex AG
+ */
+
+/dts-v1/;
+#include "imx7-colibri.dtsi"
+
+/ {
+	model = "Toradex Colibri iMX7S/D";
+	compatible = "toradex,imx7-colibri", "fsl,imx7";
+
+	chosen {
+		stdout-path = &uart1;
+	};
+};
+
+&gpmi {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_gpmi_nand>;
+	fsl,use-minimum-ecc;
+	nand-on-flash-bbt;
+	nand-ecc-mode = "hw";
+	status = "okay";
+};
+
+&iomuxc {
+	pinctrl_gpmi_nand: gpmi-nand-grp {
+		fsl,pins = <
+			MX7D_PAD_SD3_CLK__NAND_CLE		0x71
+			MX7D_PAD_SD3_CMD__NAND_ALE		0x71
+			MX7D_PAD_SAI1_TX_BCLK__NAND_CE0_B	0x71
+			MX7D_PAD_SAI1_TX_DATA__NAND_READY_B	0x74
+			MX7D_PAD_SD3_STROBE__NAND_RE_B		0x71
+			MX7D_PAD_SD3_RESET_B__NAND_WE_B		0x71
+			MX7D_PAD_SD3_DATA0__NAND_DATA00		0x71
+			MX7D_PAD_SD3_DATA1__NAND_DATA01		0x71
+			MX7D_PAD_SD3_DATA2__NAND_DATA02		0x71
+			MX7D_PAD_SD3_DATA3__NAND_DATA03		0x71
+			MX7D_PAD_SD3_DATA4__NAND_DATA04		0x71
+			MX7D_PAD_SD3_DATA5__NAND_DATA05		0x71
+			MX7D_PAD_SD3_DATA6__NAND_DATA06		0x71
+			MX7D_PAD_SD3_DATA7__NAND_DATA07		0x71
+		>;
+	};
+};
diff --git a/arch/arm/dts/imx7-colibri.dts b/arch/arm/dts/imx7-colibri.dtsi
similarity index 65%
rename from arch/arm/dts/imx7-colibri.dts
rename to arch/arm/dts/imx7-colibri.dtsi
index dca501be25..47295117aa 100644
--- a/arch/arm/dts/imx7-colibri.dts
+++ b/arch/arm/dts/imx7-colibri.dtsi
@@ -1,30 +1,12 @@
 // SPDX-License-Identifier: GPL-2.0+ OR X11
 /*
- * Copyright 2016 Toradex AG
+ * Copyright 2016-2019 Toradex AG
  */
 
 /dts-v1/;
 #include <dt-bindings/gpio/gpio.h>
 #include "imx7d.dtsi"
 
-/ {
-	model = "Toradex Colibri iMX7S/D";
-	compatible = "toradex,imx7-colibri", "fsl,imx7";
-
-	chosen {
-		stdout-path = &uart1;
-	};
-};
-
-&gpmi {
-	pinctrl-names = "default";
-	pinctrl-0 = <&pinctrl_gpmi_nand>;
-	fsl,use-minimum-ecc;
-	nand-on-flash-bbt;
-	nand-ecc-mode = "hw";
-	status = "okay";
-};
-
 &i2c1 {
 	pinctrl-names = "default", "gpio";
 	pinctrl-0 = <&pinctrl_i2c1>;
@@ -57,25 +39,6 @@
 };
 
 &iomuxc {
-	pinctrl_gpmi_nand: gpmi-nand-grp {
-		fsl,pins = <
-			MX7D_PAD_SD3_CLK__NAND_CLE		0x71
-			MX7D_PAD_SD3_CMD__NAND_ALE		0x71
-			MX7D_PAD_SAI1_TX_BCLK__NAND_CE0_B	0x71
-			MX7D_PAD_SAI1_TX_DATA__NAND_READY_B	0x74
-			MX7D_PAD_SD3_STROBE__NAND_RE_B		0x71
-			MX7D_PAD_SD3_RESET_B__NAND_WE_B		0x71
-			MX7D_PAD_SD3_DATA0__NAND_DATA00		0x71
-			MX7D_PAD_SD3_DATA1__NAND_DATA01		0x71
-			MX7D_PAD_SD3_DATA2__NAND_DATA02		0x71
-			MX7D_PAD_SD3_DATA3__NAND_DATA03		0x71
-			MX7D_PAD_SD3_DATA4__NAND_DATA04		0x71
-			MX7D_PAD_SD3_DATA5__NAND_DATA05		0x71
-			MX7D_PAD_SD3_DATA6__NAND_DATA06		0x71
-			MX7D_PAD_SD3_DATA7__NAND_DATA07		0x71
-		>;
-	};
-
 	pinctrl_i2c4: i2c4-grp {
 		fsl,pins = <
 			MX7D_PAD_ENET1_RGMII_TD3__I2C4_SDA	0x4000007f
diff --git a/board/toradex/colibri_imx7/MAINTAINERS b/board/toradex/colibri_imx7/MAINTAINERS
index 9c1d42aa8c..f55f8045f4 100644
--- a/board/toradex/colibri_imx7/MAINTAINERS
+++ b/board/toradex/colibri_imx7/MAINTAINERS
@@ -8,3 +8,6 @@ F:	board/toradex/colibri_imx7/
 F:	include/configs/colibri_imx7.h
 F:	configs/colibri_imx7_defconfig
 F:	configs/colibri_imx7_emmc_defconfig
+F:	arch/arm/dts/imx7-colibri.dtsi
+F:	arch/arm/dts/imx7-colibri-emmc.dts
+F:	arch/arm/dts/imx7-colibri-rawnand.dts
diff --git a/configs/colibri_imx7_defconfig b/configs/colibri_imx7_defconfig
index 7b496bcea9..7441102ed4 100644
--- a/configs/colibri_imx7_defconfig
+++ b/configs/colibri_imx7_defconfig
@@ -43,7 +43,7 @@ CONFIG_MTDPARTS_DEFAULT="mtdparts=gpmi-nand:512k(mx7-bcb),1536k(u-boot1)ro,1536k
 CONFIG_CMD_UBI=y
 CONFIG_OF_CONTROL=y
 CONFIG_OF_EMBED=y
-CONFIG_DEFAULT_DEVICE_TREE="imx7-colibri"
+CONFIG_DEFAULT_DEVICE_TREE="imx7-colibri-rawnand"
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
 CONFIG_DFU_MMC=y
-- 
2.20.1

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

* [U-Boot] [PATCH v2 03/11] configs: colibri_imx7: enable DM for raw NAND devices
  2019-01-08 11:42 [U-Boot] [PATCH v2 00/11] arm: Colibri iMX7 fixes and DM_MMC conversion Stefan Agner
  2019-01-08 11:42 ` [U-Boot] [PATCH v2 01/11] colibri_imx7: fix boot commands Stefan Agner
  2019-01-08 11:42 ` [U-Boot] [PATCH v2 02/11] arm: dts: imx7: colibri: split dt for raw NAND and eMMC devices Stefan Agner
@ 2019-01-08 11:42 ` Stefan Agner
  2019-01-08 11:42 ` [U-Boot] [PATCH v2 04/11] configs: colibri_imx7: use separate device tree Stefan Agner
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 654+ messages in thread
From: Stefan Agner @ 2019-01-08 11:42 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

Use DM and device trees for raw NAND devices by default. This
fixes -74 NAND read errors since it makes sure the ECC settings
are the same as used in Linux and our downstream U-Boot.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
---

Changes in v2: None

 configs/colibri_imx7_defconfig | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/configs/colibri_imx7_defconfig b/configs/colibri_imx7_defconfig
index 7441102ed4..3aaf1a417d 100644
--- a/configs/colibri_imx7_defconfig
+++ b/configs/colibri_imx7_defconfig
@@ -25,6 +25,7 @@ CONFIG_CMD_DFU=y
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_MMC=y
+CONFIG_CMD_MTD=y
 CONFIG_CMD_NAND_TRIMFFS=y
 CONFIG_CMD_NAND_TORTURE=y
 CONFIG_CMD_USB=y
@@ -50,7 +51,9 @@ CONFIG_DFU_MMC=y
 CONFIG_DM_GPIO=y
 CONFIG_DM_I2C=y
 CONFIG_FSL_ESDHC=y
+CONFIG_MTD=y
 CONFIG_NAND=y
+CONFIG_NAND_MXS_DT=y
 CONFIG_MTD_UBI_FASTMAP=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_MICREL=y
-- 
2.20.1

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

* [U-Boot] [PATCH v2 04/11] configs: colibri_imx7: use separate device tree
  2019-01-08 11:42 [U-Boot] [PATCH v2 00/11] arm: Colibri iMX7 fixes and DM_MMC conversion Stefan Agner
                   ` (2 preceding siblings ...)
  2019-01-08 11:42 ` [U-Boot] [PATCH v2 03/11] configs: colibri_imx7: enable DM for raw NAND devices Stefan Agner
@ 2019-01-08 11:42 ` Stefan Agner
  2019-01-08 11:42 ` [U-Boot] [PATCH v2 05/11] arm: dts: imx7: colibri: add usdhci peripherals to " Stefan Agner
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 654+ messages in thread
From: Stefan Agner @ 2019-01-08 11:42 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

Use OF_SEPARATE as suggested by the build system.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
---

Changes in v2: None

 configs/colibri_imx7_defconfig | 1 -
 1 file changed, 1 deletion(-)

diff --git a/configs/colibri_imx7_defconfig b/configs/colibri_imx7_defconfig
index 3aaf1a417d..0c9467e136 100644
--- a/configs/colibri_imx7_defconfig
+++ b/configs/colibri_imx7_defconfig
@@ -43,7 +43,6 @@ CONFIG_MTDIDS_DEFAULT="nand0=gpmi-nand"
 CONFIG_MTDPARTS_DEFAULT="mtdparts=gpmi-nand:512k(mx7-bcb),1536k(u-boot1)ro,1536k(u-boot2)ro,512k(u-boot-env),-(ubi)"
 CONFIG_CMD_UBI=y
 CONFIG_OF_CONTROL=y
-CONFIG_OF_EMBED=y
 CONFIG_DEFAULT_DEVICE_TREE="imx7-colibri-rawnand"
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
-- 
2.20.1

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

* [U-Boot] [PATCH v2 05/11] arm: dts: imx7: colibri: add usdhci peripherals to device tree
  2019-01-08 11:42 [U-Boot] [PATCH v2 00/11] arm: Colibri iMX7 fixes and DM_MMC conversion Stefan Agner
                   ` (3 preceding siblings ...)
  2019-01-08 11:42 ` [U-Boot] [PATCH v2 04/11] configs: colibri_imx7: use separate device tree Stefan Agner
@ 2019-01-08 11:42 ` Stefan Agner
  2019-01-08 11:42 ` [U-Boot] [PATCH v2 06/11] configs: colibri_imx7: use DM_MMC Stefan Agner
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 654+ messages in thread
From: Stefan Agner @ 2019-01-08 11:42 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

Add usdhci peripherals to device tree. This allows to use DM_MMC
for Colibri iMX7 devices.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
---

Changes in v2:
- Remove unnecessary properties

 arch/arm/dts/imx7-colibri-emmc.dts | 31 ++++++++++++++++++++++++++++++
 arch/arm/dts/imx7-colibri.dtsi     | 26 +++++++++++++++++++++++++
 2 files changed, 57 insertions(+)

diff --git a/arch/arm/dts/imx7-colibri-emmc.dts b/arch/arm/dts/imx7-colibri-emmc.dts
index 295ca05916..efd600091d 100644
--- a/arch/arm/dts/imx7-colibri-emmc.dts
+++ b/arch/arm/dts/imx7-colibri-emmc.dts
@@ -10,7 +10,38 @@
 	model = "Toradex Colibri iMX7D 1GB (eMMC)";
 	compatible = "toradex,imx7d-colibri-emmc", "fsl,imx7d";
 
+	aliases {
+		mmc0 = &usdhc3;
+		mmc1 = &usdhc1;
+	};
+
 	chosen {
 		stdout-path = &uart1;
 	};
 };
+
+&usdhc3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usdhc3>;
+	bus-width = <8>;
+	non-removable;
+	status = "okay";
+};
+
+&iomuxc {
+	pinctrl_usdhc3: usdhc3grp {
+		fsl,pins = <
+			MX7D_PAD_SD3_CMD__SD3_CMD		0x59
+			MX7D_PAD_SD3_CLK__SD3_CLK		0x19
+			MX7D_PAD_SD3_DATA0__SD3_DATA0		0x59
+			MX7D_PAD_SD3_DATA1__SD3_DATA1		0x59
+			MX7D_PAD_SD3_DATA2__SD3_DATA2		0x59
+			MX7D_PAD_SD3_DATA3__SD3_DATA3		0x59
+			MX7D_PAD_SD3_DATA4__SD3_DATA4		0x59
+			MX7D_PAD_SD3_DATA5__SD3_DATA5		0x59
+			MX7D_PAD_SD3_DATA6__SD3_DATA6		0x59
+			MX7D_PAD_SD3_DATA7__SD3_DATA7		0x59
+			MX7D_PAD_SD3_STROBE__SD3_STROBE         0x19
+		>;
+	};
+};
diff --git a/arch/arm/dts/imx7-colibri.dtsi b/arch/arm/dts/imx7-colibri.dtsi
index 47295117aa..a85702f519 100644
--- a/arch/arm/dts/imx7-colibri.dtsi
+++ b/arch/arm/dts/imx7-colibri.dtsi
@@ -38,6 +38,15 @@
 	status = "okay";
 };
 
+&usdhc1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_cd_usdhc1>;
+	no-1-8-v;
+	cd-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
+	disable-wp;
+	status = "okay";
+};
+
 &iomuxc {
 	pinctrl_i2c4: i2c4-grp {
 		fsl,pins = <
@@ -68,6 +77,17 @@
 			MX7D_PAD_SD2_DATA0__GPIO5_IO14		0x14 /* DTR */
 		>;
 	};
+
+	pinctrl_usdhc1: usdhc1-grp {
+		fsl,pins = <
+			MX7D_PAD_SD1_CMD__SD1_CMD	0x59
+			MX7D_PAD_SD1_CLK__SD1_CLK	0x19
+			MX7D_PAD_SD1_DATA0__SD1_DATA0	0x59
+			MX7D_PAD_SD1_DATA1__SD1_DATA1	0x59
+			MX7D_PAD_SD1_DATA2__SD1_DATA2	0x59
+			MX7D_PAD_SD1_DATA3__SD1_DATA3	0x59
+		>;
+	};
 };
 
 &iomuxc_lpsr {
@@ -84,4 +104,10 @@
 			MX7D_PAD_LPSR_GPIO1_IO04__GPIO1_IO4	0x4000007f
 		>;
 	};
+
+	pinctrl_cd_usdhc1: usdhc1-cd-grp {
+		fsl,pins = <
+			MX7D_PAD_LPSR_GPIO1_IO00__GPIO1_IO0	0x59 /* CD */
+		>;
+	};
 };
-- 
2.20.1

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

* [U-Boot] [PATCH v2 06/11] configs: colibri_imx7: use DM_MMC
  2019-01-08 11:42 [U-Boot] [PATCH v2 00/11] arm: Colibri iMX7 fixes and DM_MMC conversion Stefan Agner
                   ` (4 preceding siblings ...)
  2019-01-08 11:42 ` [U-Boot] [PATCH v2 05/11] arm: dts: imx7: colibri: add usdhci peripherals to " Stefan Agner
@ 2019-01-08 11:42 ` Stefan Agner
  2019-01-08 11:42 ` [U-Boot] [PATCH v2 07/11] colibri_imx7: drop legacy usdhc support Stefan Agner
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 654+ messages in thread
From: Stefan Agner @ 2019-01-08 11:42 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

Now that device tree is in place use DM_MMC for Colibri iMX7
devices.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
---

Changes in v2: None

 configs/colibri_imx7_defconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configs/colibri_imx7_defconfig b/configs/colibri_imx7_defconfig
index 0c9467e136..af976bab12 100644
--- a/configs/colibri_imx7_defconfig
+++ b/configs/colibri_imx7_defconfig
@@ -49,6 +49,7 @@ CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
 CONFIG_DFU_MMC=y
 CONFIG_DM_GPIO=y
 CONFIG_DM_I2C=y
+CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_MTD=y
 CONFIG_NAND=y
@@ -63,7 +64,6 @@ CONFIG_DM_PMIC=y
 CONFIG_PMIC_RN5T567=y
 CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_STORAGE=y
 CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_MANUFACTURER="Toradex"
 CONFIG_USB_GADGET_VENDOR_NUM=0x1b67
-- 
2.20.1

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

* [U-Boot] [PATCH v2 07/11] colibri_imx7: drop legacy usdhc support
  2019-01-08 11:42 [U-Boot] [PATCH v2 00/11] arm: Colibri iMX7 fixes and DM_MMC conversion Stefan Agner
                   ` (5 preceding siblings ...)
  2019-01-08 11:42 ` [U-Boot] [PATCH v2 06/11] configs: colibri_imx7: use DM_MMC Stefan Agner
@ 2019-01-08 11:42 ` Stefan Agner
  2019-01-08 11:42 ` [U-Boot] [PATCH v2 08/11] configs: colibri_imx7: enable CAAM driver Stefan Agner
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 654+ messages in thread
From: Stefan Agner @ 2019-01-08 11:42 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

Drop legacy pinmux/usdhc board configuration.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
---

Changes in v2: None

 board/toradex/colibri_imx7/colibri_imx7.c | 97 -----------------------
 1 file changed, 97 deletions(-)

diff --git a/board/toradex/colibri_imx7/colibri_imx7.c b/board/toradex/colibri_imx7/colibri_imx7.c
index a4c99626b4..392fda92da 100644
--- a/board/toradex/colibri_imx7/colibri_imx7.c
+++ b/board/toradex/colibri_imx7/colibri_imx7.c
@@ -33,9 +33,6 @@ DECLARE_GLOBAL_DATA_PTR;
 #define UART_PAD_CTRL  (PAD_CTL_DSE_3P3V_49OHM | \
 	PAD_CTL_PUS_PU100KOHM | PAD_CTL_HYS)
 
-#define USDHC_PAD_CTRL (PAD_CTL_DSE_3P3V_32OHM | PAD_CTL_SRE_SLOW | \
-	PAD_CTL_HYS | PAD_CTL_PUE | PAD_CTL_PUS_PU47KOHM)
-
 #define ENET_PAD_CTRL  (PAD_CTL_PUS_PU100KOHM | PAD_CTL_DSE_3P3V_49OHM)
 #define ENET_PAD_CTRL_MII  (PAD_CTL_DSE_3P3V_32OHM)
 
@@ -64,17 +61,6 @@ static iomux_v3_cfg_t const uart1_pads[] = {
 	MX7D_PAD_SAI2_TX_SYNC__UART1_DTE_RTS | MUX_PAD_CTRL(UART_PAD_CTRL),
 };
 
-static iomux_v3_cfg_t const usdhc1_pads[] = {
-	MX7D_PAD_SD1_CLK__SD1_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX7D_PAD_SD1_CMD__SD1_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX7D_PAD_SD1_DATA0__SD1_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX7D_PAD_SD1_DATA1__SD1_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX7D_PAD_SD1_DATA2__SD1_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX7D_PAD_SD1_DATA3__SD1_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-
-	MX7D_PAD_GPIO1_IO00__GPIO1_IO0 | MUX_PAD_CTRL(NO_PAD_CTRL),
-};
-
 #ifdef CONFIG_USB_EHCI_MX7
 static iomux_v3_cfg_t const usb_cdet_pads[] = {
 	MX7D_PAD_ENET1_CRS__GPIO7_IO14 | MUX_PAD_CTRL(NO_PAD_CTRL),
@@ -109,24 +95,6 @@ static void setup_gpmi_nand(void)
 }
 #endif
 
-#ifdef CONFIG_TARGET_COLIBRI_IMX7_EMMC
-static iomux_v3_cfg_t const usdhc3_emmc_pads[] = {
-	MX7D_PAD_SD3_CLK__SD3_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX7D_PAD_SD3_CMD__SD3_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX7D_PAD_SD3_DATA0__SD3_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX7D_PAD_SD3_DATA1__SD3_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX7D_PAD_SD3_DATA2__SD3_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX7D_PAD_SD3_DATA3__SD3_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX7D_PAD_SD3_DATA4__SD3_DATA4 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX7D_PAD_SD3_DATA5__SD3_DATA5 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX7D_PAD_SD3_DATA6__SD3_DATA6 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX7D_PAD_SD3_DATA7__SD3_DATA7 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX7D_PAD_SD3_STROBE__SD3_STROBE	 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-
-	MX7D_PAD_SD3_RESET_B__GPIO6_IO11 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-};
-#endif
-
 #ifdef CONFIG_VIDEO_MXS
 static iomux_v3_cfg_t const lcd_pads[] = {
 	MX7D_PAD_LCD_CLK__LCD_CLK | MUX_PAD_CTRL(LCD_PAD_CTRL),
@@ -211,71 +179,6 @@ static void setup_iomux_uart(void)
 	imx_iomux_v3_setup_multiple_pads(uart1_pads, ARRAY_SIZE(uart1_pads));
 }
 
-#ifdef CONFIG_FSL_ESDHC
-
-#define USDHC1_CD_GPIO	IMX_GPIO_NR(1, 0)
-
-static struct fsl_esdhc_cfg usdhc_cfg[] = {
-#ifdef CONFIG_TARGET_COLIBRI_IMX7_EMMC
-	{USDHC3_BASE_ADDR},
-#endif
-	{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;
-#ifdef CONFIG_TARGET_COLIBRI_IMX7_EMMC
-	case USDHC3_BASE_ADDR:
-		ret = 1;
-		break;
-#endif
-	}
-
-	return ret;
-}
-
-int board_mmc_init(bd_t *bis)
-{
-	int i, ret;
-	/* USDHC1 is mmc0, USDHC3 is mmc1 */
-	for (i = 0; i < CONFIG_SYS_FSL_USDHC_NUM; i++) {
-		switch (i) {
-		case 0:
-			imx_iomux_v3_setup_multiple_pads(
-				usdhc1_pads, ARRAY_SIZE(usdhc1_pads));
-			gpio_request(USDHC1_CD_GPIO, "usdhc1_cd");
-			gpio_direction_input(USDHC1_CD_GPIO);
-			usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK);
-			break;
-#ifdef CONFIG_TARGET_COLIBRI_IMX7_EMMC
-		case 1:
-			imx_iomux_v3_setup_multiple_pads(usdhc3_emmc_pads,
-				ARRAY_SIZE(usdhc3_emmc_pads));
-			usdhc_cfg[1].sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK);
-			break;
-#endif
-		default:
-			printf("Warning: you configured more USDHC controllers"
-				"(%d) than supported by the board\n", i + 1);
-			return -EINVAL;
-		}
-
-		ret = fsl_esdhc_initialize(bis, &usdhc_cfg[i]);
-		if (ret)
-			return ret;
-	}
-
-	return 0;
-}
-#endif
-
 #ifdef CONFIG_FEC_MXC
 int board_eth_init(bd_t *bis)
 {
-- 
2.20.1

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

* [U-Boot] [PATCH v2 08/11] configs: colibri_imx7: enable CAAM driver
  2019-01-08 11:42 [U-Boot] [PATCH v2 00/11] arm: Colibri iMX7 fixes and DM_MMC conversion Stefan Agner
                   ` (6 preceding siblings ...)
  2019-01-08 11:42 ` [U-Boot] [PATCH v2 07/11] colibri_imx7: drop legacy usdhc support Stefan Agner
@ 2019-01-08 11:42 ` Stefan Agner
  2019-01-08 11:42 ` [U-Boot] [PATCH v2 09/11] configs: colibri_imx7: use DFU for NAND instead of MMC Stefan Agner
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 654+ messages in thread
From: Stefan Agner @ 2019-01-08 11:42 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

Access to CAAM in non-secure mode must be enabled by the boot
loader first. The U-Boot CAAM driver enables access to CAAM in
non-secure mode by default. Hence enable the CAAM driver to
allow Linux accessing CAAM directly. This prevents error
messages like the following on Linux boot:
  caam 30900000.caam: Entropy delay = 3200
  caam 30900000.caam: failed to acquire DECO 0
  caam 30900000.caam: failed to instantiate RNG

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
---

Changes in v2: None

 configs/colibri_imx7_defconfig | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/configs/colibri_imx7_defconfig b/configs/colibri_imx7_defconfig
index af976bab12..c6fd7f3f4e 100644
--- a/configs/colibri_imx7_defconfig
+++ b/configs/colibri_imx7_defconfig
@@ -2,9 +2,11 @@ CONFIG_ARM=y
 CONFIG_SYS_THUMB_BUILD=y
 CONFIG_ARCH_MX7=y
 CONFIG_SYS_TEXT_BASE=0x87800000
+CONFIG_SECURE_BOOT=y
 CONFIG_TARGET_COLIBRI_IMX7=y
 CONFIG_IMX_RDC=y
 CONFIG_IMX_BOOTAUX=y
+# CONFIG_CMD_DEKBLOB is not set
 CONFIG_ENV_VARS_UBOOT_CONFIG=y
 CONFIG_NR_DRAM_BANKS=1
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/colibri_imx7/imximage.cfg,MX7D"
@@ -35,6 +37,7 @@ CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_BMP=y
 CONFIG_CMD_CACHE=y
+# CONFIG_CMD_HASH is not set
 CONFIG_CMD_EXT4=y
 CONFIG_CMD_FAT=y
 CONFIG_CMD_FS_GENERIC=y
@@ -46,6 +49,7 @@ CONFIG_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="imx7-colibri-rawnand"
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
+CONFIG_FSL_CAAM=y
 CONFIG_DFU_MMC=y
 CONFIG_DM_GPIO=y
 CONFIG_DM_I2C=y
-- 
2.20.1

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

* [U-Boot] [PATCH v2 09/11] configs: colibri_imx7: use DFU for NAND instead of MMC
  2019-01-08 11:42 [U-Boot] [PATCH v2 00/11] arm: Colibri iMX7 fixes and DM_MMC conversion Stefan Agner
                   ` (7 preceding siblings ...)
  2019-01-08 11:42 ` [U-Boot] [PATCH v2 08/11] configs: colibri_imx7: enable CAAM driver Stefan Agner
@ 2019-01-08 11:42 ` Stefan Agner
  2019-01-08 11:42 ` [U-Boot] [PATCH v2 10/11] configs: colibri_imx7: use distro defaults Stefan Agner
  2019-01-08 11:42 ` [U-Boot] [PATCH v2 11/11] configs: add default configuraiton for Colibri iMX7 with eMMC Stefan Agner
  10 siblings, 0 replies; 654+ messages in thread
From: Stefan Agner @ 2019-01-08 11:42 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

The colibri_imx7_defconfig is for Colibri iMX7 raw NAND devices.
Hence DFU for NAND is more useful then for MMC devices.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
---

Changes in v2:
- New patch

 configs/colibri_imx7_defconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configs/colibri_imx7_defconfig b/configs/colibri_imx7_defconfig
index c6fd7f3f4e..2e675a0c1d 100644
--- a/configs/colibri_imx7_defconfig
+++ b/configs/colibri_imx7_defconfig
@@ -50,7 +50,7 @@ CONFIG_DEFAULT_DEVICE_TREE="imx7-colibri-rawnand"
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
 CONFIG_FSL_CAAM=y
-CONFIG_DFU_MMC=y
+CONFIG_DFU_NAND=y
 CONFIG_DM_GPIO=y
 CONFIG_DM_I2C=y
 CONFIG_DM_MMC=y
-- 
2.20.1

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

* [U-Boot] [PATCH v2 10/11] configs: colibri_imx7: use distro defaults
  2019-01-08 11:42 [U-Boot] [PATCH v2 00/11] arm: Colibri iMX7 fixes and DM_MMC conversion Stefan Agner
                   ` (8 preceding siblings ...)
  2019-01-08 11:42 ` [U-Boot] [PATCH v2 09/11] configs: colibri_imx7: use DFU for NAND instead of MMC Stefan Agner
@ 2019-01-08 11:42 ` Stefan Agner
  2019-01-08 11:42 ` [U-Boot] [PATCH v2 11/11] configs: add default configuraiton for Colibri iMX7 with eMMC Stefan Agner
  10 siblings, 0 replies; 654+ messages in thread
From: Stefan Agner @ 2019-01-08 11:42 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

The defconfig already use most features implied by distro defaults.
Make sure we enable all features required by distro boot by making
use of CONFIG_DISTRO_DEFAULTS.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
---

Changes in v2:
- New patch

 configs/colibri_imx7_defconfig | 13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

diff --git a/configs/colibri_imx7_defconfig b/configs/colibri_imx7_defconfig
index 2e675a0c1d..91577ed36b 100644
--- a/configs/colibri_imx7_defconfig
+++ b/configs/colibri_imx7_defconfig
@@ -7,18 +7,17 @@ CONFIG_TARGET_COLIBRI_IMX7=y
 CONFIG_IMX_RDC=y
 CONFIG_IMX_BOOTAUX=y
 # CONFIG_CMD_DEKBLOB is not set
-CONFIG_ENV_VARS_UBOOT_CONFIG=y
+CONFIG_DISTRO_DEFAULTS=y
 CONFIG_NR_DRAM_BANKS=1
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/colibri_imx7/imximage.cfg,MX7D"
 CONFIG_BOOTDELAY=1
+# CONFIG_USE_BOOTCOMMAND is not set
 # CONFIG_CONSOLE_MUX is not set
 CONFIG_SYS_CONSOLE_IS_IN_ENV=y
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_DISPLAY_BOARDINFO_LATE=y
-CONFIG_HUSH_PARSER=y
 CONFIG_SYS_PROMPT="Colibri iMX7 # "
 # CONFIG_CMD_BOOTD is not set
-CONFIG_CMD_BOOTZ=y
 # CONFIG_CMD_IMI is not set
 # CONFIG_CMD_XIMG is not set
 CONFIG_CMD_ASKENV=y
@@ -32,19 +31,15 @@ CONFIG_CMD_NAND_TRIMFFS=y
 CONFIG_CMD_NAND_TORTURE=y
 CONFIG_CMD_USB=y
 CONFIG_CMD_USB_MASS_STORAGE=y
-CONFIG_CMD_DHCP=y
-CONFIG_CMD_MII=y
-CONFIG_CMD_PING=y
+# CONFIG_BOOTP_PXE is not set
 CONFIG_CMD_BMP=y
 CONFIG_CMD_CACHE=y
 # CONFIG_CMD_HASH is not set
-CONFIG_CMD_EXT4=y
-CONFIG_CMD_FAT=y
-CONFIG_CMD_FS_GENERIC=y
 CONFIG_CMD_MTDPARTS=y
 CONFIG_MTDIDS_DEFAULT="nand0=gpmi-nand"
 CONFIG_MTDPARTS_DEFAULT="mtdparts=gpmi-nand:512k(mx7-bcb),1536k(u-boot1)ro,1536k(u-boot2)ro,512k(u-boot-env),-(ubi)"
 CONFIG_CMD_UBI=y
+# CONFIG_ISO_PARTITION is not set
 CONFIG_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="imx7-colibri-rawnand"
 CONFIG_ENV_IS_IN_NAND=y
-- 
2.20.1

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

* [U-Boot] [PATCH v2 11/11] configs: add default configuraiton for Colibri iMX7 with eMMC
  2019-01-08 11:42 [U-Boot] [PATCH v2 00/11] arm: Colibri iMX7 fixes and DM_MMC conversion Stefan Agner
                   ` (9 preceding siblings ...)
  2019-01-08 11:42 ` [U-Boot] [PATCH v2 10/11] configs: colibri_imx7: use distro defaults Stefan Agner
@ 2019-01-08 11:42 ` Stefan Agner
       [not found]   ` <stefan.agner@toradex.com>
  10 siblings, 1 reply; 654+ messages in thread
From: Stefan Agner @ 2019-01-08 11:42 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

Add a default configuration for Colibri iMX7D 1GB (with eMMC
NAND flash).

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
---

Changes in v2:
- Add CONFIG_FIT/DFU/CRC32_VERIFY/CMD_GPT/DFU_MMC and FAT_WRITE

 configs/colibri_imx7_emmc_defconfig | 66 +++++++++++++++++++++++++++++
 1 file changed, 66 insertions(+)
 create mode 100644 configs/colibri_imx7_emmc_defconfig

diff --git a/configs/colibri_imx7_emmc_defconfig b/configs/colibri_imx7_emmc_defconfig
new file mode 100644
index 0000000000..5e2a204a88
--- /dev/null
+++ b/configs/colibri_imx7_emmc_defconfig
@@ -0,0 +1,66 @@
+CONFIG_ARM=y
+CONFIG_SYS_THUMB_BUILD=y
+CONFIG_ARCH_MX7=y
+CONFIG_SYS_TEXT_BASE=0x87800000
+CONFIG_SECURE_BOOT=y
+CONFIG_TARGET_COLIBRI_IMX7=y
+CONFIG_TARGET_COLIBRI_IMX7_EMMC=y
+CONFIG_IMX_RDC=y
+CONFIG_IMX_BOOTAUX=y
+# CONFIG_CMD_DEKBLOB is not set
+CONFIG_DISTRO_DEFAULTS=y
+CONFIG_FIT=y
+CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/colibri_imx7/imximage.cfg,MX7D"
+CONFIG_BOOTDELAY=1
+# CONFIG_USE_BOOTCOMMAND is not set
+# CONFIG_CONSOLE_MUX is not set
+CONFIG_SYS_CONSOLE_IS_IN_ENV=y
+# CONFIG_DISPLAY_BOARDINFO is not set
+CONFIG_DISPLAY_BOARDINFO_LATE=y
+CONFIG_SYS_PROMPT="Colibri iMX7 # "
+# CONFIG_CMD_BOOTD is not set
+# CONFIG_CMD_IMI is not set
+# CONFIG_CMD_XIMG is not set
+CONFIG_CMD_ASKENV=y
+CONFIG_CRC32_VERIFY=y
+CONFIG_CMD_MEMTEST=y
+CONFIG_CMD_DFU=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_GPT=y
+# CONFIG_RANDOM_UUID is not set
+CONFIG_CMD_I2C=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_USB=y
+CONFIG_CMD_USB_MASS_STORAGE=y
+CONFIG_CMD_BMP=y
+CONFIG_CMD_CACHE=y
+# CONFIG_CMD_HASH is not set
+# CONFIG_ISO_PARTITION is not set
+CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="imx7-colibri-emmc"
+CONFIG_ENV_IS_IN_MMC=y
+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
+CONFIG_FSL_CAAM=y
+CONFIG_DFU_MMC=y
+CONFIG_DM_GPIO=y
+CONFIG_DM_I2C=y
+CONFIG_DM_MMC=y
+CONFIG_FSL_ESDHC=y
+CONFIG_PHYLIB=y
+CONFIG_PHY_MICREL=y
+CONFIG_MII=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_IMX7=y
+CONFIG_DM_PMIC=y
+CONFIG_PMIC_RN5T567=y
+CONFIG_USB=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_GADGET_MANUFACTURER="Toradex"
+CONFIG_USB_GADGET_VENDOR_NUM=0x1b67
+CONFIG_USB_GADGET_PRODUCT_NUM=0x4000
+CONFIG_CI_UDC=y
+CONFIG_USB_GADGET_DOWNLOAD=y
+CONFIG_VIDEO=y
+CONFIG_FAT_WRITE=y
+CONFIG_OF_LIBFDT_OVERLAY=y
-- 
2.20.1

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

* [U-Boot] [PATCH] imx: hab: Convert non-NULL IVT DCD pointer warning to an error
  2018-12-07 22:31 [U-Boot] [PATCH] imx: hab: Convert non-NULL IVT DCD pointer warning to an error Breno Matheus Lima
@ 2019-01-16 12:00 ` Fabio Estevam
  0 siblings, 0 replies; 654+ messages in thread
From: Fabio Estevam @ 2019-01-16 12:00 UTC (permalink / raw)
  To: u-boot

On Fri, Dec 7, 2018 at 8:32 PM Breno Matheus Lima <breno.lima@nxp.com> wrote:
>
> The following NXP application notes and manual recommend to ensure the
> IVT DCD pointer is Null prior to calling HAB API authenticate_image()
> function:
>
> - AN12263: HABv4 RVT Guidelines and Recommendations
> - AN4581: Secure Boot on i.MX50, i.MX53, i.MX 6 and i.MX7 Series using
>   HABv4
> - CST docs: High Assurance Boot Version 4 Application Programming
>   Interface Reference Manual
>
> Commit ca89df7dd46f ("imx: hab: Convert DCD non-NULL error to warning")
> converted DCD non-NULL error to warning due to the lack of documentation
> at the time of first patch submission. We have warned U-Boot users since
> v2018.03, and it makes sense now to follow the NXP recommendation to
> ensure the IVT DCD pointer is Null.
>
> DCD commands should only be present in the initial boot image loaded by
> the SoC ROM. Starting in HAB v4.3.7 the HAB code  will generate an error
> if a DCD pointer is present in an image being authenticated by calling the
> HAB RVT API. Older versions of HAB will process and run DCD if it is
> present, and this could lead to an incorrect authentication boot flow.
>
> Signed-off-by: Breno Lima <breno.lima@nxp.com>

Reviewed-by: Fabio Estevam <festevam@gmail.com>

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

* [U-Boot] [PATCH] imx8: cpu: restrict checking ROM passover info for revA
@ 2019-01-18  8:58 Peng Fan
       [not found] ` <uboot-imx@nxp.com>
  0 siblings, 1 reply; 654+ messages in thread
From: Peng Fan @ 2019-01-18  8:58 UTC (permalink / raw)
  To: u-boot

Passover info only for revA.

move get_cpu_rev out of CONFIG_CPU to avoid build failure when using
get_cpu_rev in SPL.
Add a CONFIG_SPL_BUILD for passover usage, no need to execute it again
in normal U-Boot stage. Also if still checking passover info in normal
U-Boot stage, need to make the passover code executed after
arch_cpu_init_dm.
So to make it easy and clean, only execute the code for SPL stage.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 arch/arm/mach-imx/imx8/cpu.c | 39 ++++++++++++++++++++++-----------------
 1 file changed, 22 insertions(+), 17 deletions(-)

diff --git a/arch/arm/mach-imx/imx8/cpu.c b/arch/arm/mach-imx/imx8/cpu.c
index 303cdc3c9a..ac65ae74fd 100644
--- a/arch/arm/mach-imx/imx8/cpu.c
+++ b/arch/arm/mach-imx/imx8/cpu.c
@@ -35,15 +35,20 @@ struct pass_over_info_t *get_pass_over_info(void)
 
 int arch_cpu_init(void)
 {
-	struct pass_over_info_t *pass_over = get_pass_over_info();
-
-	if (pass_over && pass_over->g_ap_mu == 0) {
-		/*
-		 * When ap_mu is 0, means the U-Boot booted
-		 * from first container
-		 */
-		sc_misc_boot_status(-1, SC_MISC_BOOT_STATUS_SUCCESS);
+#ifdef CONFIG_SPL_BUILD
+	struct pass_over_info_t *pass_over;
+
+	if (is_soc_rev(CHIP_REV_A)) {
+		pass_over = get_pass_over_info();
+		if (pass_over && pass_over->g_ap_mu == 0) {
+			/*
+			 * When ap_mu is 0, means the U-Boot booted
+			 * from first container
+			 */
+			sc_misc_boot_status(-1, SC_MISC_BOOT_STATUS_SUCCESS);
+		}
 	}
+#endif
 
 	return 0;
 }
@@ -507,15 +512,6 @@ err:
 	printf("%s: fuse %d, err: %d\n", __func__, word[i], ret);
 }
 
-#if CONFIG_IS_ENABLED(CPU)
-struct cpu_imx_platdata {
-	const char *name;
-	const char *rev;
-	const char *type;
-	u32 cpurev;
-	u32 freq_mhz;
-};
-
 u32 get_cpu_rev(void)
 {
 	u32 id = 0, rev = 0;
@@ -531,6 +527,15 @@ u32 get_cpu_rev(void)
 	return (id << 12) | rev;
 }
 
+#if CONFIG_IS_ENABLED(CPU)
+struct cpu_imx_platdata {
+	const char *name;
+	const char *rev;
+	const char *type;
+	u32 cpurev;
+	u32 freq_mhz;
+};
+
 const char *get_imx8_type(u32 imxtype)
 {
 	switch (imxtype) {
-- 
2.14.1

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

* [U-Boot] [PATCH v4 2/2] imx: Add PHYTEC phyBOARD-i.MX6UL-Segin
  2018-12-11 11:34 ` [U-Boot] [PATCH v4 2/2] imx: Add PHYTEC phyBOARD-i.MX6UL-Segin Martyn Welch
@ 2019-01-18 20:01   ` Martyn Welch
  0 siblings, 0 replies; 654+ messages in thread
From: Martyn Welch @ 2019-01-18 20:01 UTC (permalink / raw)
  To: u-boot

Hi All,

Is there anything preventing this series being merged? I don't think
I've seen any further issues raised.

Sorry if it's already been merged somewhere and I've missed it...

Martyn

On Tue, 2018-12-11 at 11:34 +0000, Martyn Welch wrote:
> Port for the PHYTEC phyBOARD-i.MX6UL-Segin single board computer.
> Based on
> the PHYTEC phyCORE-i.MX6UL SOM (PCL063).
> 
> CPU:   Freescale i.MX6UL rev1.2 528 MHz (running at 396 MHz)
> CPU:   Industrial temperature grade (-40C to 105C) at 44C
> Reset cause: POR
> Board: PHYTEC phyCORE-i.MX6UL
> I2C:   ready
> DRAM:  256 MiB
> NAND:  512 MiB
> MMC:   FSL_SDHC: 0
> In:    serial
> Out:   serial
> Err:   serial
> Net:   FEC0
> 
> Working:
>  - Eth0
>  - i2C
>  - MMC/SD
>  - NAND
>  - UART (1 & 5)
>  - USB (host & otg)
> 
> Signed-off-by: Martyn Welch <martyn.welch@collabora.com>
> 
> ---
> 
> Changes in v4:
> - Added PXE boot option
> - Switched i2c to DM support
> 
> Changes in v3:
> - Correct spelling of Phytec
> - Remove unneeded license information
> - Correct image name in documentation
> - Correct whitespacing
> - Enable SPL to boot from MMC
> - Simplify defconfig, remove non-SPL build
> 
> Changes in v2:
> - Switch to driver model
> 
>  arch/arm/dts/Makefile                 |   3 +-
>  arch/arm/dts/imx6ul-pcl063.dtsi       | 173 +++++++++++++++++++++
>  arch/arm/dts/imx6ul-phycore-segin.dts |  76 ++++++++++
>  arch/arm/mach-imx/mx6/Kconfig         |  13 ++
>  board/phytec/pcl063/Kconfig           |  12 ++
>  board/phytec/pcl063/MAINTAINERS       |   8 +
>  board/phytec/pcl063/Makefile          |   7 +
>  board/phytec/pcl063/README            |  26 ++++
>  board/phytec/pcl063/pcl063.c          | 206
> ++++++++++++++++++++++++++
>  board/phytec/pcl063/spl.c             | 160 ++++++++++++++++++++
>  configs/phycore_pcl063_defconfig      |  62 ++++++++
>  include/configs/pcl063.h              |  94 ++++++++++++
>  12 files changed, 839 insertions(+), 1 deletion(-)
>  create mode 100644 arch/arm/dts/imx6ul-pcl063.dtsi
>  create mode 100644 arch/arm/dts/imx6ul-phycore-segin.dts
>  create mode 100644 board/phytec/pcl063/Kconfig
>  create mode 100644 board/phytec/pcl063/MAINTAINERS
>  create mode 100644 board/phytec/pcl063/Makefile
>  create mode 100644 board/phytec/pcl063/README
>  create mode 100644 board/phytec/pcl063/pcl063.c
>  create mode 100644 board/phytec/pcl063/spl.c
>  create mode 100644 configs/phycore_pcl063_defconfig
>  create mode 100644 include/configs/pcl063.h
> 
> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
> index 949ee472fc..68411623e5 100644
> --- a/arch/arm/dts/Makefile
> +++ b/arch/arm/dts/Makefile
> @@ -453,7 +453,8 @@ dtb-$(CONFIG_MX6UL) += \
>  	imx6ul-isiot-nand.dtb \
>  	imx6ul-opos6uldev.dtb \
>  	imx6ul-14x14-evk.dtb \
> -	imx6ul-9x9-evk.dtb
> +	imx6ul-9x9-evk.dtb \
> +	imx6ul-phycore-segin.dtb
>  
>  dtb-$(CONFIG_MX6ULL) += imx6ull-14x14-evk.dtb
>  
> diff --git a/arch/arm/dts/imx6ul-pcl063.dtsi b/arch/arm/dts/imx6ul-
> pcl063.dtsi
> new file mode 100644
> index 0000000000..24a6a47983
> --- /dev/null
> +++ b/arch/arm/dts/imx6ul-pcl063.dtsi
> @@ -0,0 +1,173 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright (C) 2018 Collabora Ltd.
> + *
> + * Based on dts[i] from Phytec barebox port:
> + * Copyright (C) 2016 PHYTEC Messtechnik GmbH
> + * Author: Christian Hemp <c.hemp@phytec.de>
> + */
> +
> +/dts-v1/;
> +
> +#include "imx6ul.dtsi"
> +
> +/ {
> +	model = "Phytec phyCORE-i.MX6 Ultra Lite SOM";
> +	compatible = "phytec,imx6ul-pcl063", "fsl,imx6ul";
> +
> +	memory {
> +		reg = <0x80000000 0x20000000>;
> +	};
> +
> +	chosen {
> +		stdout-path = &uart1;
> +	};
> +};
> +
> +&fec1 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_enet1>;
> +	phy-mode = "rmii";
> +	phy-handle = <&ethphy0>;
> +	status = "okay";
> +
> +	mdio: mdio {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		ethphy0: ethernet-phy at 1 {
> +			reg = <1>;
> +			micrel,led-mode = <1>;
> +		};
> +	};
> +};
> +
> +&gpmi {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_gpmi_nand>;
> +	nand-on-flash-bbt;
> +	fsl,no-blockmark-swap;
> +	status = "okay";
> +
> +	#address-cells = <1>;
> +	#size-cells = <1>;
> +
> +	partition at 0 {
> +		label = "uboot";
> +		reg = <0x0 0x400000>;
> +	};
> +
> +	partition at 400000 {
> +		label = "uboot-env";
> +		reg = <0x400000 0x100000>;
> +	};
> +
> +	partition at 500000 {
> +		label = "root";
> +		reg = <0x500000 0x0>;
> +	};
> +};
> +
> +&i2c1 {
> +	clock-frequency = <100000>;
> +	pinctrl-names = "default", "gpio";
> +	pinctrl-0 = <&pinctrl_i2c1>;
> +	pinctrl-1 = <&pinctrl_i2c1_gpio>;
> +	scl-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
> +	sda-gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>;
> +	status = "okay";
> +
> +	eeprom at 52 {
> +		compatible = "cat,24c32";
> +		reg = <0x52>;
> +	};
> +};
> +
> +&uart1 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_uart1>;
> +	status = "okay";
> +};
> +
> +&usdhc1 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_usdhc1>;
> +	cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
> +	bus-width = <0x4>;
> +	pinctrl-0 = <&pinctrl_usdhc1>;
> +	no-1-8-v;
> +	status = "okay";
> +};
> +
> +&iomuxc {
> +	pinctrl-names = "default";
> +
> +	pinctrl_enet1: enet1grp {
> +		fsl,pins = <
> +			MX6UL_PAD_GPIO1_IO06__ENET1_MDIO	0x1b0b0
> +			MX6UL_PAD_GPIO1_IO07__ENET1_MDC		0X1b0
> b0
> +			MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN	0x1b0
> b0
> +			MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER	0x1b0
> b0
> +			MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00	0x1b0
> b0
> +			MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01	0x1b0
> b0
> +			MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN	0x1b0
> b0
> +			MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00	0x1b0
> b0
> +			MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01	0x1b0
> b0
> +			MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1	0x400
> 1b031
> +		>;
> +	};
> +
> +	pinctrl_gpmi_nand: gpminandgrp {
> +		fsl,pins = <
> +			MX6UL_PAD_NAND_CLE__RAWNAND_CLE		0x0b0
> b1
> +			MX6UL_PAD_NAND_ALE__RAWNAND_ALE		0x0b0
> b1
> +			MX6UL_PAD_NAND_WP_B__RAWNAND_WP_B	0x0b0b1
> +			MX6UL_PAD_NAND_READY_B__RAWNAND_READY_B	0x0b0
> 00
> +			MX6UL_PAD_NAND_CE0_B__RAWNAND_CE0_B	0x0b0
> b1
> +			MX6UL_PAD_NAND_RE_B__RAWNAND_RE_B	0x0b0b1
> +			MX6UL_PAD_NAND_WE_B__RAWNAND_WE_B	0x0b0b1
> +			MX6UL_PAD_NAND_DATA00__RAWNAND_DATA00	0x0b0
> b1
> +			MX6UL_PAD_NAND_DATA01__RAWNAND_DATA01	0x0b0
> b1
> +			MX6UL_PAD_NAND_DATA02__RAWNAND_DATA02	0x0b0
> b1
> +			MX6UL_PAD_NAND_DATA03__RAWNAND_DATA03	0x0b0
> b1
> +			MX6UL_PAD_NAND_DATA04__RAWNAND_DATA04	0x0b0
> b1
> +			MX6UL_PAD_NAND_DATA05__RAWNAND_DATA05	0x0b0
> b1
> +			MX6UL_PAD_NAND_DATA06__RAWNAND_DATA06	0x0b0
> b1
> +			MX6UL_PAD_NAND_DATA07__RAWNAND_DATA07	0x0b0
> b1
> +		>;
> +	};
> +
> +	pinctrl_i2c1: i2cgrp {
> +		fsl,pins = <
> +			MX6UL_PAD_UART4_TX_DATA__I2C1_SCL       0x4001b
> 8b0
> +			MX6UL_PAD_UART4_RX_DATA__I2C1_SDA       0x4001b
> 8b0
> +		>;
> +	};
> +
> +	pinctrl_i2c1_gpio: i2c1grp_gpio {
> +		fsl,pins = <
> +			MX6UL_PAD_UART4_TX_DATA__GPIO1_IO28 0x1b8b0
> +			MX6UL_PAD_UART4_RX_DATA__GPIO1_IO29 0x1b8b0
> +		>;
> +	};
> +
> +	pinctrl_uart1: uart1grp {
> +		fsl,pins = <
> +			MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX   0x1b0b1
> +			MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX   0x1b0b1
> +		>;
> +	};
> +
> +	pinctrl_usdhc1: usdhc1grp {
> +		fsl,pins = <
> +			MX6UL_PAD_SD1_CMD__USDHC1_CMD		0x170
> 59
> +			MX6UL_PAD_SD1_CLK__USDHC1_CLK		0x100
> 59
> +			MX6UL_PAD_SD1_DATA0__USDHC1_DATA0	0x17059
> +			MX6UL_PAD_SD1_DATA1__USDHC1_DATA1	0x17059
> +			MX6UL_PAD_SD1_DATA2__USDHC1_DATA2	0x17059
> +			MX6UL_PAD_SD1_DATA3__USDHC1_DATA3	0x17059
> +			MX6UL_PAD_UART1_RTS_B__GPIO1_IO19	0x17059
> +
> +		>;
> +	};
> +};
> diff --git a/arch/arm/dts/imx6ul-phycore-segin.dts
> b/arch/arm/dts/imx6ul-phycore-segin.dts
> new file mode 100644
> index 0000000000..a46012e2b4
> --- /dev/null
> +++ b/arch/arm/dts/imx6ul-phycore-segin.dts
> @@ -0,0 +1,76 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright (C) 2018 Collabora Ltd.
> + *
> + * Based on dts[i] from Phytec barebox port:
> + * Copyright (C) 2016 PHYTEC Messtechnik GmbH
> + * Author: Christian Hemp <c.hemp@phytec.de>
> + *
> + * The code contained herein is licensed under the GNU General
> Public
> + * License. You may obtain a copy of the GNU General Public License
> + * Version 2 or later at the following locations:
> + *
> + * http://www.opensource.org/licenses/gpl-license.html
> + * http://www.gnu.org/copyleft/gpl.html
> + */
> +
> +/dts-v1/;
> +
> +#include "imx6ul-pcl063.dtsi"
> +
> +/ {
> +	model = "Phytec phyBOARD-i.MX6UL-Segin SBC";
> +	compatible = "phytec,phyboard-imx6ul-segin", "phytec,imx6ul-
> pcl063",
> +		     "fsl,imx6ul";
> +};
> +
> +&i2c1 {
> +	i2c_rtc: rtc at 68 {
> +		compatible = "microcrystal,rv4162";
> +		reg = <0x68>;
> +		status = "okay";
> +	};
> +};
> +
> +&uart5 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_uart5>;
> +	uart-has-rtscts;
> +	status = "okay";
> +};
> +
> +&usbotg1 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_usb_otg1_id>;
> +	dr_mode = "otg";
> +	srp-disable;
> +	hnp-disable;
> +	adp-disable;
> +	status = "okay";
> +};
> +
> +&usbotg2 {
> +	dr_mode = "host";
> +	disable-over-current;
> +	status = "okay";
> +};
> +
> +&iomuxc {
> +	pinctrl-names = "default";
> +
> +	pinctrl_uart5: uart5grp {
> +		fsl,pins = <
> +			MX6UL_PAD_UART5_TX_DATA__UART5_DCE_TX	0x1b0
> b1
> +			MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX	0x1b0
> b1
> +			MX6UL_PAD_GPIO1_IO08__UART5_DCE_RTS	0x1b0
> b1
> +			MX6UL_PAD_GPIO1_IO09__UART5_DCE_CTS	0x1b0
> b1
> +		>;
> +	};
> +
> +	pinctrl_usb_otg1_id: usbotg1idgrp {
> +		fsl,pins = <
> +			MX6UL_PAD_GPIO1_IO00__ANATOP_OTG1_ID    0x17059
> +		>;
> +	};
> +
> +};
> diff --git a/arch/arm/mach-imx/mx6/Kconfig b/arch/arm/mach-
> imx/mx6/Kconfig
> index 06c25bae36..e253f495c5 100644
> --- a/arch/arm/mach-imx/mx6/Kconfig
> +++ b/arch/arm/mach-imx/mx6/Kconfig
> @@ -428,6 +428,18 @@ config TARGET_PFLA02
>  	select MX6QDL
>  	select SUPPORT_SPL
>  
> +config TARGET_PCL063
> +	bool "PHYTEC PCL063 (phyCORE-i.MX6UL)"
> +	select MX6UL
> +	select DM
> +	select DM_ETH
> +	select DM_GPIO
> +	select DM_I2C
> +	select DM_MMC
> +	select DM_SERIAL
> +	select DM_THERMAL
> +	select SUPPORT_SPL
> +
>  config TARGET_SECOMX6
>  	bool "secomx6 boards"
>  
> @@ -550,6 +562,7 @@ source "board/freescale/mx6ullevk/Kconfig"
>  source "board/grinn/liteboard/Kconfig"
>  source "board/phytec/pcm058/Kconfig"
>  source "board/phytec/pfla02/Kconfig"
> +source "board/phytec/pcl063/Kconfig"
>  source "board/gateworks/gw_ventana/Kconfig"
>  source "board/kosagi/novena/Kconfig"
>  source "board/samtec/vining_2000/Kconfig"
> diff --git a/board/phytec/pcl063/Kconfig
> b/board/phytec/pcl063/Kconfig
> new file mode 100644
> index 0000000000..977db70f64
> --- /dev/null
> +++ b/board/phytec/pcl063/Kconfig
> @@ -0,0 +1,12 @@
> +if TARGET_PCL063
> +
> +config SYS_BOARD
> +	default "pcl063"
> +
> +config SYS_VENDOR
> +	default "phytec"
> +
> +config SYS_CONFIG_NAME
> +	default "pcl063"
> +
> +endif
> diff --git a/board/phytec/pcl063/MAINTAINERS
> b/board/phytec/pcl063/MAINTAINERS
> new file mode 100644
> index 0000000000..c65a951f3d
> --- /dev/null
> +++ b/board/phytec/pcl063/MAINTAINERS
> @@ -0,0 +1,8 @@
> +PCL063 BOARD
> +M:	Martyn Welch <martyn.welch@collabora.com>
> +S:	Maintained
> +F:	arch/arm/dts/imx6ul-pcl063.dtsi
> +F:	arch/arm/dts/imx6ul-phycore-segin.dts
> +F:	board/phytec/pcl063/
> +F:	configs/phycore_pcl063_defconfig
> +F:	include/configs/pcl063.h
> diff --git a/board/phytec/pcl063/Makefile
> b/board/phytec/pcl063/Makefile
> new file mode 100644
> index 0000000000..53c73c9b08
> --- /dev/null
> +++ b/board/phytec/pcl063/Makefile
> @@ -0,0 +1,7 @@
> +# Copyright (C) 2018 Collabora Ltd.
> +#
> +# SPDX-License-Identifier:	GPL-2.0+
> +#
> +
> +obj-y  := pcl063.o
> +obj-$(CONFIG_SPL_BUILD) += spl.o
> diff --git a/board/phytec/pcl063/README b/board/phytec/pcl063/README
> new file mode 100644
> index 0000000000..be83bdb0d8
> --- /dev/null
> +++ b/board/phytec/pcl063/README
> @@ -0,0 +1,26 @@
> +How to use U-Boot on PHYTEC phyBOARD-i.MX6UL-Segin
> +--------------------------------------------------
> +
> +- Configure and build U-Boot for phyCORE-i.MX6UL:
> +
> +    $ make mrproper
> +    $ make phycore_pcl063_defconfig
> +    $ make
> +
> +  This will generate SPL and u-boot-dtb.img images.
> +
> +- The SPL and u-boot-dtb.img images need to be flashed into the
> micro SD card:
> +
> +    $ sudo dd if=SPL of=/dev/mmcblk0 bs=1k seek=1; sync
> +    $ sudo dd if=u-boot-dtb.img of=/dev/mmcblk0 bs=1k seek=69; sync
> +
> +- Jumper settings:
> +
> +  JP1:   Open: Boot from NAND
> +       Closed: Boot from SD/MMC1
> +
> +- Connect the Serial cable to UART0 and the PC for the console.
> +
> +- Insert the micro SD card in the board and power it up.
> +
> +- U-Boot messages should come up.
> diff --git a/board/phytec/pcl063/pcl063.c
> b/board/phytec/pcl063/pcl063.c
> new file mode 100644
> index 0000000000..38b233d1b0
> --- /dev/null
> +++ b/board/phytec/pcl063/pcl063.c
> @@ -0,0 +1,206 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright (C) 2018 Collabora Ltd.
> + *
> + * Based on board/ccv/xpress/xpress.c:
> + * Copyright (C) 2015-2016 Stefan Roese <sr@denx.de>
> + */
> +
> +#include <asm/arch/clock.h>
> +#include <asm/arch/crm_regs.h>
> +#include <asm/arch/mx6-pins.h>
> +#include <asm/arch/sys_proto.h>
> +#include <asm/mach-imx/iomux-v3.h>
> +#include <asm/mach-imx/mxc_i2c.h>
> +#include <fsl_esdhc.h>
> +#include <linux/bitops.h>
> +#include <miiphy.h>
> +#include <netdev.h>
> +#include <usb.h>
> +#include <usb/ehci-ci.h>
> +
> +DECLARE_GLOBAL_DATA_PTR;
> +
> +int dram_init(void)
> +{
> +	gd->ram_size = get_ram_size((void *)PHYS_SDRAM,
> PHYS_SDRAM_SIZE);
> +
> +	return 0;
> +}
> +
> +#define UART_PAD_CTRL  (PAD_CTL_PKE         | PAD_CTL_PUE       | \
> +			PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \
> +			PAD_CTL_DSE_40ohm   | PAD_CTL_SRE_FAST  | \
> +			PAD_CTL_HYS)
> +
> +static iomux_v3_cfg_t const uart1_pads[] = {
> +	MX6_PAD_UART1_TX_DATA__UART1_DCE_TX |
> MUX_PAD_CTRL(UART_PAD_CTRL),
> +	MX6_PAD_UART1_RX_DATA__UART1_DCE_RX |
> MUX_PAD_CTRL(UART_PAD_CTRL),
> +};
> +
> +static iomux_v3_cfg_t const uart5_pads[] = {
> +	MX6_PAD_UART5_TX_DATA__UART5_DCE_TX |
> MUX_PAD_CTRL(UART_PAD_CTRL),
> +	MX6_PAD_UART5_RX_DATA__UART5_DCE_RX |
> MUX_PAD_CTRL(UART_PAD_CTRL),
> +	MX6_PAD_GPIO1_IO09__UART5_DCE_CTS |
> MUX_PAD_CTRL(UART_PAD_CTRL),
> +	MX6_PAD_GPIO1_IO08__UART5_DCE_RTS |
> MUX_PAD_CTRL(UART_PAD_CTRL),
> +};
> +
> +static void setup_iomux_uart(void)
> +{
> +	imx_iomux_v3_setup_multiple_pads(uart1_pads,
> ARRAY_SIZE(uart1_pads));
> +	imx_iomux_v3_setup_multiple_pads(uart5_pads,
> ARRAY_SIZE(uart5_pads));
> +}
> +
> +#ifdef CONFIG_NAND_MXS
> +
> +#define NAND_PAD_CTRL (PAD_CTL_DSE_48ohm | PAD_CTL_SRE_SLOW |
> PAD_CTL_HYS)
> +
> +#define NAND_PAD_READY0_CTRL (PAD_CTL_DSE_48ohm |
> PAD_CTL_PUS_22K_UP)
> +
> +#define NANDREADYPC MUX_PAD_CTRL(NAND_PAD_READY0_CTRL)
> +
> +static iomux_v3_cfg_t const gpmi_pads[] = {
> +	MX6_PAD_NAND_DATA00__RAWNAND_DATA00	|
> MUX_PAD_CTRL(NAND_PAD_CTRL),
> +	MX6_PAD_NAND_DATA01__RAWNAND_DATA01	|
> MUX_PAD_CTRL(NAND_PAD_CTRL),
> +	MX6_PAD_NAND_DATA02__RAWNAND_DATA02	|
> MUX_PAD_CTRL(NAND_PAD_CTRL),
> +	MX6_PAD_NAND_DATA03__RAWNAND_DATA03	|
> MUX_PAD_CTRL(NAND_PAD_CTRL),
> +	MX6_PAD_NAND_DATA04__RAWNAND_DATA04	|
> MUX_PAD_CTRL(NAND_PAD_CTRL),
> +	MX6_PAD_NAND_DATA05__RAWNAND_DATA05	|
> MUX_PAD_CTRL(NAND_PAD_CTRL),
> +	MX6_PAD_NAND_DATA06__RAWNAND_DATA06	|
> MUX_PAD_CTRL(NAND_PAD_CTRL),
> +	MX6_PAD_NAND_DATA07__RAWNAND_DATA07	|
> MUX_PAD_CTRL(NAND_PAD_CTRL),
> +	MX6_PAD_NAND_CLE__RAWNAND_CLE		|
> MUX_PAD_CTRL(NAND_PAD_CTRL),
> +	MX6_PAD_NAND_ALE__RAWNAND_ALE		|
> MUX_PAD_CTRL(NAND_PAD_CTRL),
> +	MX6_PAD_NAND_RE_B__RAWNAND_RE_B		|
> MUX_PAD_CTRL(NAND_PAD_CTRL),
> +	MX6_PAD_NAND_WE_B__RAWNAND_WE_B		|
> MUX_PAD_CTRL(NAND_PAD_CTRL),
> +	MX6_PAD_NAND_CE0_B__RAWNAND_CE0_B	|
> MUX_PAD_CTRL(NAND_PAD_CTRL),
> +	MX6_PAD_NAND_READY_B__RAWNAND_READY_B	| NANDREADYPC,
> +};
> +
> +static void setup_gpmi_nand(void)
> +{
> +	imx_iomux_v3_setup_multiple_pads(gpmi_pads,
> ARRAY_SIZE(gpmi_pads));
> +
> +	setup_gpmi_io_clk((3 << MXC_CCM_CSCDR1_BCH_PODF_OFFSET) |
> +			  (3 << MXC_CCM_CSCDR1_GPMI_PODF_OFFSET));
> +}
> +
> +#endif /* CONFIG_NAND_MXS */
> +
> +#ifdef CONFIG_FEC_MXC
> +
> +#define ENET_CLK_PAD_CTRL (PAD_CTL_DSE_40ohm   | PAD_CTL_SRE_FAST)
> +
> +#define ENET_PAD_CTRL     (PAD_CTL_PUS_100K_UP | PAD_CTL_PUE       |
> \
> +			   PAD_CTL_SPEED_HIGH  | PAD_CTL_DSE_48ohm | \
> +			   PAD_CTL_SRE_FAST)
> +
> +#define MDIO_PAD_CTRL     (PAD_CTL_PUS_100K_UP | PAD_CTL_PUE      |
> \
> +			   PAD_CTL_DSE_48ohm   | PAD_CTL_SRE_FAST | \
> +			   PAD_CTL_ODE)
> +
> +static iomux_v3_cfg_t const fec1_pads[] = {
> +	MX6_PAD_GPIO1_IO06__ENET1_MDIO | MUX_PAD_CTRL(MDIO_PAD_CTRL),
> +	MX6_PAD_GPIO1_IO07__ENET1_MDC | MUX_PAD_CTRL(ENET_PAD_CTRL),
> +	MX6_PAD_ENET1_TX_DATA0__ENET1_TDATA00 |
> MUX_PAD_CTRL(ENET_PAD_CTRL),
> +	MX6_PAD_ENET1_TX_DATA1__ENET1_TDATA01 |
> MUX_PAD_CTRL(ENET_PAD_CTRL),
> +	MX6_PAD_ENET1_TX_EN__ENET1_TX_EN | MUX_PAD_CTRL(ENET_PAD_CTRL),
> +	MX6_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 |
> MUX_PAD_CTRL(ENET_CLK_PAD_CTRL),
> +	MX6_PAD_ENET1_RX_DATA0__ENET1_RDATA00 |
> MUX_PAD_CTRL(ENET_PAD_CTRL),
> +	MX6_PAD_ENET1_RX_DATA1__ENET1_RDATA01 |
> MUX_PAD_CTRL(ENET_PAD_CTRL),
> +	MX6_PAD_ENET1_RX_ER__ENET1_RX_ER | MUX_PAD_CTRL(ENET_PAD_CTRL),
> +	MX6_PAD_ENET1_RX_EN__ENET1_RX_EN | MUX_PAD_CTRL(ENET_PAD_CTRL),
> +};
> +
> +static iomux_v3_cfg_t const fec2_pads[] = {
> +	MX6_PAD_ENET2_TX_DATA0__ENET2_TDATA00 |
> MUX_PAD_CTRL(ENET_PAD_CTRL),
> +	MX6_PAD_ENET2_TX_DATA1__ENET2_TDATA01 |
> MUX_PAD_CTRL(ENET_PAD_CTRL),
> +	MX6_PAD_ENET2_TX_EN__ENET2_TX_EN | MUX_PAD_CTRL(ENET_PAD_CTRL),
> +	MX6_PAD_ENET2_TX_CLK__ENET2_REF_CLK2 |
> MUX_PAD_CTRL(ENET_CLK_PAD_CTRL),
> +	MX6_PAD_ENET2_RX_DATA0__ENET2_RDATA00 |
> MUX_PAD_CTRL(ENET_PAD_CTRL),
> +	MX6_PAD_ENET2_RX_DATA1__ENET2_RDATA01 |
> MUX_PAD_CTRL(ENET_PAD_CTRL),
> +	MX6_PAD_ENET2_RX_ER__ENET2_RX_ER | MUX_PAD_CTRL(ENET_PAD_CTRL),
> +	MX6_PAD_ENET2_RX_EN__ENET2_RX_EN | MUX_PAD_CTRL(ENET_PAD_CTRL),
> +};
> +
> +static void setup_iomux_fec(void)
> +{
> +	imx_iomux_v3_setup_multiple_pads(fec1_pads,
> ARRAY_SIZE(fec1_pads));
> +	imx_iomux_v3_setup_multiple_pads(fec2_pads,
> ARRAY_SIZE(fec2_pads));
> +}
> +
> +static int setup_fec(void)
> +{
> +	struct iomuxc *const iomuxc_regs = (struct iomuxc
> *)IOMUXC_BASE_ADDR;
> +	int ret;
> +
> +	/*
> +	 * Use 50M anatop loopback REF_CLK1 for ENET1,
> +	 * clear gpr1[13], set gpr1[17].
> +	 */
> +	clrsetbits_le32(&iomuxc_regs->gpr[1], IOMUX_GPR1_FEC1_MASK,
> +			IOMUX_GPR1_FEC1_CLOCK_MUX1_SEL_MASK);
> +
> +	ret = enable_fec_anatop_clock(0, ENET_50MHZ);
> +	if (ret)
> +		return ret;
> +
> +	/*
> +	 * Use 50M anatop loopback REF_CLK2 for ENET2,
> +	 * clear gpr1[14], set gpr1[18].
> +	 */
> +	clrsetbits_le32(&iomuxc_regs->gpr[1], IOMUX_GPR1_FEC2_MASK,
> +			IOMUX_GPR1_FEC2_CLOCK_MUX1_SEL_MASK);
> +
> +	ret = enable_fec_anatop_clock(1, ENET_50MHZ);
> +	if (ret)
> +		return ret;
> +
> +	enable_enet_clk(1);
> +
> +	return 0;
> +}
> +
> +int board_phy_config(struct phy_device *phydev)
> +{
> +	/*
> +	 * Defaults + Enable status LEDs (LED1: Activity, LED0: Link) &
> select
> +	 * 50 MHz RMII clock mode.
> +	 */
> +	phy_write(phydev, MDIO_DEVAD_NONE, 0x1f, 0x8190);
> +
> +	if (phydev->drv->config)
> +		phydev->drv->config(phydev);
> +
> +	return 0;
> +}
> +#endif /* CONFIG_FEC_MXC */
> +
> +int board_early_init_f(void)
> +{
> +	setup_iomux_uart();
> +	setup_iomux_fec();
> +
> +	return 0;
> +}
> +
> +int board_init(void)
> +{
> +	/* Address of boot parameters */
> +	gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
> +
> +#ifdef CONFIG_NAND_MXS
> +	setup_gpmi_nand();
> +#endif
> +
> +#ifdef CONFIG_FEC_MXC
> +	setup_fec();
> +#endif
> +	return 0;
> +}
> +
> +int checkboard(void)
> +{
> +	puts("Board: PHYTEC phyCORE-i.MX6UL\n");
> +
> +	return 0;
> +}
> diff --git a/board/phytec/pcl063/spl.c b/board/phytec/pcl063/spl.c
> new file mode 100644
> index 0000000000..b93cd493f2
> --- /dev/null
> +++ b/board/phytec/pcl063/spl.c
> @@ -0,0 +1,160 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright (C) 2018 Collabora Ltd.
> + *
> + * Based on board/ccv/xpress/spl.c:
> + * Copyright (C) 2015-2016 Stefan Roese <sr@denx.de>
> + */
> +
> +#include <common.h>
> +#include <spl.h>
> +#include <asm/arch/clock.h>
> +#include <asm/io.h>
> +#include <asm/arch/mx6-ddr.h>
> +#include <asm/arch/mx6-pins.h>
> +#include <asm/arch/crm_regs.h>
> +#include <fsl_esdhc.h>
> +
> +/* Configuration for Micron MT41K256M16TW-107 IT:P, 32M x 16 x 8 ->
> 256MiB */
> +
> +static struct mx6ul_iomux_grp_regs mx6_grp_ioregs = {
> +	.grp_addds = 0x00000030,
> +	.grp_ddrmode_ctl = 0x00020000,
> +	.grp_b0ds = 0x00000030,
> +	.grp_ctlds = 0x00000030,
> +	.grp_b1ds = 0x00000030,
> +	.grp_ddrpke = 0x00000000,
> +	.grp_ddrmode = 0x00020000,
> +	.grp_ddr_type = 0x000c0000,
> +};
> +
> +static struct mx6ul_iomux_ddr_regs mx6_ddr_ioregs = {
> +	.dram_dqm0 = 0x00000030,
> +	.dram_dqm1 = 0x00000030,
> +	.dram_ras = 0x00000030,
> +	.dram_cas = 0x00000030,
> +	.dram_odt0 = 0x00000030,
> +	.dram_odt1 = 0x00000030,
> +	.dram_sdba2 = 0x00000000,
> +	.dram_sdclk_0 = 0x00000030,
> +	.dram_sdqs0 = 0x00000030,
> +	.dram_sdqs1 = 0x00000030,
> +	.dram_reset = 0x00000030,
> +};
> +
> +static struct mx6_mmdc_calibration mx6_mmcd_calib = {
> +	.p0_mpwldectrl0 = 0x00000000,
> +	.p0_mpdgctrl0 = 0x41480148,
> +	.p0_mprddlctl = 0x40403E42,
> +	.p0_mpwrdlctl = 0x40405852,
> +};
> +
> +struct mx6_ddr_sysinfo ddr_sysinfo = {
> +	.dsize = 0,		/* Bus size = 16bit */
> +	.cs_density = 18,
> +	.ncs = 1,
> +	.cs1_mirror = 0,
> +	.rtt_wr = 1,
> +	.rtt_nom = 1,
> +	.walat = 1,		/* Write additional latency */
> +	.ralat = 5,		/* Read additional latency */
> +	.mif3_mode = 3,		/* Command prediction working mode */
> +	.bi_on = 1,		/* Bank interleaving enabled */
> +	.pd_fast_exit = 1,
> +	.sde_to_rst = 0x10,	/* 14 cycles, 200us (JEDEC default)
> */
> +	.rst_to_cke = 0x23,	/* 33 cycles, 500us (JEDEC default)
> */
> +	.ddr_type = DDR_TYPE_DDR3,
> +	.refsel = 1,		/* Refresh cycles at 32KHz */
> +	.refr = 7,		/* 8 refresh commands per refresh
> cycle */
> +};
> +
> +static struct mx6_ddr3_cfg mem_ddr = {
> +	.mem_speed = 933,
> +	.density = 4,
> +	.width = 16,
> +	.banks = 8,
> +	.rowaddr = 14,
> +	.coladdr = 10,
> +	.pagesz = 1,
> +	.trcd = 1391,
> +	.trcmin = 4791,
> +	.trasmin = 3400,
> +};
> +
> +static void ccgr_init(void)
> +{
> +	struct mxc_ccm_reg *ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR;
> +
> +	writel(0xFFFFFFFF, &ccm->CCGR0);
> +	writel(0xFFFFFFFF, &ccm->CCGR1);
> +	writel(0xFFFFFFFF, &ccm->CCGR2);
> +	writel(0xFFFFFFFF, &ccm->CCGR3);
> +	writel(0xFFFFFFFF, &ccm->CCGR4);
> +	writel(0xFFFFFFFF, &ccm->CCGR5);
> +	writel(0xFFFFFFFF, &ccm->CCGR6);
> +}
> +
> +static void spl_dram_init(void)
> +{
> +	mx6ul_dram_iocfg(mem_ddr.width, &mx6_ddr_ioregs,
> &mx6_grp_ioregs);
> +	mx6_dram_cfg(&ddr_sysinfo, &mx6_mmcd_calib, &mem_ddr);
> +}
> +
> +#ifdef CONFIG_FSL_ESDHC
> +
> +#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[] = {
> +	MX6_PAD_SD1_CLK__USDHC1_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL),
> +	MX6_PAD_SD1_CMD__USDHC1_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL),
> +	MX6_PAD_SD1_DATA0__USDHC1_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
> +	MX6_PAD_SD1_DATA1__USDHC1_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
> +	MX6_PAD_SD1_DATA2__USDHC1_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
> +	MX6_PAD_SD1_DATA3__USDHC1_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
> +	MX6_PAD_UART1_RTS_B__USDHC1_CD_B |
> MUX_PAD_CTRL(USDHC_PAD_CTRL),
> +};
> +
> +static struct fsl_esdhc_cfg usdhc_cfg[] = {
> +	{
> +		.esdhc_base = USDHC1_BASE_ADDR,
> +		.max_bus_width = 4,
> +	},
> +};
> +
> +int board_mmc_getcd(struct mmc *mmc)
> +{
> +	return 1;
> +}
> +
> +int board_mmc_init(bd_t *bis)
> +{
> +	imx_iomux_v3_setup_multiple_pads(usdhc1_pads,
> ARRAY_SIZE(usdhc1_pads));
> +	usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK);
> +
> +	return fsl_esdhc_initialize(bis, &usdhc_cfg[0]);
> +}
> +
> +#endif /* CONFIG_FSL_ESDHC */
> +
> +void board_init_f(ulong dummy)
> +{
> +	ccgr_init();
> +
> +	/* Setup AIPS and disable watchdog */
> +	arch_cpu_init();
> +
> +	/* Setup iomux and fec */
> +	board_early_init_f();
> +
> +	/* Setup GP timer */
> +	timer_init();
> +
> +	/* UART clocks enabled and gd valid - init serial console */
> +	preloader_console_init();
> +
> +	/* DDR initialization */
> +	spl_dram_init();
> +}
> diff --git a/configs/phycore_pcl063_defconfig
> b/configs/phycore_pcl063_defconfig
> new file mode 100644
> index 0000000000..02c659de23
> --- /dev/null
> +++ b/configs/phycore_pcl063_defconfig
> @@ -0,0 +1,62 @@
> +CONFIG_ARM=y
> +CONFIG_ARCH_MX6=y
> +CONFIG_SYS_TEXT_BASE=0x87800000
> +CONFIG_SPL_LIBCOMMON_SUPPORT=y
> +CONFIG_SPL_LIBGENERIC_SUPPORT=y
> +CONFIG_TARGET_PCL063=y
> +CONFIG_SPL_MMC_SUPPORT=y
> +CONFIG_SPL_SERIAL_SUPPORT=y
> +CONFIG_SPL=y
> +CONFIG_DISTRO_DEFAULTS=y
> +CONFIG_NR_DRAM_BANKS=8
> +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg"
> +CONFIG_BOOTDELAY=3
> +# CONFIG_USE_BOOTCOMMAND is not set
> +CONFIG_BOARD_EARLY_INIT_F=y
> +CONFIG_SPL_USB_HOST_SUPPORT=y
> +CONFIG_SPL_USB_GADGET_SUPPORT=y
> +CONFIG_SPL_USB_SDP_SUPPORT=y
> +CONFIG_SPL_WATCHDOG_SUPPORT=y
> +CONFIG_CMD_MEMTEST=y
> +CONFIG_CMD_DM=y
> +CONFIG_CMD_GPIO=y
> +CONFIG_CMD_GPT=y
> +# CONFIG_RANDOM_UUID is not set
> +CONFIG_CMD_I2C=y
> +CONFIG_CMD_MMC=y
> +CONFIG_CMD_MTD=y
> +CONFIG_CMD_USB=y
> +CONFIG_CMD_USB_SDP=y
> +CONFIG_CMD_CACHE=y
> +CONFIG_MTDIDS_DEFAULT="nand0=gpmi-nand"
> +CONFIG_MTDPARTS_DEFAULT="gpmi-nand:4m(uboot),1m(env),-(root)"
> +CONFIG_CMD_UBI=y
> +# CONFIG_ISO_PARTITION is not set
> +CONFIG_OF_CONTROL=y
> +CONFIG_DEFAULT_DEVICE_TREE="imx6ul-phycore-segin"
> +CONFIG_DM_I2C_GPIO=y
> +CONFIG_SYS_I2C_MXC=y
> +CONFIG_FSL_ESDHC=y
> +CONFIG_MTD=y
> +CONFIG_NAND=y
> +CONFIG_NAND_MXS=y
> +CONFIG_NAND_MXS_DT=y
> +CONFIG_PHYLIB=y
> +CONFIG_PHY_MICREL=y
> +CONFIG_FEC_MXC=y
> +CONFIG_MII=y
> +CONFIG_PINCTRL=y
> +CONFIG_PINCTRL_IMX6=y
> +CONFIG_DM_PMIC=y
> +# CONFIG_SPL_PMIC_CHILDREN is not set
> +CONFIG_DM_REGULATOR=y
> +CONFIG_DM_REGULATOR_FIXED=y
> +CONFIG_MXC_UART=y
> +CONFIG_USB=y
> +CONFIG_DM_USB=y
> +CONFIG_USB_GADGET=y
> +CONFIG_USB_GADGET_MANUFACTURER="Phytec"
> +CONFIG_USB_GADGET_VENDOR_NUM=0x01b67
> +CONFIG_USB_GADGET_PRODUCT_NUM=0x4fff
> +CONFIG_CI_UDC=y
> +CONFIG_USB_GADGET_DOWNLOAD=y
> diff --git a/include/configs/pcl063.h b/include/configs/pcl063.h
> new file mode 100644
> index 0000000000..4ceab519cb
> --- /dev/null
> +++ b/include/configs/pcl063.h
> @@ -0,0 +1,94 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +/*
> + * Copyright (C) 2018 Collabora Ltd.
> + *
> + * Based on include/configs/xpress.h:
> + * Copyright (C) 2015-2016 Stefan Roese <sr@denx.de>
> + */
> +#ifndef __PCL063_H
> +#define __PCL063_H
> +
> +#include <linux/sizes.h>
> +#include "mx6_common.h"
> +
> +/* SPL options */
> +#include "imx6_spl.h"
> +
> +/*
> + * There is a bug in some i.MX6UL processors that results in the
> initial
> + * portion of OCRAM being unavailable when booting from (at least)
> an SD
> + * card.
> + *
> + * Tweak the SPL text base address to avoid this.
> + */
> +#undef CONFIG_SPL_TEXT_BASE
> +#define CONFIG_SPL_TEXT_BASE            0x00909000
> +
> +/* Size of malloc() pool */
> +#define CONFIG_SYS_MALLOC_LEN		(16 * SZ_1M)
> +
> +/* Console configs */
> +#define CONFIG_MXC_UART_BASE		UART1_BASE
> +
> +/* MMC Configs */
> +#define CONFIG_FSL_USDHC
> +
> +#define CONFIG_SYS_FSL_ESDHC_ADDR	USDHC1_BASE_ADDR
> +
> +/* Miscellaneous configurable options */
> +#define CONFIG_SYS_MEMTEST_START	0x80000000
> +#define CONFIG_SYS_MEMTEST_END		(CONFIG_SYS_MEMTEST_STA
> RT + 0x10000000)
> +
> +#define CONFIG_SYS_LOAD_ADDR		CONFIG_LOADADDR
> +#define CONFIG_SYS_HZ			1000
> +
> +/* Physical Memory Map */
> +#define PHYS_SDRAM			MMDC0_ARB_BASE_ADDR
> +#define PHYS_SDRAM_SIZE			SZ_256M
> +
> +#define CONFIG_SYS_SDRAM_BASE		PHYS_SDRAM
> +#define CONFIG_SYS_INIT_RAM_ADDR	IRAM_BASE_ADDR
> +#define CONFIG_SYS_INIT_RAM_SIZE	IRAM_SIZE
> +
> +#define CONFIG_SYS_INIT_SP_OFFSET \
> +	(CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
> +#define CONFIG_SYS_INIT_SP_ADDR \
> +	(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
> +
> +#define CONFIG_ENV_SIZE			(16 << 10)
> +#define CONFIG_ENV_OFFSET		(512 << 10)
> +
> +/* NAND */
> +#define CONFIG_SYS_MAX_NAND_DEVICE	1
> +#define CONFIG_SYS_NAND_BASE		0x40000000
> +
> +/* USB Configs */
> +#define CONFIG_EHCI_HCD_INIT_AFTER_RESET
> +#define CONFIG_MXC_USB_PORTSC		(PORT_PTS_UTMI |
> PORT_PTS_PTW)
> +#define CONFIG_MXC_USB_FLAGS		0
> +#define CONFIG_USB_MAX_CONTROLLER_COUNT	1
> +
> +#define CONFIG_IMX_THERMAL
> +
> +#define CONFIG_EXTRA_ENV_SETTINGS \
> +	"console=ttymxc0,115200n8\0" \
> +	"mtdids=" CONFIG_MTDIDS_DEFAULT "\0" \
> +	"mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0" \
> +	"fdt_addr_r=0x82000000\0" \
> +	"fdt_high=0xffffffff\0" \
> +	"initrd_high=0xffffffff\0" \
> +	"kernel_addr_r=0x81000000\0" \
> +	"pxefile_addr_r=0x87100000\0" \
> +	"ramdisk_addr_r=0x82100000\0" \
> +	"scriptaddr=0x87000000\0" \
> +	BOOTENV
> +
> +#define BOOT_TARGET_DEVICES(func) \
> +	func(MMC, mmc, 0) \
> +	func(UBIFS, ubifs, 0) \
> +	func(PXE, pxe, na) \
> +	func(DHCP, dhcp, na)
> +
> +#include <config_distro_bootcmd.h>
> +
> +#endif /* __PCL063_H */

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

* [U-Boot] [U-Boot, 1/3] mmc: fsl_esdhc: add compatible for fsl, imx53-esdhc
  2019-01-03  6:54 ` [U-Boot] [PATCH 1/3] mmc: fsl_esdhc: add compatible for fsl, imx53-esdhc linux-kernel-dev at beckhoff.com
@ 2019-01-30  8:57   ` sbabic at denx.de
  0 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  8:57 UTC (permalink / raw)
  To: u-boot

> From: Patrick Bruenn <p.bruenn@beckhoff.com>
> Add compatible "fsl,imx53-esdhc" to keep mmc working on i.MX53 platforms
> with CONFIG_DM_MMC=y
> Signed-off-by: Patrick Bruenn <p.bruenn@beckhoff.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, 1/3] mx7: Do not call lcdif_power_down() in the SPL case
       [not found]           ` <john.weber@technexion.com>
@ 2019-01-30  8:57             ` sbabic at denx.de
  2019-01-30  8:57             ` [U-Boot] [U-Boot,2/3] pico-imx7d: Add LCD support sbabic at denx.de
  1 sibling, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  8:57 UTC (permalink / raw)
  To: u-boot

> From: Fabio Estevam <festevam@gmail.com>
> Like it was done on imx6 in commit 9236269de57d ("imx: mx6: Fix
> implementantion reset_misc")
> Do not call lcdif_power_down() in the SPL case to fix the following
> build error:
>   LD      spl/u-boot-spl
>   MKIMAGE u-boot.img
> arch/arm/mach-imx/built-in.o: In function `reset_misc':
> /home/fabio/ossystems/u-boot/arch/arm/mach-imx/mx7/soc.c:372: undefined reference to `lcdif_power_down'
> scripts/Makefile.spl:375: recipe for target 'spl/u-boot-spl' failed
> Signed-off-by: Fabio Estevam <festevam@gmail.com>
> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
> Signed-off-by: Fabio Estevam <festevam@gmail.com>
> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  imx8: cpu: restrict checking ROM passover info for revA
       [not found] ` <uboot-imx@nxp.com>
@ 2019-01-30  8:57   ` sbabic at denx.de
  2019-01-30  8:57   ` [U-Boot] [U-Boot, V2, 06/10] dts: imx8qxp-mek: introduce u-boot dtsi sbabic at denx.de
                     ` (38 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  8:57 UTC (permalink / raw)
  To: u-boot

> Passover info only for revA.
> move get_cpu_rev out of CONFIG_CPU to avoid build failure when using
> get_cpu_rev in SPL.
> Add a CONFIG_SPL_BUILD for passover usage, no need to execute it again
> in normal U-Boot stage. Also if still checking passover info in normal
> U-Boot stage, need to make the passover code executed after
> arch_cpu_init_dm.
> So to make it easy and clean, only execute the code for SPL stage.
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 11/11] configs: add default configuraiton for Colibri iMX7 with eMMC
       [not found]       ` <max.krummenacher@toradex.com>
       [not found]         ` <Ken.Lin@advantech.com.tw>
@ 2019-01-30  8:57         ` sbabic at denx.de
  2019-01-30  8:57         ` [U-Boot] [U-Boot, v2, 04/11] configs: colibri_imx7: use separate device tree sbabic at denx.de
                           ` (74 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  8:57 UTC (permalink / raw)
  To: u-boot

> From: Stefan Agner <stefan.agner@toradex.com>
> Add a default configuration for Colibri iMX7D 1GB (with eMMC
> NAND flash).
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, V2, 06/10] dts: imx8qxp-mek: introduce u-boot dtsi
       [not found] ` <uboot-imx@nxp.com>
  2019-01-30  8:57   ` [U-Boot] " sbabic at denx.de
@ 2019-01-30  8:57   ` sbabic at denx.de
  2019-01-30  8:57   ` [U-Boot] [U-Boot,V2,08/10] imx: build flash.bin for i.MX8 sbabic at denx.de
                     ` (37 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  8:57 UTC (permalink / raw)
  To: u-boot

> Introduce u-boot dtsi for i.MX8QXP MEK board.
> we do not introduce a common dtsi for SoC, because different board
> has different requirement on which needs to be enabled in SPL DM.
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, 3/3] dm: arm: imx: migrate cx9020 to CONFIG_DM_MMC
       [not found]       ` <fabio.estevam@nxp.com>
       [not found]         ` <richard.hu@technexion.com>
@ 2019-01-30  8:57         ` sbabic at denx.de
  2019-01-30  9:05         ` [U-Boot] ARM: imx: fix: Provide correct enum values for ONENAND/NOR boot recognition sbabic at denx.de
                           ` (9 subsequent siblings)
  11 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  8:57 UTC (permalink / raw)
  To: u-boot

> From: Patrick Bruenn <p.bruenn@beckhoff.com>
> Enable esdhc1/2 device nodes for cx9020 and build with CONFIG_DM_MMC=y
> Signed-off-by: Patrick Bruenn <p.bruenn@beckhoff.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,V2,08/10] imx: build flash.bin for i.MX8
       [not found] ` <uboot-imx@nxp.com>
  2019-01-30  8:57   ` [U-Boot] " sbabic at denx.de
  2019-01-30  8:57   ` [U-Boot] [U-Boot, V2, 06/10] dts: imx8qxp-mek: introduce u-boot dtsi sbabic at denx.de
@ 2019-01-30  8:57   ` sbabic at denx.de
  2019-01-30  8:57   ` [U-Boot] [U-Boot,V2,10/10] imx8qxp: mek: update README sbabic at denx.de
                     ` (36 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  8:57 UTC (permalink / raw)
  To: u-boot

> Build flash.bin for i.MX8 when SPL enabled.
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,V2,10/10] imx8qxp: mek: update README
       [not found] ` <uboot-imx@nxp.com>
                     ` (2 preceding siblings ...)
  2019-01-30  8:57   ` [U-Boot] [U-Boot,V2,08/10] imx: build flash.bin for i.MX8 sbabic at denx.de
@ 2019-01-30  8:57   ` sbabic at denx.de
  2019-01-30  8:57   ` [U-Boot] [U-Boot,V2,09/10] imx8qxp: mek: default enable SPL sbabic at denx.de
                     ` (35 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  8:57 UTC (permalink / raw)
  To: u-boot

> Update README after we switch to use SPL
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,V2,09/10] imx8qxp: mek: default enable SPL
       [not found] ` <uboot-imx@nxp.com>
                     ` (3 preceding siblings ...)
  2019-01-30  8:57   ` [U-Boot] [U-Boot,V2,10/10] imx8qxp: mek: update README sbabic at denx.de
@ 2019-01-30  8:57   ` sbabic at denx.de
  2019-01-30  8:57   ` [U-Boot] [U-Boot,V2,01/10] imx8qxp: add SUPPORT_SPL option sbabic at denx.de
                     ` (34 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  8:57 UTC (permalink / raw)
  To: u-boot

> Enable SPL for i.MX8QXP MEK, and currently use SPL FIT.
> The SPL enable SPL_DM to use MMC/PINCTRL/POWER DOMAIN/CLK.
> Note: SPL FIT could not support secure boot chain, because i.MX8/8X
> only support i.MX container format. This container format has
> not been upstreamed, so we use FIT for now. When SPL container
> supported, we could switch to that.
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 04/11] configs: colibri_imx7: use separate device tree
       [not found]       ` <max.krummenacher@toradex.com>
       [not found]         ` <Ken.Lin@advantech.com.tw>
  2019-01-30  8:57         ` [U-Boot] [U-Boot, v2, 11/11] configs: add default configuraiton for Colibri iMX7 with eMMC sbabic at denx.de
@ 2019-01-30  8:57         ` sbabic at denx.de
  2019-01-30  8:57         ` [U-Boot] [U-Boot, v2, 10/11] configs: colibri_imx7: use distro defaults sbabic at denx.de
                           ` (73 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  8:57 UTC (permalink / raw)
  To: u-boot

> From: Stefan Agner <stefan.agner@toradex.com>
> Use OF_SEPARATE as suggested by the build system.
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,2/3] pico-imx7d: Add LCD support
       [not found]           ` <john.weber@technexion.com>
  2019-01-30  8:57             ` [U-Boot] [U-Boot, 1/3] mx7: Do not call lcdif_power_down() in the SPL case sbabic at denx.de
@ 2019-01-30  8:57             ` sbabic at denx.de
  1 sibling, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  8:57 UTC (permalink / raw)
  To: u-boot

> From: Fabio Estevam <festevam@gmail.com>
> Add support for the VXT VL050-8048NT-C01 panel connected through
> the 24 bit parallel LCDIF interface.
> Signed-off-by: Fabio Estevam <festevam@gmail.com>
> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 10/11] configs: colibri_imx7: use distro defaults
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (2 preceding siblings ...)
  2019-01-30  8:57         ` [U-Boot] [U-Boot, v2, 04/11] configs: colibri_imx7: use separate device tree sbabic at denx.de
@ 2019-01-30  8:57         ` sbabic at denx.de
  2019-01-30  8:57         ` [U-Boot] [U-Boot, v2, 02/11] arm: dts: imx7: colibri: split dt for raw NAND and eMMC devices sbabic at denx.de
                           ` (72 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  8:57 UTC (permalink / raw)
  To: u-boot

> From: Stefan Agner <stefan.agner@toradex.com>
> The defconfig already use most features implied by distro defaults.
> Make sure we enable all features required by distro boot by making
> use of CONFIG_DISTRO_DEFAULTS.
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 02/11] arm: dts: imx7: colibri: split dt for raw NAND and eMMC devices
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (3 preceding siblings ...)
  2019-01-30  8:57         ` [U-Boot] [U-Boot, v2, 10/11] configs: colibri_imx7: use distro defaults sbabic at denx.de
@ 2019-01-30  8:57         ` sbabic at denx.de
  2019-01-30  8:57         ` [U-Boot] [U-Boot, v2, 07/11] colibri_imx7: drop legacy usdhc support sbabic at denx.de
                           ` (71 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  8:57 UTC (permalink / raw)
  To: u-boot

> From: Stefan Agner <stefan.agner@toradex.com>
> In preparation of adding CONFIG_DM_MMC support use separate device
> trees for raw NAND and eMMC devices.
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,V2,01/10] imx8qxp: add SUPPORT_SPL option
       [not found] ` <uboot-imx@nxp.com>
                     ` (4 preceding siblings ...)
  2019-01-30  8:57   ` [U-Boot] [U-Boot,V2,09/10] imx8qxp: mek: default enable SPL sbabic at denx.de
@ 2019-01-30  8:57   ` sbabic at denx.de
  2019-01-30  8:57   ` [U-Boot] [U-Boot,V2,03/10] arm: imx: build mach-imx for i.MX8 sbabic at denx.de
                     ` (33 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  8:57 UTC (permalink / raw)
  To: u-boot

> Enable SUPPORT_SPL option for i.MX8QXP, then we could enable SPL.
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,V2,03/10] arm: imx: build mach-imx for i.MX8
       [not found] ` <uboot-imx@nxp.com>
                     ` (5 preceding siblings ...)
  2019-01-30  8:57   ` [U-Boot] [U-Boot,V2,01/10] imx8qxp: add SUPPORT_SPL option sbabic at denx.de
@ 2019-01-30  8:57   ` sbabic at denx.de
  2019-01-30  9:05   ` [U-Boot] [U-Boot, V2, 07/10] imx: mkimage_fit_atf: introduce BL33_BASE_ADDR sbabic at denx.de
                     ` (32 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  8:57 UTC (permalink / raw)
  To: u-boot

> To enable SPL for i.MX8, we could reuse code in arch/arm/mach-imx.
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,v2,01/11] colibri_imx7: fix boot commands
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (5 preceding siblings ...)
  2019-01-30  8:57         ` [U-Boot] [U-Boot, v2, 07/11] colibri_imx7: drop legacy usdhc support sbabic at denx.de
@ 2019-01-30  8:57         ` sbabic at denx.de
  2019-01-30  9:05         ` [U-Boot] [U-Boot, v2, 03/11] configs: colibri_imx7: enable DM for raw NAND devices sbabic at denx.de
                           ` (69 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  8:57 UTC (permalink / raw)
  To: u-boot

> From: Stefan Agner <stefan.agner@toradex.com>
> Fix mixed up boot commands between raw NAND and eMMC variant. Also
> make sure that the boot_file is defined for the eMMC boot command.
> Fixes: a62c60610f51 ("colibri_imx7_emmc: add Colibri iMX7D 1GB (eMMC) module support")
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 07/11] colibri_imx7: drop legacy usdhc support
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (4 preceding siblings ...)
  2019-01-30  8:57         ` [U-Boot] [U-Boot, v2, 02/11] arm: dts: imx7: colibri: split dt for raw NAND and eMMC devices sbabic at denx.de
@ 2019-01-30  8:57         ` sbabic at denx.de
  2019-01-30  8:57         ` [U-Boot] [U-Boot,v2,01/11] colibri_imx7: fix boot commands sbabic at denx.de
                           ` (70 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  8:57 UTC (permalink / raw)
  To: u-boot

> From: Stefan Agner <stefan.agner@toradex.com>
> Drop legacy pinmux/usdhc board configuration.
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,v4,2/2] imx: Add PHYTEC phyBOARD-i.MX6UL-Segin
       [not found]         ` <marek.vasut+renesas@gmail.com>
@ 2019-01-30  9:05           ` sbabic at denx.de
  2019-03-13  9:29           ` [U-Boot] [U-Boot, v4, 11/22] ARM: DTS: Update pcm052 based dts files (bk4r1/pcm052) sbabic at denx.de
  1 sibling, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  9:05 UTC (permalink / raw)
  To: u-boot

> Port for the PHYTEC phyBOARD-i.MX6UL-Segin single board computer. Based on
> the PHYTEC phyCORE-i.MX6UL SOM (PCL063).
> CPU:   Freescale i.MX6UL rev1.2 528 MHz (running at 396 MHz)
> CPU:   Industrial temperature grade (-40C to 105C) at 44C
> Reset cause: POR
> Board: PHYTEC phyCORE-i.MX6UL
> I2C:   ready
> DRAM:  256 MiB
> NAND:  512 MiB
> MMC:   FSL_SDHC: 0
> In:    serial
> Out:   serial
> Err:   serial
> Net:   FEC0
> Working:
>  - Eth0
>  - i2C
>  - MMC/SD
>  - NAND
>  - UART (1 & 5)
>  - USB (host & otg)
> Signed-off-by: Martyn Welch <martyn.welch@collabora.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,V2,05/10] spl: imx8: add spl boot device
       [not found] ` <uboot-imx@nxp.com>
                     ` (7 preceding siblings ...)
  2019-01-30  9:05   ` [U-Boot] [U-Boot, V2, 07/10] imx: mkimage_fit_atf: introduce BL33_BASE_ADDR sbabic at denx.de
@ 2019-01-30  9:05   ` sbabic at denx.de
  2019-01-30  9:05   ` [U-Boot] [U-Boot,V2,04/10] gpio: introduce CONFIG_SPL_DM_PCA953X sbabic at denx.de
                     ` (30 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  9:05 UTC (permalink / raw)
  To: u-boot

> Add spl_boot_device for i.MX8, also add BOOT_DEVICE_MMC2_2 for
> spl_boot_mode.
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, V2, 07/10] imx: mkimage_fit_atf: introduce BL33_BASE_ADDR
       [not found] ` <uboot-imx@nxp.com>
                     ` (6 preceding siblings ...)
  2019-01-30  8:57   ` [U-Boot] [U-Boot,V2,03/10] arm: imx: build mach-imx for i.MX8 sbabic at denx.de
@ 2019-01-30  9:05   ` sbabic at denx.de
  2019-01-30  9:05   ` [U-Boot] [U-Boot,V2,05/10] spl: imx8: add spl boot device sbabic at denx.de
                     ` (31 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  9:05 UTC (permalink / raw)
  To: u-boot

> Introduce BL33_BASE_ADDR, then we could reuse this script for i.MX8QXP.
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] ARM: imx: fix: Provide correct enum values for ONENAND/NOR boot recognition
       [not found]       ` <fabio.estevam@nxp.com>
       [not found]         ` <richard.hu@technexion.com>
  2019-01-30  8:57         ` [U-Boot] [U-Boot, 3/3] dm: arm: imx: migrate cx9020 to CONFIG_DM_MMC sbabic at denx.de
@ 2019-01-30  9:05         ` sbabic at denx.de
  2019-02-16 10:26         ` [U-Boot] [U-Boot, v1, 3/3] imx: cpu.c: give access to reset cause in spl sbabic at denx.de
                           ` (8 subsequent siblings)
  11 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  9:05 UTC (permalink / raw)
  To: u-boot

> According to "Table 5-1. Boot Device Select" (page 335,
> i.MX 6Dual/6Quad Applications Processor Reference Manual, Rev. 4, 09/2017)
> the BOOT_CFG1[3] have following values (regarding EIM booting):
> 0 - NOR flash and 1 - ONENAND
> This commit provides correct identification of the boot medium for IMX6Q
> boards booting from NOR memory (MCCMON6 is one of them).
> Signed-off-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,V2,04/10] gpio: introduce CONFIG_SPL_DM_PCA953X
       [not found] ` <uboot-imx@nxp.com>
                     ` (8 preceding siblings ...)
  2019-01-30  9:05   ` [U-Boot] [U-Boot,V2,05/10] spl: imx8: add spl boot device sbabic at denx.de
@ 2019-01-30  9:05   ` sbabic at denx.de
  2019-01-30  9:15   ` [U-Boot] [U-Boot,V2,02/10] imx8: scu: use dedicated MU for SPL sbabic at denx.de
                     ` (29 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  9:05 UTC (permalink / raw)
  To: u-boot

> Introduce CONFIG_SPL_DM_PCA953X for SPL usage.
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  [U-Boot, v2, 03/11] configs: colibri_imx7: enable DM for raw NAND devices
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (6 preceding siblings ...)
  2019-01-30  8:57         ` [U-Boot] [U-Boot,v2,01/11] colibri_imx7: fix boot commands sbabic at denx.de
@ 2019-01-30  9:05         ` sbabic at denx.de
  2019-01-30  9:05         ` [U-Boot] [U-Boot,v2,06/11] configs: colibri_imx7: use DM_MMC sbabic at denx.de
                           ` (68 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  9:05 UTC (permalink / raw)
  To: u-boot

> From: Stefan Agner <stefan.agner@toradex.com>
> Use DM and device trees for raw NAND devices by default. This
> fixes -74 NAND read errors since it makes sure the ECC settings
> are the same as used in Linux and our downstream U-Boot.
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, 2/2] imx8mq_evk/README: remove ARCH environment variable
       [not found]     ` <linux-imx@nxp.com>
@ 2019-01-30  9:05       ` sbabic at denx.de
       [not found]       ` <20190130084020.812982D807F@tinkie.tkos.co.il>
                         ` (2 subsequent siblings)
  3 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  9:05 UTC (permalink / raw)
  To: u-boot

> There is no need to set the ARCH variable when building U-Boot. In fact,
> the ARCH name in U-Boot is 'arm'.
> Signed-off-by: Baruch Siach <baruch@tkos.co.il>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,v2,06/11] configs: colibri_imx7: use DM_MMC
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (7 preceding siblings ...)
  2019-01-30  9:05         ` [U-Boot] [U-Boot, v2, 03/11] configs: colibri_imx7: enable DM for raw NAND devices sbabic at denx.de
@ 2019-01-30  9:05         ` sbabic at denx.de
  2019-01-30  9:05         ` [U-Boot] [U-Boot, v2, 09/11] configs: colibri_imx7: use DFU for NAND instead of MMC sbabic at denx.de
                           ` (67 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  9:05 UTC (permalink / raw)
  To: u-boot

> From: Stefan Agner <stefan.agner@toradex.com>
> Now that device tree is in place use DM_MMC for Colibri iMX7
> devices.
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] imx: hab: Convert non-NULL IVT DCD pointer warning to an error
       [not found]         ` <breno.lima@nxp.com>
@ 2019-01-30  9:05           ` sbabic at denx.de
  0 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  9:05 UTC (permalink / raw)
  To: u-boot

> The following NXP application notes and manual recommend to ensure the
> IVT DCD pointer is Null prior to calling HAB API authenticate_image()
> function:
> - AN12263: HABv4 RVT Guidelines and Recommendations
> - AN4581: Secure Boot on i.MX50, i.MX53, i.MX 6 and i.MX7 Series using
>   HABv4
> - CST docs: High Assurance Boot Version 4 Application Programming
>   Interface Reference Manual
> Commit ca89df7dd46f ("imx: hab: Convert DCD non-NULL error to warning")
> converted DCD non-NULL error to warning due to the lack of documentation
> at the time of first patch submission. We have warned U-Boot users since
> v2018.03, and it makes sense now to follow the NXP recommendation to
> ensure the IVT DCD pointer is Null.
> DCD commands should only be present in the initial boot image loaded by
> the SoC ROM. Starting in HAB v4.3.7 the HAB code  will generate an error
> if a DCD pointer is present in an image being authenticated by calling the
> HAB RVT API. Older versions of HAB will process and run DCD if it is
> present, and this could lead to an incorrect authentication boot flow.
> Signed-off-by: Breno Lima <breno.lima@nxp.com>
> Reviewed-by: Fabio Estevam <festevam@gmail.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 05/11] arm: dts: imx7: colibri: add usdhci peripherals to device tree
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (9 preceding siblings ...)
  2019-01-30  9:05         ` [U-Boot] [U-Boot, v2, 09/11] configs: colibri_imx7: use DFU for NAND instead of MMC sbabic at denx.de
@ 2019-01-30  9:05         ` sbabic at denx.de
  2019-01-30  9:05         ` [U-Boot] [U-Boot, v2, 08/11] configs: colibri_imx7: enable CAAM driver sbabic at denx.de
                           ` (65 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  9:05 UTC (permalink / raw)
  To: u-boot

> From: Stefan Agner <stefan.agner@toradex.com>
> Add usdhci peripherals to device tree. This allows to use DM_MMC
> for Colibri iMX7 devices.
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  [U-Boot, v2, 09/11] configs: colibri_imx7: use DFU for NAND instead of MMC
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (8 preceding siblings ...)
  2019-01-30  9:05         ` [U-Boot] [U-Boot,v2,06/11] configs: colibri_imx7: use DM_MMC sbabic at denx.de
@ 2019-01-30  9:05         ` sbabic at denx.de
  2019-01-30  9:05         ` [U-Boot] [U-Boot, v2, 05/11] arm: dts: imx7: colibri: add usdhci peripherals to device tree sbabic at denx.de
                           ` (66 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  9:05 UTC (permalink / raw)
  To: u-boot

> From: Stefan Agner <stefan.agner@toradex.com>
> The colibri_imx7_defconfig is for Colibri iMX7 raw NAND devices.
> Hence DFU for NAND is more useful then for MMC devices.
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 08/11] configs: colibri_imx7: enable CAAM driver
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (10 preceding siblings ...)
  2019-01-30  9:05         ` [U-Boot] [U-Boot, v2, 05/11] arm: dts: imx7: colibri: add usdhci peripherals to device tree sbabic at denx.de
@ 2019-01-30  9:05         ` sbabic at denx.de
  2019-02-16 10:35         ` [U-Boot] [U-Boot, v1, 2/3] imx: serial_mxc: disable ri and dcd irq in dte mode sbabic at denx.de
                           ` (64 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  9:05 UTC (permalink / raw)
  To: u-boot

> From: Stefan Agner <stefan.agner@toradex.com>
> Access to CAAM in non-secure mode must be enabled by the boot
> loader first. The U-Boot CAAM driver enables access to CAAM in
> non-secure mode by default. Hence enable the CAAM driver to
> allow Linux accessing CAAM directly. This prevents error
> messages like the following on Linux boot:
>   caam 30900000.caam: Entropy delay = 3200
>   caam 30900000.caam: failed to acquire DECO 0
>   caam 30900000.caam: failed to instantiate RNG
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,2/3] arm: imx: Add esdhc1/2 nodes to imx53.dtsi
  2019-01-03  6:54 ` [U-Boot] [PATCH 2/3] arm: imx: Add esdhc1/2 nodes to imx53.dtsi linux-kernel-dev at beckhoff.com
@ 2019-01-30  9:15   ` sbabic at denx.de
  0 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  9:15 UTC (permalink / raw)
  To: u-boot

> From: Patrick Bruenn <p.bruenn@beckhoff.com>
> These nodes are required by CX9020 when build with CONFIG_DM_MMC=y
> They are copied from Linux 4.20
> Signed-off-by: Patrick Bruenn <p.bruenn@beckhoff.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  [U-Boot, v4, 1/2] Enable FEC driver to retrieve PHY address from device tree
       [not found] ` <joe.hershberger@ni.com>
@ 2019-01-30  9:15   ` sbabic at denx.de
  0 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  9:15 UTC (permalink / raw)
  To: u-boot

> Currently if we have more than one phy on the MDIO bus, we do not have a
> good mechanism for determining which should be used at runtime. Enable the
> FEC driver to determine the address for the PHY from the device tree.
> Signed-off-by: Martyn Welch <martyn.welch@collabora.com>
> Reviewed-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,V2,02/10] imx8: scu: use dedicated MU for SPL
       [not found] ` <uboot-imx@nxp.com>
                     ` (9 preceding siblings ...)
  2019-01-30  9:05   ` [U-Boot] [U-Boot,V2,04/10] gpio: introduce CONFIG_SPL_DM_PCA953X sbabic at denx.de
@ 2019-01-30  9:15   ` sbabic at denx.de
       [not found]   ` <peng.fan@nxp.com>
                     ` (28 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-01-30  9:15 UTC (permalink / raw)
  To: u-boot

> SPL runs in EL3 mode, except MU0_A, others are not powered on,
> and could not be used. However normal U-Boot use MU1_A, so we
> could not reuse the one in dts. And we could not replace the one
> in dts with MU0_A, because MU0_A is reserved in secure world.
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, 2/2] imx8mq_evk/README: remove ARCH environment variable
       [not found]       ` <20190130084020.812982D807F@tinkie.tkos.co.il>
@ 2019-01-30  9:48         ` Baruch Siach
  2019-01-30 14:33           ` Stefano Babic
  0 siblings, 1 reply; 654+ messages in thread
From: Baruch Siach @ 2019-01-30  9:48 UTC (permalink / raw)
  To: u-boot

Hi Stefano,

On Wed, Jan 30, 2019 at 10:40:19AM +0200, sbabic at denx.de wrote:
> > There is no need to set the ARCH variable when building U-Boot. In fact,
> > the ARCH name in U-Boot is 'arm'.
> > Signed-off-by: Baruch Siach <baruch@tkos.co.il>
> 
> Applied to u-boot-imx, master, thanks !

Thanks.

What about patch #1 in this series? It fixes build failure when /bin/sh is not 
bash.

baruch

-- 
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -

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

* [U-Boot] [U-Boot, 2/2] imx8mq_evk/README: remove ARCH environment variable
  2019-01-30  9:48         ` Baruch Siach
@ 2019-01-30 14:33           ` Stefano Babic
  2019-01-30 15:13             ` Baruch Siach
  0 siblings, 1 reply; 654+ messages in thread
From: Stefano Babic @ 2019-01-30 14:33 UTC (permalink / raw)
  To: u-boot

Hi Baruch,

On 30/01/19 10:48, Baruch Siach wrote:
> Hi Stefano,
> 
> On Wed, Jan 30, 2019 at 10:40:19AM +0200, sbabic at denx.de wrote:
>>> There is no need to set the ARCH variable when building U-Boot. In fact,
>>> the ARCH name in U-Boot is 'arm'.
>>> Signed-off-by: Baruch Siach <baruch@tkos.co.il>
>>
>> Applied to u-boot-imx, master, thanks !
> 
> Thanks.
> 
> What about patch #1 in this series? It fixes build failure when /bin/sh is not 
> bash.
> 

I suffer from the prejudice that a single "=" is always bad in a
comparison.....I am surely influenced from bugs in C/C++ due to a
missing "=" in my experience as developer.

I searched for such as comparison in other parts of build to justify
this patch : I have just found it in "test/fs" (ok, this is not really
part of build) and in ./lib/lzma/import_lzmasdk.sh. I fully agree that
this could be just a problem of mine, and I confess I was already merged
your patch and then removed again..

Apart of this,  it looks like that a single "=" was already avoided in
U-Boot scripts like the pest. Apart of the single entry I found above,
it was avoided..

What about to substitute "=" with an explicit "-eq" ? Like :

	[ $f -eq "spl/u-boot-spl-ddr.bin" ]

Best regards,
Stefano

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, 2/2] imx8mq_evk/README: remove ARCH environment variable
  2019-01-30 14:33           ` Stefano Babic
@ 2019-01-30 15:13             ` Baruch Siach
  2019-01-30 15:30               ` Stefano Babic
  0 siblings, 1 reply; 654+ messages in thread
From: Baruch Siach @ 2019-01-30 15:13 UTC (permalink / raw)
  To: u-boot

Hi Stefano,

On Wed, Jan 30, 2019 at 03:33:21PM +0100, Stefano Babic wrote:
> On 30/01/19 10:48, Baruch Siach wrote:
> > On Wed, Jan 30, 2019 at 10:40:19AM +0200, sbabic at denx.de wrote:
> >>> There is no need to set the ARCH variable when building U-Boot. In fact,
> >>> the ARCH name in U-Boot is 'arm'.
> >>> Signed-off-by: Baruch Siach <baruch@tkos.co.il>
> >>
> >> Applied to u-boot-imx, master, thanks !
> > 
> > Thanks.
> > 
> > What about patch #1 in this series? It fixes build failure when /bin/sh is not 
> > bash.
> 
> I suffer from the prejudice that a single "=" is always bad in a
> comparison.....I am surely influenced from bugs in C/C++ due to a
> missing "=" in my experience as developer.
> 
> I searched for such as comparison in other parts of build to justify
> this patch : I have just found it in "test/fs" (ok, this is not really
> part of build) and in ./lib/lzma/import_lzmasdk.sh. I fully agree that
> this could be just a problem of mine, and I confess I was already merged
> your patch and then removed again..
> 
> Apart of this,  it looks like that a single "=" was already avoided in
> U-Boot scripts like the pest. Apart of the single entry I found above,
> it was avoided..
> 
> What about to substitute "=" with an explicit "-eq" ? Like :
> 
> 	[ $f -eq "spl/u-boot-spl-ddr.bin" ]

The '-eq' operator only accept integers:

$ [ f -eq "spl/u-boot-spl-ddr.bin" ]
bash: test: f: integer expression expected

The alternative is to set the script shebang to /bin/bash. I don't like this 
solution. What do you think?

baruch

-- 
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -

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

* [U-Boot] [U-Boot, 2/2] imx8mq_evk/README: remove ARCH environment variable
  2019-01-30 15:13             ` Baruch Siach
@ 2019-01-30 15:30               ` Stefano Babic
  0 siblings, 0 replies; 654+ messages in thread
From: Stefano Babic @ 2019-01-30 15:30 UTC (permalink / raw)
  To: u-boot

On 30/01/19 16:13, Baruch Siach wrote:
> Hi Stefano,
> 
> On Wed, Jan 30, 2019 at 03:33:21PM +0100, Stefano Babic wrote:
>> On 30/01/19 10:48, Baruch Siach wrote:
>>> On Wed, Jan 30, 2019 at 10:40:19AM +0200, sbabic at denx.de wrote:
>>>>> There is no need to set the ARCH variable when building U-Boot. In fact,
>>>>> the ARCH name in U-Boot is 'arm'.
>>>>> Signed-off-by: Baruch Siach <baruch@tkos.co.il>
>>>>
>>>> Applied to u-boot-imx, master, thanks !
>>>
>>> Thanks.
>>>
>>> What about patch #1 in this series? It fixes build failure when /bin/sh is not 
>>> bash.
>>
>> I suffer from the prejudice that a single "=" is always bad in a
>> comparison.....I am surely influenced from bugs in C/C++ due to a
>> missing "=" in my experience as developer.
>>
>> I searched for such as comparison in other parts of build to justify
>> this patch : I have just found it in "test/fs" (ok, this is not really
>> part of build) and in ./lib/lzma/import_lzmasdk.sh. I fully agree that
>> this could be just a problem of mine, and I confess I was already merged
>> your patch and then removed again..
>>
>> Apart of this,  it looks like that a single "=" was already avoided in
>> U-Boot scripts like the pest. Apart of the single entry I found above,
>> it was avoided..
>>
>> What about to substitute "=" with an explicit "-eq" ? Like :
>>
>> 	[ $f -eq "spl/u-boot-spl-ddr.bin" ]
> 
> The '-eq' operator only accept integers:
> 
> $ [ f -eq "spl/u-boot-spl-ddr.bin" ]
> bash: test: f: integer expression expected
> 
> The alternative is to set the script shebang to /bin/bash. I don't like this 
> solution. What do you think?

Is not possible to change the behavior of the script filtering the
$blobs variable before evaluating ? The check is just for skipping these
two files.

Something like :

 blobs=`awk '/^SIGNED_HDMI/ {print $2} /^LOADER/ {print $2}
/^SECOND_LOADER/ {print $2} /^DDR_FW/ {print $2}' $file` | grep -v
""spl/u-boot-spl-ddr.bin" | ......

It look to me better to put in $blobs just the values that must be
evaluated instead of checking them later. $blobs is not evaluated anymore.

Best regards,
Stefano

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [PATCH v1 0/3] imx: cpu.c, serial_mxc, dts fixes/improvements
@ 2019-02-01 15:04 Marcel Ziswiler
  2019-02-01 15:04 ` [U-Boot] [PATCH v1 1/3] ARM: dts: i.MX6Q, i.MX6QDL: fix address/size-cells warnings Marcel Ziswiler
                   ` (2 more replies)
  0 siblings, 3 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-01 15:04 UTC (permalink / raw)
  To: u-boot


This series addresses some shortcomings concerning reset cause in SPL,
serial in DTE mode and fixes some device-tree address/size-cells
warnings.


Marcel Ziswiler (1):
  ARM: dts: i.MX6Q, i.MX6QDL: fix address/size-cells warnings

Max Krummenacher (2):
  imx: serial_mxc: disable ri and dcd irq in dte mode
  imx: cpu.c: give access to reset cause in spl

 arch/arm/dts/imx6q.dtsi     |  4 ----
 arch/arm/dts/imx6qdl.dtsi   |  9 ---------
 arch/arm/mach-imx/cpu.c     | 27 +++++++++++++++------------
 drivers/serial/serial_mxc.c | 13 +++++++++----
 4 files changed, 24 insertions(+), 29 deletions(-)

-- 
2.20.1

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

* [U-Boot] [PATCH v1 1/3] ARM: dts: i.MX6Q, i.MX6QDL: fix address/size-cells warnings
  2019-02-01 15:04 [U-Boot] [PATCH v1 0/3] imx: cpu.c, serial_mxc, dts fixes/improvements Marcel Ziswiler
@ 2019-02-01 15:04 ` Marcel Ziswiler
       [not found]   ` <trini@konsulko.com>
  2019-02-01 15:04 ` [U-Boot] [PATCH v1 2/3] imx: serial_mxc: disable ri and dcd irq in dte mode Marcel Ziswiler
  2019-02-01 15:04 ` [U-Boot] [PATCH v1 3/3] imx: cpu.c: give access to reset cause in spl Marcel Ziswiler
  2 siblings, 1 reply; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-01 15:04 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

This fixes the following warnings:

arch/arm/dts/imx6-apalis.dtb: Warning (avoid_unnecessary_addr_size):
 /clocks: unnecessary #address-cells/#size-cells without "ranges" or
 child "reg" property
arch/arm/dts/imx6-apalis.dtb: Warning (avoid_unnecessary_addr_size):
 /soc/aips-bus at 02100000/mipi at 021e0000: unnecessary #address-cells/
 #size-cells without "ranges" or child "reg" property
arch/arm/dts/imx6-apalis.dtb: Warning (avoid_unnecessary_addr_size):
 /soc/ipu at 02400000/port at 2: unnecessary #address-cells/#size-cells
 without "ranges" or child "reg" property
arch/arm/dts/imx6-apalis.dtb: Warning (avoid_unnecessary_addr_size):
 /soc/ipu at 02400000/port at 3: unnecessary #address-cells/#size-cells
 without "ranges" or child "reg" property
arch/arm/dts/imx6-apalis.dtb: Warning (avoid_unnecessary_addr_size):
 /soc/ipu at 02800000/port at 2: unnecessary #address-cells/#size-cells
 without "ranges" or child "reg" property
arch/arm/dts/imx6-apalis.dtb: Warning (avoid_unnecessary_addr_size):
 /soc/ipu at 02800000/port at 3: unnecessary #address-cells/#size-cells
 without "ranges" or child "reg" property

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 arch/arm/dts/imx6q.dtsi   | 4 ----
 arch/arm/dts/imx6qdl.dtsi | 9 ---------
 2 files changed, 13 deletions(-)

diff --git a/arch/arm/dts/imx6q.dtsi b/arch/arm/dts/imx6q.dtsi
index c30c8368ca..7f5d91d7f0 100644
--- a/arch/arm/dts/imx6q.dtsi
+++ b/arch/arm/dts/imx6q.dtsi
@@ -150,8 +150,6 @@
 			};
 
 			ipu2_di0: port at 2 {
-				#address-cells = <1>;
-				#size-cells = <0>;
 				reg = <2>;
 
 				ipu2_di0_disp0: disp0-endpoint {
@@ -175,8 +173,6 @@
 			};
 
 			ipu2_di1: port at 3 {
-				#address-cells = <1>;
-				#size-cells = <0>;
 				reg = <3>;
 
 				ipu2_di1_hdmi: hdmi-endpoint {
diff --git a/arch/arm/dts/imx6qdl.dtsi b/arch/arm/dts/imx6qdl.dtsi
index b13b0b2db8..476cf93445 100644
--- a/arch/arm/dts/imx6qdl.dtsi
+++ b/arch/arm/dts/imx6qdl.dtsi
@@ -49,9 +49,6 @@
 	};
 
 	clocks {
-		#address-cells = <1>;
-		#size-cells = <0>;
-
 		ckil {
 			compatible = "fsl,imx-ckil", "fixed-clock";
 			#clock-cells = <0>;
@@ -1125,8 +1122,6 @@
 			};
 
 			mipi_dsi: mipi at 021e0000 {
-				#address-cells = <1>;
-				#size-cells = <0>;
 				reg = <0x021e0000 0x4000>;
 				status = "disabled";
 
@@ -1228,8 +1223,6 @@
 			};
 
 			ipu1_di0: port at 2 {
-				#address-cells = <1>;
-				#size-cells = <0>;
 				reg = <2>;
 
 				ipu1_di0_disp0: disp0-endpoint {
@@ -1253,8 +1246,6 @@
 			};
 
 			ipu1_di1: port at 3 {
-				#address-cells = <1>;
-				#size-cells = <0>;
 				reg = <3>;
 
 				ipu1_di1_disp1: disp1-endpoint {
-- 
2.20.1

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

* [U-Boot] [PATCH v1 2/3] imx: serial_mxc: disable ri and dcd irq in dte mode
  2019-02-01 15:04 [U-Boot] [PATCH v1 0/3] imx: cpu.c, serial_mxc, dts fixes/improvements Marcel Ziswiler
  2019-02-01 15:04 ` [U-Boot] [PATCH v1 1/3] ARM: dts: i.MX6Q, i.MX6QDL: fix address/size-cells warnings Marcel Ziswiler
@ 2019-02-01 15:04 ` Marcel Ziswiler
  2019-02-15 12:26   ` Stefano Babic
  2019-02-01 15:04 ` [U-Boot] [PATCH v1 3/3] imx: cpu.c: give access to reset cause in spl Marcel Ziswiler
  2 siblings, 1 reply; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-01 15:04 UTC (permalink / raw)
  To: u-boot

From: Max Krummenacher <max.krummenacher@toradex.com>

If the UART is used in DTE mode the RI and DCD bits in UCR3 become
irq enable bits. Both are set to enabled after reset and both likely
are pending.

Disable the bits to prevent an interrupt storm when Linux enables
the UART interrupts.

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 drivers/serial/serial_mxc.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/drivers/serial/serial_mxc.c b/drivers/serial/serial_mxc.c
index 7e4e6d36b8..df35ac9114 100644
--- a/drivers/serial/serial_mxc.c
+++ b/drivers/serial/serial_mxc.c
@@ -138,13 +138,18 @@ struct mxc_uart {
 	u32 ts;
 };
 
-static void _mxc_serial_init(struct mxc_uart *base)
+static void _mxc_serial_init(struct mxc_uart *base, int use_dte)
 {
 	writel(0, &base->cr1);
 	writel(0, &base->cr2);
 
 	while (!(readl(&base->cr2) & UCR2_SRST));
 
+	if (use_dte)
+		writel(0x404 | UCR3_ADNIMP, &base->cr3);
+	else
+		writel(0x704 | UCR3_ADNIMP, &base->cr3);
+
 	writel(0x704 | UCR3_ADNIMP, &base->cr3);
 	writel(0x8000, &base->cr4);
 	writel(0x2b, &base->esc);
@@ -226,7 +231,7 @@ static int mxc_serial_tstc(void)
  */
 static int mxc_serial_init(void)
 {
-	_mxc_serial_init(mxc_base);
+	_mxc_serial_init(mxc_base, false);
 
 	serial_setbrg();
 
@@ -271,7 +276,7 @@ static int mxc_serial_probe(struct udevice *dev)
 {
 	struct mxc_serial_platdata *plat = dev->platdata;
 
-	_mxc_serial_init(plat->reg);
+	_mxc_serial_init(plat->reg, plat->use_dte);
 
 	return 0;
 }
@@ -367,7 +372,7 @@ static inline void _debug_uart_init(void)
 {
 	struct mxc_uart *base = (struct mxc_uart *)CONFIG_DEBUG_UART_BASE;
 
-	_mxc_serial_init(base);
+	_mxc_serial_init(base, false);
 	_mxc_serial_setbrg(base, CONFIG_DEBUG_UART_CLOCK,
 			   CONFIG_BAUDRATE, false);
 }
-- 
2.20.1

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

* [U-Boot] [PATCH v1 3/3] imx: cpu.c: give access to reset cause in spl
  2019-02-01 15:04 [U-Boot] [PATCH v1 0/3] imx: cpu.c, serial_mxc, dts fixes/improvements Marcel Ziswiler
  2019-02-01 15:04 ` [U-Boot] [PATCH v1 1/3] ARM: dts: i.MX6Q, i.MX6QDL: fix address/size-cells warnings Marcel Ziswiler
  2019-02-01 15:04 ` [U-Boot] [PATCH v1 2/3] imx: serial_mxc: disable ri and dcd irq in dte mode Marcel Ziswiler
@ 2019-02-01 15:04 ` Marcel Ziswiler
  2 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-01 15:04 UTC (permalink / raw)
  To: u-boot

From: Max Krummenacher <max.krummenacher@toradex.com>

This makes get_imx_reset_cause() accessible in SPL, but keeps the SRSR
register content intact so that U-Boot proper can evaluated the
reset_cause again should this be needed.

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 arch/arm/mach-imx/cpu.c | 27 +++++++++++++++------------
 1 file changed, 15 insertions(+), 12 deletions(-)

diff --git a/arch/arm/mach-imx/cpu.c b/arch/arm/mach-imx/cpu.c
index 80d9ff48a4..6b83f92662 100644
--- a/arch/arm/mach-imx/cpu.c
+++ b/arch/arm/mach-imx/cpu.c
@@ -25,19 +25,27 @@
 #include <fsl_esdhc.h>
 #endif
 
-#if defined(CONFIG_DISPLAY_CPUINFO) && !defined(CONFIG_SPL_BUILD)
 static u32 reset_cause = -1;
 
-static char *get_reset_cause(void)
+u32 get_imx_reset_cause(void)
 {
-	u32 cause;
 	struct src *src_regs = (struct src *)SRC_BASE_ADDR;
 
-	cause = readl(&src_regs->srsr);
-	writel(cause, &src_regs->srsr);
-	reset_cause = cause;
+	if (reset_cause == -1) {
+		reset_cause = readl(&src_regs->srsr);
+/* preserve the value for U-Boot proper */
+#if !defined(CONFIG_SPL_BUILD)
+		writel(reset_cause, &src_regs->srsr);
+#endif
+	}
+
+	return reset_cause;
+}
 
-	switch (cause) {
+#if defined(CONFIG_DISPLAY_CPUINFO) && !defined(CONFIG_SPL_BUILD)
+static char *get_reset_cause(void)
+{
+	switch (get_imx_reset_cause()) {
 	case 0x00001:
 	case 0x00011:
 		return "POR";
@@ -77,11 +85,6 @@ static char *get_reset_cause(void)
 		return "unknown reset";
 	}
 }
-
-u32 get_imx_reset_cause(void)
-{
-	return reset_cause;
-}
 #endif
 
 #if defined(CONFIG_MX53) || defined(CONFIG_MX6)
-- 
2.20.1

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

* [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support
@ 2019-02-01 16:40 Abel Vesa
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 01/20] common: spl_fit: Fix the spl_fit_image_get_os for FIT_IMAGE_TINY Abel Vesa
                   ` (22 more replies)
  0 siblings, 23 replies; 654+ messages in thread
From: Abel Vesa @ 2019-02-01 16:40 UTC (permalink / raw)
  To: u-boot

The third version is here:
https://lists.denx.de/pipermail/u-boot/2019-January/356903.html

So, this time I hope I got it right. Before, I was stupidly trying
to put a fit in another fit without a really good reason. To my
excuse, that was working even with the spl_image->os set to 0,
bug which I (hope) I fixed in the first patch (a new one)
of this series.

Changes since v3:
 * Reduced the SPL size by disabling EXT_SUPPORT, otherwise the
   6qp-sabresd wouldn't boot due to having its dtb last in the fit.
   I forgot to mention in the last version that EFI and DOS SPL support
   also had to be disabled to get the size right.
 * Dropped the fit_spl.its file
 * Dropped the (now) unnecessary updates to the README files. We're
   sticking to the u-boot.img since it's exactly what is needed.
 * Fixed a bug related to FIT_IMAGE_TINY when CONFIG_SPL_OS_BOOT
   is enabled. The short story here is that spl_image->os was
   remaining set to 0. (see first patch in the series for details)


Abel Vesa (20):
  common: spl_fit: Fix the spl_fit_image_get_os for FIT_IMAGE_TINY
  usb: Rename SPL_USB_SUPPORT to SPL_USB_STORAGE
  usb: ehci-mx6: Make regulator DM_REGULATOR dependent
  configs: imx6sabreauto: Add DM_MMC support
  configs: imx6sabreauto: Add DM_USB support
  mmc: fsl_esdhc: Fix DM_REGULATOR ifdefs for SPL builds
  board: mx6sabresd: Add board_fit_config_name_match to support FIT in
    SPL
  board: mx6sabreauto: Add board_fit_config_name_match to support FIT in
    SPL
  arm: dts: Add all the imx6[q|qp|dl] sabre[auto|sd] u-boot dts[i] files
  arm: dts: Update all the dts[i] files for imx6[q|qp|dl] sabre[auto|sd]
  configs: mx6sabreauto: Add SPL FIT and DM support
  configs: mx6sabresd: Add SPL FIT and DM support
  mx6sabreauto: Add DM_GPIO support
  mx6sabresd: Add DM_GPIO support
  configs: mx6sabreauto: Add DM_SPI_FLASH necessary configs
  configs: mx6sabresd: Add DM_SPI_FLASH necessary configs
  board: mx6sabreauto: Remove the non-DM code
  board: mx6sabresd: Remove non-DM code
  board: mx6sabresd: Remove the enet reset gpio handling
  configs: mx6sabresd: Reduce SPL size by disabling DOS, EXT and EFI
    support

 arch/arm/dts/Makefile                       |   8 +-
 arch/arm/dts/imx6dl-sabreauto-u-boot.dtsi   |   6 +
 arch/arm/dts/imx6dl-sabreauto.dts           |  13 +
 arch/arm/dts/imx6dl-sabresd-u-boot.dtsi     |   6 +
 arch/arm/dts/imx6dl-sabresd.dts             |  18 +
 arch/arm/dts/imx6dl.dtsi                    | 306 ++++++++++-
 arch/arm/dts/imx6q-sabreauto-u-boot.dtsi    |   6 +
 arch/arm/dts/imx6q-sabreauto.dts            |  18 +
 arch/arm/dts/imx6q-sabresd-u-boot.dtsi      |   6 +
 arch/arm/dts/imx6q-sabresd.dts              |  23 +
 arch/arm/dts/imx6q.dtsi                     | 310 +++++++++--
 arch/arm/dts/imx6qdl-sabreauto-u-boot.dtsi  |  21 +
 arch/arm/dts/imx6qdl-sabreauto.dtsi         | 810 ++++++++++++++++++++++++++++
 arch/arm/dts/imx6qdl-sabresd-u-boot.dtsi    |  14 +
 arch/arm/dts/imx6qdl-sabresd.dtsi           | 741 +++++++++++++++++++++++++
 arch/arm/dts/imx6qdl-u-boot.dtsi            |   4 +-
 arch/arm/dts/imx6qdl.dtsi                   | 455 +++++++++-------
 arch/arm/dts/imx6qp-sabreauto-u-boot.dtsi   |   6 +
 arch/arm/dts/imx6qp-sabreauto.dts           |  55 ++
 arch/arm/dts/imx6qp-sabresd-u-boot.dtsi     |   6 +
 arch/arm/dts/imx6qp-sabresd.dts             |  55 ++
 arch/arm/dts/imx6qp.dtsi                    | 115 ++++
 arch/arm/include/asm/arch-am33xx/spl.h      |   2 +-
 arch/arm/mach-omap2/boot-common.c           |   2 +-
 board/freescale/mx6sabreauto/mx6sabreauto.c |  91 +---
 board/freescale/mx6sabresd/mx6sabresd.c     |  78 +--
 common/Makefile                             |   5 +-
 common/spl/Kconfig                          |   4 +-
 common/spl/Makefile                         |   2 +-
 common/spl/spl_fit.c                        |   4 -
 common/spl/spl_usb.c                        |   4 -
 configs/am43xx_evm_usbhost_boot_defconfig   |   2 +-
 configs/am43xx_hs_evm_defconfig             |   2 +-
 configs/mx6sabreauto_defconfig              |  20 +-
 configs/mx6sabresd_defconfig                |  26 +-
 drivers/mmc/fsl_esdhc.c                     |   8 +-
 drivers/usb/host/ehci-mx6.c                 |   7 +-
 37 files changed, 2847 insertions(+), 412 deletions(-)
 create mode 100644 arch/arm/dts/imx6dl-sabreauto-u-boot.dtsi
 create mode 100644 arch/arm/dts/imx6dl-sabreauto.dts
 create mode 100644 arch/arm/dts/imx6dl-sabresd-u-boot.dtsi
 create mode 100644 arch/arm/dts/imx6dl-sabresd.dts
 create mode 100644 arch/arm/dts/imx6q-sabreauto-u-boot.dtsi
 create mode 100644 arch/arm/dts/imx6q-sabreauto.dts
 create mode 100644 arch/arm/dts/imx6q-sabresd-u-boot.dtsi
 create mode 100644 arch/arm/dts/imx6q-sabresd.dts
 create mode 100644 arch/arm/dts/imx6qdl-sabreauto-u-boot.dtsi
 create mode 100644 arch/arm/dts/imx6qdl-sabreauto.dtsi
 create mode 100644 arch/arm/dts/imx6qdl-sabresd-u-boot.dtsi
 create mode 100644 arch/arm/dts/imx6qdl-sabresd.dtsi
 create mode 100644 arch/arm/dts/imx6qp-sabreauto-u-boot.dtsi
 create mode 100644 arch/arm/dts/imx6qp-sabreauto.dts
 create mode 100644 arch/arm/dts/imx6qp-sabresd-u-boot.dtsi
 create mode 100644 arch/arm/dts/imx6qp-sabresd.dts
 create mode 100644 arch/arm/dts/imx6qp.dtsi

-- 
2.7.4

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

* [U-Boot] [PATCH v4 01/20] common: spl_fit: Fix the spl_fit_image_get_os for FIT_IMAGE_TINY
  2019-02-01 16:40 [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support Abel Vesa
@ 2019-02-01 16:40 ` Abel Vesa
  2019-02-01 19:01   ` Tom Rini
                     ` (3 more replies)
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 02/20] usb: Rename SPL_USB_SUPPORT to SPL_USB_STORAGE Abel Vesa
                   ` (21 subsequent siblings)
  22 siblings, 4 replies; 654+ messages in thread
From: Abel Vesa @ 2019-02-01 16:40 UTC (permalink / raw)
  To: u-boot

There is not really reducing codesize here since there is only
a call. The function is always built in if CONFIG_$(SPL_TPL_)FIT is set.
Plus, there was a change in behavior if CONFIG_SPL_OS_BOOT is defined.
If CONFIG_FIT_IMAGE_TINY is defined, the spl_fit_image_get_os was
returning -ENOTSUPP and then if CONFIG_SPL_OS_BOOT was also
defined, the spl_image->os was left set to 0 which in turn
was skipping the fdt appending resulting in boot-up failure.

Fixes: 337bbb6297775e spl: fit: add SPL_FIT_IMAGE_TINY config to reduce code-size
Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
---
 common/spl/spl_fit.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/common/spl/spl_fit.c b/common/spl/spl_fit.c
index db43626..a87d02d 100644
--- a/common/spl/spl_fit.c
+++ b/common/spl/spl_fit.c
@@ -333,11 +333,7 @@ static int spl_fit_record_loadable(const void *fit, int images, int index,
 
 static int spl_fit_image_get_os(const void *fit, int noffset, uint8_t *os)
 {
-#if CONFIG_IS_ENABLED(FIT_IMAGE_TINY)
-	return -ENOTSUPP;
-#else
 	return fit_image_get_os(fit, noffset, os);
-#endif
 }
 
 int spl_load_simple_fit(struct spl_image_info *spl_image,
-- 
2.7.4

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

* [U-Boot] [PATCH v4 02/20] usb: Rename SPL_USB_SUPPORT to SPL_USB_STORAGE
  2019-02-01 16:40 [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support Abel Vesa
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 01/20] common: spl_fit: Fix the spl_fit_image_get_os for FIT_IMAGE_TINY Abel Vesa
@ 2019-02-01 16:40 ` Abel Vesa
  2019-02-02  9:40   ` Fabio Estevam
  2019-02-02 21:46   ` Lukasz Majewski
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 03/20] usb: ehci-mx6: Make regulator DM_REGULATOR dependent Abel Vesa
                   ` (20 subsequent siblings)
  22 siblings, 2 replies; 654+ messages in thread
From: Abel Vesa @ 2019-02-01 16:40 UTC (permalink / raw)
  To: u-boot

Since there is the SPL_USB_HOST_SUPPORT for enabling USB support in SPL,
makes more sense to rename the SPL_USB_SUPPORT as SPL_USB_STORAGE.
Everything that is not part of the usb storage support in SPL is now
build under SPL_USB_HOST_SUPPORT.

Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
---
 arch/arm/include/asm/arch-am33xx/spl.h    | 2 +-
 arch/arm/mach-omap2/boot-common.c         | 2 +-
 common/Makefile                           | 5 +++--
 common/spl/Kconfig                        | 4 ++--
 common/spl/Makefile                       | 2 +-
 common/spl/spl_usb.c                      | 4 ----
 configs/am43xx_evm_usbhost_boot_defconfig | 2 +-
 configs/am43xx_hs_evm_defconfig           | 2 +-
 8 files changed, 10 insertions(+), 13 deletions(-)

diff --git a/arch/arm/include/asm/arch-am33xx/spl.h b/arch/arm/include/asm/arch-am33xx/spl.h
index 0bf8c17..f3910c2 100644
--- a/arch/arm/include/asm/arch-am33xx/spl.h
+++ b/arch/arm/include/asm/arch-am33xx/spl.h
@@ -62,7 +62,7 @@
 #define BOOT_DEVICE_CPGMAC	0x47
 
 #define MMC_BOOT_DEVICES_START	BOOT_DEVICE_MMC1
-#ifdef CONFIG_SPL_USB_SUPPORT
+#ifdef CONFIG_SPL_USB_STORAGE
 #define MMC_BOOT_DEVICES_END	BOOT_DEVICE_USB
 #else
 #define MMC_BOOT_DEVICES_END	BOOT_DEVICE_MMC2
diff --git a/arch/arm/mach-omap2/boot-common.c b/arch/arm/mach-omap2/boot-common.c
index 2db1922..c8b8ac6 100644
--- a/arch/arm/mach-omap2/boot-common.c
+++ b/arch/arm/mach-omap2/boot-common.c
@@ -93,7 +93,7 @@ void save_omap_boot_params(void)
 			sys_boot_device = 1;
 			break;
 #endif
-#if defined(BOOT_DEVICE_USB) && !defined(CONFIG_SPL_USB_SUPPORT)
+#if defined(BOOT_DEVICE_USB) && !defined(CONFIG_SPL_USB_STORAGE)
 		case BOOT_DEVICE_USB:
 			sys_boot_device = 1;
 			break;
diff --git a/common/Makefile b/common/Makefile
index ad390d0..8c92feb 100644
--- a/common/Makefile
+++ b/common/Makefile
@@ -75,8 +75,9 @@ obj-$(CONFIG_SPL_NET_SUPPORT) += miiphyutil.o
 obj-$(CONFIG_$(SPL_TPL_)OF_LIBFDT) += fdt_support.o
 
 ifdef CONFIG_SPL_USB_HOST_SUPPORT
-obj-$(CONFIG_SPL_USB_SUPPORT) += usb.o usb_hub.o
-obj-$(CONFIG_USB_STORAGE) += usb_storage.o
+obj-y += usb.o
+obj-y += usb_hub.o
+obj-$(CONFIG_SPL_USB_STORAGE) += usb_storage.o
 else
 obj-$(CONFIG_USB_MUSB_HOST) += usb.o
 endif
diff --git a/common/spl/Kconfig b/common/spl/Kconfig
index 54b0dc3..8b0627e 100644
--- a/common/spl/Kconfig
+++ b/common/spl/Kconfig
@@ -766,9 +766,9 @@ config SPL_USB_HOST_SUPPORT
 	  device can be attached. This option enables the drivers in
 	  drivers/usb/host as part of an SPL build.
 
-config SPL_USB_SUPPORT
+config SPL_USB_STORAGE
 	bool "Support loading from USB"
-	depends on SPL_USB_HOST_SUPPORT
+	depends on SPL_USB_HOST_SUPPORT && !(BLK && !DM_USB)
 	help
 	  Enable support for USB devices in SPL. This allows use of USB
 	  devices such as hard drives and flash drivers for loading U-Boot.
diff --git a/common/spl/Makefile b/common/spl/Makefile
index 6f8d759..a3980ce 100644
--- a/common/spl/Makefile
+++ b/common/spl/Makefile
@@ -22,7 +22,7 @@ obj-$(CONFIG_$(SPL_TPL_)NET_SUPPORT) += spl_net.o
 obj-$(CONFIG_$(SPL_TPL_)MMC_SUPPORT) += spl_mmc.o
 obj-$(CONFIG_$(SPL_TPL_)ATF) += spl_atf.o
 obj-$(CONFIG_$(SPL_TPL_)OPTEE) += spl_optee.o
-obj-$(CONFIG_$(SPL_TPL_)USB_SUPPORT) += spl_usb.o
+obj-$(CONFIG_$(SPL_TPL_)USB_STORAGE) += spl_usb.o
 obj-$(CONFIG_$(SPL_TPL_)FAT_SUPPORT) += spl_fat.o
 obj-$(CONFIG_$(SPL_TPL_)EXT_SUPPORT) += spl_ext.o
 obj-$(CONFIG_$(SPL_TPL_)SATA_SUPPORT) += spl_sata.o
diff --git a/common/spl/spl_usb.c b/common/spl/spl_usb.c
index c8d8231..e29d579 100644
--- a/common/spl/spl_usb.c
+++ b/common/spl/spl_usb.c
@@ -15,9 +15,7 @@
 #include <usb.h>
 #include <fat.h>
 
-#ifdef CONFIG_USB_STORAGE
 static int usb_stor_curr_dev = -1; /* current device */
-#endif
 
 static int spl_usb_load_image(struct spl_image_info *spl_image,
 			      struct spl_boot_device *bootdev)
@@ -34,13 +32,11 @@ static int spl_usb_load_image(struct spl_image_info *spl_image,
 		return err;
 	}
 
-#ifdef CONFIG_USB_STORAGE
 	/* try to recognize storage devices immediately */
 	usb_stor_curr_dev = usb_stor_scan(1);
 	stor_dev = blk_get_devnum_by_type(IF_TYPE_USB, usb_stor_curr_dev);
 	if (!stor_dev)
 		return -ENODEV;
-#endif
 
 	debug("boot mode - FAT\n");
 
diff --git a/configs/am43xx_evm_usbhost_boot_defconfig b/configs/am43xx_evm_usbhost_boot_defconfig
index 5131f19..5bd919b 100644
--- a/configs/am43xx_evm_usbhost_boot_defconfig
+++ b/configs/am43xx_evm_usbhost_boot_defconfig
@@ -14,7 +14,7 @@ CONFIG_VERSION_VARIABLE=y
 CONFIG_SPL_MTD_SUPPORT=y
 CONFIG_SPL_OS_BOOT=y
 CONFIG_SPL_USB_HOST_SUPPORT=y
-CONFIG_SPL_USB_SUPPORT=y
+CONFIG_SPL_USB_STORAGE=y
 CONFIG_CMD_SPL=y
 CONFIG_CMD_SPL_NAND_OFS=0x00100000
 CONFIG_CMD_SPL_WRITE_SIZE=0x40000
diff --git a/configs/am43xx_hs_evm_defconfig b/configs/am43xx_hs_evm_defconfig
index 99e4ccb..c01fda9 100644
--- a/configs/am43xx_hs_evm_defconfig
+++ b/configs/am43xx_hs_evm_defconfig
@@ -24,7 +24,7 @@ CONFIG_SPL_MTD_SUPPORT=y
 CONFIG_SPL_NET_SUPPORT=y
 CONFIG_SPL_NET_VCI_STRING="AM43xx U-Boot SPL"
 CONFIG_SPL_USB_HOST_SUPPORT=y
-CONFIG_SPL_USB_SUPPORT=y
+CONFIG_SPL_USB_STORAGE=y
 CONFIG_SPL_USB_GADGET=y
 CONFIG_SPL_USB_ETHER=y
 # CONFIG_CMD_FLASH is not set
-- 
2.7.4

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

* [U-Boot] [PATCH v4 03/20] usb: ehci-mx6: Make regulator DM_REGULATOR dependent
  2019-02-01 16:40 [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support Abel Vesa
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 01/20] common: spl_fit: Fix the spl_fit_image_get_os for FIT_IMAGE_TINY Abel Vesa
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 02/20] usb: Rename SPL_USB_SUPPORT to SPL_USB_STORAGE Abel Vesa
@ 2019-02-01 16:40 ` Abel Vesa
  2019-02-02  9:41   ` Fabio Estevam
  2019-02-02 21:47   ` Lukasz Majewski
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 04/20] configs: imx6sabreauto: Add DM_MMC support Abel Vesa
                   ` (19 subsequent siblings)
  22 siblings, 2 replies; 654+ messages in thread
From: Abel Vesa @ 2019-02-01 16:40 UTC (permalink / raw)
  To: u-boot

Do the regulator related work only if the build has the DM_REGULATOR.

Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
---
 drivers/usb/host/ehci-mx6.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/host/ehci-mx6.c b/drivers/usb/host/ehci-mx6.c
index 1acf08d..9483947 100644
--- a/drivers/usb/host/ehci-mx6.c
+++ b/drivers/usb/host/ehci-mx6.c
@@ -404,6 +404,7 @@ static int mx6_init_after_reset(struct ehci_ctrl *dev)
 	if (ret)
 		return ret;
 
+#if CONFIG_IS_ENABLED(DM_REGULATOR)
 	if (priv->vbus_supply) {
 		ret = regulator_set_enable(priv->vbus_supply,
 					   (type == USB_INIT_DEVICE) ?
@@ -413,6 +414,7 @@ static int mx6_init_after_reset(struct ehci_ctrl *dev)
 			return ret;
 		}
 	}
+#endif
 
 	if (type == USB_INIT_DEVICE)
 		return 0;
@@ -514,15 +516,17 @@ static int ehci_usb_probe(struct udevice *dev)
 	priv->portnr = dev->seq;
 	priv->init_type = type;
 
+#if CONFIG_IS_ENABLED(DM_REGULATOR)
 	ret = device_get_supply_regulator(dev, "vbus-supply",
 					  &priv->vbus_supply);
 	if (ret)
 		debug("%s: No vbus supply\n", dev->name);
-
+#endif
 	ret = ehci_mx6_common_init(ehci, priv->portnr);
 	if (ret)
 		return ret;
 
+#if CONFIG_IS_ENABLED(DM_REGULATOR)
 	if (priv->vbus_supply) {
 		ret = regulator_set_enable(priv->vbus_supply,
 					   (type == USB_INIT_DEVICE) ?
@@ -532,6 +536,7 @@ static int ehci_usb_probe(struct udevice *dev)
 			return ret;
 		}
 	}
+#endif
 
 	if (priv->init_type == USB_INIT_HOST) {
 		setbits_le32(&ehci->usbmode, CM_HOST);
-- 
2.7.4

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

* [U-Boot] [PATCH v4 04/20] configs: imx6sabreauto: Add DM_MMC support
  2019-02-01 16:40 [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support Abel Vesa
                   ` (2 preceding siblings ...)
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 03/20] usb: ehci-mx6: Make regulator DM_REGULATOR dependent Abel Vesa
@ 2019-02-01 16:40 ` Abel Vesa
  2019-02-02  9:41   ` Fabio Estevam
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 05/20] configs: imx6sabreauto: Add DM_USB support Abel Vesa
                   ` (18 subsequent siblings)
  22 siblings, 1 reply; 654+ messages in thread
From: Abel Vesa @ 2019-02-01 16:40 UTC (permalink / raw)
  To: u-boot

Add DM_MMC config to imx6sabreauto defconfig.

Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
---
 configs/mx6sabreauto_defconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/configs/mx6sabreauto_defconfig b/configs/mx6sabreauto_defconfig
index 40386c2..a3d63a2 100644
--- a/configs/mx6sabreauto_defconfig
+++ b/configs/mx6sabreauto_defconfig
@@ -44,6 +44,7 @@ CONFIG_ENV_IS_IN_MMC=y
 CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
 CONFIG_DFU_MMC=y
 CONFIG_DFU_SF=y
+CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_NAND=y
 CONFIG_NAND_MXS=y
-- 
2.7.4

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

* [U-Boot] [PATCH v4 05/20] configs: imx6sabreauto: Add DM_USB support
  2019-02-01 16:40 [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support Abel Vesa
                   ` (3 preceding siblings ...)
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 04/20] configs: imx6sabreauto: Add DM_MMC support Abel Vesa
@ 2019-02-01 16:40 ` Abel Vesa
  2019-02-02  9:42   ` Fabio Estevam
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 06/20] mmc: fsl_esdhc: Fix DM_REGULATOR ifdefs for SPL builds Abel Vesa
                   ` (17 subsequent siblings)
  22 siblings, 1 reply; 654+ messages in thread
From: Abel Vesa @ 2019-02-01 16:40 UTC (permalink / raw)
  To: u-boot

Add the DM support for USB. For that, DM_REGULATOR is needed.

Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
---
 configs/mx6sabreauto_defconfig | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/configs/mx6sabreauto_defconfig b/configs/mx6sabreauto_defconfig
index a3d63a2..4bdcbb1 100644
--- a/configs/mx6sabreauto_defconfig
+++ b/configs/mx6sabreauto_defconfig
@@ -52,9 +52,11 @@ CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_MII=y
+CONFIG_DM_REGULATOR=y
 CONFIG_SPI=y
 CONFIG_MXC_SPI=y
 CONFIG_USB=y
+CONFIG_DM_USB=y
 CONFIG_USB_STORAGE=y
 CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_MANUFACTURER="FSL"
-- 
2.7.4

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

* [U-Boot] [PATCH v4 06/20] mmc: fsl_esdhc: Fix DM_REGULATOR ifdefs for SPL builds
  2019-02-01 16:40 [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support Abel Vesa
                   ` (4 preceding siblings ...)
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 05/20] configs: imx6sabreauto: Add DM_USB support Abel Vesa
@ 2019-02-01 16:40 ` Abel Vesa
  2019-02-02  9:42   ` Fabio Estevam
  2019-02-02 21:48   ` Lukasz Majewski
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 07/20] board: mx6sabresd: Add board_fit_config_name_match to support FIT in SPL Abel Vesa
                   ` (16 subsequent siblings)
  22 siblings, 2 replies; 654+ messages in thread
From: Abel Vesa @ 2019-02-01 16:40 UTC (permalink / raw)
  To: u-boot

Since the fsl_esdhc will also be used by SPL, make the
preprocessor switches more generic to allow any kind of build.

Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
---
 drivers/mmc/fsl_esdhc.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c
index 21fa2ab..9e34557 100644
--- a/drivers/mmc/fsl_esdhc.c
+++ b/drivers/mmc/fsl_esdhc.c
@@ -804,7 +804,7 @@ static int esdhc_set_voltage(struct mmc *mmc)
 	case MMC_SIGNAL_VOLTAGE_330:
 		if (priv->vs18_enable)
 			return -EIO;
-#ifdef CONFIG_DM_REGULATOR
+#if CONFIG_IS_ENABLED(DM_REGULATOR)
 		if (!IS_ERR_OR_NULL(priv->vqmmc_dev)) {
 			ret = regulator_set_value(priv->vqmmc_dev, 3300000);
 			if (ret) {
@@ -823,7 +823,7 @@ static int esdhc_set_voltage(struct mmc *mmc)
 
 		return -EAGAIN;
 	case MMC_SIGNAL_VOLTAGE_180:
-#ifdef CONFIG_DM_REGULATOR
+#if CONFIG_IS_ENABLED(DM_REGULATOR)
 		if (!IS_ERR_OR_NULL(priv->vqmmc_dev)) {
 			ret = regulator_set_value(priv->vqmmc_dev, 1800000);
 			if (ret) {
@@ -1442,7 +1442,7 @@ static int fsl_esdhc_probe(struct udevice *dev)
 	int node = dev_of_offset(dev);
 	struct esdhc_soc_data *data =
 		(struct esdhc_soc_data *)dev_get_driver_data(dev);
-#ifdef CONFIG_DM_REGULATOR
+#if CONFIG_IS_ENABLED(DM_REGULATOR)
 	struct udevice *vqmmc_dev;
 #endif
 	fdt_addr_t addr;
@@ -1500,7 +1500,7 @@ static int fsl_esdhc_probe(struct udevice *dev)
 
 	priv->vs18_enable = 0;
 
-#ifdef CONFIG_DM_REGULATOR
+#if CONFIG_IS_ENABLED(DM_REGULATOR)
 	/*
 	 * If emmc I/O has a fixed voltage at 1.8V, this must be provided,
 	 * otherwise, emmc will work abnormally.
-- 
2.7.4

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

* [U-Boot] [PATCH v4 07/20] board: mx6sabresd: Add board_fit_config_name_match to support FIT in SPL
  2019-02-01 16:40 [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support Abel Vesa
                   ` (5 preceding siblings ...)
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 06/20] mmc: fsl_esdhc: Fix DM_REGULATOR ifdefs for SPL builds Abel Vesa
@ 2019-02-01 16:40 ` Abel Vesa
  2019-02-02  9:43   ` Fabio Estevam
  2019-02-02 21:48   ` Lukasz Majewski
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 08/20] board: mx6sabreauto: " Abel Vesa
                   ` (15 subsequent siblings)
  22 siblings, 2 replies; 654+ messages in thread
From: Abel Vesa @ 2019-02-01 16:40 UTC (permalink / raw)
  To: u-boot

This matches one of the following three boards (or fails):
 - imx6q-sabresd
 - imx6qp-sabresd
 - imx6dl-sabresd

Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
---
 board/freescale/mx6sabresd/mx6sabresd.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/board/freescale/mx6sabresd/mx6sabresd.c b/board/freescale/mx6sabresd/mx6sabresd.c
index 0183ede..4688095 100644
--- a/board/freescale/mx6sabresd/mx6sabresd.c
+++ b/board/freescale/mx6sabresd/mx6sabresd.c
@@ -1062,3 +1062,21 @@ void board_init_f(ulong dummy)
 	board_init_r(NULL, 0);
 }
 #endif
+
+#ifdef CONFIG_SPL_LOAD_FIT
+int board_fit_config_name_match(const char *name)
+{
+	if (is_mx6dq()) {
+		if (!strcmp(name, "imx6q-sabresd"))
+			return 0;
+	} else if (is_mx6dqp()) {
+		if (!strcmp(name, "imx6qp-sabresd"))
+			return 0;
+	} else if (is_mx6dl()) {
+		if (!strcmp(name, "imx6dl-sabresd"))
+			return 0;
+	}
+
+	return -1;
+}
+#endif
-- 
2.7.4

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

* [U-Boot] [PATCH v4 08/20] board: mx6sabreauto: Add board_fit_config_name_match to support FIT in SPL
  2019-02-01 16:40 [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support Abel Vesa
                   ` (6 preceding siblings ...)
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 07/20] board: mx6sabresd: Add board_fit_config_name_match to support FIT in SPL Abel Vesa
@ 2019-02-01 16:40 ` Abel Vesa
  2019-02-02  9:43   ` Fabio Estevam
  2019-02-02 21:49   ` Lukasz Majewski
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 09/20] arm: dts: Add all the imx6[q|qp|dl] sabre[auto|sd] u-boot dts[i] files Abel Vesa
                   ` (14 subsequent siblings)
  22 siblings, 2 replies; 654+ messages in thread
From: Abel Vesa @ 2019-02-01 16:40 UTC (permalink / raw)
  To: u-boot

This matches one of the following three boards (or fails):
 - imx6q-sabreauto
 - imx6qp-sabreauto
 - imx6dl-sabreauto

Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
---
 board/freescale/mx6sabreauto/mx6sabreauto.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/board/freescale/mx6sabreauto/mx6sabreauto.c b/board/freescale/mx6sabreauto/mx6sabreauto.c
index c1bef85..c8f1263 100644
--- a/board/freescale/mx6sabreauto/mx6sabreauto.c
+++ b/board/freescale/mx6sabreauto/mx6sabreauto.c
@@ -1097,3 +1097,21 @@ void board_init_f(ulong dummy)
 	board_init_r(NULL, 0);
 }
 #endif
+
+#ifdef CONFIG_SPL_LOAD_FIT
+int board_fit_config_name_match(const char *name)
+{
+	if (is_mx6dq()) {
+		if (!strcmp(name, "imx6q-sabreauto"))
+			return 0;
+	} else if (is_mx6dqp()) {
+		if (!strcmp(name, "imx6qp-sabreauto"))
+			return 0;
+	} else if (is_mx6dl()) {
+		if (!strcmp(name, "imx6dl-sabreauto"))
+			return 0;
+	}
+
+	return -1;
+}
+#endif
-- 
2.7.4

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

* [U-Boot] [PATCH v4 09/20] arm: dts: Add all the imx6[q|qp|dl] sabre[auto|sd] u-boot dts[i] files
  2019-02-01 16:40 [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support Abel Vesa
                   ` (7 preceding siblings ...)
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 08/20] board: mx6sabreauto: " Abel Vesa
@ 2019-02-01 16:40 ` Abel Vesa
  2019-02-02  9:44   ` Fabio Estevam
  2019-02-02 21:50   ` Lukasz Majewski
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 10/20] arm: dts: Update all the dts[i] files for imx6[q|qp|dl] sabre[auto|sd] Abel Vesa
                   ` (13 subsequent siblings)
  22 siblings, 2 replies; 654+ messages in thread
From: Abel Vesa @ 2019-02-01 16:40 UTC (permalink / raw)
  To: u-boot

This allows us to keep the basic dts[i] files up-to-date with
the ones in kernel, but at the same time allowing the u-boot
to add its own properties to the existing nodes.

Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
---
 arch/arm/dts/imx6dl-sabreauto-u-boot.dtsi  |  6 ++++++
 arch/arm/dts/imx6dl-sabresd-u-boot.dtsi    |  6 ++++++
 arch/arm/dts/imx6q-sabreauto-u-boot.dtsi   |  6 ++++++
 arch/arm/dts/imx6q-sabresd-u-boot.dtsi     |  6 ++++++
 arch/arm/dts/imx6qdl-sabreauto-u-boot.dtsi | 21 +++++++++++++++++++++
 arch/arm/dts/imx6qdl-sabresd-u-boot.dtsi   | 14 ++++++++++++++
 arch/arm/dts/imx6qdl-u-boot.dtsi           |  4 ++--
 arch/arm/dts/imx6qp-sabreauto-u-boot.dtsi  |  6 ++++++
 arch/arm/dts/imx6qp-sabresd-u-boot.dtsi    |  6 ++++++
 9 files changed, 73 insertions(+), 2 deletions(-)
 create mode 100644 arch/arm/dts/imx6dl-sabreauto-u-boot.dtsi
 create mode 100644 arch/arm/dts/imx6dl-sabresd-u-boot.dtsi
 create mode 100644 arch/arm/dts/imx6q-sabreauto-u-boot.dtsi
 create mode 100644 arch/arm/dts/imx6q-sabresd-u-boot.dtsi
 create mode 100644 arch/arm/dts/imx6qdl-sabreauto-u-boot.dtsi
 create mode 100644 arch/arm/dts/imx6qdl-sabresd-u-boot.dtsi
 create mode 100644 arch/arm/dts/imx6qp-sabreauto-u-boot.dtsi
 create mode 100644 arch/arm/dts/imx6qp-sabresd-u-boot.dtsi

diff --git a/arch/arm/dts/imx6dl-sabreauto-u-boot.dtsi b/arch/arm/dts/imx6dl-sabreauto-u-boot.dtsi
new file mode 100644
index 0000000..d75fcc1
--- /dev/null
+++ b/arch/arm/dts/imx6dl-sabreauto-u-boot.dtsi
@@ -0,0 +1,6 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2019 NXP
+ */
+
+#include "imx6qdl-sabreauto-u-boot.dtsi"
diff --git a/arch/arm/dts/imx6dl-sabresd-u-boot.dtsi b/arch/arm/dts/imx6dl-sabresd-u-boot.dtsi
new file mode 100644
index 0000000..e4d7d28
--- /dev/null
+++ b/arch/arm/dts/imx6dl-sabresd-u-boot.dtsi
@@ -0,0 +1,6 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2019 NXP
+ */
+
+#include "imx6qdl-sabresd-u-boot.dtsi"
diff --git a/arch/arm/dts/imx6q-sabreauto-u-boot.dtsi b/arch/arm/dts/imx6q-sabreauto-u-boot.dtsi
new file mode 100644
index 0000000..d75fcc1
--- /dev/null
+++ b/arch/arm/dts/imx6q-sabreauto-u-boot.dtsi
@@ -0,0 +1,6 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2019 NXP
+ */
+
+#include "imx6qdl-sabreauto-u-boot.dtsi"
diff --git a/arch/arm/dts/imx6q-sabresd-u-boot.dtsi b/arch/arm/dts/imx6q-sabresd-u-boot.dtsi
new file mode 100644
index 0000000..e4d7d28
--- /dev/null
+++ b/arch/arm/dts/imx6q-sabresd-u-boot.dtsi
@@ -0,0 +1,6 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2019 NXP
+ */
+
+#include "imx6qdl-sabresd-u-boot.dtsi"
diff --git a/arch/arm/dts/imx6qdl-sabreauto-u-boot.dtsi b/arch/arm/dts/imx6qdl-sabreauto-u-boot.dtsi
new file mode 100644
index 0000000..ea90f40
--- /dev/null
+++ b/arch/arm/dts/imx6qdl-sabreauto-u-boot.dtsi
@@ -0,0 +1,21 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2019 NXP
+ */
+
+#include "imx6qdl-u-boot.dtsi"
+
+/ {
+	aliases {
+		mmc0 = &usdhc3;
+	};
+};
+
+&usdhc3 {
+	no-1-8-v;
+	u-boot,dm-spl;
+};
+
+&pinctrl_usdhc3 {
+	u-boot,dm-spl;
+};
diff --git a/arch/arm/dts/imx6qdl-sabresd-u-boot.dtsi b/arch/arm/dts/imx6qdl-sabresd-u-boot.dtsi
new file mode 100644
index 0000000..45f02b1
--- /dev/null
+++ b/arch/arm/dts/imx6qdl-sabresd-u-boot.dtsi
@@ -0,0 +1,14 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2019 NXP
+ */
+
+#include "imx6qdl-u-boot.dtsi"
+
+&usdhc3 {
+	u-boot,dm-spl;
+};
+
+&pinctrl_usdhc3 {
+	u-boot,dm-spl;
+};
diff --git a/arch/arm/dts/imx6qdl-u-boot.dtsi b/arch/arm/dts/imx6qdl-u-boot.dtsi
index dffc21b..45ae2fa 100644
--- a/arch/arm/dts/imx6qdl-u-boot.dtsi
+++ b/arch/arm/dts/imx6qdl-u-boot.dtsi
@@ -7,11 +7,11 @@
 	soc {
 		u-boot,dm-spl;
 
-		aips-bus at 02000000 {
+		aips-bus at 2000000 {
 			u-boot,dm-spl;
 		};
 
-		aips-bus at 02100000 {
+		aips-bus at 2100000 {
 			u-boot,dm-spl;
 		};
 	};
diff --git a/arch/arm/dts/imx6qp-sabreauto-u-boot.dtsi b/arch/arm/dts/imx6qp-sabreauto-u-boot.dtsi
new file mode 100644
index 0000000..d75fcc1
--- /dev/null
+++ b/arch/arm/dts/imx6qp-sabreauto-u-boot.dtsi
@@ -0,0 +1,6 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2019 NXP
+ */
+
+#include "imx6qdl-sabreauto-u-boot.dtsi"
diff --git a/arch/arm/dts/imx6qp-sabresd-u-boot.dtsi b/arch/arm/dts/imx6qp-sabresd-u-boot.dtsi
new file mode 100644
index 0000000..e4d7d28
--- /dev/null
+++ b/arch/arm/dts/imx6qp-sabresd-u-boot.dtsi
@@ -0,0 +1,6 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2019 NXP
+ */
+
+#include "imx6qdl-sabresd-u-boot.dtsi"
-- 
2.7.4

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

* [U-Boot] [PATCH v4 10/20] arm: dts: Update all the dts[i] files for imx6[q|qp|dl] sabre[auto|sd]
  2019-02-01 16:40 [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support Abel Vesa
                   ` (8 preceding siblings ...)
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 09/20] arm: dts: Add all the imx6[q|qp|dl] sabre[auto|sd] u-boot dts[i] files Abel Vesa
@ 2019-02-01 16:40 ` Abel Vesa
  2019-02-02  9:45   ` Fabio Estevam
  2019-02-02 21:50   ` Lukasz Majewski
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 11/20] configs: mx6sabreauto: Add SPL FIT and DM support Abel Vesa
                   ` (12 subsequent siblings)
  22 siblings, 2 replies; 654+ messages in thread
From: Abel Vesa @ 2019-02-01 16:40 UTC (permalink / raw)
  To: u-boot

Update all the dts[i] files for imx6[q|qp|dl] sabre[auto|sd] to the ones
from kernel v4.20 (commit 8fe28cb58bcb2).

Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
Acked-by: Peng Fan <peng.fan@nxp.com>
---
 arch/arm/dts/Makefile               |   8 +-
 arch/arm/dts/imx6dl-sabreauto.dts   |  13 +
 arch/arm/dts/imx6dl-sabresd.dts     |  18 +
 arch/arm/dts/imx6dl.dtsi            | 306 ++++++++++++--
 arch/arm/dts/imx6q-sabreauto.dts    |  18 +
 arch/arm/dts/imx6q-sabresd.dts      |  23 +
 arch/arm/dts/imx6q.dtsi             | 310 ++++++++++++--
 arch/arm/dts/imx6qdl-sabreauto.dtsi | 810 ++++++++++++++++++++++++++++++++++++
 arch/arm/dts/imx6qdl-sabresd.dtsi   | 741 +++++++++++++++++++++++++++++++++
 arch/arm/dts/imx6qdl.dtsi           | 455 +++++++++++---------
 arch/arm/dts/imx6qp-sabreauto.dts   |  55 +++
 arch/arm/dts/imx6qp-sabresd.dts     |  55 +++
 arch/arm/dts/imx6qp.dtsi            | 115 +++++
 13 files changed, 2669 insertions(+), 258 deletions(-)
 create mode 100644 arch/arm/dts/imx6dl-sabreauto.dts
 create mode 100644 arch/arm/dts/imx6dl-sabresd.dts
 create mode 100644 arch/arm/dts/imx6q-sabreauto.dts
 create mode 100644 arch/arm/dts/imx6q-sabresd.dts
 create mode 100644 arch/arm/dts/imx6qdl-sabreauto.dtsi
 create mode 100644 arch/arm/dts/imx6qdl-sabresd.dtsi
 create mode 100644 arch/arm/dts/imx6qp-sabreauto.dts
 create mode 100644 arch/arm/dts/imx6qp-sabresd.dts
 create mode 100644 arch/arm/dts/imx6qp.dtsi

diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 46f1d69..e8512af 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -443,7 +443,13 @@ dtb-$(CONFIG_MX6QDL) += \
 	imx6q-icore.dtb \
 	imx6q-icore-mipi.dtb \
 	imx6q-icore-rqs.dtb \
-	imx6q-logicpd.dtb
+	imx6q-logicpd.dtb \
+	imx6q-sabreauto.dtb \
+	imx6q-sabresd.dtb \
+	imx6dl-sabreauto.dtb \
+	imx6dl-sabresd.dtb \
+	imx6qp-sabreauto.dtb \
+	imx6qp-sabresd.dtb
 
 dtb-$(CONFIG_MX6SL) += imx6sl-evk.dtb
 
diff --git a/arch/arm/dts/imx6dl-sabreauto.dts b/arch/arm/dts/imx6dl-sabreauto.dts
new file mode 100644
index 0000000..660d52a
--- /dev/null
+++ b/arch/arm/dts/imx6dl-sabreauto.dts
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: GPL-2.0
+//
+// Copyright (C) 2013 Freescale Semiconductor, Inc.
+
+/dts-v1/;
+
+#include "imx6dl.dtsi"
+#include "imx6qdl-sabreauto.dtsi"
+
+/ {
+	model = "Freescale i.MX6 DualLite/Solo SABRE Automotive Board";
+	compatible = "fsl,imx6dl-sabreauto", "fsl,imx6dl";
+};
diff --git a/arch/arm/dts/imx6dl-sabresd.dts b/arch/arm/dts/imx6dl-sabresd.dts
new file mode 100644
index 0000000..cd6bbf2
--- /dev/null
+++ b/arch/arm/dts/imx6dl-sabresd.dts
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: GPL-2.0
+//
+// Copyright (C) 2013 Freescale Semiconductor, Inc.
+
+/dts-v1/;
+
+#include "imx6dl.dtsi"
+#include "imx6qdl-sabresd.dtsi"
+
+/ {
+	model = "Freescale i.MX6 DualLite SABRE Smart Device Board";
+	compatible = "fsl,imx6dl-sabresd", "fsl,imx6dl";
+};
+
+&ipu1_csi1_from_ipu1_csi1_mux {
+	clock-lanes = <0>;
+	data-lanes = <1 2>;
+};
diff --git a/arch/arm/dts/imx6dl.dtsi b/arch/arm/dts/imx6dl.dtsi
index 9a4c22c..f0607eb 100644
--- a/arch/arm/dts/imx6dl.dtsi
+++ b/arch/arm/dts/imx6dl.dtsi
@@ -1,12 +1,6 @@
-
-/*
- * Copyright 2013 Freescale Semiconductor, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- */
+// SPDX-License-Identifier: GPL-2.0
+//
+// Copyright 2013 Freescale Semiconductor, Inc.
 
 #include <dt-bindings/interrupt-controller/irq.h>
 #include "imx6dl-pinfunc.h"
@@ -39,6 +33,7 @@
 				396000	1175000
 			>;
 			clock-latency = <61036>; /* two CLK32 periods */
+			#cooling-cells = <2>;
 			clocks = <&clks IMX6QDL_CLK_ARM>,
 				 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
 				 <&clks IMX6QDL_CLK_STEP>,
@@ -56,39 +51,57 @@
 			device_type = "cpu";
 			reg = <1>;
 			next-level-cache = <&L2>;
+			operating-points = <
+				/* kHz    uV */
+				996000  1250000
+				792000  1175000
+				396000  1150000
+			>;
+			fsl,soc-operating-points = <
+				/* ARM kHz  SOC-PU uV */
+				996000	1175000
+				792000	1175000
+				396000	1175000
+			>;
+			clock-latency = <61036>; /* two CLK32 periods */
+			clocks = <&clks IMX6QDL_CLK_ARM>,
+				 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
+				 <&clks IMX6QDL_CLK_STEP>,
+				 <&clks IMX6QDL_CLK_PLL1_SW>,
+				 <&clks IMX6QDL_CLK_PLL1_SYS>;
+			clock-names = "arm", "pll2_pfd2_396m", "step",
+				      "pll1_sw", "pll1_sys";
+			arm-supply = <&reg_arm>;
+			pu-supply = <&reg_pu>;
+			soc-supply = <&reg_soc>;
 		};
 	};
 
 	soc {
-		ocram: sram at 00900000 {
+		ocram: sram at 900000 {
 			compatible = "mmio-sram";
 			reg = <0x00900000 0x20000>;
 			clocks = <&clks IMX6QDL_CLK_OCRAM>;
 		};
 
-		aips1: aips-bus at 02000000 {
-			iomuxc: iomuxc at 020e0000 {
+		aips1: aips-bus at 2000000 {
+			iomuxc: iomuxc at 20e0000 {
 				compatible = "fsl,imx6dl-iomuxc";
 			};
 
-			pxp: pxp at 020f0000 {
+			pxp: pxp at 20f0000 {
 				reg = <0x020f0000 0x4000>;
 				interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>;
 			};
 
-			epdc: epdc at 020f4000 {
+			epdc: epdc at 20f4000 {
 				reg = <0x020f4000 0x4000>;
 				interrupts = <0 97 IRQ_TYPE_LEVEL_HIGH>;
 			};
-
-			lcdif: lcdif at 020f8000 {
-				reg = <0x020f8000 0x4000>;
-				interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
-			};
 		};
 
-		aips2: aips-bus at 02100000 {
-			i2c4: i2c at 021f8000 {
+		aips2: aips-bus at 2100000 {
+			i2c4: i2c at 21f8000 {
 				#address-cells = <1>;
 				#size-cells = <0>;
 				compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c";
@@ -100,14 +113,177 @@
 		};
 	};
 
+	capture-subsystem {
+		compatible = "fsl,imx-capture-subsystem";
+		ports = <&ipu1_csi0>, <&ipu1_csi1>;
+	};
+
 	display-subsystem {
 		compatible = "fsl,imx-display-subsystem";
 		ports = <&ipu1_di0>, <&ipu1_di1>;
 	};
+};
+
+&gpio1 {
+	gpio-ranges = <&iomuxc  0 131 2>, <&iomuxc  2 137 8>, <&iomuxc 10 189 2>,
+		      <&iomuxc 12 194 1>, <&iomuxc 13 193 1>, <&iomuxc 14 192 1>,
+		      <&iomuxc 15 191 1>, <&iomuxc 16 185 2>, <&iomuxc 18 184 1>,
+		      <&iomuxc 19 187 1>, <&iomuxc 20 183 1>, <&iomuxc 21 188 1>,
+		      <&iomuxc 22 123 3>, <&iomuxc 25 121 1>, <&iomuxc 26 127 1>,
+		      <&iomuxc 27 126 1>, <&iomuxc 28 128 1>, <&iomuxc 29 130 1>,
+		      <&iomuxc 30 129 1>, <&iomuxc 31 122 1>;
+};
+
+&gpio2 {
+	gpio-ranges = <&iomuxc  0 161 8>, <&iomuxc  8 208 8>, <&iomuxc 16  74 1>,
+		      <&iomuxc 17  73 1>, <&iomuxc 18  72 1>, <&iomuxc 19  71 1>,
+		      <&iomuxc 20  70 1>, <&iomuxc 21  69 1>, <&iomuxc 22  68 1>,
+		      <&iomuxc 23  79 2>, <&iomuxc 25 118 2>, <&iomuxc 27 117 1>,
+		      <&iomuxc 28 113 4>;
+};
+
+&gpio3 {
+	gpio-ranges = <&iomuxc  0 97  2>, <&iomuxc 2 105 8>, <&iomuxc 10 99 6>,
+		      <&iomuxc 16 81 16>;
+};
+
+&gpio4 {
+	gpio-ranges = <&iomuxc  5 136 1>, <&iomuxc  6 145 1>, <&iomuxc  7 150 1>,
+		      <&iomuxc  8 146 1>, <&iomuxc  9 151 1>, <&iomuxc 10 147 1>,
+		      <&iomuxc 11 152 1>, <&iomuxc 12 148 1>, <&iomuxc 13 153 1>,
+		      <&iomuxc 14 149 1>, <&iomuxc 15 154 1>, <&iomuxc 16  39 7>,
+		      <&iomuxc 23  56 1>, <&iomuxc 24  61 7>, <&iomuxc 31  46 1>;
+};
 
-	gpu-subsystem {
-		compatible = "fsl,imx-gpu-subsystem";
-		cores = <&gpu_2d>, <&gpu_3d>;
+&gpio5 {
+	gpio-ranges = <&iomuxc  0 120 1>, <&iomuxc  2 77 1>, <&iomuxc  4 76 1>,
+		      <&iomuxc  5  47 9>, <&iomuxc 14 57 4>, <&iomuxc 18 37 1>,
+		      <&iomuxc 19  36 1>, <&iomuxc 20 35 1>, <&iomuxc 21 38 1>,
+		      <&iomuxc 22  29 6>, <&iomuxc 28 19 4>;
+};
+
+&gpio6 {
+	gpio-ranges = <&iomuxc  0  23 6>, <&iomuxc  6  75 1>, <&iomuxc  7 156 1>,
+		      <&iomuxc  8 155 1>, <&iomuxc  9 170 1>, <&iomuxc 10 169 1>,
+		      <&iomuxc 11 157 1>, <&iomuxc 14 158 3>, <&iomuxc 17 204 1>,
+		      <&iomuxc 18 203 1>, <&iomuxc 19 182 1>, <&iomuxc 20 177 4>,
+		      <&iomuxc 24 175 1>, <&iomuxc 25 171 1>, <&iomuxc 26 181 1>,
+		      <&iomuxc 27 172 3>, <&iomuxc 30 176 1>, <&iomuxc 31  78 1>;
+};
+
+&gpio7 {
+	gpio-ranges = <&iomuxc 0 202 1>, <&iomuxc  1 201 1>, <&iomuxc  2 196 1>,
+		      <&iomuxc 3 195 1>, <&iomuxc  4 197 4>, <&iomuxc  8 205 1>,
+		      <&iomuxc 9 207 1>, <&iomuxc 10 206 1>, <&iomuxc 11 133 3>;
+};
+
+&gpr {
+	ipu1_csi0_mux {
+		compatible = "video-mux";
+		mux-controls = <&mux 0>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		port at 0 {
+			reg = <0>;
+
+			ipu1_csi0_mux_from_mipi_vc0: endpoint {
+				remote-endpoint = <&mipi_vc0_to_ipu1_csi0_mux>;
+			};
+		};
+
+		port at 1 {
+			reg = <1>;
+
+			ipu1_csi0_mux_from_mipi_vc1: endpoint {
+				remote-endpoint = <&mipi_vc1_to_ipu1_csi0_mux>;
+			};
+		};
+
+		port at 2 {
+			reg = <2>;
+
+			ipu1_csi0_mux_from_mipi_vc2: endpoint {
+				remote-endpoint = <&mipi_vc2_to_ipu1_csi0_mux>;
+			};
+		};
+
+		port at 3 {
+			reg = <3>;
+
+			ipu1_csi0_mux_from_mipi_vc3: endpoint {
+				remote-endpoint = <&mipi_vc3_to_ipu1_csi0_mux>;
+			};
+		};
+
+		port at 4 {
+			reg = <4>;
+
+			ipu1_csi0_mux_from_parallel_sensor: endpoint {
+			};
+		};
+
+		port at 5 {
+			reg = <5>;
+
+			ipu1_csi0_mux_to_ipu1_csi0: endpoint {
+				remote-endpoint = <&ipu1_csi0_from_ipu1_csi0_mux>;
+			};
+		};
+	};
+
+	ipu1_csi1_mux {
+		compatible = "video-mux";
+		mux-controls = <&mux 1>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		port at 0 {
+			reg = <0>;
+
+			ipu1_csi1_mux_from_mipi_vc0: endpoint {
+				remote-endpoint = <&mipi_vc0_to_ipu1_csi1_mux>;
+			};
+		};
+
+		port at 1 {
+			reg = <1>;
+
+			ipu1_csi1_mux_from_mipi_vc1: endpoint {
+				remote-endpoint = <&mipi_vc1_to_ipu1_csi1_mux>;
+			};
+		};
+
+		port at 2 {
+			reg = <2>;
+
+			ipu1_csi1_mux_from_mipi_vc2: endpoint {
+				remote-endpoint = <&mipi_vc2_to_ipu1_csi1_mux>;
+			};
+		};
+
+		port at 3 {
+			reg = <3>;
+
+			ipu1_csi1_mux_from_mipi_vc3: endpoint {
+				remote-endpoint = <&mipi_vc3_to_ipu1_csi1_mux>;
+			};
+		};
+
+		port at 4 {
+			reg = <4>;
+
+			ipu1_csi1_mux_from_parallel_sensor: endpoint {
+			};
+		};
+
+		port at 5 {
+			reg = <5>;
+
+			ipu1_csi1_mux_to_ipu1_csi1: endpoint {
+				remote-endpoint = <&ipu1_csi1_from_ipu1_csi1_mux>;
+			};
+		};
 	};
 };
 
@@ -119,6 +295,12 @@
 	compatible = "fsl,imx6dl-hdmi";
 };
 
+&ipu1_csi1 {
+	ipu1_csi1_from_ipu1_csi1_mux: endpoint {
+		remote-endpoint = <&ipu1_csi1_mux_to_ipu1_csi1>;
+	};
+};
+
 &ldb {
 	clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>, <&clks IMX6QDL_CLK_LDB_DI1_SEL>,
 		 <&clks IMX6QDL_CLK_IPU1_DI0_SEL>, <&clks IMX6QDL_CLK_IPU1_DI1_SEL>,
@@ -128,6 +310,82 @@
 		      "di0", "di1";
 };
 
+&mipi_csi {
+	port at 1 {
+		reg = <1>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		mipi_vc0_to_ipu1_csi0_mux: endpoint at 0 {
+			reg = <0>;
+			remote-endpoint = <&ipu1_csi0_mux_from_mipi_vc0>;
+		};
+
+		mipi_vc0_to_ipu1_csi1_mux: endpoint at 1 {
+			reg = <1>;
+			remote-endpoint = <&ipu1_csi1_mux_from_mipi_vc0>;
+		};
+	};
+
+	port at 2 {
+		reg = <2>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		mipi_vc1_to_ipu1_csi0_mux: endpoint at 0 {
+			reg = <0>;
+			remote-endpoint = <&ipu1_csi0_mux_from_mipi_vc1>;
+		};
+
+		mipi_vc1_to_ipu1_csi1_mux: endpoint at 1 {
+			reg = <1>;
+			remote-endpoint = <&ipu1_csi1_mux_from_mipi_vc1>;
+		};
+	};
+
+	port at 3 {
+		reg = <3>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		mipi_vc2_to_ipu1_csi0_mux: endpoint at 0 {
+			reg = <0>;
+			remote-endpoint = <&ipu1_csi0_mux_from_mipi_vc2>;
+		};
+
+		mipi_vc2_to_ipu1_csi1_mux: endpoint at 1 {
+			reg = <1>;
+			remote-endpoint = <&ipu1_csi1_mux_from_mipi_vc2>;
+		};
+	};
+
+	port at 4 {
+		reg = <4>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		mipi_vc3_to_ipu1_csi0_mux: endpoint at 0 {
+			reg = <0>;
+			remote-endpoint = <&ipu1_csi0_mux_from_mipi_vc3>;
+		};
+
+		mipi_vc3_to_ipu1_csi1_mux: endpoint at 1 {
+			reg = <1>;
+			remote-endpoint = <&ipu1_csi1_mux_from_mipi_vc3>;
+		};
+	};
+};
+
+&mux {
+	mux-reg-masks = <0x34 0x00000007>, /* IPU_CSI0_MUX */
+			<0x34 0x00000038>, /* IPU_CSI1_MUX */
+			<0x0c 0x0000000c>, /* HDMI_MUX_CTL */
+			<0x0c 0x000000c0>, /* LVDS0_MUX_CTL */
+			<0x0c 0x00000300>, /* LVDS1_MUX_CTL */
+			<0x28 0x00000003>, /* DCIC1_MUX_CTL */
+			<0x28 0x0000000c>; /* DCIC2_MUX_CTL */
+};
+
 &vpu {
 	compatible = "fsl,imx6dl-vpu", "cnm,coda960";
 };
diff --git a/arch/arm/dts/imx6q-sabreauto.dts b/arch/arm/dts/imx6q-sabreauto.dts
new file mode 100644
index 0000000..6e981a3
--- /dev/null
+++ b/arch/arm/dts/imx6q-sabreauto.dts
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: GPL-2.0+
+//
+// Copyright 2012 Freescale Semiconductor, Inc.
+// Copyright 2011 Linaro Ltd.
+
+/dts-v1/;
+
+#include "imx6q.dtsi"
+#include "imx6qdl-sabreauto.dtsi"
+
+/ {
+	model = "Freescale i.MX6 Quad SABRE Automotive Board";
+	compatible = "fsl,imx6q-sabreauto", "fsl,imx6q";
+};
+
+&sata {
+	status = "okay";
+};
diff --git a/arch/arm/dts/imx6q-sabresd.dts b/arch/arm/dts/imx6q-sabresd.dts
new file mode 100644
index 0000000..eec9446
--- /dev/null
+++ b/arch/arm/dts/imx6q-sabresd.dts
@@ -0,0 +1,23 @@
+// SPDX-License-Identifier: GPL-2.0+
+//
+// Copyright 2012 Freescale Semiconductor, Inc.
+// Copyright 2011 Linaro Ltd.
+
+/dts-v1/;
+
+#include "imx6q.dtsi"
+#include "imx6qdl-sabresd.dtsi"
+
+/ {
+	model = "Freescale i.MX6 Quad SABRE Smart Device Board";
+	compatible = "fsl,imx6q-sabresd", "fsl,imx6q";
+};
+
+&sata {
+	status = "okay";
+};
+
+&ipu1_csi1_from_mipi_vc1 {
+	clock-lanes = <0>;
+	data-lanes = <1 2>;
+};
diff --git a/arch/arm/dts/imx6q.dtsi b/arch/arm/dts/imx6q.dtsi
index c30c836..8381d24 100644
--- a/arch/arm/dts/imx6q.dtsi
+++ b/arch/arm/dts/imx6q.dtsi
@@ -1,12 +1,6 @@
-
-/*
- * Copyright 2013 Freescale Semiconductor, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- */
+// SPDX-License-Identifier: GPL-2.0
+//
+// Copyright 2013 Freescale Semiconductor, Inc.
 
 #include <dt-bindings/interrupt-controller/irq.h>
 #include "imx6q-pinfunc.h"
@@ -44,6 +38,7 @@
 				396000	1175000
 			>;
 			clock-latency = <61036>; /* two CLK32 periods */
+			#cooling-cells = <2>;
 			clocks = <&clks IMX6QDL_CLK_ARM>,
 				 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
 				 <&clks IMX6QDL_CLK_STEP>,
@@ -56,38 +51,119 @@
 			soc-supply = <&reg_soc>;
 		};
 
-		cpu at 1 {
+		cpu1: cpu at 1 {
 			compatible = "arm,cortex-a9";
 			device_type = "cpu";
 			reg = <1>;
 			next-level-cache = <&L2>;
+			operating-points = <
+				/* kHz    uV */
+				1200000 1275000
+				996000  1250000
+				852000  1250000
+				792000  1175000
+				396000  975000
+			>;
+			fsl,soc-operating-points = <
+				/* ARM kHz  SOC-PU uV */
+				1200000 1275000
+				996000	1250000
+				852000	1250000
+				792000	1175000
+				396000	1175000
+			>;
+			clock-latency = <61036>; /* two CLK32 periods */
+			clocks = <&clks IMX6QDL_CLK_ARM>,
+				 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
+				 <&clks IMX6QDL_CLK_STEP>,
+				 <&clks IMX6QDL_CLK_PLL1_SW>,
+				 <&clks IMX6QDL_CLK_PLL1_SYS>;
+			clock-names = "arm", "pll2_pfd2_396m", "step",
+				      "pll1_sw", "pll1_sys";
+			arm-supply = <&reg_arm>;
+			pu-supply = <&reg_pu>;
+			soc-supply = <&reg_soc>;
 		};
 
-		cpu at 2 {
+		cpu2: cpu at 2 {
 			compatible = "arm,cortex-a9";
 			device_type = "cpu";
 			reg = <2>;
 			next-level-cache = <&L2>;
+			operating-points = <
+				/* kHz    uV */
+				1200000 1275000
+				996000  1250000
+				852000  1250000
+				792000  1175000
+				396000  975000
+			>;
+			fsl,soc-operating-points = <
+				/* ARM kHz  SOC-PU uV */
+				1200000 1275000
+				996000	1250000
+				852000	1250000
+				792000	1175000
+				396000	1175000
+			>;
+			clock-latency = <61036>; /* two CLK32 periods */
+			clocks = <&clks IMX6QDL_CLK_ARM>,
+				 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
+				 <&clks IMX6QDL_CLK_STEP>,
+				 <&clks IMX6QDL_CLK_PLL1_SW>,
+				 <&clks IMX6QDL_CLK_PLL1_SYS>;
+			clock-names = "arm", "pll2_pfd2_396m", "step",
+				      "pll1_sw", "pll1_sys";
+			arm-supply = <&reg_arm>;
+			pu-supply = <&reg_pu>;
+			soc-supply = <&reg_soc>;
 		};
 
-		cpu at 3 {
+		cpu3: cpu at 3 {
 			compatible = "arm,cortex-a9";
 			device_type = "cpu";
 			reg = <3>;
 			next-level-cache = <&L2>;
+			operating-points = <
+				/* kHz    uV */
+				1200000 1275000
+				996000  1250000
+				852000  1250000
+				792000  1175000
+				396000  975000
+			>;
+			fsl,soc-operating-points = <
+				/* ARM kHz  SOC-PU uV */
+				1200000 1275000
+				996000	1250000
+				852000	1250000
+				792000	1175000
+				396000	1175000
+			>;
+			clock-latency = <61036>; /* two CLK32 periods */
+			clocks = <&clks IMX6QDL_CLK_ARM>,
+				 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
+				 <&clks IMX6QDL_CLK_STEP>,
+				 <&clks IMX6QDL_CLK_PLL1_SW>,
+				 <&clks IMX6QDL_CLK_PLL1_SYS>;
+			clock-names = "arm", "pll2_pfd2_396m", "step",
+				      "pll1_sw", "pll1_sys";
+			arm-supply = <&reg_arm>;
+			pu-supply = <&reg_pu>;
+			soc-supply = <&reg_soc>;
 		};
 	};
 
 	soc {
-		ocram: sram at 00900000 {
+		ocram: sram at 900000 {
 			compatible = "mmio-sram";
 			reg = <0x00900000 0x40000>;
 			clocks = <&clks IMX6QDL_CLK_OCRAM>;
 		};
 
-		aips-bus at 02000000 { /* AIPS1 */
-			spba-bus at 02000000 {
-				ecspi5: ecspi at 02018000 {
+		aips-bus at 2000000 { /* AIPS1 */
+			spba-bus at 2000000 {
+				ecspi5: spi at 2018000 {
 					#address-cells = <1>;
 					#size-cells = <0>;
 					compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
@@ -96,18 +172,18 @@
 					clocks = <&clks IMX6Q_CLK_ECSPI5>,
 						 <&clks IMX6Q_CLK_ECSPI5>;
 					clock-names = "ipg", "per";
-					dmas = <&sdma 11 7 1>, <&sdma 12 7 2>;
+					dmas = <&sdma 11 8 1>, <&sdma 12 8 2>;
 					dma-names = "rx", "tx";
 					status = "disabled";
 				};
 			};
 
-			iomuxc: iomuxc at 020e0000 {
+			iomuxc: iomuxc at 20e0000 {
 				compatible = "fsl,imx6q-iomuxc";
 			};
 		};
 
-		sata: sata at 02200000 {
+		sata: sata at 2200000 {
 			compatible = "fsl,imx6q-ahci";
 			reg = <0x02200000 0x4000>;
 			interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
@@ -118,17 +194,17 @@
 			status = "disabled";
 		};
 
-		gpu_vg: gpu at 02204000 {
+		gpu_vg: gpu at 2204000 {
 			compatible = "vivante,gc";
 			reg = <0x02204000 0x4000>;
 			interrupts = <0 11 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&clks IMX6QDL_CLK_OPENVG_AXI>,
 				 <&clks IMX6QDL_CLK_GPU2D_CORE>;
 			clock-names = "bus", "core";
-			power-domains = <&gpc 1>;
+			power-domains = <&pd_pu>;
 		};
 
-		ipu2: ipu at 02800000 {
+		ipu2: ipu at 2800000 {
 			#address-cells = <1>;
 			#size-cells = <0>;
 			compatible = "fsl,imx6q-ipu";
@@ -143,10 +219,18 @@
 
 			ipu2_csi0: port at 0 {
 				reg = <0>;
+
+				ipu2_csi0_from_mipi_vc2: endpoint {
+					remote-endpoint = <&mipi_vc2_to_ipu2_csi0>;
+				};
 			};
 
 			ipu2_csi1: port at 1 {
 				reg = <1>;
+
+				ipu2_csi1_from_ipu2_csi1_mux: endpoint {
+					remote-endpoint = <&ipu2_csi1_mux_to_ipu2_csi1>;
+				};
 			};
 
 			ipu2_di0: port at 2 {
@@ -154,22 +238,27 @@
 				#size-cells = <0>;
 				reg = <2>;
 
-				ipu2_di0_disp0: disp0-endpoint {
+				ipu2_di0_disp0: endpoint at 0 {
+					reg = <0>;
 				};
 
-				ipu2_di0_hdmi: hdmi-endpoint {
+				ipu2_di0_hdmi: endpoint at 1 {
+					reg = <1>;
 					remote-endpoint = <&hdmi_mux_2>;
 				};
 
-				ipu2_di0_mipi: mipi-endpoint {
+				ipu2_di0_mipi: endpoint at 2 {
+					reg = <2>;
 					remote-endpoint = <&mipi_mux_2>;
 				};
 
-				ipu2_di0_lvds0: lvds0-endpoint {
+				ipu2_di0_lvds0: endpoint at 3 {
+					reg = <3>;
 					remote-endpoint = <&lvds0_mux_2>;
 				};
 
-				ipu2_di0_lvds1: lvds1-endpoint {
+				ipu2_di0_lvds1: endpoint at 4 {
+					reg = <4>;
 					remote-endpoint = <&lvds1_mux_2>;
 				};
 			};
@@ -179,33 +268,136 @@
 				#size-cells = <0>;
 				reg = <3>;
 
-				ipu2_di1_hdmi: hdmi-endpoint {
+				ipu2_di1_hdmi: endpoint at 1 {
+					reg = <1>;
 					remote-endpoint = <&hdmi_mux_3>;
 				};
 
-				ipu2_di1_mipi: mipi-endpoint {
+				ipu2_di1_mipi: endpoint at 2 {
+					reg = <2>;
 					remote-endpoint = <&mipi_mux_3>;
 				};
 
-				ipu2_di1_lvds0: lvds0-endpoint {
+				ipu2_di1_lvds0: endpoint at 3 {
+					reg = <3>;
 					remote-endpoint = <&lvds0_mux_3>;
 				};
 
-				ipu2_di1_lvds1: lvds1-endpoint {
+				ipu2_di1_lvds1: endpoint at 4 {
+					reg = <4>;
 					remote-endpoint = <&lvds1_mux_3>;
 				};
 			};
 		};
 	};
 
+	capture-subsystem {
+		compatible = "fsl,imx-capture-subsystem";
+		ports = <&ipu1_csi0>, <&ipu1_csi1>, <&ipu2_csi0>, <&ipu2_csi1>;
+	};
+
 	display-subsystem {
 		compatible = "fsl,imx-display-subsystem";
 		ports = <&ipu1_di0>, <&ipu1_di1>, <&ipu2_di0>, <&ipu2_di1>;
 	};
+};
+
+&gpio1 {
+	gpio-ranges = <&iomuxc  0 136  2>, <&iomuxc  2 141 1>, <&iomuxc  3 139 1>,
+		      <&iomuxc  4 142  2>, <&iomuxc  6 140 1>, <&iomuxc  7 144 2>,
+		      <&iomuxc  9 138  1>, <&iomuxc 10 213 3>, <&iomuxc 13  20 1>,
+		      <&iomuxc 14  19  1>, <&iomuxc 15  21 1>, <&iomuxc 16 208 1>,
+		      <&iomuxc 17 207  1>, <&iomuxc 18 210 3>, <&iomuxc 21 209 1>,
+		      <&iomuxc 22 116 10>;
+};
+
+&gpio2 {
+	gpio-ranges = <&iomuxc  0 191 16>, <&iomuxc 16 55 14>, <&iomuxc 30 35 1>,
+		      <&iomuxc 31  44  1>;
+};
+
+&gpio3 {
+	gpio-ranges = <&iomuxc 0 69 16>, <&iomuxc 16 36 8>, <&iomuxc 24 45 8>;
+};
+
+&gpio4 {
+	gpio-ranges = <&iomuxc 5 149 1>, <&iomuxc 6 126 10>, <&iomuxc 16 87 16>;
+};
+
+&gpio5 {
+	gpio-ranges = <&iomuxc 0  85  1>, <&iomuxc  2  34  1>, <&iomuxc 4 53 1>,
+		      <&iomuxc 5 103 13>, <&iomuxc 18 150 14>;
+};
+
+&gpio6 {
+	gpio-ranges = <&iomuxc  0 164 6>, <&iomuxc  6  54 1>, <&iomuxc  7 181  5>,
+		      <&iomuxc 14 186 3>, <&iomuxc 17 170 2>, <&iomuxc 19  22 12>,
+		      <&iomuxc 31  86 1>;
+};
+
+&gpio7 {
+	gpio-ranges = <&iomuxc 0 172 9>, <&iomuxc 9 189 2>, <&iomuxc 11 146 3>;
+};
+
+&gpr {
+	ipu1_csi0_mux {
+		compatible = "video-mux";
+		mux-controls = <&mux 0>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		port at 0 {
+			reg = <0>;
+
+			ipu1_csi0_mux_from_mipi_vc0: endpoint {
+				remote-endpoint = <&mipi_vc0_to_ipu1_csi0_mux>;
+			};
+		};
+
+		port at 1 {
+			reg = <1>;
+
+			ipu1_csi0_mux_from_parallel_sensor: endpoint {
+			};
+		};
 
-	gpu-subsystem {
-		compatible = "fsl,imx-gpu-subsystem";
-		cores = <&gpu_2d>, <&gpu_3d>, <&gpu_vg>;
+		port at 2 {
+			reg = <2>;
+
+			ipu1_csi0_mux_to_ipu1_csi0: endpoint {
+				remote-endpoint = <&ipu1_csi0_from_ipu1_csi0_mux>;
+			};
+		};
+	};
+
+	ipu2_csi1_mux {
+		compatible = "video-mux";
+		mux-controls = <&mux 1>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		port at 0 {
+			reg = <0>;
+
+			ipu2_csi1_mux_from_mipi_vc3: endpoint {
+				remote-endpoint = <&mipi_vc3_to_ipu2_csi1_mux>;
+			};
+		};
+
+		port at 1 {
+			reg = <1>;
+
+			ipu2_csi1_mux_from_parallel_sensor: endpoint {
+			};
+		};
+
+		port at 2 {
+			reg = <2>;
+
+			ipu2_csi1_mux_to_ipu2_csi1: endpoint {
+				remote-endpoint = <&ipu2_csi1_from_ipu2_csi1_mux>;
+			};
+		};
 	};
 };
 
@@ -229,6 +421,12 @@
 	};
 };
 
+&ipu1_csi1 {
+	ipu1_csi1_from_mipi_vc1: endpoint {
+		remote-endpoint = <&mipi_vc1_to_ipu1_csi1>;
+	};
+};
+
 &ldb {
 	clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>, <&clks IMX6QDL_CLK_LDB_DI1_SEL>,
 		 <&clks IMX6QDL_CLK_IPU1_DI0_SEL>, <&clks IMX6QDL_CLK_IPU1_DI1_SEL>,
@@ -275,6 +473,40 @@
 	};
 };
 
+&mipi_csi {
+	port at 1 {
+		reg = <1>;
+
+		mipi_vc0_to_ipu1_csi0_mux: endpoint {
+			remote-endpoint = <&ipu1_csi0_mux_from_mipi_vc0>;
+		};
+	};
+
+	port at 2 {
+		reg = <2>;
+
+		mipi_vc1_to_ipu1_csi1: endpoint {
+			remote-endpoint = <&ipu1_csi1_from_mipi_vc1>;
+		};
+	};
+
+	port at 3 {
+		reg = <3>;
+
+		mipi_vc2_to_ipu2_csi0: endpoint {
+			remote-endpoint = <&ipu2_csi0_from_mipi_vc2>;
+		};
+	};
+
+	port at 4 {
+		reg = <4>;
+
+		mipi_vc3_to_ipu2_csi1_mux: endpoint {
+			remote-endpoint = <&ipu2_csi1_mux_from_mipi_vc3>;
+		};
+	};
+};
+
 &mipi_dsi {
 	ports {
 		port at 2 {
@@ -295,6 +527,16 @@
 	};
 };
 
+&mux {
+	mux-reg-masks = <0x04 0x00080000>, /* MIPI_IPU1_MUX */
+			<0x04 0x00100000>, /* MIPI_IPU2_MUX */
+			<0x0c 0x0000000c>, /* HDMI_MUX_CTL */
+			<0x0c 0x000000c0>, /* LVDS0_MUX_CTL */
+			<0x0c 0x00000300>, /* LVDS1_MUX_CTL */
+			<0x28 0x00000003>, /* DCIC1_MUX_CTL */
+			<0x28 0x0000000c>; /* DCIC2_MUX_CTL */
+};
+
 &vpu {
 	compatible = "fsl,imx6q-vpu", "cnm,coda960";
 };
diff --git a/arch/arm/dts/imx6qdl-sabreauto.dtsi b/arch/arm/dts/imx6qdl-sabreauto.dtsi
new file mode 100644
index 0000000..a6dc5c4
--- /dev/null
+++ b/arch/arm/dts/imx6qdl-sabreauto.dtsi
@@ -0,0 +1,810 @@
+// SPDX-License-Identifier: GPL-2.0+
+//
+// Copyright 2012 Freescale Semiconductor, Inc.
+// Copyright 2011 Linaro Ltd.
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+	chosen {
+		stdout-path = &uart4;
+	};
+
+	memory at 10000000 {
+		reg = <0x10000000 0x80000000>;
+	};
+
+	leds {
+		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_gpio_leds>;
+
+		user {
+			label = "debug";
+			gpios = <&gpio5 15 GPIO_ACTIVE_HIGH>;
+		};
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_gpio_keys>;
+
+		home {
+			label = "Home";
+			gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_HOME>;
+			wakeup-source;
+		};
+
+		back {
+			label = "Back";
+			gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_BACK>;
+			wakeup-source;
+		};
+
+		program {
+			label = "Program";
+			gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_PROGRAM>;
+			wakeup-source;
+		};
+
+		volume-up {
+			label = "Volume Up";
+			gpios = <&gpio2 15 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_VOLUMEUP>;
+			wakeup-source;
+		};
+
+		volume-down {
+			label = "Volume Down";
+			gpios = <&gpio5 14 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_VOLUMEDOWN>;
+			wakeup-source;
+		};
+	};
+
+	clocks {
+		codec_osc: anaclk2 {
+			compatible = "fixed-clock";
+			#clock-cells = <0>;
+			clock-frequency = <24576000>;
+		};
+	};
+
+	regulators {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		reg_audio: regulator at 0 {
+			compatible = "regulator-fixed";
+			reg = <0>;
+			regulator-name = "cs42888_supply";
+			regulator-min-microvolt = <3300000>;
+			regulator-max-microvolt = <3300000>;
+			regulator-always-on;
+		};
+
+		reg_usb_h1_vbus: regulator at 1 {
+			compatible = "regulator-fixed";
+			reg = <1>;
+			regulator-name = "usb_h1_vbus";
+			regulator-min-microvolt = <5000000>;
+			regulator-max-microvolt = <5000000>;
+			gpio = <&max7310_b 7 GPIO_ACTIVE_HIGH>;
+			enable-active-high;
+		};
+
+		reg_usb_otg_vbus: regulator at 2 {
+			compatible = "regulator-fixed";
+			reg = <2>;
+			regulator-name = "usb_otg_vbus";
+			regulator-min-microvolt = <5000000>;
+			regulator-max-microvolt = <5000000>;
+			gpio = <&max7310_c 1 GPIO_ACTIVE_HIGH>;
+			enable-active-high;
+		};
+	};
+
+	sound-cs42888 {
+		compatible = "fsl,imx6-sabreauto-cs42888",
+			"fsl,imx-audio-cs42888";
+		model = "imx-cs42888";
+		audio-cpu = <&esai>;
+		audio-asrc = <&asrc>;
+		audio-codec = <&codec>;
+		audio-routing =
+			"Line Out Jack", "AOUT1L",
+			"Line Out Jack", "AOUT1R",
+			"Line Out Jack", "AOUT2L",
+			"Line Out Jack", "AOUT2R",
+			"Line Out Jack", "AOUT3L",
+			"Line Out Jack", "AOUT3R",
+			"Line Out Jack", "AOUT4L",
+			"Line Out Jack", "AOUT4R",
+			"AIN1L", "Line In Jack",
+			"AIN1R", "Line In Jack",
+			"AIN2L", "Line In Jack",
+			"AIN2R", "Line In Jack";
+	};
+
+	sound-spdif {
+		compatible = "fsl,imx-audio-spdif",
+			   "fsl,imx-sabreauto-spdif";
+		model = "imx-spdif";
+		spdif-controller = <&spdif>;
+		spdif-in;
+	};
+
+	backlight {
+		compatible = "pwm-backlight";
+		pwms = <&pwm3 0 5000000>;
+		brightness-levels = <0 4 8 16 32 64 128 255>;
+		default-brightness-level = <7>;
+		status = "okay";
+	};
+
+	i2cmux {
+		compatible = "i2c-mux-gpio";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_i2c3mux>;
+		mux-gpios = <&gpio5 4 0>;
+		i2c-parent = <&i2c3>;
+		idle-state = <0>;
+
+		i2c at 1 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <1>;
+
+			adv7180: camera at 21 {
+				compatible = "adi,adv7180";
+				reg = <0x21>;
+				powerdown-gpios = <&max7310_b 2 GPIO_ACTIVE_LOW>;
+				interrupt-parent = <&gpio1>;
+				interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
+
+				port {
+					adv7180_to_ipu1_csi0_mux: endpoint {
+						remote-endpoint = <&ipu1_csi0_mux_from_parallel_sensor>;
+						bus-width = <8>;
+					};
+				};
+			};
+
+			max7310_a: gpio at 30 {
+				compatible = "maxim,max7310";
+				reg = <0x30>;
+				gpio-controller;
+				#gpio-cells = <2>;
+			};
+
+			max7310_b: gpio at 32 {
+				compatible = "maxim,max7310";
+				reg = <0x32>;
+				gpio-controller;
+				#gpio-cells = <2>;
+				pinctrl-names = "default";
+				pinctrl-0 = <&pinctrl_max7310>;
+				reset-gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
+			};
+
+			max7310_c: gpio at 34 {
+				compatible = "maxim,max7310";
+				reg = <0x34>;
+				gpio-controller;
+				#gpio-cells = <2>;
+			};
+
+			light-sensor at 44 {
+				compatible = "isil,isl29023";
+				reg = <0x44>;
+				interrupt-parent = <&gpio5>;
+				interrupts = <17 IRQ_TYPE_EDGE_FALLING>;
+			};
+
+			magnetometer at e {
+				compatible = "fsl,mag3110";
+				reg = <0x0e>;
+				interrupt-parent = <&gpio2>;
+				interrupts = <29 IRQ_TYPE_EDGE_RISING>;
+			};
+
+			accelerometer at 1c {
+				compatible = "fsl,mma8451";
+				reg = <0x1c>;
+				interrupt-parent = <&gpio6>;
+				interrupts = <31 IRQ_TYPE_LEVEL_LOW>;
+			};
+		};
+	};
+};
+
+&ipu1_csi0_from_ipu1_csi0_mux {
+	bus-width = <8>;
+};
+
+&ipu1_csi0_mux_from_parallel_sensor {
+	remote-endpoint = <&adv7180_to_ipu1_csi0_mux>;
+	bus-width = <8>;
+};
+
+&ipu1_csi0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_ipu1_csi0>;
+};
+
+&clks {
+	assigned-clocks = <&clks IMX6QDL_PLL4_BYPASS_SRC>,
+			  <&clks IMX6QDL_PLL4_BYPASS>,
+			  <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
+			  <&clks IMX6QDL_CLK_LDB_DI1_SEL>,
+			  <&clks IMX6QDL_CLK_PLL4_POST_DIV>;
+	assigned-clock-parents = <&clks IMX6QDL_CLK_LVDS2_IN>,
+				 <&clks IMX6QDL_PLL4_BYPASS_SRC>,
+				 <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
+				 <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
+	assigned-clock-rates = <0>, <0>, <0>, <0>, <24576000>;
+};
+
+&ecspi1 {
+	cs-gpios = <&gpio3 19 0>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_ecspi1 &pinctrl_ecspi1_cs>;
+	status = "disabled"; /* pin conflict with WEIM NOR */
+
+	flash: m25p80 at 0 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "st,m25p32", "jedec,spi-nor";
+		spi-max-frequency = <20000000>;
+		reg = <0>;
+	};
+};
+
+&esai {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_esai>;
+	assigned-clocks = <&clks IMX6QDL_CLK_ESAI_SEL>,
+			  <&clks IMX6QDL_CLK_ESAI_EXTAL>;
+	assigned-clock-parents = <&clks IMX6QDL_CLK_PLL4_AUDIO_DIV>;
+	assigned-clock-rates = <0>, <24576000>;
+	status = "okay";
+};
+
+&fec {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_enet>;
+	phy-mode = "rgmii";
+	interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
+			      <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
+	fsl,err006687-workaround-present;
+	status = "okay";
+};
+
+&gpmi {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_gpmi_nand>;
+	status = "okay";
+};
+
+&hdmi {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_hdmi_cec>;
+	ddc-i2c-bus = <&i2c2>;
+	status = "okay";
+};
+
+&i2c2 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c2>;
+	status = "okay";
+
+	pmic: pfuze100 at 8 {
+		compatible = "fsl,pfuze100";
+		reg = <0x08>;
+
+		regulators {
+			sw1a_reg: sw1ab {
+				regulator-min-microvolt = <300000>;
+				regulator-max-microvolt = <1875000>;
+				regulator-boot-on;
+				regulator-always-on;
+				regulator-ramp-delay = <6250>;
+			};
+
+			sw1c_reg: sw1c {
+				regulator-min-microvolt = <300000>;
+				regulator-max-microvolt = <1875000>;
+				regulator-boot-on;
+				regulator-always-on;
+				regulator-ramp-delay = <6250>;
+			};
+
+			sw2_reg: sw2 {
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			sw3a_reg: sw3a {
+				regulator-min-microvolt = <400000>;
+				regulator-max-microvolt = <1975000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			sw3b_reg: sw3b {
+				regulator-min-microvolt = <400000>;
+				regulator-max-microvolt = <1975000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			sw4_reg: sw4 {
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <3300000>;
+			};
+
+			swbst_reg: swbst {
+				regulator-min-microvolt = <5000000>;
+				regulator-max-microvolt = <5150000>;
+			};
+
+			snvs_reg: vsnvs {
+				regulator-min-microvolt = <1000000>;
+				regulator-max-microvolt = <3000000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			vref_reg: vrefddr {
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			vgen1_reg: vgen1 {
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <1550000>;
+			};
+
+			vgen2_reg: vgen2 {
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <1550000>;
+			};
+
+			vgen3_reg: vgen3 {
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+			};
+
+			vgen4_reg: vgen4 {
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-always-on;
+			};
+
+			vgen5_reg: vgen5 {
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-always-on;
+			};
+
+			vgen6_reg: vgen6 {
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-always-on;
+			};
+		};
+	};
+
+	codec: cs42888 at 48 {
+		compatible = "cirrus,cs42888";
+		reg = <0x48>;
+		clocks = <&codec_osc>;
+		clock-names = "mclk";
+		VA-supply = <&reg_audio>;
+		VD-supply = <&reg_audio>;
+		VLS-supply = <&reg_audio>;
+		VLC-supply = <&reg_audio>;
+	};
+
+	touchscreen at 4 {
+		compatible = "eeti,egalax_ts";
+		reg = <0x04>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_egalax_int>;
+		interrupt-parent = <&gpio2>;
+		interrupts = <28 IRQ_TYPE_EDGE_FALLING>;
+		wakeup-gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>;
+	};
+};
+
+&i2c3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c3>;
+	status = "okay";
+};
+
+&iomuxc {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_hog>;
+
+	imx6qdl-sabreauto {
+		pinctrl_hog: hoggrp {
+			fsl,pins = <
+				MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x80000000
+				MX6QDL_PAD_SD2_DAT2__GPIO1_IO13  0x80000000
+				MX6QDL_PAD_GPIO_18__SD3_VSELECT 0x17059
+			>;
+		};
+
+		pinctrl_ecspi1: ecspi1grp {
+			fsl,pins = <
+				MX6QDL_PAD_EIM_D17__ECSPI1_MISO		0x100b1
+				MX6QDL_PAD_EIM_D18__ECSPI1_MOSI		0x100b1
+				MX6QDL_PAD_EIM_D16__ECSPI1_SCLK		0x100b1
+			>;
+		};
+
+		pinctrl_ecspi1_cs: ecspi1cs {
+			fsl,pins = <
+				MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x80000000
+			>;
+		};
+
+		pinctrl_egalax_int: egalax-intgrp {
+			fsl,pins = <
+				MX6QDL_PAD_EIM_EB0__GPIO2_IO28		0xb0b1
+			>;
+		};
+
+		pinctrl_enet: enetgrp {
+			fsl,pins = <
+				MX6QDL_PAD_KEY_COL1__ENET_MDIO		0x1b0b0
+				MX6QDL_PAD_KEY_COL2__ENET_MDC		0x1b0b0
+				MX6QDL_PAD_RGMII_TXC__RGMII_TXC		0x1b030
+				MX6QDL_PAD_RGMII_TD0__RGMII_TD0		0x1b030
+				MX6QDL_PAD_RGMII_TD1__RGMII_TD1		0x1b030
+				MX6QDL_PAD_RGMII_TD2__RGMII_TD2		0x1b030
+				MX6QDL_PAD_RGMII_TD3__RGMII_TD3		0x1b030
+				MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL	0x1b030
+				MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK	0x1b0b0
+				MX6QDL_PAD_RGMII_RXC__RGMII_RXC		0x1b030
+				MX6QDL_PAD_RGMII_RD0__RGMII_RD0		0x1b030
+				MX6QDL_PAD_RGMII_RD1__RGMII_RD1		0x1b030
+				MX6QDL_PAD_RGMII_RD2__RGMII_RD2		0x1b030
+				MX6QDL_PAD_RGMII_RD3__RGMII_RD3		0x1b030
+				MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL	0x1b030
+				MX6QDL_PAD_GPIO_6__ENET_IRQ		0x000b1
+			>;
+		};
+
+		pinctrl_esai: esaigrp {
+			fsl,pins = <
+				MX6QDL_PAD_ENET_CRS_DV__ESAI_TX_CLK 0x1b030
+				MX6QDL_PAD_ENET_RXD1__ESAI_TX_FS    0x1b030
+				MX6QDL_PAD_ENET_TX_EN__ESAI_TX3_RX2 0x1b030
+				MX6QDL_PAD_GPIO_5__ESAI_TX2_RX3     0x1b030
+				MX6QDL_PAD_ENET_TXD0__ESAI_TX4_RX1  0x1b030
+				MX6QDL_PAD_ENET_MDC__ESAI_TX5_RX0   0x1b030
+				MX6QDL_PAD_GPIO_17__ESAI_TX0        0x1b030
+				MX6QDL_PAD_NANDF_CS3__ESAI_TX1      0x1b030
+				MX6QDL_PAD_ENET_MDIO__ESAI_RX_CLK   0x1b030
+				MX6QDL_PAD_GPIO_9__ESAI_RX_FS       0x1b030
+			>;
+		};
+
+		pinctrl_gpio_keys: gpiokeysgrp {
+			fsl,pins = <
+				MX6QDL_PAD_SD2_CMD__GPIO1_IO11		0x1b0b0
+				MX6QDL_PAD_SD2_DAT3__GPIO1_IO12		0x1b0b0
+				MX6QDL_PAD_SD4_DAT4__GPIO2_IO12		0x1b0b0
+				MX6QDL_PAD_SD4_DAT7__GPIO2_IO15		0x1b0b0
+				MX6QDL_PAD_DISP0_DAT20__GPIO5_IO14	0x1b0b0
+			>;
+		};
+
+		pinctrl_gpio_leds: gpioledsgrp {
+			fsl,pins = <
+				MX6QDL_PAD_DISP0_DAT21__GPIO5_IO15	0x80000000
+			>;
+		};
+
+		pinctrl_gpmi_nand: gpminandgrp {
+			fsl,pins = <
+				MX6QDL_PAD_NANDF_CLE__NAND_CLE		0xb0b1
+				MX6QDL_PAD_NANDF_ALE__NAND_ALE		0xb0b1
+				MX6QDL_PAD_NANDF_WP_B__NAND_WP_B	0xb0b1
+				MX6QDL_PAD_NANDF_RB0__NAND_READY_B	0xb000
+				MX6QDL_PAD_NANDF_CS0__NAND_CE0_B	0xb0b1
+				MX6QDL_PAD_NANDF_CS1__NAND_CE1_B	0xb0b1
+				MX6QDL_PAD_SD4_CMD__NAND_RE_B		0xb0b1
+				MX6QDL_PAD_SD4_CLK__NAND_WE_B		0xb0b1
+				MX6QDL_PAD_NANDF_D0__NAND_DATA00	0xb0b1
+				MX6QDL_PAD_NANDF_D1__NAND_DATA01	0xb0b1
+				MX6QDL_PAD_NANDF_D2__NAND_DATA02	0xb0b1
+				MX6QDL_PAD_NANDF_D3__NAND_DATA03	0xb0b1
+				MX6QDL_PAD_NANDF_D4__NAND_DATA04	0xb0b1
+				MX6QDL_PAD_NANDF_D5__NAND_DATA05	0xb0b1
+				MX6QDL_PAD_NANDF_D6__NAND_DATA06	0xb0b1
+				MX6QDL_PAD_NANDF_D7__NAND_DATA07	0xb0b1
+				MX6QDL_PAD_SD4_DAT0__NAND_DQS		0x00b1
+			>;
+		};
+
+		pinctrl_hdmi_cec: hdmicecgrp {
+			fsl,pins = <
+				MX6QDL_PAD_EIM_A25__HDMI_TX_CEC_LINE	0x1f8b0
+			>;
+		};
+
+		pinctrl_i2c2: i2c2grp {
+			fsl,pins = <
+				MX6QDL_PAD_EIM_EB2__I2C2_SCL	0x4001b8b1
+				MX6QDL_PAD_KEY_ROW3__I2C2_SDA	0x4001b8b1
+			>;
+		};
+
+		pinctrl_i2c3: i2c3grp {
+			fsl,pins = <
+				MX6QDL_PAD_GPIO_3__I2C3_SCL  0x4001b8b1
+				MX6QDL_PAD_EIM_D18__I2C3_SDA 0x4001b8b1
+			>;
+		};
+
+		pinctrl_i2c3mux: i2c3muxgrp {
+			fsl,pins = <
+				MX6QDL_PAD_EIM_A24__GPIO5_IO04 0x0b0b1
+			>;
+		};
+
+		pinctrl_ipu1_csi0: ipu1csi0grp {
+			fsl,pins = <
+				MX6QDL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12  0x1b0b0
+				MX6QDL_PAD_CSI0_DAT13__IPU1_CSI0_DATA13  0x1b0b0
+				MX6QDL_PAD_CSI0_DAT14__IPU1_CSI0_DATA14  0x1b0b0
+				MX6QDL_PAD_CSI0_DAT15__IPU1_CSI0_DATA15  0x1b0b0
+				MX6QDL_PAD_CSI0_DAT16__IPU1_CSI0_DATA16  0x1b0b0
+				MX6QDL_PAD_CSI0_DAT17__IPU1_CSI0_DATA17  0x1b0b0
+				MX6QDL_PAD_CSI0_DAT18__IPU1_CSI0_DATA18  0x1b0b0
+				MX6QDL_PAD_CSI0_DAT19__IPU1_CSI0_DATA19  0x1b0b0
+				MX6QDL_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK 0x1b0b0
+				MX6QDL_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC    0x1b0b0
+				MX6QDL_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC   0x1b0b0
+			>;
+		};
+
+		pinctrl_max7310: max7310grp {
+			fsl,pins = <
+				MX6QDL_PAD_SD2_DAT0__GPIO1_IO15 0x1b0b0
+			>;
+		};
+
+		pinctrl_pwm3: pwm1grp {
+			fsl,pins = <
+				MX6QDL_PAD_SD4_DAT1__PWM3_OUT		0x1b0b1
+			>;
+		};
+
+		pinctrl_gpt_input_capture0: gptinputcapture0grp {
+			fsl,pins = <
+				MX6QDL_PAD_SD1_DAT0__GPT_CAPTURE1	0x1b0b0
+			>;
+		};
+
+		pinctrl_gpt_input_capture1: gptinputcapture1grp {
+			fsl,pins = <
+				MX6QDL_PAD_SD1_DAT1__GPT_CAPTURE2	0x1b0b0
+			>;
+		};
+
+		pinctrl_spdif: spdifgrp {
+			fsl,pins = <
+				MX6QDL_PAD_KEY_COL3__SPDIF_IN 0x1b0b0
+			>;
+		};
+
+		pinctrl_uart4: uart4grp {
+			fsl,pins = <
+				MX6QDL_PAD_KEY_COL0__UART4_TX_DATA	0x1b0b1
+				MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA	0x1b0b1
+			>;
+		};
+
+		pinctrl_usbotg: usbotggrp {
+			fsl,pins = <
+				MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID 0x17059
+			>;
+		};
+
+		pinctrl_usdhc3: usdhc3grp {
+			fsl,pins = <
+				MX6QDL_PAD_SD3_CMD__SD3_CMD		0x17059
+				MX6QDL_PAD_SD3_CLK__SD3_CLK		0x10059
+				MX6QDL_PAD_SD3_DAT0__SD3_DATA0		0x17059
+				MX6QDL_PAD_SD3_DAT1__SD3_DATA1		0x17059
+				MX6QDL_PAD_SD3_DAT2__SD3_DATA2		0x17059
+				MX6QDL_PAD_SD3_DAT3__SD3_DATA3		0x17059
+				MX6QDL_PAD_SD3_DAT4__SD3_DATA4		0x17059
+				MX6QDL_PAD_SD3_DAT5__SD3_DATA5		0x17059
+				MX6QDL_PAD_SD3_DAT6__SD3_DATA6		0x17059
+				MX6QDL_PAD_SD3_DAT7__SD3_DATA7		0x17059
+			>;
+		};
+
+		pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
+			fsl,pins = <
+				MX6QDL_PAD_SD3_CMD__SD3_CMD		0x170b9
+				MX6QDL_PAD_SD3_CLK__SD3_CLK		0x100b9
+				MX6QDL_PAD_SD3_DAT0__SD3_DATA0		0x170b9
+				MX6QDL_PAD_SD3_DAT1__SD3_DATA1		0x170b9
+				MX6QDL_PAD_SD3_DAT2__SD3_DATA2		0x170b9
+				MX6QDL_PAD_SD3_DAT3__SD3_DATA3		0x170b9
+				MX6QDL_PAD_SD3_DAT4__SD3_DATA4		0x170b9
+				MX6QDL_PAD_SD3_DAT5__SD3_DATA5		0x170b9
+				MX6QDL_PAD_SD3_DAT6__SD3_DATA6		0x170b9
+				MX6QDL_PAD_SD3_DAT7__SD3_DATA7		0x170b9
+			>;
+		};
+
+		pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
+			fsl,pins = <
+				MX6QDL_PAD_SD3_CMD__SD3_CMD		0x170f9
+				MX6QDL_PAD_SD3_CLK__SD3_CLK		0x100f9
+				MX6QDL_PAD_SD3_DAT0__SD3_DATA0		0x170f9
+				MX6QDL_PAD_SD3_DAT1__SD3_DATA1		0x170f9
+				MX6QDL_PAD_SD3_DAT2__SD3_DATA2		0x170f9
+				MX6QDL_PAD_SD3_DAT3__SD3_DATA3		0x170f9
+				MX6QDL_PAD_SD3_DAT4__SD3_DATA4		0x170f9
+				MX6QDL_PAD_SD3_DAT5__SD3_DATA5		0x170f9
+				MX6QDL_PAD_SD3_DAT6__SD3_DATA6		0x170f9
+				MX6QDL_PAD_SD3_DAT7__SD3_DATA7		0x170f9
+			>;
+		};
+
+		pinctrl_weim_cs0: weimcs0grp {
+			fsl,pins = <
+				MX6QDL_PAD_EIM_CS0__EIM_CS0_B		0xb0b1
+			>;
+		};
+
+		pinctrl_weim_nor: weimnorgrp {
+			fsl,pins = <
+				MX6QDL_PAD_EIM_OE__EIM_OE_B		0xb0b1
+				MX6QDL_PAD_EIM_RW__EIM_RW		0xb0b1
+				MX6QDL_PAD_EIM_WAIT__EIM_WAIT_B		0xb060
+				MX6QDL_PAD_EIM_D16__EIM_DATA16		0x1b0b0
+				MX6QDL_PAD_EIM_D17__EIM_DATA17		0x1b0b0
+				MX6QDL_PAD_EIM_D18__EIM_DATA18		0x1b0b0
+				MX6QDL_PAD_EIM_D19__EIM_DATA19		0x1b0b0
+				MX6QDL_PAD_EIM_D20__EIM_DATA20		0x1b0b0
+				MX6QDL_PAD_EIM_D21__EIM_DATA21		0x1b0b0
+				MX6QDL_PAD_EIM_D22__EIM_DATA22		0x1b0b0
+				MX6QDL_PAD_EIM_D23__EIM_DATA23		0x1b0b0
+				MX6QDL_PAD_EIM_D24__EIM_DATA24		0x1b0b0
+				MX6QDL_PAD_EIM_D25__EIM_DATA25		0x1b0b0
+				MX6QDL_PAD_EIM_D26__EIM_DATA26		0x1b0b0
+				MX6QDL_PAD_EIM_D27__EIM_DATA27		0x1b0b0
+				MX6QDL_PAD_EIM_D28__EIM_DATA28		0x1b0b0
+				MX6QDL_PAD_EIM_D29__EIM_DATA29		0x1b0b0
+				MX6QDL_PAD_EIM_D30__EIM_DATA30		0x1b0b0
+				MX6QDL_PAD_EIM_D31__EIM_DATA31		0x1b0b0
+				MX6QDL_PAD_EIM_A23__EIM_ADDR23		0xb0b1
+				MX6QDL_PAD_EIM_A22__EIM_ADDR22		0xb0b1
+				MX6QDL_PAD_EIM_A21__EIM_ADDR21		0xb0b1
+				MX6QDL_PAD_EIM_A20__EIM_ADDR20		0xb0b1
+				MX6QDL_PAD_EIM_A19__EIM_ADDR19		0xb0b1
+				MX6QDL_PAD_EIM_A18__EIM_ADDR18		0xb0b1
+				MX6QDL_PAD_EIM_A17__EIM_ADDR17		0xb0b1
+				MX6QDL_PAD_EIM_A16__EIM_ADDR16		0xb0b1
+				MX6QDL_PAD_EIM_DA15__EIM_AD15		0xb0b1
+				MX6QDL_PAD_EIM_DA14__EIM_AD14		0xb0b1
+				MX6QDL_PAD_EIM_DA13__EIM_AD13		0xb0b1
+				MX6QDL_PAD_EIM_DA12__EIM_AD12		0xb0b1
+				MX6QDL_PAD_EIM_DA11__EIM_AD11		0xb0b1
+				MX6QDL_PAD_EIM_DA10__EIM_AD10		0xb0b1
+				MX6QDL_PAD_EIM_DA9__EIM_AD09		0xb0b1
+				MX6QDL_PAD_EIM_DA8__EIM_AD08		0xb0b1
+				MX6QDL_PAD_EIM_DA7__EIM_AD07		0xb0b1
+				MX6QDL_PAD_EIM_DA6__EIM_AD06		0xb0b1
+				MX6QDL_PAD_EIM_DA5__EIM_AD05		0xb0b1
+				MX6QDL_PAD_EIM_DA4__EIM_AD04		0xb0b1
+				MX6QDL_PAD_EIM_DA3__EIM_AD03		0xb0b1
+				MX6QDL_PAD_EIM_DA2__EIM_AD02		0xb0b1
+				MX6QDL_PAD_EIM_DA1__EIM_AD01		0xb0b1
+				MX6QDL_PAD_EIM_DA0__EIM_AD00		0xb0b1
+			>;
+		};
+	};
+};
+
+&ldb {
+	status = "okay";
+
+	lvds-channel at 0 {
+		fsl,data-mapping = "spwg";
+		fsl,data-width = <18>;
+		status = "okay";
+
+		display-timings {
+			native-mode = <&timing0>;
+			timing0: hsd100pxn1 {
+				clock-frequency = <65000000>;
+				hactive = <1024>;
+				vactive = <768>;
+				hback-porch = <220>;
+				hfront-porch = <40>;
+				vback-porch = <21>;
+				vfront-porch = <7>;
+				hsync-len = <60>;
+				vsync-len = <10>;
+			};
+		};
+	};
+};
+
+&pwm3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_pwm3>;
+	status = "okay";
+};
+
+&spdif {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_spdif>;
+	status = "okay";
+};
+
+&uart4 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart4>;
+	status = "okay";
+};
+
+&usbh1 {
+	vbus-supply = <&reg_usb_h1_vbus>;
+	status = "okay";
+};
+
+&usbotg {
+	vbus-supply = <&reg_usb_otg_vbus>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usbotg>;
+	status = "okay";
+};
+
+&usdhc3 {
+	pinctrl-names = "default", "state_100mhz", "state_200mhz";
+	pinctrl-0 = <&pinctrl_usdhc3>;
+	pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+	pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+	cd-gpios = <&gpio6 15 GPIO_ACTIVE_LOW>;
+	wp-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
+	status = "okay";
+};
+
+&weim {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_weim_nor &pinctrl_weim_cs0>;
+	ranges = <0 0 0x08000000 0x08000000>;
+	status = "disabled"; /* pin conflict with SPI NOR */
+
+	nor at 0,0 {
+		compatible = "cfi-flash";
+		reg = <0 0 0x02000000>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+		bank-width = <2>;
+		fsl,weim-cs-timing = <0x00620081 0x00000001 0x1c022000
+				0x0000c000 0x1404a38e 0x00000000>;
+	};
+};
diff --git a/arch/arm/dts/imx6qdl-sabresd.dtsi b/arch/arm/dts/imx6qdl-sabresd.dtsi
new file mode 100644
index 0000000..2cd5a9f
--- /dev/null
+++ b/arch/arm/dts/imx6qdl-sabresd.dtsi
@@ -0,0 +1,741 @@
+// SPDX-License-Identifier: GPL-2.0+
+//
+// Copyright 2012 Freescale Semiconductor, Inc.
+// Copyright 2011 Linaro Ltd.
+
+#include <dt-bindings/clock/imx6qdl-clock.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+	aliases {
+		mmc1 = &usdhc3;
+	};
+
+	chosen {
+		stdout-path = &uart1;
+	};
+
+	memory at 10000000 {
+		reg = <0x10000000 0x40000000>;
+	};
+
+	regulators {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		reg_usb_otg_vbus: regulator at 0 {
+			compatible = "regulator-fixed";
+			reg = <0>;
+			regulator-name = "usb_otg_vbus";
+			regulator-min-microvolt = <5000000>;
+			regulator-max-microvolt = <5000000>;
+			gpio = <&gpio3 22 0>;
+			enable-active-high;
+			vin-supply = <&swbst_reg>;
+		};
+
+		reg_usb_h1_vbus: regulator at 1 {
+			compatible = "regulator-fixed";
+			reg = <1>;
+			regulator-name = "usb_h1_vbus";
+			regulator-min-microvolt = <5000000>;
+			regulator-max-microvolt = <5000000>;
+			gpio = <&gpio1 29 0>;
+			enable-active-high;
+			vin-supply = <&swbst_reg>;
+		};
+
+		reg_audio: regulator at 2 {
+			compatible = "regulator-fixed";
+			reg = <2>;
+			regulator-name = "wm8962-supply";
+			gpio = <&gpio4 10 0>;
+			enable-active-high;
+		};
+
+		reg_pcie: regulator at 3 {
+			compatible = "regulator-fixed";
+			reg = <3>;
+			pinctrl-names = "default";
+			pinctrl-0 = <&pinctrl_pcie_reg>;
+			regulator-name = "MPCIE_3V3";
+			regulator-min-microvolt = <3300000>;
+			regulator-max-microvolt = <3300000>;
+			gpio = <&gpio3 19 0>;
+			enable-active-high;
+		};
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_gpio_keys>;
+
+		power {
+			label = "Power Button";
+			gpios = <&gpio3 29 GPIO_ACTIVE_LOW>;
+			wakeup-source;
+			linux,code = <KEY_POWER>;
+		};
+
+		volume-up {
+			label = "Volume Up";
+			gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
+			wakeup-source;
+			linux,code = <KEY_VOLUMEUP>;
+		};
+
+		volume-down {
+			label = "Volume Down";
+			gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
+			wakeup-source;
+			linux,code = <KEY_VOLUMEDOWN>;
+		};
+	};
+
+	sound {
+		compatible = "fsl,imx6q-sabresd-wm8962",
+			   "fsl,imx-audio-wm8962";
+		model = "wm8962-audio";
+		ssi-controller = <&ssi2>;
+		audio-codec = <&codec>;
+		audio-routing =
+			"Headphone Jack", "HPOUTL",
+			"Headphone Jack", "HPOUTR",
+			"Ext Spk", "SPKOUTL",
+			"Ext Spk", "SPKOUTR",
+			"AMIC", "MICBIAS",
+			"IN3R", "AMIC";
+		mux-int-port = <2>;
+		mux-ext-port = <3>;
+	};
+
+	backlight_lvds: backlight-lvds {
+		compatible = "pwm-backlight";
+		pwms = <&pwm1 0 5000000>;
+		brightness-levels = <0 4 8 16 32 64 128 255>;
+		default-brightness-level = <7>;
+		status = "okay";
+	};
+
+	leds {
+		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_gpio_leds>;
+
+		red {
+			gpios = <&gpio1 2 0>;
+			default-state = "on";
+		};
+	};
+
+	panel {
+		compatible = "hannstar,hsd100pxn1";
+		backlight = <&backlight_lvds>;
+
+		port {
+			panel_in: endpoint {
+				remote-endpoint = <&lvds0_out>;
+			};
+		};
+	};
+};
+
+&ipu1_csi0_from_ipu1_csi0_mux {
+	bus-width = <8>;
+	data-shift = <12>; /* Lines 19:12 used */
+	hsync-active = <1>;
+	vsync-active = <1>;
+};
+
+&ipu1_csi0_mux_from_parallel_sensor {
+	remote-endpoint = <&ov5642_to_ipu1_csi0_mux>;
+};
+
+&ipu1_csi0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_ipu1_csi0>;
+};
+
+&mipi_csi {
+	status = "okay";
+
+	port at 0 {
+		reg = <0>;
+
+		mipi_csi2_in: endpoint {
+			remote-endpoint = <&ov5640_to_mipi_csi2>;
+			clock-lanes = <0>;
+			data-lanes = <1 2>;
+		};
+	};
+};
+
+&audmux {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_audmux>;
+	status = "okay";
+};
+
+&clks {
+	assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
+			  <&clks IMX6QDL_CLK_LDB_DI1_SEL>;
+	assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
+				 <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
+};
+
+&ecspi1 {
+	cs-gpios = <&gpio4 9 0>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_ecspi1>;
+	status = "okay";
+
+	flash: m25p80 at 0 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "st,m25p32", "jedec,spi-nor";
+		spi-max-frequency = <20000000>;
+		reg = <0>;
+	};
+};
+
+&fec {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_enet>;
+	phy-mode = "rgmii";
+	phy-reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
+	status = "okay";
+};
+
+&hdmi {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_hdmi_cec>;
+	ddc-i2c-bus = <&i2c2>;
+	status = "okay";
+};
+
+&i2c1 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c1>;
+	status = "okay";
+
+	codec: wm8962 at 1a {
+		compatible = "wlf,wm8962";
+		reg = <0x1a>;
+		clocks = <&clks IMX6QDL_CLK_CKO>;
+		DCVDD-supply = <&reg_audio>;
+		DBVDD-supply = <&reg_audio>;
+		AVDD-supply = <&reg_audio>;
+		CPVDD-supply = <&reg_audio>;
+		MICVDD-supply = <&reg_audio>;
+		PLLVDD-supply = <&reg_audio>;
+		SPKVDD1-supply = <&reg_audio>;
+		SPKVDD2-supply = <&reg_audio>;
+		gpio-cfg = <
+			0x0000 /* 0:Default */
+			0x0000 /* 1:Default */
+			0x0013 /* 2:FN_DMICCLK */
+			0x0000 /* 3:Default */
+			0x8014 /* 4:FN_DMICCDAT */
+			0x0000 /* 5:Default */
+		>;
+	};
+
+	ov5642: camera at 3c {
+		compatible = "ovti,ov5642";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_ov5642>;
+		clocks = <&clks IMX6QDL_CLK_CKO>;
+		clock-names = "xclk";
+		reg = <0x3c>;
+		DOVDD-supply = <&vgen4_reg>; /* 1.8v */
+		AVDD-supply = <&vgen3_reg>;  /* 2.8v, rev C board is VGEN3
+						rev B board is VGEN5 */
+		DVDD-supply = <&vgen2_reg>;  /* 1.5v*/
+		powerdown-gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>;
+		reset-gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
+		status = "disabled";
+
+		port {
+			ov5642_to_ipu1_csi0_mux: endpoint {
+				remote-endpoint = <&ipu1_csi0_mux_from_parallel_sensor>;
+				bus-width = <8>;
+				hsync-active = <1>;
+				vsync-active = <1>;
+			};
+		};
+	};
+};
+
+&i2c2 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c2>;
+	status = "okay";
+
+	ov5640: camera at 3c {
+		compatible = "ovti,ov5640";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_ov5640>;
+		reg = <0x3c>;
+		clocks = <&clks IMX6QDL_CLK_CKO>;
+		clock-names = "xclk";
+		DOVDD-supply = <&vgen4_reg>; /* 1.8v */
+		AVDD-supply = <&vgen3_reg>;  /* 2.8v, rev C board is VGEN3
+						rev B board is VGEN5 */
+		DVDD-supply = <&vgen2_reg>;  /* 1.5v*/
+		powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
+		reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
+
+		port {
+			ov5640_to_mipi_csi2: endpoint {
+				remote-endpoint = <&mipi_csi2_in>;
+				clock-lanes = <0>;
+				data-lanes = <1 2>;
+			};
+		};
+	};
+
+	pmic: pfuze100 at 8 {
+		compatible = "fsl,pfuze100";
+		reg = <0x08>;
+
+		regulators {
+			sw1a_reg: sw1ab {
+				regulator-min-microvolt = <300000>;
+				regulator-max-microvolt = <1875000>;
+				regulator-boot-on;
+				regulator-always-on;
+				regulator-ramp-delay = <6250>;
+			};
+
+			sw1c_reg: sw1c {
+				regulator-min-microvolt = <300000>;
+				regulator-max-microvolt = <1875000>;
+				regulator-boot-on;
+				regulator-always-on;
+				regulator-ramp-delay = <6250>;
+			};
+
+			sw2_reg: sw2 {
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+				regulator-ramp-delay = <6250>;
+			};
+
+			sw3a_reg: sw3a {
+				regulator-min-microvolt = <400000>;
+				regulator-max-microvolt = <1975000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			sw3b_reg: sw3b {
+				regulator-min-microvolt = <400000>;
+				regulator-max-microvolt = <1975000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			sw4_reg: sw4 {
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-always-on;
+			};
+
+			swbst_reg: swbst {
+				regulator-min-microvolt = <5000000>;
+				regulator-max-microvolt = <5150000>;
+			};
+
+			snvs_reg: vsnvs {
+				regulator-min-microvolt = <1000000>;
+				regulator-max-microvolt = <3000000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			vref_reg: vrefddr {
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			vgen1_reg: vgen1 {
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <1550000>;
+			};
+
+			vgen2_reg: vgen2 {
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <1550000>;
+			};
+
+			vgen3_reg: vgen3 {
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+			};
+
+			vgen4_reg: vgen4 {
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-always-on;
+			};
+
+			vgen5_reg: vgen5 {
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-always-on;
+			};
+
+			vgen6_reg: vgen6 {
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-always-on;
+			};
+		};
+	};
+};
+
+&i2c3 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c3>;
+	status = "okay";
+
+	egalax_ts at 4 {
+		compatible = "eeti,egalax_ts";
+		reg = <0x04>;
+		interrupt-parent = <&gpio6>;
+		interrupts = <7 2>;
+		wakeup-gpios = <&gpio6 7 0>;
+	};
+};
+
+&iomuxc {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_hog>;
+
+	imx6qdl-sabresd {
+		pinctrl_hog: hoggrp {
+			fsl,pins = <
+				MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x1b0b0
+				MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x1b0b0
+				MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x1b0b0
+				MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x1b0b0
+				MX6QDL_PAD_GPIO_0__CCM_CLKO1    0x130b0
+				MX6QDL_PAD_NANDF_CLE__GPIO6_IO07 0x1b0b0
+				MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x1b0b0
+				MX6QDL_PAD_EIM_D22__GPIO3_IO22  0x1b0b0
+				MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25 0x1b0b0
+			>;
+		};
+
+		pinctrl_audmux: audmuxgrp {
+			fsl,pins = <
+				MX6QDL_PAD_CSI0_DAT7__AUD3_RXD		0x130b0
+				MX6QDL_PAD_CSI0_DAT4__AUD3_TXC		0x130b0
+				MX6QDL_PAD_CSI0_DAT5__AUD3_TXD		0x110b0
+				MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS		0x130b0
+			>;
+		};
+
+		pinctrl_ecspi1: ecspi1grp {
+			fsl,pins = <
+				MX6QDL_PAD_KEY_COL1__ECSPI1_MISO	0x100b1
+				MX6QDL_PAD_KEY_ROW0__ECSPI1_MOSI	0x100b1
+				MX6QDL_PAD_KEY_COL0__ECSPI1_SCLK	0x100b1
+				MX6QDL_PAD_KEY_ROW1__GPIO4_IO09		0x1b0b0
+			>;
+		};
+
+		pinctrl_enet: enetgrp {
+			fsl,pins = <
+				MX6QDL_PAD_ENET_MDIO__ENET_MDIO		0x1b0b0
+				MX6QDL_PAD_ENET_MDC__ENET_MDC		0x1b0b0
+				MX6QDL_PAD_RGMII_TXC__RGMII_TXC		0x1b030
+				MX6QDL_PAD_RGMII_TD0__RGMII_TD0		0x1b030
+				MX6QDL_PAD_RGMII_TD1__RGMII_TD1		0x1b030
+				MX6QDL_PAD_RGMII_TD2__RGMII_TD2		0x1b030
+				MX6QDL_PAD_RGMII_TD3__RGMII_TD3		0x1b030
+				MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL	0x1b030
+				MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK	0x1b0b0
+				MX6QDL_PAD_RGMII_RXC__RGMII_RXC		0x1b030
+				MX6QDL_PAD_RGMII_RD0__RGMII_RD0		0x1b030
+				MX6QDL_PAD_RGMII_RD1__RGMII_RD1		0x1b030
+				MX6QDL_PAD_RGMII_RD2__RGMII_RD2		0x1b030
+				MX6QDL_PAD_RGMII_RD3__RGMII_RD3		0x1b030
+				MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL	0x1b030
+				MX6QDL_PAD_GPIO_16__ENET_REF_CLK	0x4001b0a8
+			>;
+		};
+
+		pinctrl_gpio_keys: gpio_keysgrp {
+			fsl,pins = <
+				MX6QDL_PAD_EIM_D29__GPIO3_IO29 0x1b0b0
+				MX6QDL_PAD_GPIO_4__GPIO1_IO04  0x1b0b0
+				MX6QDL_PAD_GPIO_5__GPIO1_IO05  0x1b0b0
+			>;
+		};
+
+		pinctrl_hdmi_cec: hdmicecgrp {
+			fsl,pins = <
+				MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE	0x1f8b0
+			>;
+		};
+
+		pinctrl_i2c1: i2c1grp {
+			fsl,pins = <
+				MX6QDL_PAD_CSI0_DAT8__I2C1_SDA		0x4001b8b1
+				MX6QDL_PAD_CSI0_DAT9__I2C1_SCL		0x4001b8b1
+			>;
+		};
+
+		pinctrl_i2c2: i2c2grp {
+			fsl,pins = <
+				MX6QDL_PAD_KEY_COL3__I2C2_SCL		0x4001b8b1
+				MX6QDL_PAD_KEY_ROW3__I2C2_SDA		0x4001b8b1
+			>;
+		};
+
+		pinctrl_i2c3: i2c3grp {
+			fsl,pins = <
+				MX6QDL_PAD_GPIO_3__I2C3_SCL		0x4001b8b1
+				MX6QDL_PAD_GPIO_6__I2C3_SDA		0x4001b8b1
+			>;
+		};
+
+		pinctrl_ipu1_csi0: ipu1csi0grp {
+			fsl,pins = <
+				MX6QDL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12    0x1b0b0
+				MX6QDL_PAD_CSI0_DAT13__IPU1_CSI0_DATA13    0x1b0b0
+				MX6QDL_PAD_CSI0_DAT14__IPU1_CSI0_DATA14    0x1b0b0
+				MX6QDL_PAD_CSI0_DAT15__IPU1_CSI0_DATA15    0x1b0b0
+				MX6QDL_PAD_CSI0_DAT16__IPU1_CSI0_DATA16    0x1b0b0
+				MX6QDL_PAD_CSI0_DAT17__IPU1_CSI0_DATA17    0x1b0b0
+				MX6QDL_PAD_CSI0_DAT18__IPU1_CSI0_DATA18    0x1b0b0
+				MX6QDL_PAD_CSI0_DAT19__IPU1_CSI0_DATA19    0x1b0b0
+				MX6QDL_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK   0x1b0b0
+				MX6QDL_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC      0x1b0b0
+				MX6QDL_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC     0x1b0b0
+			>;
+		};
+
+		pinctrl_ov5640: ov5640grp {
+			fsl,pins = <
+				MX6QDL_PAD_SD1_DAT2__GPIO1_IO19 0x1b0b0
+				MX6QDL_PAD_SD1_CLK__GPIO1_IO20  0x1b0b0
+			>;
+		};
+
+		pinctrl_ov5642: ov5642grp {
+			fsl,pins = <
+				MX6QDL_PAD_SD1_DAT0__GPIO1_IO16 0x1b0b0
+				MX6QDL_PAD_SD1_DAT1__GPIO1_IO17 0x1b0b0
+			>;
+		};
+
+		pinctrl_pcie: pciegrp {
+			fsl,pins = <
+				MX6QDL_PAD_GPIO_17__GPIO7_IO12	0x1b0b0
+			>;
+		};
+
+		pinctrl_pcie_reg: pciereggrp {
+			fsl,pins = <
+				MX6QDL_PAD_EIM_D19__GPIO3_IO19	0x1b0b0
+			>;
+		};
+
+		pinctrl_pwm1: pwm1grp {
+			fsl,pins = <
+				MX6QDL_PAD_SD1_DAT3__PWM1_OUT		0x1b0b1
+			>;
+		};
+
+		pinctrl_uart1: uart1grp {
+			fsl,pins = <
+				MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA	0x1b0b1
+				MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA	0x1b0b1
+			>;
+		};
+
+		pinctrl_usbotg: usbotggrp {
+			fsl,pins = <
+				MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID	0x17059
+			>;
+		};
+
+		pinctrl_usdhc2: usdhc2grp {
+			fsl,pins = <
+				MX6QDL_PAD_SD2_CMD__SD2_CMD		0x17059
+				MX6QDL_PAD_SD2_CLK__SD2_CLK		0x10059
+				MX6QDL_PAD_SD2_DAT0__SD2_DATA0		0x17059
+				MX6QDL_PAD_SD2_DAT1__SD2_DATA1		0x17059
+				MX6QDL_PAD_SD2_DAT2__SD2_DATA2		0x17059
+				MX6QDL_PAD_SD2_DAT3__SD2_DATA3		0x17059
+				MX6QDL_PAD_NANDF_D4__SD2_DATA4		0x17059
+				MX6QDL_PAD_NANDF_D5__SD2_DATA5		0x17059
+				MX6QDL_PAD_NANDF_D6__SD2_DATA6		0x17059
+				MX6QDL_PAD_NANDF_D7__SD2_DATA7		0x17059
+			>;
+		};
+
+		pinctrl_usdhc3: usdhc3grp {
+			fsl,pins = <
+				MX6QDL_PAD_SD3_CMD__SD3_CMD		0x17059
+				MX6QDL_PAD_SD3_CLK__SD3_CLK		0x10059
+				MX6QDL_PAD_SD3_DAT0__SD3_DATA0		0x17059
+				MX6QDL_PAD_SD3_DAT1__SD3_DATA1		0x17059
+				MX6QDL_PAD_SD3_DAT2__SD3_DATA2		0x17059
+				MX6QDL_PAD_SD3_DAT3__SD3_DATA3		0x17059
+				MX6QDL_PAD_SD3_DAT4__SD3_DATA4		0x17059
+				MX6QDL_PAD_SD3_DAT5__SD3_DATA5		0x17059
+				MX6QDL_PAD_SD3_DAT6__SD3_DATA6		0x17059
+				MX6QDL_PAD_SD3_DAT7__SD3_DATA7		0x17059
+			>;
+		};
+
+		pinctrl_usdhc4: usdhc4grp {
+			fsl,pins = <
+				MX6QDL_PAD_SD4_CMD__SD4_CMD		0x17059
+				MX6QDL_PAD_SD4_CLK__SD4_CLK		0x10059
+				MX6QDL_PAD_SD4_DAT0__SD4_DATA0		0x17059
+				MX6QDL_PAD_SD4_DAT1__SD4_DATA1		0x17059
+				MX6QDL_PAD_SD4_DAT2__SD4_DATA2		0x17059
+				MX6QDL_PAD_SD4_DAT3__SD4_DATA3		0x17059
+				MX6QDL_PAD_SD4_DAT4__SD4_DATA4		0x17059
+				MX6QDL_PAD_SD4_DAT5__SD4_DATA5		0x17059
+				MX6QDL_PAD_SD4_DAT6__SD4_DATA6		0x17059
+				MX6QDL_PAD_SD4_DAT7__SD4_DATA7		0x17059
+			>;
+		};
+
+		pinctrl_wdog: wdoggrp {
+			fsl,pins = <
+				MX6QDL_PAD_GPIO_1__WDOG2_B		0x1b0b0
+			>;
+		};
+	};
+
+	gpio_leds {
+		pinctrl_gpio_leds: gpioledsgrp {
+			fsl,pins = <
+				MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x1b0b0
+			>;
+		};
+	};
+};
+
+&ldb {
+	status = "okay";
+
+	lvds-channel at 1 {
+		fsl,data-mapping = "spwg";
+		fsl,data-width = <18>;
+		status = "okay";
+
+		port at 4 {
+			reg = <4>;
+
+			lvds0_out: endpoint {
+				remote-endpoint = <&panel_in>;
+			};
+		};
+	};
+};
+
+&pcie {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_pcie>;
+	reset-gpio = <&gpio7 12 GPIO_ACTIVE_LOW>;
+	vpcie-supply = <&reg_pcie>;
+	status = "okay";
+};
+
+&pwm1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_pwm1>;
+	status = "okay";
+};
+
+&reg_arm {
+       vin-supply = <&sw1a_reg>;
+};
+
+&reg_pu {
+       vin-supply = <&sw1c_reg>;
+};
+
+&reg_soc {
+       vin-supply = <&sw1c_reg>;
+};
+
+&snvs_poweroff {
+	status = "okay";
+};
+
+&ssi2 {
+	status = "okay";
+};
+
+&uart1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart1>;
+	status = "okay";
+};
+
+&usbh1 {
+	vbus-supply = <&reg_usb_h1_vbus>;
+	status = "okay";
+};
+
+&usbotg {
+	vbus-supply = <&reg_usb_otg_vbus>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usbotg>;
+	disable-over-current;
+	status = "okay";
+};
+
+&usdhc2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usdhc2>;
+	bus-width = <8>;
+	cd-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
+	wp-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
+	status = "okay";
+};
+
+&usdhc3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usdhc3>;
+	bus-width = <8>;
+	cd-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
+	wp-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
+	status = "okay";
+};
+
+&usdhc4 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usdhc4>;
+	bus-width = <8>;
+	non-removable;
+	no-1-8-v;
+	status = "okay";
+};
+
+&wdog1 {
+	status = "disabled";
+};
+
+&wdog2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_wdog>;
+	fsl,ext-reset-output;
+	status = "okay";
+};
diff --git a/arch/arm/dts/imx6qdl.dtsi b/arch/arm/dts/imx6qdl.dtsi
index b13b0b2..e4daf15 100644
--- a/arch/arm/dts/imx6qdl.dtsi
+++ b/arch/arm/dts/imx6qdl.dtsi
@@ -1,21 +1,23 @@
-/*
- * Copyright 2011 Freescale Semiconductor, Inc.
- * Copyright 2011 Linaro Ltd.
- *
- * The code contained herein is licensed under the GNU General Public
- * License. You may obtain a copy of the GNU General Public License
- * Version 2 or later at the following locations:
- *
- * http://www.opensource.org/licenses/gpl-license.html
- * http://www.gnu.org/copyleft/gpl.html
- */
+// SPDX-License-Identifier: GPL-2.0+
+//
+// Copyright 2011 Freescale Semiconductor, Inc.
+// Copyright 2011 Linaro Ltd.
 
 #include <dt-bindings/clock/imx6qdl-clock.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 
-#include "skeleton.dtsi"
-
 / {
+	#address-cells = <1>;
+	#size-cells = <1>;
+	/*
+	 * The decompressor and also some bootloaders rely on a
+	 * pre-existing /chosen node to be available to insert the
+	 * command line and merge other ATAGS info.
+	 * Also for U-Boot there must be a pre-existing /memory node.
+	 */
+	chosen {};
+	memory { device_type = "memory"; };
+
 	aliases {
 		ethernet0 = &fec;
 		can0 = &can1;
@@ -49,9 +51,6 @@
 	};
 
 	clocks {
-		#address-cells = <1>;
-		#size-cells = <0>;
-
 		ckil {
 			compatible = "fsl,imx-ckil", "fixed-clock";
 			#clock-cells = <0>;
@@ -71,6 +70,75 @@
 		};
 	};
 
+	tempmon: tempmon {
+		compatible = "fsl,imx6q-tempmon";
+		interrupt-parent = <&gpc>;
+		interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>;
+		fsl,tempmon = <&anatop>;
+		fsl,tempmon-data = <&ocotp>;
+		clocks = <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
+	};
+
+	ldb: ldb {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "fsl,imx6q-ldb", "fsl,imx53-ldb";
+		gpr = <&gpr>;
+		status = "disabled";
+
+		lvds-channel at 0 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <0>;
+			status = "disabled";
+
+			port at 0 {
+				reg = <0>;
+
+				lvds0_mux_0: endpoint {
+					remote-endpoint = <&ipu1_di0_lvds0>;
+				};
+			};
+
+			port at 1 {
+				reg = <1>;
+
+				lvds0_mux_1: endpoint {
+					remote-endpoint = <&ipu1_di1_lvds0>;
+				};
+			};
+		};
+
+		lvds-channel at 1 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <1>;
+			status = "disabled";
+
+			port at 0 {
+				reg = <0>;
+
+				lvds1_mux_0: endpoint {
+					remote-endpoint = <&ipu1_di0_lvds1>;
+				};
+			};
+
+			port at 1 {
+				reg = <1>;
+
+				lvds1_mux_1: endpoint {
+					remote-endpoint = <&ipu1_di1_lvds1>;
+				};
+			};
+		};
+	};
+
+	pmu: pmu {
+		compatible = "arm,cortex-a9-pmu";
+		interrupt-parent = <&gpc>;
+		interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>;
+	};
+
 	soc {
 		#address-cells = <1>;
 		#size-cells = <1>;
@@ -78,7 +146,7 @@
 		interrupt-parent = <&gpc>;
 		ranges;
 
-		dma_apbh: dma-apbh at 00110000 {
+		dma_apbh: dma-apbh at 110000 {
 			compatible = "fsl,imx6q-dma-apbh", "fsl,imx28-dma-apbh";
 			reg = <0x00110000 0x2000>;
 			interrupts = <0 13 IRQ_TYPE_LEVEL_HIGH>,
@@ -91,7 +159,7 @@
 			clocks = <&clks IMX6QDL_CLK_APBH_DMA>;
 		};
 
-		gpmi: gpmi-nand at 00112000 {
+		gpmi: gpmi-nand at 112000 {
 			compatible = "fsl,imx6q-gpmi-nand";
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -111,7 +179,7 @@
 			status = "disabled";
 		};
 
-		hdmi: hdmi at 0120000 {
+		hdmi: hdmi at 120000 {
 			#address-cells = <1>;
 			#size-cells = <0>;
 			reg = <0x00120000 0x9000>;
@@ -139,7 +207,7 @@
 			};
 		};
 
-		gpu_3d: gpu at 00130000 {
+		gpu_3d: gpu at 130000 {
 			compatible = "vivante,gc";
 			reg = <0x00130000 0x4000>;
 			interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH>;
@@ -147,20 +215,20 @@
 				 <&clks IMX6QDL_CLK_GPU3D_CORE>,
 				 <&clks IMX6QDL_CLK_GPU3D_SHADER>;
 			clock-names = "bus", "core", "shader";
-			power-domains = <&gpc 1>;
+			power-domains = <&pd_pu>;
 		};
 
-		gpu_2d: gpu at 00134000 {
+		gpu_2d: gpu at 134000 {
 			compatible = "vivante,gc";
 			reg = <0x00134000 0x4000>;
 			interrupts = <0 10 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&clks IMX6QDL_CLK_GPU2D_AXI>,
 				 <&clks IMX6QDL_CLK_GPU2D_CORE>;
 			clock-names = "bus", "core";
-			power-domains = <&gpc 1>;
+			power-domains = <&pd_pu>;
 		};
 
-		timer at 00a00600 {
+		timer at a00600 {
 			compatible = "arm,cortex-a9-twd-timer";
 			reg = <0x00a00600 0x20>;
 			interrupts = <1 13 0xf01>;
@@ -168,7 +236,7 @@
 			clocks = <&clks IMX6QDL_CLK_TWD>;
 		};
 
-		intc: interrupt-controller at 00a01000 {
+		intc: interrupt-controller at a01000 {
 			compatible = "arm,cortex-a9-gic";
 			#interrupt-cells = <3>;
 			interrupt-controller;
@@ -177,7 +245,7 @@
 			interrupt-parent = <&intc>;
 		};
 
-		L2: l2-cache at 00a02000 {
+		L2: l2-cache at a02000 {
 			compatible = "arm,pl310-cache";
 			reg = <0x00a02000 0x1000>;
 			interrupts = <0 92 IRQ_TYPE_LEVEL_HIGH>;
@@ -188,7 +256,7 @@
 			arm,shared-override;
 		};
 
-		pcie: pcie at 0x01000000 {
+		pcie: pcie at 1ffc000 {
 			compatible = "fsl,imx6q-pcie", "snps,dw-pcie";
 			reg = <0x01ffc000 0x04000>,
 			      <0x01f00000 0x80000>;
@@ -196,6 +264,7 @@
 			#address-cells = <3>;
 			#size-cells = <2>;
 			device_type = "pci";
+			bus-range = <0x00 0xff>;
 			ranges = <0x81000000 0 0          0x01f80000 0 0x00010000 /* downstream I/O */
 				  0x82000000 0 0x01000000 0x01000000 0 0x00f00000>; /* non-prefetchable memory */
 			num-lanes = <1>;
@@ -204,9 +273,9 @@
 			#interrupt-cells = <1>;
 			interrupt-map-mask = <0 0 0 0x7>;
 			interrupt-map = <0 0 0 1 &gpc GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
-			                <0 0 0 2 &gpc GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
-			                <0 0 0 3 &gpc GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
-			                <0 0 0 4 &gpc GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
+					<0 0 0 2 &gpc GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
+					<0 0 0 3 &gpc GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
+					<0 0 0 4 &gpc GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&clks IMX6QDL_CLK_PCIE_AXI>,
 				 <&clks IMX6QDL_CLK_LVDS1_GATE>,
 				 <&clks IMX6QDL_CLK_PCIE_REF_125M>;
@@ -214,26 +283,21 @@
 			status = "disabled";
 		};
 
-		pmu {
-			compatible = "arm,cortex-a9-pmu";
-			interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>;
-		};
-
-		aips-bus at 02000000 { /* AIPS1 */
+		aips-bus at 2000000 { /* AIPS1 */
 			compatible = "fsl,aips-bus", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
 			reg = <0x02000000 0x100000>;
 			ranges;
 
-			spba-bus at 02000000 {
+			spba-bus at 2000000 {
 				compatible = "fsl,spba-bus", "simple-bus";
 				#address-cells = <1>;
 				#size-cells = <1>;
 				reg = <0x02000000 0x40000>;
 				ranges;
 
-				spdif: spdif at 02004000 {
+				spdif: spdif at 2004000 {
 					compatible = "fsl,imx35-spdif";
 					reg = <0x02004000 0x4000>;
 					interrupts = <0 52 IRQ_TYPE_LEVEL_HIGH>;
@@ -253,7 +317,7 @@
 					status = "disabled";
 				};
 
-				ecspi1: ecspi at 02008000 {
+				ecspi1: spi at 2008000 {
 					#address-cells = <1>;
 					#size-cells = <0>;
 					compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
@@ -267,7 +331,7 @@
 					status = "disabled";
 				};
 
-				ecspi2: ecspi at 0200c000 {
+				ecspi2: spi at 200c000 {
 					#address-cells = <1>;
 					#size-cells = <0>;
 					compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
@@ -281,7 +345,7 @@
 					status = "disabled";
 				};
 
-				ecspi3: ecspi at 02010000 {
+				ecspi3: spi at 2010000 {
 					#address-cells = <1>;
 					#size-cells = <0>;
 					compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
@@ -295,7 +359,7 @@
 					status = "disabled";
 				};
 
-				ecspi4: ecspi at 02014000 {
+				ecspi4: spi at 2014000 {
 					#address-cells = <1>;
 					#size-cells = <0>;
 					compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
@@ -309,7 +373,7 @@
 					status = "disabled";
 				};
 
-				uart1: serial at 02020000 {
+				uart1: serial at 2020000 {
 					compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
 					reg = <0x02020000 0x4000>;
 					interrupts = <0 26 IRQ_TYPE_LEVEL_HIGH>;
@@ -321,7 +385,7 @@
 					status = "disabled";
 				};
 
-				esai: esai at 02024000 {
+				esai: esai at 2024000 {
 					#sound-dai-cells = <0>;
 					compatible = "fsl,imx35-esai";
 					reg = <0x02024000 0x4000>;
@@ -337,7 +401,7 @@
 					status = "disabled";
 				};
 
-				ssi1: ssi at 02028000 {
+				ssi1: ssi at 2028000 {
 					#sound-dai-cells = <0>;
 					compatible = "fsl,imx6q-ssi",
 							"fsl,imx51-ssi";
@@ -353,7 +417,7 @@
 					status = "disabled";
 				};
 
-				ssi2: ssi at 0202c000 {
+				ssi2: ssi at 202c000 {
 					#sound-dai-cells = <0>;
 					compatible = "fsl,imx6q-ssi",
 							"fsl,imx51-ssi";
@@ -369,7 +433,7 @@
 					status = "disabled";
 				};
 
-				ssi3: ssi at 02030000 {
+				ssi3: ssi at 2030000 {
 					#sound-dai-cells = <0>;
 					compatible = "fsl,imx6q-ssi",
 							"fsl,imx51-ssi";
@@ -385,7 +449,7 @@
 					status = "disabled";
 				};
 
-				asrc: asrc at 02034000 {
+				asrc: asrc at 2034000 {
 					compatible = "fsl,imx53-asrc";
 					reg = <0x02034000 0x4000>;
 					interrupts = <0 50 IRQ_TYPE_LEVEL_HIGH>;
@@ -410,12 +474,12 @@
 					status = "okay";
 				};
 
-				spba at 0203c000 {
+				spba at 203c000 {
 					reg = <0x0203c000 0x4000>;
 				};
 			};
 
-			vpu: vpu at 02040000 {
+			vpu: vpu at 2040000 {
 				compatible = "cnm,coda960";
 				reg = <0x02040000 0x3c000>;
 				interrupts = <0 12 IRQ_TYPE_LEVEL_HIGH>,
@@ -424,16 +488,16 @@
 				clocks = <&clks IMX6QDL_CLK_VPU_AXI>,
 					 <&clks IMX6QDL_CLK_MMDC_CH0_AXI>;
 				clock-names = "per", "ahb";
-				power-domains = <&gpc 1>;
+				power-domains = <&pd_pu>;
 				resets = <&src 1>;
 				iram = <&ocram>;
 			};
 
-			aipstz at 0207c000 { /* AIPSTZ1 */
+			aipstz at 207c000 { /* AIPSTZ1 */
 				reg = <0x0207c000 0x4000>;
 			};
 
-			pwm1: pwm at 02080000 {
+			pwm1: pwm at 2080000 {
 				#pwm-cells = <2>;
 				compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
 				reg = <0x02080000 0x4000>;
@@ -444,7 +508,7 @@
 				status = "disabled";
 			};
 
-			pwm2: pwm at 02084000 {
+			pwm2: pwm at 2084000 {
 				#pwm-cells = <2>;
 				compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
 				reg = <0x02084000 0x4000>;
@@ -455,7 +519,7 @@
 				status = "disabled";
 			};
 
-			pwm3: pwm at 02088000 {
+			pwm3: pwm at 2088000 {
 				#pwm-cells = <2>;
 				compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
 				reg = <0x02088000 0x4000>;
@@ -466,7 +530,7 @@
 				status = "disabled";
 			};
 
-			pwm4: pwm at 0208c000 {
+			pwm4: pwm at 208c000 {
 				#pwm-cells = <2>;
 				compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
 				reg = <0x0208c000 0x4000>;
@@ -477,7 +541,7 @@
 				status = "disabled";
 			};
 
-			can1: flexcan at 02090000 {
+			can1: flexcan at 2090000 {
 				compatible = "fsl,imx6q-flexcan";
 				reg = <0x02090000 0x4000>;
 				interrupts = <0 110 IRQ_TYPE_LEVEL_HIGH>;
@@ -487,7 +551,7 @@
 				status = "disabled";
 			};
 
-			can2: flexcan at 02094000 {
+			can2: flexcan at 2094000 {
 				compatible = "fsl,imx6q-flexcan";
 				reg = <0x02094000 0x4000>;
 				interrupts = <0 111 IRQ_TYPE_LEVEL_HIGH>;
@@ -497,7 +561,7 @@
 				status = "disabled";
 			};
 
-			gpt: gpt at 02098000 {
+			gpt: gpt at 2098000 {
 				compatible = "fsl,imx6q-gpt", "fsl,imx31-gpt";
 				reg = <0x02098000 0x4000>;
 				interrupts = <0 55 IRQ_TYPE_LEVEL_HIGH>;
@@ -507,7 +571,7 @@
 				clock-names = "ipg", "per", "osc_per";
 			};
 
-			gpio1: gpio at 0209c000 {
+			gpio1: gpio at 209c000 {
 				compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
 				reg = <0x0209c000 0x4000>;
 				interrupts = <0 66 IRQ_TYPE_LEVEL_HIGH>,
@@ -518,7 +582,7 @@
 				#interrupt-cells = <2>;
 			};
 
-			gpio2: gpio at 020a0000 {
+			gpio2: gpio at 20a0000 {
 				compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
 				reg = <0x020a0000 0x4000>;
 				interrupts = <0 68 IRQ_TYPE_LEVEL_HIGH>,
@@ -529,7 +593,7 @@
 				#interrupt-cells = <2>;
 			};
 
-			gpio3: gpio at 020a4000 {
+			gpio3: gpio at 20a4000 {
 				compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
 				reg = <0x020a4000 0x4000>;
 				interrupts = <0 70 IRQ_TYPE_LEVEL_HIGH>,
@@ -540,7 +604,7 @@
 				#interrupt-cells = <2>;
 			};
 
-			gpio4: gpio at 020a8000 {
+			gpio4: gpio at 20a8000 {
 				compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
 				reg = <0x020a8000 0x4000>;
 				interrupts = <0 72 IRQ_TYPE_LEVEL_HIGH>,
@@ -551,7 +615,7 @@
 				#interrupt-cells = <2>;
 			};
 
-			gpio5: gpio at 020ac000 {
+			gpio5: gpio at 20ac000 {
 				compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
 				reg = <0x020ac000 0x4000>;
 				interrupts = <0 74 IRQ_TYPE_LEVEL_HIGH>,
@@ -562,7 +626,7 @@
 				#interrupt-cells = <2>;
 			};
 
-			gpio6: gpio at 020b0000 {
+			gpio6: gpio at 20b0000 {
 				compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
 				reg = <0x020b0000 0x4000>;
 				interrupts = <0 76 IRQ_TYPE_LEVEL_HIGH>,
@@ -573,7 +637,7 @@
 				#interrupt-cells = <2>;
 			};
 
-			gpio7: gpio at 020b4000 {
+			gpio7: gpio at 20b4000 {
 				compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
 				reg = <0x020b4000 0x4000>;
 				interrupts = <0 78 IRQ_TYPE_LEVEL_HIGH>,
@@ -584,7 +648,7 @@
 				#interrupt-cells = <2>;
 			};
 
-			kpp: kpp at 020b8000 {
+			kpp: kpp at 20b8000 {
 				compatible = "fsl,imx6q-kpp", "fsl,imx21-kpp";
 				reg = <0x020b8000 0x4000>;
 				interrupts = <0 82 IRQ_TYPE_LEVEL_HIGH>;
@@ -592,14 +656,14 @@
 				status = "disabled";
 			};
 
-			wdog1: wdog at 020bc000 {
+			wdog1: wdog at 20bc000 {
 				compatible = "fsl,imx6q-wdt", "fsl,imx21-wdt";
 				reg = <0x020bc000 0x4000>;
 				interrupts = <0 80 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clks IMX6QDL_CLK_DUMMY>;
 			};
 
-			wdog2: wdog at 020c0000 {
+			wdog2: wdog at 20c0000 {
 				compatible = "fsl,imx6q-wdt", "fsl,imx21-wdt";
 				reg = <0x020c0000 0x4000>;
 				interrupts = <0 81 IRQ_TYPE_LEVEL_HIGH>;
@@ -607,7 +671,7 @@
 				status = "disabled";
 			};
 
-			clks: ccm at 020c4000 {
+			clks: ccm at 20c4000 {
 				compatible = "fsl,imx6q-ccm";
 				reg = <0x020c4000 0x4000>;
 				interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>,
@@ -615,7 +679,7 @@
 				#clock-cells = <1>;
 			};
 
-			anatop: anatop at 020c8000 {
+			anatop: anatop at 20c8000 {
 				compatible = "fsl,imx6q-anatop", "syscon", "simple-bus";
 				reg = <0x020c8000 0x1000>;
 				interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>,
@@ -625,8 +689,8 @@
 				regulator-1p1 {
 					compatible = "fsl,anatop-regulator";
 					regulator-name = "vdd1p1";
-					regulator-min-microvolt = <800000>;
-					regulator-max-microvolt = <1375000>;
+					regulator-min-microvolt = <1000000>;
+					regulator-max-microvolt = <1200000>;
 					regulator-always-on;
 					anatop-reg-offset = <0x110>;
 					anatop-vol-bit-shift = <8>;
@@ -634,6 +698,7 @@
 					anatop-min-bit-val = <4>;
 					anatop-min-voltage = <800000>;
 					anatop-max-voltage = <1375000>;
+					anatop-enable-bit = <0>;
 				};
 
 				regulator-3p0 {
@@ -648,20 +713,22 @@
 					anatop-min-bit-val = <0>;
 					anatop-min-voltage = <2625000>;
 					anatop-max-voltage = <3400000>;
+					anatop-enable-bit = <0>;
 				};
 
 				regulator-2p5 {
 					compatible = "fsl,anatop-regulator";
 					regulator-name = "vdd2p5";
-					regulator-min-microvolt = <2000000>;
+					regulator-min-microvolt = <2250000>;
 					regulator-max-microvolt = <2750000>;
 					regulator-always-on;
 					anatop-reg-offset = <0x130>;
 					anatop-vol-bit-shift = <8>;
 					anatop-vol-bit-width = <5>;
 					anatop-min-bit-val = <0>;
-					anatop-min-voltage = <2000000>;
-					anatop-max-voltage = <2750000>;
+					anatop-min-voltage = <2100000>;
+					anatop-max-voltage = <2875000>;
+					anatop-enable-bit = <0>;
 				};
 
 				reg_arm: regulator-vddcore {
@@ -716,15 +783,7 @@
 				};
 			};
 
-			tempmon: tempmon {
-				compatible = "fsl,imx6q-tempmon";
-				interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>;
-				fsl,tempmon = <&anatop>;
-				fsl,tempmon-data = <&ocotp>;
-				clocks = <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
-			};
-
-			usbphy1: usbphy at 020c9000 {
+			usbphy1: usbphy at 20c9000 {
 				compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
 				reg = <0x020c9000 0x1000>;
 				interrupts = <0 44 IRQ_TYPE_LEVEL_HIGH>;
@@ -732,7 +791,7 @@
 				fsl,anatop = <&anatop>;
 			};
 
-			usbphy2: usbphy at 020ca000 {
+			usbphy2: usbphy at 20ca000 {
 				compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
 				reg = <0x020ca000 0x1000>;
 				interrupts = <0 45 IRQ_TYPE_LEVEL_HIGH>;
@@ -740,7 +799,7 @@
 				fsl,anatop = <&anatop>;
 			};
 
-			snvs: snvs at 020cc000 {
+			snvs: snvs at 20cc000 {
 				compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
 				reg = <0x020cc000 0x4000>;
 
@@ -756,22 +815,27 @@
 					compatible = "syscon-poweroff";
 					regmap = <&snvs>;
 					offset = <0x38>;
+					value = <0x60>;
 					mask = <0x60>;
 					status = "disabled";
 				};
+
+				snvs_lpgpr: snvs-lpgpr {
+					compatible = "fsl,imx6q-snvs-lpgpr";
+				};
 			};
 
-			epit1: epit at 020d0000 { /* EPIT1 */
+			epit1: epit at 20d0000 { /* EPIT1 */
 				reg = <0x020d0000 0x4000>;
 				interrupts = <0 56 IRQ_TYPE_LEVEL_HIGH>;
 			};
 
-			epit2: epit at 020d4000 { /* EPIT2 */
+			epit2: epit at 20d4000 { /* EPIT2 */
 				reg = <0x020d4000 0x4000>;
 				interrupts = <0 57 IRQ_TYPE_LEVEL_HIGH>;
 			};
 
-			src: src at 020d8000 {
+			src: src at 20d8000 {
 				compatible = "fsl,imx6q-src", "fsl,imx51-src";
 				reg = <0x020d8000 0x4000>;
 				interrupts = <0 91 IRQ_TYPE_LEVEL_HIGH>,
@@ -779,7 +843,7 @@
 				#reset-cells = <1>;
 			};
 
-			gpc: gpc at 020dc000 {
+			gpc: gpc at 20dc000 {
 				compatible = "fsl,imx6q-gpc";
 				reg = <0x020dc000 0x4000>;
 				interrupt-controller;
@@ -787,91 +851,57 @@
 				interrupts = <0 89 IRQ_TYPE_LEVEL_HIGH>,
 					     <0 90 IRQ_TYPE_LEVEL_HIGH>;
 				interrupt-parent = <&intc>;
-				pu-supply = <&reg_pu>;
-				clocks = <&clks IMX6QDL_CLK_GPU3D_CORE>,
-					 <&clks IMX6QDL_CLK_GPU3D_SHADER>,
-					 <&clks IMX6QDL_CLK_GPU2D_CORE>,
-					 <&clks IMX6QDL_CLK_GPU2D_AXI>,
-					 <&clks IMX6QDL_CLK_OPENVG_AXI>,
-					 <&clks IMX6QDL_CLK_VPU_AXI>;
-				#power-domain-cells = <1>;
-			};
-
-			gpr: iomuxc-gpr at 020e0000 {
-				compatible = "fsl,imx6q-iomuxc-gpr", "syscon";
-				reg = <0x020e0000 0x38>;
-			};
-
-			iomuxc: iomuxc at 020e0000 {
-				compatible = "fsl,imx6dl-iomuxc", "fsl,imx6q-iomuxc";
-				reg = <0x020e0000 0x4000>;
-			};
-
-			ldb: ldb at 020e0008 {
-				#address-cells = <1>;
-				#size-cells = <0>;
-				compatible = "fsl,imx6q-ldb", "fsl,imx53-ldb";
-				gpr = <&gpr>;
-				status = "disabled";
+				clocks = <&clks IMX6QDL_CLK_IPG>;
+				clock-names = "ipg";
 
-				lvds-channel at 0 {
+				pgc {
 					#address-cells = <1>;
 					#size-cells = <0>;
-					reg = <0>;
-					status = "disabled";
 
-					port at 0 {
+					power-domain at 0 {
 						reg = <0>;
-
-						lvds0_mux_0: endpoint {
-							remote-endpoint = <&ipu1_di0_lvds0>;
-						};
+						#power-domain-cells = <0>;
 					};
-
-					port at 1 {
+					pd_pu: power-domain at 1 {
 						reg = <1>;
-
-						lvds0_mux_1: endpoint {
-							remote-endpoint = <&ipu1_di1_lvds0>;
-						};
+						#power-domain-cells = <0>;
+						power-supply = <&reg_pu>;
+						clocks = <&clks IMX6QDL_CLK_GPU3D_CORE>,
+						         <&clks IMX6QDL_CLK_GPU3D_SHADER>,
+						         <&clks IMX6QDL_CLK_GPU2D_CORE>,
+						         <&clks IMX6QDL_CLK_GPU2D_AXI>,
+						         <&clks IMX6QDL_CLK_OPENVG_AXI>,
+						         <&clks IMX6QDL_CLK_VPU_AXI>;
 					};
 				};
+			};
 
-				lvds-channel at 1 {
-					#address-cells = <1>;
-					#size-cells = <0>;
-					reg = <1>;
-					status = "disabled";
-
-					port at 0 {
-						reg = <0>;
-
-						lvds1_mux_0: endpoint {
-							remote-endpoint = <&ipu1_di0_lvds1>;
-						};
-					};
+			gpr: iomuxc-gpr at 20e0000 {
+				compatible = "fsl,imx6q-iomuxc-gpr", "syscon", "simple-mfd";
+				reg = <0x20e0000 0x38>;
 
-					port at 1 {
-						reg = <1>;
-
-						lvds1_mux_1: endpoint {
-							remote-endpoint = <&ipu1_di1_lvds1>;
-						};
-					};
+				mux: mux-controller {
+					compatible = "mmio-mux";
+					#mux-control-cells = <1>;
 				};
 			};
 
-			dcic1: dcic at 020e4000 {
+			iomuxc: iomuxc at 20e0000 {
+				compatible = "fsl,imx6dl-iomuxc", "fsl,imx6q-iomuxc";
+				reg = <0x20e0000 0x4000>;
+			};
+
+			dcic1: dcic at 20e4000 {
 				reg = <0x020e4000 0x4000>;
 				interrupts = <0 124 IRQ_TYPE_LEVEL_HIGH>;
 			};
 
-			dcic2: dcic at 020e8000 {
+			dcic2: dcic at 20e8000 {
 				reg = <0x020e8000 0x4000>;
 				interrupts = <0 125 IRQ_TYPE_LEVEL_HIGH>;
 			};
 
-			sdma: sdma at 020ec000 {
+			sdma: sdma at 20ec000 {
 				compatible = "fsl,imx6q-sdma", "fsl,imx35-sdma";
 				reg = <0x020ec000 0x4000>;
 				interrupts = <0 2 IRQ_TYPE_LEVEL_HIGH>;
@@ -883,7 +913,7 @@
 			};
 		};
 
-		aips-bus at 02100000 { /* AIPS2 */
+		aips-bus at 2100000 { /* AIPS2 */
 			compatible = "fsl,aips-bus", "simple-bus";
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -892,7 +922,6 @@
 
 			crypto: caam at 2100000 {
 				compatible = "fsl,sec-v4.0";
-				fsl,sec-era = <4>;
 				#address-cells = <1>;
 				#size-cells = <1>;
 				reg = <0x2100000 0x10000>;
@@ -916,11 +945,11 @@
 				};
 			};
 
-			aipstz at 0217c000 { /* AIPSTZ2 */
+			aipstz at 217c000 { /* AIPSTZ2 */
 				reg = <0x0217c000 0x4000>;
 			};
 
-			usbotg: usb at 02184000 {
+			usbotg: usb at 2184000 {
 				compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
 				reg = <0x02184000 0x200>;
 				interrupts = <0 43 IRQ_TYPE_LEVEL_HIGH>;
@@ -933,7 +962,7 @@
 				status = "disabled";
 			};
 
-			usbh1: usb at 02184200 {
+			usbh1: usb at 2184200 {
 				compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
 				reg = <0x02184200 0x200>;
 				interrupts = <0 40 IRQ_TYPE_LEVEL_HIGH>;
@@ -947,7 +976,7 @@
 				status = "disabled";
 			};
 
-			usbh2: usb at 02184400 {
+			usbh2: usb at 2184400 {
 				compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
 				reg = <0x02184400 0x200>;
 				interrupts = <0 41 IRQ_TYPE_LEVEL_HIGH>;
@@ -960,7 +989,7 @@
 				status = "disabled";
 			};
 
-			usbh3: usb at 02184600 {
+			usbh3: usb at 2184600 {
 				compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
 				reg = <0x02184600 0x200>;
 				interrupts = <0 42 IRQ_TYPE_LEVEL_HIGH>;
@@ -973,16 +1002,17 @@
 				status = "disabled";
 			};
 
-			usbmisc: usbmisc at 02184800 {
+			usbmisc: usbmisc at 2184800 {
 				#index-cells = <1>;
 				compatible = "fsl,imx6q-usbmisc";
 				reg = <0x02184800 0x200>;
 				clocks = <&clks IMX6QDL_CLK_USBOH3>;
 			};
 
-			fec: ethernet at 02188000 {
+			fec: ethernet at 2188000 {
 				compatible = "fsl,imx6q-fec";
 				reg = <0x02188000 0x4000>;
+				interrupt-names = "int0", "pps";
 				interrupts-extended =
 					<&intc 0 118 IRQ_TYPE_LEVEL_HIGH>,
 					<&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
@@ -993,14 +1023,14 @@
 				status = "disabled";
 			};
 
-			mlb at 0218c000 {
+			mlb at 218c000 {
 				reg = <0x0218c000 0x4000>;
 				interrupts = <0 53 IRQ_TYPE_LEVEL_HIGH>,
 					     <0 117 IRQ_TYPE_LEVEL_HIGH>,
 					     <0 126 IRQ_TYPE_LEVEL_HIGH>;
 			};
 
-			usdhc1: usdhc at 02190000 {
+			usdhc1: usdhc at 2190000 {
 				compatible = "fsl,imx6q-usdhc";
 				reg = <0x02190000 0x4000>;
 				interrupts = <0 22 IRQ_TYPE_LEVEL_HIGH>;
@@ -1012,7 +1042,7 @@
 				status = "disabled";
 			};
 
-			usdhc2: usdhc at 02194000 {
+			usdhc2: usdhc at 2194000 {
 				compatible = "fsl,imx6q-usdhc";
 				reg = <0x02194000 0x4000>;
 				interrupts = <0 23 IRQ_TYPE_LEVEL_HIGH>;
@@ -1024,7 +1054,7 @@
 				status = "disabled";
 			};
 
-			usdhc3: usdhc at 02198000 {
+			usdhc3: usdhc at 2198000 {
 				compatible = "fsl,imx6q-usdhc";
 				reg = <0x02198000 0x4000>;
 				interrupts = <0 24 IRQ_TYPE_LEVEL_HIGH>;
@@ -1036,7 +1066,7 @@
 				status = "disabled";
 			};
 
-			usdhc4: usdhc at 0219c000 {
+			usdhc4: usdhc at 219c000 {
 				compatible = "fsl,imx6q-usdhc";
 				reg = <0x0219c000 0x4000>;
 				interrupts = <0 25 IRQ_TYPE_LEVEL_HIGH>;
@@ -1048,7 +1078,7 @@
 				status = "disabled";
 			};
 
-			i2c1: i2c at 021a0000 {
+			i2c1: i2c at 21a0000 {
 				#address-cells = <1>;
 				#size-cells = <0>;
 				compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c";
@@ -1058,7 +1088,7 @@
 				status = "disabled";
 			};
 
-			i2c2: i2c at 021a4000 {
+			i2c2: i2c at 21a4000 {
 				#address-cells = <1>;
 				#size-cells = <0>;
 				compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c";
@@ -1068,7 +1098,7 @@
 				status = "disabled";
 			};
 
-			i2c3: i2c at 021a8000 {
+			i2c3: i2c at 21a8000 {
 				#address-cells = <1>;
 				#size-cells = <0>;
 				compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c";
@@ -1078,55 +1108,66 @@
 				status = "disabled";
 			};
 
-			romcp at 021ac000 {
+			romcp at 21ac000 {
 				reg = <0x021ac000 0x4000>;
 			};
 
-			mmdc0: mmdc at 021b0000 { /* MMDC0 */
+			mmdc0: mmdc at 21b0000 { /* MMDC0 */
 				compatible = "fsl,imx6q-mmdc";
 				reg = <0x021b0000 0x4000>;
 			};
 
-			mmdc1: mmdc at 021b4000 { /* MMDC1 */
+			mmdc1: mmdc at 21b4000 { /* MMDC1 */
 				reg = <0x021b4000 0x4000>;
 			};
 
-			weim: weim at 021b8000 {
+			weim: weim at 21b8000 {
+				#address-cells = <2>;
+				#size-cells = <1>;
 				compatible = "fsl,imx6q-weim";
 				reg = <0x021b8000 0x4000>;
 				interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clks IMX6QDL_CLK_EIM_SLOW>;
+				fsl,weim-cs-gpr = <&gpr>;
+				status = "disabled";
 			};
 
-			ocotp: ocotp at 021bc000 {
+			ocotp: ocotp at 21bc000 {
 				compatible = "fsl,imx6q-ocotp", "syscon";
 				reg = <0x021bc000 0x4000>;
 				clocks = <&clks IMX6QDL_CLK_IIM>;
 			};
 
-			tzasc at 021d0000 { /* TZASC1 */
+			tzasc at 21d0000 { /* TZASC1 */
 				reg = <0x021d0000 0x4000>;
 				interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>;
 			};
 
-			tzasc at 021d4000 { /* TZASC2 */
+			tzasc at 21d4000 { /* TZASC2 */
 				reg = <0x021d4000 0x4000>;
 				interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH>;
 			};
 
-			audmux: audmux at 021d8000 {
+			audmux: audmux at 21d8000 {
 				compatible = "fsl,imx6q-audmux", "fsl,imx31-audmux";
 				reg = <0x021d8000 0x4000>;
 				status = "disabled";
 			};
 
-			mipi_csi: mipi at 021dc000 {
+			mipi_csi: mipi at 21dc000 {
+				compatible = "fsl,imx6-mipi-csi2";
 				reg = <0x021dc000 0x4000>;
-			};
-
-			mipi_dsi: mipi at 021e0000 {
 				#address-cells = <1>;
 				#size-cells = <0>;
+				interrupts = <0 100 0x04>, <0 101 0x04>;
+				clocks = <&clks IMX6QDL_CLK_HSI_TX>,
+					 <&clks IMX6QDL_CLK_VIDEO_27M>,
+					 <&clks IMX6QDL_CLK_EIM_PODF>;
+				clock-names = "dphy", "ref", "pix";
+				status = "disabled";
+			};
+
+			mipi_dsi: mipi at 21e0000 {
 				reg = <0x021e0000 0x4000>;
 				status = "disabled";
 
@@ -1152,12 +1193,14 @@
 				};
 			};
 
-			vdoa at 021e4000 {
+			vdoa at 21e4000 {
+				compatible = "fsl,imx6q-vdoa";
 				reg = <0x021e4000 0x4000>;
 				interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clks IMX6QDL_CLK_VDOA>;
 			};
 
-			uart2: serial at 021e8000 {
+			uart2: serial at 21e8000 {
 				compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
 				reg = <0x021e8000 0x4000>;
 				interrupts = <0 27 IRQ_TYPE_LEVEL_HIGH>;
@@ -1169,7 +1212,7 @@
 				status = "disabled";
 			};
 
-			uart3: serial at 021ec000 {
+			uart3: serial at 21ec000 {
 				compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
 				reg = <0x021ec000 0x4000>;
 				interrupts = <0 28 IRQ_TYPE_LEVEL_HIGH>;
@@ -1181,7 +1224,7 @@
 				status = "disabled";
 			};
 
-			uart4: serial at 021f0000 {
+			uart4: serial at 21f0000 {
 				compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
 				reg = <0x021f0000 0x4000>;
 				interrupts = <0 29 IRQ_TYPE_LEVEL_HIGH>;
@@ -1193,7 +1236,7 @@
 				status = "disabled";
 			};
 
-			uart5: serial at 021f4000 {
+			uart5: serial at 21f4000 {
 				compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
 				reg = <0x021f4000 0x4000>;
 				interrupts = <0 30 IRQ_TYPE_LEVEL_HIGH>;
@@ -1206,7 +1249,7 @@
 			};
 		};
 
-		ipu1: ipu at 02400000 {
+		ipu1: ipu at 2400000 {
 			#address-cells = <1>;
 			#size-cells = <0>;
 			compatible = "fsl,imx6q-ipu";
@@ -1221,6 +1264,10 @@
 
 			ipu1_csi0: port at 0 {
 				reg = <0>;
+
+				ipu1_csi0_from_ipu1_csi0_mux: endpoint {
+					remote-endpoint = <&ipu1_csi0_mux_to_ipu1_csi0>;
+				};
 			};
 
 			ipu1_csi1: port at 1 {
@@ -1232,22 +1279,27 @@
 				#size-cells = <0>;
 				reg = <2>;
 
-				ipu1_di0_disp0: disp0-endpoint {
+				ipu1_di0_disp0: endpoint at 0 {
+					reg = <0>;
 				};
 
-				ipu1_di0_hdmi: hdmi-endpoint {
+				ipu1_di0_hdmi: endpoint at 1 {
+					reg = <1>;
 					remote-endpoint = <&hdmi_mux_0>;
 				};
 
-				ipu1_di0_mipi: mipi-endpoint {
+				ipu1_di0_mipi: endpoint at 2 {
+					reg = <2>;
 					remote-endpoint = <&mipi_mux_0>;
 				};
 
-				ipu1_di0_lvds0: lvds0-endpoint {
+				ipu1_di0_lvds0: endpoint at 3 {
+					reg = <3>;
 					remote-endpoint = <&lvds0_mux_0>;
 				};
 
-				ipu1_di0_lvds1: lvds1-endpoint {
+				ipu1_di0_lvds1: endpoint at 4 {
+					reg = <4>;
 					remote-endpoint = <&lvds1_mux_0>;
 				};
 			};
@@ -1257,22 +1309,27 @@
 				#size-cells = <0>;
 				reg = <3>;
 
-				ipu1_di1_disp1: disp1-endpoint {
+				ipu1_di1_disp1: endpoint at 0 {
+					reg = <0>;
 				};
 
-				ipu1_di1_hdmi: hdmi-endpoint {
+				ipu1_di1_hdmi: endpoint at 1 {
+					reg = <1>;
 					remote-endpoint = <&hdmi_mux_1>;
 				};
 
-				ipu1_di1_mipi: mipi-endpoint {
+				ipu1_di1_mipi: endpoint at 2 {
+					reg = <2>;
 					remote-endpoint = <&mipi_mux_1>;
 				};
 
-				ipu1_di1_lvds0: lvds0-endpoint {
+				ipu1_di1_lvds0: endpoint at 3 {
+					reg = <3>;
 					remote-endpoint = <&lvds0_mux_1>;
 				};
 
-				ipu1_di1_lvds1: lvds1-endpoint {
+				ipu1_di1_lvds1: endpoint at 4 {
+					reg = <4>;
 					remote-endpoint = <&lvds1_mux_1>;
 				};
 			};
diff --git a/arch/arm/dts/imx6qp-sabreauto.dts b/arch/arm/dts/imx6qp-sabreauto.dts
new file mode 100644
index 0000000..d4caeeb
--- /dev/null
+++ b/arch/arm/dts/imx6qp-sabreauto.dts
@@ -0,0 +1,55 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+//
+// Copyright 2016 Freescale Semiconductor, Inc.
+
+/dts-v1/;
+
+#include "imx6qp.dtsi"
+#include "imx6qdl-sabreauto.dtsi"
+
+/ {
+	model = "Freescale i.MX6 Quad Plus SABRE Automotive Board";
+	compatible = "fsl,imx6qp-sabreauto", "fsl,imx6qp";
+};
+
+&i2c2 {
+	max7322: gpio at 68 {
+		compatible = "maxim,max7322";
+		reg = <0x68>;
+		gpio-controller;
+		#gpio-cells = <2>;
+	};
+};
+
+&iomuxc {
+	imx6qdl-sabreauto {
+		pinctrl_enet: enetgrp {
+			fsl,pins = <
+				MX6QDL_PAD_KEY_COL1__ENET_MDIO          0x1b0b0
+				MX6QDL_PAD_KEY_COL2__ENET_MDC           0x1b0b0
+				MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b018
+				MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b018
+				MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b018
+				MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b018
+				MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b018
+				MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b018
+				MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b018
+				MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b018
+				MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b018
+				MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b018
+				MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b018
+				MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b018
+				MX6QDL_PAD_GPIO_16__ENET_REF_CLK        0x4001b0a8
+				MX6QDL_PAD_GPIO_6__ENET_IRQ		0x000b1
+			>;
+		};
+	};
+};
+
+&pcie {
+	status = "disabled";
+};
+
+&vgen3_reg {
+	regulator-always-on;
+};
diff --git a/arch/arm/dts/imx6qp-sabresd.dts b/arch/arm/dts/imx6qp-sabresd.dts
new file mode 100644
index 0000000..f1b9cb1
--- /dev/null
+++ b/arch/arm/dts/imx6qp-sabresd.dts
@@ -0,0 +1,55 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+//
+// Copyright 2016 Freescale Semiconductor, Inc.
+
+/dts-v1/;
+
+#include "imx6qp.dtsi"
+#include "imx6qdl-sabresd.dtsi"
+
+/ {
+	model = "Freescale i.MX6 Quad Plus SABRE Smart Device Board";
+	compatible = "fsl,imx6qp-sabresd", "fsl,imx6qp";
+};
+
+&reg_arm {
+	vin-supply = <&sw2_reg>;
+};
+
+&iomuxc {
+	imx6qdl-sabresd {
+		pinctrl_usdhc2: usdhc2grp {
+			fsl,pins = <
+				MX6QDL_PAD_SD2_CMD__SD2_CMD		0x17059
+				MX6QDL_PAD_SD2_CLK__SD2_CLK		0x10071
+				MX6QDL_PAD_SD2_DAT0__SD2_DATA0		0x17059
+				MX6QDL_PAD_SD2_DAT1__SD2_DATA1		0x17059
+				MX6QDL_PAD_SD2_DAT2__SD2_DATA2		0x17059
+				MX6QDL_PAD_SD2_DAT3__SD2_DATA3		0x17059
+				MX6QDL_PAD_NANDF_D4__SD2_DATA4		0x17059
+				MX6QDL_PAD_NANDF_D5__SD2_DATA5		0x17059
+				MX6QDL_PAD_NANDF_D6__SD2_DATA6		0x17059
+				MX6QDL_PAD_NANDF_D7__SD2_DATA7		0x17059
+			>;
+		};
+
+		pinctrl_usdhc3: usdhc3grp {
+			fsl,pins = <
+				MX6QDL_PAD_SD3_CMD__SD3_CMD		0x17059
+				MX6QDL_PAD_SD3_CLK__SD3_CLK		0x10071
+				MX6QDL_PAD_SD3_DAT0__SD3_DATA0		0x17059
+				MX6QDL_PAD_SD3_DAT1__SD3_DATA1		0x17059
+				MX6QDL_PAD_SD3_DAT2__SD3_DATA2		0x17059
+				MX6QDL_PAD_SD3_DAT3__SD3_DATA3		0x17059
+				MX6QDL_PAD_SD3_DAT4__SD3_DATA4		0x17059
+				MX6QDL_PAD_SD3_DAT5__SD3_DATA5		0x17059
+				MX6QDL_PAD_SD3_DAT6__SD3_DATA6		0x17059
+				MX6QDL_PAD_SD3_DAT7__SD3_DATA7		0x17059
+			>;
+		};
+	};
+};
+
+&pcie {
+	status = "disabled";
+};
diff --git a/arch/arm/dts/imx6qp.dtsi b/arch/arm/dts/imx6qp.dtsi
new file mode 100644
index 0000000..5f51f8e
--- /dev/null
+++ b/arch/arm/dts/imx6qp.dtsi
@@ -0,0 +1,115 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+//
+// Copyright 2016 Freescale Semiconductor, Inc.
+
+#include "imx6q.dtsi"
+
+/ {
+	soc {
+		ocram2: sram at 940000 {
+			compatible = "mmio-sram";
+			reg = <0x00940000 0x20000>;
+			clocks = <&clks IMX6QDL_CLK_OCRAM>;
+		};
+
+		ocram3: sram at 960000 {
+			compatible = "mmio-sram";
+			reg = <0x00960000 0x20000>;
+			clocks = <&clks IMX6QDL_CLK_OCRAM>;
+		};
+
+		aips-bus at 2100000 {
+			pre1: pre at 21c8000 {
+				compatible = "fsl,imx6qp-pre";
+				reg = <0x021c8000 0x1000>;
+				interrupts = <GIC_SPI 90 IRQ_TYPE_EDGE_RISING>;
+				clocks = <&clks IMX6QDL_CLK_PRE0>;
+				clock-names = "axi";
+				fsl,iram = <&ocram2>;
+			};
+
+			pre2: pre at 21c9000 {
+				compatible = "fsl,imx6qp-pre";
+				reg = <0x021c9000 0x1000>;
+				interrupts = <GIC_SPI 97 IRQ_TYPE_EDGE_RISING>;
+				clocks = <&clks IMX6QDL_CLK_PRE1>;
+				clock-names = "axi";
+				fsl,iram = <&ocram2>;
+			};
+
+			pre3: pre at 21ca000 {
+				compatible = "fsl,imx6qp-pre";
+				reg = <0x021ca000 0x1000>;
+				interrupts = <GIC_SPI 98 IRQ_TYPE_EDGE_RISING>;
+				clocks = <&clks IMX6QDL_CLK_PRE2>;
+				clock-names = "axi";
+				fsl,iram = <&ocram3>;
+			};
+
+			pre4: pre at 21cb000 {
+				compatible = "fsl,imx6qp-pre";
+				reg = <0x021cb000 0x1000>;
+				interrupts = <GIC_SPI 99 IRQ_TYPE_EDGE_RISING>;
+				clocks = <&clks IMX6QDL_CLK_PRE3>;
+				clock-names = "axi";
+				fsl,iram = <&ocram3>;
+			};
+
+			prg1: prg at 21cc000 {
+				compatible = "fsl,imx6qp-prg";
+				reg = <0x021cc000 0x1000>;
+				clocks = <&clks IMX6QDL_CLK_PRG0_APB>,
+					 <&clks IMX6QDL_CLK_PRG0_AXI>;
+				clock-names = "ipg", "axi";
+				fsl,pres = <&pre1>, <&pre2>, <&pre3>;
+			};
+
+			prg2: prg at 21cd000 {
+				compatible = "fsl,imx6qp-prg";
+				reg = <0x021cd000 0x1000>;
+				clocks = <&clks IMX6QDL_CLK_PRG1_APB>,
+					 <&clks IMX6QDL_CLK_PRG1_AXI>;
+				clock-names = "ipg", "axi";
+				fsl,pres = <&pre4>, <&pre2>, <&pre3>;
+			};
+		};
+	};
+};
+
+&fec {
+	/delete-property/interrupts-extended;
+	interrupts = <0 118 IRQ_TYPE_LEVEL_HIGH>,
+		     <0 119 IRQ_TYPE_LEVEL_HIGH>;
+};
+
+&gpc {
+	compatible = "fsl,imx6qp-gpc", "fsl,imx6q-gpc";
+};
+
+&ipu1 {
+	compatible = "fsl,imx6qp-ipu", "fsl,imx6q-ipu";
+	fsl,prg = <&prg1>;
+};
+
+&ipu2 {
+	compatible = "fsl,imx6qp-ipu", "fsl,imx6q-ipu";
+	fsl,prg = <&prg2>;
+};
+
+&ldb {
+	clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>, <&clks IMX6QDL_CLK_LDB_DI1_SEL>,
+		 <&clks IMX6QDL_CLK_IPU1_DI0_SEL>, <&clks IMX6QDL_CLK_IPU1_DI1_SEL>,
+		 <&clks IMX6QDL_CLK_IPU2_DI0_SEL>, <&clks IMX6QDL_CLK_IPU2_DI1_SEL>,
+		 <&clks IMX6QDL_CLK_LDB_DI0_PODF>, <&clks IMX6QDL_CLK_LDB_DI1_PODF>;
+	clock-names = "di0_pll", "di1_pll",
+		      "di0_sel", "di1_sel", "di2_sel", "di3_sel",
+		      "di0", "di1";
+};
+
+&mmdc0 {
+	compatible = "fsl,imx6qp-mmdc", "fsl,imx6q-mmdc";
+};
+
+&pcie {
+	compatible = "fsl,imx6qp-pcie", "snps,dw-pcie";
+};
-- 
2.7.4

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

* [U-Boot] [PATCH v4 11/20] configs: mx6sabreauto: Add SPL FIT and DM support
  2019-02-01 16:40 [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support Abel Vesa
                   ` (9 preceding siblings ...)
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 10/20] arm: dts: Update all the dts[i] files for imx6[q|qp|dl] sabre[auto|sd] Abel Vesa
@ 2019-02-01 16:40 ` Abel Vesa
  2019-02-02  9:45   ` Fabio Estevam
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 12/20] configs: mx6sabresd: " Abel Vesa
                   ` (11 subsequent siblings)
  22 siblings, 1 reply; 654+ messages in thread
From: Abel Vesa @ 2019-02-01 16:40 UTC (permalink / raw)
  To: u-boot

Enable all the necessary configs for SPL DM and FIT support for
mx6sabreauto.

Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
---
 configs/mx6sabreauto_defconfig | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/configs/mx6sabreauto_defconfig b/configs/mx6sabreauto_defconfig
index 4bdcbb1..c3843ec 100644
--- a/configs/mx6sabreauto_defconfig
+++ b/configs/mx6sabreauto_defconfig
@@ -11,12 +11,18 @@ CONFIG_SPL=y
 CONFIG_SPL_LIBDISK_SUPPORT=y
 CONFIG_NXP_BOARD_REVISION=y
 CONFIG_NR_DRAM_BANKS=1
+# CONFIG_SYS_MALLOC_F is not set
+CONFIG_FIT=y
+CONFIG_SPL_FIT_PRINT=y
+CONFIG_SPL_LOAD_FIT=y
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg"
 # CONFIG_CONSOLE_MUX is not set
 CONFIG_SYS_CONSOLE_IS_IN_ENV=y
 CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE=y
 CONFIG_SUPPORT_RAW_INITRD=y
 CONFIG_BOUNCE_BUFFER=y
+CONFIG_SPL_SEPARATE_BSS=y
+CONFIG_SPL_FIT_IMAGE_TINY=y
 CONFIG_SPL_EXT_SUPPORT=y
 CONFIG_SPL_I2C_SUPPORT=y
 CONFIG_SPL_WATCHDOG_SUPPORT=y
@@ -40,8 +46,15 @@ CONFIG_CMD_EXT4=y
 CONFIG_CMD_EXT4_WRITE=y
 CONFIG_CMD_FAT=y
 CONFIG_CMD_FS_GENERIC=y
+CONFIG_OF_CONTROL=y
+CONFIG_SPL_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="imx6q-sabreauto"
+CONFIG_OF_LIST="imx6dl-sabreauto imx6q-sabreauto imx6qp-sabreauto"
+CONFIG_MULTI_DTB_FIT=y
+CONFIG_SPL_MULTI_DTB_FIT=y
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
+CONFIG_SPL_DM=y
 CONFIG_DFU_MMC=y
 CONFIG_DFU_SF=y
 CONFIG_DM_MMC=y
@@ -68,4 +81,3 @@ CONFIG_USB_HOST_ETHER=y
 CONFIG_USB_ETHER_ASIX=y
 CONFIG_VIDEO=y
 # CONFIG_VIDEO_SW_CURSOR is not set
-CONFIG_OF_LIBFDT=y
-- 
2.7.4

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

* [U-Boot] [PATCH v4 12/20] configs: mx6sabresd: Add SPL FIT and DM support
  2019-02-01 16:40 [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support Abel Vesa
                   ` (10 preceding siblings ...)
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 11/20] configs: mx6sabreauto: Add SPL FIT and DM support Abel Vesa
@ 2019-02-01 16:40 ` Abel Vesa
  2019-02-02  9:45   ` Fabio Estevam
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 14/20] mx6sabresd: Add DM_GPIO support Abel Vesa
                   ` (10 subsequent siblings)
  22 siblings, 1 reply; 654+ messages in thread
From: Abel Vesa @ 2019-02-01 16:40 UTC (permalink / raw)
  To: u-boot

Enable all the necessary configs for SPL DM and FIT support for
mx6sabresd.

Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
---
 configs/mx6sabresd_defconfig | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

diff --git a/configs/mx6sabresd_defconfig b/configs/mx6sabresd_defconfig
index 3babfd5..0e35d6c 100644
--- a/configs/mx6sabresd_defconfig
+++ b/configs/mx6sabresd_defconfig
@@ -10,12 +10,18 @@ CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_SPL=y
 CONFIG_SPL_LIBDISK_SUPPORT=y
 CONFIG_NR_DRAM_BANKS=1
+# CONFIG_SYS_MALLOC_F is not set
+CONFIG_FIT=y
+CONFIG_SPL_FIT_PRINT=y
+CONFIG_SPL_LOAD_FIT=y
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg"
 # CONFIG_CONSOLE_MUX is not set
 CONFIG_SYS_CONSOLE_IS_IN_ENV=y
 CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE=y
 CONFIG_SUPPORT_RAW_INITRD=y
 CONFIG_BOUNCE_BUFFER=y
+CONFIG_SPL_SEPARATE_BSS=y
+CONFIG_SPL_FIT_IMAGE_TINY=y
 CONFIG_SPL_EXT_SUPPORT=y
 CONFIG_SPL_I2C_SUPPORT=y
 CONFIG_SPL_OS_BOOT=y
@@ -47,23 +53,34 @@ CONFIG_CMD_EXT4_WRITE=y
 CONFIG_CMD_FAT=y
 CONFIG_CMD_FS_GENERIC=y
 CONFIG_EFI_PARTITION=y
+CONFIG_OF_CONTROL=y
+CONFIG_SPL_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="imx6q-sabresd"
+CONFIG_OF_LIST="imx6q-sabresd imx6qp-sabresd imx6dl-sabresd"
+CONFIG_MULTI_DTB_FIT=y
+CONFIG_SPL_MULTI_DTB_FIT=y
+CONFIG_SPL_OF_LIST="imx6dl-sabresd imx6q-sabresd imx6qp-sabresd"
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
+CONFIG_SPL_DM=y
 CONFIG_USB_FUNCTION_FASTBOOT=y
 CONFIG_FASTBOOT_BUF_ADDR=0x12000000
 CONFIG_FASTBOOT_BUF_SIZE=0x10000000
 CONFIG_FASTBOOT_FLASH=y
 CONFIG_FASTBOOT_FLASH_MMC_DEV=2
+CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_MII=y
 CONFIG_PCI=y
+CONFIG_DM_REGULATOR=y
 CONFIG_SPI=y
 CONFIG_MXC_SPI=y
 CONFIG_USB=y
-CONFIG_USB_STORAGE=y
+CONFIG_DM_USB=y
+# CONFIG_SPL_DM_USB is not set
 CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_MANUFACTURER="FSL"
 CONFIG_USB_GADGET_VENDOR_NUM=0x0525
@@ -73,4 +90,3 @@ CONFIG_USB_HOST_ETHER=y
 CONFIG_USB_ETHER_ASIX=y
 CONFIG_VIDEO=y
 # CONFIG_VIDEO_SW_CURSOR is not set
-CONFIG_OF_LIBFDT=y
-- 
2.7.4

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

* [U-Boot] [PATCH v4 14/20] mx6sabresd: Add DM_GPIO support
  2019-02-01 16:40 [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support Abel Vesa
                   ` (11 preceding siblings ...)
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 12/20] configs: mx6sabresd: " Abel Vesa
@ 2019-02-01 16:40 ` Abel Vesa
  2019-02-02  9:46   ` Fabio Estevam
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 13/20] mx6sabreauto: " Abel Vesa
                   ` (9 subsequent siblings)
  22 siblings, 1 reply; 654+ messages in thread
From: Abel Vesa @ 2019-02-01 16:40 UTC (permalink / raw)
  To: u-boot

Add the DM_GPIO related config for mx6sabresd.
Also add the gpio request calls.

Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
---
 board/freescale/mx6sabresd/mx6sabresd.c | 5 +++++
 configs/mx6sabresd_defconfig            | 1 +
 2 files changed, 6 insertions(+)

diff --git a/board/freescale/mx6sabresd/mx6sabresd.c b/board/freescale/mx6sabresd/mx6sabresd.c
index 4688095..99002bd 100644
--- a/board/freescale/mx6sabresd/mx6sabresd.c
+++ b/board/freescale/mx6sabresd/mx6sabresd.c
@@ -96,6 +96,7 @@ static void setup_iomux_enet(void)
 	SETUP_IOMUX_PADS(enet_pads);
 
 	/* Reset AR8031 PHY */
+	gpio_request(IMX_GPIO_NR(1, 25), "ENET PHY Reset");
 	gpio_direction_output(IMX_GPIO_NR(1, 25) , 0);
 	mdelay(10);
 	gpio_set_value(IMX_GPIO_NR(1, 25), 1);
@@ -189,6 +190,7 @@ static iomux_v3_cfg_t const bl_pads[] = {
 static void enable_backlight(void)
 {
 	SETUP_IOMUX_PADS(bl_pads);
+	gpio_request(DISP0_PWR_EN, "Display Power Enable");
 	gpio_direction_output(DISP0_PWR_EN, 1);
 }
 
@@ -307,11 +309,13 @@ int board_mmc_init(bd_t *bis)
 		switch (i) {
 		case 0:
 			SETUP_IOMUX_PADS(usdhc2_pads);
+			gpio_request(USDHC2_CD_GPIO, "USDHC2 CD");
 			gpio_direction_input(USDHC2_CD_GPIO);
 			usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC2_CLK);
 			break;
 		case 1:
 			SETUP_IOMUX_PADS(usdhc3_pads);
+			gpio_request(USDHC3_CD_GPIO, "USDHC3 CD");
 			gpio_direction_input(USDHC3_CD_GPIO);
 			usdhc_cfg[1].sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK);
 			break;
@@ -729,6 +733,7 @@ int checkboard(void)
 #ifdef CONFIG_SPL_OS_BOOT
 int spl_start_uboot(void)
 {
+	gpio_request(KEY_VOL_UP, "KEY Volume UP");
 	gpio_direction_input(KEY_VOL_UP);
 
 	/* Only enter in Falcon mode if KEY_VOL_UP is pressed */
diff --git a/configs/mx6sabresd_defconfig b/configs/mx6sabresd_defconfig
index 0e35d6c..4b40dfe 100644
--- a/configs/mx6sabresd_defconfig
+++ b/configs/mx6sabresd_defconfig
@@ -68,6 +68,7 @@ CONFIG_FASTBOOT_BUF_ADDR=0x12000000
 CONFIG_FASTBOOT_BUF_SIZE=0x10000000
 CONFIG_FASTBOOT_FLASH=y
 CONFIG_FASTBOOT_FLASH_MMC_DEV=2
+CONFIG_DM_GPIO=y
 CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_SPI_FLASH=y
-- 
2.7.4

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

* [U-Boot] [PATCH v4 13/20] mx6sabreauto: Add DM_GPIO support
  2019-02-01 16:40 [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support Abel Vesa
                   ` (12 preceding siblings ...)
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 14/20] mx6sabresd: Add DM_GPIO support Abel Vesa
@ 2019-02-01 16:40 ` Abel Vesa
  2019-02-02  9:46   ` Fabio Estevam
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 15/20] configs: mx6sabreauto: Add DM_SPI_FLASH necessary configs Abel Vesa
                   ` (8 subsequent siblings)
  22 siblings, 1 reply; 654+ messages in thread
From: Abel Vesa @ 2019-02-01 16:40 UTC (permalink / raw)
  To: u-boot

Add the DM_GPIO related config for mx6sabreauto.
Also add the gpio request calls.

Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
---
 board/freescale/mx6sabreauto/mx6sabreauto.c | 3 +++
 configs/mx6sabreauto_defconfig              | 1 +
 2 files changed, 4 insertions(+)

diff --git a/board/freescale/mx6sabreauto/mx6sabreauto.c b/board/freescale/mx6sabreauto/mx6sabreauto.c
index c8f1263..c7e3e67 100644
--- a/board/freescale/mx6sabreauto/mx6sabreauto.c
+++ b/board/freescale/mx6sabreauto/mx6sabreauto.c
@@ -501,6 +501,7 @@ iomux_v3_cfg_t const backlight_pads[] = {
 
 static void setup_iomux_backlight(void)
 {
+	gpio_request(IMX_GPIO_NR(2, 9), "backlight");
 	gpio_direction_output(IMX_GPIO_NR(2, 9), 1);
 	SETUP_IOMUX_PADS(backlight_pads);
 }
@@ -594,6 +595,7 @@ int board_init(void)
 	else
 		setup_i2c(1, CONFIG_SYS_I2C_SPEED, 0x7f, &mx6dl_i2c_pad_info1);
 	/* I2C 3 Steer */
+	gpio_request(IMX_GPIO_NR(5, 4), "steer logic");
 	gpio_direction_output(IMX_GPIO_NR(5, 4), 1);
 	SETUP_IOMUX_PADS(i2c3_pads);
 #ifndef CONFIG_SYS_FLASH_CFI
@@ -602,6 +604,7 @@ int board_init(void)
 	else
 		setup_i2c(2, CONFIG_SYS_I2C_SPEED, 0x7f, &mx6dl_i2c_pad_info2);
 #endif
+	gpio_request(IMX_GPIO_NR(1, 15), "expander en");
 	gpio_direction_output(IMX_GPIO_NR(1, 15), 1);
 	SETUP_IOMUX_PADS(port_exp);
 
diff --git a/configs/mx6sabreauto_defconfig b/configs/mx6sabreauto_defconfig
index c3843ec..3b37766 100644
--- a/configs/mx6sabreauto_defconfig
+++ b/configs/mx6sabreauto_defconfig
@@ -57,6 +57,7 @@ CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
 CONFIG_SPL_DM=y
 CONFIG_DFU_MMC=y
 CONFIG_DFU_SF=y
+CONFIG_DM_GPIO=y
 CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_NAND=y
-- 
2.7.4

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

* [U-Boot] [PATCH v4 15/20] configs: mx6sabreauto: Add DM_SPI_FLASH necessary configs
  2019-02-01 16:40 [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support Abel Vesa
                   ` (13 preceding siblings ...)
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 13/20] mx6sabreauto: " Abel Vesa
@ 2019-02-01 16:40 ` Abel Vesa
  2019-02-02  9:46   ` Fabio Estevam
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 17/20] board: mx6sabreauto: Remove the non-DM code Abel Vesa
                   ` (7 subsequent siblings)
  22 siblings, 1 reply; 654+ messages in thread
From: Abel Vesa @ 2019-02-01 16:40 UTC (permalink / raw)
  To: u-boot

Enable all neceassary configs to support DM_SPI_FLASH on mx6sabreauto.

Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
---
 configs/mx6sabreauto_defconfig | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/configs/mx6sabreauto_defconfig b/configs/mx6sabreauto_defconfig
index 3b37766..bb466fe 100644
--- a/configs/mx6sabreauto_defconfig
+++ b/configs/mx6sabreauto_defconfig
@@ -62,12 +62,14 @@ CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_NAND=y
 CONFIG_NAND_MXS=y
+CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
 CONFIG_MII=y
 CONFIG_DM_REGULATOR=y
 CONFIG_SPI=y
+CONFIG_DM_SPI=y
 CONFIG_MXC_SPI=y
 CONFIG_USB=y
 CONFIG_DM_USB=y
-- 
2.7.4

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

* [U-Boot] [PATCH v4 16/20] configs: mx6sabresd: Add DM_SPI_FLASH necessary configs
  2019-02-01 16:40 [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support Abel Vesa
                   ` (15 preceding siblings ...)
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 17/20] board: mx6sabreauto: Remove the non-DM code Abel Vesa
@ 2019-02-01 16:40 ` Abel Vesa
  2019-02-02  9:47   ` Fabio Estevam
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 18/20] board: mx6sabresd: Remove non-DM code Abel Vesa
                   ` (5 subsequent siblings)
  22 siblings, 1 reply; 654+ messages in thread
From: Abel Vesa @ 2019-02-01 16:40 UTC (permalink / raw)
  To: u-boot

Enable all neceassary configs to support DM_SPI_FLASH on mx6sabresd.

Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
---
 configs/mx6sabresd_defconfig | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/configs/mx6sabresd_defconfig b/configs/mx6sabresd_defconfig
index 4b40dfe..e8fd9b4 100644
--- a/configs/mx6sabresd_defconfig
+++ b/configs/mx6sabresd_defconfig
@@ -71,6 +71,7 @@ CONFIG_FASTBOOT_FLASH_MMC_DEV=2
 CONFIG_DM_GPIO=y
 CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
+CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
@@ -78,6 +79,7 @@ CONFIG_MII=y
 CONFIG_PCI=y
 CONFIG_DM_REGULATOR=y
 CONFIG_SPI=y
+CONFIG_DM_SPI=y
 CONFIG_MXC_SPI=y
 CONFIG_USB=y
 CONFIG_DM_USB=y
-- 
2.7.4

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

* [U-Boot] [PATCH v4 17/20] board: mx6sabreauto: Remove the non-DM code
  2019-02-01 16:40 [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support Abel Vesa
                   ` (14 preceding siblings ...)
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 15/20] configs: mx6sabreauto: Add DM_SPI_FLASH necessary configs Abel Vesa
@ 2019-02-01 16:40 ` Abel Vesa
  2019-02-02  9:47   ` Fabio Estevam
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 16/20] configs: mx6sabresd: Add DM_SPI_FLASH necessary configs Abel Vesa
                   ` (6 subsequent siblings)
  22 siblings, 1 reply; 654+ messages in thread
From: Abel Vesa @ 2019-02-01 16:40 UTC (permalink / raw)
  To: u-boot

Since the mx6sabreauto has DM support, remove the unused non-DM code
from mx6sabreauto board file.

Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
---
 board/freescale/mx6sabreauto/mx6sabreauto.c | 70 -----------------------------
 1 file changed, 70 deletions(-)

diff --git a/board/freescale/mx6sabreauto/mx6sabreauto.c b/board/freescale/mx6sabreauto/mx6sabreauto.c
index c7e3e67..dd72de9 100644
--- a/board/freescale/mx6sabreauto/mx6sabreauto.c
+++ b/board/freescale/mx6sabreauto/mx6sabreauto.c
@@ -159,44 +159,6 @@ static iomux_v3_cfg_t const port_exp[] = {
 	IOMUX_PADS(PAD_SD2_DAT0__GPIO1_IO15	| MUX_PAD_CTRL(NO_PAD_CTRL)),
 };
 
-/*Define for building port exp gpio, pin starts from 0*/
-#define PORTEXP_IO_NR(chip, pin) \
-	((chip << 5) + pin)
-
-/*Get the chip addr from a ioexp gpio*/
-#define PORTEXP_IO_TO_CHIP(gpio_nr) \
-	(gpio_nr >> 5)
-
-/*Get the pin number from a ioexp gpio*/
-#define PORTEXP_IO_TO_PIN(gpio_nr) \
-	(gpio_nr & 0x1f)
-
-static int port_exp_direction_output(unsigned gpio, int value)
-{
-	int ret;
-
-	i2c_set_bus_num(2);
-	ret = i2c_probe(PORTEXP_IO_TO_CHIP(gpio));
-	if (ret)
-		return ret;
-
-	ret = pca953x_set_dir(PORTEXP_IO_TO_CHIP(gpio),
-		(1 << PORTEXP_IO_TO_PIN(gpio)),
-		(PCA953X_DIR_OUT << PORTEXP_IO_TO_PIN(gpio)));
-
-	if (ret)
-		return ret;
-
-	ret = pca953x_set_val(PORTEXP_IO_TO_CHIP(gpio),
-		(1 << PORTEXP_IO_TO_PIN(gpio)),
-		(value << PORTEXP_IO_TO_PIN(gpio)));
-
-	if (ret)
-		return ret;
-
-	return 0;
-}
-
 #ifdef CONFIG_MTD_NOR_FLASH
 static iomux_v3_cfg_t const eimnor_pads[] = {
 	IOMUX_PADS(PAD_EIM_D16__EIM_DATA16	| MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL)),
@@ -681,19 +643,10 @@ int checkboard(void)
 }
 
 #ifdef CONFIG_USB_EHCI_MX6
-#define USB_HOST1_PWR     PORTEXP_IO_NR(0x32, 7)
-#define USB_OTG_PWR       PORTEXP_IO_NR(0x34, 1)
-
-iomux_v3_cfg_t const usb_otg_pads[] = {
-	IOMUX_PADS(PAD_ENET_RX_ER__USB_OTG_ID | MUX_PAD_CTRL(NO_PAD_CTRL)),
-};
-
 int board_ehci_hcd_init(int port)
 {
 	switch (port) {
 	case 0:
-		SETUP_IOMUX_PADS(usb_otg_pads);
-
 		/*
 		  * Set daisy chain for otg_pin_id on 6q.
 		 *  For 6dl, this bit is reserved.
@@ -708,29 +661,6 @@ int board_ehci_hcd_init(int port)
 	}
 	return 0;
 }
-
-int board_ehci_power(int port, int on)
-{
-	switch (port) {
-	case 0:
-		if (on)
-			port_exp_direction_output(USB_OTG_PWR, 1);
-		else
-			port_exp_direction_output(USB_OTG_PWR, 0);
-		break;
-	case 1:
-		if (on)
-			port_exp_direction_output(USB_HOST1_PWR, 1);
-		else
-			port_exp_direction_output(USB_HOST1_PWR, 0);
-		break;
-	default:
-		printf("MXC USB port %d not yet supported\n", port);
-		return -EINVAL;
-	}
-
-	return 0;
-}
 #endif
 
 #ifdef CONFIG_SPL_BUILD
-- 
2.7.4

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

* [U-Boot] [PATCH v4 18/20] board: mx6sabresd: Remove non-DM code
  2019-02-01 16:40 [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support Abel Vesa
                   ` (16 preceding siblings ...)
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 16/20] configs: mx6sabresd: Add DM_SPI_FLASH necessary configs Abel Vesa
@ 2019-02-01 16:40 ` Abel Vesa
  2019-02-02  9:47   ` Fabio Estevam
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 19/20] board: mx6sabresd: Remove the enet reset gpio handling Abel Vesa
                   ` (4 subsequent siblings)
  22 siblings, 1 reply; 654+ messages in thread
From: Abel Vesa @ 2019-02-01 16:40 UTC (permalink / raw)
  To: u-boot

Since the mx6sabreauto has DM support, remove the unused non-DM code
from mx6sabresd board file.

Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
---
 board/freescale/mx6sabresd/mx6sabresd.c | 50 ---------------------------------
 1 file changed, 50 deletions(-)

diff --git a/board/freescale/mx6sabresd/mx6sabresd.c b/board/freescale/mx6sabresd/mx6sabresd.c
index 99002bd..0824a05 100644
--- a/board/freescale/mx6sabresd/mx6sabresd.c
+++ b/board/freescale/mx6sabresd/mx6sabresd.c
@@ -563,63 +563,13 @@ int board_eth_init(bd_t *bis)
 }
 
 #ifdef CONFIG_USB_EHCI_MX6
-#define USB_OTHERREGS_OFFSET	0x800
-#define UCTRL_PWR_POL		(1 << 9)
-
-static iomux_v3_cfg_t const usb_otg_pads[] = {
-	IOMUX_PADS(PAD_EIM_D22__USB_OTG_PWR | MUX_PAD_CTRL(NO_PAD_CTRL)),
-	IOMUX_PADS(PAD_ENET_RX_ER__USB_OTG_ID | MUX_PAD_CTRL(NO_PAD_CTRL)),
-};
-
-static iomux_v3_cfg_t const usb_hc1_pads[] = {
-	IOMUX_PADS(PAD_ENET_TXD1__GPIO1_IO29 | MUX_PAD_CTRL(NO_PAD_CTRL)),
-};
-
 static void setup_usb(void)
 {
-	SETUP_IOMUX_PADS(usb_otg_pads);
-
 	/*
 	 * set daisy chain for otg_pin_id on 6q.
 	 * for 6dl, this bit is reserved
 	 */
 	imx_iomux_set_gpr_register(1, 13, 1, 0);
-
-	SETUP_IOMUX_PADS(usb_hc1_pads);
-}
-
-int board_ehci_hcd_init(int port)
-{
-	u32 *usbnc_usb_ctrl;
-
-	if (port > 1)
-		return -EINVAL;
-
-	usbnc_usb_ctrl = (u32 *)(USB_BASE_ADDR + USB_OTHERREGS_OFFSET +
-				 port * 4);
-
-	setbits_le32(usbnc_usb_ctrl, UCTRL_PWR_POL);
-
-	return 0;
-}
-
-int board_ehci_power(int port, int on)
-{
-	switch (port) {
-	case 0:
-		break;
-	case 1:
-		if (on)
-			gpio_direction_output(IMX_GPIO_NR(1, 29), 1);
-		else
-			gpio_direction_output(IMX_GPIO_NR(1, 29), 0);
-		break;
-	default:
-		printf("MXC USB port %d not yet supported\n", port);
-		return -EINVAL;
-	}
-
-	return 0;
 }
 #endif
 
-- 
2.7.4

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

* [U-Boot] [PATCH v4 19/20] board: mx6sabresd: Remove the enet reset gpio handling
  2019-02-01 16:40 [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support Abel Vesa
                   ` (17 preceding siblings ...)
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 18/20] board: mx6sabresd: Remove non-DM code Abel Vesa
@ 2019-02-01 16:40 ` Abel Vesa
  2019-02-02  9:48   ` Fabio Estevam
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 20/20] configs: mx6sabresd: Reduce SPL size by disabling DOS, EXT and EFI support Abel Vesa
                   ` (3 subsequent siblings)
  22 siblings, 1 reply; 654+ messages in thread
From: Abel Vesa @ 2019-02-01 16:40 UTC (permalink / raw)
  To: u-boot

Rely on the phy-reset-gpios which is set in imx6qdl-sabresd dtsi
and get rid of the enet reset gpio handling from the board file.

Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
---
 board/freescale/mx6sabresd/mx6sabresd.c | 7 -------
 1 file changed, 7 deletions(-)

diff --git a/board/freescale/mx6sabresd/mx6sabresd.c b/board/freescale/mx6sabresd/mx6sabresd.c
index 0824a05..385a18e 100644
--- a/board/freescale/mx6sabresd/mx6sabresd.c
+++ b/board/freescale/mx6sabresd/mx6sabresd.c
@@ -94,13 +94,6 @@ static iomux_v3_cfg_t const enet_pads[] = {
 static void setup_iomux_enet(void)
 {
 	SETUP_IOMUX_PADS(enet_pads);
-
-	/* Reset AR8031 PHY */
-	gpio_request(IMX_GPIO_NR(1, 25), "ENET PHY Reset");
-	gpio_direction_output(IMX_GPIO_NR(1, 25) , 0);
-	mdelay(10);
-	gpio_set_value(IMX_GPIO_NR(1, 25), 1);
-	udelay(100);
 }
 
 static iomux_v3_cfg_t const usdhc2_pads[] = {
-- 
2.7.4

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

* [U-Boot] [PATCH v4 20/20] configs: mx6sabresd: Reduce SPL size by disabling DOS, EXT and EFI support
  2019-02-01 16:40 [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support Abel Vesa
                   ` (18 preceding siblings ...)
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 19/20] board: mx6sabresd: Remove the enet reset gpio handling Abel Vesa
@ 2019-02-01 16:40 ` Abel Vesa
  2019-02-02  9:49   ` Fabio Estevam
  2019-02-01 17:13 ` [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support Fabio Estevam
                   ` (2 subsequent siblings)
  22 siblings, 1 reply; 654+ messages in thread
From: Abel Vesa @ 2019-02-01 16:40 UTC (permalink / raw)
  To: u-boot

With DM and FIT enabled in SPL, there is an sram overflow. By disabling
CONFIG_SPL_DOS_PARTITION, CONFIG_SPL_EXT_SUPPORT and
CONFIG_SPL_EFI_PARTITION, we get to keep the 'one binary to fit all'
for imx6[q|qp|dl] on sabresd since the final SPL image is now under 64KB.

Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
---
 configs/mx6sabresd_defconfig | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/configs/mx6sabresd_defconfig b/configs/mx6sabresd_defconfig
index e8fd9b4..27ace02e 100644
--- a/configs/mx6sabresd_defconfig
+++ b/configs/mx6sabresd_defconfig
@@ -22,7 +22,6 @@ CONFIG_SUPPORT_RAW_INITRD=y
 CONFIG_BOUNCE_BUFFER=y
 CONFIG_SPL_SEPARATE_BSS=y
 CONFIG_SPL_FIT_IMAGE_TINY=y
-CONFIG_SPL_EXT_SUPPORT=y
 CONFIG_SPL_I2C_SUPPORT=y
 CONFIG_SPL_OS_BOOT=y
 CONFIG_SPL_USB_HOST_SUPPORT=y
@@ -53,6 +52,8 @@ CONFIG_CMD_EXT4_WRITE=y
 CONFIG_CMD_FAT=y
 CONFIG_CMD_FS_GENERIC=y
 CONFIG_EFI_PARTITION=y
+# CONFIG_SPL_DOS_PARTITION is not set
+# CONFIG_SPL_EFI_PARTITION is not set
 CONFIG_OF_CONTROL=y
 CONFIG_SPL_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="imx6q-sabresd"
-- 
2.7.4

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

* [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support
  2019-02-01 16:40 [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support Abel Vesa
                   ` (19 preceding siblings ...)
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 20/20] configs: mx6sabresd: Reduce SPL size by disabling DOS, EXT and EFI support Abel Vesa
@ 2019-02-01 17:13 ` Fabio Estevam
  2019-02-01 17:59   ` Abel Vesa
  2019-02-01 19:01 ` Tom Rini
  2019-02-02  9:50 ` Fabio Estevam
  22 siblings, 1 reply; 654+ messages in thread
From: Fabio Estevam @ 2019-02-01 17:13 UTC (permalink / raw)
  To: u-boot

Hi Abel,

On Fri, Feb 1, 2019 at 2:43 PM Abel Vesa <abel.vesa@nxp.com> wrote:
>
> The third version is here:
> https://lists.denx.de/pipermail/u-boot/2019-January/356903.html
>
> So, this time I hope I got it right. Before, I was stupidly trying
> to put a fit in another fit without a really good reason. To my
> excuse, that was working even with the spl_image->os set to 0,
> bug which I (hope) I fixed in the first patch (a new one)
> of this series.

Thanks for your work on this!

Just to confirm: with this series all sabresd variants (imx6q, imx6dl,
imx6qp) boot with the same binary, right?

Is there anything known to be not working that used to work before due
to missing driver model conversion?

Is Ethernet functional?

Thanks

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

* [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support
  2019-02-01 17:13 ` [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support Fabio Estevam
@ 2019-02-01 17:59   ` Abel Vesa
  2019-02-01 18:18     ` Fabio Estevam
  0 siblings, 1 reply; 654+ messages in thread
From: Abel Vesa @ 2019-02-01 17:59 UTC (permalink / raw)
  To: u-boot

On 19-02-01 15:13:32, Fabio Estevam wrote:
> Hi Abel,
> 
> On Fri, Feb 1, 2019 at 2:43 PM Abel Vesa <abel.vesa@nxp.com> wrote:
> >
> > The third version is here:
> > https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.denx.de%2Fpipermail%2Fu-boot%2F2019-January%2F356903.html&amp;data=02%7C01%7Cabel.vesa%40nxp.com%7Cc7db2be273394c06098308d688689e41%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C636846380248922351&amp;sdata=fhDqNxkE1dq0fGNroGRR%2F0OkmBPRlVBqCefS6GM8kns%3D&amp;reserved=0
> >
> > So, this time I hope I got it right. Before, I was stupidly trying
> > to put a fit in another fit without a really good reason. To my
> > excuse, that was working even with the spl_image->os set to 0,
> > bug which I (hope) I fixed in the first patch (a new one)
> > of this series.
> 
> Thanks for your work on this!
> 
> Just to confirm: with this series all sabresd variants (imx6q, imx6dl,
> imx6qp) boot with the same binary, right?
> 

That is correct.

For mx6sabresd_defconfig, all imx6q_sabresd, imx6qp_sabresd and imx6dl_sabresd
have been tested with the same binary.

And I've tested exactly the same the mx6sabreauto_defconfig with all three SoC
combinations.

> Is there anything known to be not working that used to work before due
> to missing driver model conversion?
> 

I don't know about anything that might not work. As specified in the cover
letter I had to get rid (disable) of EFI, EXT and DOS support in SPL.

> Is Ethernet functional?

I haven't tested the ethernet on all of them, just one of each (sabresd/sabreauto).

I'll test them all when I get back at the office tomorrow.

> 
> Thanks

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

* [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support
  2019-02-01 17:59   ` Abel Vesa
@ 2019-02-01 18:18     ` Fabio Estevam
  0 siblings, 0 replies; 654+ messages in thread
From: Fabio Estevam @ 2019-02-01 18:18 UTC (permalink / raw)
  To: u-boot

On Fri, Feb 1, 2019 at 3:59 PM Abel Vesa <abel.vesa@nxp.com> wrote:

> > Is Ethernet functional?
>
> I haven't tested the ethernet on all of them, just one of each (sabresd/sabreauto).
>
> I'll test them all when I get back at the office tomorrow.

Don't worry about that. If you tested in one of each then it is fine.

Thanks

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

* [U-Boot] [PATCH v4 01/20] common: spl_fit: Fix the spl_fit_image_get_os for FIT_IMAGE_TINY
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 01/20] common: spl_fit: Fix the spl_fit_image_get_os for FIT_IMAGE_TINY Abel Vesa
@ 2019-02-01 19:01   ` Tom Rini
  2019-02-01 21:08   ` Lukasz Majewski
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 654+ messages in thread
From: Tom Rini @ 2019-02-01 19:01 UTC (permalink / raw)
  To: u-boot

On Fri, Feb 01, 2019 at 04:40:06PM +0000, Abel Vesa wrote:

> There is not really reducing codesize here since there is only
> a call. The function is always built in if CONFIG_$(SPL_TPL_)FIT is set.
> Plus, there was a change in behavior if CONFIG_SPL_OS_BOOT is defined.
> If CONFIG_FIT_IMAGE_TINY is defined, the spl_fit_image_get_os was
> returning -ENOTSUPP and then if CONFIG_SPL_OS_BOOT was also
> defined, the spl_image->os was left set to 0 which in turn
> was skipping the fdt appending resulting in boot-up failure.
> 
> Fixes: 337bbb6297775e spl: fit: add SPL_FIT_IMAGE_TINY config to reduce code-size
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>

Reviewed-by: Tom Rini <trini@konsulko.com>

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190201/3bdf82c3/attachment.sig>

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

* [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support
  2019-02-01 16:40 [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support Abel Vesa
                   ` (20 preceding siblings ...)
  2019-02-01 17:13 ` [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support Fabio Estevam
@ 2019-02-01 19:01 ` Tom Rini
  2019-02-02  9:50 ` Fabio Estevam
  22 siblings, 0 replies; 654+ messages in thread
From: Tom Rini @ 2019-02-01 19:01 UTC (permalink / raw)
  To: u-boot

On Fri, Feb 01, 2019 at 04:40:05PM +0000, Abel Vesa wrote:

> The third version is here:
> https://lists.denx.de/pipermail/u-boot/2019-January/356903.html
> 
> So, this time I hope I got it right. Before, I was stupidly trying
> to put a fit in another fit without a really good reason. To my
> excuse, that was working even with the spl_image->os set to 0,
> bug which I (hope) I fixed in the first patch (a new one)
> of this series.
> 
> Changes since v3:
>  * Reduced the SPL size by disabling EXT_SUPPORT, otherwise the
>    6qp-sabresd wouldn't boot due to having its dtb last in the fit.
>    I forgot to mention in the last version that EFI and DOS SPL support
>    also had to be disabled to get the size right.
>  * Dropped the fit_spl.its file
>  * Dropped the (now) unnecessary updates to the README files. We're
>    sticking to the u-boot.img since it's exactly what is needed.
>  * Fixed a bug related to FIT_IMAGE_TINY when CONFIG_SPL_OS_BOOT
>    is enabled. The short story here is that spl_image->os was
>    remaining set to 0. (see first patch in the series for details)

Thanks for being persistent and figuring all of this out!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190201/4b7b2931/attachment.sig>

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

* [U-Boot] [PATCH v4 01/20] common: spl_fit: Fix the spl_fit_image_get_os for FIT_IMAGE_TINY
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 01/20] common: spl_fit: Fix the spl_fit_image_get_os for FIT_IMAGE_TINY Abel Vesa
  2019-02-01 19:01   ` Tom Rini
@ 2019-02-01 21:08   ` Lukasz Majewski
  2019-02-02  9:40   ` Fabio Estevam
  2019-02-16  9:23   ` Stefano Babic
  3 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-01 21:08 UTC (permalink / raw)
  To: u-boot

Hi Abel,

> There is not really reducing codesize here since there is only
> a call.

Yes, I also haven't observed any change.

> The function is always built in if CONFIG_$(SPL_TPL_)FIT is
> set. Plus, there was a change in behavior if CONFIG_SPL_OS_BOOT is
> defined. If CONFIG_FIT_IMAGE_TINY is defined, the
> spl_fit_image_get_os was returning -ENOTSUPP and then if
> CONFIG_SPL_OS_BOOT was also defined, the spl_image->os was left set
> to 0 which in turn was skipping the fdt appending resulting in
> boot-up failure.
> 
> Fixes: 337bbb6297775e spl: fit: add SPL_FIT_IMAGE_TINY config to
> reduce code-size Signed-off-by: Abel Vesa <abel.vesa@nxp.com>

However, this commit fixes the issue (the board didn't hang anymore
after SPL loading), hence

Tested-by: Lukasz Majewski <lukma@denx.de>

I've tested it on mccmon6 HW (imx6q).

Just to share - for me CONFIG_USE_TINY_PRINTF=y gave reduction of SPL
size from 38KiB to 34KiB.

Thanks for your commit.

> ---
>  common/spl/spl_fit.c | 4 ----
>  1 file changed, 4 deletions(-)
> 
> diff --git a/common/spl/spl_fit.c b/common/spl/spl_fit.c
> index db43626..a87d02d 100644
> --- a/common/spl/spl_fit.c
> +++ b/common/spl/spl_fit.c
> @@ -333,11 +333,7 @@ static int spl_fit_record_loadable(const void
> *fit, int images, int index, 
>  static int spl_fit_image_get_os(const void *fit, int noffset,
> uint8_t *os) {
> -#if CONFIG_IS_ENABLED(FIT_IMAGE_TINY)
> -	return -ENOTSUPP;
> -#else
>  	return fit_image_get_os(fit, noffset, os);
> -#endif
>  }
>  
>  int spl_load_simple_fit(struct spl_image_info *spl_image,




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190201/20c3e8de/attachment.sig>

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

* [U-Boot] [PATCH v4 01/20] common: spl_fit: Fix the spl_fit_image_get_os for FIT_IMAGE_TINY
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 01/20] common: spl_fit: Fix the spl_fit_image_get_os for FIT_IMAGE_TINY Abel Vesa
  2019-02-01 19:01   ` Tom Rini
  2019-02-01 21:08   ` Lukasz Majewski
@ 2019-02-02  9:40   ` Fabio Estevam
  2019-02-16  9:23   ` Stefano Babic
  3 siblings, 0 replies; 654+ messages in thread
From: Fabio Estevam @ 2019-02-02  9:40 UTC (permalink / raw)
  To: u-boot

On Fri, Feb 1, 2019 at 2:50 PM Abel Vesa <abel.vesa@nxp.com> wrote:
>
> There is not really reducing codesize here since there is only
> a call. The function is always built in if CONFIG_$(SPL_TPL_)FIT is set.
> Plus, there was a change in behavior if CONFIG_SPL_OS_BOOT is defined.
> If CONFIG_FIT_IMAGE_TINY is defined, the spl_fit_image_get_os was
> returning -ENOTSUPP and then if CONFIG_SPL_OS_BOOT was also
> defined, the spl_image->os was left set to 0 which in turn
> was skipping the fdt appending resulting in boot-up failure.
>
> Fixes: 337bbb6297775e spl: fit: add SPL_FIT_IMAGE_TINY config to reduce code-size
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>

Reviewed-by: Fabio Estevam <festevam@gmail.com>

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

* [U-Boot] [PATCH v4 02/20] usb: Rename SPL_USB_SUPPORT to SPL_USB_STORAGE
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 02/20] usb: Rename SPL_USB_SUPPORT to SPL_USB_STORAGE Abel Vesa
@ 2019-02-02  9:40   ` Fabio Estevam
  2019-02-02 21:46   ` Lukasz Majewski
  1 sibling, 0 replies; 654+ messages in thread
From: Fabio Estevam @ 2019-02-02  9:40 UTC (permalink / raw)
  To: u-boot

On Fri, Feb 1, 2019 at 2:48 PM Abel Vesa <abel.vesa@nxp.com> wrote:
>
> Since there is the SPL_USB_HOST_SUPPORT for enabling USB support in SPL,
> makes more sense to rename the SPL_USB_SUPPORT as SPL_USB_STORAGE.
> Everything that is not part of the usb storage support in SPL is now
> build under SPL_USB_HOST_SUPPORT.
>
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Tom Rini <trini@konsulko.com>

Reviewed-by: Fabio Estevam <festevam@gmail.com>

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

* [U-Boot] [PATCH v4 03/20] usb: ehci-mx6: Make regulator DM_REGULATOR dependent
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 03/20] usb: ehci-mx6: Make regulator DM_REGULATOR dependent Abel Vesa
@ 2019-02-02  9:41   ` Fabio Estevam
  2019-02-02 21:47   ` Lukasz Majewski
  1 sibling, 0 replies; 654+ messages in thread
From: Fabio Estevam @ 2019-02-02  9:41 UTC (permalink / raw)
  To: u-boot

On Fri, Feb 1, 2019 at 2:47 PM Abel Vesa <abel.vesa@nxp.com> wrote:
>
> Do the regulator related work only if the build has the DM_REGULATOR.
>
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>

Reviewed-by: Fabio Estevam <festevam@gmail.com>

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

* [U-Boot] [PATCH v4 04/20] configs: imx6sabreauto: Add DM_MMC support
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 04/20] configs: imx6sabreauto: Add DM_MMC support Abel Vesa
@ 2019-02-02  9:41   ` Fabio Estevam
  0 siblings, 0 replies; 654+ messages in thread
From: Fabio Estevam @ 2019-02-02  9:41 UTC (permalink / raw)
  To: u-boot

On Fri, Feb 1, 2019 at 2:49 PM Abel Vesa <abel.vesa@nxp.com> wrote:
>
> Add DM_MMC config to imx6sabreauto defconfig.
>
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>

Reviewed-by: Fabio Estevam <festevam@gmail.com>

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

* [U-Boot] [PATCH v4 05/20] configs: imx6sabreauto: Add DM_USB support
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 05/20] configs: imx6sabreauto: Add DM_USB support Abel Vesa
@ 2019-02-02  9:42   ` Fabio Estevam
  0 siblings, 0 replies; 654+ messages in thread
From: Fabio Estevam @ 2019-02-02  9:42 UTC (permalink / raw)
  To: u-boot

On Fri, Feb 1, 2019 at 2:47 PM Abel Vesa <abel.vesa@nxp.com> wrote:
>
> Add the DM support for USB. For that, DM_REGULATOR is needed.
>
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>

Reviewed-by: Fabio Estevam <festevam@gmail.com>

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

* [U-Boot] [PATCH v4 06/20] mmc: fsl_esdhc: Fix DM_REGULATOR ifdefs for SPL builds
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 06/20] mmc: fsl_esdhc: Fix DM_REGULATOR ifdefs for SPL builds Abel Vesa
@ 2019-02-02  9:42   ` Fabio Estevam
  2019-02-02 21:48   ` Lukasz Majewski
  1 sibling, 0 replies; 654+ messages in thread
From: Fabio Estevam @ 2019-02-02  9:42 UTC (permalink / raw)
  To: u-boot

On Fri, Feb 1, 2019 at 2:44 PM Abel Vesa <abel.vesa@nxp.com> wrote:
>
> Since the fsl_esdhc will also be used by SPL, make the
> preprocessor switches more generic to allow any kind of build.
>
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>

Reviewed-by: Fabio Estevam <festevam@gmail.com>

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

* [U-Boot] [PATCH v4 07/20] board: mx6sabresd: Add board_fit_config_name_match to support FIT in SPL
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 07/20] board: mx6sabresd: Add board_fit_config_name_match to support FIT in SPL Abel Vesa
@ 2019-02-02  9:43   ` Fabio Estevam
  2019-02-02 21:48   ` Lukasz Majewski
  1 sibling, 0 replies; 654+ messages in thread
From: Fabio Estevam @ 2019-02-02  9:43 UTC (permalink / raw)
  To: u-boot

On Fri, Feb 1, 2019 at 2:50 PM Abel Vesa <abel.vesa@nxp.com> wrote:
>
> This matches one of the following three boards (or fails):
>  - imx6q-sabresd
>  - imx6qp-sabresd
>  - imx6dl-sabresd
>
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>

Reviewed-by: Fabio Estevam <festevam@gmail.com>

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

* [U-Boot] [PATCH v4 08/20] board: mx6sabreauto: Add board_fit_config_name_match to support FIT in SPL
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 08/20] board: mx6sabreauto: " Abel Vesa
@ 2019-02-02  9:43   ` Fabio Estevam
  2019-02-02 21:49   ` Lukasz Majewski
  1 sibling, 0 replies; 654+ messages in thread
From: Fabio Estevam @ 2019-02-02  9:43 UTC (permalink / raw)
  To: u-boot

On Fri, Feb 1, 2019 at 2:50 PM Abel Vesa <abel.vesa@nxp.com> wrote:
>
> This matches one of the following three boards (or fails):
>  - imx6q-sabreauto
>  - imx6qp-sabreauto
>  - imx6dl-sabreauto
>
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>

Reviewed-by: Fabio Estevam <festevam@gmail.com>

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

* [U-Boot] [PATCH v4 09/20] arm: dts: Add all the imx6[q|qp|dl] sabre[auto|sd] u-boot dts[i] files
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 09/20] arm: dts: Add all the imx6[q|qp|dl] sabre[auto|sd] u-boot dts[i] files Abel Vesa
@ 2019-02-02  9:44   ` Fabio Estevam
  2019-02-02 21:50   ` Lukasz Majewski
  1 sibling, 0 replies; 654+ messages in thread
From: Fabio Estevam @ 2019-02-02  9:44 UTC (permalink / raw)
  To: u-boot

On Fri, Feb 1, 2019 at 2:46 PM Abel Vesa <abel.vesa@nxp.com> wrote:
>
> This allows us to keep the basic dts[i] files up-to-date with
> the ones in kernel, but at the same time allowing the u-boot
> to add its own properties to the existing nodes.
>
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>

Reviewed-by: Fabio Estevam <festevam@gmail.com>

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

* [U-Boot] [PATCH v4 10/20] arm: dts: Update all the dts[i] files for imx6[q|qp|dl] sabre[auto|sd]
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 10/20] arm: dts: Update all the dts[i] files for imx6[q|qp|dl] sabre[auto|sd] Abel Vesa
@ 2019-02-02  9:45   ` Fabio Estevam
  2019-02-02 21:50   ` Lukasz Majewski
  1 sibling, 0 replies; 654+ messages in thread
From: Fabio Estevam @ 2019-02-02  9:45 UTC (permalink / raw)
  To: u-boot

On Fri, Feb 1, 2019 at 2:45 PM Abel Vesa <abel.vesa@nxp.com> wrote:
>
> Update all the dts[i] files for imx6[q|qp|dl] sabre[auto|sd] to the ones
> from kernel v4.20 (commit 8fe28cb58bcb2).
>
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Acked-by: Peng Fan <peng.fan@nxp.com>

Reviewed-by: Fabio Estevam <festevam@gmail.com>

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

* [U-Boot] [PATCH v4 11/20] configs: mx6sabreauto: Add SPL FIT and DM support
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 11/20] configs: mx6sabreauto: Add SPL FIT and DM support Abel Vesa
@ 2019-02-02  9:45   ` Fabio Estevam
  0 siblings, 0 replies; 654+ messages in thread
From: Fabio Estevam @ 2019-02-02  9:45 UTC (permalink / raw)
  To: u-boot

On Fri, Feb 1, 2019 at 2:48 PM Abel Vesa <abel.vesa@nxp.com> wrote:
>
> Enable all the necessary configs for SPL DM and FIT support for
> mx6sabreauto.
>
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>

Reviewed-by: Fabio Estevam <festevam@gmail.com>

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

* [U-Boot] [PATCH v4 12/20] configs: mx6sabresd: Add SPL FIT and DM support
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 12/20] configs: mx6sabresd: " Abel Vesa
@ 2019-02-02  9:45   ` Fabio Estevam
  0 siblings, 0 replies; 654+ messages in thread
From: Fabio Estevam @ 2019-02-02  9:45 UTC (permalink / raw)
  To: u-boot

On Fri, Feb 1, 2019 at 2:47 PM Abel Vesa <abel.vesa@nxp.com> wrote:
>
> Enable all the necessary configs for SPL DM and FIT support for
> mx6sabresd.
>
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>

Reviewed-by: Fabio Estevam <festevam@gmail.com>

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

* [U-Boot] [PATCH v4 13/20] mx6sabreauto: Add DM_GPIO support
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 13/20] mx6sabreauto: " Abel Vesa
@ 2019-02-02  9:46   ` Fabio Estevam
  0 siblings, 0 replies; 654+ messages in thread
From: Fabio Estevam @ 2019-02-02  9:46 UTC (permalink / raw)
  To: u-boot

On Fri, Feb 1, 2019 at 2:49 PM Abel Vesa <abel.vesa@nxp.com> wrote:
>
> Add the DM_GPIO related config for mx6sabreauto.
> Also add the gpio request calls.
>
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>

Reviewed-by: Fabio Estevam <festevam@gmail.com>

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

* [U-Boot] [PATCH v4 14/20] mx6sabresd: Add DM_GPIO support
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 14/20] mx6sabresd: Add DM_GPIO support Abel Vesa
@ 2019-02-02  9:46   ` Fabio Estevam
  0 siblings, 0 replies; 654+ messages in thread
From: Fabio Estevam @ 2019-02-02  9:46 UTC (permalink / raw)
  To: u-boot

On Fri, Feb 1, 2019 at 2:46 PM Abel Vesa <abel.vesa@nxp.com> wrote:
>
> Add the DM_GPIO related config for mx6sabresd.
> Also add the gpio request calls.
>
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>

Reviewed-by: Fabio Estevam <festevam@gmail.com>

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

* [U-Boot] [PATCH v4 15/20] configs: mx6sabreauto: Add DM_SPI_FLASH necessary configs
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 15/20] configs: mx6sabreauto: Add DM_SPI_FLASH necessary configs Abel Vesa
@ 2019-02-02  9:46   ` Fabio Estevam
  0 siblings, 0 replies; 654+ messages in thread
From: Fabio Estevam @ 2019-02-02  9:46 UTC (permalink / raw)
  To: u-boot

On Fri, Feb 1, 2019 at 2:48 PM Abel Vesa <abel.vesa@nxp.com> wrote:
>
> Enable all neceassary configs to support DM_SPI_FLASH on mx6sabreauto.
>
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>

Reviewed-by: Fabio Estevam <festevam@gmail.com>

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

* [U-Boot] [PATCH v4 16/20] configs: mx6sabresd: Add DM_SPI_FLASH necessary configs
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 16/20] configs: mx6sabresd: Add DM_SPI_FLASH necessary configs Abel Vesa
@ 2019-02-02  9:47   ` Fabio Estevam
  0 siblings, 0 replies; 654+ messages in thread
From: Fabio Estevam @ 2019-02-02  9:47 UTC (permalink / raw)
  To: u-boot

On Fri, Feb 1, 2019 at 2:48 PM Abel Vesa <abel.vesa@nxp.com> wrote:
>
> Enable all neceassary configs to support DM_SPI_FLASH on mx6sabresd.
>
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>

Reviewed-by: Fabio Estevam <festevam@gmail.com>

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

* [U-Boot] [PATCH v4 17/20] board: mx6sabreauto: Remove the non-DM code
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 17/20] board: mx6sabreauto: Remove the non-DM code Abel Vesa
@ 2019-02-02  9:47   ` Fabio Estevam
  0 siblings, 0 replies; 654+ messages in thread
From: Fabio Estevam @ 2019-02-02  9:47 UTC (permalink / raw)
  To: u-boot

On Fri, Feb 1, 2019 at 2:50 PM Abel Vesa <abel.vesa@nxp.com> wrote:
>
> Since the mx6sabreauto has DM support, remove the unused non-DM code
> from mx6sabreauto board file.
>
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>

Reviewed-by: Fabio Estevam <festevam@gmail.com>

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

* [U-Boot] [PATCH v4 18/20] board: mx6sabresd: Remove non-DM code
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 18/20] board: mx6sabresd: Remove non-DM code Abel Vesa
@ 2019-02-02  9:47   ` Fabio Estevam
  0 siblings, 0 replies; 654+ messages in thread
From: Fabio Estevam @ 2019-02-02  9:47 UTC (permalink / raw)
  To: u-boot

On Fri, Feb 1, 2019 at 2:51 PM Abel Vesa <abel.vesa@nxp.com> wrote:
>
> Since the mx6sabreauto has DM support, remove the unused non-DM code
> from mx6sabresd board file.
>
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>

Reviewed-by: Fabio Estevam <festevam@gmail.com>

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

* [U-Boot] [PATCH v4 19/20] board: mx6sabresd: Remove the enet reset gpio handling
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 19/20] board: mx6sabresd: Remove the enet reset gpio handling Abel Vesa
@ 2019-02-02  9:48   ` Fabio Estevam
  2019-02-28 19:01     ` Soeren Moch
  0 siblings, 1 reply; 654+ messages in thread
From: Fabio Estevam @ 2019-02-02  9:48 UTC (permalink / raw)
  To: u-boot

On Fri, Feb 1, 2019 at 2:53 PM Abel Vesa <abel.vesa@nxp.com> wrote:
>
> Rely on the phy-reset-gpios which is set in imx6qdl-sabresd dtsi
> and get rid of the enet reset gpio handling from the board file.
>
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>

Reviewed-by: Fabio Estevam <festevam@gmail.com>

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

* [U-Boot] [PATCH v4 20/20] configs: mx6sabresd: Reduce SPL size by disabling DOS, EXT and EFI support
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 20/20] configs: mx6sabresd: Reduce SPL size by disabling DOS, EXT and EFI support Abel Vesa
@ 2019-02-02  9:49   ` Fabio Estevam
  0 siblings, 0 replies; 654+ messages in thread
From: Fabio Estevam @ 2019-02-02  9:49 UTC (permalink / raw)
  To: u-boot

On Fri, Feb 1, 2019 at 2:50 PM Abel Vesa <abel.vesa@nxp.com> wrote:
>
> With DM and FIT enabled in SPL, there is an sram overflow. By disabling
> CONFIG_SPL_DOS_PARTITION, CONFIG_SPL_EXT_SUPPORT and
> CONFIG_SPL_EFI_PARTITION, we get to keep the 'one binary to fit all'
> for imx6[q|qp|dl] on sabresd since the final SPL image is now under 64KB.
>
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>

Reviewed-by: Fabio Estevam <festevam@gmail.com>

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

* [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support
  2019-02-01 16:40 [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support Abel Vesa
                   ` (21 preceding siblings ...)
  2019-02-01 19:01 ` Tom Rini
@ 2019-02-02  9:50 ` Fabio Estevam
  2019-02-04  9:55   ` Abel Vesa
  22 siblings, 1 reply; 654+ messages in thread
From: Fabio Estevam @ 2019-02-02  9:50 UTC (permalink / raw)
  To: u-boot

Hi Abel,

On Fri, Feb 1, 2019 at 2:43 PM Abel Vesa <abel.vesa@nxp.com> wrote:
>
> The third version is here:
> https://lists.denx.de/pipermail/u-boot/2019-January/356903.html
>
> So, this time I hope I got it right. Before, I was stupidly trying
> to put a fit in another fit without a really good reason. To my
> excuse, that was working even with the spl_image->os set to 0,
> bug which I (hope) I fixed in the first patch (a new one)
> of this series.

I am happy with the entire series.

One more question: do we get build error when the SPL gets larger than 64kB?

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

* [U-Boot] [PATCH v4 02/20] usb: Rename SPL_USB_SUPPORT to SPL_USB_STORAGE
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 02/20] usb: Rename SPL_USB_SUPPORT to SPL_USB_STORAGE Abel Vesa
  2019-02-02  9:40   ` Fabio Estevam
@ 2019-02-02 21:46   ` Lukasz Majewski
  1 sibling, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-02 21:46 UTC (permalink / raw)
  To: u-boot

On Fri, 1 Feb 2019 16:40:07 +0000
Abel Vesa <abel.vesa@nxp.com> wrote:

> Since there is the SPL_USB_HOST_SUPPORT for enabling USB support in
> SPL, makes more sense to rename the SPL_USB_SUPPORT as
> SPL_USB_STORAGE. Everything that is not part of the usb storage
> support in SPL is now build under SPL_USB_HOST_SUPPORT.
> 

Reviewed-by: Lukasz Majewski <lukma@denx.de>

> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Tom Rini <trini@konsulko.com>
> ---
>  arch/arm/include/asm/arch-am33xx/spl.h    | 2 +-
>  arch/arm/mach-omap2/boot-common.c         | 2 +-
>  common/Makefile                           | 5 +++--
>  common/spl/Kconfig                        | 4 ++--
>  common/spl/Makefile                       | 2 +-
>  common/spl/spl_usb.c                      | 4 ----
>  configs/am43xx_evm_usbhost_boot_defconfig | 2 +-
>  configs/am43xx_hs_evm_defconfig           | 2 +-
>  8 files changed, 10 insertions(+), 13 deletions(-)
> 
> diff --git a/arch/arm/include/asm/arch-am33xx/spl.h
> b/arch/arm/include/asm/arch-am33xx/spl.h index 0bf8c17..f3910c2 100644
> --- a/arch/arm/include/asm/arch-am33xx/spl.h
> +++ b/arch/arm/include/asm/arch-am33xx/spl.h
> @@ -62,7 +62,7 @@
>  #define BOOT_DEVICE_CPGMAC	0x47
>  
>  #define MMC_BOOT_DEVICES_START	BOOT_DEVICE_MMC1
> -#ifdef CONFIG_SPL_USB_SUPPORT
> +#ifdef CONFIG_SPL_USB_STORAGE
>  #define MMC_BOOT_DEVICES_END	BOOT_DEVICE_USB
>  #else
>  #define MMC_BOOT_DEVICES_END	BOOT_DEVICE_MMC2
> diff --git a/arch/arm/mach-omap2/boot-common.c
> b/arch/arm/mach-omap2/boot-common.c index 2db1922..c8b8ac6 100644
> --- a/arch/arm/mach-omap2/boot-common.c
> +++ b/arch/arm/mach-omap2/boot-common.c
> @@ -93,7 +93,7 @@ void save_omap_boot_params(void)
>  			sys_boot_device = 1;
>  			break;
>  #endif
> -#if defined(BOOT_DEVICE_USB) && !defined(CONFIG_SPL_USB_SUPPORT)
> +#if defined(BOOT_DEVICE_USB) && !defined(CONFIG_SPL_USB_STORAGE)
>  		case BOOT_DEVICE_USB:
>  			sys_boot_device = 1;
>  			break;
> diff --git a/common/Makefile b/common/Makefile
> index ad390d0..8c92feb 100644
> --- a/common/Makefile
> +++ b/common/Makefile
> @@ -75,8 +75,9 @@ obj-$(CONFIG_SPL_NET_SUPPORT) += miiphyutil.o
>  obj-$(CONFIG_$(SPL_TPL_)OF_LIBFDT) += fdt_support.o
>  
>  ifdef CONFIG_SPL_USB_HOST_SUPPORT
> -obj-$(CONFIG_SPL_USB_SUPPORT) += usb.o usb_hub.o
> -obj-$(CONFIG_USB_STORAGE) += usb_storage.o
> +obj-y += usb.o
> +obj-y += usb_hub.o
> +obj-$(CONFIG_SPL_USB_STORAGE) += usb_storage.o
>  else
>  obj-$(CONFIG_USB_MUSB_HOST) += usb.o
>  endif
> diff --git a/common/spl/Kconfig b/common/spl/Kconfig
> index 54b0dc3..8b0627e 100644
> --- a/common/spl/Kconfig
> +++ b/common/spl/Kconfig
> @@ -766,9 +766,9 @@ config SPL_USB_HOST_SUPPORT
>  	  device can be attached. This option enables the drivers in
>  	  drivers/usb/host as part of an SPL build.
>  
> -config SPL_USB_SUPPORT
> +config SPL_USB_STORAGE
>  	bool "Support loading from USB"
> -	depends on SPL_USB_HOST_SUPPORT
> +	depends on SPL_USB_HOST_SUPPORT && !(BLK && !DM_USB)
>  	help
>  	  Enable support for USB devices in SPL. This allows use of
> USB devices such as hard drives and flash drivers for loading U-Boot.
> diff --git a/common/spl/Makefile b/common/spl/Makefile
> index 6f8d759..a3980ce 100644
> --- a/common/spl/Makefile
> +++ b/common/spl/Makefile
> @@ -22,7 +22,7 @@ obj-$(CONFIG_$(SPL_TPL_)NET_SUPPORT) += spl_net.o
>  obj-$(CONFIG_$(SPL_TPL_)MMC_SUPPORT) += spl_mmc.o
>  obj-$(CONFIG_$(SPL_TPL_)ATF) += spl_atf.o
>  obj-$(CONFIG_$(SPL_TPL_)OPTEE) += spl_optee.o
> -obj-$(CONFIG_$(SPL_TPL_)USB_SUPPORT) += spl_usb.o
> +obj-$(CONFIG_$(SPL_TPL_)USB_STORAGE) += spl_usb.o
>  obj-$(CONFIG_$(SPL_TPL_)FAT_SUPPORT) += spl_fat.o
>  obj-$(CONFIG_$(SPL_TPL_)EXT_SUPPORT) += spl_ext.o
>  obj-$(CONFIG_$(SPL_TPL_)SATA_SUPPORT) += spl_sata.o
> diff --git a/common/spl/spl_usb.c b/common/spl/spl_usb.c
> index c8d8231..e29d579 100644
> --- a/common/spl/spl_usb.c
> +++ b/common/spl/spl_usb.c
> @@ -15,9 +15,7 @@
>  #include <usb.h>
>  #include <fat.h>
>  
> -#ifdef CONFIG_USB_STORAGE
>  static int usb_stor_curr_dev = -1; /* current device */
> -#endif
>  
>  static int spl_usb_load_image(struct spl_image_info *spl_image,
>  			      struct spl_boot_device *bootdev)
> @@ -34,13 +32,11 @@ static int spl_usb_load_image(struct
> spl_image_info *spl_image, return err;
>  	}
>  
> -#ifdef CONFIG_USB_STORAGE
>  	/* try to recognize storage devices immediately */
>  	usb_stor_curr_dev = usb_stor_scan(1);
>  	stor_dev = blk_get_devnum_by_type(IF_TYPE_USB,
> usb_stor_curr_dev); if (!stor_dev)
>  		return -ENODEV;
> -#endif
>  
>  	debug("boot mode - FAT\n");
>  
> diff --git a/configs/am43xx_evm_usbhost_boot_defconfig
> b/configs/am43xx_evm_usbhost_boot_defconfig index 5131f19..5bd919b
> 100644 --- a/configs/am43xx_evm_usbhost_boot_defconfig
> +++ b/configs/am43xx_evm_usbhost_boot_defconfig
> @@ -14,7 +14,7 @@ CONFIG_VERSION_VARIABLE=y
>  CONFIG_SPL_MTD_SUPPORT=y
>  CONFIG_SPL_OS_BOOT=y
>  CONFIG_SPL_USB_HOST_SUPPORT=y
> -CONFIG_SPL_USB_SUPPORT=y
> +CONFIG_SPL_USB_STORAGE=y
>  CONFIG_CMD_SPL=y
>  CONFIG_CMD_SPL_NAND_OFS=0x00100000
>  CONFIG_CMD_SPL_WRITE_SIZE=0x40000
> diff --git a/configs/am43xx_hs_evm_defconfig
> b/configs/am43xx_hs_evm_defconfig index 99e4ccb..c01fda9 100644
> --- a/configs/am43xx_hs_evm_defconfig
> +++ b/configs/am43xx_hs_evm_defconfig
> @@ -24,7 +24,7 @@ CONFIG_SPL_MTD_SUPPORT=y
>  CONFIG_SPL_NET_SUPPORT=y
>  CONFIG_SPL_NET_VCI_STRING="AM43xx U-Boot SPL"
>  CONFIG_SPL_USB_HOST_SUPPORT=y
> -CONFIG_SPL_USB_SUPPORT=y
> +CONFIG_SPL_USB_STORAGE=y
>  CONFIG_SPL_USB_GADGET=y
>  CONFIG_SPL_USB_ETHER=y
>  # CONFIG_CMD_FLASH is not set




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190202/0cda1f22/attachment.sig>

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

* [U-Boot] [PATCH v4 03/20] usb: ehci-mx6: Make regulator DM_REGULATOR dependent
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 03/20] usb: ehci-mx6: Make regulator DM_REGULATOR dependent Abel Vesa
  2019-02-02  9:41   ` Fabio Estevam
@ 2019-02-02 21:47   ` Lukasz Majewski
  1 sibling, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-02 21:47 UTC (permalink / raw)
  To: u-boot

On Fri, 1 Feb 2019 16:40:08 +0000
Abel Vesa <abel.vesa@nxp.com> wrote:

> Do the regulator related work only if the build has the DM_REGULATOR.
> 

Yes, this part was missing for IMX6Q - especially SPL can get away with
enabling SPL_DM_REGULATOR if needed.

Reviewed-by: Lukasz Majewski <lukma@denx.de>

> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>
> ---
>  drivers/usb/host/ehci-mx6.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/usb/host/ehci-mx6.c b/drivers/usb/host/ehci-mx6.c
> index 1acf08d..9483947 100644
> --- a/drivers/usb/host/ehci-mx6.c
> +++ b/drivers/usb/host/ehci-mx6.c
> @@ -404,6 +404,7 @@ static int mx6_init_after_reset(struct ehci_ctrl
> *dev) if (ret)
>  		return ret;
>  
> +#if CONFIG_IS_ENABLED(DM_REGULATOR)
>  	if (priv->vbus_supply) {
>  		ret = regulator_set_enable(priv->vbus_supply,
>  					   (type ==
> USB_INIT_DEVICE) ? @@ -413,6 +414,7 @@ static int
> mx6_init_after_reset(struct ehci_ctrl *dev) return ret;
>  		}
>  	}
> +#endif
>  
>  	if (type == USB_INIT_DEVICE)
>  		return 0;
> @@ -514,15 +516,17 @@ static int ehci_usb_probe(struct udevice *dev)
>  	priv->portnr = dev->seq;
>  	priv->init_type = type;
>  
> +#if CONFIG_IS_ENABLED(DM_REGULATOR)
>  	ret = device_get_supply_regulator(dev, "vbus-supply",
>  					  &priv->vbus_supply);
>  	if (ret)
>  		debug("%s: No vbus supply\n", dev->name);
> -
> +#endif
>  	ret = ehci_mx6_common_init(ehci, priv->portnr);
>  	if (ret)
>  		return ret;
>  
> +#if CONFIG_IS_ENABLED(DM_REGULATOR)
>  	if (priv->vbus_supply) {
>  		ret = regulator_set_enable(priv->vbus_supply,
>  					   (type ==
> USB_INIT_DEVICE) ? @@ -532,6 +536,7 @@ static int
> ehci_usb_probe(struct udevice *dev) return ret;
>  		}
>  	}
> +#endif
>  
>  	if (priv->init_type == USB_INIT_HOST) {
>  		setbits_le32(&ehci->usbmode, CM_HOST);




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190202/586863e1/attachment.sig>

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

* [U-Boot] [PATCH v4 06/20] mmc: fsl_esdhc: Fix DM_REGULATOR ifdefs for SPL builds
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 06/20] mmc: fsl_esdhc: Fix DM_REGULATOR ifdefs for SPL builds Abel Vesa
  2019-02-02  9:42   ` Fabio Estevam
@ 2019-02-02 21:48   ` Lukasz Majewski
  1 sibling, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-02 21:48 UTC (permalink / raw)
  To: u-boot

On Fri, 1 Feb 2019 16:40:11 +0000
Abel Vesa <abel.vesa@nxp.com> wrote:

> Since the fsl_esdhc will also be used by SPL, make the
> preprocessor switches more generic to allow any kind of build.
> 

The same here - as with ehci-mx6.
Thanks Abel for this patch.

Reviewed-by: Lukasz Majewski <lukma@denx.de>

> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> ---
>  drivers/mmc/fsl_esdhc.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c
> index 21fa2ab..9e34557 100644
> --- a/drivers/mmc/fsl_esdhc.c
> +++ b/drivers/mmc/fsl_esdhc.c
> @@ -804,7 +804,7 @@ static int esdhc_set_voltage(struct mmc *mmc)
>  	case MMC_SIGNAL_VOLTAGE_330:
>  		if (priv->vs18_enable)
>  			return -EIO;
> -#ifdef CONFIG_DM_REGULATOR
> +#if CONFIG_IS_ENABLED(DM_REGULATOR)
>  		if (!IS_ERR_OR_NULL(priv->vqmmc_dev)) {
>  			ret = regulator_set_value(priv->vqmmc_dev,
> 3300000); if (ret) {
> @@ -823,7 +823,7 @@ static int esdhc_set_voltage(struct mmc *mmc)
>  
>  		return -EAGAIN;
>  	case MMC_SIGNAL_VOLTAGE_180:
> -#ifdef CONFIG_DM_REGULATOR
> +#if CONFIG_IS_ENABLED(DM_REGULATOR)
>  		if (!IS_ERR_OR_NULL(priv->vqmmc_dev)) {
>  			ret = regulator_set_value(priv->vqmmc_dev,
> 1800000); if (ret) {
> @@ -1442,7 +1442,7 @@ static int fsl_esdhc_probe(struct udevice *dev)
>  	int node = dev_of_offset(dev);
>  	struct esdhc_soc_data *data =
>  		(struct esdhc_soc_data *)dev_get_driver_data(dev);
> -#ifdef CONFIG_DM_REGULATOR
> +#if CONFIG_IS_ENABLED(DM_REGULATOR)
>  	struct udevice *vqmmc_dev;
>  #endif
>  	fdt_addr_t addr;
> @@ -1500,7 +1500,7 @@ static int fsl_esdhc_probe(struct udevice *dev)
>  
>  	priv->vs18_enable = 0;
>  
> -#ifdef CONFIG_DM_REGULATOR
> +#if CONFIG_IS_ENABLED(DM_REGULATOR)
>  	/*
>  	 * If emmc I/O has a fixed voltage at 1.8V, this must be
> provided,
>  	 * otherwise, emmc will work abnormally.




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190202/df6e5e61/attachment.sig>

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

* [U-Boot] [PATCH v4 07/20] board: mx6sabresd: Add board_fit_config_name_match to support FIT in SPL
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 07/20] board: mx6sabresd: Add board_fit_config_name_match to support FIT in SPL Abel Vesa
  2019-02-02  9:43   ` Fabio Estevam
@ 2019-02-02 21:48   ` Lukasz Majewski
  1 sibling, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-02 21:48 UTC (permalink / raw)
  To: u-boot

On Fri, 1 Feb 2019 16:40:12 +0000
Abel Vesa <abel.vesa@nxp.com> wrote:

> This matches one of the following three boards (or fails):
>  - imx6q-sabresd
>  - imx6qp-sabresd
>  - imx6dl-sabresd
> 

Reviewed-by: Lukasz Majewski <lukma@denx.de>

> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>
> ---
>  board/freescale/mx6sabresd/mx6sabresd.c | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
> 
> diff --git a/board/freescale/mx6sabresd/mx6sabresd.c
> b/board/freescale/mx6sabresd/mx6sabresd.c index 0183ede..4688095
> 100644 --- a/board/freescale/mx6sabresd/mx6sabresd.c
> +++ b/board/freescale/mx6sabresd/mx6sabresd.c
> @@ -1062,3 +1062,21 @@ void board_init_f(ulong dummy)
>  	board_init_r(NULL, 0);
>  }
>  #endif
> +
> +#ifdef CONFIG_SPL_LOAD_FIT
> +int board_fit_config_name_match(const char *name)
> +{
> +	if (is_mx6dq()) {
> +		if (!strcmp(name, "imx6q-sabresd"))
> +			return 0;
> +	} else if (is_mx6dqp()) {
> +		if (!strcmp(name, "imx6qp-sabresd"))
> +			return 0;
> +	} else if (is_mx6dl()) {
> +		if (!strcmp(name, "imx6dl-sabresd"))
> +			return 0;
> +	}
> +
> +	return -1;
> +}
> +#endif




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190202/3f12a3e0/attachment.sig>

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

* [U-Boot] [PATCH v4 08/20] board: mx6sabreauto: Add board_fit_config_name_match to support FIT in SPL
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 08/20] board: mx6sabreauto: " Abel Vesa
  2019-02-02  9:43   ` Fabio Estevam
@ 2019-02-02 21:49   ` Lukasz Majewski
  1 sibling, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-02 21:49 UTC (permalink / raw)
  To: u-boot

On Fri, 1 Feb 2019 16:40:13 +0000
Abel Vesa <abel.vesa@nxp.com> wrote:

> This matches one of the following three boards (or fails):
>  - imx6q-sabreauto
>  - imx6qp-sabreauto
>  - imx6dl-sabreauto
> 

Reviewed-by: Lukasz Majewski <lukma@denx.de>

> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>
> ---
>  board/freescale/mx6sabreauto/mx6sabreauto.c | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
> 
> diff --git a/board/freescale/mx6sabreauto/mx6sabreauto.c
> b/board/freescale/mx6sabreauto/mx6sabreauto.c index c1bef85..c8f1263
> 100644 --- a/board/freescale/mx6sabreauto/mx6sabreauto.c
> +++ b/board/freescale/mx6sabreauto/mx6sabreauto.c
> @@ -1097,3 +1097,21 @@ void board_init_f(ulong dummy)
>  	board_init_r(NULL, 0);
>  }
>  #endif
> +
> +#ifdef CONFIG_SPL_LOAD_FIT
> +int board_fit_config_name_match(const char *name)
> +{
> +	if (is_mx6dq()) {
> +		if (!strcmp(name, "imx6q-sabreauto"))
> +			return 0;
> +	} else if (is_mx6dqp()) {
> +		if (!strcmp(name, "imx6qp-sabreauto"))
> +			return 0;
> +	} else if (is_mx6dl()) {
> +		if (!strcmp(name, "imx6dl-sabreauto"))
> +			return 0;
> +	}
> +
> +	return -1;
> +}
> +#endif




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190202/45c8c1dd/attachment.sig>

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

* [U-Boot] [PATCH v4 09/20] arm: dts: Add all the imx6[q|qp|dl] sabre[auto|sd] u-boot dts[i] files
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 09/20] arm: dts: Add all the imx6[q|qp|dl] sabre[auto|sd] u-boot dts[i] files Abel Vesa
  2019-02-02  9:44   ` Fabio Estevam
@ 2019-02-02 21:50   ` Lukasz Majewski
  1 sibling, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-02 21:50 UTC (permalink / raw)
  To: u-boot

On Fri, 1 Feb 2019 16:40:14 +0000
Abel Vesa <abel.vesa@nxp.com> wrote:

> This allows us to keep the basic dts[i] files up-to-date with
> the ones in kernel, but at the same time allowing the u-boot
> to add its own properties to the existing nodes.
> 

Reviewed-by: Lukasz Majewski <lukma@denx.de>

> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> ---
>  arch/arm/dts/imx6dl-sabreauto-u-boot.dtsi  |  6 ++++++
>  arch/arm/dts/imx6dl-sabresd-u-boot.dtsi    |  6 ++++++
>  arch/arm/dts/imx6q-sabreauto-u-boot.dtsi   |  6 ++++++
>  arch/arm/dts/imx6q-sabresd-u-boot.dtsi     |  6 ++++++
>  arch/arm/dts/imx6qdl-sabreauto-u-boot.dtsi | 21 +++++++++++++++++++++
>  arch/arm/dts/imx6qdl-sabresd-u-boot.dtsi   | 14 ++++++++++++++
>  arch/arm/dts/imx6qdl-u-boot.dtsi           |  4 ++--
>  arch/arm/dts/imx6qp-sabreauto-u-boot.dtsi  |  6 ++++++
>  arch/arm/dts/imx6qp-sabresd-u-boot.dtsi    |  6 ++++++
>  9 files changed, 73 insertions(+), 2 deletions(-)
>  create mode 100644 arch/arm/dts/imx6dl-sabreauto-u-boot.dtsi
>  create mode 100644 arch/arm/dts/imx6dl-sabresd-u-boot.dtsi
>  create mode 100644 arch/arm/dts/imx6q-sabreauto-u-boot.dtsi
>  create mode 100644 arch/arm/dts/imx6q-sabresd-u-boot.dtsi
>  create mode 100644 arch/arm/dts/imx6qdl-sabreauto-u-boot.dtsi
>  create mode 100644 arch/arm/dts/imx6qdl-sabresd-u-boot.dtsi
>  create mode 100644 arch/arm/dts/imx6qp-sabreauto-u-boot.dtsi
>  create mode 100644 arch/arm/dts/imx6qp-sabresd-u-boot.dtsi
> 
> diff --git a/arch/arm/dts/imx6dl-sabreauto-u-boot.dtsi
> b/arch/arm/dts/imx6dl-sabreauto-u-boot.dtsi new file mode 100644
> index 0000000..d75fcc1
> --- /dev/null
> +++ b/arch/arm/dts/imx6dl-sabreauto-u-boot.dtsi
> @@ -0,0 +1,6 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright (C) 2019 NXP
> + */
> +
> +#include "imx6qdl-sabreauto-u-boot.dtsi"
> diff --git a/arch/arm/dts/imx6dl-sabresd-u-boot.dtsi
> b/arch/arm/dts/imx6dl-sabresd-u-boot.dtsi new file mode 100644
> index 0000000..e4d7d28
> --- /dev/null
> +++ b/arch/arm/dts/imx6dl-sabresd-u-boot.dtsi
> @@ -0,0 +1,6 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright (C) 2019 NXP
> + */
> +
> +#include "imx6qdl-sabresd-u-boot.dtsi"
> diff --git a/arch/arm/dts/imx6q-sabreauto-u-boot.dtsi
> b/arch/arm/dts/imx6q-sabreauto-u-boot.dtsi new file mode 100644
> index 0000000..d75fcc1
> --- /dev/null
> +++ b/arch/arm/dts/imx6q-sabreauto-u-boot.dtsi
> @@ -0,0 +1,6 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright (C) 2019 NXP
> + */
> +
> +#include "imx6qdl-sabreauto-u-boot.dtsi"
> diff --git a/arch/arm/dts/imx6q-sabresd-u-boot.dtsi
> b/arch/arm/dts/imx6q-sabresd-u-boot.dtsi new file mode 100644
> index 0000000..e4d7d28
> --- /dev/null
> +++ b/arch/arm/dts/imx6q-sabresd-u-boot.dtsi
> @@ -0,0 +1,6 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright (C) 2019 NXP
> + */
> +
> +#include "imx6qdl-sabresd-u-boot.dtsi"
> diff --git a/arch/arm/dts/imx6qdl-sabreauto-u-boot.dtsi
> b/arch/arm/dts/imx6qdl-sabreauto-u-boot.dtsi new file mode 100644
> index 0000000..ea90f40
> --- /dev/null
> +++ b/arch/arm/dts/imx6qdl-sabreauto-u-boot.dtsi
> @@ -0,0 +1,21 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright (C) 2019 NXP
> + */
> +
> +#include "imx6qdl-u-boot.dtsi"
> +
> +/ {
> +	aliases {
> +		mmc0 = &usdhc3;
> +	};
> +};
> +
> +&usdhc3 {
> +	no-1-8-v;
> +	u-boot,dm-spl;
> +};
> +
> +&pinctrl_usdhc3 {
> +	u-boot,dm-spl;
> +};
> diff --git a/arch/arm/dts/imx6qdl-sabresd-u-boot.dtsi
> b/arch/arm/dts/imx6qdl-sabresd-u-boot.dtsi new file mode 100644
> index 0000000..45f02b1
> --- /dev/null
> +++ b/arch/arm/dts/imx6qdl-sabresd-u-boot.dtsi
> @@ -0,0 +1,14 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright (C) 2019 NXP
> + */
> +
> +#include "imx6qdl-u-boot.dtsi"
> +
> +&usdhc3 {
> +	u-boot,dm-spl;
> +};
> +
> +&pinctrl_usdhc3 {
> +	u-boot,dm-spl;
> +};
> diff --git a/arch/arm/dts/imx6qdl-u-boot.dtsi
> b/arch/arm/dts/imx6qdl-u-boot.dtsi index dffc21b..45ae2fa 100644
> --- a/arch/arm/dts/imx6qdl-u-boot.dtsi
> +++ b/arch/arm/dts/imx6qdl-u-boot.dtsi
> @@ -7,11 +7,11 @@
>  	soc {
>  		u-boot,dm-spl;
>  
> -		aips-bus at 02000000 {
> +		aips-bus at 2000000 {
>  			u-boot,dm-spl;
>  		};
>  
> -		aips-bus at 02100000 {
> +		aips-bus at 2100000 {
>  			u-boot,dm-spl;
>  		};
>  	};
> diff --git a/arch/arm/dts/imx6qp-sabreauto-u-boot.dtsi
> b/arch/arm/dts/imx6qp-sabreauto-u-boot.dtsi new file mode 100644
> index 0000000..d75fcc1
> --- /dev/null
> +++ b/arch/arm/dts/imx6qp-sabreauto-u-boot.dtsi
> @@ -0,0 +1,6 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright (C) 2019 NXP
> + */
> +
> +#include "imx6qdl-sabreauto-u-boot.dtsi"
> diff --git a/arch/arm/dts/imx6qp-sabresd-u-boot.dtsi
> b/arch/arm/dts/imx6qp-sabresd-u-boot.dtsi new file mode 100644
> index 0000000..e4d7d28
> --- /dev/null
> +++ b/arch/arm/dts/imx6qp-sabresd-u-boot.dtsi
> @@ -0,0 +1,6 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright (C) 2019 NXP
> + */
> +
> +#include "imx6qdl-sabresd-u-boot.dtsi"




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190202/96e447d7/attachment.sig>

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

* [U-Boot] [PATCH v4 10/20] arm: dts: Update all the dts[i] files for imx6[q|qp|dl] sabre[auto|sd]
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 10/20] arm: dts: Update all the dts[i] files for imx6[q|qp|dl] sabre[auto|sd] Abel Vesa
  2019-02-02  9:45   ` Fabio Estevam
@ 2019-02-02 21:50   ` Lukasz Majewski
  1 sibling, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-02 21:50 UTC (permalink / raw)
  To: u-boot

On Fri, 1 Feb 2019 16:40:16 +0000
Abel Vesa <abel.vesa@nxp.com> wrote:

> Update all the dts[i] files for imx6[q|qp|dl] sabre[auto|sd] to the
> ones from kernel v4.20 (commit 8fe28cb58bcb2).
> 

Reviewed-by: Lukasz Majewski <lukma@denx.de>

> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Acked-by: Peng Fan <peng.fan@nxp.com>
> ---
>  arch/arm/dts/Makefile               |   8 +-
>  arch/arm/dts/imx6dl-sabreauto.dts   |  13 +
>  arch/arm/dts/imx6dl-sabresd.dts     |  18 +
>  arch/arm/dts/imx6dl.dtsi            | 306 ++++++++++++--
>  arch/arm/dts/imx6q-sabreauto.dts    |  18 +
>  arch/arm/dts/imx6q-sabresd.dts      |  23 +
>  arch/arm/dts/imx6q.dtsi             | 310 ++++++++++++--
>  arch/arm/dts/imx6qdl-sabreauto.dtsi | 810
> ++++++++++++++++++++++++++++++++++++
> arch/arm/dts/imx6qdl-sabresd.dtsi   | 741
> +++++++++++++++++++++++++++++++++ arch/arm/dts/imx6qdl.dtsi
> | 455 +++++++++++--------- arch/arm/dts/imx6qp-sabreauto.dts   |  55
> +++ arch/arm/dts/imx6qp-sabresd.dts     |  55 +++
> arch/arm/dts/imx6qp.dtsi            | 115 +++++ 13 files changed,
> 2669 insertions(+), 258 deletions(-) create mode 100644
> arch/arm/dts/imx6dl-sabreauto.dts create mode 100644
> arch/arm/dts/imx6dl-sabresd.dts create mode 100644
> arch/arm/dts/imx6q-sabreauto.dts create mode 100644
> arch/arm/dts/imx6q-sabresd.dts create mode 100644
> arch/arm/dts/imx6qdl-sabreauto.dtsi create mode 100644
> arch/arm/dts/imx6qdl-sabresd.dtsi create mode 100644
> arch/arm/dts/imx6qp-sabreauto.dts create mode 100644
> arch/arm/dts/imx6qp-sabresd.dts create mode 100644
> arch/arm/dts/imx6qp.dtsi
> 
> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
> index 46f1d69..e8512af 100644
> --- a/arch/arm/dts/Makefile
> +++ b/arch/arm/dts/Makefile
> @@ -443,7 +443,13 @@ dtb-$(CONFIG_MX6QDL) += \
>  	imx6q-icore.dtb \
>  	imx6q-icore-mipi.dtb \
>  	imx6q-icore-rqs.dtb \
> -	imx6q-logicpd.dtb
> +	imx6q-logicpd.dtb \
> +	imx6q-sabreauto.dtb \
> +	imx6q-sabresd.dtb \
> +	imx6dl-sabreauto.dtb \
> +	imx6dl-sabresd.dtb \
> +	imx6qp-sabreauto.dtb \
> +	imx6qp-sabresd.dtb
>  
>  dtb-$(CONFIG_MX6SL) += imx6sl-evk.dtb
>  
> diff --git a/arch/arm/dts/imx6dl-sabreauto.dts
> b/arch/arm/dts/imx6dl-sabreauto.dts new file mode 100644
> index 0000000..660d52a
> --- /dev/null
> +++ b/arch/arm/dts/imx6dl-sabreauto.dts
> @@ -0,0 +1,13 @@
> +// SPDX-License-Identifier: GPL-2.0
> +//
> +// Copyright (C) 2013 Freescale Semiconductor, Inc.
> +
> +/dts-v1/;
> +
> +#include "imx6dl.dtsi"
> +#include "imx6qdl-sabreauto.dtsi"
> +
> +/ {
> +	model = "Freescale i.MX6 DualLite/Solo SABRE Automotive
> Board";
> +	compatible = "fsl,imx6dl-sabreauto", "fsl,imx6dl";
> +};
> diff --git a/arch/arm/dts/imx6dl-sabresd.dts
> b/arch/arm/dts/imx6dl-sabresd.dts new file mode 100644
> index 0000000..cd6bbf2
> --- /dev/null
> +++ b/arch/arm/dts/imx6dl-sabresd.dts
> @@ -0,0 +1,18 @@
> +// SPDX-License-Identifier: GPL-2.0
> +//
> +// Copyright (C) 2013 Freescale Semiconductor, Inc.
> +
> +/dts-v1/;
> +
> +#include "imx6dl.dtsi"
> +#include "imx6qdl-sabresd.dtsi"
> +
> +/ {
> +	model = "Freescale i.MX6 DualLite SABRE Smart Device Board";
> +	compatible = "fsl,imx6dl-sabresd", "fsl,imx6dl";
> +};
> +
> +&ipu1_csi1_from_ipu1_csi1_mux {
> +	clock-lanes = <0>;
> +	data-lanes = <1 2>;
> +};
> diff --git a/arch/arm/dts/imx6dl.dtsi b/arch/arm/dts/imx6dl.dtsi
> index 9a4c22c..f0607eb 100644
> --- a/arch/arm/dts/imx6dl.dtsi
> +++ b/arch/arm/dts/imx6dl.dtsi
> @@ -1,12 +1,6 @@
> -
> -/*
> - * Copyright 2013 Freescale Semiconductor, Inc.
> - *
> - * This program is free software; you can redistribute it and/or
> modify
> - * it under the terms of the GNU General Public License version 2 as
> - * published by the Free Software Foundation.
> - *
> - */
> +// SPDX-License-Identifier: GPL-2.0
> +//
> +// Copyright 2013 Freescale Semiconductor, Inc.
>  
>  #include <dt-bindings/interrupt-controller/irq.h>
>  #include "imx6dl-pinfunc.h"
> @@ -39,6 +33,7 @@
>  				396000	1175000
>  			>;  
>  			clock-latency = <61036>; /* two CLK32
> periods */
> +			#cooling-cells = <2>;
>  			clocks = <&clks IMX6QDL_CLK_ARM>,
>  				 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
>  				 <&clks IMX6QDL_CLK_STEP>,
> @@ -56,39 +51,57 @@
>  			device_type = "cpu";
>  			reg = <1>;
>  			next-level-cache = <&L2>;
> +			operating-points = <
> +				/* kHz    uV */
> +				996000  1250000
> +				792000  1175000
> +				396000  1150000
> +			>;
> +			fsl,soc-operating-points = <
> +				/* ARM kHz  SOC-PU uV */
> +				996000	1175000
> +				792000	1175000
> +				396000	1175000
> +			>;
> +			clock-latency = <61036>; /* two CLK32
> periods */
> +			clocks = <&clks IMX6QDL_CLK_ARM>,
> +				 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
> +				 <&clks IMX6QDL_CLK_STEP>,
> +				 <&clks IMX6QDL_CLK_PLL1_SW>,
> +				 <&clks IMX6QDL_CLK_PLL1_SYS>;
> +			clock-names = "arm", "pll2_pfd2_396m",
> "step",
> +				      "pll1_sw", "pll1_sys";
> +			arm-supply = <&reg_arm>;
> +			pu-supply = <&reg_pu>;
> +			soc-supply = <&reg_soc>;
>  		};
>  	};
>  
>  	soc {
> -		ocram: sram at 00900000 {
> +		ocram: sram at 900000 {
>  			compatible = "mmio-sram";
>  			reg = <0x00900000 0x20000>;
>  			clocks = <&clks IMX6QDL_CLK_OCRAM>;
>  		};
>  
> -		aips1: aips-bus at 02000000 {
> -			iomuxc: iomuxc at 020e0000 {
> +		aips1: aips-bus at 2000000 {
> +			iomuxc: iomuxc at 20e0000 {
>  				compatible = "fsl,imx6dl-iomuxc";
>  			};
>  
> -			pxp: pxp at 020f0000 {
> +			pxp: pxp at 20f0000 {
>  				reg = <0x020f0000 0x4000>;
>  				interrupts = <0 98
> IRQ_TYPE_LEVEL_HIGH>; };
>  
> -			epdc: epdc at 020f4000 {
> +			epdc: epdc at 20f4000 {
>  				reg = <0x020f4000 0x4000>;
>  				interrupts = <0 97
> IRQ_TYPE_LEVEL_HIGH>; };
> -
> -			lcdif: lcdif at 020f8000 {
> -				reg = <0x020f8000 0x4000>;
> -				interrupts = <0 39
> IRQ_TYPE_LEVEL_HIGH>;
> -			};
>  		};
>  
> -		aips2: aips-bus at 02100000 {
> -			i2c4: i2c at 021f8000 {
> +		aips2: aips-bus at 2100000 {
> +			i2c4: i2c at 21f8000 {
>  				#address-cells = <1>;
>  				#size-cells = <0>;
>  				compatible = "fsl,imx6q-i2c",
> "fsl,imx21-i2c"; @@ -100,14 +113,177 @@
>  		};
>  	};
>  
> +	capture-subsystem {
> +		compatible = "fsl,imx-capture-subsystem";
> +		ports = <&ipu1_csi0>, <&ipu1_csi1>;
> +	};
> +
>  	display-subsystem {
>  		compatible = "fsl,imx-display-subsystem";
>  		ports = <&ipu1_di0>, <&ipu1_di1>;
>  	};
> +};
> +
> +&gpio1 {
> +	gpio-ranges = <&iomuxc  0 131 2>, <&iomuxc  2 137 8>,
> <&iomuxc 10 189 2>,
> +		      <&iomuxc 12 194 1>, <&iomuxc 13 193 1>,
> <&iomuxc 14 192 1>,
> +		      <&iomuxc 15 191 1>, <&iomuxc 16 185 2>,
> <&iomuxc 18 184 1>,
> +		      <&iomuxc 19 187 1>, <&iomuxc 20 183 1>,
> <&iomuxc 21 188 1>,
> +		      <&iomuxc 22 123 3>, <&iomuxc 25 121 1>,
> <&iomuxc 26 127 1>,
> +		      <&iomuxc 27 126 1>, <&iomuxc 28 128 1>,
> <&iomuxc 29 130 1>,
> +		      <&iomuxc 30 129 1>, <&iomuxc 31 122 1>;
> +};
> +
> +&gpio2 {
> +	gpio-ranges = <&iomuxc  0 161 8>, <&iomuxc  8 208 8>,
> <&iomuxc 16  74 1>,
> +		      <&iomuxc 17  73 1>, <&iomuxc 18  72 1>,
> <&iomuxc 19  71 1>,
> +		      <&iomuxc 20  70 1>, <&iomuxc 21  69 1>,
> <&iomuxc 22  68 1>,
> +		      <&iomuxc 23  79 2>, <&iomuxc 25 118 2>,
> <&iomuxc 27 117 1>,
> +		      <&iomuxc 28 113 4>;
> +};
> +
> +&gpio3 {
> +	gpio-ranges = <&iomuxc  0 97  2>, <&iomuxc 2 105 8>,
> <&iomuxc 10 99 6>,
> +		      <&iomuxc 16 81 16>;
> +};
> +
> +&gpio4 {
> +	gpio-ranges = <&iomuxc  5 136 1>, <&iomuxc  6 145 1>,
> <&iomuxc  7 150 1>,
> +		      <&iomuxc  8 146 1>, <&iomuxc  9 151 1>,
> <&iomuxc 10 147 1>,
> +		      <&iomuxc 11 152 1>, <&iomuxc 12 148 1>,
> <&iomuxc 13 153 1>,
> +		      <&iomuxc 14 149 1>, <&iomuxc 15 154 1>,
> <&iomuxc 16  39 7>,
> +		      <&iomuxc 23  56 1>, <&iomuxc 24  61 7>,
> <&iomuxc 31  46 1>; +};
>  
> -	gpu-subsystem {
> -		compatible = "fsl,imx-gpu-subsystem";
> -		cores = <&gpu_2d>, <&gpu_3d>;
> +&gpio5 {
> +	gpio-ranges = <&iomuxc  0 120 1>, <&iomuxc  2 77 1>,
> <&iomuxc  4 76 1>,
> +		      <&iomuxc  5  47 9>, <&iomuxc 14 57 4>,
> <&iomuxc 18 37 1>,
> +		      <&iomuxc 19  36 1>, <&iomuxc 20 35 1>,
> <&iomuxc 21 38 1>,
> +		      <&iomuxc 22  29 6>, <&iomuxc 28 19 4>;
> +};
> +
> +&gpio6 {
> +	gpio-ranges = <&iomuxc  0  23 6>, <&iomuxc  6  75 1>,
> <&iomuxc  7 156 1>,
> +		      <&iomuxc  8 155 1>, <&iomuxc  9 170 1>,
> <&iomuxc 10 169 1>,
> +		      <&iomuxc 11 157 1>, <&iomuxc 14 158 3>,
> <&iomuxc 17 204 1>,
> +		      <&iomuxc 18 203 1>, <&iomuxc 19 182 1>,
> <&iomuxc 20 177 4>,
> +		      <&iomuxc 24 175 1>, <&iomuxc 25 171 1>,
> <&iomuxc 26 181 1>,
> +		      <&iomuxc 27 172 3>, <&iomuxc 30 176 1>,
> <&iomuxc 31  78 1>; +};
> +
> +&gpio7 {
> +	gpio-ranges = <&iomuxc 0 202 1>, <&iomuxc  1 201 1>,
> <&iomuxc  2 196 1>,
> +		      <&iomuxc 3 195 1>, <&iomuxc  4 197 4>,
> <&iomuxc  8 205 1>,
> +		      <&iomuxc 9 207 1>, <&iomuxc 10 206 1>,
> <&iomuxc 11 133 3>; +};
> +
> +&gpr {
> +	ipu1_csi0_mux {
> +		compatible = "video-mux";
> +		mux-controls = <&mux 0>;
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		port at 0 {
> +			reg = <0>;
> +
> +			ipu1_csi0_mux_from_mipi_vc0: endpoint {
> +				remote-endpoint =
> <&mipi_vc0_to_ipu1_csi0_mux>;
> +			};
> +		};
> +
> +		port at 1 {
> +			reg = <1>;
> +
> +			ipu1_csi0_mux_from_mipi_vc1: endpoint {
> +				remote-endpoint =
> <&mipi_vc1_to_ipu1_csi0_mux>;
> +			};
> +		};
> +
> +		port at 2 {
> +			reg = <2>;
> +
> +			ipu1_csi0_mux_from_mipi_vc2: endpoint {
> +				remote-endpoint =
> <&mipi_vc2_to_ipu1_csi0_mux>;
> +			};
> +		};
> +
> +		port at 3 {
> +			reg = <3>;
> +
> +			ipu1_csi0_mux_from_mipi_vc3: endpoint {
> +				remote-endpoint =
> <&mipi_vc3_to_ipu1_csi0_mux>;
> +			};
> +		};
> +
> +		port at 4 {
> +			reg = <4>;
> +
> +			ipu1_csi0_mux_from_parallel_sensor: endpoint
> {
> +			};
> +		};
> +
> +		port at 5 {
> +			reg = <5>;
> +
> +			ipu1_csi0_mux_to_ipu1_csi0: endpoint {
> +				remote-endpoint =
> <&ipu1_csi0_from_ipu1_csi0_mux>;
> +			};
> +		};
> +	};
> +
> +	ipu1_csi1_mux {
> +		compatible = "video-mux";
> +		mux-controls = <&mux 1>;
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		port at 0 {
> +			reg = <0>;
> +
> +			ipu1_csi1_mux_from_mipi_vc0: endpoint {
> +				remote-endpoint =
> <&mipi_vc0_to_ipu1_csi1_mux>;
> +			};
> +		};
> +
> +		port at 1 {
> +			reg = <1>;
> +
> +			ipu1_csi1_mux_from_mipi_vc1: endpoint {
> +				remote-endpoint =
> <&mipi_vc1_to_ipu1_csi1_mux>;
> +			};
> +		};
> +
> +		port at 2 {
> +			reg = <2>;
> +
> +			ipu1_csi1_mux_from_mipi_vc2: endpoint {
> +				remote-endpoint =
> <&mipi_vc2_to_ipu1_csi1_mux>;
> +			};
> +		};
> +
> +		port at 3 {
> +			reg = <3>;
> +
> +			ipu1_csi1_mux_from_mipi_vc3: endpoint {
> +				remote-endpoint =
> <&mipi_vc3_to_ipu1_csi1_mux>;
> +			};
> +		};
> +
> +		port at 4 {
> +			reg = <4>;
> +
> +			ipu1_csi1_mux_from_parallel_sensor: endpoint
> {
> +			};
> +		};
> +
> +		port at 5 {
> +			reg = <5>;
> +
> +			ipu1_csi1_mux_to_ipu1_csi1: endpoint {
> +				remote-endpoint =
> <&ipu1_csi1_from_ipu1_csi1_mux>;
> +			};
> +		};
>  	};
>  };
>  
> @@ -119,6 +295,12 @@
>  	compatible = "fsl,imx6dl-hdmi";
>  };
>  
> +&ipu1_csi1 {
> +	ipu1_csi1_from_ipu1_csi1_mux: endpoint {
> +		remote-endpoint = <&ipu1_csi1_mux_to_ipu1_csi1>;
> +	};
> +};
> +
>  &ldb {
>  	clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>, <&clks
> IMX6QDL_CLK_LDB_DI1_SEL>, <&clks IMX6QDL_CLK_IPU1_DI0_SEL>, <&clks
> IMX6QDL_CLK_IPU1_DI1_SEL>, @@ -128,6 +310,82 @@
>  		      "di0", "di1";
>  };
>  
> +&mipi_csi {
> +	port at 1 {
> +		reg = <1>;
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		mipi_vc0_to_ipu1_csi0_mux: endpoint at 0 {
> +			reg = <0>;
> +			remote-endpoint =
> <&ipu1_csi0_mux_from_mipi_vc0>;
> +		};
> +
> +		mipi_vc0_to_ipu1_csi1_mux: endpoint at 1 {
> +			reg = <1>;
> +			remote-endpoint =
> <&ipu1_csi1_mux_from_mipi_vc0>;
> +		};
> +	};
> +
> +	port at 2 {
> +		reg = <2>;
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		mipi_vc1_to_ipu1_csi0_mux: endpoint at 0 {
> +			reg = <0>;
> +			remote-endpoint =
> <&ipu1_csi0_mux_from_mipi_vc1>;
> +		};
> +
> +		mipi_vc1_to_ipu1_csi1_mux: endpoint at 1 {
> +			reg = <1>;
> +			remote-endpoint =
> <&ipu1_csi1_mux_from_mipi_vc1>;
> +		};
> +	};
> +
> +	port at 3 {
> +		reg = <3>;
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		mipi_vc2_to_ipu1_csi0_mux: endpoint at 0 {
> +			reg = <0>;
> +			remote-endpoint =
> <&ipu1_csi0_mux_from_mipi_vc2>;
> +		};
> +
> +		mipi_vc2_to_ipu1_csi1_mux: endpoint at 1 {
> +			reg = <1>;
> +			remote-endpoint =
> <&ipu1_csi1_mux_from_mipi_vc2>;
> +		};
> +	};
> +
> +	port at 4 {
> +		reg = <4>;
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		mipi_vc3_to_ipu1_csi0_mux: endpoint at 0 {
> +			reg = <0>;
> +			remote-endpoint =
> <&ipu1_csi0_mux_from_mipi_vc3>;
> +		};
> +
> +		mipi_vc3_to_ipu1_csi1_mux: endpoint at 1 {
> +			reg = <1>;
> +			remote-endpoint =
> <&ipu1_csi1_mux_from_mipi_vc3>;
> +		};
> +	};
> +};
> +
> +&mux {
> +	mux-reg-masks = <0x34 0x00000007>, /* IPU_CSI0_MUX */
> +			<0x34 0x00000038>, /* IPU_CSI1_MUX */
> +			<0x0c 0x0000000c>, /* HDMI_MUX_CTL */
> +			<0x0c 0x000000c0>, /* LVDS0_MUX_CTL */
> +			<0x0c 0x00000300>, /* LVDS1_MUX_CTL */
> +			<0x28 0x00000003>, /* DCIC1_MUX_CTL */
> +			<0x28 0x0000000c>; /* DCIC2_MUX_CTL */
> +};
> +
>  &vpu {
>  	compatible = "fsl,imx6dl-vpu", "cnm,coda960";
>  };
> diff --git a/arch/arm/dts/imx6q-sabreauto.dts
> b/arch/arm/dts/imx6q-sabreauto.dts new file mode 100644
> index 0000000..6e981a3
> --- /dev/null
> +++ b/arch/arm/dts/imx6q-sabreauto.dts
> @@ -0,0 +1,18 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +//
> +// Copyright 2012 Freescale Semiconductor, Inc.
> +// Copyright 2011 Linaro Ltd.
> +
> +/dts-v1/;
> +
> +#include "imx6q.dtsi"
> +#include "imx6qdl-sabreauto.dtsi"
> +
> +/ {
> +	model = "Freescale i.MX6 Quad SABRE Automotive Board";
> +	compatible = "fsl,imx6q-sabreauto", "fsl,imx6q";
> +};
> +
> +&sata {
> +	status = "okay";
> +};
> diff --git a/arch/arm/dts/imx6q-sabresd.dts
> b/arch/arm/dts/imx6q-sabresd.dts new file mode 100644
> index 0000000..eec9446
> --- /dev/null
> +++ b/arch/arm/dts/imx6q-sabresd.dts
> @@ -0,0 +1,23 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +//
> +// Copyright 2012 Freescale Semiconductor, Inc.
> +// Copyright 2011 Linaro Ltd.
> +
> +/dts-v1/;
> +
> +#include "imx6q.dtsi"
> +#include "imx6qdl-sabresd.dtsi"
> +
> +/ {
> +	model = "Freescale i.MX6 Quad SABRE Smart Device Board";
> +	compatible = "fsl,imx6q-sabresd", "fsl,imx6q";
> +};
> +
> +&sata {
> +	status = "okay";
> +};
> +
> +&ipu1_csi1_from_mipi_vc1 {
> +	clock-lanes = <0>;
> +	data-lanes = <1 2>;
> +};
> diff --git a/arch/arm/dts/imx6q.dtsi b/arch/arm/dts/imx6q.dtsi
> index c30c836..8381d24 100644
> --- a/arch/arm/dts/imx6q.dtsi
> +++ b/arch/arm/dts/imx6q.dtsi
> @@ -1,12 +1,6 @@
> -
> -/*
> - * Copyright 2013 Freescale Semiconductor, Inc.
> - *
> - * This program is free software; you can redistribute it and/or
> modify
> - * it under the terms of the GNU General Public License version 2 as
> - * published by the Free Software Foundation.
> - *
> - */
> +// SPDX-License-Identifier: GPL-2.0
> +//
> +// Copyright 2013 Freescale Semiconductor, Inc.
>  
>  #include <dt-bindings/interrupt-controller/irq.h>
>  #include "imx6q-pinfunc.h"
> @@ -44,6 +38,7 @@
>  				396000	1175000
>  			>;  
>  			clock-latency = <61036>; /* two CLK32
> periods */
> +			#cooling-cells = <2>;
>  			clocks = <&clks IMX6QDL_CLK_ARM>,
>  				 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
>  				 <&clks IMX6QDL_CLK_STEP>,
> @@ -56,38 +51,119 @@
>  			soc-supply = <&reg_soc>;
>  		};
>  
> -		cpu at 1 {
> +		cpu1: cpu at 1 {
>  			compatible = "arm,cortex-a9";
>  			device_type = "cpu";
>  			reg = <1>;
>  			next-level-cache = <&L2>;
> +			operating-points = <
> +				/* kHz    uV */
> +				1200000 1275000
> +				996000  1250000
> +				852000  1250000
> +				792000  1175000
> +				396000  975000
> +			>;
> +			fsl,soc-operating-points = <
> +				/* ARM kHz  SOC-PU uV */
> +				1200000 1275000
> +				996000	1250000
> +				852000	1250000
> +				792000	1175000
> +				396000	1175000
> +			>;
> +			clock-latency = <61036>; /* two CLK32
> periods */
> +			clocks = <&clks IMX6QDL_CLK_ARM>,
> +				 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
> +				 <&clks IMX6QDL_CLK_STEP>,
> +				 <&clks IMX6QDL_CLK_PLL1_SW>,
> +				 <&clks IMX6QDL_CLK_PLL1_SYS>;
> +			clock-names = "arm", "pll2_pfd2_396m",
> "step",
> +				      "pll1_sw", "pll1_sys";
> +			arm-supply = <&reg_arm>;
> +			pu-supply = <&reg_pu>;
> +			soc-supply = <&reg_soc>;
>  		};
>  
> -		cpu at 2 {
> +		cpu2: cpu at 2 {
>  			compatible = "arm,cortex-a9";
>  			device_type = "cpu";
>  			reg = <2>;
>  			next-level-cache = <&L2>;
> +			operating-points = <
> +				/* kHz    uV */
> +				1200000 1275000
> +				996000  1250000
> +				852000  1250000
> +				792000  1175000
> +				396000  975000
> +			>;
> +			fsl,soc-operating-points = <
> +				/* ARM kHz  SOC-PU uV */
> +				1200000 1275000
> +				996000	1250000
> +				852000	1250000
> +				792000	1175000
> +				396000	1175000
> +			>;
> +			clock-latency = <61036>; /* two CLK32
> periods */
> +			clocks = <&clks IMX6QDL_CLK_ARM>,
> +				 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
> +				 <&clks IMX6QDL_CLK_STEP>,
> +				 <&clks IMX6QDL_CLK_PLL1_SW>,
> +				 <&clks IMX6QDL_CLK_PLL1_SYS>;
> +			clock-names = "arm", "pll2_pfd2_396m",
> "step",
> +				      "pll1_sw", "pll1_sys";
> +			arm-supply = <&reg_arm>;
> +			pu-supply = <&reg_pu>;
> +			soc-supply = <&reg_soc>;
>  		};
>  
> -		cpu at 3 {
> +		cpu3: cpu at 3 {
>  			compatible = "arm,cortex-a9";
>  			device_type = "cpu";
>  			reg = <3>;
>  			next-level-cache = <&L2>;
> +			operating-points = <
> +				/* kHz    uV */
> +				1200000 1275000
> +				996000  1250000
> +				852000  1250000
> +				792000  1175000
> +				396000  975000
> +			>;
> +			fsl,soc-operating-points = <
> +				/* ARM kHz  SOC-PU uV */
> +				1200000 1275000
> +				996000	1250000
> +				852000	1250000
> +				792000	1175000
> +				396000	1175000
> +			>;
> +			clock-latency = <61036>; /* two CLK32
> periods */
> +			clocks = <&clks IMX6QDL_CLK_ARM>,
> +				 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
> +				 <&clks IMX6QDL_CLK_STEP>,
> +				 <&clks IMX6QDL_CLK_PLL1_SW>,
> +				 <&clks IMX6QDL_CLK_PLL1_SYS>;
> +			clock-names = "arm", "pll2_pfd2_396m",
> "step",
> +				      "pll1_sw", "pll1_sys";
> +			arm-supply = <&reg_arm>;
> +			pu-supply = <&reg_pu>;
> +			soc-supply = <&reg_soc>;
>  		};
>  	};
>  
>  	soc {
> -		ocram: sram at 00900000 {
> +		ocram: sram at 900000 {
>  			compatible = "mmio-sram";
>  			reg = <0x00900000 0x40000>;
>  			clocks = <&clks IMX6QDL_CLK_OCRAM>;
>  		};
>  
> -		aips-bus at 02000000 { /* AIPS1 */
> -			spba-bus at 02000000 {
> -				ecspi5: ecspi at 02018000 {
> +		aips-bus at 2000000 { /* AIPS1 */
> +			spba-bus at 2000000 {
> +				ecspi5: spi at 2018000 {
>  					#address-cells = <1>;
>  					#size-cells = <0>;
>  					compatible =
> "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; @@ -96,18 +172,18 @@
>  					clocks = <&clks
> IMX6Q_CLK_ECSPI5>, <&clks IMX6Q_CLK_ECSPI5>;
>  					clock-names = "ipg", "per";
> -					dmas = <&sdma 11 7 1>,
> <&sdma 12 7 2>;
> +					dmas = <&sdma 11 8 1>,
> <&sdma 12 8 2>; dma-names = "rx", "tx";
>  					status = "disabled";
>  				};
>  			};
>  
> -			iomuxc: iomuxc at 020e0000 {
> +			iomuxc: iomuxc at 20e0000 {
>  				compatible = "fsl,imx6q-iomuxc";
>  			};
>  		};
>  
> -		sata: sata at 02200000 {
> +		sata: sata at 2200000 {
>  			compatible = "fsl,imx6q-ahci";
>  			reg = <0x02200000 0x4000>;
>  			interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
> @@ -118,17 +194,17 @@
>  			status = "disabled";
>  		};
>  
> -		gpu_vg: gpu at 02204000 {
> +		gpu_vg: gpu at 2204000 {
>  			compatible = "vivante,gc";
>  			reg = <0x02204000 0x4000>;
>  			interrupts = <0 11 IRQ_TYPE_LEVEL_HIGH>;
>  			clocks = <&clks IMX6QDL_CLK_OPENVG_AXI>,
>  				 <&clks IMX6QDL_CLK_GPU2D_CORE>;
>  			clock-names = "bus", "core";
> -			power-domains = <&gpc 1>;
> +			power-domains = <&pd_pu>;
>  		};
>  
> -		ipu2: ipu at 02800000 {
> +		ipu2: ipu at 2800000 {
>  			#address-cells = <1>;
>  			#size-cells = <0>;
>  			compatible = "fsl,imx6q-ipu";
> @@ -143,10 +219,18 @@
>  
>  			ipu2_csi0: port at 0 {
>  				reg = <0>;
> +
> +				ipu2_csi0_from_mipi_vc2: endpoint {
> +					remote-endpoint =
> <&mipi_vc2_to_ipu2_csi0>;
> +				};
>  			};
>  
>  			ipu2_csi1: port at 1 {
>  				reg = <1>;
> +
> +				ipu2_csi1_from_ipu2_csi1_mux:
> endpoint {
> +					remote-endpoint =
> <&ipu2_csi1_mux_to_ipu2_csi1>;
> +				};
>  			};
>  
>  			ipu2_di0: port at 2 {
> @@ -154,22 +238,27 @@
>  				#size-cells = <0>;
>  				reg = <2>;
>  
> -				ipu2_di0_disp0: disp0-endpoint {
> +				ipu2_di0_disp0: endpoint at 0 {
> +					reg = <0>;
>  				};
>  
> -				ipu2_di0_hdmi: hdmi-endpoint {
> +				ipu2_di0_hdmi: endpoint at 1 {
> +					reg = <1>;
>  					remote-endpoint =
> <&hdmi_mux_2>; };
>  
> -				ipu2_di0_mipi: mipi-endpoint {
> +				ipu2_di0_mipi: endpoint at 2 {
> +					reg = <2>;
>  					remote-endpoint =
> <&mipi_mux_2>; };
>  
> -				ipu2_di0_lvds0: lvds0-endpoint {
> +				ipu2_di0_lvds0: endpoint at 3 {
> +					reg = <3>;
>  					remote-endpoint =
> <&lvds0_mux_2>; };
>  
> -				ipu2_di0_lvds1: lvds1-endpoint {
> +				ipu2_di0_lvds1: endpoint at 4 {
> +					reg = <4>;
>  					remote-endpoint =
> <&lvds1_mux_2>; };
>  			};
> @@ -179,33 +268,136 @@
>  				#size-cells = <0>;
>  				reg = <3>;
>  
> -				ipu2_di1_hdmi: hdmi-endpoint {
> +				ipu2_di1_hdmi: endpoint at 1 {
> +					reg = <1>;
>  					remote-endpoint =
> <&hdmi_mux_3>; };
>  
> -				ipu2_di1_mipi: mipi-endpoint {
> +				ipu2_di1_mipi: endpoint at 2 {
> +					reg = <2>;
>  					remote-endpoint =
> <&mipi_mux_3>; };
>  
> -				ipu2_di1_lvds0: lvds0-endpoint {
> +				ipu2_di1_lvds0: endpoint at 3 {
> +					reg = <3>;
>  					remote-endpoint =
> <&lvds0_mux_3>; };
>  
> -				ipu2_di1_lvds1: lvds1-endpoint {
> +				ipu2_di1_lvds1: endpoint at 4 {
> +					reg = <4>;
>  					remote-endpoint =
> <&lvds1_mux_3>; };
>  			};
>  		};
>  	};
>  
> +	capture-subsystem {
> +		compatible = "fsl,imx-capture-subsystem";
> +		ports = <&ipu1_csi0>, <&ipu1_csi1>, <&ipu2_csi0>,
> <&ipu2_csi1>;
> +	};
> +
>  	display-subsystem {
>  		compatible = "fsl,imx-display-subsystem";
>  		ports = <&ipu1_di0>, <&ipu1_di1>, <&ipu2_di0>,
> <&ipu2_di1>; };
> +};
> +
> +&gpio1 {
> +	gpio-ranges = <&iomuxc  0 136  2>, <&iomuxc  2 141 1>,
> <&iomuxc  3 139 1>,
> +		      <&iomuxc  4 142  2>, <&iomuxc  6 140 1>,
> <&iomuxc  7 144 2>,
> +		      <&iomuxc  9 138  1>, <&iomuxc 10 213 3>,
> <&iomuxc 13  20 1>,
> +		      <&iomuxc 14  19  1>, <&iomuxc 15  21 1>,
> <&iomuxc 16 208 1>,
> +		      <&iomuxc 17 207  1>, <&iomuxc 18 210 3>,
> <&iomuxc 21 209 1>,
> +		      <&iomuxc 22 116 10>;
> +};
> +
> +&gpio2 {
> +	gpio-ranges = <&iomuxc  0 191 16>, <&iomuxc 16 55 14>,
> <&iomuxc 30 35 1>,
> +		      <&iomuxc 31  44  1>;
> +};
> +
> +&gpio3 {
> +	gpio-ranges = <&iomuxc 0 69 16>, <&iomuxc 16 36 8>, <&iomuxc
> 24 45 8>; +};
> +
> +&gpio4 {
> +	gpio-ranges = <&iomuxc 5 149 1>, <&iomuxc 6 126 10>,
> <&iomuxc 16 87 16>; +};
> +
> +&gpio5 {
> +	gpio-ranges = <&iomuxc 0  85  1>, <&iomuxc  2  34  1>,
> <&iomuxc 4 53 1>,
> +		      <&iomuxc 5 103 13>, <&iomuxc 18 150 14>;
> +};
> +
> +&gpio6 {
> +	gpio-ranges = <&iomuxc  0 164 6>, <&iomuxc  6  54 1>,
> <&iomuxc  7 181  5>,
> +		      <&iomuxc 14 186 3>, <&iomuxc 17 170 2>,
> <&iomuxc 19  22 12>,
> +		      <&iomuxc 31  86 1>;
> +};
> +
> +&gpio7 {
> +	gpio-ranges = <&iomuxc 0 172 9>, <&iomuxc 9 189 2>, <&iomuxc
> 11 146 3>; +};
> +
> +&gpr {
> +	ipu1_csi0_mux {
> +		compatible = "video-mux";
> +		mux-controls = <&mux 0>;
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		port at 0 {
> +			reg = <0>;
> +
> +			ipu1_csi0_mux_from_mipi_vc0: endpoint {
> +				remote-endpoint =
> <&mipi_vc0_to_ipu1_csi0_mux>;
> +			};
> +		};
> +
> +		port at 1 {
> +			reg = <1>;
> +
> +			ipu1_csi0_mux_from_parallel_sensor: endpoint
> {
> +			};
> +		};
>  
> -	gpu-subsystem {
> -		compatible = "fsl,imx-gpu-subsystem";
> -		cores = <&gpu_2d>, <&gpu_3d>, <&gpu_vg>;
> +		port at 2 {
> +			reg = <2>;
> +
> +			ipu1_csi0_mux_to_ipu1_csi0: endpoint {
> +				remote-endpoint =
> <&ipu1_csi0_from_ipu1_csi0_mux>;
> +			};
> +		};
> +	};
> +
> +	ipu2_csi1_mux {
> +		compatible = "video-mux";
> +		mux-controls = <&mux 1>;
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		port at 0 {
> +			reg = <0>;
> +
> +			ipu2_csi1_mux_from_mipi_vc3: endpoint {
> +				remote-endpoint =
> <&mipi_vc3_to_ipu2_csi1_mux>;
> +			};
> +		};
> +
> +		port at 1 {
> +			reg = <1>;
> +
> +			ipu2_csi1_mux_from_parallel_sensor: endpoint
> {
> +			};
> +		};
> +
> +		port at 2 {
> +			reg = <2>;
> +
> +			ipu2_csi1_mux_to_ipu2_csi1: endpoint {
> +				remote-endpoint =
> <&ipu2_csi1_from_ipu2_csi1_mux>;
> +			};
> +		};
>  	};
>  };
>  
> @@ -229,6 +421,12 @@
>  	};
>  };
>  
> +&ipu1_csi1 {
> +	ipu1_csi1_from_mipi_vc1: endpoint {
> +		remote-endpoint = <&mipi_vc1_to_ipu1_csi1>;
> +	};
> +};
> +
>  &ldb {
>  	clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>, <&clks
> IMX6QDL_CLK_LDB_DI1_SEL>, <&clks IMX6QDL_CLK_IPU1_DI0_SEL>, <&clks
> IMX6QDL_CLK_IPU1_DI1_SEL>, @@ -275,6 +473,40 @@
>  	};
>  };
>  
> +&mipi_csi {
> +	port at 1 {
> +		reg = <1>;
> +
> +		mipi_vc0_to_ipu1_csi0_mux: endpoint {
> +			remote-endpoint =
> <&ipu1_csi0_mux_from_mipi_vc0>;
> +		};
> +	};
> +
> +	port at 2 {
> +		reg = <2>;
> +
> +		mipi_vc1_to_ipu1_csi1: endpoint {
> +			remote-endpoint = <&ipu1_csi1_from_mipi_vc1>;
> +		};
> +	};
> +
> +	port at 3 {
> +		reg = <3>;
> +
> +		mipi_vc2_to_ipu2_csi0: endpoint {
> +			remote-endpoint = <&ipu2_csi0_from_mipi_vc2>;
> +		};
> +	};
> +
> +	port at 4 {
> +		reg = <4>;
> +
> +		mipi_vc3_to_ipu2_csi1_mux: endpoint {
> +			remote-endpoint =
> <&ipu2_csi1_mux_from_mipi_vc3>;
> +		};
> +	};
> +};
> +
>  &mipi_dsi {
>  	ports {
>  		port at 2 {
> @@ -295,6 +527,16 @@
>  	};
>  };
>  
> +&mux {
> +	mux-reg-masks = <0x04 0x00080000>, /* MIPI_IPU1_MUX */
> +			<0x04 0x00100000>, /* MIPI_IPU2_MUX */
> +			<0x0c 0x0000000c>, /* HDMI_MUX_CTL */
> +			<0x0c 0x000000c0>, /* LVDS0_MUX_CTL */
> +			<0x0c 0x00000300>, /* LVDS1_MUX_CTL */
> +			<0x28 0x00000003>, /* DCIC1_MUX_CTL */
> +			<0x28 0x0000000c>; /* DCIC2_MUX_CTL */
> +};
> +
>  &vpu {
>  	compatible = "fsl,imx6q-vpu", "cnm,coda960";
>  };
> diff --git a/arch/arm/dts/imx6qdl-sabreauto.dtsi
> b/arch/arm/dts/imx6qdl-sabreauto.dtsi new file mode 100644
> index 0000000..a6dc5c4
> --- /dev/null
> +++ b/arch/arm/dts/imx6qdl-sabreauto.dtsi
> @@ -0,0 +1,810 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +//
> +// Copyright 2012 Freescale Semiconductor, Inc.
> +// Copyright 2011 Linaro Ltd.
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/input.h>
> +
> +/ {
> +	chosen {
> +		stdout-path = &uart4;
> +	};
> +
> +	memory at 10000000 {
> +		reg = <0x10000000 0x80000000>;
> +	};
> +
> +	leds {
> +		compatible = "gpio-leds";
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&pinctrl_gpio_leds>;
> +
> +		user {
> +			label = "debug";
> +			gpios = <&gpio5 15 GPIO_ACTIVE_HIGH>;
> +		};
> +	};
> +
> +	gpio-keys {
> +		compatible = "gpio-keys";
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&pinctrl_gpio_keys>;
> +
> +		home {
> +			label = "Home";
> +			gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_HOME>;
> +			wakeup-source;
> +		};
> +
> +		back {
> +			label = "Back";
> +			gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_BACK>;
> +			wakeup-source;
> +		};
> +
> +		program {
> +			label = "Program";
> +			gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_PROGRAM>;
> +			wakeup-source;
> +		};
> +
> +		volume-up {
> +			label = "Volume Up";
> +			gpios = <&gpio2 15 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_VOLUMEUP>;
> +			wakeup-source;
> +		};
> +
> +		volume-down {
> +			label = "Volume Down";
> +			gpios = <&gpio5 14 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_VOLUMEDOWN>;
> +			wakeup-source;
> +		};
> +	};
> +
> +	clocks {
> +		codec_osc: anaclk2 {
> +			compatible = "fixed-clock";
> +			#clock-cells = <0>;
> +			clock-frequency = <24576000>;
> +		};
> +	};
> +
> +	regulators {
> +		compatible = "simple-bus";
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		reg_audio: regulator at 0 {
> +			compatible = "regulator-fixed";
> +			reg = <0>;
> +			regulator-name = "cs42888_supply";
> +			regulator-min-microvolt = <3300000>;
> +			regulator-max-microvolt = <3300000>;
> +			regulator-always-on;
> +		};
> +
> +		reg_usb_h1_vbus: regulator at 1 {
> +			compatible = "regulator-fixed";
> +			reg = <1>;
> +			regulator-name = "usb_h1_vbus";
> +			regulator-min-microvolt = <5000000>;
> +			regulator-max-microvolt = <5000000>;
> +			gpio = <&max7310_b 7 GPIO_ACTIVE_HIGH>;
> +			enable-active-high;
> +		};
> +
> +		reg_usb_otg_vbus: regulator at 2 {
> +			compatible = "regulator-fixed";
> +			reg = <2>;
> +			regulator-name = "usb_otg_vbus";
> +			regulator-min-microvolt = <5000000>;
> +			regulator-max-microvolt = <5000000>;
> +			gpio = <&max7310_c 1 GPIO_ACTIVE_HIGH>;
> +			enable-active-high;
> +		};
> +	};
> +
> +	sound-cs42888 {
> +		compatible = "fsl,imx6-sabreauto-cs42888",
> +			"fsl,imx-audio-cs42888";
> +		model = "imx-cs42888";
> +		audio-cpu = <&esai>;
> +		audio-asrc = <&asrc>;
> +		audio-codec = <&codec>;
> +		audio-routing =
> +			"Line Out Jack", "AOUT1L",
> +			"Line Out Jack", "AOUT1R",
> +			"Line Out Jack", "AOUT2L",
> +			"Line Out Jack", "AOUT2R",
> +			"Line Out Jack", "AOUT3L",
> +			"Line Out Jack", "AOUT3R",
> +			"Line Out Jack", "AOUT4L",
> +			"Line Out Jack", "AOUT4R",
> +			"AIN1L", "Line In Jack",
> +			"AIN1R", "Line In Jack",
> +			"AIN2L", "Line In Jack",
> +			"AIN2R", "Line In Jack";
> +	};
> +
> +	sound-spdif {
> +		compatible = "fsl,imx-audio-spdif",
> +			   "fsl,imx-sabreauto-spdif";
> +		model = "imx-spdif";
> +		spdif-controller = <&spdif>;
> +		spdif-in;
> +	};
> +
> +	backlight {
> +		compatible = "pwm-backlight";
> +		pwms = <&pwm3 0 5000000>;
> +		brightness-levels = <0 4 8 16 32 64 128 255>;
> +		default-brightness-level = <7>;
> +		status = "okay";
> +	};
> +
> +	i2cmux {
> +		compatible = "i2c-mux-gpio";
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&pinctrl_i2c3mux>;
> +		mux-gpios = <&gpio5 4 0>;
> +		i2c-parent = <&i2c3>;
> +		idle-state = <0>;
> +
> +		i2c at 1 {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			reg = <1>;
> +
> +			adv7180: camera at 21 {
> +				compatible = "adi,adv7180";
> +				reg = <0x21>;
> +				powerdown-gpios = <&max7310_b 2
> GPIO_ACTIVE_LOW>;
> +				interrupt-parent = <&gpio1>;
> +				interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
> +
> +				port {
> +					adv7180_to_ipu1_csi0_mux:
> endpoint {
> +						remote-endpoint =
> <&ipu1_csi0_mux_from_parallel_sensor>;
> +						bus-width = <8>;
> +					};
> +				};
> +			};
> +
> +			max7310_a: gpio at 30 {
> +				compatible = "maxim,max7310";
> +				reg = <0x30>;
> +				gpio-controller;
> +				#gpio-cells = <2>;
> +			};
> +
> +			max7310_b: gpio at 32 {
> +				compatible = "maxim,max7310";
> +				reg = <0x32>;
> +				gpio-controller;
> +				#gpio-cells = <2>;
> +				pinctrl-names = "default";
> +				pinctrl-0 = <&pinctrl_max7310>;
> +				reset-gpios = <&gpio1 15
> GPIO_ACTIVE_LOW>;
> +			};
> +
> +			max7310_c: gpio at 34 {
> +				compatible = "maxim,max7310";
> +				reg = <0x34>;
> +				gpio-controller;
> +				#gpio-cells = <2>;
> +			};
> +
> +			light-sensor at 44 {
> +				compatible = "isil,isl29023";
> +				reg = <0x44>;
> +				interrupt-parent = <&gpio5>;
> +				interrupts = <17
> IRQ_TYPE_EDGE_FALLING>;
> +			};
> +
> +			magnetometer at e {
> +				compatible = "fsl,mag3110";
> +				reg = <0x0e>;
> +				interrupt-parent = <&gpio2>;
> +				interrupts = <29
> IRQ_TYPE_EDGE_RISING>;
> +			};
> +
> +			accelerometer at 1c {
> +				compatible = "fsl,mma8451";
> +				reg = <0x1c>;
> +				interrupt-parent = <&gpio6>;
> +				interrupts = <31 IRQ_TYPE_LEVEL_LOW>;
> +			};
> +		};
> +	};
> +};
> +
> +&ipu1_csi0_from_ipu1_csi0_mux {
> +	bus-width = <8>;
> +};
> +
> +&ipu1_csi0_mux_from_parallel_sensor {
> +	remote-endpoint = <&adv7180_to_ipu1_csi0_mux>;
> +	bus-width = <8>;
> +};
> +
> +&ipu1_csi0 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_ipu1_csi0>;
> +};
> +
> +&clks {
> +	assigned-clocks = <&clks IMX6QDL_PLL4_BYPASS_SRC>,
> +			  <&clks IMX6QDL_PLL4_BYPASS>,
> +			  <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
> +			  <&clks IMX6QDL_CLK_LDB_DI1_SEL>,
> +			  <&clks IMX6QDL_CLK_PLL4_POST_DIV>;
> +	assigned-clock-parents = <&clks IMX6QDL_CLK_LVDS2_IN>,
> +				 <&clks IMX6QDL_PLL4_BYPASS_SRC>,
> +				 <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
> +				 <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
> +	assigned-clock-rates = <0>, <0>, <0>, <0>, <24576000>;
> +};
> +
> +&ecspi1 {
> +	cs-gpios = <&gpio3 19 0>;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_ecspi1 &pinctrl_ecspi1_cs>;
> +	status = "disabled"; /* pin conflict with WEIM NOR */
> +
> +	flash: m25p80 at 0 {
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		compatible = "st,m25p32", "jedec,spi-nor";
> +		spi-max-frequency = <20000000>;
> +		reg = <0>;
> +	};
> +};
> +
> +&esai {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_esai>;
> +	assigned-clocks = <&clks IMX6QDL_CLK_ESAI_SEL>,
> +			  <&clks IMX6QDL_CLK_ESAI_EXTAL>;
> +	assigned-clock-parents = <&clks IMX6QDL_CLK_PLL4_AUDIO_DIV>;
> +	assigned-clock-rates = <0>, <24576000>;
> +	status = "okay";
> +};
> +
> +&fec {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_enet>;
> +	phy-mode = "rgmii";
> +	interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
> +			      <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
> +	fsl,err006687-workaround-present;
> +	status = "okay";
> +};
> +
> +&gpmi {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_gpmi_nand>;
> +	status = "okay";
> +};
> +
> +&hdmi {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_hdmi_cec>;
> +	ddc-i2c-bus = <&i2c2>;
> +	status = "okay";
> +};
> +
> +&i2c2 {
> +	clock-frequency = <100000>;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_i2c2>;
> +	status = "okay";
> +
> +	pmic: pfuze100 at 8 {
> +		compatible = "fsl,pfuze100";
> +		reg = <0x08>;
> +
> +		regulators {
> +			sw1a_reg: sw1ab {
> +				regulator-min-microvolt = <300000>;
> +				regulator-max-microvolt = <1875000>;
> +				regulator-boot-on;
> +				regulator-always-on;
> +				regulator-ramp-delay = <6250>;
> +			};
> +
> +			sw1c_reg: sw1c {
> +				regulator-min-microvolt = <300000>;
> +				regulator-max-microvolt = <1875000>;
> +				regulator-boot-on;
> +				regulator-always-on;
> +				regulator-ramp-delay = <6250>;
> +			};
> +
> +			sw2_reg: sw2 {
> +				regulator-min-microvolt = <800000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-boot-on;
> +				regulator-always-on;
> +			};
> +
> +			sw3a_reg: sw3a {
> +				regulator-min-microvolt = <400000>;
> +				regulator-max-microvolt = <1975000>;
> +				regulator-boot-on;
> +				regulator-always-on;
> +			};
> +
> +			sw3b_reg: sw3b {
> +				regulator-min-microvolt = <400000>;
> +				regulator-max-microvolt = <1975000>;
> +				regulator-boot-on;
> +				regulator-always-on;
> +			};
> +
> +			sw4_reg: sw4 {
> +				regulator-min-microvolt = <800000>;
> +				regulator-max-microvolt = <3300000>;
> +			};
> +
> +			swbst_reg: swbst {
> +				regulator-min-microvolt = <5000000>;
> +				regulator-max-microvolt = <5150000>;
> +			};
> +
> +			snvs_reg: vsnvs {
> +				regulator-min-microvolt = <1000000>;
> +				regulator-max-microvolt = <3000000>;
> +				regulator-boot-on;
> +				regulator-always-on;
> +			};
> +
> +			vref_reg: vrefddr {
> +				regulator-boot-on;
> +				regulator-always-on;
> +			};
> +
> +			vgen1_reg: vgen1 {
> +				regulator-min-microvolt = <800000>;
> +				regulator-max-microvolt = <1550000>;
> +			};
> +
> +			vgen2_reg: vgen2 {
> +				regulator-min-microvolt = <800000>;
> +				regulator-max-microvolt = <1550000>;
> +			};
> +
> +			vgen3_reg: vgen3 {
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <3300000>;
> +			};
> +
> +			vgen4_reg: vgen4 {
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-always-on;
> +			};
> +
> +			vgen5_reg: vgen5 {
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-always-on;
> +			};
> +
> +			vgen6_reg: vgen6 {
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-always-on;
> +			};
> +		};
> +	};
> +
> +	codec: cs42888 at 48 {
> +		compatible = "cirrus,cs42888";
> +		reg = <0x48>;
> +		clocks = <&codec_osc>;
> +		clock-names = "mclk";
> +		VA-supply = <&reg_audio>;
> +		VD-supply = <&reg_audio>;
> +		VLS-supply = <&reg_audio>;
> +		VLC-supply = <&reg_audio>;
> +	};
> +
> +	touchscreen at 4 {
> +		compatible = "eeti,egalax_ts";
> +		reg = <0x04>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&pinctrl_egalax_int>;
> +		interrupt-parent = <&gpio2>;
> +		interrupts = <28 IRQ_TYPE_EDGE_FALLING>;
> +		wakeup-gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>;
> +	};
> +};
> +
> +&i2c3 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_i2c3>;
> +	status = "okay";
> +};
> +
> +&iomuxc {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_hog>;
> +
> +	imx6qdl-sabreauto {
> +		pinctrl_hog: hoggrp {
> +			fsl,pins = <
> +				MX6QDL_PAD_NANDF_CS2__GPIO6_IO15
> 0x80000000
> +				MX6QDL_PAD_SD2_DAT2__GPIO1_IO13
> 0x80000000
> +				MX6QDL_PAD_GPIO_18__SD3_VSELECT
> 0x17059
> +			>;
> +		};
> +
> +		pinctrl_ecspi1: ecspi1grp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_EIM_D17__ECSPI1_MISO		0x100b1
> +
> MX6QDL_PAD_EIM_D18__ECSPI1_MOSI		0x100b1
> +
> MX6QDL_PAD_EIM_D16__ECSPI1_SCLK		0x100b1
> +			>;
> +		};
> +
> +		pinctrl_ecspi1_cs: ecspi1cs {
> +			fsl,pins = <
> +				MX6QDL_PAD_EIM_D19__GPIO3_IO19
> 0x80000000
> +			>;
> +		};
> +
> +		pinctrl_egalax_int: egalax-intgrp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_EIM_EB0__GPIO2_IO28		0xb0b1
> +			>;
> +		};
> +
> +		pinctrl_enet: enetgrp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_KEY_COL1__ENET_MDIO		0x1b0b0
> +
> MX6QDL_PAD_KEY_COL2__ENET_MDC		0x1b0b0
> +
> MX6QDL_PAD_RGMII_TXC__RGMII_TXC		0x1b030
> +
> MX6QDL_PAD_RGMII_TD0__RGMII_TD0		0x1b030
> +
> MX6QDL_PAD_RGMII_TD1__RGMII_TD1		0x1b030
> +
> MX6QDL_PAD_RGMII_TD2__RGMII_TD2		0x1b030
> +
> MX6QDL_PAD_RGMII_TD3__RGMII_TD3		0x1b030
> +
> MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL	0x1b030
> +
> MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK	0x1b0b0
> +
> MX6QDL_PAD_RGMII_RXC__RGMII_RXC		0x1b030
> +
> MX6QDL_PAD_RGMII_RD0__RGMII_RD0		0x1b030
> +
> MX6QDL_PAD_RGMII_RD1__RGMII_RD1		0x1b030
> +
> MX6QDL_PAD_RGMII_RD2__RGMII_RD2		0x1b030
> +
> MX6QDL_PAD_RGMII_RD3__RGMII_RD3		0x1b030
> +
> MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL	0x1b030
> +
> MX6QDL_PAD_GPIO_6__ENET_IRQ		0x000b1
> +			>;
> +		};
> +
> +		pinctrl_esai: esaigrp {
> +			fsl,pins = <
> +				MX6QDL_PAD_ENET_CRS_DV__ESAI_TX_CLK
> 0x1b030
> +				MX6QDL_PAD_ENET_RXD1__ESAI_TX_FS
> 0x1b030
> +				MX6QDL_PAD_ENET_TX_EN__ESAI_TX3_RX2
> 0x1b030
> +				MX6QDL_PAD_GPIO_5__ESAI_TX2_RX3
> 0x1b030
> +				MX6QDL_PAD_ENET_TXD0__ESAI_TX4_RX1
> 0x1b030
> +				MX6QDL_PAD_ENET_MDC__ESAI_TX5_RX0
> 0x1b030
> +				MX6QDL_PAD_GPIO_17__ESAI_TX0
> 0x1b030
> +				MX6QDL_PAD_NANDF_CS3__ESAI_TX1
> 0x1b030
> +				MX6QDL_PAD_ENET_MDIO__ESAI_RX_CLK
> 0x1b030
> +				MX6QDL_PAD_GPIO_9__ESAI_RX_FS
> 0x1b030
> +			>;
> +		};
> +
> +		pinctrl_gpio_keys: gpiokeysgrp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_SD2_CMD__GPIO1_IO11		0x1b0b0
> +
> MX6QDL_PAD_SD2_DAT3__GPIO1_IO12		0x1b0b0
> +
> MX6QDL_PAD_SD4_DAT4__GPIO2_IO12		0x1b0b0
> +
> MX6QDL_PAD_SD4_DAT7__GPIO2_IO15		0x1b0b0
> +
> MX6QDL_PAD_DISP0_DAT20__GPIO5_IO14	0x1b0b0
> +			>;
> +		};
> +
> +		pinctrl_gpio_leds: gpioledsgrp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_DISP0_DAT21__GPIO5_IO15	0x80000000
> +			>;
> +		};
> +
> +		pinctrl_gpmi_nand: gpminandgrp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_NANDF_CLE__NAND_CLE		0xb0b1
> +
> MX6QDL_PAD_NANDF_ALE__NAND_ALE		0xb0b1
> +
> MX6QDL_PAD_NANDF_WP_B__NAND_WP_B	0xb0b1
> +
> MX6QDL_PAD_NANDF_RB0__NAND_READY_B	0xb000
> +
> MX6QDL_PAD_NANDF_CS0__NAND_CE0_B	0xb0b1
> +
> MX6QDL_PAD_NANDF_CS1__NAND_CE1_B	0xb0b1
> +
> MX6QDL_PAD_SD4_CMD__NAND_RE_B		0xb0b1
> +
> MX6QDL_PAD_SD4_CLK__NAND_WE_B		0xb0b1
> +
> MX6QDL_PAD_NANDF_D0__NAND_DATA00	0xb0b1
> +
> MX6QDL_PAD_NANDF_D1__NAND_DATA01	0xb0b1
> +
> MX6QDL_PAD_NANDF_D2__NAND_DATA02	0xb0b1
> +
> MX6QDL_PAD_NANDF_D3__NAND_DATA03	0xb0b1
> +
> MX6QDL_PAD_NANDF_D4__NAND_DATA04	0xb0b1
> +
> MX6QDL_PAD_NANDF_D5__NAND_DATA05	0xb0b1
> +
> MX6QDL_PAD_NANDF_D6__NAND_DATA06	0xb0b1
> +
> MX6QDL_PAD_NANDF_D7__NAND_DATA07	0xb0b1
> +
> MX6QDL_PAD_SD4_DAT0__NAND_DQS		0x00b1
> +			>;
> +		};
> +
> +		pinctrl_hdmi_cec: hdmicecgrp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_EIM_A25__HDMI_TX_CEC_LINE	0x1f8b0
> +			>;
> +		};
> +
> +		pinctrl_i2c2: i2c2grp {
> +			fsl,pins = <
> +				MX6QDL_PAD_EIM_EB2__I2C2_SCL
> 0x4001b8b1
> +				MX6QDL_PAD_KEY_ROW3__I2C2_SDA
> 0x4001b8b1
> +			>;
> +		};
> +
> +		pinctrl_i2c3: i2c3grp {
> +			fsl,pins = <
> +				MX6QDL_PAD_GPIO_3__I2C3_SCL
> 0x4001b8b1
> +				MX6QDL_PAD_EIM_D18__I2C3_SDA
> 0x4001b8b1
> +			>;
> +		};
> +
> +		pinctrl_i2c3mux: i2c3muxgrp {
> +			fsl,pins = <
> +				MX6QDL_PAD_EIM_A24__GPIO5_IO04
> 0x0b0b1
> +			>;
> +		};
> +
> +		pinctrl_ipu1_csi0: ipu1csi0grp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12  0x1b0b0
> +
> MX6QDL_PAD_CSI0_DAT13__IPU1_CSI0_DATA13  0x1b0b0
> +
> MX6QDL_PAD_CSI0_DAT14__IPU1_CSI0_DATA14  0x1b0b0
> +
> MX6QDL_PAD_CSI0_DAT15__IPU1_CSI0_DATA15  0x1b0b0
> +
> MX6QDL_PAD_CSI0_DAT16__IPU1_CSI0_DATA16  0x1b0b0
> +
> MX6QDL_PAD_CSI0_DAT17__IPU1_CSI0_DATA17  0x1b0b0
> +
> MX6QDL_PAD_CSI0_DAT18__IPU1_CSI0_DATA18  0x1b0b0
> +
> MX6QDL_PAD_CSI0_DAT19__IPU1_CSI0_DATA19  0x1b0b0
> +
> MX6QDL_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK 0x1b0b0
> +
> MX6QDL_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC    0x1b0b0
> +
> MX6QDL_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC   0x1b0b0
> +			>;
> +		};
> +
> +		pinctrl_max7310: max7310grp {
> +			fsl,pins = <
> +				MX6QDL_PAD_SD2_DAT0__GPIO1_IO15
> 0x1b0b0
> +			>;
> +		};
> +
> +		pinctrl_pwm3: pwm1grp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_SD4_DAT1__PWM3_OUT		0x1b0b1
> +			>;
> +		};
> +
> +		pinctrl_gpt_input_capture0: gptinputcapture0grp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_SD1_DAT0__GPT_CAPTURE1	0x1b0b0
> +			>;
> +		};
> +
> +		pinctrl_gpt_input_capture1: gptinputcapture1grp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_SD1_DAT1__GPT_CAPTURE2	0x1b0b0
> +			>;
> +		};
> +
> +		pinctrl_spdif: spdifgrp {
> +			fsl,pins = <
> +				MX6QDL_PAD_KEY_COL3__SPDIF_IN 0x1b0b0
> +			>;
> +		};
> +
> +		pinctrl_uart4: uart4grp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_KEY_COL0__UART4_TX_DATA	0x1b0b1
> +
> MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA	0x1b0b1
> +			>;
> +		};
> +
> +		pinctrl_usbotg: usbotggrp {
> +			fsl,pins = <
> +				MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID
> 0x17059
> +			>;
> +		};
> +
> +		pinctrl_usdhc3: usdhc3grp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_SD3_CMD__SD3_CMD		0x17059
> +
> MX6QDL_PAD_SD3_CLK__SD3_CLK		0x10059
> +
> MX6QDL_PAD_SD3_DAT0__SD3_DATA0		0x17059
> +
> MX6QDL_PAD_SD3_DAT1__SD3_DATA1		0x17059
> +
> MX6QDL_PAD_SD3_DAT2__SD3_DATA2		0x17059
> +
> MX6QDL_PAD_SD3_DAT3__SD3_DATA3		0x17059
> +
> MX6QDL_PAD_SD3_DAT4__SD3_DATA4		0x17059
> +
> MX6QDL_PAD_SD3_DAT5__SD3_DATA5		0x17059
> +
> MX6QDL_PAD_SD3_DAT6__SD3_DATA6		0x17059
> +
> MX6QDL_PAD_SD3_DAT7__SD3_DATA7		0x17059
> +			>;
> +		};
> +
> +		pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
> +			fsl,pins = <
> +
> MX6QDL_PAD_SD3_CMD__SD3_CMD		0x170b9
> +
> MX6QDL_PAD_SD3_CLK__SD3_CLK		0x100b9
> +
> MX6QDL_PAD_SD3_DAT0__SD3_DATA0		0x170b9
> +
> MX6QDL_PAD_SD3_DAT1__SD3_DATA1		0x170b9
> +
> MX6QDL_PAD_SD3_DAT2__SD3_DATA2		0x170b9
> +
> MX6QDL_PAD_SD3_DAT3__SD3_DATA3		0x170b9
> +
> MX6QDL_PAD_SD3_DAT4__SD3_DATA4		0x170b9
> +
> MX6QDL_PAD_SD3_DAT5__SD3_DATA5		0x170b9
> +
> MX6QDL_PAD_SD3_DAT6__SD3_DATA6		0x170b9
> +
> MX6QDL_PAD_SD3_DAT7__SD3_DATA7		0x170b9
> +			>;
> +		};
> +
> +		pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
> +			fsl,pins = <
> +
> MX6QDL_PAD_SD3_CMD__SD3_CMD		0x170f9
> +
> MX6QDL_PAD_SD3_CLK__SD3_CLK		0x100f9
> +
> MX6QDL_PAD_SD3_DAT0__SD3_DATA0		0x170f9
> +
> MX6QDL_PAD_SD3_DAT1__SD3_DATA1		0x170f9
> +
> MX6QDL_PAD_SD3_DAT2__SD3_DATA2		0x170f9
> +
> MX6QDL_PAD_SD3_DAT3__SD3_DATA3		0x170f9
> +
> MX6QDL_PAD_SD3_DAT4__SD3_DATA4		0x170f9
> +
> MX6QDL_PAD_SD3_DAT5__SD3_DATA5		0x170f9
> +
> MX6QDL_PAD_SD3_DAT6__SD3_DATA6		0x170f9
> +
> MX6QDL_PAD_SD3_DAT7__SD3_DATA7		0x170f9
> +			>;
> +		};
> +
> +		pinctrl_weim_cs0: weimcs0grp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_EIM_CS0__EIM_CS0_B		0xb0b1
> +			>;
> +		};
> +
> +		pinctrl_weim_nor: weimnorgrp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_EIM_OE__EIM_OE_B		0xb0b1
> +
> MX6QDL_PAD_EIM_RW__EIM_RW		0xb0b1
> +
> MX6QDL_PAD_EIM_WAIT__EIM_WAIT_B		0xb060
> +
> MX6QDL_PAD_EIM_D16__EIM_DATA16		0x1b0b0
> +
> MX6QDL_PAD_EIM_D17__EIM_DATA17		0x1b0b0
> +
> MX6QDL_PAD_EIM_D18__EIM_DATA18		0x1b0b0
> +
> MX6QDL_PAD_EIM_D19__EIM_DATA19		0x1b0b0
> +
> MX6QDL_PAD_EIM_D20__EIM_DATA20		0x1b0b0
> +
> MX6QDL_PAD_EIM_D21__EIM_DATA21		0x1b0b0
> +
> MX6QDL_PAD_EIM_D22__EIM_DATA22		0x1b0b0
> +
> MX6QDL_PAD_EIM_D23__EIM_DATA23		0x1b0b0
> +
> MX6QDL_PAD_EIM_D24__EIM_DATA24		0x1b0b0
> +
> MX6QDL_PAD_EIM_D25__EIM_DATA25		0x1b0b0
> +
> MX6QDL_PAD_EIM_D26__EIM_DATA26		0x1b0b0
> +
> MX6QDL_PAD_EIM_D27__EIM_DATA27		0x1b0b0
> +
> MX6QDL_PAD_EIM_D28__EIM_DATA28		0x1b0b0
> +
> MX6QDL_PAD_EIM_D29__EIM_DATA29		0x1b0b0
> +
> MX6QDL_PAD_EIM_D30__EIM_DATA30		0x1b0b0
> +
> MX6QDL_PAD_EIM_D31__EIM_DATA31		0x1b0b0
> +
> MX6QDL_PAD_EIM_A23__EIM_ADDR23		0xb0b1
> +
> MX6QDL_PAD_EIM_A22__EIM_ADDR22		0xb0b1
> +
> MX6QDL_PAD_EIM_A21__EIM_ADDR21		0xb0b1
> +
> MX6QDL_PAD_EIM_A20__EIM_ADDR20		0xb0b1
> +
> MX6QDL_PAD_EIM_A19__EIM_ADDR19		0xb0b1
> +
> MX6QDL_PAD_EIM_A18__EIM_ADDR18		0xb0b1
> +
> MX6QDL_PAD_EIM_A17__EIM_ADDR17		0xb0b1
> +
> MX6QDL_PAD_EIM_A16__EIM_ADDR16		0xb0b1
> +
> MX6QDL_PAD_EIM_DA15__EIM_AD15		0xb0b1
> +
> MX6QDL_PAD_EIM_DA14__EIM_AD14		0xb0b1
> +
> MX6QDL_PAD_EIM_DA13__EIM_AD13		0xb0b1
> +
> MX6QDL_PAD_EIM_DA12__EIM_AD12		0xb0b1
> +
> MX6QDL_PAD_EIM_DA11__EIM_AD11		0xb0b1
> +
> MX6QDL_PAD_EIM_DA10__EIM_AD10		0xb0b1
> +
> MX6QDL_PAD_EIM_DA9__EIM_AD09		0xb0b1
> +
> MX6QDL_PAD_EIM_DA8__EIM_AD08		0xb0b1
> +
> MX6QDL_PAD_EIM_DA7__EIM_AD07		0xb0b1
> +
> MX6QDL_PAD_EIM_DA6__EIM_AD06		0xb0b1
> +
> MX6QDL_PAD_EIM_DA5__EIM_AD05		0xb0b1
> +
> MX6QDL_PAD_EIM_DA4__EIM_AD04		0xb0b1
> +
> MX6QDL_PAD_EIM_DA3__EIM_AD03		0xb0b1
> +
> MX6QDL_PAD_EIM_DA2__EIM_AD02		0xb0b1
> +
> MX6QDL_PAD_EIM_DA1__EIM_AD01		0xb0b1
> +
> MX6QDL_PAD_EIM_DA0__EIM_AD00		0xb0b1
> +			>;
> +		};
> +	};
> +};
> +
> +&ldb {
> +	status = "okay";
> +
> +	lvds-channel at 0 {
> +		fsl,data-mapping = "spwg";
> +		fsl,data-width = <18>;
> +		status = "okay";
> +
> +		display-timings {
> +			native-mode = <&timing0>;
> +			timing0: hsd100pxn1 {
> +				clock-frequency = <65000000>;
> +				hactive = <1024>;
> +				vactive = <768>;
> +				hback-porch = <220>;
> +				hfront-porch = <40>;
> +				vback-porch = <21>;
> +				vfront-porch = <7>;
> +				hsync-len = <60>;
> +				vsync-len = <10>;
> +			};
> +		};
> +	};
> +};
> +
> +&pwm3 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_pwm3>;
> +	status = "okay";
> +};
> +
> +&spdif {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_spdif>;
> +	status = "okay";
> +};
> +
> +&uart4 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_uart4>;
> +	status = "okay";
> +};
> +
> +&usbh1 {
> +	vbus-supply = <&reg_usb_h1_vbus>;
> +	status = "okay";
> +};
> +
> +&usbotg {
> +	vbus-supply = <&reg_usb_otg_vbus>;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_usbotg>;
> +	status = "okay";
> +};
> +
> +&usdhc3 {
> +	pinctrl-names = "default", "state_100mhz", "state_200mhz";
> +	pinctrl-0 = <&pinctrl_usdhc3>;
> +	pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
> +	pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
> +	cd-gpios = <&gpio6 15 GPIO_ACTIVE_LOW>;
> +	wp-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
> +	status = "okay";
> +};
> +
> +&weim {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_weim_nor &pinctrl_weim_cs0>;
> +	ranges = <0 0 0x08000000 0x08000000>;
> +	status = "disabled"; /* pin conflict with SPI NOR */
> +
> +	nor at 0,0 {
> +		compatible = "cfi-flash";
> +		reg = <0 0 0x02000000>;
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		bank-width = <2>;
> +		fsl,weim-cs-timing = <0x00620081 0x00000001
> 0x1c022000
> +				0x0000c000 0x1404a38e 0x00000000>;
> +	};
> +};
> diff --git a/arch/arm/dts/imx6qdl-sabresd.dtsi
> b/arch/arm/dts/imx6qdl-sabresd.dtsi new file mode 100644
> index 0000000..2cd5a9f
> --- /dev/null
> +++ b/arch/arm/dts/imx6qdl-sabresd.dtsi
> @@ -0,0 +1,741 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +//
> +// Copyright 2012 Freescale Semiconductor, Inc.
> +// Copyright 2011 Linaro Ltd.
> +
> +#include <dt-bindings/clock/imx6qdl-clock.h>
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/input.h>
> +
> +/ {
> +	aliases {
> +		mmc1 = &usdhc3;
> +	};
> +
> +	chosen {
> +		stdout-path = &uart1;
> +	};
> +
> +	memory at 10000000 {
> +		reg = <0x10000000 0x40000000>;
> +	};
> +
> +	regulators {
> +		compatible = "simple-bus";
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		reg_usb_otg_vbus: regulator at 0 {
> +			compatible = "regulator-fixed";
> +			reg = <0>;
> +			regulator-name = "usb_otg_vbus";
> +			regulator-min-microvolt = <5000000>;
> +			regulator-max-microvolt = <5000000>;
> +			gpio = <&gpio3 22 0>;
> +			enable-active-high;
> +			vin-supply = <&swbst_reg>;
> +		};
> +
> +		reg_usb_h1_vbus: regulator at 1 {
> +			compatible = "regulator-fixed";
> +			reg = <1>;
> +			regulator-name = "usb_h1_vbus";
> +			regulator-min-microvolt = <5000000>;
> +			regulator-max-microvolt = <5000000>;
> +			gpio = <&gpio1 29 0>;
> +			enable-active-high;
> +			vin-supply = <&swbst_reg>;
> +		};
> +
> +		reg_audio: regulator at 2 {
> +			compatible = "regulator-fixed";
> +			reg = <2>;
> +			regulator-name = "wm8962-supply";
> +			gpio = <&gpio4 10 0>;
> +			enable-active-high;
> +		};
> +
> +		reg_pcie: regulator at 3 {
> +			compatible = "regulator-fixed";
> +			reg = <3>;
> +			pinctrl-names = "default";
> +			pinctrl-0 = <&pinctrl_pcie_reg>;
> +			regulator-name = "MPCIE_3V3";
> +			regulator-min-microvolt = <3300000>;
> +			regulator-max-microvolt = <3300000>;
> +			gpio = <&gpio3 19 0>;
> +			enable-active-high;
> +		};
> +	};
> +
> +	gpio-keys {
> +		compatible = "gpio-keys";
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&pinctrl_gpio_keys>;
> +
> +		power {
> +			label = "Power Button";
> +			gpios = <&gpio3 29 GPIO_ACTIVE_LOW>;
> +			wakeup-source;
> +			linux,code = <KEY_POWER>;
> +		};
> +
> +		volume-up {
> +			label = "Volume Up";
> +			gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
> +			wakeup-source;
> +			linux,code = <KEY_VOLUMEUP>;
> +		};
> +
> +		volume-down {
> +			label = "Volume Down";
> +			gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
> +			wakeup-source;
> +			linux,code = <KEY_VOLUMEDOWN>;
> +		};
> +	};
> +
> +	sound {
> +		compatible = "fsl,imx6q-sabresd-wm8962",
> +			   "fsl,imx-audio-wm8962";
> +		model = "wm8962-audio";
> +		ssi-controller = <&ssi2>;
> +		audio-codec = <&codec>;
> +		audio-routing =
> +			"Headphone Jack", "HPOUTL",
> +			"Headphone Jack", "HPOUTR",
> +			"Ext Spk", "SPKOUTL",
> +			"Ext Spk", "SPKOUTR",
> +			"AMIC", "MICBIAS",
> +			"IN3R", "AMIC";
> +		mux-int-port = <2>;
> +		mux-ext-port = <3>;
> +	};
> +
> +	backlight_lvds: backlight-lvds {
> +		compatible = "pwm-backlight";
> +		pwms = <&pwm1 0 5000000>;
> +		brightness-levels = <0 4 8 16 32 64 128 255>;
> +		default-brightness-level = <7>;
> +		status = "okay";
> +	};
> +
> +	leds {
> +		compatible = "gpio-leds";
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&pinctrl_gpio_leds>;
> +
> +		red {
> +			gpios = <&gpio1 2 0>;
> +			default-state = "on";
> +		};
> +	};
> +
> +	panel {
> +		compatible = "hannstar,hsd100pxn1";
> +		backlight = <&backlight_lvds>;
> +
> +		port {
> +			panel_in: endpoint {
> +				remote-endpoint = <&lvds0_out>;
> +			};
> +		};
> +	};
> +};
> +
> +&ipu1_csi0_from_ipu1_csi0_mux {
> +	bus-width = <8>;
> +	data-shift = <12>; /* Lines 19:12 used */
> +	hsync-active = <1>;
> +	vsync-active = <1>;
> +};
> +
> +&ipu1_csi0_mux_from_parallel_sensor {
> +	remote-endpoint = <&ov5642_to_ipu1_csi0_mux>;
> +};
> +
> +&ipu1_csi0 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_ipu1_csi0>;
> +};
> +
> +&mipi_csi {
> +	status = "okay";
> +
> +	port at 0 {
> +		reg = <0>;
> +
> +		mipi_csi2_in: endpoint {
> +			remote-endpoint = <&ov5640_to_mipi_csi2>;
> +			clock-lanes = <0>;
> +			data-lanes = <1 2>;
> +		};
> +	};
> +};
> +
> +&audmux {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_audmux>;
> +	status = "okay";
> +};
> +
> +&clks {
> +	assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
> +			  <&clks IMX6QDL_CLK_LDB_DI1_SEL>;
> +	assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
> +				 <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
> +};
> +
> +&ecspi1 {
> +	cs-gpios = <&gpio4 9 0>;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_ecspi1>;
> +	status = "okay";
> +
> +	flash: m25p80 at 0 {
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		compatible = "st,m25p32", "jedec,spi-nor";
> +		spi-max-frequency = <20000000>;
> +		reg = <0>;
> +	};
> +};
> +
> +&fec {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_enet>;
> +	phy-mode = "rgmii";
> +	phy-reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
> +	status = "okay";
> +};
> +
> +&hdmi {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_hdmi_cec>;
> +	ddc-i2c-bus = <&i2c2>;
> +	status = "okay";
> +};
> +
> +&i2c1 {
> +	clock-frequency = <100000>;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_i2c1>;
> +	status = "okay";
> +
> +	codec: wm8962 at 1a {
> +		compatible = "wlf,wm8962";
> +		reg = <0x1a>;
> +		clocks = <&clks IMX6QDL_CLK_CKO>;
> +		DCVDD-supply = <&reg_audio>;
> +		DBVDD-supply = <&reg_audio>;
> +		AVDD-supply = <&reg_audio>;
> +		CPVDD-supply = <&reg_audio>;
> +		MICVDD-supply = <&reg_audio>;
> +		PLLVDD-supply = <&reg_audio>;
> +		SPKVDD1-supply = <&reg_audio>;
> +		SPKVDD2-supply = <&reg_audio>;
> +		gpio-cfg = <
> +			0x0000 /* 0:Default */
> +			0x0000 /* 1:Default */
> +			0x0013 /* 2:FN_DMICCLK */
> +			0x0000 /* 3:Default */
> +			0x8014 /* 4:FN_DMICCDAT */
> +			0x0000 /* 5:Default */
> +		>;
> +	};
> +
> +	ov5642: camera at 3c {
> +		compatible = "ovti,ov5642";
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&pinctrl_ov5642>;
> +		clocks = <&clks IMX6QDL_CLK_CKO>;
> +		clock-names = "xclk";
> +		reg = <0x3c>;
> +		DOVDD-supply = <&vgen4_reg>; /* 1.8v */
> +		AVDD-supply = <&vgen3_reg>;  /* 2.8v, rev C board is
> VGEN3
> +						rev B board is VGEN5
> */
> +		DVDD-supply = <&vgen2_reg>;  /* 1.5v*/
> +		powerdown-gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>;
> +		reset-gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
> +		status = "disabled";
> +
> +		port {
> +			ov5642_to_ipu1_csi0_mux: endpoint {
> +				remote-endpoint =
> <&ipu1_csi0_mux_from_parallel_sensor>;
> +				bus-width = <8>;
> +				hsync-active = <1>;
> +				vsync-active = <1>;
> +			};
> +		};
> +	};
> +};
> +
> +&i2c2 {
> +	clock-frequency = <100000>;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_i2c2>;
> +	status = "okay";
> +
> +	ov5640: camera at 3c {
> +		compatible = "ovti,ov5640";
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&pinctrl_ov5640>;
> +		reg = <0x3c>;
> +		clocks = <&clks IMX6QDL_CLK_CKO>;
> +		clock-names = "xclk";
> +		DOVDD-supply = <&vgen4_reg>; /* 1.8v */
> +		AVDD-supply = <&vgen3_reg>;  /* 2.8v, rev C board is
> VGEN3
> +						rev B board is VGEN5
> */
> +		DVDD-supply = <&vgen2_reg>;  /* 1.5v*/
> +		powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
> +		reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
> +
> +		port {
> +			ov5640_to_mipi_csi2: endpoint {
> +				remote-endpoint = <&mipi_csi2_in>;
> +				clock-lanes = <0>;
> +				data-lanes = <1 2>;
> +			};
> +		};
> +	};
> +
> +	pmic: pfuze100 at 8 {
> +		compatible = "fsl,pfuze100";
> +		reg = <0x08>;
> +
> +		regulators {
> +			sw1a_reg: sw1ab {
> +				regulator-min-microvolt = <300000>;
> +				regulator-max-microvolt = <1875000>;
> +				regulator-boot-on;
> +				regulator-always-on;
> +				regulator-ramp-delay = <6250>;
> +			};
> +
> +			sw1c_reg: sw1c {
> +				regulator-min-microvolt = <300000>;
> +				regulator-max-microvolt = <1875000>;
> +				regulator-boot-on;
> +				regulator-always-on;
> +				regulator-ramp-delay = <6250>;
> +			};
> +
> +			sw2_reg: sw2 {
> +				regulator-min-microvolt = <800000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-boot-on;
> +				regulator-always-on;
> +				regulator-ramp-delay = <6250>;
> +			};
> +
> +			sw3a_reg: sw3a {
> +				regulator-min-microvolt = <400000>;
> +				regulator-max-microvolt = <1975000>;
> +				regulator-boot-on;
> +				regulator-always-on;
> +			};
> +
> +			sw3b_reg: sw3b {
> +				regulator-min-microvolt = <400000>;
> +				regulator-max-microvolt = <1975000>;
> +				regulator-boot-on;
> +				regulator-always-on;
> +			};
> +
> +			sw4_reg: sw4 {
> +				regulator-min-microvolt = <800000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-always-on;
> +			};
> +
> +			swbst_reg: swbst {
> +				regulator-min-microvolt = <5000000>;
> +				regulator-max-microvolt = <5150000>;
> +			};
> +
> +			snvs_reg: vsnvs {
> +				regulator-min-microvolt = <1000000>;
> +				regulator-max-microvolt = <3000000>;
> +				regulator-boot-on;
> +				regulator-always-on;
> +			};
> +
> +			vref_reg: vrefddr {
> +				regulator-boot-on;
> +				regulator-always-on;
> +			};
> +
> +			vgen1_reg: vgen1 {
> +				regulator-min-microvolt = <800000>;
> +				regulator-max-microvolt = <1550000>;
> +			};
> +
> +			vgen2_reg: vgen2 {
> +				regulator-min-microvolt = <800000>;
> +				regulator-max-microvolt = <1550000>;
> +			};
> +
> +			vgen3_reg: vgen3 {
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <3300000>;
> +			};
> +
> +			vgen4_reg: vgen4 {
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-always-on;
> +			};
> +
> +			vgen5_reg: vgen5 {
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-always-on;
> +			};
> +
> +			vgen6_reg: vgen6 {
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-always-on;
> +			};
> +		};
> +	};
> +};
> +
> +&i2c3 {
> +	clock-frequency = <100000>;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_i2c3>;
> +	status = "okay";
> +
> +	egalax_ts at 4 {
> +		compatible = "eeti,egalax_ts";
> +		reg = <0x04>;
> +		interrupt-parent = <&gpio6>;
> +		interrupts = <7 2>;
> +		wakeup-gpios = <&gpio6 7 0>;
> +	};
> +};
> +
> +&iomuxc {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_hog>;
> +
> +	imx6qdl-sabresd {
> +		pinctrl_hog: hoggrp {
> +			fsl,pins = <
> +				MX6QDL_PAD_NANDF_D0__GPIO2_IO00
> 0x1b0b0
> +				MX6QDL_PAD_NANDF_D1__GPIO2_IO01
> 0x1b0b0
> +				MX6QDL_PAD_NANDF_D2__GPIO2_IO02
> 0x1b0b0
> +				MX6QDL_PAD_NANDF_D3__GPIO2_IO03
> 0x1b0b0
> +				MX6QDL_PAD_GPIO_0__CCM_CLKO1
> 0x130b0
> +				MX6QDL_PAD_NANDF_CLE__GPIO6_IO07
> 0x1b0b0
> +				MX6QDL_PAD_ENET_TXD1__GPIO1_IO29
> 0x1b0b0
> +				MX6QDL_PAD_EIM_D22__GPIO3_IO22
> 0x1b0b0
> +				MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25
> 0x1b0b0
> +			>;
> +		};
> +
> +		pinctrl_audmux: audmuxgrp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_CSI0_DAT7__AUD3_RXD		0x130b0
> +
> MX6QDL_PAD_CSI0_DAT4__AUD3_TXC		0x130b0
> +
> MX6QDL_PAD_CSI0_DAT5__AUD3_TXD		0x110b0
> +
> MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS		0x130b0
> +			>;
> +		};
> +
> +		pinctrl_ecspi1: ecspi1grp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_KEY_COL1__ECSPI1_MISO	0x100b1
> +
> MX6QDL_PAD_KEY_ROW0__ECSPI1_MOSI	0x100b1
> +
> MX6QDL_PAD_KEY_COL0__ECSPI1_SCLK	0x100b1
> +
> MX6QDL_PAD_KEY_ROW1__GPIO4_IO09		0x1b0b0
> +			>;
> +		};
> +
> +		pinctrl_enet: enetgrp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_ENET_MDIO__ENET_MDIO		0x1b0b0
> +
> MX6QDL_PAD_ENET_MDC__ENET_MDC		0x1b0b0
> +
> MX6QDL_PAD_RGMII_TXC__RGMII_TXC		0x1b030
> +
> MX6QDL_PAD_RGMII_TD0__RGMII_TD0		0x1b030
> +
> MX6QDL_PAD_RGMII_TD1__RGMII_TD1		0x1b030
> +
> MX6QDL_PAD_RGMII_TD2__RGMII_TD2		0x1b030
> +
> MX6QDL_PAD_RGMII_TD3__RGMII_TD3		0x1b030
> +
> MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL	0x1b030
> +
> MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK	0x1b0b0
> +
> MX6QDL_PAD_RGMII_RXC__RGMII_RXC		0x1b030
> +
> MX6QDL_PAD_RGMII_RD0__RGMII_RD0		0x1b030
> +
> MX6QDL_PAD_RGMII_RD1__RGMII_RD1		0x1b030
> +
> MX6QDL_PAD_RGMII_RD2__RGMII_RD2		0x1b030
> +
> MX6QDL_PAD_RGMII_RD3__RGMII_RD3		0x1b030
> +
> MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL	0x1b030
> +
> MX6QDL_PAD_GPIO_16__ENET_REF_CLK	0x4001b0a8
> +			>;
> +		};
> +
> +		pinctrl_gpio_keys: gpio_keysgrp {
> +			fsl,pins = <
> +				MX6QDL_PAD_EIM_D29__GPIO3_IO29
> 0x1b0b0
> +				MX6QDL_PAD_GPIO_4__GPIO1_IO04
> 0x1b0b0
> +				MX6QDL_PAD_GPIO_5__GPIO1_IO05
> 0x1b0b0
> +			>;
> +		};
> +
> +		pinctrl_hdmi_cec: hdmicecgrp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE	0x1f8b0
> +			>;
> +		};
> +
> +		pinctrl_i2c1: i2c1grp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_CSI0_DAT8__I2C1_SDA		0x4001b8b1
> +
> MX6QDL_PAD_CSI0_DAT9__I2C1_SCL		0x4001b8b1
> +			>;
> +		};
> +
> +		pinctrl_i2c2: i2c2grp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_KEY_COL3__I2C2_SCL		0x4001b8b1
> +
> MX6QDL_PAD_KEY_ROW3__I2C2_SDA		0x4001b8b1
> +			>;
> +		};
> +
> +		pinctrl_i2c3: i2c3grp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_GPIO_3__I2C3_SCL		0x4001b8b1
> +
> MX6QDL_PAD_GPIO_6__I2C3_SDA		0x4001b8b1
> +			>;
> +		};
> +
> +		pinctrl_ipu1_csi0: ipu1csi0grp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12    0x1b0b0
> +
> MX6QDL_PAD_CSI0_DAT13__IPU1_CSI0_DATA13    0x1b0b0
> +
> MX6QDL_PAD_CSI0_DAT14__IPU1_CSI0_DATA14    0x1b0b0
> +
> MX6QDL_PAD_CSI0_DAT15__IPU1_CSI0_DATA15    0x1b0b0
> +
> MX6QDL_PAD_CSI0_DAT16__IPU1_CSI0_DATA16    0x1b0b0
> +
> MX6QDL_PAD_CSI0_DAT17__IPU1_CSI0_DATA17    0x1b0b0
> +
> MX6QDL_PAD_CSI0_DAT18__IPU1_CSI0_DATA18    0x1b0b0
> +
> MX6QDL_PAD_CSI0_DAT19__IPU1_CSI0_DATA19    0x1b0b0
> +
> MX6QDL_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK   0x1b0b0
> +
> MX6QDL_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC      0x1b0b0
> +
> MX6QDL_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC     0x1b0b0
> +			>;
> +		};
> +
> +		pinctrl_ov5640: ov5640grp {
> +			fsl,pins = <
> +				MX6QDL_PAD_SD1_DAT2__GPIO1_IO19
> 0x1b0b0
> +				MX6QDL_PAD_SD1_CLK__GPIO1_IO20
> 0x1b0b0
> +			>;
> +		};
> +
> +		pinctrl_ov5642: ov5642grp {
> +			fsl,pins = <
> +				MX6QDL_PAD_SD1_DAT0__GPIO1_IO16
> 0x1b0b0
> +				MX6QDL_PAD_SD1_DAT1__GPIO1_IO17
> 0x1b0b0
> +			>;
> +		};
> +
> +		pinctrl_pcie: pciegrp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_GPIO_17__GPIO7_IO12	0x1b0b0
> +			>;
> +		};
> +
> +		pinctrl_pcie_reg: pciereggrp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_EIM_D19__GPIO3_IO19	0x1b0b0
> +			>;
> +		};
> +
> +		pinctrl_pwm1: pwm1grp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_SD1_DAT3__PWM1_OUT		0x1b0b1
> +			>;
> +		};
> +
> +		pinctrl_uart1: uart1grp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA	0x1b0b1
> +
> MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA	0x1b0b1
> +			>;
> +		};
> +
> +		pinctrl_usbotg: usbotggrp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID	0x17059
> +			>;
> +		};
> +
> +		pinctrl_usdhc2: usdhc2grp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_SD2_CMD__SD2_CMD		0x17059
> +
> MX6QDL_PAD_SD2_CLK__SD2_CLK		0x10059
> +
> MX6QDL_PAD_SD2_DAT0__SD2_DATA0		0x17059
> +
> MX6QDL_PAD_SD2_DAT1__SD2_DATA1		0x17059
> +
> MX6QDL_PAD_SD2_DAT2__SD2_DATA2		0x17059
> +
> MX6QDL_PAD_SD2_DAT3__SD2_DATA3		0x17059
> +
> MX6QDL_PAD_NANDF_D4__SD2_DATA4		0x17059
> +
> MX6QDL_PAD_NANDF_D5__SD2_DATA5		0x17059
> +
> MX6QDL_PAD_NANDF_D6__SD2_DATA6		0x17059
> +
> MX6QDL_PAD_NANDF_D7__SD2_DATA7		0x17059
> +			>;
> +		};
> +
> +		pinctrl_usdhc3: usdhc3grp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_SD3_CMD__SD3_CMD		0x17059
> +
> MX6QDL_PAD_SD3_CLK__SD3_CLK		0x10059
> +
> MX6QDL_PAD_SD3_DAT0__SD3_DATA0		0x17059
> +
> MX6QDL_PAD_SD3_DAT1__SD3_DATA1		0x17059
> +
> MX6QDL_PAD_SD3_DAT2__SD3_DATA2		0x17059
> +
> MX6QDL_PAD_SD3_DAT3__SD3_DATA3		0x17059
> +
> MX6QDL_PAD_SD3_DAT4__SD3_DATA4		0x17059
> +
> MX6QDL_PAD_SD3_DAT5__SD3_DATA5		0x17059
> +
> MX6QDL_PAD_SD3_DAT6__SD3_DATA6		0x17059
> +
> MX6QDL_PAD_SD3_DAT7__SD3_DATA7		0x17059
> +			>;
> +		};
> +
> +		pinctrl_usdhc4: usdhc4grp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_SD4_CMD__SD4_CMD		0x17059
> +
> MX6QDL_PAD_SD4_CLK__SD4_CLK		0x10059
> +
> MX6QDL_PAD_SD4_DAT0__SD4_DATA0		0x17059
> +
> MX6QDL_PAD_SD4_DAT1__SD4_DATA1		0x17059
> +
> MX6QDL_PAD_SD4_DAT2__SD4_DATA2		0x17059
> +
> MX6QDL_PAD_SD4_DAT3__SD4_DATA3		0x17059
> +
> MX6QDL_PAD_SD4_DAT4__SD4_DATA4		0x17059
> +
> MX6QDL_PAD_SD4_DAT5__SD4_DATA5		0x17059
> +
> MX6QDL_PAD_SD4_DAT6__SD4_DATA6		0x17059
> +
> MX6QDL_PAD_SD4_DAT7__SD4_DATA7		0x17059
> +			>;
> +		};
> +
> +		pinctrl_wdog: wdoggrp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_GPIO_1__WDOG2_B		0x1b0b0
> +			>;
> +		};
> +	};
> +
> +	gpio_leds {
> +		pinctrl_gpio_leds: gpioledsgrp {
> +			fsl,pins = <
> +				MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x1b0b0
> +			>;
> +		};
> +	};
> +};
> +
> +&ldb {
> +	status = "okay";
> +
> +	lvds-channel at 1 {
> +		fsl,data-mapping = "spwg";
> +		fsl,data-width = <18>;
> +		status = "okay";
> +
> +		port at 4 {
> +			reg = <4>;
> +
> +			lvds0_out: endpoint {
> +				remote-endpoint = <&panel_in>;
> +			};
> +		};
> +	};
> +};
> +
> +&pcie {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_pcie>;
> +	reset-gpio = <&gpio7 12 GPIO_ACTIVE_LOW>;
> +	vpcie-supply = <&reg_pcie>;
> +	status = "okay";
> +};
> +
> +&pwm1 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_pwm1>;
> +	status = "okay";
> +};
> +
> +&reg_arm {
> +       vin-supply = <&sw1a_reg>;
> +};
> +
> +&reg_pu {
> +       vin-supply = <&sw1c_reg>;
> +};
> +
> +&reg_soc {
> +       vin-supply = <&sw1c_reg>;
> +};
> +
> +&snvs_poweroff {
> +	status = "okay";
> +};
> +
> +&ssi2 {
> +	status = "okay";
> +};
> +
> +&uart1 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_uart1>;
> +	status = "okay";
> +};
> +
> +&usbh1 {
> +	vbus-supply = <&reg_usb_h1_vbus>;
> +	status = "okay";
> +};
> +
> +&usbotg {
> +	vbus-supply = <&reg_usb_otg_vbus>;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_usbotg>;
> +	disable-over-current;
> +	status = "okay";
> +};
> +
> +&usdhc2 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_usdhc2>;
> +	bus-width = <8>;
> +	cd-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
> +	wp-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
> +	status = "okay";
> +};
> +
> +&usdhc3 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_usdhc3>;
> +	bus-width = <8>;
> +	cd-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
> +	wp-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
> +	status = "okay";
> +};
> +
> +&usdhc4 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_usdhc4>;
> +	bus-width = <8>;
> +	non-removable;
> +	no-1-8-v;
> +	status = "okay";
> +};
> +
> +&wdog1 {
> +	status = "disabled";
> +};
> +
> +&wdog2 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_wdog>;
> +	fsl,ext-reset-output;
> +	status = "okay";
> +};
> diff --git a/arch/arm/dts/imx6qdl.dtsi b/arch/arm/dts/imx6qdl.dtsi
> index b13b0b2..e4daf15 100644
> --- a/arch/arm/dts/imx6qdl.dtsi
> +++ b/arch/arm/dts/imx6qdl.dtsi
> @@ -1,21 +1,23 @@
> -/*
> - * Copyright 2011 Freescale Semiconductor, Inc.
> - * Copyright 2011 Linaro Ltd.
> - *
> - * The code contained herein is licensed under the GNU General Public
> - * License. You may obtain a copy of the GNU General Public License
> - * Version 2 or later at the following locations:
> - *
> - * http://www.opensource.org/licenses/gpl-license.html
> - * http://www.gnu.org/copyleft/gpl.html
> - */
> +// SPDX-License-Identifier: GPL-2.0+
> +//
> +// Copyright 2011 Freescale Semiconductor, Inc.
> +// Copyright 2011 Linaro Ltd.
>  
>  #include <dt-bindings/clock/imx6qdl-clock.h>
>  #include <dt-bindings/interrupt-controller/arm-gic.h>
>  
> -#include "skeleton.dtsi"
> -
>  / {
> +	#address-cells = <1>;
> +	#size-cells = <1>;
> +	/*
> +	 * The decompressor and also some bootloaders rely on a
> +	 * pre-existing /chosen node to be available to insert the
> +	 * command line and merge other ATAGS info.
> +	 * Also for U-Boot there must be a pre-existing /memory node.
> +	 */
> +	chosen {};
> +	memory { device_type = "memory"; };
> +
>  	aliases {
>  		ethernet0 = &fec;
>  		can0 = &can1;
> @@ -49,9 +51,6 @@
>  	};
>  
>  	clocks {
> -		#address-cells = <1>;
> -		#size-cells = <0>;
> -
>  		ckil {
>  			compatible = "fsl,imx-ckil", "fixed-clock";
>  			#clock-cells = <0>;
> @@ -71,6 +70,75 @@
>  		};
>  	};
>  
> +	tempmon: tempmon {
> +		compatible = "fsl,imx6q-tempmon";
> +		interrupt-parent = <&gpc>;
> +		interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>;
> +		fsl,tempmon = <&anatop>;
> +		fsl,tempmon-data = <&ocotp>;
> +		clocks = <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
> +	};
> +
> +	ldb: ldb {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		compatible = "fsl,imx6q-ldb", "fsl,imx53-ldb";
> +		gpr = <&gpr>;
> +		status = "disabled";
> +
> +		lvds-channel at 0 {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			reg = <0>;
> +			status = "disabled";
> +
> +			port at 0 {
> +				reg = <0>;
> +
> +				lvds0_mux_0: endpoint {
> +					remote-endpoint =
> <&ipu1_di0_lvds0>;
> +				};
> +			};
> +
> +			port at 1 {
> +				reg = <1>;
> +
> +				lvds0_mux_1: endpoint {
> +					remote-endpoint =
> <&ipu1_di1_lvds0>;
> +				};
> +			};
> +		};
> +
> +		lvds-channel at 1 {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			reg = <1>;
> +			status = "disabled";
> +
> +			port at 0 {
> +				reg = <0>;
> +
> +				lvds1_mux_0: endpoint {
> +					remote-endpoint =
> <&ipu1_di0_lvds1>;
> +				};
> +			};
> +
> +			port at 1 {
> +				reg = <1>;
> +
> +				lvds1_mux_1: endpoint {
> +					remote-endpoint =
> <&ipu1_di1_lvds1>;
> +				};
> +			};
> +		};
> +	};
> +
> +	pmu: pmu {
> +		compatible = "arm,cortex-a9-pmu";
> +		interrupt-parent = <&gpc>;
> +		interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>;
> +	};
> +
>  	soc {
>  		#address-cells = <1>;
>  		#size-cells = <1>;
> @@ -78,7 +146,7 @@
>  		interrupt-parent = <&gpc>;
>  		ranges;
>  
> -		dma_apbh: dma-apbh at 00110000 {
> +		dma_apbh: dma-apbh at 110000 {
>  			compatible = "fsl,imx6q-dma-apbh",
> "fsl,imx28-dma-apbh"; reg = <0x00110000 0x2000>;
>  			interrupts = <0 13 IRQ_TYPE_LEVEL_HIGH>,
> @@ -91,7 +159,7 @@
>  			clocks = <&clks IMX6QDL_CLK_APBH_DMA>;
>  		};
>  
> -		gpmi: gpmi-nand at 00112000 {
> +		gpmi: gpmi-nand at 112000 {
>  			compatible = "fsl,imx6q-gpmi-nand";
>  			#address-cells = <1>;
>  			#size-cells = <1>;
> @@ -111,7 +179,7 @@
>  			status = "disabled";
>  		};
>  
> -		hdmi: hdmi at 0120000 {
> +		hdmi: hdmi at 120000 {
>  			#address-cells = <1>;
>  			#size-cells = <0>;
>  			reg = <0x00120000 0x9000>;
> @@ -139,7 +207,7 @@
>  			};
>  		};
>  
> -		gpu_3d: gpu at 00130000 {
> +		gpu_3d: gpu at 130000 {
>  			compatible = "vivante,gc";
>  			reg = <0x00130000 0x4000>;
>  			interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH>;
> @@ -147,20 +215,20 @@
>  				 <&clks IMX6QDL_CLK_GPU3D_CORE>,
>  				 <&clks IMX6QDL_CLK_GPU3D_SHADER>;
>  			clock-names = "bus", "core", "shader";
> -			power-domains = <&gpc 1>;
> +			power-domains = <&pd_pu>;
>  		};
>  
> -		gpu_2d: gpu at 00134000 {
> +		gpu_2d: gpu at 134000 {
>  			compatible = "vivante,gc";
>  			reg = <0x00134000 0x4000>;
>  			interrupts = <0 10 IRQ_TYPE_LEVEL_HIGH>;
>  			clocks = <&clks IMX6QDL_CLK_GPU2D_AXI>,
>  				 <&clks IMX6QDL_CLK_GPU2D_CORE>;
>  			clock-names = "bus", "core";
> -			power-domains = <&gpc 1>;
> +			power-domains = <&pd_pu>;
>  		};
>  
> -		timer at 00a00600 {
> +		timer at a00600 {
>  			compatible = "arm,cortex-a9-twd-timer";
>  			reg = <0x00a00600 0x20>;
>  			interrupts = <1 13 0xf01>;
> @@ -168,7 +236,7 @@
>  			clocks = <&clks IMX6QDL_CLK_TWD>;
>  		};
>  
> -		intc: interrupt-controller at 00a01000 {
> +		intc: interrupt-controller at a01000 {
>  			compatible = "arm,cortex-a9-gic";
>  			#interrupt-cells = <3>;
>  			interrupt-controller;
> @@ -177,7 +245,7 @@
>  			interrupt-parent = <&intc>;
>  		};
>  
> -		L2: l2-cache at 00a02000 {
> +		L2: l2-cache at a02000 {
>  			compatible = "arm,pl310-cache";
>  			reg = <0x00a02000 0x1000>;
>  			interrupts = <0 92 IRQ_TYPE_LEVEL_HIGH>;
> @@ -188,7 +256,7 @@
>  			arm,shared-override;
>  		};
>  
> -		pcie: pcie at 0x01000000 {
> +		pcie: pcie at 1ffc000 {
>  			compatible = "fsl,imx6q-pcie",
> "snps,dw-pcie"; reg = <0x01ffc000 0x04000>,
>  			      <0x01f00000 0x80000>;
> @@ -196,6 +264,7 @@
>  			#address-cells = <3>;
>  			#size-cells = <2>;
>  			device_type = "pci";
> +			bus-range = <0x00 0xff>;
>  			ranges = <0x81000000 0 0          0x01f80000
> 0 0x00010000 /* downstream I/O */ 0x82000000 0 0x01000000 0x01000000
> 0 0x00f00000>; /* non-prefetchable memory */ num-lanes = <1>;
> @@ -204,9 +273,9 @@
>  			#interrupt-cells = <1>;
>  			interrupt-map-mask = <0 0 0 0x7>;
>  			interrupt-map = <0 0 0 1 &gpc GIC_SPI 123
> IRQ_TYPE_LEVEL_HIGH>,
> -			                <0 0 0 2 &gpc GIC_SPI 122
> IRQ_TYPE_LEVEL_HIGH>,
> -			                <0 0 0 3 &gpc GIC_SPI 121
> IRQ_TYPE_LEVEL_HIGH>,
> -			                <0 0 0 4 &gpc GIC_SPI 120
> IRQ_TYPE_LEVEL_HIGH>;
> +					<0 0 0 2 &gpc GIC_SPI 122
> IRQ_TYPE_LEVEL_HIGH>,
> +					<0 0 0 3 &gpc GIC_SPI 121
> IRQ_TYPE_LEVEL_HIGH>,
> +					<0 0 0 4 &gpc GIC_SPI 120
> IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX6QDL_CLK_PCIE_AXI>,
>  				 <&clks IMX6QDL_CLK_LVDS1_GATE>,
>  				 <&clks IMX6QDL_CLK_PCIE_REF_125M>;
> @@ -214,26 +283,21 @@
>  			status = "disabled";
>  		};
>  
> -		pmu {
> -			compatible = "arm,cortex-a9-pmu";
> -			interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>;
> -		};
> -
> -		aips-bus at 02000000 { /* AIPS1 */
> +		aips-bus at 2000000 { /* AIPS1 */
>  			compatible = "fsl,aips-bus", "simple-bus";
>  			#address-cells = <1>;
>  			#size-cells = <1>;
>  			reg = <0x02000000 0x100000>;
>  			ranges;
>  
> -			spba-bus at 02000000 {
> +			spba-bus at 2000000 {
>  				compatible = "fsl,spba-bus",
> "simple-bus"; #address-cells = <1>;
>  				#size-cells = <1>;
>  				reg = <0x02000000 0x40000>;
>  				ranges;
>  
> -				spdif: spdif at 02004000 {
> +				spdif: spdif at 2004000 {
>  					compatible =
> "fsl,imx35-spdif"; reg = <0x02004000 0x4000>;
>  					interrupts = <0 52
> IRQ_TYPE_LEVEL_HIGH>; @@ -253,7 +317,7 @@
>  					status = "disabled";
>  				};
>  
> -				ecspi1: ecspi at 02008000 {
> +				ecspi1: spi at 2008000 {
>  					#address-cells = <1>;
>  					#size-cells = <0>;
>  					compatible =
> "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; @@ -267,7 +331,7 @@
>  					status = "disabled";
>  				};
>  
> -				ecspi2: ecspi at 0200c000 {
> +				ecspi2: spi at 200c000 {
>  					#address-cells = <1>;
>  					#size-cells = <0>;
>  					compatible =
> "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; @@ -281,7 +345,7 @@
>  					status = "disabled";
>  				};
>  
> -				ecspi3: ecspi at 02010000 {
> +				ecspi3: spi at 2010000 {
>  					#address-cells = <1>;
>  					#size-cells = <0>;
>  					compatible =
> "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; @@ -295,7 +359,7 @@
>  					status = "disabled";
>  				};
>  
> -				ecspi4: ecspi at 02014000 {
> +				ecspi4: spi at 2014000 {
>  					#address-cells = <1>;
>  					#size-cells = <0>;
>  					compatible =
> "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; @@ -309,7 +373,7 @@
>  					status = "disabled";
>  				};
>  
> -				uart1: serial at 02020000 {
> +				uart1: serial at 2020000 {
>  					compatible =
> "fsl,imx6q-uart", "fsl,imx21-uart"; reg = <0x02020000 0x4000>;
>  					interrupts = <0 26
> IRQ_TYPE_LEVEL_HIGH>; @@ -321,7 +385,7 @@
>  					status = "disabled";
>  				};
>  
> -				esai: esai at 02024000 {
> +				esai: esai at 2024000 {
>  					#sound-dai-cells = <0>;
>  					compatible =
> "fsl,imx35-esai"; reg = <0x02024000 0x4000>;
> @@ -337,7 +401,7 @@
>  					status = "disabled";
>  				};
>  
> -				ssi1: ssi at 02028000 {
> +				ssi1: ssi at 2028000 {
>  					#sound-dai-cells = <0>;
>  					compatible = "fsl,imx6q-ssi",
>  							"fsl,imx51-ssi";
> @@ -353,7 +417,7 @@
>  					status = "disabled";
>  				};
>  
> -				ssi2: ssi at 0202c000 {
> +				ssi2: ssi at 202c000 {
>  					#sound-dai-cells = <0>;
>  					compatible = "fsl,imx6q-ssi",
>  							"fsl,imx51-ssi";
> @@ -369,7 +433,7 @@
>  					status = "disabled";
>  				};
>  
> -				ssi3: ssi at 02030000 {
> +				ssi3: ssi at 2030000 {
>  					#sound-dai-cells = <0>;
>  					compatible = "fsl,imx6q-ssi",
>  							"fsl,imx51-ssi";
> @@ -385,7 +449,7 @@
>  					status = "disabled";
>  				};
>  
> -				asrc: asrc at 02034000 {
> +				asrc: asrc at 2034000 {
>  					compatible =
> "fsl,imx53-asrc"; reg = <0x02034000 0x4000>;
>  					interrupts = <0 50
> IRQ_TYPE_LEVEL_HIGH>; @@ -410,12 +474,12 @@
>  					status = "okay";
>  				};
>  
> -				spba at 0203c000 {
> +				spba at 203c000 {
>  					reg = <0x0203c000 0x4000>;
>  				};
>  			};
>  
> -			vpu: vpu at 02040000 {
> +			vpu: vpu at 2040000 {
>  				compatible = "cnm,coda960";
>  				reg = <0x02040000 0x3c000>;
>  				interrupts = <0 12
> IRQ_TYPE_LEVEL_HIGH>, @@ -424,16 +488,16 @@
>  				clocks = <&clks IMX6QDL_CLK_VPU_AXI>,
>  					 <&clks
> IMX6QDL_CLK_MMDC_CH0_AXI>; clock-names = "per", "ahb";
> -				power-domains = <&gpc 1>;
> +				power-domains = <&pd_pu>;
>  				resets = <&src 1>;
>  				iram = <&ocram>;
>  			};
>  
> -			aipstz at 0207c000 { /* AIPSTZ1 */
> +			aipstz at 207c000 { /* AIPSTZ1 */
>  				reg = <0x0207c000 0x4000>;
>  			};
>  
> -			pwm1: pwm at 02080000 {
> +			pwm1: pwm at 2080000 {
>  				#pwm-cells = <2>;
>  				compatible = "fsl,imx6q-pwm",
> "fsl,imx27-pwm"; reg = <0x02080000 0x4000>;
> @@ -444,7 +508,7 @@
>  				status = "disabled";
>  			};
>  
> -			pwm2: pwm at 02084000 {
> +			pwm2: pwm at 2084000 {
>  				#pwm-cells = <2>;
>  				compatible = "fsl,imx6q-pwm",
> "fsl,imx27-pwm"; reg = <0x02084000 0x4000>;
> @@ -455,7 +519,7 @@
>  				status = "disabled";
>  			};
>  
> -			pwm3: pwm at 02088000 {
> +			pwm3: pwm at 2088000 {
>  				#pwm-cells = <2>;
>  				compatible = "fsl,imx6q-pwm",
> "fsl,imx27-pwm"; reg = <0x02088000 0x4000>;
> @@ -466,7 +530,7 @@
>  				status = "disabled";
>  			};
>  
> -			pwm4: pwm at 0208c000 {
> +			pwm4: pwm at 208c000 {
>  				#pwm-cells = <2>;
>  				compatible = "fsl,imx6q-pwm",
> "fsl,imx27-pwm"; reg = <0x0208c000 0x4000>;
> @@ -477,7 +541,7 @@
>  				status = "disabled";
>  			};
>  
> -			can1: flexcan at 02090000 {
> +			can1: flexcan at 2090000 {
>  				compatible = "fsl,imx6q-flexcan";
>  				reg = <0x02090000 0x4000>;
>  				interrupts = <0 110
> IRQ_TYPE_LEVEL_HIGH>; @@ -487,7 +551,7 @@
>  				status = "disabled";
>  			};
>  
> -			can2: flexcan at 02094000 {
> +			can2: flexcan at 2094000 {
>  				compatible = "fsl,imx6q-flexcan";
>  				reg = <0x02094000 0x4000>;
>  				interrupts = <0 111
> IRQ_TYPE_LEVEL_HIGH>; @@ -497,7 +561,7 @@
>  				status = "disabled";
>  			};
>  
> -			gpt: gpt at 02098000 {
> +			gpt: gpt at 2098000 {
>  				compatible = "fsl,imx6q-gpt",
> "fsl,imx31-gpt"; reg = <0x02098000 0x4000>;
>  				interrupts = <0 55
> IRQ_TYPE_LEVEL_HIGH>; @@ -507,7 +571,7 @@
>  				clock-names = "ipg", "per",
> "osc_per"; };
>  
> -			gpio1: gpio at 0209c000 {
> +			gpio1: gpio at 209c000 {
>  				compatible = "fsl,imx6q-gpio",
> "fsl,imx35-gpio"; reg = <0x0209c000 0x4000>;
>  				interrupts = <0 66
> IRQ_TYPE_LEVEL_HIGH>, @@ -518,7 +582,7 @@
>  				#interrupt-cells = <2>;
>  			};
>  
> -			gpio2: gpio at 020a0000 {
> +			gpio2: gpio at 20a0000 {
>  				compatible = "fsl,imx6q-gpio",
> "fsl,imx35-gpio"; reg = <0x020a0000 0x4000>;
>  				interrupts = <0 68
> IRQ_TYPE_LEVEL_HIGH>, @@ -529,7 +593,7 @@
>  				#interrupt-cells = <2>;
>  			};
>  
> -			gpio3: gpio at 020a4000 {
> +			gpio3: gpio at 20a4000 {
>  				compatible = "fsl,imx6q-gpio",
> "fsl,imx35-gpio"; reg = <0x020a4000 0x4000>;
>  				interrupts = <0 70
> IRQ_TYPE_LEVEL_HIGH>, @@ -540,7 +604,7 @@
>  				#interrupt-cells = <2>;
>  			};
>  
> -			gpio4: gpio at 020a8000 {
> +			gpio4: gpio at 20a8000 {
>  				compatible = "fsl,imx6q-gpio",
> "fsl,imx35-gpio"; reg = <0x020a8000 0x4000>;
>  				interrupts = <0 72
> IRQ_TYPE_LEVEL_HIGH>, @@ -551,7 +615,7 @@
>  				#interrupt-cells = <2>;
>  			};
>  
> -			gpio5: gpio at 020ac000 {
> +			gpio5: gpio at 20ac000 {
>  				compatible = "fsl,imx6q-gpio",
> "fsl,imx35-gpio"; reg = <0x020ac000 0x4000>;
>  				interrupts = <0 74
> IRQ_TYPE_LEVEL_HIGH>, @@ -562,7 +626,7 @@
>  				#interrupt-cells = <2>;
>  			};
>  
> -			gpio6: gpio at 020b0000 {
> +			gpio6: gpio at 20b0000 {
>  				compatible = "fsl,imx6q-gpio",
> "fsl,imx35-gpio"; reg = <0x020b0000 0x4000>;
>  				interrupts = <0 76
> IRQ_TYPE_LEVEL_HIGH>, @@ -573,7 +637,7 @@
>  				#interrupt-cells = <2>;
>  			};
>  
> -			gpio7: gpio at 020b4000 {
> +			gpio7: gpio at 20b4000 {
>  				compatible = "fsl,imx6q-gpio",
> "fsl,imx35-gpio"; reg = <0x020b4000 0x4000>;
>  				interrupts = <0 78
> IRQ_TYPE_LEVEL_HIGH>, @@ -584,7 +648,7 @@
>  				#interrupt-cells = <2>;
>  			};
>  
> -			kpp: kpp at 020b8000 {
> +			kpp: kpp at 20b8000 {
>  				compatible = "fsl,imx6q-kpp",
> "fsl,imx21-kpp"; reg = <0x020b8000 0x4000>;
>  				interrupts = <0 82
> IRQ_TYPE_LEVEL_HIGH>; @@ -592,14 +656,14 @@
>  				status = "disabled";
>  			};
>  
> -			wdog1: wdog at 020bc000 {
> +			wdog1: wdog at 20bc000 {
>  				compatible = "fsl,imx6q-wdt",
> "fsl,imx21-wdt"; reg = <0x020bc000 0x4000>;
>  				interrupts = <0 80
> IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX6QDL_CLK_DUMMY>;
>  			};
>  
> -			wdog2: wdog at 020c0000 {
> +			wdog2: wdog at 20c0000 {
>  				compatible = "fsl,imx6q-wdt",
> "fsl,imx21-wdt"; reg = <0x020c0000 0x4000>;
>  				interrupts = <0 81
> IRQ_TYPE_LEVEL_HIGH>; @@ -607,7 +671,7 @@
>  				status = "disabled";
>  			};
>  
> -			clks: ccm at 020c4000 {
> +			clks: ccm at 20c4000 {
>  				compatible = "fsl,imx6q-ccm";
>  				reg = <0x020c4000 0x4000>;
>  				interrupts = <0 87
> IRQ_TYPE_LEVEL_HIGH>, @@ -615,7 +679,7 @@
>  				#clock-cells = <1>;
>  			};
>  
> -			anatop: anatop at 020c8000 {
> +			anatop: anatop at 20c8000 {
>  				compatible = "fsl,imx6q-anatop",
> "syscon", "simple-bus"; reg = <0x020c8000 0x1000>;
>  				interrupts = <0 49
> IRQ_TYPE_LEVEL_HIGH>, @@ -625,8 +689,8 @@
>  				regulator-1p1 {
>  					compatible =
> "fsl,anatop-regulator"; regulator-name = "vdd1p1";
> -					regulator-min-microvolt =
> <800000>;
> -					regulator-max-microvolt =
> <1375000>;
> +					regulator-min-microvolt =
> <1000000>;
> +					regulator-max-microvolt =
> <1200000>; regulator-always-on;
>  					anatop-reg-offset = <0x110>;
>  					anatop-vol-bit-shift = <8>;
> @@ -634,6 +698,7 @@
>  					anatop-min-bit-val = <4>;
>  					anatop-min-voltage =
> <800000>; anatop-max-voltage = <1375000>;
> +					anatop-enable-bit = <0>;
>  				};
>  
>  				regulator-3p0 {
> @@ -648,20 +713,22 @@
>  					anatop-min-bit-val = <0>;
>  					anatop-min-voltage =
> <2625000>; anatop-max-voltage = <3400000>;
> +					anatop-enable-bit = <0>;
>  				};
>  
>  				regulator-2p5 {
>  					compatible =
> "fsl,anatop-regulator"; regulator-name = "vdd2p5";
> -					regulator-min-microvolt =
> <2000000>;
> +					regulator-min-microvolt =
> <2250000>; regulator-max-microvolt = <2750000>;
>  					regulator-always-on;
>  					anatop-reg-offset = <0x130>;
>  					anatop-vol-bit-shift = <8>;
>  					anatop-vol-bit-width = <5>;
>  					anatop-min-bit-val = <0>;
> -					anatop-min-voltage =
> <2000000>;
> -					anatop-max-voltage =
> <2750000>;
> +					anatop-min-voltage =
> <2100000>;
> +					anatop-max-voltage =
> <2875000>;
> +					anatop-enable-bit = <0>;
>  				};
>  
>  				reg_arm: regulator-vddcore {
> @@ -716,15 +783,7 @@
>  				};
>  			};
>  
> -			tempmon: tempmon {
> -				compatible = "fsl,imx6q-tempmon";
> -				interrupts = <0 49
> IRQ_TYPE_LEVEL_HIGH>;
> -				fsl,tempmon = <&anatop>;
> -				fsl,tempmon-data = <&ocotp>;
> -				clocks = <&clks
> IMX6QDL_CLK_PLL3_USB_OTG>;
> -			};
> -
> -			usbphy1: usbphy at 020c9000 {
> +			usbphy1: usbphy at 20c9000 {
>  				compatible = "fsl,imx6q-usbphy",
> "fsl,imx23-usbphy"; reg = <0x020c9000 0x1000>;
>  				interrupts = <0 44
> IRQ_TYPE_LEVEL_HIGH>; @@ -732,7 +791,7 @@
>  				fsl,anatop = <&anatop>;
>  			};
>  
> -			usbphy2: usbphy at 020ca000 {
> +			usbphy2: usbphy at 20ca000 {
>  				compatible = "fsl,imx6q-usbphy",
> "fsl,imx23-usbphy"; reg = <0x020ca000 0x1000>;
>  				interrupts = <0 45
> IRQ_TYPE_LEVEL_HIGH>; @@ -740,7 +799,7 @@
>  				fsl,anatop = <&anatop>;
>  			};
>  
> -			snvs: snvs at 020cc000 {
> +			snvs: snvs at 20cc000 {
>  				compatible = "fsl,sec-v4.0-mon",
> "syscon", "simple-mfd"; reg = <0x020cc000 0x4000>;
>  
> @@ -756,22 +815,27 @@
>  					compatible =
> "syscon-poweroff"; regmap = <&snvs>;
>  					offset = <0x38>;
> +					value = <0x60>;
>  					mask = <0x60>;
>  					status = "disabled";
>  				};
> +
> +				snvs_lpgpr: snvs-lpgpr {
> +					compatible =
> "fsl,imx6q-snvs-lpgpr";
> +				};
>  			};
>  
> -			epit1: epit at 020d0000 { /* EPIT1 */
> +			epit1: epit at 20d0000 { /* EPIT1 */
>  				reg = <0x020d0000 0x4000>;
>  				interrupts = <0 56
> IRQ_TYPE_LEVEL_HIGH>; };
>  
> -			epit2: epit at 020d4000 { /* EPIT2 */
> +			epit2: epit at 20d4000 { /* EPIT2 */
>  				reg = <0x020d4000 0x4000>;
>  				interrupts = <0 57
> IRQ_TYPE_LEVEL_HIGH>; };
>  
> -			src: src at 020d8000 {
> +			src: src at 20d8000 {
>  				compatible = "fsl,imx6q-src",
> "fsl,imx51-src"; reg = <0x020d8000 0x4000>;
>  				interrupts = <0 91
> IRQ_TYPE_LEVEL_HIGH>, @@ -779,7 +843,7 @@
>  				#reset-cells = <1>;
>  			};
>  
> -			gpc: gpc at 020dc000 {
> +			gpc: gpc at 20dc000 {
>  				compatible = "fsl,imx6q-gpc";
>  				reg = <0x020dc000 0x4000>;
>  				interrupt-controller;
> @@ -787,91 +851,57 @@
>  				interrupts = <0 89
> IRQ_TYPE_LEVEL_HIGH>, <0 90 IRQ_TYPE_LEVEL_HIGH>;
>  				interrupt-parent = <&intc>;
> -				pu-supply = <&reg_pu>;
> -				clocks = <&clks
> IMX6QDL_CLK_GPU3D_CORE>,
> -					 <&clks
> IMX6QDL_CLK_GPU3D_SHADER>,
> -					 <&clks
> IMX6QDL_CLK_GPU2D_CORE>,
> -					 <&clks
> IMX6QDL_CLK_GPU2D_AXI>,
> -					 <&clks
> IMX6QDL_CLK_OPENVG_AXI>,
> -					 <&clks IMX6QDL_CLK_VPU_AXI>;
> -				#power-domain-cells = <1>;
> -			};
> -
> -			gpr: iomuxc-gpr at 020e0000 {
> -				compatible = "fsl,imx6q-iomuxc-gpr",
> "syscon";
> -				reg = <0x020e0000 0x38>;
> -			};
> -
> -			iomuxc: iomuxc at 020e0000 {
> -				compatible = "fsl,imx6dl-iomuxc",
> "fsl,imx6q-iomuxc";
> -				reg = <0x020e0000 0x4000>;
> -			};
> -
> -			ldb: ldb at 020e0008 {
> -				#address-cells = <1>;
> -				#size-cells = <0>;
> -				compatible = "fsl,imx6q-ldb",
> "fsl,imx53-ldb";
> -				gpr = <&gpr>;
> -				status = "disabled";
> +				clocks = <&clks IMX6QDL_CLK_IPG>;
> +				clock-names = "ipg";
>  
> -				lvds-channel at 0 {
> +				pgc {
>  					#address-cells = <1>;
>  					#size-cells = <0>;
> -					reg = <0>;
> -					status = "disabled";
>  
> -					port at 0 {
> +					power-domain at 0 {
>  						reg = <0>;
> -
> -						lvds0_mux_0:
> endpoint {
> -
> remote-endpoint = <&ipu1_di0_lvds0>;
> -						};
> +						#power-domain-cells
> = <0>; };
> -
> -					port at 1 {
> +					pd_pu: power-domain at 1 {
>  						reg = <1>;
> -
> -						lvds0_mux_1:
> endpoint {
> -
> remote-endpoint = <&ipu1_di1_lvds0>;
> -						};
> +						#power-domain-cells
> = <0>;
> +						power-supply =
> <&reg_pu>;
> +						clocks = <&clks
> IMX6QDL_CLK_GPU3D_CORE>,
> +						         <&clks
> IMX6QDL_CLK_GPU3D_SHADER>,
> +						         <&clks
> IMX6QDL_CLK_GPU2D_CORE>,
> +						         <&clks
> IMX6QDL_CLK_GPU2D_AXI>,
> +						         <&clks
> IMX6QDL_CLK_OPENVG_AXI>,
> +						         <&clks
> IMX6QDL_CLK_VPU_AXI>; };
>  				};
> +			};
>  
> -				lvds-channel at 1 {
> -					#address-cells = <1>;
> -					#size-cells = <0>;
> -					reg = <1>;
> -					status = "disabled";
> -
> -					port at 0 {
> -						reg = <0>;
> -
> -						lvds1_mux_0:
> endpoint {
> -
> remote-endpoint = <&ipu1_di0_lvds1>;
> -						};
> -					};
> +			gpr: iomuxc-gpr at 20e0000 {
> +				compatible = "fsl,imx6q-iomuxc-gpr",
> "syscon", "simple-mfd";
> +				reg = <0x20e0000 0x38>;
>  
> -					port at 1 {
> -						reg = <1>;
> -
> -						lvds1_mux_1:
> endpoint {
> -
> remote-endpoint = <&ipu1_di1_lvds1>;
> -						};
> -					};
> +				mux: mux-controller {
> +					compatible = "mmio-mux";
> +					#mux-control-cells = <1>;
>  				};
>  			};
>  
> -			dcic1: dcic at 020e4000 {
> +			iomuxc: iomuxc at 20e0000 {
> +				compatible = "fsl,imx6dl-iomuxc",
> "fsl,imx6q-iomuxc";
> +				reg = <0x20e0000 0x4000>;
> +			};
> +
> +			dcic1: dcic at 20e4000 {
>  				reg = <0x020e4000 0x4000>;
>  				interrupts = <0 124
> IRQ_TYPE_LEVEL_HIGH>; };
>  
> -			dcic2: dcic at 020e8000 {
> +			dcic2: dcic at 20e8000 {
>  				reg = <0x020e8000 0x4000>;
>  				interrupts = <0 125
> IRQ_TYPE_LEVEL_HIGH>; };
>  
> -			sdma: sdma at 020ec000 {
> +			sdma: sdma at 20ec000 {
>  				compatible = "fsl,imx6q-sdma",
> "fsl,imx35-sdma"; reg = <0x020ec000 0x4000>;
>  				interrupts = <0 2
> IRQ_TYPE_LEVEL_HIGH>; @@ -883,7 +913,7 @@
>  			};
>  		};
>  
> -		aips-bus at 02100000 { /* AIPS2 */
> +		aips-bus at 2100000 { /* AIPS2 */
>  			compatible = "fsl,aips-bus", "simple-bus";
>  			#address-cells = <1>;
>  			#size-cells = <1>;
> @@ -892,7 +922,6 @@
>  
>  			crypto: caam at 2100000 {
>  				compatible = "fsl,sec-v4.0";
> -				fsl,sec-era = <4>;
>  				#address-cells = <1>;
>  				#size-cells = <1>;
>  				reg = <0x2100000 0x10000>;
> @@ -916,11 +945,11 @@
>  				};
>  			};
>  
> -			aipstz at 0217c000 { /* AIPSTZ2 */
> +			aipstz at 217c000 { /* AIPSTZ2 */
>  				reg = <0x0217c000 0x4000>;
>  			};
>  
> -			usbotg: usb at 02184000 {
> +			usbotg: usb at 2184000 {
>  				compatible = "fsl,imx6q-usb",
> "fsl,imx27-usb"; reg = <0x02184000 0x200>;
>  				interrupts = <0 43
> IRQ_TYPE_LEVEL_HIGH>; @@ -933,7 +962,7 @@
>  				status = "disabled";
>  			};
>  
> -			usbh1: usb at 02184200 {
> +			usbh1: usb at 2184200 {
>  				compatible = "fsl,imx6q-usb",
> "fsl,imx27-usb"; reg = <0x02184200 0x200>;
>  				interrupts = <0 40
> IRQ_TYPE_LEVEL_HIGH>; @@ -947,7 +976,7 @@
>  				status = "disabled";
>  			};
>  
> -			usbh2: usb at 02184400 {
> +			usbh2: usb at 2184400 {
>  				compatible = "fsl,imx6q-usb",
> "fsl,imx27-usb"; reg = <0x02184400 0x200>;
>  				interrupts = <0 41
> IRQ_TYPE_LEVEL_HIGH>; @@ -960,7 +989,7 @@
>  				status = "disabled";
>  			};
>  
> -			usbh3: usb at 02184600 {
> +			usbh3: usb at 2184600 {
>  				compatible = "fsl,imx6q-usb",
> "fsl,imx27-usb"; reg = <0x02184600 0x200>;
>  				interrupts = <0 42
> IRQ_TYPE_LEVEL_HIGH>; @@ -973,16 +1002,17 @@
>  				status = "disabled";
>  			};
>  
> -			usbmisc: usbmisc at 02184800 {
> +			usbmisc: usbmisc at 2184800 {
>  				#index-cells = <1>;
>  				compatible = "fsl,imx6q-usbmisc";
>  				reg = <0x02184800 0x200>;
>  				clocks = <&clks IMX6QDL_CLK_USBOH3>;
>  			};
>  
> -			fec: ethernet at 02188000 {
> +			fec: ethernet at 2188000 {
>  				compatible = "fsl,imx6q-fec";
>  				reg = <0x02188000 0x4000>;
> +				interrupt-names = "int0", "pps";
>  				interrupts-extended =
>  					<&intc 0 118
> IRQ_TYPE_LEVEL_HIGH>, <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
> @@ -993,14 +1023,14 @@
>  				status = "disabled";
>  			};
>  
> -			mlb at 0218c000 {
> +			mlb at 218c000 {
>  				reg = <0x0218c000 0x4000>;
>  				interrupts = <0 53
> IRQ_TYPE_LEVEL_HIGH>, <0 117 IRQ_TYPE_LEVEL_HIGH>,
>  					     <0 126
> IRQ_TYPE_LEVEL_HIGH>; };
>  
> -			usdhc1: usdhc at 02190000 {
> +			usdhc1: usdhc at 2190000 {
>  				compatible = "fsl,imx6q-usdhc";
>  				reg = <0x02190000 0x4000>;
>  				interrupts = <0 22
> IRQ_TYPE_LEVEL_HIGH>; @@ -1012,7 +1042,7 @@
>  				status = "disabled";
>  			};
>  
> -			usdhc2: usdhc at 02194000 {
> +			usdhc2: usdhc at 2194000 {
>  				compatible = "fsl,imx6q-usdhc";
>  				reg = <0x02194000 0x4000>;
>  				interrupts = <0 23
> IRQ_TYPE_LEVEL_HIGH>; @@ -1024,7 +1054,7 @@
>  				status = "disabled";
>  			};
>  
> -			usdhc3: usdhc at 02198000 {
> +			usdhc3: usdhc at 2198000 {
>  				compatible = "fsl,imx6q-usdhc";
>  				reg = <0x02198000 0x4000>;
>  				interrupts = <0 24
> IRQ_TYPE_LEVEL_HIGH>; @@ -1036,7 +1066,7 @@
>  				status = "disabled";
>  			};
>  
> -			usdhc4: usdhc at 0219c000 {
> +			usdhc4: usdhc at 219c000 {
>  				compatible = "fsl,imx6q-usdhc";
>  				reg = <0x0219c000 0x4000>;
>  				interrupts = <0 25
> IRQ_TYPE_LEVEL_HIGH>; @@ -1048,7 +1078,7 @@
>  				status = "disabled";
>  			};
>  
> -			i2c1: i2c at 021a0000 {
> +			i2c1: i2c at 21a0000 {
>  				#address-cells = <1>;
>  				#size-cells = <0>;
>  				compatible = "fsl,imx6q-i2c",
> "fsl,imx21-i2c"; @@ -1058,7 +1088,7 @@
>  				status = "disabled";
>  			};
>  
> -			i2c2: i2c at 021a4000 {
> +			i2c2: i2c at 21a4000 {
>  				#address-cells = <1>;
>  				#size-cells = <0>;
>  				compatible = "fsl,imx6q-i2c",
> "fsl,imx21-i2c"; @@ -1068,7 +1098,7 @@
>  				status = "disabled";
>  			};
>  
> -			i2c3: i2c at 021a8000 {
> +			i2c3: i2c at 21a8000 {
>  				#address-cells = <1>;
>  				#size-cells = <0>;
>  				compatible = "fsl,imx6q-i2c",
> "fsl,imx21-i2c"; @@ -1078,55 +1108,66 @@
>  				status = "disabled";
>  			};
>  
> -			romcp at 021ac000 {
> +			romcp at 21ac000 {
>  				reg = <0x021ac000 0x4000>;
>  			};
>  
> -			mmdc0: mmdc at 021b0000 { /* MMDC0 */
> +			mmdc0: mmdc at 21b0000 { /* MMDC0 */
>  				compatible = "fsl,imx6q-mmdc";
>  				reg = <0x021b0000 0x4000>;
>  			};
>  
> -			mmdc1: mmdc at 021b4000 { /* MMDC1 */
> +			mmdc1: mmdc at 21b4000 { /* MMDC1 */
>  				reg = <0x021b4000 0x4000>;
>  			};
>  
> -			weim: weim at 021b8000 {
> +			weim: weim at 21b8000 {
> +				#address-cells = <2>;
> +				#size-cells = <1>;
>  				compatible = "fsl,imx6q-weim";
>  				reg = <0x021b8000 0x4000>;
>  				interrupts = <0 14
> IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX6QDL_CLK_EIM_SLOW>;
> +				fsl,weim-cs-gpr = <&gpr>;
> +				status = "disabled";
>  			};
>  
> -			ocotp: ocotp at 021bc000 {
> +			ocotp: ocotp at 21bc000 {
>  				compatible = "fsl,imx6q-ocotp",
> "syscon"; reg = <0x021bc000 0x4000>;
>  				clocks = <&clks IMX6QDL_CLK_IIM>;
>  			};
>  
> -			tzasc at 021d0000 { /* TZASC1 */
> +			tzasc at 21d0000 { /* TZASC1 */
>  				reg = <0x021d0000 0x4000>;
>  				interrupts = <0 108
> IRQ_TYPE_LEVEL_HIGH>; };
>  
> -			tzasc at 021d4000 { /* TZASC2 */
> +			tzasc at 21d4000 { /* TZASC2 */
>  				reg = <0x021d4000 0x4000>;
>  				interrupts = <0 109
> IRQ_TYPE_LEVEL_HIGH>; };
>  
> -			audmux: audmux at 021d8000 {
> +			audmux: audmux at 21d8000 {
>  				compatible = "fsl,imx6q-audmux",
> "fsl,imx31-audmux"; reg = <0x021d8000 0x4000>;
>  				status = "disabled";
>  			};
>  
> -			mipi_csi: mipi at 021dc000 {
> +			mipi_csi: mipi at 21dc000 {
> +				compatible = "fsl,imx6-mipi-csi2";
>  				reg = <0x021dc000 0x4000>;
> -			};
> -
> -			mipi_dsi: mipi at 021e0000 {
>  				#address-cells = <1>;
>  				#size-cells = <0>;
> +				interrupts = <0 100 0x04>, <0 101
> 0x04>;
> +				clocks = <&clks IMX6QDL_CLK_HSI_TX>,
> +					 <&clks
> IMX6QDL_CLK_VIDEO_27M>,
> +					 <&clks
> IMX6QDL_CLK_EIM_PODF>;
> +				clock-names = "dphy", "ref", "pix";
> +				status = "disabled";
> +			};
> +
> +			mipi_dsi: mipi at 21e0000 {
>  				reg = <0x021e0000 0x4000>;
>  				status = "disabled";
>  
> @@ -1152,12 +1193,14 @@
>  				};
>  			};
>  
> -			vdoa at 021e4000 {
> +			vdoa at 21e4000 {
> +				compatible = "fsl,imx6q-vdoa";
>  				reg = <0x021e4000 0x4000>;
>  				interrupts = <0 18
> IRQ_TYPE_LEVEL_HIGH>;
> +				clocks = <&clks IMX6QDL_CLK_VDOA>;
>  			};
>  
> -			uart2: serial at 021e8000 {
> +			uart2: serial at 21e8000 {
>  				compatible = "fsl,imx6q-uart",
> "fsl,imx21-uart"; reg = <0x021e8000 0x4000>;
>  				interrupts = <0 27
> IRQ_TYPE_LEVEL_HIGH>; @@ -1169,7 +1212,7 @@
>  				status = "disabled";
>  			};
>  
> -			uart3: serial at 021ec000 {
> +			uart3: serial at 21ec000 {
>  				compatible = "fsl,imx6q-uart",
> "fsl,imx21-uart"; reg = <0x021ec000 0x4000>;
>  				interrupts = <0 28
> IRQ_TYPE_LEVEL_HIGH>; @@ -1181,7 +1224,7 @@
>  				status = "disabled";
>  			};
>  
> -			uart4: serial at 021f0000 {
> +			uart4: serial at 21f0000 {
>  				compatible = "fsl,imx6q-uart",
> "fsl,imx21-uart"; reg = <0x021f0000 0x4000>;
>  				interrupts = <0 29
> IRQ_TYPE_LEVEL_HIGH>; @@ -1193,7 +1236,7 @@
>  				status = "disabled";
>  			};
>  
> -			uart5: serial at 021f4000 {
> +			uart5: serial at 21f4000 {
>  				compatible = "fsl,imx6q-uart",
> "fsl,imx21-uart"; reg = <0x021f4000 0x4000>;
>  				interrupts = <0 30
> IRQ_TYPE_LEVEL_HIGH>; @@ -1206,7 +1249,7 @@
>  			};
>  		};
>  
> -		ipu1: ipu at 02400000 {
> +		ipu1: ipu at 2400000 {
>  			#address-cells = <1>;
>  			#size-cells = <0>;
>  			compatible = "fsl,imx6q-ipu";
> @@ -1221,6 +1264,10 @@
>  
>  			ipu1_csi0: port at 0 {
>  				reg = <0>;
> +
> +				ipu1_csi0_from_ipu1_csi0_mux:
> endpoint {
> +					remote-endpoint =
> <&ipu1_csi0_mux_to_ipu1_csi0>;
> +				};
>  			};
>  
>  			ipu1_csi1: port at 1 {
> @@ -1232,22 +1279,27 @@
>  				#size-cells = <0>;
>  				reg = <2>;
>  
> -				ipu1_di0_disp0: disp0-endpoint {
> +				ipu1_di0_disp0: endpoint at 0 {
> +					reg = <0>;
>  				};
>  
> -				ipu1_di0_hdmi: hdmi-endpoint {
> +				ipu1_di0_hdmi: endpoint at 1 {
> +					reg = <1>;
>  					remote-endpoint =
> <&hdmi_mux_0>; };
>  
> -				ipu1_di0_mipi: mipi-endpoint {
> +				ipu1_di0_mipi: endpoint at 2 {
> +					reg = <2>;
>  					remote-endpoint =
> <&mipi_mux_0>; };
>  
> -				ipu1_di0_lvds0: lvds0-endpoint {
> +				ipu1_di0_lvds0: endpoint at 3 {
> +					reg = <3>;
>  					remote-endpoint =
> <&lvds0_mux_0>; };
>  
> -				ipu1_di0_lvds1: lvds1-endpoint {
> +				ipu1_di0_lvds1: endpoint at 4 {
> +					reg = <4>;
>  					remote-endpoint =
> <&lvds1_mux_0>; };
>  			};
> @@ -1257,22 +1309,27 @@
>  				#size-cells = <0>;
>  				reg = <3>;
>  
> -				ipu1_di1_disp1: disp1-endpoint {
> +				ipu1_di1_disp1: endpoint at 0 {
> +					reg = <0>;
>  				};
>  
> -				ipu1_di1_hdmi: hdmi-endpoint {
> +				ipu1_di1_hdmi: endpoint at 1 {
> +					reg = <1>;
>  					remote-endpoint =
> <&hdmi_mux_1>; };
>  
> -				ipu1_di1_mipi: mipi-endpoint {
> +				ipu1_di1_mipi: endpoint at 2 {
> +					reg = <2>;
>  					remote-endpoint =
> <&mipi_mux_1>; };
>  
> -				ipu1_di1_lvds0: lvds0-endpoint {
> +				ipu1_di1_lvds0: endpoint at 3 {
> +					reg = <3>;
>  					remote-endpoint =
> <&lvds0_mux_1>; };
>  
> -				ipu1_di1_lvds1: lvds1-endpoint {
> +				ipu1_di1_lvds1: endpoint at 4 {
> +					reg = <4>;
>  					remote-endpoint =
> <&lvds1_mux_1>; };
>  			};
> diff --git a/arch/arm/dts/imx6qp-sabreauto.dts
> b/arch/arm/dts/imx6qp-sabreauto.dts new file mode 100644
> index 0000000..d4caeeb
> --- /dev/null
> +++ b/arch/arm/dts/imx6qp-sabreauto.dts
> @@ -0,0 +1,55 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR MIT
> +//
> +// Copyright 2016 Freescale Semiconductor, Inc.
> +
> +/dts-v1/;
> +
> +#include "imx6qp.dtsi"
> +#include "imx6qdl-sabreauto.dtsi"
> +
> +/ {
> +	model = "Freescale i.MX6 Quad Plus SABRE Automotive Board";
> +	compatible = "fsl,imx6qp-sabreauto", "fsl,imx6qp";
> +};
> +
> +&i2c2 {
> +	max7322: gpio at 68 {
> +		compatible = "maxim,max7322";
> +		reg = <0x68>;
> +		gpio-controller;
> +		#gpio-cells = <2>;
> +	};
> +};
> +
> +&iomuxc {
> +	imx6qdl-sabreauto {
> +		pinctrl_enet: enetgrp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_KEY_COL1__ENET_MDIO          0x1b0b0
> +
> MX6QDL_PAD_KEY_COL2__ENET_MDC           0x1b0b0
> +
> MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b018
> +
> MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b018
> +
> MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b018
> +
> MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b018
> +
> MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b018
> +
> MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b018
> +
> MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b018
> +
> MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b018
> +
> MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b018
> +
> MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b018
> +
> MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b018
> +
> MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b018
> +
> MX6QDL_PAD_GPIO_16__ENET_REF_CLK        0x4001b0a8
> +
> MX6QDL_PAD_GPIO_6__ENET_IRQ		0x000b1
> +			>;
> +		};
> +	};
> +};
> +
> +&pcie {
> +	status = "disabled";
> +};
> +
> +&vgen3_reg {
> +	regulator-always-on;
> +};
> diff --git a/arch/arm/dts/imx6qp-sabresd.dts
> b/arch/arm/dts/imx6qp-sabresd.dts new file mode 100644
> index 0000000..f1b9cb1
> --- /dev/null
> +++ b/arch/arm/dts/imx6qp-sabresd.dts
> @@ -0,0 +1,55 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR MIT
> +//
> +// Copyright 2016 Freescale Semiconductor, Inc.
> +
> +/dts-v1/;
> +
> +#include "imx6qp.dtsi"
> +#include "imx6qdl-sabresd.dtsi"
> +
> +/ {
> +	model = "Freescale i.MX6 Quad Plus SABRE Smart Device Board";
> +	compatible = "fsl,imx6qp-sabresd", "fsl,imx6qp";
> +};
> +
> +&reg_arm {
> +	vin-supply = <&sw2_reg>;
> +};
> +
> +&iomuxc {
> +	imx6qdl-sabresd {
> +		pinctrl_usdhc2: usdhc2grp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_SD2_CMD__SD2_CMD		0x17059
> +
> MX6QDL_PAD_SD2_CLK__SD2_CLK		0x10071
> +
> MX6QDL_PAD_SD2_DAT0__SD2_DATA0		0x17059
> +
> MX6QDL_PAD_SD2_DAT1__SD2_DATA1		0x17059
> +
> MX6QDL_PAD_SD2_DAT2__SD2_DATA2		0x17059
> +
> MX6QDL_PAD_SD2_DAT3__SD2_DATA3		0x17059
> +
> MX6QDL_PAD_NANDF_D4__SD2_DATA4		0x17059
> +
> MX6QDL_PAD_NANDF_D5__SD2_DATA5		0x17059
> +
> MX6QDL_PAD_NANDF_D6__SD2_DATA6		0x17059
> +
> MX6QDL_PAD_NANDF_D7__SD2_DATA7		0x17059
> +			>;
> +		};
> +
> +		pinctrl_usdhc3: usdhc3grp {
> +			fsl,pins = <
> +
> MX6QDL_PAD_SD3_CMD__SD3_CMD		0x17059
> +
> MX6QDL_PAD_SD3_CLK__SD3_CLK		0x10071
> +
> MX6QDL_PAD_SD3_DAT0__SD3_DATA0		0x17059
> +
> MX6QDL_PAD_SD3_DAT1__SD3_DATA1		0x17059
> +
> MX6QDL_PAD_SD3_DAT2__SD3_DATA2		0x17059
> +
> MX6QDL_PAD_SD3_DAT3__SD3_DATA3		0x17059
> +
> MX6QDL_PAD_SD3_DAT4__SD3_DATA4		0x17059
> +
> MX6QDL_PAD_SD3_DAT5__SD3_DATA5		0x17059
> +
> MX6QDL_PAD_SD3_DAT6__SD3_DATA6		0x17059
> +
> MX6QDL_PAD_SD3_DAT7__SD3_DATA7		0x17059
> +			>;
> +		};
> +	};
> +};
> +
> +&pcie {
> +	status = "disabled";
> +};
> diff --git a/arch/arm/dts/imx6qp.dtsi b/arch/arm/dts/imx6qp.dtsi
> new file mode 100644
> index 0000000..5f51f8e
> --- /dev/null
> +++ b/arch/arm/dts/imx6qp.dtsi
> @@ -0,0 +1,115 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR MIT
> +//
> +// Copyright 2016 Freescale Semiconductor, Inc.
> +
> +#include "imx6q.dtsi"
> +
> +/ {
> +	soc {
> +		ocram2: sram at 940000 {
> +			compatible = "mmio-sram";
> +			reg = <0x00940000 0x20000>;
> +			clocks = <&clks IMX6QDL_CLK_OCRAM>;
> +		};
> +
> +		ocram3: sram at 960000 {
> +			compatible = "mmio-sram";
> +			reg = <0x00960000 0x20000>;
> +			clocks = <&clks IMX6QDL_CLK_OCRAM>;
> +		};
> +
> +		aips-bus at 2100000 {
> +			pre1: pre at 21c8000 {
> +				compatible = "fsl,imx6qp-pre";
> +				reg = <0x021c8000 0x1000>;
> +				interrupts = <GIC_SPI 90
> IRQ_TYPE_EDGE_RISING>;
> +				clocks = <&clks IMX6QDL_CLK_PRE0>;
> +				clock-names = "axi";
> +				fsl,iram = <&ocram2>;
> +			};
> +
> +			pre2: pre at 21c9000 {
> +				compatible = "fsl,imx6qp-pre";
> +				reg = <0x021c9000 0x1000>;
> +				interrupts = <GIC_SPI 97
> IRQ_TYPE_EDGE_RISING>;
> +				clocks = <&clks IMX6QDL_CLK_PRE1>;
> +				clock-names = "axi";
> +				fsl,iram = <&ocram2>;
> +			};
> +
> +			pre3: pre at 21ca000 {
> +				compatible = "fsl,imx6qp-pre";
> +				reg = <0x021ca000 0x1000>;
> +				interrupts = <GIC_SPI 98
> IRQ_TYPE_EDGE_RISING>;
> +				clocks = <&clks IMX6QDL_CLK_PRE2>;
> +				clock-names = "axi";
> +				fsl,iram = <&ocram3>;
> +			};
> +
> +			pre4: pre at 21cb000 {
> +				compatible = "fsl,imx6qp-pre";
> +				reg = <0x021cb000 0x1000>;
> +				interrupts = <GIC_SPI 99
> IRQ_TYPE_EDGE_RISING>;
> +				clocks = <&clks IMX6QDL_CLK_PRE3>;
> +				clock-names = "axi";
> +				fsl,iram = <&ocram3>;
> +			};
> +
> +			prg1: prg at 21cc000 {
> +				compatible = "fsl,imx6qp-prg";
> +				reg = <0x021cc000 0x1000>;
> +				clocks = <&clks
> IMX6QDL_CLK_PRG0_APB>,
> +					 <&clks
> IMX6QDL_CLK_PRG0_AXI>;
> +				clock-names = "ipg", "axi";
> +				fsl,pres = <&pre1>, <&pre2>, <&pre3>;
> +			};
> +
> +			prg2: prg at 21cd000 {
> +				compatible = "fsl,imx6qp-prg";
> +				reg = <0x021cd000 0x1000>;
> +				clocks = <&clks
> IMX6QDL_CLK_PRG1_APB>,
> +					 <&clks
> IMX6QDL_CLK_PRG1_AXI>;
> +				clock-names = "ipg", "axi";
> +				fsl,pres = <&pre4>, <&pre2>, <&pre3>;
> +			};
> +		};
> +	};
> +};
> +
> +&fec {
> +	/delete-property/interrupts-extended;
> +	interrupts = <0 118 IRQ_TYPE_LEVEL_HIGH>,
> +		     <0 119 IRQ_TYPE_LEVEL_HIGH>;
> +};
> +
> +&gpc {
> +	compatible = "fsl,imx6qp-gpc", "fsl,imx6q-gpc";
> +};
> +
> +&ipu1 {
> +	compatible = "fsl,imx6qp-ipu", "fsl,imx6q-ipu";
> +	fsl,prg = <&prg1>;
> +};
> +
> +&ipu2 {
> +	compatible = "fsl,imx6qp-ipu", "fsl,imx6q-ipu";
> +	fsl,prg = <&prg2>;
> +};
> +
> +&ldb {
> +	clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>, <&clks
> IMX6QDL_CLK_LDB_DI1_SEL>,
> +		 <&clks IMX6QDL_CLK_IPU1_DI0_SEL>, <&clks
> IMX6QDL_CLK_IPU1_DI1_SEL>,
> +		 <&clks IMX6QDL_CLK_IPU2_DI0_SEL>, <&clks
> IMX6QDL_CLK_IPU2_DI1_SEL>,
> +		 <&clks IMX6QDL_CLK_LDB_DI0_PODF>, <&clks
> IMX6QDL_CLK_LDB_DI1_PODF>;
> +	clock-names = "di0_pll", "di1_pll",
> +		      "di0_sel", "di1_sel", "di2_sel", "di3_sel",
> +		      "di0", "di1";
> +};
> +
> +&mmdc0 {
> +	compatible = "fsl,imx6qp-mmdc", "fsl,imx6q-mmdc";
> +};
> +
> +&pcie {
> +	compatible = "fsl,imx6qp-pcie", "snps,dw-pcie";
> +};




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190202/88467f01/attachment.sig>

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

* [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support
  2019-02-02  9:50 ` Fabio Estevam
@ 2019-02-04  9:55   ` Abel Vesa
  2019-02-04 11:03     ` Fabio Estevam
  0 siblings, 1 reply; 654+ messages in thread
From: Abel Vesa @ 2019-02-04  9:55 UTC (permalink / raw)
  To: u-boot

On 19-02-02 07:50:28, Fabio Estevam wrote:
> Hi Abel,
> 
> On Fri, Feb 1, 2019 at 2:43 PM Abel Vesa <abel.vesa@nxp.com> wrote:
> >
> > The third version is here:
> > https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.denx.de%2Fpipermail%2Fu-boot%2F2019-January%2F356903.html&amp;data=02%7C01%7Cabel.vesa%40nxp.com%7Ca93c33315b5b492ca15308d688f3e275%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C636846978387908349&amp;sdata=wQrrLoMyouM5vdUlfXI325wqZYt4tTa5WTRJsgwMEz0%3D&amp;reserved=0
> >
> > So, this time I hope I got it right. Before, I was stupidly trying
> > to put a fit in another fit without a really good reason. To my
> > excuse, that was working even with the spl_image->os set to 0,
> > bug which I (hope) I fixed in the first patch (a new one)
> > of this series.
> 
> I am happy with the entire series.
> 
> One more question: do we get build error when the SPL gets larger than 64kB?

If the SPL size (without the dtb appended) is larger then yes, the build fails.
Trouble is if the SPL (without the dtb appended) is, lets say, 63kB and
then the dtb is larger than 1kB. Then there is no mechanism in place to check that
and it will just fail to boot without giving any clues why. But this is a totally
unrelated problem from this patchset's point of view and I think it impacts all
the platforms that support SPL with DM.

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

* [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support
  2019-02-04  9:55   ` Abel Vesa
@ 2019-02-04 11:03     ` Fabio Estevam
  2019-02-04 13:19       ` Tom Rini
  0 siblings, 1 reply; 654+ messages in thread
From: Fabio Estevam @ 2019-02-04 11:03 UTC (permalink / raw)
  To: u-boot

On Mon, Feb 4, 2019 at 7:55 AM Abel Vesa <abel.vesa@nxp.com> wrote:

> If the SPL size (without the dtb appended) is larger then yes, the build fails.
> Trouble is if the SPL (without the dtb appended) is, lets say, 63kB and
> then the dtb is larger than 1kB. Then there is no mechanism in place to check that
> and it will just fail to boot without giving any clues why. But this is a totally
> unrelated problem from this patchset's point of view and I think it impacts all
> the platforms that support SPL with DM.

Yes, it is unrelated to this series and should be treated separately.

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

* [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support
  2019-02-04 11:03     ` Fabio Estevam
@ 2019-02-04 13:19       ` Tom Rini
  2019-02-04 15:15         ` Abel Vesa
  2019-02-09 22:48         ` Abel Vesa
  0 siblings, 2 replies; 654+ messages in thread
From: Tom Rini @ 2019-02-04 13:19 UTC (permalink / raw)
  To: u-boot

On Mon, Feb 04, 2019 at 09:03:43AM -0200, Fabio Estevam wrote:
> On Mon, Feb 4, 2019 at 7:55 AM Abel Vesa <abel.vesa@nxp.com> wrote:
> 
> > If the SPL size (without the dtb appended) is larger then yes, the build fails.
> > Trouble is if the SPL (without the dtb appended) is, lets say, 63kB and
> > then the dtb is larger than 1kB. Then there is no mechanism in place to check that
> > and it will just fail to boot without giving any clues why. But this is a totally
> > unrelated problem from this patchset's point of view and I think it impacts all
> > the platforms that support SPL with DM.
> 
> Yes, it is unrelated to this series and should be treated separately.

I also agree.  But, don't we have a mechanism for that?  It sounds like
some additional targets need to call $(BOARD_SIZE_CHECK) at the end.  Or
am I missing something?

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190204/5baa9361/attachment.sig>

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

* [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support
  2019-02-04 13:19       ` Tom Rini
@ 2019-02-04 15:15         ` Abel Vesa
  2019-02-04 15:21           ` Simon Goldschmidt
  2019-02-09 22:48         ` Abel Vesa
  1 sibling, 1 reply; 654+ messages in thread
From: Abel Vesa @ 2019-02-04 15:15 UTC (permalink / raw)
  To: u-boot

On 19-02-04 08:19:23, Tom Rini wrote:
> On Mon, Feb 04, 2019 at 09:03:43AM -0200, Fabio Estevam wrote:
> > On Mon, Feb 4, 2019 at 7:55 AM Abel Vesa <abel.vesa@nxp.com> wrote:
> > 
> > > If the SPL size (without the dtb appended) is larger then yes, the build fails.
> > > Trouble is if the SPL (without the dtb appended) is, lets say, 63kB and
> > > then the dtb is larger than 1kB. Then there is no mechanism in place to check that
> > > and it will just fail to boot without giving any clues why. But this is a totally
> > > unrelated problem from this patchset's point of view and I think it impacts all
> > > the platforms that support SPL with DM.
> > 
> > Yes, it is unrelated to this series and should be treated separately.
> 
> I also agree.  But, don't we have a mechanism for that?  It sounds like
> some additional targets need to call $(BOARD_SIZE_CHECK) at the end.  Or
> am I missing something?
> 

Hmm, I believe that is true. I haven't looked deeper into it but it seems
that's the thing the SPL is missing.

> -- 
> Tom

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

* [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support
  2019-02-04 15:15         ` Abel Vesa
@ 2019-02-04 15:21           ` Simon Goldschmidt
  2019-02-04 15:30             ` Tom Rini
  0 siblings, 1 reply; 654+ messages in thread
From: Simon Goldschmidt @ 2019-02-04 15:21 UTC (permalink / raw)
  To: u-boot

Am Mo., 4. Feb. 2019, 16:16 hat Abel Vesa <abel.vesa@nxp.com> geschrieben:

> On 19-02-04 08:19:23, Tom Rini wrote:
> > On Mon, Feb 04, 2019 at 09:03:43AM -0200, Fabio Estevam wrote:
> > > On Mon, Feb 4, 2019 at 7:55 AM Abel Vesa <abel.vesa@nxp.com> wrote:
> > >
> > > > If the SPL size (without the dtb appended) is larger then yes, the
> build fails.
> > > > Trouble is if the SPL (without the dtb appended) is, lets say, 63kB
> and
> > > > then the dtb is larger than 1kB. Then there is no mechanism in place
> to check that
> > > > and it will just fail to boot without giving any clues why. But this
> is a totally
> > > > unrelated problem from this patchset's point of view and I think it
> impacts all
> > > > the platforms that support SPL with DM.
> > >
> > > Yes, it is unrelated to this series and should be treated separately.
> >
> > I also agree.  But, don't we have a mechanism for that?  It sounds like
> > some additional targets need to call $(BOARD_SIZE_CHECK) at the end.  Or
> > am I missing something?
> >
>
> Hmm, I believe that is true. I haven't looked deeper into it but it seems
> that's the thing the SPL is missing.


Haven't we talked about that just some days or weeks ago? That's exactly
what I am missing for socfpga. I keep getting broken SPL images when adding
functionality. And you don't even get an error message because the dtb is
broken and cannot provide the serial output mode...

Regards,
Simon

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

* [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support
  2019-02-04 15:21           ` Simon Goldschmidt
@ 2019-02-04 15:30             ` Tom Rini
  0 siblings, 0 replies; 654+ messages in thread
From: Tom Rini @ 2019-02-04 15:30 UTC (permalink / raw)
  To: u-boot

On Mon, Feb 04, 2019 at 04:21:37PM +0100, Simon Goldschmidt wrote:
> Am Mo., 4. Feb. 2019, 16:16 hat Abel Vesa <abel.vesa@nxp.com> geschrieben:
> 
> > On 19-02-04 08:19:23, Tom Rini wrote:
> > > On Mon, Feb 04, 2019 at 09:03:43AM -0200, Fabio Estevam wrote:
> > > > On Mon, Feb 4, 2019 at 7:55 AM Abel Vesa <abel.vesa@nxp.com> wrote:
> > > >
> > > > > If the SPL size (without the dtb appended) is larger then yes, the
> > build fails.
> > > > > Trouble is if the SPL (without the dtb appended) is, lets say, 63kB
> > and
> > > > > then the dtb is larger than 1kB. Then there is no mechanism in place
> > to check that
> > > > > and it will just fail to boot without giving any clues why. But this
> > is a totally
> > > > > unrelated problem from this patchset's point of view and I think it
> > impacts all
> > > > > the platforms that support SPL with DM.
> > > >
> > > > Yes, it is unrelated to this series and should be treated separately.
> > >
> > > I also agree.  But, don't we have a mechanism for that?  It sounds like
> > > some additional targets need to call $(BOARD_SIZE_CHECK) at the end.  Or
> > > am I missing something?
> > >
> >
> > Hmm, I believe that is true. I haven't looked deeper into it but it seems
> > that's the thing the SPL is missing.
> 
> 
> Haven't we talked about that just some days or weeks ago? That's exactly
> what I am missing for socfpga. I keep getting broken SPL images when adding
> functionality. And you don't even get an error message because the dtb is
> broken and cannot provide the serial output mode...

Yes, I believe it is.  I guess what I'm waiting / hoping for is someone
to patch the top-level Makefile to call $(BOARD_SIZE_CHECK) on a number
of make targets that look reasonable, throw it at travis and see what if
anything fails (and if stuff fails, ask for help to see if it's right or
investigate a bit more).  More or less, if it's a final target for
U-Boot, we should probably give BOARD_SIZE_CHECK a try.  Most of the
rules start with u-boot, but I bet the %.imx target should also do it,
and then we can drop all of that from arch/arm/mach-imx/Makefile.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190204/e880d7c4/attachment.sig>

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

* [U-Boot] [PATCH v2 00/23] apalis imx6 fixes, device tree enablement and driver model conversion
@ 2019-02-08 17:12 Marcel Ziswiler
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 01/23] apalis_imx6: get rid of obsolete nospl configurations Marcel Ziswiler
                   ` (22 more replies)
  0 siblings, 23 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:12 UTC (permalink / raw)
  To: u-boot


This series addresses some shortcomings, enables/introduces device tree
support and converts all except video to using the driver model. This is
fully tested both running our latest downstream BSP as well as the
mainline Linux kernel.

Changes in v2:
- Remove spurious mentioning of DFU MMC both in subject as well as
  description.
- Use GPL-2.0+ OR X11 instead of GPL-2.0 OR MIT to be more consistent
  with all our other device trees.
- Further comments and white-space clean-up.
- Also add SION bit for Apalis, backlight, eMMC reset and Ethernet PHY
  reset GPIOs.
- Also request MMC/SD CD and USB power GPIOs.
- Clean-up and re-order includes.
- White-space clean-up.
- Also update copyright year in PMIC header file.
- And drop compiler.h include.
- Remove Colibri iMX6 change which inadvertently slipped in here.
- Also fix device tree naming for MMC DFU.

Gerard Salvatella (1):
  board: apalis_imx6: check for and report ecc errors in fuses

Marcel Ziswiler (16):
  apalis_imx6: get rid of obsolete nospl configurations
  apalis_imx6: use distro defaults
  apalis_imx6: move console in env from header file to defconfig
  apalis_imx6: enable fit image, gpt, imx thermal, efi loader support
  apalis_imx6: remove obsolete USB_GADGET_MASS_STORAGE configuration
  apalis_imx6: migrate to using device tree
  apalis_imx6: clean-up and migrate gpios to using driver model
  apalis_imx6: enable pin control driver
  apalis_imx6: migrate i2c to using driver model
  apalis_imx6: migrate pmic and regulator to using driver model
  apalis_imx6: migrate mmc and sata to using driver model
  apalis_imx6: migrate usb to using driver model
  apalis_imx6: drop CONFIG_OF_SYSTEM_SETUP
  apalis_imx6: add distroboot support
  apalis_imx6: pf0100: reorder and cleanup message printing
  apalis_imx6: switch to zimage

Max Krummenacher (4):
  apalis_imx6: use both sd/mmc interfaces for setsdupdate
  apalis_imx6: unify sd/mmc drive strength with linux kernel settings
  apalis_imx6: disable ri and dcd irq in uarts
  apalis_imx6: revert fuse value set in mfgr_fuse

Sanchayan Maity (1):
  configs: apalis_imx6: Use ext4 file system by default

Stefan Agner (1):
  apalis_imx6: use SDP if USB serial downloader has been used

 arch/arm/dts/imx6-apalis.dts                  | 730 ++++++++++++++++++
 .../toradex/apalis_imx6/1066mhz_4x128mx16.cfg |  47 --
 .../toradex/apalis_imx6/1066mhz_4x256mx16.cfg |  47 --
 board/toradex/apalis_imx6/MAINTAINERS         |   4 +-
 board/toradex/apalis_imx6/apalis_imx6.c       | 341 ++++----
 board/toradex/apalis_imx6/apalis_imx6q.cfg    |  33 -
 board/toradex/apalis_imx6/clocks.cfg          |  41 -
 board/toradex/apalis_imx6/ddr-setup.cfg       |  96 ---
 board/toradex/apalis_imx6/do_fuse.c           |   2 +-
 board/toradex/apalis_imx6/pf0100.c            | 206 +++--
 board/toradex/apalis_imx6/pf0100.h            |  59 +-
 configs/apalis_imx6_defconfig                 |  35 +-
 configs/apalis_imx6_nospl_com_defconfig       |  65 --
 configs/apalis_imx6_nospl_it_defconfig        |  65 --
 include/configs/apalis_imx6.h                 |  83 +-
 15 files changed, 1119 insertions(+), 735 deletions(-)
 create mode 100644 arch/arm/dts/imx6-apalis.dts
 delete mode 100644 board/toradex/apalis_imx6/1066mhz_4x128mx16.cfg
 delete mode 100644 board/toradex/apalis_imx6/1066mhz_4x256mx16.cfg
 delete mode 100644 board/toradex/apalis_imx6/apalis_imx6q.cfg
 delete mode 100644 board/toradex/apalis_imx6/clocks.cfg
 delete mode 100644 board/toradex/apalis_imx6/ddr-setup.cfg
 delete mode 100644 configs/apalis_imx6_nospl_com_defconfig
 delete mode 100644 configs/apalis_imx6_nospl_it_defconfig

-- 
2.20.1

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

* [U-Boot] [PATCH v2 01/23] apalis_imx6: get rid of obsolete nospl configurations
  2019-02-08 17:12 [U-Boot] [PATCH v2 00/23] apalis imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
@ 2019-02-08 17:12 ` Marcel Ziswiler
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 02/23] apalis_imx6: use distro defaults Marcel Ziswiler
                   ` (21 subsequent siblings)
  22 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:12 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Now with SPL long since being in place even for recovery using SDP
finally get rid of those nospl configurations.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2: None

 .../toradex/apalis_imx6/1066mhz_4x128mx16.cfg | 47 ---------
 .../toradex/apalis_imx6/1066mhz_4x256mx16.cfg | 47 ---------
 board/toradex/apalis_imx6/MAINTAINERS         |  2 -
 board/toradex/apalis_imx6/apalis_imx6q.cfg    | 33 -------
 board/toradex/apalis_imx6/clocks.cfg          | 41 --------
 board/toradex/apalis_imx6/ddr-setup.cfg       | 96 -------------------
 configs/apalis_imx6_nospl_com_defconfig       | 65 -------------
 configs/apalis_imx6_nospl_it_defconfig        | 65 -------------
 8 files changed, 396 deletions(-)
 delete mode 100644 board/toradex/apalis_imx6/1066mhz_4x128mx16.cfg
 delete mode 100644 board/toradex/apalis_imx6/1066mhz_4x256mx16.cfg
 delete mode 100644 board/toradex/apalis_imx6/apalis_imx6q.cfg
 delete mode 100644 board/toradex/apalis_imx6/clocks.cfg
 delete mode 100644 board/toradex/apalis_imx6/ddr-setup.cfg
 delete mode 100644 configs/apalis_imx6_nospl_com_defconfig
 delete mode 100644 configs/apalis_imx6_nospl_it_defconfig

diff --git a/board/toradex/apalis_imx6/1066mhz_4x128mx16.cfg b/board/toradex/apalis_imx6/1066mhz_4x128mx16.cfg
deleted file mode 100644
index 29d1c3126c..0000000000
--- a/board/toradex/apalis_imx6/1066mhz_4x128mx16.cfg
+++ /dev/null
@@ -1,47 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
-/*
- * Copyright (C) 2013 Boundary Devices
- * Copyright (C) 2014-2016 Toradex AG
- */
-
-DATA 4, MX6_MMDC_P0_MDPDC, 0x00020036
-DATA 4, MX6_MMDC_P0_MDCFG0, 0x555A7954
-DATA 4, MX6_MMDC_P0_MDCFG1, 0xDB328F64
-DATA 4, MX6_MMDC_P0_MDCFG2, 0x01FF00DB
-DATA 4, MX6_MMDC_P0_MDRWD, 0x000026D2
-DATA 4, MX6_MMDC_P0_MDOR, 0x005A1023
-DATA 4, MX6_MMDC_P0_MDOTC, 0x09555050
-DATA 4, MX6_MMDC_P0_MDPDC, 0x00025576
-DATA 4, MX6_MMDC_P0_MDASP, 0x00000027
-DATA 4, MX6_MMDC_P0_MDCTL, 0x831A0000
-DATA 4, MX6_MMDC_P0_MDSCR, 0x04088032
-DATA 4, MX6_MMDC_P0_MDSCR, 0x00008033
-DATA 4, MX6_MMDC_P0_MDSCR, 0x00428031
-DATA 4, MX6_MMDC_P0_MDSCR, 0x19308030
-DATA 4, MX6_MMDC_P0_MDSCR, 0x04008040
-DATA 4, MX6_MMDC_P0_MPZQHWCTRL, 0xA1390003
-DATA 4, MX6_MMDC_P1_MPZQHWCTRL, 0xA1390003
-DATA 4, MX6_MMDC_P0_MDREF, 0x00005800
-DATA 4, MX6_MMDC_P0_MPODTCTRL, 0x00000000
-DATA 4, MX6_MMDC_P1_MPODTCTRL, 0x00000000
-
-DATA 4, MX6_MMDC_P0_MPDGCTRL0, 0x432A0338
-DATA 4, MX6_MMDC_P0_MPDGCTRL1, 0x03260324
-DATA 4, MX6_MMDC_P1_MPDGCTRL0, 0x43340344
-DATA 4, MX6_MMDC_P1_MPDGCTRL1, 0x031E027C
-
-DATA 4, MX6_MMDC_P0_MPRDDLCTL, 0x33272D2E
-DATA 4, MX6_MMDC_P1_MPRDDLCTL, 0x2F312B37
-
-DATA 4, MX6_MMDC_P0_MPWRDLCTL, 0x3A35433C
-DATA 4, MX6_MMDC_P1_MPWRDLCTL, 0x4336453F
-
-DATA 4, MX6_MMDC_P0_MPWLDECTRL0, 0x0009000E
-DATA 4, MX6_MMDC_P0_MPWLDECTRL1, 0x0018000B
-DATA 4, MX6_MMDC_P1_MPWLDECTRL0, 0x00060015
-DATA 4, MX6_MMDC_P1_MPWLDECTRL1, 0x0006000E
-
-DATA 4, MX6_MMDC_P0_MPMUR0, 0x00000800
-DATA 4, MX6_MMDC_P1_MPMUR0, 0x00000800
-DATA 4, MX6_MMDC_P0_MDSCR, 0x00000000
-DATA 4, MX6_MMDC_P0_MAPSR, 0x00011006
diff --git a/board/toradex/apalis_imx6/1066mhz_4x256mx16.cfg b/board/toradex/apalis_imx6/1066mhz_4x256mx16.cfg
deleted file mode 100644
index 02e90dd5e6..0000000000
--- a/board/toradex/apalis_imx6/1066mhz_4x256mx16.cfg
+++ /dev/null
@@ -1,47 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
-/*
- * Copyright (C) 2013 Boundary Devices
- * Copyright (C) 2014-2016 Toradex AG
- */
-
-DATA 4, MX6_MMDC_P0_MDPDC, 0x00020036
-DATA 4, MX6_MMDC_P0_MDCFG0, 0x898E78f5
-DATA 4, MX6_MMDC_P0_MDCFG1, 0xff328f64
-DATA 4, MX6_MMDC_P0_MDCFG2, 0x01FF00DB
-DATA 4, MX6_MMDC_P0_MDRWD, 0x000026D2
-DATA 4, MX6_MMDC_P0_MDOR, 0x008E1023
-DATA 4, MX6_MMDC_P0_MDOTC, 0x09444040
-DATA 4, MX6_MMDC_P0_MDPDC, 0x00025576
-DATA 4, MX6_MMDC_P0_MDASP, 0x00000047
-DATA 4, MX6_MMDC_P0_MDCTL, 0x841A0000
-DATA 4, MX6_MMDC_P0_MDSCR, 0x02888032
-DATA 4, MX6_MMDC_P0_MDSCR, 0x00008033
-DATA 4, MX6_MMDC_P0_MDSCR, 0x00048031
-DATA 4, MX6_MMDC_P0_MDSCR, 0x19408030
-DATA 4, MX6_MMDC_P0_MDSCR, 0x04008040
-DATA 4, MX6_MMDC_P0_MPZQHWCTRL, 0xA1390003
-DATA 4, MX6_MMDC_P1_MPZQHWCTRL, 0xA1390003
-DATA 4, MX6_MMDC_P0_MDREF, 0x00007800
-DATA 4, MX6_MMDC_P0_MPODTCTRL, 0x00022227
-DATA 4, MX6_MMDC_P1_MPODTCTRL, 0x00022227
-
-DATA 4, MX6_MMDC_P0_MPDGCTRL0, 0x03300338
-DATA 4, MX6_MMDC_P0_MPDGCTRL1, 0x03240324
-DATA 4, MX6_MMDC_P1_MPDGCTRL0, 0x03440350
-DATA 4, MX6_MMDC_P1_MPDGCTRL1, 0x032C0308
-
-DATA 4, MX6_MMDC_P0_MPRDDLCTL, 0x40363C3E
-DATA 4, MX6_MMDC_P1_MPRDDLCTL, 0x3C3E3C46
-
-DATA 4, MX6_MMDC_P0_MPWRDLCTL, 0x403E463E
-DATA 4, MX6_MMDC_P1_MPWRDLCTL, 0x4A384C46
-
-DATA 4, MX6_MMDC_P0_MPWLDECTRL0, 0x0009000E
-DATA 4, MX6_MMDC_P0_MPWLDECTRL1, 0x0018000B
-DATA 4, MX6_MMDC_P1_MPWLDECTRL0, 0x00060015
-DATA 4, MX6_MMDC_P1_MPWLDECTRL1, 0x0006000E
-
-DATA 4, MX6_MMDC_P0_MPMUR0, 0x00000800
-DATA 4, MX6_MMDC_P1_MPMUR0, 0x00000800
-DATA 4, MX6_MMDC_P0_MDSCR, 0x00000000
-DATA 4, MX6_MMDC_P0_MAPSR, 0x00011006
diff --git a/board/toradex/apalis_imx6/MAINTAINERS b/board/toradex/apalis_imx6/MAINTAINERS
index 2c70ab4fbd..a5d2c84956 100644
--- a/board/toradex/apalis_imx6/MAINTAINERS
+++ b/board/toradex/apalis_imx6/MAINTAINERS
@@ -5,5 +5,3 @@ S:	Maintained
 F:	board/toradex/apalis_imx6/
 F:	include/configs/apalis_imx6.h
 F:	configs/apalis_imx6_defconfig
-F:	configs/apalis_imx6_nospl_com_defconfig
-F:	configs/apalis_imx6_nospl_it_defconfig
diff --git a/board/toradex/apalis_imx6/apalis_imx6q.cfg b/board/toradex/apalis_imx6/apalis_imx6q.cfg
deleted file mode 100644
index 739b1b7061..0000000000
--- a/board/toradex/apalis_imx6/apalis_imx6q.cfg
+++ /dev/null
@@ -1,33 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
-/*
- * Copyright (C) 2013 Boundary Devices
- * Copyright (C) 2014-2016, Toradex AG
- *
- * Refer doc/README.imximage for more details about how-to configure
- * and create imximage boot image
- *
- * The syntax is taken as close as possible with the kwbimage
- */
-
-/* image version */
-IMAGE_VERSION 2
-
-/*
- * Boot Device : one of
- * spi, sd (the board has no nand neither onenand)
- */
-BOOT_FROM      sd
-
-#define __ASSEMBLY__
-#include <config.h>
-#include "asm/arch/mx6-ddr.h"
-#include "asm/arch/iomux.h"
-#include "asm/arch/crm_regs.h"
-
-#include "ddr-setup.cfg"
-#if CONFIG_DDR_MB == 2048
-#include "1066mhz_4x256mx16.cfg"
-#else
-#include "1066mhz_4x128mx16.cfg"
-#endif
-#include "clocks.cfg"
diff --git a/board/toradex/apalis_imx6/clocks.cfg b/board/toradex/apalis_imx6/clocks.cfg
deleted file mode 100644
index 1bcbc4fa38..0000000000
--- a/board/toradex/apalis_imx6/clocks.cfg
+++ /dev/null
@@ -1,41 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
-/*
- * Copyright (C) 2013 Boundary Devices
- * Copyright (C) 2014-2016, Toradex AG
- *
- * Device Configuration Data (DCD)
- *
- * Each entry must have the format:
- * Addr-type           Address        Value
- *
- * where:
- *      Addr-type register length (1,2 or 4 bytes)
- *      Address   absolute address of the register
- *      value     value to be stored in the register
- */
-
-/* set the default clock gate to save power */
-DATA 4, CCM_CCGR0, 0x00C03F3F
-DATA 4, CCM_CCGR1, 0x0030FC03
-DATA 4, CCM_CCGR2, 0x0FFFC000
-DATA 4, CCM_CCGR3, 0x3FF00000
-DATA 4, CCM_CCGR4, 0x00FFF300
-DATA 4, CCM_CCGR5, 0x0F0000C3
-DATA 4, CCM_CCGR6, 0x000003FF
-
-/* enable AXI cache for VDOA/VPU/IPU */
-DATA 4, MX6_IOMUXC_GPR4, 0xF00000CF
-/* set IPU AXI-id0 Qos=0xf(bypass) AXI-id1 Qos=0x7 */
-DATA 4, MX6_IOMUXC_GPR6, 0x007F007F
-DATA 4, MX6_IOMUXC_GPR7, 0x007F007F
-
-/*
- * Setup CCM_CCOSR register as follows:
- *
- * cko1_en  = 1	   --> CKO1 enabled
- * cko1_div = 111  --> divide by 8
- * cko1_sel = 1011 --> ahb_clk_root
- *
- * This sets CKO1 at ahb_clk_root/8 = 132/8 = 16.5 MHz
- */
-DATA 4, CCM_CCOSR, 0x000000fb
diff --git a/board/toradex/apalis_imx6/ddr-setup.cfg b/board/toradex/apalis_imx6/ddr-setup.cfg
deleted file mode 100644
index e42e3ce438..0000000000
--- a/board/toradex/apalis_imx6/ddr-setup.cfg
+++ /dev/null
@@ -1,96 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
-/*
- * Copyright (C) 2013 Boundary Devices
- * Copyright (C) 2014-2016, Toradex AG
- *
- * Device Configuration Data (DCD)
- *
- * Each entry must have the format:
- * Addr-type           Address        Value
- *
- * where:
- *      Addr-type register length (1,2 or 4 bytes)
- *      Address   absolute address of the register
- *      value     value to be stored in the register
- */
-
-/*
- * DDR3 settings
- * MX6Q    ddr is limited to 1066 Mhz	currently 1056 MHz(528 MHz clock),
- *	   memory bus width: 64 bits	x16/x32/x64
- * MX6DL   ddr is limited to 800 MHz(400 MHz clock)
- *	   memory bus width: 64 bits	x16/x32/x64
- * MX6SOLO ddr is limited to 800 MHz(400 MHz clock)
- *	   memory bus width: 32 bits	x16/x32
- */
-DATA 4, MX6_IOM_DRAM_SDQS0, 0x00000030
-DATA 4, MX6_IOM_DRAM_SDQS1, 0x00000030
-DATA 4, MX6_IOM_DRAM_SDQS2, 0x00000030
-DATA 4, MX6_IOM_DRAM_SDQS3, 0x00000030
-DATA 4, MX6_IOM_DRAM_SDQS4, 0x00000030
-DATA 4, MX6_IOM_DRAM_SDQS5, 0x00000030
-DATA 4, MX6_IOM_DRAM_SDQS6, 0x00000030
-DATA 4, MX6_IOM_DRAM_SDQS7, 0x00000030
-
-DATA 4, MX6_IOM_GRP_B0DS, 0x00000030
-DATA 4, MX6_IOM_GRP_B1DS, 0x00000030
-DATA 4, MX6_IOM_GRP_B2DS, 0x00000030
-DATA 4, MX6_IOM_GRP_B3DS, 0x00000030
-DATA 4, MX6_IOM_GRP_B4DS, 0x00000030
-DATA 4, MX6_IOM_GRP_B5DS, 0x00000030
-DATA 4, MX6_IOM_GRP_B6DS, 0x00000030
-DATA 4, MX6_IOM_GRP_B7DS, 0x00000030
-DATA 4, MX6_IOM_GRP_ADDDS, 0x00000030
-/* 40 Ohm drive strength for cs0/1,sdba2,cke0/1,sdwe */
-DATA 4, MX6_IOM_GRP_CTLDS, 0x00000030
-
-DATA 4, MX6_IOM_DRAM_DQM0, 0x00020030
-DATA 4, MX6_IOM_DRAM_DQM1, 0x00020030
-DATA 4, MX6_IOM_DRAM_DQM2, 0x00020030
-DATA 4, MX6_IOM_DRAM_DQM3, 0x00020030
-DATA 4, MX6_IOM_DRAM_DQM4, 0x00020030
-DATA 4, MX6_IOM_DRAM_DQM5, 0x00020030
-DATA 4, MX6_IOM_DRAM_DQM6, 0x00020030
-DATA 4, MX6_IOM_DRAM_DQM7, 0x00020030
-
-DATA 4, MX6_IOM_DRAM_CAS, 0x00020030
-DATA 4, MX6_IOM_DRAM_RAS, 0x00020030
-DATA 4, MX6_IOM_DRAM_SDCLK_0, 0x00020030
-DATA 4, MX6_IOM_DRAM_SDCLK_1, 0x00020030
-
-DATA 4, MX6_IOM_DRAM_RESET, 0x00020030
-DATA 4, MX6_IOM_DRAM_SDCKE0, 0x00003000
-DATA 4, MX6_IOM_DRAM_SDCKE1, 0x00003000
-
-DATA 4, MX6_IOM_DRAM_SDODT0, 0x00003030
-DATA 4, MX6_IOM_DRAM_SDODT1, 0x00003030
-
-/* (differential input) */
-DATA 4, MX6_IOM_DDRMODE_CTL, 0x00020000
-/* (differential input) */
-DATA 4, MX6_IOM_GRP_DDRMODE, 0x00020000
-/* disable ddr pullups */
-DATA 4, MX6_IOM_GRP_DDRPKE, 0x00000000
-DATA 4, MX6_IOM_DRAM_SDBA2, 0x00000000
-/* 40 Ohm drive strength for cs0/1,sdba2,cke0/1,sdwe */
-DATA 4, MX6_IOM_GRP_DDR_TYPE, 0x000C0000
-
-/* Read data DQ Byte0-3 delay */
-DATA 4, MX6_MMDC_P0_MPRDDQBY0DL, 0x33333333
-DATA 4, MX6_MMDC_P0_MPRDDQBY1DL, 0x33333333
-DATA 4, MX6_MMDC_P0_MPRDDQBY2DL, 0x33333333
-DATA 4, MX6_MMDC_P0_MPRDDQBY3DL, 0x33333333
-DATA 4, MX6_MMDC_P1_MPRDDQBY0DL, 0x33333333
-DATA 4, MX6_MMDC_P1_MPRDDQBY1DL, 0x33333333
-DATA 4, MX6_MMDC_P1_MPRDDQBY2DL, 0x33333333
-DATA 4, MX6_MMDC_P1_MPRDDQBY3DL, 0x33333333
-
-/*
- * MDMISC	mirroring	interleaved (row/bank/col)
- */
-DATA 4, MX6_MMDC_P0_MDMISC, 0x00081740
-
-/*
- * MDSCR	con_req
- */
-DATA 4, MX6_MMDC_P0_MDSCR, 0x00008000
diff --git a/configs/apalis_imx6_nospl_com_defconfig b/configs/apalis_imx6_nospl_com_defconfig
deleted file mode 100644
index b6ab5285c2..0000000000
--- a/configs/apalis_imx6_nospl_com_defconfig
+++ /dev/null
@@ -1,65 +0,0 @@
-CONFIG_ARM=y
-CONFIG_SYS_THUMB_BUILD=y
-CONFIG_ARCH_MX6=y
-CONFIG_SYS_TEXT_BASE=0x17800000
-CONFIG_TARGET_APALIS_IMX6=y
-CONFIG_CMD_HDMIDETECT=y
-CONFIG_ENV_VARS_UBOOT_CONFIG=y
-CONFIG_NR_DRAM_BANKS=1
-CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/apalis_imx6/apalis_imx6q.cfg,MX6Q,DDR_MB=1024"
-CONFIG_BOOTDELAY=1
-# CONFIG_CONSOLE_MUX is not set
-CONFIG_SUPPORT_RAW_INITRD=y
-CONFIG_MISC_INIT_R=y
-CONFIG_VERSION_VARIABLE=y
-# CONFIG_DISPLAY_BOARDINFO is not set
-CONFIG_DISPLAY_BOARDINFO_LATE=y
-CONFIG_BOUNCE_BUFFER=y
-CONFIG_BOARD_EARLY_INIT_F=y
-CONFIG_HUSH_PARSER=y
-CONFIG_SYS_PROMPT="Apalis iMX6 # "
-CONFIG_CMD_BOOTZ=y
-# CONFIG_CMD_ELF is not set
-# CONFIG_CMD_IMI is not set
-# CONFIG_CMD_XIMG is not set
-CONFIG_CMD_ASKENV=y
-CONFIG_CRC32_VERIFY=y
-CONFIG_CMD_MEMTEST=y
-CONFIG_SYS_ALT_MEMTEST=y
-CONFIG_CMD_DFU=y
-CONFIG_CMD_GPIO=y
-CONFIG_CMD_I2C=y
-CONFIG_CMD_MMC=y
-CONFIG_CMD_USB=y
-CONFIG_CMD_USB_MASS_STORAGE=y
-CONFIG_CMD_DHCP=y
-CONFIG_CMD_MII=y
-CONFIG_CMD_PING=y
-CONFIG_CMD_BMP=y
-CONFIG_CMD_CACHE=y
-CONFIG_CMD_EXT4=y
-CONFIG_CMD_FAT=y
-CONFIG_CMD_FS_GENERIC=y
-CONFIG_ENV_IS_IN_MMC=y
-CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
-CONFIG_DWC_AHSATA=y
-CONFIG_DFU_MMC=y
-CONFIG_FSL_ESDHC=y
-CONFIG_PHYLIB=y
-CONFIG_PHY_MICREL=y
-CONFIG_PHY_MICREL_KSZ90X1=y
-CONFIG_MII=y
-CONFIG_USB=y
-CONFIG_USB_STORAGE=y
-CONFIG_USB_KEYBOARD=y
-CONFIG_USB_GADGET=y
-CONFIG_USB_GADGET_MANUFACTURER="Toradex"
-CONFIG_USB_GADGET_VENDOR_NUM=0x1b67
-CONFIG_USB_GADGET_PRODUCT_NUM=0x4020
-CONFIG_CI_UDC=y
-CONFIG_USB_GADGET_DOWNLOAD=y
-CONFIG_USB_HOST_ETHER=y
-CONFIG_VIDEO=y
-CONFIG_FAT_WRITE=y
-CONFIG_OF_LIBFDT=y
-# CONFIG_EFI_LOADER is not set
diff --git a/configs/apalis_imx6_nospl_it_defconfig b/configs/apalis_imx6_nospl_it_defconfig
deleted file mode 100644
index c972b11eb5..0000000000
--- a/configs/apalis_imx6_nospl_it_defconfig
+++ /dev/null
@@ -1,65 +0,0 @@
-CONFIG_ARM=y
-CONFIG_SYS_THUMB_BUILD=y
-CONFIG_ARCH_MX6=y
-CONFIG_SYS_TEXT_BASE=0x17800000
-CONFIG_TARGET_APALIS_IMX6=y
-CONFIG_CMD_HDMIDETECT=y
-CONFIG_ENV_VARS_UBOOT_CONFIG=y
-CONFIG_NR_DRAM_BANKS=1
-CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/apalis_imx6/apalis_imx6q.cfg,MX6Q,DDR_MB=2048"
-CONFIG_BOOTDELAY=1
-# CONFIG_CONSOLE_MUX is not set
-CONFIG_SUPPORT_RAW_INITRD=y
-CONFIG_MISC_INIT_R=y
-CONFIG_VERSION_VARIABLE=y
-# CONFIG_DISPLAY_BOARDINFO is not set
-CONFIG_DISPLAY_BOARDINFO_LATE=y
-CONFIG_BOUNCE_BUFFER=y
-CONFIG_BOARD_EARLY_INIT_F=y
-CONFIG_HUSH_PARSER=y
-CONFIG_SYS_PROMPT="Apalis iMX6 # "
-CONFIG_CMD_BOOTZ=y
-# CONFIG_CMD_ELF is not set
-# CONFIG_CMD_IMI is not set
-# CONFIG_CMD_XIMG is not set
-CONFIG_CMD_ASKENV=y
-CONFIG_CRC32_VERIFY=y
-CONFIG_CMD_MEMTEST=y
-CONFIG_SYS_ALT_MEMTEST=y
-CONFIG_CMD_DFU=y
-CONFIG_CMD_GPIO=y
-CONFIG_CMD_I2C=y
-CONFIG_CMD_MMC=y
-CONFIG_CMD_USB=y
-CONFIG_CMD_USB_MASS_STORAGE=y
-CONFIG_CMD_DHCP=y
-CONFIG_CMD_MII=y
-CONFIG_CMD_PING=y
-CONFIG_CMD_BMP=y
-CONFIG_CMD_CACHE=y
-CONFIG_CMD_EXT4=y
-CONFIG_CMD_FAT=y
-CONFIG_CMD_FS_GENERIC=y
-CONFIG_ENV_IS_IN_MMC=y
-CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
-CONFIG_DWC_AHSATA=y
-CONFIG_DFU_MMC=y
-CONFIG_FSL_ESDHC=y
-CONFIG_PHYLIB=y
-CONFIG_PHY_MICREL=y
-CONFIG_PHY_MICREL_KSZ90X1=y
-CONFIG_MII=y
-CONFIG_USB=y
-CONFIG_USB_STORAGE=y
-CONFIG_USB_KEYBOARD=y
-CONFIG_USB_GADGET=y
-CONFIG_USB_GADGET_MANUFACTURER="Toradex"
-CONFIG_USB_GADGET_VENDOR_NUM=0x1b67
-CONFIG_USB_GADGET_PRODUCT_NUM=0x4020
-CONFIG_CI_UDC=y
-CONFIG_USB_GADGET_DOWNLOAD=y
-CONFIG_USB_HOST_ETHER=y
-CONFIG_VIDEO=y
-CONFIG_FAT_WRITE=y
-CONFIG_OF_LIBFDT=y
-# CONFIG_EFI_LOADER is not set
-- 
2.20.1

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

* [U-Boot] [PATCH v2 02/23] apalis_imx6: use distro defaults
  2019-02-08 17:12 [U-Boot] [PATCH v2 00/23] apalis imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 01/23] apalis_imx6: get rid of obsolete nospl configurations Marcel Ziswiler
@ 2019-02-08 17:12 ` Marcel Ziswiler
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 03/23] apalis_imx6: move console in env from header file to defconfig Marcel Ziswiler
                   ` (20 subsequent siblings)
  22 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:12 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Use distro defaults and minimise default configuration again using
savedefconfig.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2: None

 configs/apalis_imx6_defconfig | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

diff --git a/configs/apalis_imx6_defconfig b/configs/apalis_imx6_defconfig
index 86dabd3736..f7fb7a5f8a 100644
--- a/configs/apalis_imx6_defconfig
+++ b/configs/apalis_imx6_defconfig
@@ -9,12 +9,11 @@ CONFIG_SPL_MMC_SUPPORT=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_SPL=y
 CONFIG_CMD_HDMIDETECT=y
-CONFIG_ENV_VARS_UBOOT_CONFIG=y
+CONFIG_DISTRO_DEFAULTS=y
 CONFIG_NR_DRAM_BANKS=1
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg,MX6Q"
 CONFIG_BOOTDELAY=1
 # CONFIG_CONSOLE_MUX is not set
-CONFIG_SUPPORT_RAW_INITRD=y
 CONFIG_MISC_INIT_R=y
 CONFIG_VERSION_VARIABLE=y
 # CONFIG_DISPLAY_BOARDINFO is not set
@@ -26,9 +25,7 @@ CONFIG_SPL_I2C_SUPPORT=y
 CONFIG_SPL_USB_HOST_SUPPORT=y
 CONFIG_SPL_USB_GADGET=y
 CONFIG_SPL_USB_SDP_SUPPORT=y
-CONFIG_HUSH_PARSER=y
 CONFIG_SYS_PROMPT="Apalis iMX6 # "
-CONFIG_CMD_BOOTZ=y
 # CONFIG_CMD_ELF is not set
 # CONFIG_CMD_IMI is not set
 # CONFIG_CMD_XIMG is not set
@@ -43,14 +40,8 @@ CONFIG_CMD_MMC=y
 CONFIG_CMD_USB=y
 CONFIG_CMD_USB_SDP=y
 CONFIG_CMD_USB_MASS_STORAGE=y
-CONFIG_CMD_DHCP=y
-CONFIG_CMD_MII=y
-CONFIG_CMD_PING=y
 CONFIG_CMD_BMP=y
 CONFIG_CMD_CACHE=y
-CONFIG_CMD_EXT4=y
-CONFIG_CMD_FAT=y
-CONFIG_CMD_FS_GENERIC=y
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
 CONFIG_DWC_AHSATA=y
@@ -61,7 +52,6 @@ CONFIG_PHY_MICREL=y
 CONFIG_PHY_MICREL_KSZ90X1=y
 CONFIG_MII=y
 CONFIG_USB=y
-CONFIG_USB_STORAGE=y
 CONFIG_USB_KEYBOARD=y
 CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_MANUFACTURER="Toradex"
-- 
2.20.1

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

* [U-Boot] [PATCH v2 03/23] apalis_imx6: move console in env from header file to defconfig
  2019-02-08 17:12 [U-Boot] [PATCH v2 00/23] apalis imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 01/23] apalis_imx6: get rid of obsolete nospl configurations Marcel Ziswiler
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 02/23] apalis_imx6: use distro defaults Marcel Ziswiler
@ 2019-02-08 17:12 ` Marcel Ziswiler
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 04/23] apalis_imx6: enable fit image, gpt, imx thermal, efi loader support Marcel Ziswiler
                   ` (19 subsequent siblings)
  22 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:12 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Move console in env from header file to defconfig.

While at it also update copyright year and remove spurious comments and
new lines.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2:
- Remove spurious mentioning of DFU MMC both in subject as well as
  description.

 configs/apalis_imx6_defconfig | 1 +
 include/configs/apalis_imx6.h | 4 +---
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/configs/apalis_imx6_defconfig b/configs/apalis_imx6_defconfig
index f7fb7a5f8a..098d791a62 100644
--- a/configs/apalis_imx6_defconfig
+++ b/configs/apalis_imx6_defconfig
@@ -14,6 +14,7 @@ CONFIG_NR_DRAM_BANKS=1
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg,MX6Q"
 CONFIG_BOOTDELAY=1
 # CONFIG_CONSOLE_MUX is not set
+CONFIG_SYS_CONSOLE_IS_IN_ENV=y
 CONFIG_MISC_INIT_R=y
 CONFIG_VERSION_VARIABLE=y
 # CONFIG_DISPLAY_BOARDINFO is not set
diff --git a/include/configs/apalis_imx6.h b/include/configs/apalis_imx6.h
index ba4e96da50..a1ba16fc79 100644
--- a/include/configs/apalis_imx6.h
+++ b/include/configs/apalis_imx6.h
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0+ */
 /*
- * Copyright 2013-2015 Toradex, Inc.
+ * Copyright 2013-2019 Toradex, Inc.
  *
  * Configuration settings for the Toradex Apalis iMX6
  */
@@ -86,7 +86,6 @@
 
 /* Framebuffer and LCD */
 #define CONFIG_VIDEO_IPUV3
-#define CONFIG_SYS_CONSOLE_IS_IN_ENV
 #define CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_SPLASH_SCREEN
@@ -255,7 +254,6 @@
 	(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
 
 /* environment organization */
-
 #define CONFIG_ENV_SIZE			(8 * 1024)
 
 #if defined(CONFIG_ENV_IS_IN_MMC)
-- 
2.20.1

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

* [U-Boot] [PATCH v2 04/23] apalis_imx6: enable fit image, gpt, imx thermal, efi loader support
  2019-02-08 17:12 [U-Boot] [PATCH v2 00/23] apalis imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (2 preceding siblings ...)
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 03/23] apalis_imx6: move console in env from header file to defconfig Marcel Ziswiler
@ 2019-02-08 17:12 ` Marcel Ziswiler
  2019-03-12 10:45   ` Igor Opaniuk
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 05/23] apalis_imx6: remove obsolete USB_GADGET_MASS_STORAGE configuration Marcel Ziswiler
                   ` (18 subsequent siblings)
  22 siblings, 1 reply; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:12 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Enbale FIT image, GPT command, i.MX thermal and EFI loader support.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2: None

 configs/apalis_imx6_defconfig | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/configs/apalis_imx6_defconfig b/configs/apalis_imx6_defconfig
index 098d791a62..b262bb88b9 100644
--- a/configs/apalis_imx6_defconfig
+++ b/configs/apalis_imx6_defconfig
@@ -11,6 +11,7 @@ CONFIG_SPL=y
 CONFIG_CMD_HDMIDETECT=y
 CONFIG_DISTRO_DEFAULTS=y
 CONFIG_NR_DRAM_BANKS=1
+CONFIG_FIT=y
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg,MX6Q"
 CONFIG_BOOTDELAY=1
 # CONFIG_CONSOLE_MUX is not set
@@ -36,6 +37,7 @@ CONFIG_CMD_MEMTEST=y
 CONFIG_SYS_ALT_MEMTEST=y
 CONFIG_CMD_DFU=y
 CONFIG_CMD_GPIO=y
+CONFIG_CMD_GPT=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_MMC=y
 CONFIG_CMD_USB=y
@@ -52,6 +54,7 @@ CONFIG_PHYLIB=y
 CONFIG_PHY_MICREL=y
 CONFIG_PHY_MICREL_KSZ90X1=y
 CONFIG_MII=y
+CONFIG_IMX_THERMAL=y
 CONFIG_USB=y
 CONFIG_USB_KEYBOARD=y
 CONFIG_USB_GADGET=y
@@ -65,4 +68,3 @@ CONFIG_VIDEO=y
 CONFIG_FAT_WRITE=y
 CONFIG_OF_LIBFDT=y
 CONFIG_OF_LIBFDT_OVERLAY=y
-# CONFIG_EFI_LOADER is not set
-- 
2.20.1

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

* [U-Boot] [PATCH v2 05/23] apalis_imx6: remove obsolete USB_GADGET_MASS_STORAGE configuration
  2019-02-08 17:12 [U-Boot] [PATCH v2 00/23] apalis imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (3 preceding siblings ...)
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 04/23] apalis_imx6: enable fit image, gpt, imx thermal, efi loader support Marcel Ziswiler
@ 2019-02-08 17:12 ` Marcel Ziswiler
  2019-03-12 10:46   ` Igor Opaniuk
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 06/23] apalis_imx6: migrate to using device tree Marcel Ziswiler
                   ` (17 subsequent siblings)
  22 siblings, 1 reply; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:12 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Remove obsolete USB_GADGET_MASS_STORAGE configuration.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2: None

 include/configs/apalis_imx6.h | 2 --
 1 file changed, 2 deletions(-)

diff --git a/include/configs/apalis_imx6.h b/include/configs/apalis_imx6.h
index a1ba16fc79..7222285ab3 100644
--- a/include/configs/apalis_imx6.h
+++ b/include/configs/apalis_imx6.h
@@ -82,8 +82,6 @@
 /* Client */
 #define CONFIG_USBD_HS
 
-#define CONFIG_USB_GADGET_MASS_STORAGE
-
 /* Framebuffer and LCD */
 #define CONFIG_VIDEO_IPUV3
 #define CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE
-- 
2.20.1

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

* [U-Boot] [PATCH v2 06/23] apalis_imx6: migrate to using device tree
  2019-02-08 17:12 [U-Boot] [PATCH v2 00/23] apalis imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (4 preceding siblings ...)
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 05/23] apalis_imx6: remove obsolete USB_GADGET_MASS_STORAGE configuration Marcel Ziswiler
@ 2019-02-08 17:12 ` Marcel Ziswiler
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 07/23] apalis_imx6: clean-up and migrate gpios to using driver model Marcel Ziswiler
                   ` (16 subsequent siblings)
  22 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:12 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Migrate to using device tree required for further driver model
integration.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2:
- Use GPL-2.0+ OR X11 instead of GPL-2.0 OR MIT to be more consistent
  with all our other device trees.
- Further comments and white-space clean-up.

 arch/arm/dts/imx6-apalis.dts          | 730 ++++++++++++++++++++++++++
 board/toradex/apalis_imx6/MAINTAINERS |   2 +
 configs/apalis_imx6_defconfig         |   3 +-
 3 files changed, 734 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/dts/imx6-apalis.dts

diff --git a/arch/arm/dts/imx6-apalis.dts b/arch/arm/dts/imx6-apalis.dts
new file mode 100644
index 0000000000..b2fdfa1af4
--- /dev/null
+++ b/arch/arm/dts/imx6-apalis.dts
@@ -0,0 +1,730 @@
+// SPDX-License-Identifier: GPL-2.0+ OR X11
+/*
+ * Copyright 2019 Toradex AG
+ */
+
+/dts-v1/;
+#include <dt-bindings/gpio/gpio.h>
+#include "imx6q.dtsi"
+
+/ {
+	model = "Toradex Apalis iMX6Q/D";
+	compatible = "toradex,apalis_imx6q", "fsl,imx6q";
+
+	/* Will be filled by the bootloader */
+	memory at 10000000 {
+		device_type = "memory";
+		reg = <0x10000000 0>;
+	};
+
+	aliases {
+		mmc0 = &usdhc3;
+		mmc1 = &usdhc1;
+		mmc2 = &usdhc2;
+		usb0 = &usbotg; /* required for ums */
+	};
+
+	chosen {
+		stdout-path = &uart1;
+	};
+
+	reg_module_3v3: regulator-module-3v3 {
+		compatible = "regulator-fixed";
+		regulator-name = "+V3.3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-always-on;
+	};
+
+	reg_usb_otg_vbus: regulator-usb-otg-vbus {
+		compatible = "regulator-fixed";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_regulator_usbotg_pwr>;
+		regulator-name = "usb_otg_vbus";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>; /* USBO1_EN */
+		enable-active-high;
+	};
+
+	/* on-module USB hub */
+	reg_usb_host_vbus_hub: regulator-usb-host-vbus-hub {
+		compatible = "regulator-fixed";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_regulator_usbhub_pwr>;
+		regulator-name = "usb_host_vbus_hub";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpio = <&gpio3 28 GPIO_ACTIVE_HIGH>;
+		startup-delay-us = <2000>;
+		enable-active-high;
+	};
+
+	reg_usb_host_vbus: regulator-usb-host-vbus {
+		compatible = "regulator-fixed";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_regulator_usbh_pwr>;
+		regulator-name = "usb_host_vbus";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>; /* USBH_EN */
+		enable-active-high;
+		vin-supply = <&reg_usb_host_vbus_hub>;
+	};
+};
+
+/* I2C1_SDA/SCL on MXM3 209/211 (e.g. RTC on carrier board) */
+&i2c1 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c1>;
+	status = "okay";
+};
+
+/*
+ * PWR_I2C: power I2C to audio codec, PMIC, temperature sensor and
+ * touch screen controller
+ */
+&i2c2 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c2>;
+	status = "okay";
+
+	pmic: pfuze100 at 8 {
+		compatible = "fsl,pfuze100";
+		reg = <0x08>;
+
+		regulators {
+			sw1a_reg: sw1ab {
+				regulator-min-microvolt = <300000>;
+				regulator-max-microvolt = <1875000>;
+				regulator-boot-on;
+				regulator-always-on;
+				regulator-ramp-delay = <6250>;
+			};
+
+			sw1c_reg: sw1c {
+				regulator-min-microvolt = <300000>;
+				regulator-max-microvolt = <1875000>;
+				regulator-boot-on;
+				regulator-always-on;
+				regulator-ramp-delay = <6250>;
+			};
+
+			sw3a_reg: sw3a {
+				regulator-min-microvolt = <400000>;
+				regulator-max-microvolt = <1975000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			swbst_reg: swbst {
+				regulator-min-microvolt = <5000000>;
+				regulator-max-microvolt = <5150000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			snvs_reg: vsnvs {
+				regulator-min-microvolt = <1000000>;
+				regulator-max-microvolt = <3000000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			vref_reg: vrefddr {
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			vgen1_reg: vgen1 {
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <1550000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			vgen2_reg: vgen2 {
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <1550000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			vgen3_reg: vgen3 {
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			vgen4_reg: vgen4 {
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			vgen5_reg: vgen5 {
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			vgen6_reg: vgen6 {
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+		};
+	};
+};
+
+/*
+ * I2C3_SDA/SCL (CAM) on MXM3 pin 201/203 (e.g. camera sensor on carrier
+ * board)
+ */
+&i2c3 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default", "gpio";
+	pinctrl-0 = <&pinctrl_i2c3>;
+	pinctrl-1 = <&pinctrl_i2c3_recovery>;
+	scl-gpios = <&gpio3 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+	sda-gpios = <&gpio3 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+	status = "okay";
+};
+
+/* Apalis Serial ATA */
+&sata {
+	status = "okay";
+};
+
+/* Apalis UART1 */
+&uart1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart1_dte &pinctrl_uart1_ctrl>;
+	fsl,dte-mode;
+	uart-has-rtscts;
+	status = "okay";
+};
+
+/* Apalis UART2 */
+&uart2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart2_dte>;
+	fsl,dte-mode;
+	uart-has-rtscts;
+	status = "okay";
+};
+
+/* Apalis UART3 */
+&uart4 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart4_dte>;
+	fsl,dte-mode;
+	status = "okay";
+};
+
+/* Apalis UART4 */
+&uart5 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart5_dte>;
+	fsl,dte-mode;
+	status = "okay";
+};
+
+/* Apalis USBH[2|3|4] */
+&usbh1 {
+	dr_mode = "host";
+	vbus-supply = <&reg_usb_host_vbus>;
+	status = "okay";
+};
+
+/* Apalis USBO1 */
+&usbotg {
+	dr_mode = "host";
+	vbus-supply = <&reg_usb_otg_vbus>;
+	status = "okay";
+};
+
+/* Apalis MMC1 */
+&usdhc1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usdhc1_4bit &pinctrl_usdhc1_8bit &pinctrl_mmc_cd>;
+	cd-gpios = <&gpio4 20 GPIO_ACTIVE_LOW>; /* MMC1_CD */
+	disable-wp;
+	no-1-8-v;
+	status = "okay";
+};
+
+/* Apalis SD1 */
+&usdhc2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usdhc2 &pinctrl_sd_cd>;
+	cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>;	/* SD1_CD */
+	disable-wp;
+	no-1-8-v;
+	status = "okay";
+};
+
+/* eMMC */
+&usdhc3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usdhc3>;
+	vqmmc-supply = <&reg_module_3v3>;
+	bus-width = <8>;
+	no-1-8-v;
+	non-removable;
+	status = "okay";
+};
+
+&iomuxc {
+	pinctrl_apalis_gpio1: gpio2io04grp {
+		fsl,pins = <
+			MX6QDL_PAD_NANDF_D4__GPIO2_IO04	0x130b0
+		>;
+	};
+
+	pinctrl_apalis_gpio2: gpio2io05grp {
+		fsl,pins = <
+			MX6QDL_PAD_NANDF_D5__GPIO2_IO05	0x130b0
+		>;
+	};
+
+	pinctrl_apalis_gpio3: gpio2io06grp {
+		fsl,pins = <
+			MX6QDL_PAD_NANDF_D6__GPIO2_IO06	0x130b0
+		>;
+	};
+
+	pinctrl_apalis_gpio4: gpio2io07grp {
+		fsl,pins = <
+			MX6QDL_PAD_NANDF_D7__GPIO2_IO07	0x130b0
+		>;
+	};
+
+	pinctrl_apalis_gpio5: gpio6io10grp {
+		fsl,pins = <
+			MX6QDL_PAD_NANDF_RB0__GPIO6_IO10	0x130b0
+		>;
+	};
+
+	pinctrl_apalis_gpio6: gpio6io09grp {
+		fsl,pins = <
+			MX6QDL_PAD_NANDF_WP_B__GPIO6_IO09	0x130b0
+		>;
+	};
+
+	pinctrl_apalis_gpio7: gpio1io02grp {
+		fsl,pins = <
+			MX6QDL_PAD_GPIO_2__GPIO1_IO02	0x130b0
+		>;
+	};
+
+	pinctrl_apalis_gpio8: gpio1io06grp {
+		fsl,pins = <
+			MX6QDL_PAD_GPIO_6__GPIO1_IO06	0x130b0
+		>;
+	};
+
+	pinctrl_audmux: audmuxgrp {
+		fsl,pins = <
+			MX6QDL_PAD_DISP0_DAT20__AUD4_TXC	0x130b0
+			MX6QDL_PAD_DISP0_DAT21__AUD4_TXD	0x130b0
+			MX6QDL_PAD_DISP0_DAT22__AUD4_TXFS	0x130b0
+			MX6QDL_PAD_DISP0_DAT23__AUD4_RXD	0x130b0
+			/* SGTL5000 sys_mclk */
+			MX6QDL_PAD_GPIO_5__CCM_CLKO1		0x130b0
+		>;
+	};
+
+	pinctrl_cam_mclk: cammclkgrp {
+		fsl,pins = <
+			/* CAM sys_mclk */
+			MX6QDL_PAD_NANDF_CS2__CCM_CLKO2	0x00b0
+		>;
+	};
+
+	pinctrl_ecspi1: ecspi1grp {
+		fsl,pins = <
+			MX6QDL_PAD_CSI0_DAT6__ECSPI1_MISO	0x100b1
+			MX6QDL_PAD_CSI0_DAT5__ECSPI1_MOSI	0x100b1
+			MX6QDL_PAD_CSI0_DAT4__ECSPI1_SCLK	0x100b1
+			/* SPI1 cs */
+			MX6QDL_PAD_CSI0_DAT7__GPIO5_IO25	0x000b1
+		>;
+	};
+
+	pinctrl_ecspi2: ecspi2grp {
+		fsl,pins = <
+			MX6QDL_PAD_EIM_OE__ECSPI2_MISO	0x100b1
+			MX6QDL_PAD_EIM_CS1__ECSPI2_MOSI	0x100b1
+			MX6QDL_PAD_EIM_CS0__ECSPI2_SCLK	0x100b1
+			/* SPI2 cs */
+			MX6QDL_PAD_EIM_RW__GPIO2_IO26	0x000b1
+		>;
+	};
+
+	pinctrl_enet: enetgrp {
+		fsl,pins = <
+			MX6QDL_PAD_ENET_MDIO__ENET_MDIO		0x100b0
+			MX6QDL_PAD_ENET_MDC__ENET_MDC		0x100b0
+			MX6QDL_PAD_RGMII_TXC__RGMII_TXC		0x10030
+			MX6QDL_PAD_RGMII_TD0__RGMII_TD0		0x10030
+			MX6QDL_PAD_RGMII_TD1__RGMII_TD1		0x10030
+			MX6QDL_PAD_RGMII_TD2__RGMII_TD2		0x10030
+			MX6QDL_PAD_RGMII_TD3__RGMII_TD3		0x10030
+			MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL	0x10030
+			MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK	0x100b0
+			MX6QDL_PAD_RGMII_RXC__RGMII_RXC		0x1b030
+			MX6QDL_PAD_RGMII_RD0__RGMII_RD0		0x1b030
+			MX6QDL_PAD_RGMII_RD1__RGMII_RD1		0x1b030
+			MX6QDL_PAD_RGMII_RD2__RGMII_RD2		0x1b030
+			MX6QDL_PAD_RGMII_RD3__RGMII_RD3		0x1b030
+			MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL	0x1b030
+			/* Ethernet PHY reset */
+			MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25	0x000b0
+			/* Ethernet PHY interrupt */
+			MX6QDL_PAD_ENET_TXD0__GPIO1_IO30	0x000b1
+		>;
+	};
+
+	pinctrl_flexcan1: flexcan1grp {
+		fsl,pins = <
+			MX6QDL_PAD_GPIO_7__FLEXCAN1_TX	0x1b0b0
+			MX6QDL_PAD_GPIO_8__FLEXCAN1_RX	0x1b0b0
+		>;
+	};
+
+	pinctrl_flexcan2: flexcan2grp {
+		fsl,pins = <
+			MX6QDL_PAD_KEY_COL4__FLEXCAN2_TX	0x1b0b0
+			MX6QDL_PAD_KEY_ROW4__FLEXCAN2_RX	0x1b0b0
+		>;
+	};
+
+	pinctrl_gpio_bl_on: gpioblon {
+		fsl,pins = <
+			MX6QDL_PAD_EIM_DA13__GPIO3_IO13 0x1b0b0
+		>;
+	};
+
+	pinctrl_gpio_keys: gpio1io04grp {
+		fsl,pins = <
+			/* Power button */
+			MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1b0b0
+		>;
+	};
+
+	pinctrl_hdmi_cec: hdmicecgrp {
+		fsl,pins = <
+			MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x1f8b0
+		>;
+	};
+
+	pinctrl_hdmi_ddc: hdmiddcgrp {
+		fsl,pins = <
+			MX6QDL_PAD_EIM_EB2__HDMI_TX_DDC_SCL	0x4001b8b1
+			MX6QDL_PAD_EIM_D16__HDMI_TX_DDC_SDA	0x4001b8b1
+		>;
+	};
+
+	pinctrl_i2c1: i2c1grp {
+		fsl,pins = <
+			MX6QDL_PAD_CSI0_DAT8__I2C1_SDA	0x4001b8b1
+			MX6QDL_PAD_CSI0_DAT9__I2C1_SCL	0x4001b8b1
+		>;
+	};
+
+	pinctrl_i2c2: i2c2grp {
+		fsl,pins = <
+			MX6QDL_PAD_KEY_COL3__I2C2_SCL	0x4001b8b1
+			MX6QDL_PAD_KEY_ROW3__I2C2_SDA	0x4001b8b1
+		>;
+	};
+
+	pinctrl_i2c3: i2c3grp {
+		fsl,pins = <
+			MX6QDL_PAD_EIM_D17__I2C3_SCL	0x4001b8b1
+			MX6QDL_PAD_EIM_D18__I2C3_SDA	0x4001b8b1
+		>;
+	};
+
+	pinctrl_i2c3_recovery: i2c3recoverygrp {
+		fsl,pins = <
+			MX6QDL_PAD_EIM_D17__GPIO3_IO17	0x4001b8b1
+			MX6QDL_PAD_EIM_D18__GPIO3_IO18	0x4001b8b1
+		>;
+	};
+
+	pinctrl_ipu1_lcdif: ipu1lcdifgrp {
+		fsl,pins = <
+			MX6QDL_PAD_EIM_A16__IPU1_DI1_DISP_CLK	0x61
+			/* DE */
+			MX6QDL_PAD_EIM_DA10__IPU1_DI1_PIN15	0x61
+			/* HSync */
+			MX6QDL_PAD_EIM_DA11__IPU1_DI1_PIN02	0x61
+			/* VSync */
+			MX6QDL_PAD_EIM_DA12__IPU1_DI1_PIN03	0x61
+			MX6QDL_PAD_EIM_DA9__IPU1_DISP1_DATA00	0x61
+			MX6QDL_PAD_EIM_DA8__IPU1_DISP1_DATA01	0x61
+			MX6QDL_PAD_EIM_DA7__IPU1_DISP1_DATA02	0x61
+			MX6QDL_PAD_EIM_DA6__IPU1_DISP1_DATA03	0x61
+			MX6QDL_PAD_EIM_DA5__IPU1_DISP1_DATA04	0x61
+			MX6QDL_PAD_EIM_DA4__IPU1_DISP1_DATA05	0x61
+			MX6QDL_PAD_EIM_DA3__IPU1_DISP1_DATA06	0x61
+			MX6QDL_PAD_EIM_DA2__IPU1_DISP1_DATA07	0x61
+			MX6QDL_PAD_EIM_DA1__IPU1_DISP1_DATA08	0x61
+			MX6QDL_PAD_EIM_DA0__IPU1_DISP1_DATA09	0x61
+			MX6QDL_PAD_EIM_EB1__IPU1_DISP1_DATA10	0x61
+			MX6QDL_PAD_EIM_EB0__IPU1_DISP1_DATA11	0x61
+			MX6QDL_PAD_EIM_A17__IPU1_DISP1_DATA12	0x61
+			MX6QDL_PAD_EIM_A18__IPU1_DISP1_DATA13	0x61
+			MX6QDL_PAD_EIM_A19__IPU1_DISP1_DATA14	0x61
+			MX6QDL_PAD_EIM_A20__IPU1_DISP1_DATA15	0x61
+			MX6QDL_PAD_EIM_A21__IPU1_DISP1_DATA16	0x61
+			MX6QDL_PAD_EIM_A22__IPU1_DISP1_DATA17	0x61
+			MX6QDL_PAD_EIM_A23__IPU1_DISP1_DATA18	0x61
+			MX6QDL_PAD_EIM_A24__IPU1_DISP1_DATA19	0x61
+			MX6QDL_PAD_EIM_D31__IPU1_DISP1_DATA20	0x61
+			MX6QDL_PAD_EIM_D30__IPU1_DISP1_DATA21	0x61
+			MX6QDL_PAD_EIM_D26__IPU1_DISP1_DATA22	0x61
+			MX6QDL_PAD_EIM_D27__IPU1_DISP1_DATA23	0x61
+		>;
+	};
+
+	pinctrl_ipu2_vdac: ipu2vdacgrp {
+		fsl,pins = <
+			MX6QDL_PAD_DI0_DISP_CLK__IPU2_DI0_DISP_CLK	0xd1
+			MX6QDL_PAD_DI0_PIN15__IPU2_DI0_PIN15		0xd1
+			MX6QDL_PAD_DI0_PIN2__IPU2_DI0_PIN02		0xd1
+			MX6QDL_PAD_DI0_PIN3__IPU2_DI0_PIN03		0xd1
+			MX6QDL_PAD_DISP0_DAT0__IPU2_DISP0_DATA00	0xf9
+			MX6QDL_PAD_DISP0_DAT1__IPU2_DISP0_DATA01	0xf9
+			MX6QDL_PAD_DISP0_DAT2__IPU2_DISP0_DATA02	0xf9
+			MX6QDL_PAD_DISP0_DAT3__IPU2_DISP0_DATA03	0xf9
+			MX6QDL_PAD_DISP0_DAT4__IPU2_DISP0_DATA04	0xf9
+			MX6QDL_PAD_DISP0_DAT5__IPU2_DISP0_DATA05	0xf9
+			MX6QDL_PAD_DISP0_DAT6__IPU2_DISP0_DATA06	0xf9
+			MX6QDL_PAD_DISP0_DAT7__IPU2_DISP0_DATA07	0xf9
+			MX6QDL_PAD_DISP0_DAT8__IPU2_DISP0_DATA08	0xf9
+			MX6QDL_PAD_DISP0_DAT9__IPU2_DISP0_DATA09	0xf9
+			MX6QDL_PAD_DISP0_DAT10__IPU2_DISP0_DATA10	0xf9
+			MX6QDL_PAD_DISP0_DAT11__IPU2_DISP0_DATA11	0xf9
+			MX6QDL_PAD_DISP0_DAT12__IPU2_DISP0_DATA12	0xf9
+			MX6QDL_PAD_DISP0_DAT13__IPU2_DISP0_DATA13	0xf9
+			MX6QDL_PAD_DISP0_DAT14__IPU2_DISP0_DATA14	0xf9
+			MX6QDL_PAD_DISP0_DAT15__IPU2_DISP0_DATA15	0xf9
+		>;
+	};
+
+	pinctrl_mmc_cd: gpiommccdgrp {
+		fsl,pins = <
+			 /* MMC1 CD */
+			MX6QDL_PAD_DI0_PIN4__GPIO4_IO20	0x000b0
+		>;
+	};
+
+	pinctrl_pwm1: pwm1grp {
+		fsl,pins = <
+			MX6QDL_PAD_GPIO_9__PWM1_OUT	0x1b0b1
+		>;
+	};
+
+	pinctrl_pwm2: pwm2grp {
+		fsl,pins = <
+			MX6QDL_PAD_GPIO_1__PWM2_OUT	0x1b0b1
+		>;
+	};
+
+	pinctrl_pwm3: pwm3grp {
+		fsl,pins = <
+			MX6QDL_PAD_SD4_DAT1__PWM3_OUT	0x1b0b1
+		>;
+	};
+
+	pinctrl_pwm4: pwm4grp {
+		fsl,pins = <
+			MX6QDL_PAD_SD4_DAT2__PWM4_OUT	0x1b0b1
+		>;
+	};
+
+	pinctrl_regulator_usbh_pwr: gpioregusbhpwrgrp {
+		fsl,pins = <
+			/* USBH_EN */
+			MX6QDL_PAD_GPIO_0__GPIO1_IO00	0x0f058
+		>;
+	};
+
+	pinctrl_regulator_usbhub_pwr: gpioregusbhubpwrgrp {
+		fsl,pins = <
+			/* USBH_HUB_EN */
+			MX6QDL_PAD_EIM_D28__GPIO3_IO28	0x0f058
+		>;
+	};
+
+	pinctrl_regulator_usbotg_pwr: gpioregusbotgpwrgrp {
+		fsl,pins = <
+			/* USBO1 power en */
+			MX6QDL_PAD_EIM_D22__GPIO3_IO22	0x0f058
+		>;
+	};
+
+	pinctrl_reset_moci: gpioresetmocigrp {
+		fsl,pins = <
+			/* RESET_MOCI control */
+			MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28	0x0f058
+		>;
+	};
+
+	pinctrl_sd_cd: gpiosdcdgrp {
+		fsl,pins = <
+			/* SD1 CD */
+			MX6QDL_PAD_NANDF_CS1__GPIO6_IO14	0x000b0
+		>;
+	};
+
+	pinctrl_spdif: spdifgrp {
+		fsl,pins = <
+			MX6QDL_PAD_GPIO_16__SPDIF_IN	0x1b0b0
+			MX6QDL_PAD_GPIO_17__SPDIF_OUT	0x1b0b0
+		>;
+	};
+
+	pinctrl_touch_int: gpiotouchintgrp {
+		fsl,pins = <
+			/* STMPE811 interrupt */
+			MX6QDL_PAD_KEY_COL2__GPIO4_IO10	0x1b0b0
+		>;
+	};
+
+	pinctrl_uart1_dce: uart1dcegrp {
+		fsl,pins = <
+			MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA	0x1b0b1
+			MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA	0x1b0b1
+		>;
+	};
+
+	/* DTE mode */
+	pinctrl_uart1_dte: uart1dtegrp {
+		fsl,pins = <
+			MX6QDL_PAD_CSI0_DAT10__UART1_RX_DATA	0x1b0b1
+			MX6QDL_PAD_CSI0_DAT11__UART1_TX_DATA	0x1b0b1
+			MX6QDL_PAD_EIM_D19__UART1_RTS_B		0x1b0b1
+			MX6QDL_PAD_EIM_D20__UART1_CTS_B		0x1b0b1
+		>;
+	};
+
+	/* Additional DTR, DSR, DCD */
+	pinctrl_uart1_ctrl: uart1ctrlgrp {
+		fsl,pins = <
+			MX6QDL_PAD_EIM_D23__UART1_DCD_B	0x1b0b0
+			MX6QDL_PAD_EIM_D24__UART1_DTR_B	0x1b0b0
+			MX6QDL_PAD_EIM_D25__UART1_DSR_B	0x1b0b0
+		>;
+	};
+
+	pinctrl_uart2_dce: uart2dcegrp {
+		fsl,pins = <
+			MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA	0x1b0b1
+			MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA	0x1b0b1
+		>;
+	};
+
+	/* DTE mode */
+	pinctrl_uart2_dte: uart2dtegrp {
+		fsl,pins = <
+			MX6QDL_PAD_SD4_DAT4__UART2_TX_DATA	0x1b0b1
+			MX6QDL_PAD_SD4_DAT7__UART2_RX_DATA	0x1b0b1
+			MX6QDL_PAD_SD4_DAT6__UART2_RTS_B	0x1b0b1
+			MX6QDL_PAD_SD4_DAT5__UART2_CTS_B	0x1b0b1
+		>;
+	};
+
+	pinctrl_uart4_dce: uart4dcegrp {
+		fsl,pins = <
+			MX6QDL_PAD_KEY_COL0__UART4_TX_DATA	0x1b0b1
+			MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA	0x1b0b1
+		>;
+	};
+
+	/* DTE mode */
+	pinctrl_uart4_dte: uart4dtegrp {
+		fsl,pins = <
+			MX6QDL_PAD_KEY_COL0__UART4_RX_DATA	0x1b0b1
+			MX6QDL_PAD_KEY_ROW0__UART4_TX_DATA	0x1b0b1
+		>;
+	};
+
+	pinctrl_uart5_dce: uart5dcegrp {
+		fsl,pins = <
+			MX6QDL_PAD_KEY_COL1__UART5_TX_DATA	0x1b0b1
+			MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA	0x1b0b1
+		>;
+	};
+
+	/* DTE mode */
+	pinctrl_uart5_dte: uart5dtegrp {
+		fsl,pins = <
+			MX6QDL_PAD_KEY_COL1__UART5_RX_DATA	0x1b0b1
+			MX6QDL_PAD_KEY_ROW1__UART5_TX_DATA	0x1b0b1
+		>;
+	};
+
+	pinctrl_usbotg: usbotggrp {
+		fsl,pins = <
+			MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID	0x17059
+		>;
+	};
+
+	pinctrl_usdhc1_4bit: usdhc1grp_4bit {
+		fsl,pins = <
+			MX6QDL_PAD_SD1_CMD__SD1_CMD	0x17071
+			MX6QDL_PAD_SD1_CLK__SD1_CLK	0x10071
+			MX6QDL_PAD_SD1_DAT0__SD1_DATA0	0x17071
+			MX6QDL_PAD_SD1_DAT1__SD1_DATA1	0x17071
+			MX6QDL_PAD_SD1_DAT2__SD1_DATA2	0x17071
+			MX6QDL_PAD_SD1_DAT3__SD1_DATA3	0x17071
+		>;
+	};
+
+	pinctrl_usdhc1_8bit: usdhc1grp_8bit {
+		fsl,pins = <
+			MX6QDL_PAD_NANDF_D0__SD1_DATA4	0x17071
+			MX6QDL_PAD_NANDF_D1__SD1_DATA5	0x17071
+			MX6QDL_PAD_NANDF_D2__SD1_DATA6	0x17071
+			MX6QDL_PAD_NANDF_D3__SD1_DATA7	0x17071
+		>;
+	};
+
+	pinctrl_usdhc2: usdhc2grp {
+		fsl,pins = <
+			MX6QDL_PAD_SD2_CMD__SD2_CMD	0x17071
+			MX6QDL_PAD_SD2_CLK__SD2_CLK	0x10071
+			MX6QDL_PAD_SD2_DAT0__SD2_DATA0	0x17071
+			MX6QDL_PAD_SD2_DAT1__SD2_DATA1	0x17071
+			MX6QDL_PAD_SD2_DAT2__SD2_DATA2	0x17071
+			MX6QDL_PAD_SD2_DAT3__SD2_DATA3	0x17071
+		>;
+	};
+
+	pinctrl_usdhc3: usdhc3grp {
+		fsl,pins = <
+			MX6QDL_PAD_SD3_CMD__SD3_CMD	0x17059
+			MX6QDL_PAD_SD3_CLK__SD3_CLK	0x10059
+			MX6QDL_PAD_SD3_DAT0__SD3_DATA0	0x17059
+			MX6QDL_PAD_SD3_DAT1__SD3_DATA1	0x17059
+			MX6QDL_PAD_SD3_DAT2__SD3_DATA2	0x17059
+			MX6QDL_PAD_SD3_DAT3__SD3_DATA3	0x17059
+			MX6QDL_PAD_SD3_DAT4__SD3_DATA4	0x17059
+			MX6QDL_PAD_SD3_DAT5__SD3_DATA5	0x17059
+			MX6QDL_PAD_SD3_DAT6__SD3_DATA6	0x17059
+			MX6QDL_PAD_SD3_DAT7__SD3_DATA7	0x17059
+			/* eMMC reset */
+			MX6QDL_PAD_SD3_RST__SD3_RESET	0x17059
+		>;
+	};
+};
diff --git a/board/toradex/apalis_imx6/MAINTAINERS b/board/toradex/apalis_imx6/MAINTAINERS
index a5d2c84956..7efe816a78 100644
--- a/board/toradex/apalis_imx6/MAINTAINERS
+++ b/board/toradex/apalis_imx6/MAINTAINERS
@@ -1,7 +1,9 @@
 Apalis iMX6
 M:	Max Krummenacher <max.krummenacher@toradex.com>
 W:	http://developer.toradex.com/software/linux/linux-software
+W:      https://www.toradex.com/community
 S:	Maintained
 F:	board/toradex/apalis_imx6/
 F:	include/configs/apalis_imx6.h
 F:	configs/apalis_imx6_defconfig
+F:	arch/arm/dts/imx6-apalis.dts
diff --git a/configs/apalis_imx6_defconfig b/configs/apalis_imx6_defconfig
index b262bb88b9..985d8554b8 100644
--- a/configs/apalis_imx6_defconfig
+++ b/configs/apalis_imx6_defconfig
@@ -45,6 +45,8 @@ CONFIG_CMD_USB_SDP=y
 CONFIG_CMD_USB_MASS_STORAGE=y
 CONFIG_CMD_BMP=y
 CONFIG_CMD_CACHE=y
+CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="imx6-apalis"
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
 CONFIG_DWC_AHSATA=y
@@ -66,5 +68,4 @@ CONFIG_USB_GADGET_DOWNLOAD=y
 CONFIG_USB_HOST_ETHER=y
 CONFIG_VIDEO=y
 CONFIG_FAT_WRITE=y
-CONFIG_OF_LIBFDT=y
 CONFIG_OF_LIBFDT_OVERLAY=y
-- 
2.20.1

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

* [U-Boot] [PATCH v2 07/23] apalis_imx6: clean-up and migrate gpios to using driver model
  2019-02-08 17:12 [U-Boot] [PATCH v2 00/23] apalis imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (5 preceding siblings ...)
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 06/23] apalis_imx6: migrate to using device tree Marcel Ziswiler
@ 2019-02-08 17:12 ` Marcel Ziswiler
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 08/23] apalis_imx6: enable pin control driver Marcel Ziswiler
                   ` (15 subsequent siblings)
  22 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:12 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Migrate GPIOs to using driver model, properly request backlight,
Ethernet PHY reset, MMC/SD card detect and USB power GPIOs and also
enable SION bit in pin muxing for Apalis, backlight, eMMC reset,
Ethernet PHY reset and USB power enable GPIOs.

While at it also update copyright year, clean-up/re-order includes,
add some comments clarifying ifdef scope and do some White-space
clean-up.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2:
- Also add SION bit for Apalis, backlight, eMMC reset and Ethernet PHY
  reset GPIOs.
- Also request MMC/SD CD and USB power GPIOs.
- Clean-up and re-order includes.
- White-space clean-up.

 board/toradex/apalis_imx6/apalis_imx6.c | 90 ++++++++++++++-----------
 configs/apalis_imx6_defconfig           |  1 +
 2 files changed, 53 insertions(+), 38 deletions(-)

diff --git a/board/toradex/apalis_imx6/apalis_imx6.c b/board/toradex/apalis_imx6/apalis_imx6.c
index 368db9c488..0a60b36447 100644
--- a/board/toradex/apalis_imx6/apalis_imx6.c
+++ b/board/toradex/apalis_imx6/apalis_imx6.c
@@ -2,38 +2,32 @@
 /*
  * Copyright (C) 2010-2013 Freescale Semiconductor, Inc.
  * Copyright (C) 2013, Boundary Devices <info@boundarydevices.com>
- * Copyright (C) 2014-2016, Toradex AG
+ * Copyright (C) 2014-2019, Toradex AG
  * copied from nitrogen6x
  */
 
 #include <common.h>
 #include <dm.h>
-#include <environment.h>
+
 #include <asm/arch/clock.h>
 #include <asm/arch/crm_regs.h>
-#include <asm/arch/mxc_hdmi.h>
 #include <asm/arch/imx-regs.h>
-#include <asm/arch/iomux.h>
-#include <asm/arch/sys_proto.h>
-#include <asm/arch/mx6-pins.h>
 #include <asm/arch/mx6-ddr.h>
+#include <asm/arch/mx6-pins.h>
+#include <asm/arch/mxc_hdmi.h>
+#include <asm/arch/sys_proto.h>
 #include <asm/bootm.h>
 #include <asm/gpio.h>
-#include <asm/io.h>
+#include <asm/mach-imx/boot_mode.h>
 #include <asm/mach-imx/iomux-v3.h>
 #include <asm/mach-imx/mxc_i2c.h>
 #include <asm/mach-imx/sata.h>
-#include <asm/mach-imx/boot_mode.h>
 #include <asm/mach-imx/video.h>
 #include <dm/platform_data/serial_mxc.h>
-#include <dm/platdata.h>
+#include <environment.h>
 #include <fsl_esdhc.h>
 #include <i2c.h>
-#include <input.h>
 #include <imx_thermal.h>
-#include <linux/errno.h>
-#include <malloc.h>
-#include <mmc.h>
 #include <micrel.h>
 #include <miiphy.h>
 #include <netdev.h>
@@ -200,7 +194,7 @@ iomux_v3_cfg_t const usdhc3_pads[] = {
 	MX6_PAD_SD3_DAT5__SD3_DATA5 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
 	MX6_PAD_SD3_DAT6__SD3_DATA6 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
 	MX6_PAD_SD3_DAT7__SD3_DATA7 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD3_RST__GPIO7_IO08 | MUX_PAD_CTRL(WEAK_PULLUP),
+	MX6_PAD_SD3_RST__GPIO7_IO08 | MUX_PAD_CTRL(WEAK_PULLUP) | MUX_MODE_SION,
 };
 
 int mx6_rgmii_rework(struct phy_device *phydev)
@@ -241,7 +235,8 @@ iomux_v3_cfg_t const enet_pads[] = {
 	MX6_PAD_RGMII_RD3__RGMII_RD3		| MUX_PAD_CTRL(ENET_PAD_CTRL),
 	MX6_PAD_RGMII_RX_CTL__RGMII_RX_CTL	| MUX_PAD_CTRL(ENET_PAD_CTRL),
 	/* KSZ9031 PHY Reset */
-	MX6_PAD_ENET_CRS_DV__GPIO1_IO25		| MUX_PAD_CTRL(NO_PAD_CTRL),
+	MX6_PAD_ENET_CRS_DV__GPIO1_IO25		| MUX_PAD_CTRL(NO_PAD_CTRL) |
+						  MUX_MODE_SION,
 #	define GPIO_ENET_PHY_RESET IMX_GPIO_NR(1, 25)
 };
 
@@ -253,6 +248,7 @@ static void setup_iomux_enet(void)
 static int reset_enet_phy(struct mii_dev *bus)
 {
 	/* Reset KSZ9031 PHY */
+	gpio_request(GPIO_ENET_PHY_RESET, "ETH_RESET#");
 	gpio_direction_output(GPIO_ENET_PHY_RESET, 0);
 	mdelay(10);
 	gpio_set_value(GPIO_ENET_PHY_RESET, 1);
@@ -263,15 +259,24 @@ static int reset_enet_phy(struct mii_dev *bus)
 /* mux the Apalis GPIO pins, so they can be used from the U-Boot cmdline */
 iomux_v3_cfg_t const gpio_pads[] = {
 	/* Apalis GPIO1 - GPIO8 */
-	MX6_PAD_NANDF_D4__GPIO2_IO04	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_NANDF_D5__GPIO2_IO05	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_NANDF_D6__GPIO2_IO06	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_NANDF_D7__GPIO2_IO07	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_NANDF_RB0__GPIO6_IO10	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_NANDF_WP_B__GPIO6_IO09	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_GPIO_2__GPIO1_IO02	| MUX_PAD_CTRL(WEAK_PULLDOWN),
-	MX6_PAD_GPIO_6__GPIO1_IO06	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_GPIO_4__GPIO1_IO04	| MUX_PAD_CTRL(WEAK_PULLUP),
+	MX6_PAD_NANDF_D4__GPIO2_IO04	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_NANDF_D5__GPIO2_IO05	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_NANDF_D6__GPIO2_IO06	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_NANDF_D7__GPIO2_IO07	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_NANDF_RB0__GPIO6_IO10	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_NANDF_WP_B__GPIO6_IO09	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_GPIO_2__GPIO1_IO02	| MUX_PAD_CTRL(WEAK_PULLDOWN) |
+					  MUX_MODE_SION,
+	MX6_PAD_GPIO_6__GPIO1_IO06	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_GPIO_4__GPIO1_IO04	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
 };
 
 static void setup_iomux_gpio(void)
@@ -281,7 +286,7 @@ static void setup_iomux_gpio(void)
 
 iomux_v3_cfg_t const usb_pads[] = {
 	/* USBH_EN */
-	MX6_PAD_GPIO_0__GPIO1_IO00 | MUX_PAD_CTRL(NO_PAD_CTRL),
+	MX6_PAD_GPIO_0__GPIO1_IO00 | MUX_PAD_CTRL(NO_PAD_CTRL) | MUX_MODE_SION,
 #	define GPIO_USBH_EN IMX_GPIO_NR(1, 0)
 	/* USB_VBUS_DET */
 	MX6_PAD_EIM_D28__GPIO3_IO28 | MUX_PAD_CTRL(NO_PAD_CTRL),
@@ -289,7 +294,7 @@ iomux_v3_cfg_t const usb_pads[] = {
 	/* USBO1_ID */
 	MX6_PAD_ENET_RX_ER__USB_OTG_ID	| MUX_PAD_CTRL(WEAK_PULLUP),
 	/* USBO1_EN */
-	MX6_PAD_EIM_D22__GPIO3_IO22 | MUX_PAD_CTRL(NO_PAD_CTRL),
+	MX6_PAD_EIM_D22__GPIO3_IO22 | MUX_PAD_CTRL(NO_PAD_CTRL) | MUX_MODE_SION,
 #	define GPIO_USBO_EN IMX_GPIO_NR(3, 22)
 };
 
@@ -321,7 +326,6 @@ static void setup_iomux_dte_uart(void)
 	imx_iomux_v3_setup_multiple_pads(uart1_pads_dte,
 					 ARRAY_SIZE(uart1_pads_dte));
 }
-
 static void setup_iomux_dce_uart(void)
 {
 	setup_dcemode_uart();
@@ -360,7 +364,7 @@ int board_ehci_power(int port, int on)
 #endif
 
 #ifdef CONFIG_FSL_ESDHC
-/* use the following sequence: eMMC, MMC, SD */
+/* use the following sequence: eMMC, MMC1, SD1 */
 struct fsl_esdhc_cfg usdhc_cfg[CONFIG_SYS_FSL_USDHC_NUM] = {
 	{USDHC3_BASE_ADDR},
 	{USDHC1_BASE_ADDR},
@@ -374,10 +378,12 @@ int board_mmc_getcd(struct mmc *mmc)
 
 	switch (cfg->esdhc_base) {
 	case USDHC1_BASE_ADDR:
+		gpio_request(GPIO_MMC_CD, "MMC_CD");
 		gpio_direction_input(GPIO_MMC_CD);
 		ret = !gpio_get_value(GPIO_MMC_CD);
 		break;
 	case USDHC2_BASE_ADDR:
+		gpio_request(GPIO_MMC_CD, "SD_CD");
 		gpio_direction_input(GPIO_SD_CD);
 		ret = !gpio_get_value(GPIO_SD_CD);
 		break;
@@ -424,7 +430,7 @@ int board_mmc_init(bd_t *bis)
 	}
 
 	return status;
-#else
+#else /* CONFIG_SPL_BUILD */
 	struct src *psrc = (struct src *)SRC_BASE_ADDR;
 	unsigned reg = readl(&psrc->sbmr1) >> 11;
 	/*
@@ -463,9 +469,9 @@ int board_mmc_init(bd_t *bis)
 	}
 
 	return fsl_esdhc_initialize(bis, &usdhc_cfg[0]);
-#endif
+#endif /* CONFIG_SPL_BUILD */
 }
-#endif
+#endif /* CONFIG_FSL_ESDHC */
 
 int board_phy_config(struct phy_device *phydev)
 {
@@ -489,6 +495,7 @@ int board_eth_init(bd_t *bis)
 	bus = fec_get_miibus(base, -1);
 	if (!bus)
 		return 0;
+
 	bus->reset = reset_enet_phy;
 	/* scan PHY 4,5,6,7 */
 	phydev = phy_find_by_mask(bus, (0xf << 4), PHY_INTERFACE_MODE_RGMII);
@@ -497,6 +504,7 @@ int board_eth_init(bd_t *bis)
 		puts("no PHY found\n");
 		return 0;
 	}
+
 	printf("using PHY@%d\n", phydev->addr);
 	ret = fec_probe(bis, -1, base, bus, phydev);
 	if (ret) {
@@ -504,7 +512,8 @@ int board_eth_init(bd_t *bis)
 		free(phydev);
 		free(bus);
 	}
-#endif
+#endif /* CONFIG_FEC_MXC */
+
 	return 0;
 }
 
@@ -520,18 +529,21 @@ static iomux_v3_cfg_t const pwr_intb_pads[] = {
 
 static iomux_v3_cfg_t const backlight_pads[] = {
 	/* Backlight on RGB connector: J15 */
-	MX6_PAD_EIM_DA13__GPIO3_IO13 | MUX_PAD_CTRL(NO_PAD_CTRL),
+	MX6_PAD_EIM_DA13__GPIO3_IO13 | MUX_PAD_CTRL(NO_PAD_CTRL) |
+				       MUX_MODE_SION,
 #define RGB_BACKLIGHT_GP IMX_GPIO_NR(3, 13)
 	/* additional CPU pin on BKL_PWM, keep in tristate */
 	MX6_PAD_EIM_DA14__GPIO3_IO14 | MUX_PAD_CTRL(TRISTATE),
 	/* Backlight PWM, used as GPIO in U-Boot */
-	MX6_PAD_SD4_DAT2__GPIO2_IO10 | MUX_PAD_CTRL(NO_PAD_CTRL),
+	MX6_PAD_SD4_DAT2__GPIO2_IO10 | MUX_PAD_CTRL(NO_PAD_CTRL) |
+				       MUX_MODE_SION,
 #define RGB_BACKLIGHTPWM_GP IMX_GPIO_NR(2, 10)
 	/* buffer output enable 0: buffer enabled */
-	MX6_PAD_EIM_A25__GPIO5_IO02 | MUX_PAD_CTRL(WEAK_PULLUP),
+	MX6_PAD_EIM_A25__GPIO5_IO02 | MUX_PAD_CTRL(WEAK_PULLUP) | MUX_MODE_SION,
 #define RGB_BACKLIGHTPWM_OE IMX_GPIO_NR(5, 2)
 	/* PSAVE# integrated VDAC */
-	MX6_PAD_EIM_BCLK__GPIO6_IO31 | MUX_PAD_CTRL(NO_PAD_CTRL),
+	MX6_PAD_EIM_BCLK__GPIO6_IO31 | MUX_PAD_CTRL(NO_PAD_CTRL) |
+				       MUX_MODE_SION,
 #define VGA_PSAVE_NOT_GP IMX_GPIO_NR(6, 31)
 };
 
@@ -741,6 +753,9 @@ static void setup_display(void)
 	imx_iomux_v3_setup_multiple_pads(backlight_pads,
 					 ARRAY_SIZE(backlight_pads));
 	/* use 0 for EDT 7", use 1 for LG fullHD panel */
+	gpio_request(RGB_BACKLIGHTPWM_GP, "BKL1_PWM");
+	gpio_request(RGB_BACKLIGHTPWM_OE, "BKL1_PWM_EN");
+	gpio_request(RGB_BACKLIGHT_GP, "BKL1_ON");
 	gpio_direction_output(RGB_BACKLIGHTPWM_GP, 0);
 	gpio_direction_output(RGB_BACKLIGHTPWM_OE, 0);
 	gpio_direction_output(RGB_BACKLIGHT_GP, 1);
@@ -1134,7 +1149,6 @@ MX6_MMDC_P0_MDSCR, 0x00000000,
 MX6_MMDC_P0_MAPSR, 0x00011006,
 };
 
-
 static void ccgr_init(void)
 {
 	struct mxc_ccm_reg *ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR;
@@ -1223,7 +1237,7 @@ void reset_cpu(ulong addr)
 {
 }
 
-#endif
+#endif /* CONFIG_SPL_BUILD */
 
 static struct mxc_serial_platdata mxc_serial_plat = {
 	.reg = (struct mxc_uart *)UART1_BASE,
diff --git a/configs/apalis_imx6_defconfig b/configs/apalis_imx6_defconfig
index 985d8554b8..0f6119bef5 100644
--- a/configs/apalis_imx6_defconfig
+++ b/configs/apalis_imx6_defconfig
@@ -51,6 +51,7 @@ CONFIG_ENV_IS_IN_MMC=y
 CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
 CONFIG_DWC_AHSATA=y
 CONFIG_DFU_MMC=y
+CONFIG_DM_GPIO=y
 CONFIG_FSL_ESDHC=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_MICREL=y
-- 
2.20.1

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

* [U-Boot] [PATCH v2 08/23] apalis_imx6: enable pin control driver
  2019-02-08 17:12 [U-Boot] [PATCH v2 00/23] apalis imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (6 preceding siblings ...)
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 07/23] apalis_imx6: clean-up and migrate gpios to using driver model Marcel Ziswiler
@ 2019-02-08 17:12 ` Marcel Ziswiler
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 09/23] apalis_imx6: migrate i2c to using driver model Marcel Ziswiler
                   ` (14 subsequent siblings)
  22 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:12 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Enable pin control driver as required for further driver model
migration.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2: None

 configs/apalis_imx6_defconfig | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/configs/apalis_imx6_defconfig b/configs/apalis_imx6_defconfig
index 0f6119bef5..0763b1d986 100644
--- a/configs/apalis_imx6_defconfig
+++ b/configs/apalis_imx6_defconfig
@@ -57,6 +57,8 @@ CONFIG_PHYLIB=y
 CONFIG_PHY_MICREL=y
 CONFIG_PHY_MICREL_KSZ90X1=y
 CONFIG_MII=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_IMX6=y
 CONFIG_IMX_THERMAL=y
 CONFIG_USB=y
 CONFIG_USB_KEYBOARD=y
-- 
2.20.1

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

* [U-Boot] [PATCH v2 09/23] apalis_imx6: migrate i2c to using driver model
  2019-02-08 17:12 [U-Boot] [PATCH v2 00/23] apalis imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (7 preceding siblings ...)
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 08/23] apalis_imx6: enable pin control driver Marcel Ziswiler
@ 2019-02-08 17:12 ` Marcel Ziswiler
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 10/23] apalis_imx6: migrate pmic and regulator " Marcel Ziswiler
                   ` (13 subsequent siblings)
  22 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:12 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Migrate I2C to using driver model.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2:
- Also update copyright year in PMIC header file.
- And drop compiler.h include.

 board/toradex/apalis_imx6/apalis_imx6.c | 88 +------------------------
 board/toradex/apalis_imx6/pf0100.c      | 59 ++++++++---------
 board/toradex/apalis_imx6/pf0100.h      |  2 +-
 configs/apalis_imx6_defconfig           |  1 +
 include/configs/apalis_imx6.h           |  8 +--
 5 files changed, 36 insertions(+), 122 deletions(-)

diff --git a/board/toradex/apalis_imx6/apalis_imx6.c b/board/toradex/apalis_imx6/apalis_imx6.c
index 0a60b36447..2c16c31021 100644
--- a/board/toradex/apalis_imx6/apalis_imx6.c
+++ b/board/toradex/apalis_imx6/apalis_imx6.c
@@ -20,13 +20,11 @@
 #include <asm/gpio.h>
 #include <asm/mach-imx/boot_mode.h>
 #include <asm/mach-imx/iomux-v3.h>
-#include <asm/mach-imx/mxc_i2c.h>
 #include <asm/mach-imx/sata.h>
 #include <asm/mach-imx/video.h>
 #include <dm/platform_data/serial_mxc.h>
 #include <environment.h>
 #include <fsl_esdhc.h>
-#include <i2c.h>
 #include <imx_thermal.h>
 #include <micrel.h>
 #include <miiphy.h>
@@ -50,32 +48,16 @@ DECLARE_GLOBAL_DATA_PTR;
 #define ENET_PAD_CTRL  (PAD_CTL_PUS_100K_UP |			\
 	PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
 
-#define SPI_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_SPEED_MED |		\
-	PAD_CTL_DSE_40ohm     | PAD_CTL_SRE_FAST)
-
-#define BUTTON_PAD_CTRL (PAD_CTL_PUS_100K_UP |			\
-	PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
-
-#define I2C_PAD_CTRL	(PAD_CTL_PUS_100K_UP |			\
-	PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS |	\
-	PAD_CTL_ODE | PAD_CTL_SRE_FAST)
-
 #define WEAK_PULLUP	(PAD_CTL_PUS_100K_UP |			\
 	PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS |	\
 	PAD_CTL_SRE_SLOW)
 
-#define NO_PULLUP	(					\
-	PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS |	\
-	PAD_CTL_SRE_SLOW)
-
 #define WEAK_PULLDOWN	(PAD_CTL_PUS_100K_DOWN |		\
 	PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm |			\
 	PAD_CTL_HYS | PAD_CTL_SRE_SLOW)
 
 #define TRISTATE	(PAD_CTL_HYS | PAD_CTL_SPEED_MED)
 
-#define OUTPUT_40OHM (PAD_CTL_SPEED_MED|PAD_CTL_DSE_40ohm)
-
 #define OUTPUT_RGB (PAD_CTL_SPEED_MED|PAD_CTL_DSE_60ohm|PAD_CTL_SRE_FAST)
 
 int dram_init(void)
@@ -97,63 +79,6 @@ iomux_v3_cfg_t const uart1_pads_dte[] = {
 	MX6_PAD_CSI0_DAT11__UART1_TX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL),
 };
 
-#define PC MUX_PAD_CTRL(I2C_PAD_CTRL)
-/* Apalis I2C1 */
-struct i2c_pads_info i2c_pad_info1 = {
-	.scl = {
-		.i2c_mode = MX6_PAD_CSI0_DAT9__I2C1_SCL | PC,
-		.gpio_mode = MX6_PAD_CSI0_DAT9__GPIO5_IO27 | PC,
-		.gp = IMX_GPIO_NR(5, 27)
-	},
-	.sda = {
-		.i2c_mode = MX6_PAD_CSI0_DAT8__I2C1_SDA | PC,
-		.gpio_mode = MX6_PAD_CSI0_DAT8__GPIO5_IO26 | PC,
-		.gp = IMX_GPIO_NR(5, 26)
-	}
-};
-
-/* Apalis local, PMIC, SGTL5000, STMPE811 */
-struct i2c_pads_info i2c_pad_info_loc = {
-	.scl = {
-		.i2c_mode = MX6_PAD_KEY_COL3__I2C2_SCL | PC,
-		.gpio_mode = MX6_PAD_KEY_COL3__GPIO4_IO12 | PC,
-		.gp = IMX_GPIO_NR(4, 12)
-	},
-	.sda = {
-		.i2c_mode = MX6_PAD_KEY_ROW3__I2C2_SDA | PC,
-		.gpio_mode = MX6_PAD_KEY_ROW3__GPIO4_IO13 | PC,
-		.gp = IMX_GPIO_NR(4, 13)
-	}
-};
-
-/* Apalis I2C3 / CAM */
-struct i2c_pads_info i2c_pad_info3 = {
-	.scl = {
-		.i2c_mode = MX6_PAD_EIM_D17__I2C3_SCL | PC,
-		.gpio_mode = MX6_PAD_EIM_D17__GPIO3_IO17 | PC,
-		.gp = IMX_GPIO_NR(3, 17)
-	},
-	.sda = {
-		.i2c_mode = MX6_PAD_EIM_D18__I2C3_SDA | PC,
-		.gpio_mode = MX6_PAD_EIM_D18__GPIO3_IO18 | PC,
-		.gp = IMX_GPIO_NR(3, 18)
-	}
-};
-
-/* Apalis I2C2 / DDC */
-struct i2c_pads_info i2c_pad_info_ddc = {
-	.scl = {
-		.i2c_mode = MX6_PAD_EIM_EB2__HDMI_TX_DDC_SCL | PC,
-		.gpio_mode = MX6_PAD_EIM_EB2__GPIO2_IO30 | PC,
-		.gp = IMX_GPIO_NR(2, 30)
-	},
-	.sda = {
-		.i2c_mode = MX6_PAD_EIM_D16__HDMI_TX_DDC_SDA | PC,
-		.gpio_mode = MX6_PAD_EIM_D16__GPIO3_IO16 | PC,
-		.gp = IMX_GPIO_NR(3, 16)
-	}
-};
-
 /* Apalis MMC1 */
 iomux_v3_cfg_t const usdhc1_pads[] = {
 	MX6_PAD_SD1_CLK__SD1_CLK   | MUX_PAD_CTRL(USDHC_PAD_CTRL),
@@ -583,12 +508,6 @@ static void do_enable_hdmi(struct display_info_t const *dev)
 	imx_enable_hdmi_phy();
 }
 
-static int detect_i2c(struct display_info_t const *dev)
-{
-	return (0 == i2c_set_bus_num(dev->bus)) &&
-	       (0 == i2c_probe(dev->addr));
-}
-
 static void enable_lvds(struct display_info_t const *dev)
 {
 	struct iomuxc *iomux = (struct iomuxc *)
@@ -682,7 +601,6 @@ struct display_info_t const displays[] = {{
 	.bus	= -1,
 	.addr	= 0,
 	.pixfmt	= IPU_PIX_FMT_LVDS666,
-	.detect	= detect_i2c,
 	.enable	= enable_lvds,
 	.mode	= {
 		.name           = "wsvga-lvds",
@@ -788,10 +706,6 @@ int board_init(void)
 	/* address of boot parameters */
 	gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
 
-	setup_i2c(0, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info1);
-	setup_i2c(1, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info_loc);
-	setup_i2c(2, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info3);
-
 #if defined(CONFIG_VIDEO_IPUV3)
 	setup_display();
 #endif
@@ -1209,7 +1123,7 @@ void board_init_f(ulong dummy)
 	ccgr_init();
 	gpr_init();
 
-	/* iomux and setup of i2c */
+	/* iomux */
 	board_early_init_f();
 
 	/* setup GP timer */
diff --git a/board/toradex/apalis_imx6/pf0100.c b/board/toradex/apalis_imx6/pf0100.c
index 7334e92f2e..3a944b3699 100644
--- a/board/toradex/apalis_imx6/pf0100.c
+++ b/board/toradex/apalis_imx6/pf0100.c
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0+
 /*
- * Copyright (C) 2014-2016, Toradex AG
+ * Copyright (C) 2014-2019, Toradex AG
  */
 
 /*
@@ -9,7 +9,6 @@
 
 #include <common.h>
 #include <i2c.h>
-#include <linux/compiler.h>
 #include <asm/arch/imx-regs.h>
 #include <asm/arch/iomux.h>
 #include <asm/arch/mx6-pins.h>
@@ -30,22 +29,25 @@ static __maybe_unused iomux_v3_cfg_t const pmic_prog_pads[] = {
 
 unsigned pmic_init(void)
 {
+	int rc;
+	struct udevice *dev = NULL;
 	unsigned programmed = 0;
 	uchar bus = 1;
 	uchar devid, revid, val;
 
 	puts("PMIC: ");
-	if (!((0 == i2c_set_bus_num(bus)) &&
-	      (0 == i2c_probe(PFUZE100_I2C_ADDR)))) {
-		puts("i2c bus failed\n");
+	rc = i2c_get_chip_for_busnum(bus, PFUZE100_I2C_ADDR, 1, &dev);
+	if (rc) {
+		printf("failed to get device for PMIC at address 0x%x\n",
+		       PFUZE100_I2C_ADDR);
 		return 0;
 	}
 	/* get device ident */
-	if (i2c_read(PFUZE100_I2C_ADDR, PFUZE100_DEVICEID, 1, &devid, 1) < 0) {
+	if (dm_i2c_read(dev, PFUZE100_DEVICEID, &devid, 1) < 0) {
 		puts("i2c pmic devid read failed\n");
 		return 0;
 	}
-	if (i2c_read(PFUZE100_I2C_ADDR, PFUZE100_REVID, 1, &revid, 1) < 0) {
+	if (dm_i2c_read(dev, PFUZE100_REVID, &revid, 1) < 0) {
 		puts("i2c pmic revid read failed\n");
 		return 0;
 	}
@@ -60,7 +62,7 @@ unsigned pmic_init(void)
 		for (j = 0; j < 0x80; ) {
 			printf("\n%2x", j);
 			for (i = 0; i < 16; i++) {
-				i2c_read(PFUZE100_I2C_ADDR, j+i, 1, &val, 1);
+				dm_i2c_read(dev, j + i, &val, 1);
 				printf("\t%2x", val);
 			}
 			j += 0x10;
@@ -68,8 +70,7 @@ unsigned pmic_init(void)
 		printf("\nEXT Page 1");
 
 		val = PFUZE100_PAGE_REGISTER_PAGE1;
-		if (i2c_write(PFUZE100_I2C_ADDR, PFUZE100_PAGE_REGISTER, 1,
-			      &val, 1)) {
+		if (dm_i2c_write(dev, PFUZE100_PAGE_REGISTER, &val, 1)) {
 			puts("i2c write failed\n");
 			return 0;
 		}
@@ -77,7 +78,7 @@ unsigned pmic_init(void)
 		for (j = 0x80; j < 0x100; ) {
 			printf("\n%2x", j);
 			for (i = 0; i < 16; i++) {
-				i2c_read(PFUZE100_I2C_ADDR, j+i, 1, &val, 1);
+				dm_i2c_read(dev, j + i, &val, 1);
 				printf("\t%2x", val);
 			}
 			j += 0x10;
@@ -85,8 +86,7 @@ unsigned pmic_init(void)
 		printf("\nEXT Page 2");
 
 		val = PFUZE100_PAGE_REGISTER_PAGE2;
-		if (i2c_write(PFUZE100_I2C_ADDR, PFUZE100_PAGE_REGISTER, 1,
-			      &val, 1)) {
+		if (dm_i2c_write(dev, PFUZE100_PAGE_REGISTER, &val, 1)) {
 			puts("i2c write failed\n");
 			return 0;
 		}
@@ -94,35 +94,35 @@ unsigned pmic_init(void)
 		for (j = 0x80; j < 0x100; ) {
 			printf("\n%2x", j);
 			for (i = 0; i < 16; i++) {
-				i2c_read(PFUZE100_I2C_ADDR, j+i, 1, &val, 1);
+				dm_i2c_read(dev, j + i, &val, 1);
 				printf("\t%2x", val);
 			}
 			j += 0x10;
 		}
 		printf("\n");
 	}
-#endif
+#endif /* DEBUG */
 	/* get device programmed state */
 	val = PFUZE100_PAGE_REGISTER_PAGE1;
-	if (i2c_write(PFUZE100_I2C_ADDR, PFUZE100_PAGE_REGISTER, 1, &val, 1)) {
+	if (dm_i2c_write(dev, PFUZE100_PAGE_REGISTER, &val, 1)) {
 		puts("i2c write failed\n");
 		return 0;
 	}
-	if (i2c_read(PFUZE100_I2C_ADDR, PFUZE100_FUSE_POR1, 1, &val, 1) < 0) {
+	if (dm_i2c_read(dev, PFUZE100_FUSE_POR1, &val, 1) < 0) {
 		puts("i2c fuse_por read failed\n");
 		return 0;
 	}
 	if (val & PFUZE100_FUSE_POR_M)
 		programmed++;
 
-	if (i2c_read(PFUZE100_I2C_ADDR, PFUZE100_FUSE_POR2, 1, &val, 1) < 0) {
+	if (dm_i2c_read(dev, PFUZE100_FUSE_POR2, &val, 1) < 0) {
 		puts("i2c fuse_por read failed\n");
 		return programmed;
 	}
 	if (val & PFUZE100_FUSE_POR_M)
 		programmed++;
 
-	if (i2c_read(PFUZE100_I2C_ADDR, PFUZE100_FUSE_POR3, 1, &val, 1) < 0) {
+	if (dm_i2c_read(dev, PFUZE100_FUSE_POR3, &val, 1) < 0) {
 		puts("i2c fuse_por read failed\n");
 		return programmed;
 	}
@@ -145,18 +145,15 @@ unsigned pmic_init(void)
 	if (programmed != 3) {
 		/* set VGEN1 to 1.2V */
 		val = PFUZE100_VGEN1_VAL;
-		if (i2c_write(PFUZE100_I2C_ADDR, PFUZE100_VGEN1CTL, 1,
-			      &val, 1)) {
+		if (dm_i2c_write(dev, PFUZE100_VGEN1CTL, &val, 1)) {
 			puts("i2c write failed\n");
 			return programmed;
 		}
 
 		/* set SWBST to 5.0V */
 		val = PFUZE100_SWBST_VAL;
-		if (i2c_write(PFUZE100_I2C_ADDR, PFUZE100_SWBSTCTL, 1,
-			      &val, 1)) {
+		if (dm_i2c_write(dev, PFUZE100_SWBSTCTL, &val, 1))
 			puts("i2c write failed\n");
-		}
 	}
 	return programmed;
 }
@@ -164,6 +161,8 @@ unsigned pmic_init(void)
 #ifndef CONFIG_SPL_BUILD
 static int pf0100_prog(void)
 {
+	int rc;
+	struct udevice *dev = NULL;
 	unsigned char bus = 1;
 	unsigned char val;
 	unsigned int i;
@@ -177,9 +176,10 @@ static int pf0100_prog(void)
 					 ARRAY_SIZE(pmic_prog_pads));
 	gpio_direction_output(PMIC_PROG_VOLTAGE, 0);
 
-	if (!((0 == i2c_set_bus_num(bus)) &&
-	      (0 == i2c_probe(PFUZE100_I2C_ADDR)))) {
-		puts("i2c bus failed\n");
+	rc = i2c_get_chip_for_busnum(bus, PFUZE100_I2C_ADDR, 1, &dev);
+	if (rc) {
+		printf("failed to get device for PMIC@address 0x%x\n",
+		       PFUZE100_I2C_ADDR);
 		return CMD_RET_FAILURE;
 	}
 
@@ -187,8 +187,7 @@ static int pf0100_prog(void)
 		switch (pmic_otp_prog[i].cmd) {
 		case pmic_i2c:
 			val = (unsigned char) (pmic_otp_prog[i].value & 0xff);
-			if (i2c_write(PFUZE100_I2C_ADDR, pmic_otp_prog[i].reg,
-				      1, &val, 1)) {
+			if (dm_i2c_write(dev, pmic_otp_prog[i].reg, &val, 1)) {
 				printf("i2c write failed, reg 0x%2x, value 0x%2x\n",
 				       pmic_otp_prog[i].reg, val);
 				return CMD_RET_FAILURE;
@@ -227,4 +226,4 @@ U_BOOT_CMD(
 	"Program the OTP fuses on the PMIC PF0100",
 	""
 );
-#endif
+#endif /* CONFIG_SPL_BUILD */
diff --git a/board/toradex/apalis_imx6/pf0100.h b/board/toradex/apalis_imx6/pf0100.h
index c0efb79bbc..b854fe8c54 100644
--- a/board/toradex/apalis_imx6/pf0100.h
+++ b/board/toradex/apalis_imx6/pf0100.h
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0+ */
 /*
- * Copyright (C) 2014-2016, Toradex AG
+ * Copyright (C) 2014-2019, Toradex AG
  */
 
 /*
diff --git a/configs/apalis_imx6_defconfig b/configs/apalis_imx6_defconfig
index 0763b1d986..60c4d9720d 100644
--- a/configs/apalis_imx6_defconfig
+++ b/configs/apalis_imx6_defconfig
@@ -52,6 +52,7 @@ CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
 CONFIG_DWC_AHSATA=y
 CONFIG_DFU_MMC=y
 CONFIG_DM_GPIO=y
+CONFIG_DM_I2C=y
 CONFIG_FSL_ESDHC=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_MICREL=y
diff --git a/include/configs/apalis_imx6.h b/include/configs/apalis_imx6.h
index 7222285ab3..5ab009c8f3 100644
--- a/include/configs/apalis_imx6.h
+++ b/include/configs/apalis_imx6.h
@@ -34,12 +34,12 @@
 #define CONFIG_MXC_UART_BASE		UART1_BASE
 
 /* I2C Configs */
-#define CONFIG_SYS_I2C
 #define CONFIG_SYS_I2C_MXC
-#define CONFIG_SYS_I2C_MXC_I2C1         /* enable I2C bus 1 */
-#define CONFIG_SYS_I2C_MXC_I2C2         /* enable I2C bus 2 */
-#define CONFIG_SYS_I2C_MXC_I2C3         /* enable I2C bus 3 */
+#define CONFIG_SYS_I2C_MXC_I2C1		/* enable I2C bus 1 */
+#define CONFIG_SYS_I2C_MXC_I2C2		/* enable I2C bus 2 */
+#define CONFIG_SYS_I2C_MXC_I2C3		/* enable I2C bus 3 */
 #define CONFIG_SYS_I2C_SPEED		100000
+#define CONFIG_SYS_MXC_I2C3_SPEED	400000
 
 /* OCOTP Configs */
 #ifdef CONFIG_CMD_FUSE
-- 
2.20.1

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

* [U-Boot] [PATCH v2 10/23] apalis_imx6: migrate pmic and regulator to using driver model
  2019-02-08 17:12 [U-Boot] [PATCH v2 00/23] apalis imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (8 preceding siblings ...)
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 09/23] apalis_imx6: migrate i2c to using driver model Marcel Ziswiler
@ 2019-02-08 17:12 ` Marcel Ziswiler
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 11/23] apalis_imx6: migrate mmc and sata " Marcel Ziswiler
                   ` (12 subsequent siblings)
  22 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:12 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Migrate PMIC and regulator to using driver model.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2: None

 configs/apalis_imx6_defconfig | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/configs/apalis_imx6_defconfig b/configs/apalis_imx6_defconfig
index 60c4d9720d..7e973ded74 100644
--- a/configs/apalis_imx6_defconfig
+++ b/configs/apalis_imx6_defconfig
@@ -45,6 +45,8 @@ CONFIG_CMD_USB_SDP=y
 CONFIG_CMD_USB_MASS_STORAGE=y
 CONFIG_CMD_BMP=y
 CONFIG_CMD_CACHE=y
+CONFIG_CMD_PMIC=y
+CONFIG_CMD_REGULATOR=y
 CONFIG_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="imx6-apalis"
 CONFIG_ENV_IS_IN_MMC=y
@@ -60,6 +62,11 @@ CONFIG_PHY_MICREL_KSZ90X1=y
 CONFIG_MII=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX6=y
+CONFIG_DM_PMIC=y
+CONFIG_DM_PMIC_PFUZE100=y
+CONFIG_DM_REGULATOR=y
+CONFIG_DM_REGULATOR_PFUZE100=y
+CONFIG_DM_REGULATOR_FIXED=y
 CONFIG_IMX_THERMAL=y
 CONFIG_USB=y
 CONFIG_USB_KEYBOARD=y
-- 
2.20.1

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

* [U-Boot] [PATCH v2 11/23] apalis_imx6: migrate mmc and sata to using driver model
  2019-02-08 17:12 [U-Boot] [PATCH v2 00/23] apalis imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (9 preceding siblings ...)
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 10/23] apalis_imx6: migrate pmic and regulator " Marcel Ziswiler
@ 2019-02-08 17:12 ` Marcel Ziswiler
  2019-02-25 10:39   ` Soeren Moch
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 12/23] apalis_imx6: migrate usb " Marcel Ziswiler
                   ` (11 subsequent siblings)
  22 siblings, 1 reply; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:12 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Migrate MMC and SATA to using driver model.

While at it also enable SCSI driver model.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2: None

 board/toradex/apalis_imx6/apalis_imx6.c | 98 +++++++++++++++----------
 configs/apalis_imx6_defconfig           |  3 +
 include/configs/apalis_imx6.h           |  3 -
 3 files changed, 61 insertions(+), 43 deletions(-)

diff --git a/board/toradex/apalis_imx6/apalis_imx6.c b/board/toradex/apalis_imx6/apalis_imx6.c
index 2c16c31021..db06c4e064 100644
--- a/board/toradex/apalis_imx6/apalis_imx6.c
+++ b/board/toradex/apalis_imx6/apalis_imx6.c
@@ -9,6 +9,7 @@
 #include <common.h>
 #include <dm.h>
 
+#include <ahci.h>
 #include <asm/arch/clock.h>
 #include <asm/arch/crm_regs.h>
 #include <asm/arch/imx-regs.h>
@@ -22,7 +23,9 @@
 #include <asm/mach-imx/iomux-v3.h>
 #include <asm/mach-imx/sata.h>
 #include <asm/mach-imx/video.h>
+#include <dm/device-internal.h>
 #include <dm/platform_data/serial_mxc.h>
+#include <dwc_ahsata.h>
 #include <environment.h>
 #include <fsl_esdhc.h>
 #include <imx_thermal.h>
@@ -60,6 +63,8 @@ DECLARE_GLOBAL_DATA_PTR;
 
 #define OUTPUT_RGB (PAD_CTL_SPEED_MED|PAD_CTL_DSE_60ohm|PAD_CTL_SRE_FAST)
 
+#define APALIS_IMX6_SATA_INIT_RETRIES	10
+
 int dram_init(void)
 {
 	/* use the DDR controllers configured size */
@@ -79,6 +84,7 @@ iomux_v3_cfg_t const uart1_pads_dte[] = {
 	MX6_PAD_CSI0_DAT11__UART1_TX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL),
 };
 
+#if defined(CONFIG_FSL_ESDHC) && defined(CONFIG_SPL_BUILD)
 /* Apalis MMC1 */
 iomux_v3_cfg_t const usdhc1_pads[] = {
 	MX6_PAD_SD1_CLK__SD1_CLK   | MUX_PAD_CTRL(USDHC_PAD_CTRL),
@@ -121,6 +127,7 @@ iomux_v3_cfg_t const usdhc3_pads[] = {
 	MX6_PAD_SD3_DAT7__SD3_DATA7 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
 	MX6_PAD_SD3_RST__GPIO7_IO08 | MUX_PAD_CTRL(WEAK_PULLUP) | MUX_MODE_SION,
 };
+#endif /* CONFIG_FSL_ESDHC & CONFIG_SPL_BUILD */
 
 int mx6_rgmii_rework(struct phy_device *phydev)
 {
@@ -288,7 +295,7 @@ int board_ehci_power(int port, int on)
 }
 #endif
 
-#ifdef CONFIG_FSL_ESDHC
+#if defined(CONFIG_FSL_ESDHC) && defined(CONFIG_SPL_BUILD)
 /* use the following sequence: eMMC, MMC1, SD1 */
 struct fsl_esdhc_cfg usdhc_cfg[CONFIG_SYS_FSL_USDHC_NUM] = {
 	{USDHC3_BASE_ADDR},
@@ -319,43 +326,6 @@ int board_mmc_getcd(struct mmc *mmc)
 
 int board_mmc_init(bd_t *bis)
 {
-#ifndef CONFIG_SPL_BUILD
-	s32 status = 0;
-	u32 index = 0;
-
-	usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK);
-	usdhc_cfg[1].sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK);
-	usdhc_cfg[2].sdhc_clk = mxc_get_clock(MXC_ESDHC2_CLK);
-
-	usdhc_cfg[0].max_bus_width = 8;
-	usdhc_cfg[1].max_bus_width = 8;
-	usdhc_cfg[2].max_bus_width = 4;
-
-	for (index = 0; index < CONFIG_SYS_FSL_USDHC_NUM; ++index) {
-		switch (index) {
-		case 0:
-			imx_iomux_v3_setup_multiple_pads(
-				usdhc3_pads, ARRAY_SIZE(usdhc3_pads));
-			break;
-		case 1:
-			imx_iomux_v3_setup_multiple_pads(
-				usdhc1_pads, ARRAY_SIZE(usdhc1_pads));
-			break;
-		case 2:
-			imx_iomux_v3_setup_multiple_pads(
-				usdhc2_pads, ARRAY_SIZE(usdhc2_pads));
-			break;
-		default:
-			printf("Warning: you configured more USDHC controllers (%d) then supported by the board (%d)\n",
-			       index + 1, CONFIG_SYS_FSL_USDHC_NUM);
-			return status;
-		}
-
-		status |= fsl_esdhc_initialize(bis, &usdhc_cfg[index]);
-	}
-
-	return status;
-#else /* CONFIG_SPL_BUILD */
 	struct src *psrc = (struct src *)SRC_BASE_ADDR;
 	unsigned reg = readl(&psrc->sbmr1) >> 11;
 	/*
@@ -394,9 +364,8 @@ int board_mmc_init(bd_t *bis)
 	}
 
 	return fsl_esdhc_initialize(bis, &usdhc_cfg[0]);
-#endif /* CONFIG_SPL_BUILD */
 }
-#endif /* CONFIG_FSL_ESDHC */
+#endif /* CONFIG_FSL_ESDHC & CONFIG_SPL_BUILD */
 
 int board_phy_config(struct phy_device *phydev)
 {
@@ -1162,3 +1131,52 @@ U_BOOT_DEVICE(mxc_serial) = {
 	.name = "serial_mxc",
 	.platdata = &mxc_serial_plat,
 };
+
+#if CONFIG_IS_ENABLED(AHCI)
+static int sata_imx_probe(struct udevice *dev)
+{
+	int i, err;
+
+	for (i = 0; i < APALIS_IMX6_SATA_INIT_RETRIES; i++) {
+		err = setup_sata();
+		if (err) {
+			printf("SATA setup failed: %d\n", err);
+			return err;
+		}
+
+		udelay(100);
+
+		err = dwc_ahsata_probe(dev);
+		if (!err)
+			break;
+
+		/* There is no device on the SATA port */
+		if (sata_dm_port_status(0, 0) == 0)
+			break;
+
+		/* There's a device, but link not established. Retry */
+		device_remove(dev, DM_REMOVE_NORMAL);
+	}
+
+	return 0;
+}
+
+struct ahci_ops sata_imx_ops = {
+	.port_status = dwc_ahsata_port_status,
+	.reset	= dwc_ahsata_bus_reset,
+	.scan	= dwc_ahsata_scan,
+};
+
+static const struct udevice_id sata_imx_ids[] = {
+	{ .compatible = "fsl,imx6q-ahci" },
+	{ }
+};
+
+U_BOOT_DRIVER(sata_imx) = {
+	.name		= "dwc_ahci",
+	.id		= UCLASS_AHCI,
+	.of_match	= sata_imx_ids,
+	.ops		= &sata_imx_ops,
+	.probe		= sata_imx_probe,
+};
+#endif /* AHCI */
diff --git a/configs/apalis_imx6_defconfig b/configs/apalis_imx6_defconfig
index 7e973ded74..510161ad32 100644
--- a/configs/apalis_imx6_defconfig
+++ b/configs/apalis_imx6_defconfig
@@ -9,6 +9,7 @@ CONFIG_SPL_MMC_SUPPORT=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_SPL=y
 CONFIG_CMD_HDMIDETECT=y
+CONFIG_AHCI=y
 CONFIG_DISTRO_DEFAULTS=y
 CONFIG_NR_DRAM_BANKS=1
 CONFIG_FIT=y
@@ -55,6 +56,7 @@ CONFIG_DWC_AHSATA=y
 CONFIG_DFU_MMC=y
 CONFIG_DM_GPIO=y
 CONFIG_DM_I2C=y
+CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_MICREL=y
@@ -67,6 +69,7 @@ CONFIG_DM_PMIC_PFUZE100=y
 CONFIG_DM_REGULATOR=y
 CONFIG_DM_REGULATOR_PFUZE100=y
 CONFIG_DM_REGULATOR_FIXED=y
+CONFIG_DM_SCSI=y
 CONFIG_IMX_THERMAL=y
 CONFIG_USB=y
 CONFIG_USB_KEYBOARD=y
diff --git a/include/configs/apalis_imx6.h b/include/configs/apalis_imx6.h
index 5ab009c8f3..6b20d1e104 100644
--- a/include/configs/apalis_imx6.h
+++ b/include/configs/apalis_imx6.h
@@ -57,9 +57,6 @@
  * SATA Configs
  */
 #ifdef CONFIG_CMD_SATA
-#define CONFIG_SYS_SATA_MAX_DEVICE	1
-#define CONFIG_DWC_AHSATA_PORT_ID	0
-#define CONFIG_DWC_AHSATA_BASE_ADDR	SATA_ARB_BASE_ADDR
 #define CONFIG_LBA48
 #endif
 
-- 
2.20.1

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

* [U-Boot] [PATCH v2 12/23] apalis_imx6: migrate usb to using driver model
  2019-02-08 17:12 [U-Boot] [PATCH v2 00/23] apalis imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (10 preceding siblings ...)
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 11/23] apalis_imx6: migrate mmc and sata " Marcel Ziswiler
@ 2019-02-08 17:12 ` Marcel Ziswiler
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 13/23] apalis_imx6: drop CONFIG_OF_SYSTEM_SETUP Marcel Ziswiler
                   ` (10 subsequent siblings)
  22 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:12 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Migrate USB to using driver model.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2: None

 board/toradex/apalis_imx6/apalis_imx6.c | 22 ----------------------
 configs/apalis_imx6_defconfig           |  1 +
 2 files changed, 1 insertion(+), 22 deletions(-)

diff --git a/board/toradex/apalis_imx6/apalis_imx6.c b/board/toradex/apalis_imx6/apalis_imx6.c
index db06c4e064..1faa94f99d 100644
--- a/board/toradex/apalis_imx6/apalis_imx6.c
+++ b/board/toradex/apalis_imx6/apalis_imx6.c
@@ -271,28 +271,6 @@ int board_ehci_hcd_init(int port)
 	imx_iomux_v3_setup_multiple_pads(usb_pads, ARRAY_SIZE(usb_pads));
 	return 0;
 }
-
-int board_ehci_power(int port, int on)
-{
-	switch (port) {
-	case 0:
-		/* control OTG power */
-		gpio_direction_output(GPIO_USBO_EN, on);
-		mdelay(100);
-		break;
-	case 1:
-		/* Control MXM USBH */
-		gpio_direction_output(GPIO_USBH_EN, on);
-		mdelay(2);
-		/* Control onboard USB Hub VBUS */
-		gpio_direction_output(GPIO_USB_VBUS_DET, on);
-		mdelay(100);
-		break;
-	default:
-		break;
-	}
-	return 0;
-}
 #endif
 
 #if defined(CONFIG_FSL_ESDHC) && defined(CONFIG_SPL_BUILD)
diff --git a/configs/apalis_imx6_defconfig b/configs/apalis_imx6_defconfig
index 510161ad32..1ab5edc966 100644
--- a/configs/apalis_imx6_defconfig
+++ b/configs/apalis_imx6_defconfig
@@ -72,6 +72,7 @@ CONFIG_DM_REGULATOR_FIXED=y
 CONFIG_DM_SCSI=y
 CONFIG_IMX_THERMAL=y
 CONFIG_USB=y
+CONFIG_DM_USB=y
 CONFIG_USB_KEYBOARD=y
 CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_MANUFACTURER="Toradex"
-- 
2.20.1

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

* [U-Boot] [PATCH v2 13/23] apalis_imx6: drop CONFIG_OF_SYSTEM_SETUP
  2019-02-08 17:12 [U-Boot] [PATCH v2 00/23] apalis imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (11 preceding siblings ...)
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 12/23] apalis_imx6: migrate usb " Marcel Ziswiler
@ 2019-02-08 17:12 ` Marcel Ziswiler
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 14/23] apalis_imx6: add distroboot support Marcel Ziswiler
                   ` (9 subsequent siblings)
  22 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:12 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

This doesn't do anything anymore, probably never did.

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2: None

 board/toradex/apalis_imx6/apalis_imx6.c | 7 -------
 include/configs/apalis_imx6.h           | 2 --
 2 files changed, 9 deletions(-)

diff --git a/board/toradex/apalis_imx6/apalis_imx6.c b/board/toradex/apalis_imx6/apalis_imx6.c
index 1faa94f99d..254fa4ddfb 100644
--- a/board/toradex/apalis_imx6/apalis_imx6.c
+++ b/board/toradex/apalis_imx6/apalis_imx6.c
@@ -706,13 +706,6 @@ int board_late_init(void)
 }
 #endif /* CONFIG_BOARD_LATE_INIT */
 
-#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_SYSTEM_SETUP)
-int ft_system_setup(void *blob, bd_t *bd)
-{
-	return 0;
-}
-#endif
-
 int checkboard(void)
 {
 	char it[] = " IT";
diff --git a/include/configs/apalis_imx6.h b/include/configs/apalis_imx6.h
index 6b20d1e104..382048d2ef 100644
--- a/include/configs/apalis_imx6.h
+++ b/include/configs/apalis_imx6.h
@@ -259,8 +259,6 @@
 #define CONFIG_SYS_MMC_ENV_PART		1
 #endif
 
-#define CONFIG_OF_SYSTEM_SETUP
-
 #define CONFIG_CMD_TIME
 
 #endif	/* __CONFIG_H */
-- 
2.20.1

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

* [U-Boot] [PATCH v2 14/23] apalis_imx6: add distroboot support
  2019-02-08 17:12 [U-Boot] [PATCH v2 00/23] apalis imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (12 preceding siblings ...)
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 13/23] apalis_imx6: drop CONFIG_OF_SYSTEM_SETUP Marcel Ziswiler
@ 2019-02-08 17:12 ` Marcel Ziswiler
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 15/23] apalis_imx6: use both sd/mmc interfaces for setsdupdate Marcel Ziswiler
                   ` (8 subsequent siblings)
  22 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:12 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Add support for distro boot. This is especially helpful for external
devices. There is a global boot command which scans a predefined
list of boot targets:
  run distro_bootcmd

As well as direct boot commands such as:
  run bootcmd_mmc1
  run bootcmd_mmc2
  run bootcmd_usb
  run bootcmd_dhcp
  ...

Refer to doc/README.distro for details.

While at it, remove the CONFIG_DRIVE_TYPES define which has not
been used and was meant to be used for multi device boot support
which is now provided by distroboot.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2: None

 include/configs/apalis_imx6.h | 30 ++++++++++++++++--------------
 1 file changed, 16 insertions(+), 14 deletions(-)

diff --git a/include/configs/apalis_imx6.h b/include/configs/apalis_imx6.h
index 382048d2ef..5f865e1f08 100644
--- a/include/configs/apalis_imx6.h
+++ b/include/configs/apalis_imx6.h
@@ -109,20 +109,19 @@
 
 #define CONFIG_LOADADDR			0x12000000
 
-#ifdef CONFIG_CMD_SATA
-#define CONFIG_DRIVE_SATA "sata "
+#ifndef CONFIG_SPL_BUILD
+#define BOOT_TARGET_DEVICES(func) \
+	func(MMC, mmc, 1) \
+	func(MMC, mmc, 2) \
+	func(USB, usb, 0) \
+	func(DHCP, dhcp, na)
+#include <config_distro_bootcmd.h>
+#undef BOOTENV_RUN_NET_USB_START
+#define BOOTENV_RUN_NET_USB_START ""
 #else
-#define CONFIG_DRIVE_SATA
+#define BOOTENV
 #endif
 
-#ifdef CONFIG_CMD_MMC
-#define CONFIG_DRIVE_MMC "mmc "
-#else
-#define CONFIG_DRIVE_MMC
-#endif
-
-#define CONFIG_DRIVE_TYPES CONFIG_DRIVE_SATA CONFIG_DRIVE_MMC
-
 #define DFU_ALT_EMMC_INFO \
 	"u-boot.imx raw 0x2 0x3ff mmcpart 0;" \
 	"boot part 0 1;" \
@@ -149,7 +148,9 @@
 	"fdt_high=0xffffffff\0" \
 	"initrd_high=0xffffffff\0" \
 	"kernel_addr_r=0x11000000\0" \
-	"ramdisk_addr_r=0x12100000\0"
+	"pxefile_addr_r=0x17100000\0" \
+	"ramdisk_addr_r=0x12100000\0" \
+	"scriptaddr=0x17000000\0"
 
 #define NFS_BOOTCMD \
 	"nfsargs=ip=:::::eth0:on root=/dev/nfs rw\0" \
@@ -191,9 +192,10 @@
 #define FDT_FILE "imx6q-apalis_v1_0-eval.dtb"
 #endif
 #define CONFIG_EXTRA_ENV_SETTINGS \
+	BOOTENV \
 	"bootcmd=run emmcboot ; echo ; echo emmcboot failed ; " \
-		"run nfsboot ; echo ; echo nfsboot failed ; " \
-		"usb start ;" \
+		"run distro_bootcmd ; " \
+		"usb start ; " \
 		"setenv stdout serial,vga ; setenv stdin serial,usbkbd\0" \
 	"boot_file=uImage\0" \
 	"console=ttymxc0\0" \
-- 
2.20.1

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

* [U-Boot] [PATCH v2 15/23] apalis_imx6: use both sd/mmc interfaces for setsdupdate
  2019-02-08 17:12 [U-Boot] [PATCH v2 00/23] apalis imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (13 preceding siblings ...)
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 14/23] apalis_imx6: add distroboot support Marcel Ziswiler
@ 2019-02-08 17:12 ` Marcel Ziswiler
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 16/23] apalis_imx6: unify sd/mmc drive strength with linux kernel settings Marcel Ziswiler
                   ` (7 subsequent siblings)
  22 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:12 UTC (permalink / raw)
  To: u-boot

From: Max Krummenacher <max.krummenacher@toradex.com>

During porting to 2016.11 the check of a SD (mmc2) interface
was dropped, this was unintended.

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2: None

 include/configs/apalis_imx6.h | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/include/configs/apalis_imx6.h b/include/configs/apalis_imx6.h
index 5f865e1f08..7df32feb0d 100644
--- a/include/configs/apalis_imx6.h
+++ b/include/configs/apalis_imx6.h
@@ -210,8 +210,10 @@
 	"setethupdate=if env exists ethaddr; then; else setenv ethaddr " \
 		"00:14:2d:00:00:00; fi; tftpboot ${loadaddr} " \
 		"flash_eth.img && source ${loadaddr}\0" \
-	"setsdupdate=setenv interface mmc; setenv drive 1; mmc rescan; load " \
-		"${interface} ${drive}:1 ${loadaddr} flash_blk.img && " \
+	"setsdupdate=setenv interface mmc; setenv drive 1; mmc rescan; " \
+		"load ${interface} ${drive}:1 ${loadaddr} flash_blk.img " \
+		"|| setenv drive 2; mmc rescan; load ${interface} ${drive}:1" \
+		" ${loadaddr} flash_blk.img && " \
 		"source ${loadaddr}\0" \
 	"setup=setenv setupargs fec_mac=${ethaddr} " \
 		"consoleblank=0 no_console_suspend=1 console=tty1 " \
-- 
2.20.1

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

* [U-Boot] [PATCH v2 16/23] apalis_imx6: unify sd/mmc drive strength with linux kernel settings
  2019-02-08 17:12 [U-Boot] [PATCH v2 00/23] apalis imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (14 preceding siblings ...)
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 15/23] apalis_imx6: use both sd/mmc interfaces for setsdupdate Marcel Ziswiler
@ 2019-02-08 17:12 ` Marcel Ziswiler
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 17/23] apalis_imx6: pf0100: reorder and cleanup message printing Marcel Ziswiler
                   ` (6 subsequent siblings)
  22 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:12 UTC (permalink / raw)
  To: u-boot

From: Max Krummenacher <max.krummenacher@toradex.com>

In the Linux device tree we use 40Ohm drive strength. So use the same
value in U-Boot.

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2: None

 board/toradex/apalis_imx6/apalis_imx6.c | 24 ++++++++++++++----------
 1 file changed, 14 insertions(+), 10 deletions(-)

diff --git a/board/toradex/apalis_imx6/apalis_imx6.c b/board/toradex/apalis_imx6/apalis_imx6.c
index 254fa4ddfb..cfdadda939 100644
--- a/board/toradex/apalis_imx6/apalis_imx6.c
+++ b/board/toradex/apalis_imx6/apalis_imx6.c
@@ -45,6 +45,10 @@ DECLARE_GLOBAL_DATA_PTR;
 	PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
 
 #define USDHC_PAD_CTRL (PAD_CTL_PUS_47K_UP |			\
+	PAD_CTL_SPEED_LOW | PAD_CTL_DSE_40ohm |			\
+	PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
+
+#define USDHC_EMMC_PAD_CTRL (PAD_CTL_PUS_47K_UP |		\
 	PAD_CTL_SPEED_LOW | PAD_CTL_DSE_80ohm |			\
 	PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
 
@@ -115,16 +119,16 @@ iomux_v3_cfg_t const usdhc2_pads[] = {
 
 /* eMMC */
 iomux_v3_cfg_t const usdhc3_pads[] = {
-	MX6_PAD_SD3_CLK__SD3_CLK    | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD3_CMD__SD3_CMD    | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD3_DAT0__SD3_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD3_DAT1__SD3_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD3_DAT2__SD3_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD3_DAT3__SD3_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD3_DAT4__SD3_DATA4 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD3_DAT5__SD3_DATA5 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD3_DAT6__SD3_DATA6 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD3_DAT7__SD3_DATA7 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+	MX6_PAD_SD3_CLK__SD3_CLK    | MUX_PAD_CTRL(USDHC_EMMC_PAD_CTRL),
+	MX6_PAD_SD3_CMD__SD3_CMD    | MUX_PAD_CTRL(USDHC_EMMC_PAD_CTRL),
+	MX6_PAD_SD3_DAT0__SD3_DATA0 | MUX_PAD_CTRL(USDHC_EMMC_PAD_CTRL),
+	MX6_PAD_SD3_DAT1__SD3_DATA1 | MUX_PAD_CTRL(USDHC_EMMC_PAD_CTRL),
+	MX6_PAD_SD3_DAT2__SD3_DATA2 | MUX_PAD_CTRL(USDHC_EMMC_PAD_CTRL),
+	MX6_PAD_SD3_DAT3__SD3_DATA3 | MUX_PAD_CTRL(USDHC_EMMC_PAD_CTRL),
+	MX6_PAD_SD3_DAT4__SD3_DATA4 | MUX_PAD_CTRL(USDHC_EMMC_PAD_CTRL),
+	MX6_PAD_SD3_DAT5__SD3_DATA5 | MUX_PAD_CTRL(USDHC_EMMC_PAD_CTRL),
+	MX6_PAD_SD3_DAT6__SD3_DATA6 | MUX_PAD_CTRL(USDHC_EMMC_PAD_CTRL),
+	MX6_PAD_SD3_DAT7__SD3_DATA7 | MUX_PAD_CTRL(USDHC_EMMC_PAD_CTRL),
 	MX6_PAD_SD3_RST__GPIO7_IO08 | MUX_PAD_CTRL(WEAK_PULLUP) | MUX_MODE_SION,
 };
 #endif /* CONFIG_FSL_ESDHC & CONFIG_SPL_BUILD */
-- 
2.20.1

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

* [U-Boot] [PATCH v2 17/23] apalis_imx6: pf0100: reorder and cleanup message printing
  2019-02-08 17:12 [U-Boot] [PATCH v2 00/23] apalis imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (15 preceding siblings ...)
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 16/23] apalis_imx6: unify sd/mmc drive strength with linux kernel settings Marcel Ziswiler
@ 2019-02-08 17:12 ` Marcel Ziswiler
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 18/23] apalis_imx6: disable ri and dcd irq in uarts Marcel Ziswiler
                   ` (5 subsequent siblings)
  22 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:12 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Keep debug code at the end of the function.
Use a one line informational message for the PMIC only.

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2: None

 board/toradex/apalis_imx6/pf0100.c | 110 +++++++++++++++--------------
 1 file changed, 56 insertions(+), 54 deletions(-)

diff --git a/board/toradex/apalis_imx6/pf0100.c b/board/toradex/apalis_imx6/pf0100.c
index 3a944b3699..8106abf89a 100644
--- a/board/toradex/apalis_imx6/pf0100.c
+++ b/board/toradex/apalis_imx6/pf0100.c
@@ -35,7 +35,7 @@ unsigned pmic_init(void)
 	uchar bus = 1;
 	uchar devid, revid, val;
 
-	puts("PMIC: ");
+	puts("PMIC:  ");
 	rc = i2c_get_chip_for_busnum(bus, PFUZE100_I2C_ADDR, 1, &dev);
 	if (rc) {
 		printf("failed to get device for PMIC at address 0x%x\n",
@@ -51,57 +51,8 @@ unsigned pmic_init(void)
 		puts("i2c pmic revid read failed\n");
 		return 0;
 	}
-	printf("device id: 0x%.2x, revision id: 0x%.2x\n", devid, revid);
+	printf("device id: 0x%.2x, revision id: 0x%.2x, ", devid, revid);
 
-#ifdef DEBUG
-	{
-		unsigned i, j;
-
-		for (i = 0; i < 16; i++)
-			printf("\t%x", i);
-		for (j = 0; j < 0x80; ) {
-			printf("\n%2x", j);
-			for (i = 0; i < 16; i++) {
-				dm_i2c_read(dev, j + i, &val, 1);
-				printf("\t%2x", val);
-			}
-			j += 0x10;
-		}
-		printf("\nEXT Page 1");
-
-		val = PFUZE100_PAGE_REGISTER_PAGE1;
-		if (dm_i2c_write(dev, PFUZE100_PAGE_REGISTER, &val, 1)) {
-			puts("i2c write failed\n");
-			return 0;
-		}
-
-		for (j = 0x80; j < 0x100; ) {
-			printf("\n%2x", j);
-			for (i = 0; i < 16; i++) {
-				dm_i2c_read(dev, j + i, &val, 1);
-				printf("\t%2x", val);
-			}
-			j += 0x10;
-		}
-		printf("\nEXT Page 2");
-
-		val = PFUZE100_PAGE_REGISTER_PAGE2;
-		if (dm_i2c_write(dev, PFUZE100_PAGE_REGISTER, &val, 1)) {
-			puts("i2c write failed\n");
-			return 0;
-		}
-
-		for (j = 0x80; j < 0x100; ) {
-			printf("\n%2x", j);
-			for (i = 0; i < 16; i++) {
-				dm_i2c_read(dev, j + i, &val, 1);
-				printf("\t%2x", val);
-			}
-			j += 0x10;
-		}
-		printf("\n");
-	}
-#endif /* DEBUG */
 	/* get device programmed state */
 	val = PFUZE100_PAGE_REGISTER_PAGE1;
 	if (dm_i2c_write(dev, PFUZE100_PAGE_REGISTER, &val, 1)) {
@@ -131,13 +82,13 @@ unsigned pmic_init(void)
 
 	switch (programmed) {
 	case 0:
-		printf("PMIC: not programmed\n");
+		puts("not programmed\n");
 		break;
 	case 3:
-		printf("PMIC: programmed\n");
+		puts("programmed\n");
 		break;
 	default:
-		printf("PMIC: undefined programming state\n");
+		puts("undefined programming state\n");
 		break;
 	}
 
@@ -155,6 +106,57 @@ unsigned pmic_init(void)
 		if (dm_i2c_write(dev, PFUZE100_SWBSTCTL, &val, 1))
 			puts("i2c write failed\n");
 	}
+
+#ifdef DEBUG
+	{
+		unsigned int i, j;
+
+		for (i = 0; i < 16; i++)
+			printf("\t%x", i);
+		for (j = 0; j < 0x80; ) {
+			printf("\n%2x", j);
+			for (i = 0; i < 16; i++) {
+				dm_i2c_read(dev, j + i, &val, 1);
+				printf("\t%2x", val);
+			}
+			j += 0x10;
+		}
+		printf("\nEXT Page 1");
+
+		val = PFUZE100_PAGE_REGISTER_PAGE1;
+		if (dm_i2c_write(dev, PFUZE100_PAGE_REGISTER, &val, 1)) {
+			puts("i2c write failed\n");
+			return 0;
+		}
+
+		for (j = 0x80; j < 0x100; ) {
+			printf("\n%2x", j);
+			for (i = 0; i < 16; i++) {
+				dm_i2c_read(dev, j + i, &val, 1);
+				printf("\t%2x", val);
+			}
+			j += 0x10;
+		}
+		printf("\nEXT Page 2");
+
+		val = PFUZE100_PAGE_REGISTER_PAGE2;
+		if (dm_i2c_write(dev, PFUZE100_PAGE_REGISTER, &val, 1)) {
+			puts("i2c write failed\n");
+			return 0;
+		}
+
+		for (j = 0x80; j < 0x100; ) {
+			printf("\n%2x", j);
+			for (i = 0; i < 16; i++) {
+				dm_i2c_read(dev, j + i, &val, 1);
+				printf("\t%2x", val);
+			}
+			j += 0x10;
+		}
+		printf("\n");
+	}
+#endif /* DEBUG */
+
 	return programmed;
 }
 
-- 
2.20.1

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

* [U-Boot] [PATCH v2 18/23] apalis_imx6: disable ri and dcd irq in uarts
  2019-02-08 17:12 [U-Boot] [PATCH v2 00/23] apalis imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (16 preceding siblings ...)
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 17/23] apalis_imx6: pf0100: reorder and cleanup message printing Marcel Ziswiler
@ 2019-02-08 17:12 ` Marcel Ziswiler
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 19/23] apalis_imx6: revert fuse value set in mfgr_fuse Marcel Ziswiler
                   ` (4 subsequent siblings)
  22 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:12 UTC (permalink / raw)
  To: u-boot

From: Max Krummenacher <max.krummenacher@toradex.com>

If the UART is used in DTE mode the RI and DCD bits in UCR3 become
irq enable bits. Both are set to enabled after reset and both likely
are pending.

Disable the bits also on UARTs not used in the boot loader to prevent
an interrupt storm when Linux enables the UART interrupts.

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2: None

 board/toradex/apalis_imx6/apalis_imx6.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/board/toradex/apalis_imx6/apalis_imx6.c b/board/toradex/apalis_imx6/apalis_imx6.c
index cfdadda939..2c90a40042 100644
--- a/board/toradex/apalis_imx6/apalis_imx6.c
+++ b/board/toradex/apalis_imx6/apalis_imx6.c
@@ -238,8 +238,11 @@ iomux_v3_cfg_t const usb_pads[] = {
  * UARTs are used in DTE mode, switch the mode on all UARTs before
  * any pinmuxing connects a (DCE) output to a transceiver output.
  */
+#define UCR3		0x88	/* FIFO Control Register */
+#define UCR3_RI		BIT(8)	/* RIDELT DTE mode */
+#define UCR3_DCD	BIT(9)	/* DCDDELT DTE mode */
 #define UFCR		0x90	/* FIFO Control Register */
-#define UFCR_DCEDTE	(1<<6)	/* DCE=0 */
+#define UFCR_DCEDTE	BIT(6)	/* DCE=0 */
 
 static void setup_dtemode_uart(void)
 {
@@ -247,6 +250,11 @@ static void setup_dtemode_uart(void)
 	setbits_le32((u32 *)(UART2_BASE + UFCR), UFCR_DCEDTE);
 	setbits_le32((u32 *)(UART4_BASE + UFCR), UFCR_DCEDTE);
 	setbits_le32((u32 *)(UART5_BASE + UFCR), UFCR_DCEDTE);
+
+	clrbits_le32((u32 *)(UART1_BASE + UCR3), UCR3_DCD | UCR3_RI);
+	clrbits_le32((u32 *)(UART2_BASE + UCR3), UCR3_DCD | UCR3_RI);
+	clrbits_le32((u32 *)(UART4_BASE + UCR3), UCR3_DCD | UCR3_RI);
+	clrbits_le32((u32 *)(UART5_BASE + UCR3), UCR3_DCD | UCR3_RI);
 }
 static void setup_dcemode_uart(void)
 {
-- 
2.20.1

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

* [U-Boot] [PATCH v2 19/23] apalis_imx6: revert fuse value set in mfgr_fuse
  2019-02-08 17:12 [U-Boot] [PATCH v2 00/23] apalis imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (17 preceding siblings ...)
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 18/23] apalis_imx6: disable ri and dcd irq in uarts Marcel Ziswiler
@ 2019-02-08 17:12 ` Marcel Ziswiler
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 20/23] configs: apalis_imx6: Use ext4 file system by default Marcel Ziswiler
                   ` (3 subsequent siblings)
  22 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:12 UTC (permalink / raw)
  To: u-boot

From: Max Krummenacher <max.krummenacher@toradex.com>

We have two commands to change the bootmode fuses:
mfgr_fuse which set fuse 0/5 and 0/6
and
updt_fuse which burns bit 4 of 0/5.

Before BSP 2.6 we fused in mfgr_fuse 0x5062, which boots
from the user partition of the eMMC.
To workaround certain hangs we moved to fastboot mode and
using the first bootpartition of the eMMC requiring a fuse
value of 0x5072 which could be achieved by the then added
updt_fuse command. At the same time the mfgr_fuse command
was changed to also fuse 0x5072, revert that second change
so that one can fuse both values, one with just mfgr_fuse
and the later with mfgr_fuse;updt_fuse.

Note that the mfgr_fuse command is only needed at module
production time, a customer might need to use updt_fuse
when upgrading an older module to be compatible with a
newer image. The command is integrated into the image
update scripts.

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2:
- Remove Colibri iMX6 change which inadvertently slipped in here.

 board/toradex/apalis_imx6/do_fuse.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/board/toradex/apalis_imx6/do_fuse.c b/board/toradex/apalis_imx6/do_fuse.c
index e6793e366a..22d191f52a 100644
--- a/board/toradex/apalis_imx6/do_fuse.c
+++ b/board/toradex/apalis_imx6/do_fuse.c
@@ -29,7 +29,7 @@ static int mfgr_fuse(void)
 		return CMD_RET_FAILURE;
 	}
 	/* boot cfg */
-	fuse_prog(0, 5, 0x00005072);
+	fuse_prog(0, 5, 0x00005062);
 	/* BT_FUSE_SEL */
 	fuse_prog(0, 6, 0x00000010);
 	return CMD_RET_SUCCESS;
-- 
2.20.1

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

* [U-Boot] [PATCH v2 20/23] configs: apalis_imx6: Use ext4 file system by default
  2019-02-08 17:12 [U-Boot] [PATCH v2 00/23] apalis imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (18 preceding siblings ...)
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 19/23] apalis_imx6: revert fuse value set in mfgr_fuse Marcel Ziswiler
@ 2019-02-08 17:12 ` Marcel Ziswiler
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 21/23] apalis_imx6: use SDP if USB serial downloader has been used Marcel Ziswiler
                   ` (2 subsequent siblings)
  22 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:12 UTC (permalink / raw)
  To: u-boot

From: Sanchayan Maity <maitysanchayan@gmail.com>

Use ext4 file system by default.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2: None

 include/configs/apalis_imx6.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/include/configs/apalis_imx6.h b/include/configs/apalis_imx6.h
index 7df32feb0d..a49b08ba45 100644
--- a/include/configs/apalis_imx6.h
+++ b/include/configs/apalis_imx6.h
@@ -131,7 +131,7 @@
 	"imx6q-colibri-cam-eval-v3.dtb fat 0 1"
 
 #define EMMC_BOOTCMD \
-	"emmcargs=ip=off root=/dev/mmcblk0p2 rw,noatime rootfstype=ext3 " \
+	"emmcargs=ip=off root=/dev/mmcblk0p2 rw,noatime rootfstype=ext4 " \
 		"rootwait\0" \
 	"emmcboot=run setup; " \
 		"setenv bootargs ${defargs} ${emmcargs} ${setupargs} " \
@@ -163,7 +163,7 @@
 		"&& setenv dtbparam \" - ${fdt_addr_r}\" && true\0"
 
 #define SD_BOOTCMD						\
-	"sdargs=ip=off root=/dev/mmcblk1p2 rw,noatime rootfstype=ext3 " \
+	"sdargs=ip=off root=/dev/mmcblk1p2 rw,noatime rootfstype=ext4 " \
 		"rootwait\0" \
 	"sdboot=run setup; " \
 		"setenv bootargs ${defargs} ${sdargs} ${setupargs} " \
@@ -175,7 +175,7 @@
 		"${fdt_file} && setenv dtbparam \" - ${fdt_addr_r}\" && true\0"
 
 #define USB_BOOTCMD \
-	"usbargs=ip=off root=/dev/sda2 rw,noatime rootfstype=ext3 " \
+	"usbargs=ip=off root=/dev/sda2 rw,noatime rootfstype=ext4 " \
 		"rootwait\0" \
 	"usbboot=run setup; setenv bootargs ${defargs} ${setupargs} " \
 		"${usbargs} ${vidargs}; echo Booting from USB stick...; " \
-- 
2.20.1

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

* [U-Boot] [PATCH v2 21/23] apalis_imx6: use SDP if USB serial downloader has been used
  2019-02-08 17:12 [U-Boot] [PATCH v2 00/23] apalis imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (19 preceding siblings ...)
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 20/23] configs: apalis_imx6: Use ext4 file system by default Marcel Ziswiler
@ 2019-02-08 17:12 ` Marcel Ziswiler
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 22/23] apalis_imx6: switch to zimage Marcel Ziswiler
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 23/23] board: apalis_imx6: check for and report ecc errors in fuses Marcel Ziswiler
  22 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:12 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

In case USB serial downloader has been used to load U-Boot start the
serial download protocol (SDP) emulation. This allows to download
complete images such as Toradex Easy Installer over USB SDP as well.
This code uses the boot ROM provided boot information to reliably
detect USB serial downloader.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2: None

 board/toradex/apalis_imx6/apalis_imx6.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/board/toradex/apalis_imx6/apalis_imx6.c b/board/toradex/apalis_imx6/apalis_imx6.c
index 2c90a40042..ce54638c4c 100644
--- a/board/toradex/apalis_imx6/apalis_imx6.c
+++ b/board/toradex/apalis_imx6/apalis_imx6.c
@@ -714,6 +714,14 @@ int board_late_init(void)
 #endif /* CONFIG_TDX_APALIS_IMX6_V1_0 */
 #endif /* CONFIG_REVISION_TAG */
 
+#ifdef CONFIG_CMD_USB_SDP
+	if (is_boot_from_usb()) {
+		printf("Serial Downloader recovery mode, using sdp command\n");
+		env_set("bootdelay", "0");
+		env_set("bootcmd", "sdp 0");
+	}
+#endif /* CONFIG_CMD_USB_SDP */
+
 	return 0;
 }
 #endif /* CONFIG_BOARD_LATE_INIT */
-- 
2.20.1

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

* [U-Boot] [PATCH v2 22/23] apalis_imx6: switch to zimage
  2019-02-08 17:12 [U-Boot] [PATCH v2 00/23] apalis imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (20 preceding siblings ...)
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 21/23] apalis_imx6: use SDP if USB serial downloader has been used Marcel Ziswiler
@ 2019-02-08 17:12 ` Marcel Ziswiler
       [not found]   ` <bhuvanchandra.dv@toradex.com>
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 23/23] board: apalis_imx6: check for and report ecc errors in fuses Marcel Ziswiler
  22 siblings, 1 reply; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:12 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Switch to the generic compressed Kernel image type (zImage) instead of
the U-Boot specific uImage format.

While at it also fix device tree naming for MMC DFU.

Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2:
- Also fix device tree naming for MMC DFU.

 include/configs/apalis_imx6.h | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/include/configs/apalis_imx6.h b/include/configs/apalis_imx6.h
index a49b08ba45..c8aa1bdddf 100644
--- a/include/configs/apalis_imx6.h
+++ b/include/configs/apalis_imx6.h
@@ -118,17 +118,17 @@
 #include <config_distro_bootcmd.h>
 #undef BOOTENV_RUN_NET_USB_START
 #define BOOTENV_RUN_NET_USB_START ""
-#else
+#else /* CONFIG_SPL_BUILD */
 #define BOOTENV
-#endif
+#endif /* CONFIG_SPL_BUILD */
 
 #define DFU_ALT_EMMC_INFO \
 	"u-boot.imx raw 0x2 0x3ff mmcpart 0;" \
 	"boot part 0 1;" \
 	"rootfs part 0 2;" \
-	"uImage fat 0 1;" \
-	"imx6q-colibri-eval-v3.dtb fat 0 1;" \
-	"imx6q-colibri-cam-eval-v3.dtb fat 0 1"
+	"zImage fat 0 1;" \
+	"imx6q-apalis-eval.dtb fat 0 1;" \
+	"imx6q-apalis-cam-eval.dtb fat 0 1"
 
 #define EMMC_BOOTCMD \
 	"emmcargs=ip=off root=/dev/mmcblk0p2 rw,noatime rootfstype=ext4 " \
@@ -138,7 +138,7 @@
 		"${vidargs}; echo Booting from internal eMMC chip...; "	\
 		"run emmcdtbload; load mmc 0:1 ${kernel_addr_r} " \
 		"${boot_file} && run fdt_fixup && " \
-		"bootm ${kernel_addr_r} ${dtbparam}\0" \
+		"bootz ${kernel_addr_r} ${dtbparam}\0" \
 	"emmcdtbload=setenv dtbparam; load mmc 0:1 ${fdt_addr_r} " \
 		"${fdt_file} && setenv dtbparam \" - ${fdt_addr_r}\" && true\0"
 
@@ -158,11 +158,11 @@
 		"setenv bootargs ${defargs} ${nfsargs} ${setupargs} " \
 		"${vidargs}; echo Booting via DHCP/TFTP/NFS...; " \
 		"run nfsdtbload; dhcp ${kernel_addr_r} " \
-		"&& run fdt_fixup && bootm ${kernel_addr_r} ${dtbparam}\0" \
+		"&& run fdt_fixup && bootz ${kernel_addr_r} ${dtbparam}\0" \
 	"nfsdtbload=setenv dtbparam; tftp ${fdt_addr_r} ${fdt_file} " \
 		"&& setenv dtbparam \" - ${fdt_addr_r}\" && true\0"
 
-#define SD_BOOTCMD						\
+#define SD_BOOTCMD \
 	"sdargs=ip=off root=/dev/mmcblk1p2 rw,noatime rootfstype=ext4 " \
 		"rootwait\0" \
 	"sdboot=run setup; " \
@@ -170,7 +170,7 @@
 		"${vidargs}; echo Booting from SD card; " \
 		"run sddtbload; load mmc 1:1 ${kernel_addr_r} " \
 		"${boot_file} && run fdt_fixup && " \
-		"bootm ${kernel_addr_r} ${dtbparam}\0" \
+		"bootz ${kernel_addr_r} ${dtbparam}\0" \
 	"sddtbload=setenv dtbparam; load mmc 1:1 ${fdt_addr_r} " \
 		"${fdt_file} && setenv dtbparam \" - ${fdt_addr_r}\" && true\0"
 
@@ -181,7 +181,7 @@
 		"${usbargs} ${vidargs}; echo Booting from USB stick...; " \
 		"usb start && run usbdtbload; load usb 0:1 ${kernel_addr_r} " \
 		"${boot_file} && run fdt_fixup && " \
-		"bootm ${kernel_addr_r} ${dtbparam}\0" \
+		"bootz ${kernel_addr_r} ${dtbparam}\0" \
 	"usbdtbload=setenv dtbparam; load usb 0:1 ${fdt_addr_r} " \
 		"${fdt_file} && setenv dtbparam \" - ${fdt_addr_r}\" && true\0"
 
@@ -197,7 +197,7 @@
 		"run distro_bootcmd ; " \
 		"usb start ; " \
 		"setenv stdout serial,vga ; setenv stdin serial,usbkbd\0" \
-	"boot_file=uImage\0" \
+	"boot_file=zImage\0" \
 	"console=ttymxc0\0" \
 	"defargs=enable_wait_mode=off vmalloc=400M\0" \
 	"dfu_alt_info=" DFU_ALT_EMMC_INFO "\0" \
-- 
2.20.1

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

* [U-Boot] [PATCH v2 23/23] board: apalis_imx6: check for and report ecc errors in fuses
  2019-02-08 17:12 [U-Boot] [PATCH v2 00/23] apalis imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (21 preceding siblings ...)
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 22/23] apalis_imx6: switch to zimage Marcel Ziswiler
@ 2019-02-08 17:12 ` Marcel Ziswiler
  22 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:12 UTC (permalink / raw)
  To: u-boot

From: Gerard Salvatella <gerard.salvatella@toradex.com>

The PMIC on Apalis iMX6 may have ECC errors in fuses that will prevent
correct settings. Up to one bit error per fuse bank may be reported and
corrected by the ECC logic. Two bit errors can only be reported.

Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2: None

 board/toradex/apalis_imx6/pf0100.c | 51 ++++++++++++++++++++++++++
 board/toradex/apalis_imx6/pf0100.h | 57 +++++++++++++++++++++++++++++-
 2 files changed, 107 insertions(+), 1 deletion(-)

diff --git a/board/toradex/apalis_imx6/pf0100.c b/board/toradex/apalis_imx6/pf0100.c
index 8106abf89a..ebd6418fd4 100644
--- a/board/toradex/apalis_imx6/pf0100.c
+++ b/board/toradex/apalis_imx6/pf0100.c
@@ -21,6 +21,8 @@
 /* define for PMIC register dump */
 /*#define DEBUG */
 
+#define WARNBAR "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n"
+
 /* use Apalis GPIO1 to switch on VPGM, ON: 1 */
 static __maybe_unused iomux_v3_cfg_t const pmic_prog_pads[] = {
 	MX6_PAD_NANDF_D4__GPIO2_IO04 | MUX_PAD_CTRL(NO_PAD_CTRL),
@@ -42,6 +44,55 @@ unsigned pmic_init(void)
 		       PFUZE100_I2C_ADDR);
 		return 0;
 	}
+
+	/* check for errors in PMIC fuses */
+	if (dm_i2c_read(dev, PFUZE100_INTSTAT3, &val, 1) < 0) {
+		puts("i2c pmic INTSTAT3 register read failed\n");
+		return 0;
+	}
+	if (val & PFUZE100_BIT_OTP_ECCI) {
+		puts("\n" WARNBAR);
+		puts("WARNING: ecc errors found in pmic fuse banks\n");
+		puts(WARNBAR);
+	}
+	if (dm_i2c_read(dev, PFUZE100_OTP_ECC_SE1, &val, 1) < 0) {
+		puts("i2c pmic ECC_SE1 register read failed\n");
+		return 0;
+	}
+	if (val & PFUZE100_BITS_ECC_SE1) {
+		puts(WARNBAR);
+		puts("WARNING: ecc has made bit corrections in banks 1 to 5\n");
+		puts(WARNBAR);
+	}
+	if (dm_i2c_read(dev, PFUZE100_OTP_ECC_SE2, &val, 1) < 0) {
+		puts("i2c pmic ECC_SE2 register read failed\n");
+		return 0;
+	}
+	if (val & PFUZE100_BITS_ECC_SE2) {
+		puts(WARNBAR);
+		puts("WARNING: ecc has made bit corrections in banks 6 to 10\n"
+		    );
+		puts(WARNBAR);
+	}
+	if (dm_i2c_read(dev, PFUZE100_OTP_ECC_DE1, &val, 1) < 0) {
+		puts("i2c pmic ECC_DE register read failed\n");
+		return 0;
+	}
+	if (val & PFUZE100_BITS_ECC_DE1) {
+		puts(WARNBAR);
+		puts("ERROR: banks 1 to 5 have uncorrectable bits\n");
+		puts(WARNBAR);
+	}
+	if (dm_i2c_read(dev, PFUZE100_OTP_ECC_DE2, &val, 1) < 0) {
+		puts("i2c pmic ECC_DE register read failed\n");
+		return 0;
+	}
+	if (val & PFUZE100_BITS_ECC_DE2) {
+		puts(WARNBAR);
+		puts("ERROR: banks 6 to 10 have uncorrectable bits\n");
+		puts(WARNBAR);
+	}
+
 	/* get device ident */
 	if (dm_i2c_read(dev, PFUZE100_DEVICEID, &devid, 1) < 0) {
 		puts("i2c pmic devid read failed\n");
diff --git a/board/toradex/apalis_imx6/pf0100.h b/board/toradex/apalis_imx6/pf0100.h
index b854fe8c54..9257620511 100644
--- a/board/toradex/apalis_imx6/pf0100.h
+++ b/board/toradex/apalis_imx6/pf0100.h
@@ -10,11 +10,23 @@
 #ifndef PF0100_H_
 #define PF0100_H_
 
+/* bit definitions */
+#define PFUZE100_BIT_0			(0x01 << 0)
+#define PFUZE100_BIT_1			(0x01 << 1)
+#define PFUZE100_BIT_2			(0x01 << 2)
+#define PFUZE100_BIT_3			(0x01 << 3)
+#define PFUZE100_BIT_4			(0x01 << 4)
+#define PFUZE100_BIT_5			(0x01 << 5)
+#define PFUZE100_BIT_6			(0x01 << 6)
+#define PFUZE100_BIT_7			(0x01 << 7)
+
 /* 7-bit I2C bus slave address */
 #define PFUZE100_I2C_ADDR		(0x08)
 /* Register Addresses */
 #define PFUZE100_DEVICEID		(0x0)
 #define PFUZE100_REVID			(0x3)
+#define PFUZE100_INTSTAT3		(0xe)
+#define PFUZE100_BIT_OTP_ECCI		PFUZE100_BIT_7
 #define PFUZE100_SW1AMODE		(0x23)
 #define PFUZE100_SW1ACON		36
 #define PFUZE100_SW1ACON_SPEED_VAL	(0x1<<6)	/*default */
@@ -39,12 +51,55 @@
 #define PFUZE100_PAGE_REGISTER_PAGE2	(0x02 & PFUZE100_PAGE_REGISTER_PAGE_M)
 
 /* extended page 1 */
+#define PFUZE100_OTP_ECC_SE1		0x8a
+#define PFUZE100_BIT_ECC1_SE		PFUZE100_BIT_0
+#define PFUZE100_BIT_ECC2_SE		PFUZE100_BIT_1
+#define PFUZE100_BIT_ECC3_SE		PFUZE100_BIT_2
+#define PFUZE100_BIT_ECC4_SE		PFUZE100_BIT_3
+#define PFUZE100_BIT_ECC5_SE		PFUZE100_BIT_4
+#define PFUZE100_BITS_ECC_SE1		((PFUZE100_BIT_ECC1_SE) | \
+					(PFUZE100_BIT_ECC2_SE) | \
+					(PFUZE100_BIT_ECC3_SE) | \
+					(PFUZE100_BIT_ECC4_SE) | \
+					(PFUZE100_BIT_ECC5_SE))
+#define PFUZE100_OTP_ECC_SE2		0x8b
+#define PFUZE100_BIT_ECC6_SE		PFUZE100_BIT_0
+#define PFUZE100_BIT_ECC7_SE		PFUZE100_BIT_1
+#define PFUZE100_BIT_ECC8_SE		PFUZE100_BIT_2
+#define PFUZE100_BIT_ECC9_SE		PFUZE100_BIT_3
+#define PFUZE100_BIT_ECC10_SE		PFUZE100_BIT_4
+#define PFUZE100_BITS_ECC_SE2		((PFUZE100_BIT_ECC6_SE) | \
+					(PFUZE100_BIT_ECC7_SE) | \
+					(PFUZE100_BIT_ECC8_SE) | \
+					(PFUZE100_BIT_ECC9_SE) | \
+					(PFUZE100_BIT_ECC10_SE))
+#define PFUZE100_OTP_ECC_DE1		0x8c
+#define PFUZE100_BIT_ECC1_DE		PFUZE100_BIT_0
+#define PFUZE100_BIT_ECC2_DE		PFUZE100_BIT_1
+#define PFUZE100_BIT_ECC3_DE		PFUZE100_BIT_2
+#define PFUZE100_BIT_ECC4_DE		PFUZE100_BIT_3
+#define PFUZE100_BIT_ECC5_DE		PFUZE100_BIT_4
+#define PFUZE100_BITS_ECC_DE1		((PFUZE100_BIT_ECC1_DE) | \
+					(PFUZE100_BIT_ECC2_DE) | \
+					(PFUZE100_BIT_ECC3_DE) | \
+					(PFUZE100_BIT_ECC4_DE) | \
+					(PFUZE100_BIT_ECC5_DE))
+#define PFUZE100_OTP_ECC_DE2		0x8d
+#define PFUZE100_BIT_ECC6_DE		PFUZE100_BIT_0
+#define PFUZE100_BIT_ECC7_DE		PFUZE100_BIT_1
+#define PFUZE100_BIT_ECC8_DE		PFUZE100_BIT_2
+#define PFUZE100_BIT_ECC9_DE		PFUZE100_BIT_3
+#define PFUZE100_BIT_ECC10_DE		PFUZE100_BIT_4
+#define PFUZE100_BITS_ECC_DE2		((PFUZE100_BIT_ECC6_DE) | \
+					(PFUZE100_BIT_ECC7_DE) | \
+					(PFUZE100_BIT_ECC8_DE) | \
+					(PFUZE100_BIT_ECC9_DE) | \
+					(PFUZE100_BIT_ECC10_DE))
 #define PFUZE100_FUSE_POR1		0xe4
 #define PFUZE100_FUSE_POR2		0xe5
 #define PFUZE100_FUSE_POR3		0xe6
 #define PFUZE100_FUSE_POR_M		(0x1 << 1)
 
-
 /* output some informational messages, return the number FUSE_POR=1 */
 /* i.e. 0: unprogrammed, 3: programmed, other: undefined prog. state */
 unsigned pmic_init(void);
-- 
2.20.1

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

* [U-Boot] [PATCH v1 00/26] colibri imx6 fixes, device tree enablement and driver model conversion
@ 2019-02-08 17:42 Marcel Ziswiler
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 01/26] colibri_imx6: get rid of obsolete nospl configurations Marcel Ziswiler
                   ` (25 more replies)
  0 siblings, 26 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:42 UTC (permalink / raw)
  To: u-boot


This series addresses some shortcomings, enables/introduces device tree
support and converts all except video to using the driver model. This is
fully tested both running our latest downstream BSP as well as the
mainline Linux kernel.


Bhuvanchandra DV (2):
  toradex: colibri_imx6: overwrite CMA memory set in device tree
  colibri_imx6: switch to zimage

Gerard Salvatella (2):
  colibri_imx6: added nreset gpio on reboot
  board: colibri_imx6: check for and report ecc errors in fuses

Marcel Ziswiler (12):
  colibri_imx6: get rid of obsolete nospl configurations
  colibri_imx6: use distro defaults
  colibri_imx6: move console in env from header file to defconfig
  colibri_imx6: enable fit image, gpt, imx thermal, efi loader support
  colibri_imx6: remove obsolete USB_GADGET_MASS_STORAGE configuration
  colibri_imx6: migrate to using device tree
  colibri_imx6: clean-up and migrate gpios to using driver model
  colibri_imx6: enable pin control driver
  colibri_imx6: migrate i2c to using driver model
  colibri_imx6: migrate pmic and regulator to using driver model
  colibri_imx6: migrate mmc to using driver model
  colibri_imx6: migrate usb to using driver model

Max Krummenacher (7):
  colibri_imx6: drop CONFIG_OF_SYSTEM_SETUP
  colibri_imx6: print also 64-bit IT
  colibri_imx6: unify sd/mmc drive strenght with linux kernel settings
  colibri imx6: pf0100: reorder and cleanup message printing
  colibri imx6: disable ri and dcd irq in uarts
  colibri_imx6: change pmic fusing according to hw 1.1 requirements
  colibri_imx6: revert fuse value set in mfgr_fuse

Sanchayan Maity (1):
  configs: colibri_imx6: Use ext4 file system by default

Stefan Agner (2):
  colibri_imx6: add distroboot support
  colibri_imx6: use SDP if USB serial downloader has been used

 arch/arm/dts/imx6-colibri.dts                 | 411 ++++++++++++++++++
 .../toradex/colibri_imx6/800mhz_2x64mx16.cfg  |  58 ---
 .../toradex/colibri_imx6/800mhz_4x64mx16.cfg  |  58 ---
 board/toradex/colibri_imx6/MAINTAINERS        |   3 +-
 board/toradex/colibri_imx6/clocks.cfg         |  41 --
 board/toradex/colibri_imx6/colibri_imx6.c     | 395 +++++++++--------
 board/toradex/colibri_imx6/colibri_imx6.cfg   |  37 --
 board/toradex/colibri_imx6/ddr-setup.cfg      |  97 -----
 board/toradex/colibri_imx6/do_fuse.c          |   2 +-
 board/toradex/colibri_imx6/pf0100.c           | 177 +++++---
 board/toradex/colibri_imx6/pf0100.h           |  59 ++-
 board/toradex/colibri_imx6/pf0100_otp.inc     |  16 +-
 configs/colibri_imx6_defconfig                |  33 +-
 configs/colibri_imx6_nospl_defconfig          |  63 ---
 include/configs/colibri_imx6.h                |  66 +--
 15 files changed, 853 insertions(+), 663 deletions(-)
 create mode 100644 arch/arm/dts/imx6-colibri.dts
 delete mode 100644 board/toradex/colibri_imx6/800mhz_2x64mx16.cfg
 delete mode 100644 board/toradex/colibri_imx6/800mhz_4x64mx16.cfg
 delete mode 100644 board/toradex/colibri_imx6/clocks.cfg
 delete mode 100644 board/toradex/colibri_imx6/colibri_imx6.cfg
 delete mode 100644 board/toradex/colibri_imx6/ddr-setup.cfg
 delete mode 100644 configs/colibri_imx6_nospl_defconfig

-- 
2.20.1

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

* [U-Boot] [PATCH v1 01/26] colibri_imx6: get rid of obsolete nospl configurations
  2019-02-08 17:42 [U-Boot] [PATCH v1 00/26] colibri imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
@ 2019-02-08 17:42 ` Marcel Ziswiler
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 02/26] colibri_imx6: use distro defaults Marcel Ziswiler
                   ` (24 subsequent siblings)
  25 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:42 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Now with SPL long since being in place even for recovery using SDP
finally get rid of those nospl configurations.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 .../toradex/colibri_imx6/800mhz_2x64mx16.cfg  | 58 -----------
 .../toradex/colibri_imx6/800mhz_4x64mx16.cfg  | 58 -----------
 board/toradex/colibri_imx6/MAINTAINERS        |  1 -
 board/toradex/colibri_imx6/clocks.cfg         | 41 --------
 board/toradex/colibri_imx6/colibri_imx6.cfg   | 37 -------
 board/toradex/colibri_imx6/ddr-setup.cfg      | 97 -------------------
 configs/colibri_imx6_nospl_defconfig          | 63 ------------
 7 files changed, 355 deletions(-)
 delete mode 100644 board/toradex/colibri_imx6/800mhz_2x64mx16.cfg
 delete mode 100644 board/toradex/colibri_imx6/800mhz_4x64mx16.cfg
 delete mode 100644 board/toradex/colibri_imx6/clocks.cfg
 delete mode 100644 board/toradex/colibri_imx6/colibri_imx6.cfg
 delete mode 100644 board/toradex/colibri_imx6/ddr-setup.cfg
 delete mode 100644 configs/colibri_imx6_nospl_defconfig

diff --git a/board/toradex/colibri_imx6/800mhz_2x64mx16.cfg b/board/toradex/colibri_imx6/800mhz_2x64mx16.cfg
deleted file mode 100644
index c9407143d2..0000000000
--- a/board/toradex/colibri_imx6/800mhz_2x64mx16.cfg
+++ /dev/null
@@ -1,58 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
-/*
- * Copyright (C) 2013 Boundary Devices
- * Copyright (C) 2014-2016, Toradex AG
- */
-
-DATA 4, MX6_MMDC_P0_MDPDC, 0x0002002D
-DATA 4, MX6_MMDC_P0_MDCFG0, 0x2C305503
-DATA 4, MX6_MMDC_P0_MDCFG1, 0xB66D8D63
-DATA 4, MX6_MMDC_P0_MDCFG2, 0x01FF00DB
-DATA 4, MX6_MMDC_P0_MDRWD, 0x000026D2
-DATA 4, MX6_MMDC_P0_MDOR, 0x00301023
-DATA 4, MX6_MMDC_P0_MDOTC, 0x00333030
-DATA 4, MX6_MMDC_P0_MDPDC, 0x0002556D
-/* CS0 End: 7MSB of ((0x10000000 + 512M) -1) >> 25 */
-DATA 4, MX6_MMDC_P0_MDASP, 0x00000017
-/* DDR3 DATA BUS SIZE: 64BIT */
-/* DATA 4, MX6_MMDC_P0_MDCTL, 0x821A0000 */
-/* DDR3 DATA BUS SIZE: 32BIT */
-DATA 4, MX6_MMDC_P0_MDCTL, 0x82190000
-
-/* Write commands to DDR */
-/* Load Mode Registers */
-/* TODO Use Auto Self-Refresh mode (Extended Temperature)*/
-/* DATA 4, MX6_MMDC_P0_MDSCR, 0x04408032 */
-DATA 4, MX6_MMDC_P0_MDSCR, 0x04008032
-DATA 4, MX6_MMDC_P0_MDSCR, 0x00008033
-DATA 4, MX6_MMDC_P0_MDSCR, 0x00048031
-DATA 4, MX6_MMDC_P0_MDSCR, 0x13208030
-/* ZQ calibration */
-DATA 4, MX6_MMDC_P0_MDSCR, 0x04008040
-
-DATA 4, MX6_MMDC_P0_MPZQHWCTRL, 0xA1390003
-DATA 4, MX6_MMDC_P1_MPZQHWCTRL, 0xA1390003
-DATA 4, MX6_MMDC_P0_MDREF, 0x00005800
-
-DATA 4, MX6_MMDC_P0_MPODTCTRL, 0x00000000
-DATA 4, MX6_MMDC_P1_MPODTCTRL, 0x00000000
-
-DATA 4, MX6_MMDC_P0_MPDGCTRL0, 0x42360232
-DATA 4, MX6_MMDC_P0_MPDGCTRL1, 0x021F022A
-DATA 4, MX6_MMDC_P1_MPDGCTRL0, 0x421E0224
-DATA 4, MX6_MMDC_P1_MPDGCTRL1, 0x02110218
-
-DATA 4, MX6_MMDC_P0_MPRDDLCTL, 0x41434344
-DATA 4, MX6_MMDC_P1_MPRDDLCTL, 0x4345423E
-DATA 4, MX6_MMDC_P0_MPWRDLCTL, 0x39383339
-DATA 4, MX6_MMDC_P1_MPWRDLCTL, 0x3E363930
-
-DATA 4, MX6_MMDC_P0_MPWLDECTRL0, 0x00340039
-DATA 4, MX6_MMDC_P0_MPWLDECTRL1, 0x002C002D
-DATA 4, MX6_MMDC_P1_MPWLDECTRL0, 0x00120019
-DATA 4, MX6_MMDC_P1_MPWLDECTRL1, 0x0012002D
-
-DATA 4, MX6_MMDC_P0_MPMUR0, 0x00000800
-DATA 4, MX6_MMDC_P1_MPMUR0, 0x00000800
-DATA 4, MX6_MMDC_P0_MDSCR, 0x00000000
-DATA 4, MX6_MMDC_P0_MAPSR, 0x00011006
diff --git a/board/toradex/colibri_imx6/800mhz_4x64mx16.cfg b/board/toradex/colibri_imx6/800mhz_4x64mx16.cfg
deleted file mode 100644
index c319d2a729..0000000000
--- a/board/toradex/colibri_imx6/800mhz_4x64mx16.cfg
+++ /dev/null
@@ -1,58 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
-/*
- * Copyright (C) 2013 Boundary Devices
- * Copyright (C) 2014-2016, Toradex AG
- */
-
-DATA 4, MX6_MMDC_P0_MDPDC, 0x0002002D
-DATA 4, MX6_MMDC_P0_MDCFG0, 0x2C305503
-DATA 4, MX6_MMDC_P0_MDCFG1, 0xB66D8D63
-DATA 4, MX6_MMDC_P0_MDCFG2, 0x01FF00DB
-DATA 4, MX6_MMDC_P0_MDRWD, 0x000026D2
-DATA 4, MX6_MMDC_P0_MDOR, 0x00301023
-DATA 4, MX6_MMDC_P0_MDOTC, 0x00333030
-DATA 4, MX6_MMDC_P0_MDPDC, 0x0002556D
-/* CS0 End: 7MSB of ((0x10000000 + 512M) -1) >> 25 */
-DATA 4, MX6_MMDC_P0_MDASP, 0x00000017
-/* DDR3 DATA BUS SIZE: 64BIT */
-DATA 4, MX6_MMDC_P0_MDCTL, 0x821A0000
-/* DDR3 DATA BUS SIZE: 32BIT */
-/* DATA 4, MX6_MMDC_P0_MDCTL, 0x82190000 */
-
-/* Write commands to DDR */
-/* Load Mode Registers */
-/* TODO Use Auto Self-Refresh mode (Extended Temperature)*/
-/* DATA 4, MX6_MMDC_P0_MDSCR, 0x04408032 */
-DATA 4, MX6_MMDC_P0_MDSCR, 0x04008032
-DATA 4, MX6_MMDC_P0_MDSCR, 0x00008033
-DATA 4, MX6_MMDC_P0_MDSCR, 0x00048031
-DATA 4, MX6_MMDC_P0_MDSCR, 0x13208030
-/* ZQ calibration */
-DATA 4, MX6_MMDC_P0_MDSCR, 0x04008040
-
-DATA 4, MX6_MMDC_P0_MPZQHWCTRL, 0xA1390003
-DATA 4, MX6_MMDC_P1_MPZQHWCTRL, 0xA1390003
-DATA 4, MX6_MMDC_P0_MDREF, 0x00005800
-
-DATA 4, MX6_MMDC_P0_MPODTCTRL, 0x00000000
-DATA 4, MX6_MMDC_P1_MPODTCTRL, 0x00000000
-
-DATA 4, MX6_MMDC_P0_MPDGCTRL0, 0x42360232
-DATA 4, MX6_MMDC_P0_MPDGCTRL1, 0x021F022A
-DATA 4, MX6_MMDC_P1_MPDGCTRL0, 0x421E0224
-DATA 4, MX6_MMDC_P1_MPDGCTRL1, 0x02110218
-
-DATA 4, MX6_MMDC_P0_MPRDDLCTL, 0x41434344
-DATA 4, MX6_MMDC_P1_MPRDDLCTL, 0x4345423E
-DATA 4, MX6_MMDC_P0_MPWRDLCTL, 0x39383339
-DATA 4, MX6_MMDC_P1_MPWRDLCTL, 0x3E363930
-
-DATA 4, MX6_MMDC_P0_MPWLDECTRL0, 0x00340039
-DATA 4, MX6_MMDC_P0_MPWLDECTRL1, 0x002C002D
-DATA 4, MX6_MMDC_P1_MPWLDECTRL0, 0x00120019
-DATA 4, MX6_MMDC_P1_MPWLDECTRL1, 0x0012002D
-
-DATA 4, MX6_MMDC_P0_MPMUR0, 0x00000800
-DATA 4, MX6_MMDC_P1_MPMUR0, 0x00000800
-DATA 4, MX6_MMDC_P0_MDSCR, 0x00000000
-DATA 4, MX6_MMDC_P0_MAPSR, 0x00011006
diff --git a/board/toradex/colibri_imx6/MAINTAINERS b/board/toradex/colibri_imx6/MAINTAINERS
index 1cc7ef2e71..49999d8cf5 100644
--- a/board/toradex/colibri_imx6/MAINTAINERS
+++ b/board/toradex/colibri_imx6/MAINTAINERS
@@ -5,4 +5,3 @@ S:	Maintained
 F:	board/toradex/colibri_imx6/
 F:	include/configs/colibri_imx6.h
 F:	configs/colibri_imx6_defconfig
-F:	configs/colibri_imx6_nospl_defconfig
diff --git a/board/toradex/colibri_imx6/clocks.cfg b/board/toradex/colibri_imx6/clocks.cfg
deleted file mode 100644
index 1bcbc4fa38..0000000000
--- a/board/toradex/colibri_imx6/clocks.cfg
+++ /dev/null
@@ -1,41 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
-/*
- * Copyright (C) 2013 Boundary Devices
- * Copyright (C) 2014-2016, Toradex AG
- *
- * Device Configuration Data (DCD)
- *
- * Each entry must have the format:
- * Addr-type           Address        Value
- *
- * where:
- *      Addr-type register length (1,2 or 4 bytes)
- *      Address   absolute address of the register
- *      value     value to be stored in the register
- */
-
-/* set the default clock gate to save power */
-DATA 4, CCM_CCGR0, 0x00C03F3F
-DATA 4, CCM_CCGR1, 0x0030FC03
-DATA 4, CCM_CCGR2, 0x0FFFC000
-DATA 4, CCM_CCGR3, 0x3FF00000
-DATA 4, CCM_CCGR4, 0x00FFF300
-DATA 4, CCM_CCGR5, 0x0F0000C3
-DATA 4, CCM_CCGR6, 0x000003FF
-
-/* enable AXI cache for VDOA/VPU/IPU */
-DATA 4, MX6_IOMUXC_GPR4, 0xF00000CF
-/* set IPU AXI-id0 Qos=0xf(bypass) AXI-id1 Qos=0x7 */
-DATA 4, MX6_IOMUXC_GPR6, 0x007F007F
-DATA 4, MX6_IOMUXC_GPR7, 0x007F007F
-
-/*
- * Setup CCM_CCOSR register as follows:
- *
- * cko1_en  = 1	   --> CKO1 enabled
- * cko1_div = 111  --> divide by 8
- * cko1_sel = 1011 --> ahb_clk_root
- *
- * This sets CKO1 at ahb_clk_root/8 = 132/8 = 16.5 MHz
- */
-DATA 4, CCM_CCOSR, 0x000000fb
diff --git a/board/toradex/colibri_imx6/colibri_imx6.cfg b/board/toradex/colibri_imx6/colibri_imx6.cfg
deleted file mode 100644
index 517c5eb107..0000000000
--- a/board/toradex/colibri_imx6/colibri_imx6.cfg
+++ /dev/null
@@ -1,37 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
-/*
- * Copyright (C) 2013 Boundary Devices
- * Copyright (C) 2014 Toradex AG
- *
- * Refer doc/README.imximage for more details about how-to configure
- * and create imximage boot image
- *
- * The syntax is taken as close as possible with the kwbimage
- */
-
-/* image version */
-IMAGE_VERSION 2
-
-/*
- * Boot Device : one of
- * spi, sd (the board has no nand neither onenand)
- */
-BOOT_FROM      sd
-
-#define __ASSEMBLY__
-#include <config.h>
-#include "asm/arch/mx6-ddr.h"
-#include "asm/arch/iomux.h"
-#include "asm/arch/crm_regs.h"
-
-#include "ddr-setup.cfg"
-
-#if CONFIG_DDR_MB == 256
-#include "800mhz_2x64mx16.cfg"
-#elif CONFIG_DDR_MB == 512
-#include "800mhz_4x64mx16.cfg"
-#else
-#error "unknown DDR size"
-#endif
-
-#include "clocks.cfg"
diff --git a/board/toradex/colibri_imx6/ddr-setup.cfg b/board/toradex/colibri_imx6/ddr-setup.cfg
deleted file mode 100644
index a943fd228c..0000000000
--- a/board/toradex/colibri_imx6/ddr-setup.cfg
+++ /dev/null
@@ -1,97 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
-/*
- * Copyright (C) 2013 Boundary Devices
- * Copyright (C) 2014-2016, Toradex AG
- *
- * Device Configuration Data (DCD)
- *
- * Each entry must have the format:
- * Addr-type           Address        Value
- *
- * where:
- *      Addr-type register length (1,2 or 4 bytes)
- *      Address   absolute address of the register
- *      value     value to be stored in the register
- */
-
-/*
- * DDR3 settings
- * MX6Q    ddr is limited to 1066 Mhz	currently 1056 MHz(528 MHz clock),
- *	   memory bus width: 64 bits	x16/x32/x64
- * MX6DL   ddr is limited to 800 MHz(400 MHz clock)
- *	   memory bus width: 64 bits	x16/x32/x64
- * MX6SOLO ddr is limited to 800 MHz(400 MHz clock)
- *	   memory bus width: 32 bits	x16/x32
- */
-DATA 4, MX6_IOM_DRAM_SDQS0, 0x00000030
-DATA 4, MX6_IOM_DRAM_SDQS1, 0x00000030
-DATA 4, MX6_IOM_DRAM_SDQS2, 0x00000030
-DATA 4, MX6_IOM_DRAM_SDQS3, 0x00000030
-DATA 4, MX6_IOM_DRAM_SDQS4, 0x00000030
-DATA 4, MX6_IOM_DRAM_SDQS5, 0x00000030
-DATA 4, MX6_IOM_DRAM_SDQS6, 0x00000030
-DATA 4, MX6_IOM_DRAM_SDQS7, 0x00000030
-
-DATA 4, MX6_IOM_GRP_B0DS, 0x00000030
-DATA 4, MX6_IOM_GRP_B1DS, 0x00000030
-DATA 4, MX6_IOM_GRP_B2DS, 0x00000030
-DATA 4, MX6_IOM_GRP_B3DS, 0x00000030
-DATA 4, MX6_IOM_GRP_B4DS, 0x00000030
-DATA 4, MX6_IOM_GRP_B5DS, 0x00000030
-DATA 4, MX6_IOM_GRP_B6DS, 0x00000030
-DATA 4, MX6_IOM_GRP_B7DS, 0x00000030
-DATA 4, MX6_IOM_GRP_ADDDS, 0x00000030
-/* 40 Ohm drive strength for cs0/1,sdba2,cke0/1,sdwe */
-DATA 4, MX6_IOM_GRP_CTLDS, 0x00000030
-
-DATA 4, MX6_IOM_DRAM_DQM0, 0x00020030
-DATA 4, MX6_IOM_DRAM_DQM1, 0x00020030
-DATA 4, MX6_IOM_DRAM_DQM2, 0x00020030
-DATA 4, MX6_IOM_DRAM_DQM3, 0x00020030
-DATA 4, MX6_IOM_DRAM_DQM4, 0x00020030
-DATA 4, MX6_IOM_DRAM_DQM5, 0x00020030
-DATA 4, MX6_IOM_DRAM_DQM6, 0x00020030
-DATA 4, MX6_IOM_DRAM_DQM7, 0x00020030
-
-DATA 4, MX6_IOM_DRAM_CAS, 0x00020030
-DATA 4, MX6_IOM_DRAM_RAS, 0x00020030
-DATA 4, MX6_IOM_DRAM_SDCLK_0, 0x00020030
-DATA 4, MX6_IOM_DRAM_SDCLK_1, 0x00020030
-
-DATA 4, MX6_IOM_DRAM_RESET, 0x00020030
-DATA 4, MX6_IOM_DRAM_SDCKE0, 0x00003000
-DATA 4, MX6_IOM_DRAM_SDCKE1, 0x00003000
-
-DATA 4, MX6_IOM_DRAM_SDODT0, 0x00003030
-DATA 4, MX6_IOM_DRAM_SDODT1, 0x00003030
-
-/* (differential input) */
-DATA 4, MX6_IOM_DDRMODE_CTL, 0x00020000
-/* (differential input) */
-DATA 4, MX6_IOM_GRP_DDRMODE, 0x00020000
-/* disable ddr pullups */
-DATA 4, MX6_IOM_GRP_DDRPKE, 0x00000000
-DATA 4, MX6_IOM_DRAM_SDBA2, 0x00000000
-/* 40 Ohm drive strength for cs0/1,sdba2,cke0/1,sdwe */
-DATA 4, MX6_IOM_GRP_DDR_TYPE, 0x000C0000
-
-/* Read data DQ Byte0-3 delay */
-DATA 4, MX6_MMDC_P0_MPRDDQBY0DL, 0x33333333
-DATA 4, MX6_MMDC_P0_MPRDDQBY1DL, 0x33333333
-DATA 4, MX6_MMDC_P0_MPRDDQBY2DL, 0x33333333
-DATA 4, MX6_MMDC_P0_MPRDDQBY3DL, 0x33333333
-DATA 4, MX6_MMDC_P1_MPRDDQBY0DL, 0x33333333
-DATA 4, MX6_MMDC_P1_MPRDDQBY1DL, 0x33333333
-DATA 4, MX6_MMDC_P1_MPRDDQBY2DL, 0x33333333
-DATA 4, MX6_MMDC_P1_MPRDDQBY3DL, 0x33333333
-
-/*
- * MDMISC	mirroring	interleaved (row/bank/col)
- */
-/* TODO: check what the RALAT field does */
-DATA 4, MX6_MMDC_P0_MDMISC, 0x00081740
-
-/*
- * MDSCR	con_req
- */
-DATA 4, MX6_MMDC_P0_MDSCR, 0x00008000
diff --git a/configs/colibri_imx6_nospl_defconfig b/configs/colibri_imx6_nospl_defconfig
deleted file mode 100644
index 5e9490bc42..0000000000
--- a/configs/colibri_imx6_nospl_defconfig
+++ /dev/null
@@ -1,63 +0,0 @@
-CONFIG_ARM=y
-CONFIG_SYS_THUMB_BUILD=y
-CONFIG_ARCH_MX6=y
-CONFIG_SYS_TEXT_BASE=0x17800000
-CONFIG_TARGET_COLIBRI_IMX6=y
-CONFIG_CMD_HDMIDETECT=y
-CONFIG_ENV_VARS_UBOOT_CONFIG=y
-CONFIG_NR_DRAM_BANKS=1
-CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/colibri_imx6/colibri_imx6.cfg,MX6DL,DDR_MB=256"
-CONFIG_BOOTDELAY=1
-# CONFIG_CONSOLE_MUX is not set
-CONFIG_SUPPORT_RAW_INITRD=y
-CONFIG_MISC_INIT_R=y
-CONFIG_VERSION_VARIABLE=y
-# CONFIG_DISPLAY_BOARDINFO is not set
-CONFIG_DISPLAY_BOARDINFO_LATE=y
-CONFIG_BOUNCE_BUFFER=y
-CONFIG_BOARD_EARLY_INIT_F=y
-CONFIG_HUSH_PARSER=y
-CONFIG_SYS_PROMPT="Colibri iMX6 # "
-CONFIG_CMD_BOOTZ=y
-# CONFIG_CMD_ELF is not set
-# CONFIG_CMD_IMI is not set
-# CONFIG_CMD_XIMG is not set
-CONFIG_CMD_ASKENV=y
-CONFIG_CRC32_VERIFY=y
-CONFIG_CMD_MEMTEST=y
-CONFIG_SYS_ALT_MEMTEST=y
-CONFIG_CMD_DFU=y
-CONFIG_CMD_GPIO=y
-CONFIG_CMD_I2C=y
-CONFIG_CMD_MMC=y
-CONFIG_CMD_USB=y
-CONFIG_CMD_USB_MASS_STORAGE=y
-CONFIG_CMD_DHCP=y
-CONFIG_CMD_MII=y
-CONFIG_CMD_PING=y
-CONFIG_CMD_BMP=y
-CONFIG_CMD_CACHE=y
-CONFIG_CMD_EXT4=y
-CONFIG_CMD_FAT=y
-CONFIG_CMD_FS_GENERIC=y
-CONFIG_ENV_IS_IN_MMC=y
-CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
-CONFIG_DFU_MMC=y
-CONFIG_FSL_ESDHC=y
-CONFIG_PHYLIB=y
-CONFIG_PHY_MICREL=y
-CONFIG_MII=y
-CONFIG_USB=y
-CONFIG_USB_STORAGE=y
-CONFIG_USB_KEYBOARD=y
-CONFIG_USB_GADGET=y
-CONFIG_USB_GADGET_MANUFACTURER="Toradex"
-CONFIG_USB_GADGET_VENDOR_NUM=0x1b67
-CONFIG_USB_GADGET_PRODUCT_NUM=0x4000
-CONFIG_CI_UDC=y
-CONFIG_USB_GADGET_DOWNLOAD=y
-CONFIG_USB_HOST_ETHER=y
-CONFIG_VIDEO=y
-CONFIG_FAT_WRITE=y
-CONFIG_OF_LIBFDT=y
-# CONFIG_EFI_LOADER is not set
-- 
2.20.1

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

* [U-Boot] [PATCH v1 02/26] colibri_imx6: use distro defaults
  2019-02-08 17:42 [U-Boot] [PATCH v1 00/26] colibri imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 01/26] colibri_imx6: get rid of obsolete nospl configurations Marcel Ziswiler
@ 2019-02-08 17:42 ` Marcel Ziswiler
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 03/26] colibri_imx6: move console in env from header file to defconfig Marcel Ziswiler
                   ` (23 subsequent siblings)
  25 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:42 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Use distro defaults and minimise default configuration again using
savedefconfig.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 configs/colibri_imx6_defconfig | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

diff --git a/configs/colibri_imx6_defconfig b/configs/colibri_imx6_defconfig
index 2072281354..699eb70088 100644
--- a/configs/colibri_imx6_defconfig
+++ b/configs/colibri_imx6_defconfig
@@ -9,12 +9,11 @@ CONFIG_SPL_MMC_SUPPORT=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_SPL=y
 CONFIG_CMD_HDMIDETECT=y
-CONFIG_ENV_VARS_UBOOT_CONFIG=y
+CONFIG_DISTRO_DEFAULTS=y
 CONFIG_NR_DRAM_BANKS=1
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg,MX6DL"
 CONFIG_BOOTDELAY=1
 # CONFIG_CONSOLE_MUX is not set
-CONFIG_SUPPORT_RAW_INITRD=y
 CONFIG_MISC_INIT_R=y
 CONFIG_VERSION_VARIABLE=y
 # CONFIG_DISPLAY_BOARDINFO is not set
@@ -26,9 +25,7 @@ CONFIG_SPL_I2C_SUPPORT=y
 CONFIG_SPL_USB_HOST_SUPPORT=y
 CONFIG_SPL_USB_GADGET=y
 CONFIG_SPL_USB_SDP_SUPPORT=y
-CONFIG_HUSH_PARSER=y
 CONFIG_SYS_PROMPT="Colibri iMX6 # "
-CONFIG_CMD_BOOTZ=y
 # CONFIG_CMD_ELF is not set
 # CONFIG_CMD_IMI is not set
 # CONFIG_CMD_XIMG is not set
@@ -43,14 +40,8 @@ CONFIG_CMD_MMC=y
 CONFIG_CMD_USB=y
 CONFIG_CMD_USB_SDP=y
 CONFIG_CMD_USB_MASS_STORAGE=y
-CONFIG_CMD_DHCP=y
-CONFIG_CMD_MII=y
-CONFIG_CMD_PING=y
 CONFIG_CMD_BMP=y
 CONFIG_CMD_CACHE=y
-CONFIG_CMD_EXT4=y
-CONFIG_CMD_FAT=y
-CONFIG_CMD_FS_GENERIC=y
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
 CONFIG_DFU_MMC=y
@@ -59,7 +50,6 @@ CONFIG_PHYLIB=y
 CONFIG_PHY_MICREL=y
 CONFIG_MII=y
 CONFIG_USB=y
-CONFIG_USB_STORAGE=y
 CONFIG_USB_KEYBOARD=y
 CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_MANUFACTURER="Toradex"
-- 
2.20.1

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

* [U-Boot] [PATCH v1 03/26] colibri_imx6: move console in env from header file to defconfig
  2019-02-08 17:42 [U-Boot] [PATCH v1 00/26] colibri imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 01/26] colibri_imx6: get rid of obsolete nospl configurations Marcel Ziswiler
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 02/26] colibri_imx6: use distro defaults Marcel Ziswiler
@ 2019-02-08 17:42 ` Marcel Ziswiler
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 04/26] colibri_imx6: enable fit image, gpt, imx thermal, efi loader support Marcel Ziswiler
                   ` (22 subsequent siblings)
  25 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:42 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Move console in env from header file to defconfig.

While at it also update copyright year.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 configs/colibri_imx6_defconfig | 1 +
 include/configs/colibri_imx6.h | 3 +--
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/configs/colibri_imx6_defconfig b/configs/colibri_imx6_defconfig
index 699eb70088..0b31a46cc9 100644
--- a/configs/colibri_imx6_defconfig
+++ b/configs/colibri_imx6_defconfig
@@ -14,6 +14,7 @@ CONFIG_NR_DRAM_BANKS=1
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg,MX6DL"
 CONFIG_BOOTDELAY=1
 # CONFIG_CONSOLE_MUX is not set
+CONFIG_SYS_CONSOLE_IS_IN_ENV=y
 CONFIG_MISC_INIT_R=y
 CONFIG_VERSION_VARIABLE=y
 # CONFIG_DISPLAY_BOARDINFO is not set
diff --git a/include/configs/colibri_imx6.h b/include/configs/colibri_imx6.h
index 2d40ceb24e..9e45d63245 100644
--- a/include/configs/colibri_imx6.h
+++ b/include/configs/colibri_imx6.h
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0+ */
 /*
- * Copyright 2013-2015 Toradex, Inc.
+ * Copyright 2013-2019 Toradex, Inc.
  *
  * Configuration settings for the Toradex Colibri iMX6
  */
@@ -74,7 +74,6 @@
 
 /* Framebuffer and LCD */
 #define CONFIG_VIDEO_IPUV3
-#define CONFIG_SYS_CONSOLE_IS_IN_ENV
 #define CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_SPLASH_SCREEN
-- 
2.20.1

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

* [U-Boot] [PATCH v1 04/26] colibri_imx6: enable fit image, gpt, imx thermal, efi loader support
  2019-02-08 17:42 [U-Boot] [PATCH v1 00/26] colibri imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (2 preceding siblings ...)
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 03/26] colibri_imx6: move console in env from header file to defconfig Marcel Ziswiler
@ 2019-02-08 17:42 ` Marcel Ziswiler
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 05/26] colibri_imx6: remove obsolete USB_GADGET_MASS_STORAGE configuration Marcel Ziswiler
                   ` (21 subsequent siblings)
  25 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:42 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Enbale FIT image, GPT command, i.MX thermal and EFI loader support.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 configs/colibri_imx6_defconfig | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/configs/colibri_imx6_defconfig b/configs/colibri_imx6_defconfig
index 0b31a46cc9..84fa427c8c 100644
--- a/configs/colibri_imx6_defconfig
+++ b/configs/colibri_imx6_defconfig
@@ -11,6 +11,7 @@ CONFIG_SPL=y
 CONFIG_CMD_HDMIDETECT=y
 CONFIG_DISTRO_DEFAULTS=y
 CONFIG_NR_DRAM_BANKS=1
+CONFIG_FIT=y
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg,MX6DL"
 CONFIG_BOOTDELAY=1
 # CONFIG_CONSOLE_MUX is not set
@@ -36,6 +37,7 @@ CONFIG_CMD_MEMTEST=y
 CONFIG_SYS_ALT_MEMTEST=y
 CONFIG_CMD_DFU=y
 CONFIG_CMD_GPIO=y
+CONFIG_CMD_GPT=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_MMC=y
 CONFIG_CMD_USB=y
@@ -50,6 +52,7 @@ CONFIG_FSL_ESDHC=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_MICREL=y
 CONFIG_MII=y
+CONFIG_IMX_THERMAL=y
 CONFIG_USB=y
 CONFIG_USB_KEYBOARD=y
 CONFIG_USB_GADGET=y
@@ -63,4 +66,3 @@ CONFIG_VIDEO=y
 CONFIG_FAT_WRITE=y
 CONFIG_OF_LIBFDT=y
 CONFIG_OF_LIBFDT_OVERLAY=y
-# CONFIG_EFI_LOADER is not set
-- 
2.20.1

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

* [U-Boot] [PATCH v1 05/26] colibri_imx6: remove obsolete USB_GADGET_MASS_STORAGE configuration
  2019-02-08 17:42 [U-Boot] [PATCH v1 00/26] colibri imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (3 preceding siblings ...)
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 04/26] colibri_imx6: enable fit image, gpt, imx thermal, efi loader support Marcel Ziswiler
@ 2019-02-08 17:42 ` Marcel Ziswiler
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 06/26] colibri_imx6: migrate to using device tree Marcel Ziswiler
                   ` (20 subsequent siblings)
  25 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:42 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Remove obsolete USB_GADGET_MASS_STORAGE configuration.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 include/configs/colibri_imx6.h | 2 --
 1 file changed, 2 deletions(-)

diff --git a/include/configs/colibri_imx6.h b/include/configs/colibri_imx6.h
index 9e45d63245..f029a885d2 100644
--- a/include/configs/colibri_imx6.h
+++ b/include/configs/colibri_imx6.h
@@ -70,8 +70,6 @@
 /* Client */
 #define CONFIG_USBD_HS
 
-#define CONFIG_USB_GADGET_MASS_STORAGE
-
 /* Framebuffer and LCD */
 #define CONFIG_VIDEO_IPUV3
 #define CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE
-- 
2.20.1

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

* [U-Boot] [PATCH v1 06/26] colibri_imx6: migrate to using device tree
  2019-02-08 17:42 [U-Boot] [PATCH v1 00/26] colibri imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (4 preceding siblings ...)
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 05/26] colibri_imx6: remove obsolete USB_GADGET_MASS_STORAGE configuration Marcel Ziswiler
@ 2019-02-08 17:42 ` Marcel Ziswiler
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 07/26] colibri_imx6: clean-up and migrate gpios to using driver model Marcel Ziswiler
                   ` (19 subsequent siblings)
  25 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:42 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Migrate to using device tree required for further driver model
integration.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 arch/arm/dts/imx6-colibri.dts          | 411 +++++++++++++++++++++++++
 board/toradex/colibri_imx6/MAINTAINERS |   2 +
 configs/colibri_imx6_defconfig         |   3 +-
 3 files changed, 415 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/dts/imx6-colibri.dts

diff --git a/arch/arm/dts/imx6-colibri.dts b/arch/arm/dts/imx6-colibri.dts
new file mode 100644
index 0000000000..5c9f1f0d2b
--- /dev/null
+++ b/arch/arm/dts/imx6-colibri.dts
@@ -0,0 +1,411 @@
+// SPDX-License-Identifier: GPL-2.0+ OR X11
+/*
+ * Copyright 2019 Toradex AG
+ */
+
+/dts-v1/;
+#include <dt-bindings/gpio/gpio.h>
+#include "imx6dl.dtsi"
+
+/ {
+	model = "Toradex Colibri iMX6DL/S";
+	compatible = "toradex,colibri_imx6dl", "fsl,imx6dl";
+
+	/* Will be filled by the bootloader */
+	memory at 10000000 {
+		device_type = "memory";
+		reg = <0x10000000 0>;
+	};
+
+	aliases {
+		mmc0 = &usdhc3;
+		mmc1 = &usdhc1;
+		usb0 = &usbotg; /* required for ums */
+	};
+
+	chosen {
+		stdout-path = &uart1;
+	};
+
+	reg_module_3v3: regulator-module-3v3 {
+		compatible = "regulator-fixed";
+		regulator-name = "+V3.3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-always-on;
+	};
+
+	reg_usb_host_vbus: regulator-usb-host-vbus {
+		compatible = "regulator-fixed";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_regulator_usbh_pwr>;
+		regulator-name = "usb_host_vbus";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpio = <&gpio3 31 GPIO_ACTIVE_LOW>; /* USBH_PEN */
+	};
+};
+
+/*
+ * PWR_I2C: power I2C to audio codec, PMIC, temperature sensor and
+ * touch screen controller
+ */
+&i2c2 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c2>;
+	status = "okay";
+
+	pmic: pfuze100 at 8 {
+		compatible = "fsl,pfuze100";
+		reg = <0x08>;
+
+		regulators {
+			sw1a_reg: sw1ab {
+				regulator-min-microvolt = <300000>;
+				regulator-max-microvolt = <1875000>;
+				regulator-boot-on;
+				regulator-always-on;
+				regulator-ramp-delay = <6250>;
+			};
+
+			sw1c_reg: sw1c {
+				regulator-min-microvolt = <300000>;
+				regulator-max-microvolt = <1875000>;
+				regulator-boot-on;
+				regulator-always-on;
+				regulator-ramp-delay = <6250>;
+			};
+
+			sw3a_reg: sw3a {
+				regulator-min-microvolt = <400000>;
+				regulator-max-microvolt = <1975000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			swbst_reg: swbst {
+				regulator-min-microvolt = <5000000>;
+				regulator-max-microvolt = <5150000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			snvs_reg: vsnvs {
+				regulator-min-microvolt = <1000000>;
+				regulator-max-microvolt = <3000000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			vref_reg: vrefddr {
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			/* vgen1: unused */
+
+			vgen2_reg: vgen2 {
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <1550000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			/* vgen3: unused */
+
+			vgen4_reg: vgen4 {
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			vgen5_reg: vgen5 {
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			vgen6_reg: vgen6 {
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+		};
+	};
+};
+
+/*
+ * I2C3_SDA/SCL on SODIMM 194/196 (e.g. RTC on carrier board)
+ */
+&i2c3 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default", "gpio";
+	pinctrl-0 = <&pinctrl_i2c3>;
+	pinctrl-1 = <&pinctrl_i2c3_recovery>;
+	scl-gpios = <&gpio1 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+	sda-gpios = <&gpio1 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+	status = "okay";
+};
+
+/* Colibri UART_A */
+&uart1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart1_dte &pinctrl_uart1_ctrl>;
+	fsl,dte-mode;
+	uart-has-rtscts;
+	status = "okay";
+};
+
+/* Colibri UART_B */
+&uart2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart2_dte>;
+	fsl,dte-mode;
+	uart-has-rtscts;
+	status = "okay";
+};
+
+/* Colibri UART_C */
+&uart3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart3_dte>;
+	fsl,dte-mode;
+	status = "okay";
+};
+
+/* Colibri USBH */
+&usbh1 {
+	dr_mode = "host";
+	vbus-supply = <&reg_usb_host_vbus>;
+	status = "okay";
+};
+
+/* Colibri USBC */
+&usbotg {
+	dr_mode = "host";
+	status = "okay";
+};
+
+/* Colibri MMC */
+&usdhc1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_mmc_cd>;
+	cd-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>; /* MMCD */
+	disable-wp;
+	vqmmc-supply = <&reg_module_3v3>;
+	bus-width = <4>;
+	no-1-8-v;
+	status = "okay";
+};
+
+/* eMMC */
+&usdhc3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usdhc3>;
+	vqmmc-supply = <&reg_module_3v3>;
+	bus-width = <8>;
+	no-1-8-v;
+	non-removable;
+	status = "okay";
+};
+
+&iomuxc {
+	pinctrl_ecspi4: ecspi4grp {
+		fsl,pins = <
+			MX6QDL_PAD_EIM_D22__ECSPI4_MISO	0x100b1
+			MX6QDL_PAD_EIM_D28__ECSPI4_MOSI	0x100b1
+			MX6QDL_PAD_EIM_D21__ECSPI4_SCLK	0x100b1
+			/* SPI CS */
+			MX6QDL_PAD_EIM_A25__GPIO5_IO02	0x000b1
+		>;
+	};
+
+	pinctrl_enet: enetgrp {
+		fsl,pins = <
+			MX6QDL_PAD_ENET_MDC__ENET_MDC		0x1b0b0
+			MX6QDL_PAD_ENET_MDIO__ENET_MDIO		0x1b0b0
+			MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0	0x1b0b0
+			MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1	0x1b0b0
+			MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER	0x1b0b0
+			MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN	0x1b0b0
+			MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0	0x1b0b0
+			MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1	0x1b0b0
+			MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN	0x1b0b0
+			MX6QDL_PAD_GPIO_16__ENET_REF_CLK     ((1<<30) | 0x1b0b0)
+		>;
+	};
+
+	pinctrl_gpio_bl_on: gpioblon {
+		fsl,pins = <
+			MX6QDL_PAD_EIM_D26__GPIO3_IO26	0x1b0b0
+		>;
+	};
+
+	pinctrl_hdmi_ddc: hdmiddcgrp {
+		fsl,pins = <
+			MX6QDL_PAD_KEY_COL3__HDMI_TX_DDC_SCL	0x4001b8b1
+			MX6QDL_PAD_KEY_ROW3__HDMI_TX_DDC_SDA	0x4001b8b1
+		>;
+	};
+
+	pinctrl_i2c2: i2c2grp {
+		fsl,pins = <
+			MX6QDL_PAD_EIM_EB2__I2C2_SCL	0x4001b8b1
+			MX6QDL_PAD_EIM_D16__I2C2_SDA	0x4001b8b1
+		>;
+	};
+
+	pinctrl_i2c3: i2c3grp {
+		fsl,pins = <
+			MX6QDL_PAD_GPIO_3__I2C3_SCL	0x4001b8b1
+			MX6QDL_PAD_GPIO_6__I2C3_SDA	0x4001b8b1
+		>;
+	};
+
+	pinctrl_i2c3_recovery: i2c3recoverygrp {
+		fsl,pins = <
+			MX6QDL_PAD_GPIO_3__GPIO1_IO03	0x4001b8b1
+			MX6QDL_PAD_GPIO_6__GPIO1_IO06	0x4001b8b1
+		>;
+	};
+
+	pinctrl_ipu1_lcdif: ipu1lcdifgrp {
+		fsl,pins = <
+			MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK	0xa1
+			MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15		0xa1
+			MX6QDL_PAD_DI0_PIN2__IPU1_DI0_PIN02		0xa1
+			MX6QDL_PAD_DI0_PIN3__IPU1_DI0_PIN03		0xa1
+			MX6QDL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00	0xa1
+			MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01	0xa1
+			MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02	0xa1
+			MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03	0xa1
+			MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04	0xa1
+			MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05	0xa1
+			MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06	0xa1
+			MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07	0xa1
+			MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08	0xa1
+			MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09	0xa1
+			MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10	0xa1
+			MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11	0xa1
+			MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12	0xa1
+			MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13	0xa1
+			MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14	0xa1
+			MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15	0xa1
+			MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16	0xa1
+			MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17	0xa1
+		>;
+	};
+
+	pinctrl_mmc_cd: gpiommccd {
+		fsl,pins = <
+			MX6QDL_PAD_NANDF_D5__GPIO2_IO05	0x1b0b1
+		>;
+	};
+
+	pinctrl_pwm1: pwm1grp {
+		fsl,pins = <
+			MX6QDL_PAD_GPIO_9__PWM1_OUT	0x1b0b1
+		>;
+	};
+
+	pinctrl_pwm2: pwm2grp {
+		fsl,pins = <
+			MX6QDL_PAD_GPIO_1__PWM2_OUT	0x1b0b1
+			MX6QDL_PAD_EIM_A21__GPIO2_IO17	0x00040
+		>;
+	};
+
+	pinctrl_pwm3: pwm3grp {
+		fsl,pins = <
+			MX6QDL_PAD_SD4_DAT1__PWM3_OUT	0x1b0b1
+			MX6QDL_PAD_EIM_A22__GPIO2_IO16	0x00040
+		>;
+	};
+
+	pinctrl_pwm4: pwm4grp {
+		fsl,pins = <
+			MX6QDL_PAD_SD4_DAT2__PWM4_OUT	0x1b0b1
+		>;
+	};
+
+	pinctrl_regulator_usbh_pwr: gpioregusbhpwrgrp {
+		fsl,pins = <
+			/* SODIMM 129 USBH_PEN */
+			MX6QDL_PAD_EIM_D31__GPIO3_IO31	0x0f058
+		>;
+	};
+
+	pinctrl_uart1_dce: uart1dcegrp {
+		fsl,pins = <
+			MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA	0x1b0b1
+			MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA	0x1b0b1
+		>;
+	};
+
+	/* DTE mode */
+	pinctrl_uart1_dte: uart1dtegrp {
+		fsl,pins = <
+			MX6QDL_PAD_CSI0_DAT10__UART1_RX_DATA	0x1b0b1
+			MX6QDL_PAD_CSI0_DAT11__UART1_TX_DATA	0x1b0b1
+			MX6QDL_PAD_EIM_D19__UART1_RTS_B		0x1b0b1
+			MX6QDL_PAD_EIM_D20__UART1_CTS_B		0x1b0b1
+		>;
+	};
+
+	/* Additional DTR, DSR, DCD */
+	pinctrl_uart1_ctrl: uart1ctrlgrp {
+		fsl,pins = <
+			MX6QDL_PAD_EIM_D23__UART1_DCD_B	0x1b0b0
+			MX6QDL_PAD_EIM_D24__UART1_DTR_B	0x1b0b0
+			MX6QDL_PAD_EIM_D25__UART1_DSR_B	0x1b0b0
+		>;
+	};
+
+	pinctrl_uart2_dte: uart2dtegrp {
+		fsl,pins = <
+			MX6QDL_PAD_SD4_DAT4__UART2_TX_DATA	0x1b0b1
+			MX6QDL_PAD_SD4_DAT7__UART2_RX_DATA	0x1b0b1
+			MX6QDL_PAD_SD4_DAT6__UART2_RTS_B	0x1b0b1
+			MX6QDL_PAD_SD4_DAT5__UART2_CTS_B	0x1b0b1
+		>;
+	};
+
+	pinctrl_uart3_dte: uart3dtegrp {
+		fsl,pins = <
+			MX6QDL_PAD_SD4_CLK__UART3_TX_DATA	0x1b0b1
+			MX6QDL_PAD_SD4_CMD__UART3_RX_DATA	0x1b0b1
+		>;
+	};
+
+	pinctrl_usdhc1: usdhc1grp {
+		fsl,pins = <
+			MX6QDL_PAD_SD1_CMD__SD1_CMD	0x17071
+			MX6QDL_PAD_SD1_CLK__SD1_CLK	0x10071
+			MX6QDL_PAD_SD1_DAT0__SD1_DATA0	0x17071
+			MX6QDL_PAD_SD1_DAT1__SD1_DATA1	0x17071
+			MX6QDL_PAD_SD1_DAT2__SD1_DATA2	0x17071
+			MX6QDL_PAD_SD1_DAT3__SD1_DATA3	0x17071
+		>;
+	};
+
+	pinctrl_usdhc3: usdhc3grp {
+		fsl,pins = <
+			MX6QDL_PAD_SD3_CMD__SD3_CMD	0x17059
+			MX6QDL_PAD_SD3_CLK__SD3_CLK	0x10059
+			MX6QDL_PAD_SD3_DAT0__SD3_DATA0	0x17059
+			MX6QDL_PAD_SD3_DAT1__SD3_DATA1	0x17059
+			MX6QDL_PAD_SD3_DAT2__SD3_DATA2	0x17059
+			MX6QDL_PAD_SD3_DAT3__SD3_DATA3	0x17059
+			MX6QDL_PAD_SD3_DAT4__SD3_DATA4	0x17059
+			MX6QDL_PAD_SD3_DAT5__SD3_DATA5	0x17059
+			MX6QDL_PAD_SD3_DAT6__SD3_DATA6	0x17059
+			MX6QDL_PAD_SD3_DAT7__SD3_DATA7	0x17059
+			/* eMMC reset */
+			MX6QDL_PAD_SD3_RST__SD3_RESET	0x17059
+		>;
+	};
+};
diff --git a/board/toradex/colibri_imx6/MAINTAINERS b/board/toradex/colibri_imx6/MAINTAINERS
index 49999d8cf5..e25c07306c 100644
--- a/board/toradex/colibri_imx6/MAINTAINERS
+++ b/board/toradex/colibri_imx6/MAINTAINERS
@@ -1,7 +1,9 @@
 Colibri iMX6
 M:	Max Krummenacher <max.krummenacher@toradex.com>
 W:	http://developer.toradex.com/software/linux/linux-software
+W:      https://www.toradex.com/community
 S:	Maintained
 F:	board/toradex/colibri_imx6/
 F:	include/configs/colibri_imx6.h
 F:	configs/colibri_imx6_defconfig
+F:	arch/arm/dts/imx6-colibri.dts
diff --git a/configs/colibri_imx6_defconfig b/configs/colibri_imx6_defconfig
index 84fa427c8c..47e05b0b26 100644
--- a/configs/colibri_imx6_defconfig
+++ b/configs/colibri_imx6_defconfig
@@ -45,6 +45,8 @@ CONFIG_CMD_USB_SDP=y
 CONFIG_CMD_USB_MASS_STORAGE=y
 CONFIG_CMD_BMP=y
 CONFIG_CMD_CACHE=y
+CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="imx6-colibri"
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
 CONFIG_DFU_MMC=y
@@ -64,5 +66,4 @@ CONFIG_USB_GADGET_DOWNLOAD=y
 CONFIG_USB_HOST_ETHER=y
 CONFIG_VIDEO=y
 CONFIG_FAT_WRITE=y
-CONFIG_OF_LIBFDT=y
 CONFIG_OF_LIBFDT_OVERLAY=y
-- 
2.20.1

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

* [U-Boot] [PATCH v1 07/26] colibri_imx6: clean-up and migrate gpios to using driver model
  2019-02-08 17:42 [U-Boot] [PATCH v1 00/26] colibri imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (5 preceding siblings ...)
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 06/26] colibri_imx6: migrate to using device tree Marcel Ziswiler
@ 2019-02-08 17:42 ` Marcel Ziswiler
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 08/26] colibri_imx6: enable pin control driver Marcel Ziswiler
                   ` (18 subsequent siblings)
  25 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:42 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Migrate GPIOs to using driver model, properly request backlight, MMC/SD
card detect and USB power enable GPIOs and also enable SION bit in pin
muxing for auxiliary, backlight and USB power enable GPIOs.

While at it also update copyright year, clean-up/re-order includes, add
some comments clarifying ifdef scope and do some white-space clean-up.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 board/toradex/colibri_imx6/colibri_imx6.c | 209 ++++++++++++++--------
 configs/colibri_imx6_defconfig            |   1 +
 2 files changed, 135 insertions(+), 75 deletions(-)

diff --git a/board/toradex/colibri_imx6/colibri_imx6.c b/board/toradex/colibri_imx6/colibri_imx6.c
index 68c0c02a8a..1f5de2f5f6 100644
--- a/board/toradex/colibri_imx6/colibri_imx6.c
+++ b/board/toradex/colibri_imx6/colibri_imx6.c
@@ -2,39 +2,34 @@
 /*
  * Copyright (C) 2010-2013 Freescale Semiconductor, Inc.
  * Copyright (C) 2013, Boundary Devices <info@boundarydevices.com>
- * Copyright (C) 2014-2016, Toradex AG
+ * Copyright (C) 2014-2019, Toradex AG
  * copied from nitrogen6x
  */
 
 #include <common.h>
 #include <dm.h>
+
 #include <asm/arch/clock.h>
 #include <asm/arch/crm_regs.h>
 #include <asm/arch/imx-regs.h>
-#include <asm/arch/iomux.h>
-#include <asm/arch/mx6-pins.h>
 #include <asm/arch/mx6-ddr.h>
+#include <asm/arch/mx6-pins.h>
 #include <asm/arch/mxc_hdmi.h>
 #include <asm/arch/sys_proto.h>
 #include <asm/bootm.h>
 #include <asm/gpio.h>
+#include <asm/mach-imx/boot_mode.h>
 #include <asm/mach-imx/iomux-v3.h>
 #include <asm/mach-imx/mxc_i2c.h>
 #include <asm/mach-imx/sata.h>
-#include <asm/mach-imx/boot_mode.h>
 #include <asm/mach-imx/video.h>
-#include <asm/io.h>
 #include <dm/platform_data/serial_mxc.h>
-#include <dm/platdata.h>
+#include <environment.h>
 #include <fsl_esdhc.h>
 #include <i2c.h>
-#include <input.h>
 #include <imx_thermal.h>
-#include <linux/errno.h>
-#include <malloc.h>
 #include <micrel.h>
 #include <miiphy.h>
-#include <mmc.h>
 #include <netdev.h>
 
 #include "../common/tdx-cfg-block.h"
@@ -173,68 +168,123 @@ static void setup_iomux_enet(void)
 /* mux auxiliary pins to GPIO, so they can be used from the U-Boot cmdline */
 iomux_v3_cfg_t const gpio_pads[] = {
 	/* ADDRESS[17:18] [25] used as GPIO */
-	MX6_PAD_KEY_ROW2__GPIO4_IO11	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_KEY_COL2__GPIO4_IO10	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_NANDF_D1__GPIO2_IO01	| MUX_PAD_CTRL(WEAK_PULLUP),
+	MX6_PAD_KEY_ROW2__GPIO4_IO11	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_KEY_COL2__GPIO4_IO10	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_NANDF_D1__GPIO2_IO01	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
 	/* ADDRESS[19:24] used as GPIO */
-	MX6_PAD_DISP0_DAT23__GPIO5_IO17 | MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_DISP0_DAT22__GPIO5_IO16 | MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_DISP0_DAT21__GPIO5_IO15 | MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_DISP0_DAT20__GPIO5_IO14 | MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_DISP0_DAT19__GPIO5_IO13 | MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_DISP0_DAT18__GPIO5_IO12 | MUX_PAD_CTRL(WEAK_PULLUP),
+	MX6_PAD_DISP0_DAT23__GPIO5_IO17 | MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_DISP0_DAT22__GPIO5_IO16 | MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_DISP0_DAT21__GPIO5_IO15 | MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_DISP0_DAT20__GPIO5_IO14 | MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_DISP0_DAT19__GPIO5_IO13 | MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_DISP0_DAT18__GPIO5_IO12 | MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
 	/* DATA[16:29] [31]	 used as GPIO */
-	MX6_PAD_EIM_LBA__GPIO2_IO27	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_EIM_BCLK__GPIO6_IO31	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_NANDF_CS3__GPIO6_IO16	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_NANDF_CS1__GPIO6_IO14	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_NANDF_RB0__GPIO6_IO10	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_NANDF_ALE__GPIO6_IO08	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_NANDF_WP_B__GPIO6_IO09	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_NANDF_CS0__GPIO6_IO11	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_NANDF_CLE__GPIO6_IO07	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_GPIO_19__GPIO4_IO05	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_CSI0_MCLK__GPIO5_IO19	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_CSI0_PIXCLK__GPIO5_IO18 | MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_GPIO_4__GPIO1_IO04	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_GPIO_5__GPIO1_IO05	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_GPIO_2__GPIO1_IO02	| MUX_PAD_CTRL(WEAK_PULLUP),
+	MX6_PAD_EIM_LBA__GPIO2_IO27	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_EIM_BCLK__GPIO6_IO31	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_NANDF_CS3__GPIO6_IO16	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_NANDF_CS1__GPIO6_IO14	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_NANDF_RB0__GPIO6_IO10	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_NANDF_ALE__GPIO6_IO08	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_NANDF_WP_B__GPIO6_IO09	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_NANDF_CS0__GPIO6_IO11	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_NANDF_CLE__GPIO6_IO07	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_GPIO_19__GPIO4_IO05	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_CSI0_MCLK__GPIO5_IO19	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_CSI0_PIXCLK__GPIO5_IO18 | MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_GPIO_4__GPIO1_IO04	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_GPIO_5__GPIO1_IO05	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_GPIO_2__GPIO1_IO02	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
 	/* DQM[0:3]	 used as GPIO */
-	MX6_PAD_EIM_EB0__GPIO2_IO28	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_EIM_EB1__GPIO2_IO29	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_SD2_DAT2__GPIO1_IO13	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_NANDF_D0__GPIO2_IO00	| MUX_PAD_CTRL(WEAK_PULLUP),
+	MX6_PAD_EIM_EB0__GPIO2_IO28	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_EIM_EB1__GPIO2_IO29	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_SD2_DAT2__GPIO1_IO13	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_NANDF_D0__GPIO2_IO00	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
 	/* RDY	used as GPIO */
-	MX6_PAD_EIM_WAIT__GPIO5_IO00	| MUX_PAD_CTRL(WEAK_PULLUP),
+	MX6_PAD_EIM_WAIT__GPIO5_IO00	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
 	/* ADDRESS[16] DATA[30]	 used as GPIO */
-	MX6_PAD_KEY_ROW4__GPIO4_IO15	| MUX_PAD_CTRL(WEAK_PULLDOWN),
-	MX6_PAD_KEY_COL4__GPIO4_IO14	| MUX_PAD_CTRL(WEAK_PULLUP),
+	MX6_PAD_KEY_ROW4__GPIO4_IO15	| MUX_PAD_CTRL(WEAK_PULLDOWN) |
+					  MUX_MODE_SION,
+	MX6_PAD_KEY_COL4__GPIO4_IO14	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
 	/* CSI pins used as GPIO */
-	MX6_PAD_EIM_A24__GPIO5_IO04	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_SD2_CMD__GPIO1_IO11	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_NANDF_CS2__GPIO6_IO15	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_EIM_D18__GPIO3_IO18	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_EIM_A19__GPIO2_IO19	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_EIM_D29__GPIO3_IO29	| MUX_PAD_CTRL(WEAK_PULLDOWN),
-	MX6_PAD_EIM_A23__GPIO6_IO06	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_EIM_A20__GPIO2_IO18	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_EIM_A17__GPIO2_IO21	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_EIM_A18__GPIO2_IO20	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_EIM_EB3__GPIO2_IO31	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_EIM_D17__GPIO3_IO17	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_SD2_DAT0__GPIO1_IO15	| MUX_PAD_CTRL(WEAK_PULLUP),
+	MX6_PAD_EIM_A24__GPIO5_IO04	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_SD2_CMD__GPIO1_IO11	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_NANDF_CS2__GPIO6_IO15	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_EIM_D18__GPIO3_IO18	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_EIM_A19__GPIO2_IO19	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_EIM_D29__GPIO3_IO29	| MUX_PAD_CTRL(WEAK_PULLDOWN) |
+					  MUX_MODE_SION,
+	MX6_PAD_EIM_A23__GPIO6_IO06	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_EIM_A20__GPIO2_IO18	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_EIM_A17__GPIO2_IO21	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_EIM_A18__GPIO2_IO20	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_EIM_EB3__GPIO2_IO31	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_EIM_D17__GPIO3_IO17	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_SD2_DAT0__GPIO1_IO15	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
 	/* GPIO */
-	MX6_PAD_EIM_D26__GPIO3_IO26	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_EIM_D27__GPIO3_IO27	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_NANDF_D6__GPIO2_IO06	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_NANDF_D3__GPIO2_IO03	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_ENET_REF_CLK__GPIO1_IO23 | MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_DI0_PIN4__GPIO4_IO20	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_SD4_DAT3__GPIO2_IO11	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_NANDF_D4__GPIO2_IO04	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_SD4_DAT0__GPIO2_IO08	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_GPIO_7__GPIO1_IO07	| MUX_PAD_CTRL(WEAK_PULLUP),
-	MX6_PAD_GPIO_8__GPIO1_IO08	| MUX_PAD_CTRL(WEAK_PULLUP),
+	MX6_PAD_EIM_D26__GPIO3_IO26	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_EIM_D27__GPIO3_IO27	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_NANDF_D6__GPIO2_IO06	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_NANDF_D3__GPIO2_IO03	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_ENET_REF_CLK__GPIO1_IO23 | MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_DI0_PIN4__GPIO4_IO20	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_SD4_DAT3__GPIO2_IO11	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_NANDF_D4__GPIO2_IO04	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_SD4_DAT0__GPIO2_IO08	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_GPIO_7__GPIO1_IO07	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
+	MX6_PAD_GPIO_8__GPIO1_IO08	| MUX_PAD_CTRL(WEAK_PULLUP) |
+					  MUX_MODE_SION,
 	/* USBH_OC */
 	MX6_PAD_EIM_D30__GPIO3_IO30	| MUX_PAD_CTRL(WEAK_PULLUP),
 	/* USBC_ID */
@@ -249,8 +299,8 @@ static void setup_iomux_gpio(void)
 }
 
 iomux_v3_cfg_t const usb_pads[] = {
-	/* USB_PE */
-	MX6_PAD_EIM_D31__GPIO3_IO31 | MUX_PAD_CTRL(NO_PAD_CTRL),
+	/* USBH_PEN */
+	MX6_PAD_EIM_D31__GPIO3_IO31 | MUX_PAD_CTRL(NO_PAD_CTRL) | MUX_MODE_SION,
 #	define GPIO_USBH_EN IMX_GPIO_NR(3, 31)
 };
 
@@ -292,6 +342,7 @@ int board_ehci_power(int port, int on)
 	case 1:
 		/* Control MXM USBH */
 		/* Set MXM USBH power enable, '0' means on */
+		gpio_request(GPIO_USBH_EN, "USBH_EN");
 		gpio_direction_output(GPIO_USBH_EN, !on);
 		mdelay(100);
 		break;
@@ -300,7 +351,7 @@ int board_ehci_power(int port, int on)
 	}
 	return 0;
 }
-#endif
+#endif /* CONFIG_USB_EHCI_MX6 */
 
 #ifdef CONFIG_FSL_ESDHC
 /* use the following sequence: eMMC, MMC */
@@ -316,6 +367,7 @@ int board_mmc_getcd(struct mmc *mmc)
 
 	switch (cfg->esdhc_base) {
 	case USDHC1_BASE_ADDR:
+		gpio_request(GPIO_MMC_CD, "MMC_CD");
 		gpio_direction_input(GPIO_MMC_CD);
 		ret = !gpio_get_value(GPIO_MMC_CD);
 		break;
@@ -356,7 +408,7 @@ int board_mmc_init(bd_t *bis)
 	}
 
 	return status;
-#else
+#else /* !CONFIG_SPL_BUILD */
 	struct src *psrc = (struct src *)SRC_BASE_ADDR;
 	unsigned reg = readl(&psrc->sbmr1) >> 11;
 	/*
@@ -388,9 +440,9 @@ int board_mmc_init(bd_t *bis)
 	}
 
 	return fsl_esdhc_initialize(bis, &usdhc_cfg[0]);
-#endif
+#endif /* !CONFIG_SPL_BUILD */
 }
-#endif
+#endif /* CONFIG_FSL_ESDHC */
 
 int board_phy_config(struct phy_device *phydev)
 {
@@ -412,6 +464,7 @@ int board_eth_init(bd_t *bis)
 	ret = enable_fec_anatop_clock(0, ENET_50MHZ);
 	if (ret)
 		return ret;
+
 	/* set gpr1[ENET_CLK_SEL] */
 	setbits_le32(&iomuxc_regs->gpr[1], IOMUXC_GPR1_ENET_CLK_SEL_MASK);
 
@@ -421,6 +474,7 @@ int board_eth_init(bd_t *bis)
 	bus = fec_get_miibus(base, -1);
 	if (!bus)
 		return 0;
+
 	/* scan PHY 1..7 */
 	phydev = phy_find_by_mask(bus, 0xff, PHY_INTERFACE_MODE_RMII);
 	if (!phydev) {
@@ -428,6 +482,7 @@ int board_eth_init(bd_t *bis)
 		puts("no PHY found\n");
 		return 0;
 	}
+
 	phy_reset(phydev);
 	printf("using PHY at %d\n", phydev->addr);
 	ret = fec_probe(bis, -1, base, bus, phydev);
@@ -436,7 +491,8 @@ int board_eth_init(bd_t *bis)
 		free(phydev);
 		free(bus);
 	}
-#endif
+#endif /* CONFIG_FEC_MXC */
+
 	return 0;
 }
 
@@ -452,11 +508,12 @@ static iomux_v3_cfg_t const pwr_intb_pads[] = {
 
 static iomux_v3_cfg_t const backlight_pads[] = {
 	/* Backlight On */
-	MX6_PAD_EIM_D26__GPIO3_IO26 | MUX_PAD_CTRL(NO_PAD_CTRL),
+	MX6_PAD_EIM_D26__GPIO3_IO26 | MUX_PAD_CTRL(NO_PAD_CTRL) | MUX_MODE_SION,
 #define RGB_BACKLIGHT_GP IMX_GPIO_NR(3, 26)
 	/* Backlight PWM, used as GPIO in U-Boot */
 	MX6_PAD_EIM_A22__GPIO2_IO16  | MUX_PAD_CTRL(NO_PULLUP),
-	MX6_PAD_SD4_DAT1__GPIO2_IO09 | MUX_PAD_CTRL(NO_PAD_CTRL),
+	MX6_PAD_SD4_DAT1__GPIO2_IO09 | MUX_PAD_CTRL(NO_PAD_CTRL) |
+				       MUX_MODE_SION,
 #define RGB_BACKLIGHTPWM_GP IMX_GPIO_NR(2, 9)
 };
 
@@ -619,6 +676,8 @@ static void setup_display(void)
 	imx_iomux_v3_setup_multiple_pads(backlight_pads,
 					 ARRAY_SIZE(backlight_pads));
 	/* use 0 for EDT 7", use 1 for LG fullHD panel */
+	gpio_request(RGB_BACKLIGHTPWM_GP, "PWM<A>");
+	gpio_request(RGB_BACKLIGHT_GP, "BL_ON");
 	gpio_direction_output(RGB_BACKLIGHTPWM_GP, 0);
 	gpio_direction_output(RGB_BACKLIGHT_GP, 1);
 }
@@ -1108,7 +1167,7 @@ void reset_cpu(ulong addr)
 {
 }
 
-#endif
+#endif /* CONFIG_SPL_BUILD */
 
 static struct mxc_serial_platdata mxc_serial_plat = {
 	.reg = (struct mxc_uart *)UART1_BASE,
diff --git a/configs/colibri_imx6_defconfig b/configs/colibri_imx6_defconfig
index 47e05b0b26..27b85c61dc 100644
--- a/configs/colibri_imx6_defconfig
+++ b/configs/colibri_imx6_defconfig
@@ -50,6 +50,7 @@ CONFIG_DEFAULT_DEVICE_TREE="imx6-colibri"
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
 CONFIG_DFU_MMC=y
+CONFIG_DM_GPIO=y
 CONFIG_FSL_ESDHC=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_MICREL=y
-- 
2.20.1

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

* [U-Boot] [PATCH v1 08/26] colibri_imx6: enable pin control driver
  2019-02-08 17:42 [U-Boot] [PATCH v1 00/26] colibri imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (6 preceding siblings ...)
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 07/26] colibri_imx6: clean-up and migrate gpios to using driver model Marcel Ziswiler
@ 2019-02-08 17:42 ` Marcel Ziswiler
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 09/26] colibri_imx6: migrate i2c to using driver model Marcel Ziswiler
                   ` (17 subsequent siblings)
  25 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:42 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Enable pin control driver as required for further driver model
migration.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 configs/colibri_imx6_defconfig | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/configs/colibri_imx6_defconfig b/configs/colibri_imx6_defconfig
index 27b85c61dc..481d65329f 100644
--- a/configs/colibri_imx6_defconfig
+++ b/configs/colibri_imx6_defconfig
@@ -55,6 +55,8 @@ CONFIG_FSL_ESDHC=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_MICREL=y
 CONFIG_MII=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_IMX6=y
 CONFIG_IMX_THERMAL=y
 CONFIG_USB=y
 CONFIG_USB_KEYBOARD=y
-- 
2.20.1

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

* [U-Boot] [PATCH v1 09/26] colibri_imx6: migrate i2c to using driver model
  2019-02-08 17:42 [U-Boot] [PATCH v1 00/26] colibri imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (7 preceding siblings ...)
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 08/26] colibri_imx6: enable pin control driver Marcel Ziswiler
@ 2019-02-08 17:42 ` Marcel Ziswiler
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 10/26] colibri_imx6: migrate pmic and regulator " Marcel Ziswiler
                   ` (16 subsequent siblings)
  25 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:42 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Migrate I2C to using driver model.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 board/toradex/colibri_imx6/colibri_imx6.c | 50 +--------------------
 board/toradex/colibri_imx6/pf0100.c       | 54 ++++++++++++-----------
 configs/colibri_imx6_defconfig            |  1 +
 include/configs/colibri_imx6.h            |  8 ++--
 4 files changed, 36 insertions(+), 77 deletions(-)

diff --git a/board/toradex/colibri_imx6/colibri_imx6.c b/board/toradex/colibri_imx6/colibri_imx6.c
index 1f5de2f5f6..f5cfeb30bc 100644
--- a/board/toradex/colibri_imx6/colibri_imx6.c
+++ b/board/toradex/colibri_imx6/colibri_imx6.c
@@ -20,13 +20,11 @@
 #include <asm/gpio.h>
 #include <asm/mach-imx/boot_mode.h>
 #include <asm/mach-imx/iomux-v3.h>
-#include <asm/mach-imx/mxc_i2c.h>
 #include <asm/mach-imx/sata.h>
 #include <asm/mach-imx/video.h>
 #include <dm/platform_data/serial_mxc.h>
 #include <environment.h>
 #include <fsl_esdhc.h>
-#include <i2c.h>
 #include <imx_thermal.h>
 #include <micrel.h>
 #include <miiphy.h>
@@ -50,16 +48,6 @@ DECLARE_GLOBAL_DATA_PTR;
 #define ENET_PAD_CTRL  (PAD_CTL_PUS_100K_UP |			\
 	PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
 
-#define SPI_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_SPEED_MED |		\
-	PAD_CTL_DSE_40ohm     | PAD_CTL_SRE_FAST)
-
-#define BUTTON_PAD_CTRL (PAD_CTL_PUS_100K_UP |			\
-	PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
-
-#define I2C_PAD_CTRL	(PAD_CTL_PUS_100K_UP |			\
-	PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS |	\
-	PAD_CTL_ODE | PAD_CTL_SRE_FAST)
-
 #define WEAK_PULLUP	(PAD_CTL_PUS_100K_UP |			\
 	PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS |	\
 	PAD_CTL_SRE_SLOW)
@@ -72,8 +60,6 @@ DECLARE_GLOBAL_DATA_PTR;
 	PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm |			\
 	PAD_CTL_HYS | PAD_CTL_SRE_SLOW)
 
-#define OUTPUT_40OHM (PAD_CTL_SPEED_MED|PAD_CTL_DSE_40ohm)
-
 #define OUTPUT_RGB (PAD_CTL_SPEED_MED|PAD_CTL_DSE_60ohm|PAD_CTL_SRE_FAST)
 
 int dram_init(void)
@@ -91,36 +77,7 @@ iomux_v3_cfg_t const uart1_pads[] = {
 	MX6_PAD_CSI0_DAT11__UART1_TX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL),
 };
 
-#define PC MUX_PAD_CTRL(I2C_PAD_CTRL)
-/* Colibri I2C */
-struct i2c_pads_info i2c_pad_info1 = {
-	.scl = {
-		.i2c_mode = MX6_PAD_GPIO_3__I2C3_SCL | PC,
-		.gpio_mode = MX6_PAD_GPIO_3__GPIO1_IO03 | PC,
-		.gp = IMX_GPIO_NR(1, 3)
-	},
-	.sda = {
-		.i2c_mode = MX6_PAD_GPIO_6__I2C3_SDA | PC,
-		.gpio_mode = MX6_PAD_GPIO_6__GPIO1_IO06 | PC,
-		.gp = IMX_GPIO_NR(1, 6)
-	}
-};
-
-/* Colibri local, PMIC, SGTL5000, STMPE811 */
-struct i2c_pads_info i2c_pad_info_loc = {
-	.scl = {
-		.i2c_mode = MX6_PAD_EIM_EB2__I2C2_SCL | PC,
-		.gpio_mode = MX6_PAD_EIM_EB2__GPIO2_IO30 | PC,
-		.gp = IMX_GPIO_NR(2, 30)
-	},
-	.sda = {
-		.i2c_mode = MX6_PAD_EIM_D16__I2C2_SDA | PC,
-		.gpio_mode = MX6_PAD_EIM_D16__GPIO3_IO16 | PC,
-		.gp = IMX_GPIO_NR(3, 16)
-	}
-};
-
-/* Apalis MMC */
+/* Colibri MMC */
 iomux_v3_cfg_t const usdhc1_pads[] = {
 	MX6_PAD_SD1_CLK__SD1_CLK    | MUX_PAD_CTRL(USDHC_PAD_CTRL),
 	MX6_PAD_SD1_CMD__SD1_CMD    | MUX_PAD_CTRL(USDHC_PAD_CTRL),
@@ -706,9 +663,6 @@ int board_init(void)
 	/* address of boot parameters */
 	gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
 
-	setup_i2c(2, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info1);
-	setup_i2c(1, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info_loc);
-
 #if defined(CONFIG_VIDEO_IPUV3)
 	setup_display();
 #endif
@@ -1141,7 +1095,7 @@ void board_init_f(ulong dummy)
 	ccgr_init();
 	gpr_init();
 
-	/* iomux and setup of i2c */
+	/* iomux */
 	board_early_init_f();
 
 	/* setup GP timer */
diff --git a/board/toradex/colibri_imx6/pf0100.c b/board/toradex/colibri_imx6/pf0100.c
index fa63865670..5e411f1743 100644
--- a/board/toradex/colibri_imx6/pf0100.c
+++ b/board/toradex/colibri_imx6/pf0100.c
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0+
 /*
- * Copyright (C) 2014-2016, Toradex AG
+ * Copyright (C) 2014-2019, Toradex AG
  */
 
 /*
@@ -29,22 +29,25 @@ static __maybe_unused iomux_v3_cfg_t const pmic_prog_pads[] = {
 
 unsigned pmic_init(void)
 {
+	int rc;
+	struct udevice *dev = NULL;
 	unsigned programmed = 0;
 	uchar bus = 1;
 	uchar devid, revid, val;
 
 	puts("PMIC: ");
-	if (!((0 == i2c_set_bus_num(bus)) &&
-	      (0 == i2c_probe(PFUZE100_I2C_ADDR)))) {
-		puts("i2c bus failed\n");
+	rc = i2c_get_chip_for_busnum(bus, PFUZE100_I2C_ADDR, 1, &dev);
+	if (rc) {
+		printf("failed to get device for PMIC at address 0x%x\n",
+		       PFUZE100_I2C_ADDR);
 		return 0;
 	}
 	/* get device ident */
-	if (i2c_read(PFUZE100_I2C_ADDR, PFUZE100_DEVICEID, 1, &devid, 1) < 0) {
+	if (dm_i2c_read(dev, PFUZE100_DEVICEID, &devid, 1) < 0) {
 		puts("i2c pmic devid read failed\n");
 		return 0;
 	}
-	if (i2c_read(PFUZE100_I2C_ADDR, PFUZE100_REVID, 1, &revid, 1) < 0) {
+	if (dm_i2c_read(dev, PFUZE100_REVID, &revid, 1) < 0) {
 		puts("i2c pmic revid read failed\n");
 		return 0;
 	}
@@ -52,14 +55,14 @@ unsigned pmic_init(void)
 
 #ifdef DEBUG
 	{
-		unsigned i, j;
+		unsigned int i, j;
 
 		for (i = 0; i < 16; i++)
 			printf("\t%x", i);
 		for (j = 0; j < 0x80; ) {
 			printf("\n%2x", j);
 			for (i = 0; i < 16; i++) {
-				i2c_read(PFUZE100_I2C_ADDR, j+i, 1, &val, 1);
+				dm_i2c_read(dev, j + i, &val, 1);
 				printf("\t%2x", val);
 			}
 			j += 0x10;
@@ -67,8 +70,7 @@ unsigned pmic_init(void)
 		printf("\nEXT Page 1");
 
 		val = PFUZE100_PAGE_REGISTER_PAGE1;
-		if (i2c_write(PFUZE100_I2C_ADDR, PFUZE100_PAGE_REGISTER, 1,
-			      &val, 1)) {
+		if (dm_i2c_write(dev, PFUZE100_PAGE_REGISTER, &val, 1)) {
 			puts("i2c write failed\n");
 			return 0;
 		}
@@ -76,7 +78,7 @@ unsigned pmic_init(void)
 		for (j = 0x80; j < 0x100; ) {
 			printf("\n%2x", j);
 			for (i = 0; i < 16; i++) {
-				i2c_read(PFUZE100_I2C_ADDR, j+i, 1, &val, 1);
+				dm_i2c_read(dev, j + i, &val, 1);
 				printf("\t%2x", val);
 			}
 			j += 0x10;
@@ -84,8 +86,7 @@ unsigned pmic_init(void)
 		printf("\nEXT Page 2");
 
 		val = PFUZE100_PAGE_REGISTER_PAGE2;
-		if (i2c_write(PFUZE100_I2C_ADDR, PFUZE100_PAGE_REGISTER, 1,
-			      &val, 1)) {
+		if (dm_i2c_write(dev, PFUZE100_PAGE_REGISTER, &val, 1)) {
 			puts("i2c write failed\n");
 			return 0;
 		}
@@ -93,35 +94,36 @@ unsigned pmic_init(void)
 		for (j = 0x80; j < 0x100; ) {
 			printf("\n%2x", j);
 			for (i = 0; i < 16; i++) {
-				i2c_read(PFUZE100_I2C_ADDR, j+i, 1, &val, 1);
+				dm_i2c_read(dev, j + i, &val, 1);
 				printf("\t%2x", val);
 			}
 			j += 0x10;
 		}
 		printf("\n");
 	}
-#endif
+#endif /* DEBUG */
+
 	/* get device programmed state */
 	val = PFUZE100_PAGE_REGISTER_PAGE1;
-	if (i2c_write(PFUZE100_I2C_ADDR, PFUZE100_PAGE_REGISTER, 1, &val, 1)) {
+	if (dm_i2c_write(dev, PFUZE100_PAGE_REGISTER, &val, 1)) {
 		puts("i2c write failed\n");
 		return 0;
 	}
-	if (i2c_read(PFUZE100_I2C_ADDR, PFUZE100_FUSE_POR1, 1, &val, 1) < 0) {
+	if (dm_i2c_read(dev, PFUZE100_FUSE_POR1, &val, 1) < 0) {
 		puts("i2c fuse_por read failed\n");
 		return 0;
 	}
 	if (val & PFUZE100_FUSE_POR_M)
 		programmed++;
 
-	if (i2c_read(PFUZE100_I2C_ADDR, PFUZE100_FUSE_POR2, 1, &val, 1) < 0) {
+	if (dm_i2c_read(dev, PFUZE100_FUSE_POR2, &val, 1) < 0) {
 		puts("i2c fuse_por read failed\n");
 		return programmed;
 	}
 	if (val & PFUZE100_FUSE_POR_M)
 		programmed++;
 
-	if (i2c_read(PFUZE100_I2C_ADDR, PFUZE100_FUSE_POR3, 1, &val, 1) < 0) {
+	if (dm_i2c_read(dev, PFUZE100_FUSE_POR3, &val, 1) < 0) {
 		puts("i2c fuse_por read failed\n");
 		return programmed;
 	}
@@ -146,6 +148,8 @@ unsigned pmic_init(void)
 #ifndef CONFIG_SPL_BUILD
 static int pf0100_prog(void)
 {
+	int rc;
+	struct udevice *dev = NULL;
 	unsigned char bus = 1;
 	unsigned char val;
 	unsigned int i;
@@ -159,9 +163,10 @@ static int pf0100_prog(void)
 					 ARRAY_SIZE(pmic_prog_pads));
 	gpio_direction_output(PMIC_PROG_VOLTAGE, 0);
 
-	if (!((0 == i2c_set_bus_num(bus)) &&
-	      (0 == i2c_probe(PFUZE100_I2C_ADDR)))) {
-		puts("i2c bus failed\n");
+	rc = i2c_get_chip_for_busnum(bus, PFUZE100_I2C_ADDR, 1, &dev);
+	if (rc) {
+		printf("failed to get device for PMIC@address 0x%x\n",
+		       PFUZE100_I2C_ADDR);
 		return CMD_RET_FAILURE;
 	}
 
@@ -169,8 +174,7 @@ static int pf0100_prog(void)
 		switch (pmic_otp_prog[i].cmd) {
 		case pmic_i2c:
 			val = (unsigned char) (pmic_otp_prog[i].value & 0xff);
-			if (i2c_write(PFUZE100_I2C_ADDR, pmic_otp_prog[i].reg,
-				      1, &val, 1)) {
+			if (dm_i2c_write(dev, pmic_otp_prog[i].reg, &val, 1)) {
 				printf("i2c write failed, reg 0x%2x, value 0x%2x\n",
 				       pmic_otp_prog[i].reg, val);
 				return CMD_RET_FAILURE;
@@ -209,4 +213,4 @@ U_BOOT_CMD(
 	"Program the OTP fuses on the PMIC PF0100",
 	""
 );
-#endif
+#endif /* CONFIG_SPL_BUILD */
diff --git a/configs/colibri_imx6_defconfig b/configs/colibri_imx6_defconfig
index 481d65329f..dea6ca6270 100644
--- a/configs/colibri_imx6_defconfig
+++ b/configs/colibri_imx6_defconfig
@@ -51,6 +51,7 @@ CONFIG_ENV_IS_IN_MMC=y
 CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
 CONFIG_DFU_MMC=y
 CONFIG_DM_GPIO=y
+CONFIG_DM_I2C=y
 CONFIG_FSL_ESDHC=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_MICREL=y
diff --git a/include/configs/colibri_imx6.h b/include/configs/colibri_imx6.h
index f029a885d2..e51ec8516f 100644
--- a/include/configs/colibri_imx6.h
+++ b/include/configs/colibri_imx6.h
@@ -32,12 +32,12 @@
 #define CONFIG_MXC_UART_BASE		UART1_BASE
 
 /* I2C Configs */
-#define CONFIG_SYS_I2C
 #define CONFIG_SYS_I2C_MXC
-#define CONFIG_SYS_I2C_MXC_I2C1         /* enable I2C bus 1 */
-#define CONFIG_SYS_I2C_MXC_I2C2         /* enable I2C bus 2 */
-#define CONFIG_SYS_I2C_MXC_I2C3         /* enable I2C bus 3 */
+#define CONFIG_SYS_I2C_MXC_I2C1		/* enable I2C bus 1 */
+#define CONFIG_SYS_I2C_MXC_I2C2		/* enable I2C bus 2 */
+#define CONFIG_SYS_I2C_MXC_I2C3		/* enable I2C bus 3 */
 #define CONFIG_SYS_I2C_SPEED		100000
+#define CONFIG_SYS_MXC_I2C3_SPEED	400000
 
 /* OCOTP Configs */
 #ifdef CONFIG_CMD_FUSE
-- 
2.20.1

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

* [U-Boot] [PATCH v1 10/26] colibri_imx6: migrate pmic and regulator to using driver model
  2019-02-08 17:42 [U-Boot] [PATCH v1 00/26] colibri imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (8 preceding siblings ...)
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 09/26] colibri_imx6: migrate i2c to using driver model Marcel Ziswiler
@ 2019-02-08 17:42 ` Marcel Ziswiler
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 11/26] colibri_imx6: migrate mmc " Marcel Ziswiler
                   ` (15 subsequent siblings)
  25 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:42 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Migrate PMIC and regulator to using driver model.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 configs/colibri_imx6_defconfig | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/configs/colibri_imx6_defconfig b/configs/colibri_imx6_defconfig
index dea6ca6270..6fd050a99f 100644
--- a/configs/colibri_imx6_defconfig
+++ b/configs/colibri_imx6_defconfig
@@ -45,6 +45,8 @@ CONFIG_CMD_USB_SDP=y
 CONFIG_CMD_USB_MASS_STORAGE=y
 CONFIG_CMD_BMP=y
 CONFIG_CMD_CACHE=y
+CONFIG_CMD_PMIC=y
+CONFIG_CMD_REGULATOR=y
 CONFIG_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="imx6-colibri"
 CONFIG_ENV_IS_IN_MMC=y
@@ -58,6 +60,11 @@ CONFIG_PHY_MICREL=y
 CONFIG_MII=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX6=y
+CONFIG_DM_PMIC=y
+CONFIG_DM_PMIC_PFUZE100=y
+CONFIG_DM_REGULATOR=y
+CONFIG_DM_REGULATOR_PFUZE100=y
+CONFIG_DM_REGULATOR_FIXED=y
 CONFIG_IMX_THERMAL=y
 CONFIG_USB=y
 CONFIG_USB_KEYBOARD=y
-- 
2.20.1

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

* [U-Boot] [PATCH v1 11/26] colibri_imx6: migrate mmc to using driver model
  2019-02-08 17:42 [U-Boot] [PATCH v1 00/26] colibri imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (9 preceding siblings ...)
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 10/26] colibri_imx6: migrate pmic and regulator " Marcel Ziswiler
@ 2019-02-08 17:42 ` Marcel Ziswiler
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 12/26] colibri_imx6: migrate usb " Marcel Ziswiler
                   ` (14 subsequent siblings)
  25 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:42 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Migrate MMC to using driver model.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 board/toradex/colibri_imx6/colibri_imx6.c | 38 +++--------------------
 configs/colibri_imx6_defconfig            |  1 +
 2 files changed, 5 insertions(+), 34 deletions(-)

diff --git a/board/toradex/colibri_imx6/colibri_imx6.c b/board/toradex/colibri_imx6/colibri_imx6.c
index f5cfeb30bc..ef4dd0c87c 100644
--- a/board/toradex/colibri_imx6/colibri_imx6.c
+++ b/board/toradex/colibri_imx6/colibri_imx6.c
@@ -77,6 +77,7 @@ iomux_v3_cfg_t const uart1_pads[] = {
 	MX6_PAD_CSI0_DAT11__UART1_TX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL),
 };
 
+#if defined(CONFIG_FSL_ESDHC) && defined(CONFIG_SPL_BUILD)
 /* Colibri MMC */
 iomux_v3_cfg_t const usdhc1_pads[] = {
 	MX6_PAD_SD1_CLK__SD1_CLK    | MUX_PAD_CTRL(USDHC_PAD_CTRL),
@@ -103,6 +104,7 @@ iomux_v3_cfg_t const usdhc3_pads[] = {
 	MX6_PAD_SD3_DAT7__SD3_DATA7 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
 	MX6_PAD_SD3_RST__SD3_RESET  | MUX_PAD_CTRL(USDHC_PAD_CTRL),
 };
+#endif /* CONFIG_FSL_ESDHC & CONFIG_SPL_BUILD */
 
 iomux_v3_cfg_t const enet_pads[] = {
 	MX6_PAD_ENET_MDC__ENET_MDC		| MUX_PAD_CTRL(ENET_PAD_CTRL),
@@ -310,7 +312,7 @@ int board_ehci_power(int port, int on)
 }
 #endif /* CONFIG_USB_EHCI_MX6 */
 
-#ifdef CONFIG_FSL_ESDHC
+#if defined(CONFIG_FSL_ESDHC) && defined(CONFIG_SPL_BUILD)
 /* use the following sequence: eMMC, MMC */
 struct fsl_esdhc_cfg usdhc_cfg[CONFIG_SYS_FSL_USDHC_NUM] = {
 	{USDHC3_BASE_ADDR},
@@ -335,37 +337,6 @@ int board_mmc_getcd(struct mmc *mmc)
 
 int board_mmc_init(bd_t *bis)
 {
-#ifndef CONFIG_SPL_BUILD
-	s32 status = 0;
-	u32 index = 0;
-
-	usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK);
-	usdhc_cfg[1].sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK);
-
-	usdhc_cfg[0].max_bus_width = 8;
-	usdhc_cfg[1].max_bus_width = 4;
-
-	for (index = 0; index < CONFIG_SYS_FSL_USDHC_NUM; ++index) {
-		switch (index) {
-		case 0:
-			imx_iomux_v3_setup_multiple_pads(
-				usdhc3_pads, ARRAY_SIZE(usdhc3_pads));
-			break;
-		case 1:
-			imx_iomux_v3_setup_multiple_pads(
-				usdhc1_pads, ARRAY_SIZE(usdhc1_pads));
-			break;
-		default:
-			printf("Warning: you configured more USDHC controllers (%d) then supported by the board (%d)\n",
-			       index + 1, CONFIG_SYS_FSL_USDHC_NUM);
-			return status;
-		}
-
-		status |= fsl_esdhc_initialize(bis, &usdhc_cfg[index]);
-	}
-
-	return status;
-#else /* !CONFIG_SPL_BUILD */
 	struct src *psrc = (struct src *)SRC_BASE_ADDR;
 	unsigned reg = readl(&psrc->sbmr1) >> 11;
 	/*
@@ -397,9 +368,8 @@ int board_mmc_init(bd_t *bis)
 	}
 
 	return fsl_esdhc_initialize(bis, &usdhc_cfg[0]);
-#endif /* !CONFIG_SPL_BUILD */
 }
-#endif /* CONFIG_FSL_ESDHC */
+#endif /* CONFIG_FSL_ESDHC & CONFIG_SPL_BUILD */
 
 int board_phy_config(struct phy_device *phydev)
 {
diff --git a/configs/colibri_imx6_defconfig b/configs/colibri_imx6_defconfig
index 6fd050a99f..2ab7db44a8 100644
--- a/configs/colibri_imx6_defconfig
+++ b/configs/colibri_imx6_defconfig
@@ -54,6 +54,7 @@ CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
 CONFIG_DFU_MMC=y
 CONFIG_DM_GPIO=y
 CONFIG_DM_I2C=y
+CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_MICREL=y
-- 
2.20.1

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

* [U-Boot] [PATCH v1 12/26] colibri_imx6: migrate usb to using driver model
  2019-02-08 17:42 [U-Boot] [PATCH v1 00/26] colibri imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (10 preceding siblings ...)
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 11/26] colibri_imx6: migrate mmc " Marcel Ziswiler
@ 2019-02-08 17:42 ` Marcel Ziswiler
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 13/26] colibri_imx6: drop CONFIG_OF_SYSTEM_SETUP Marcel Ziswiler
                   ` (13 subsequent siblings)
  25 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:42 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Migrate USB to using driver model.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 board/toradex/colibri_imx6/colibri_imx6.c | 23 +----------------------
 configs/colibri_imx6_defconfig            |  1 +
 2 files changed, 2 insertions(+), 22 deletions(-)

diff --git a/board/toradex/colibri_imx6/colibri_imx6.c b/board/toradex/colibri_imx6/colibri_imx6.c
index ef4dd0c87c..adb5a3df4c 100644
--- a/board/toradex/colibri_imx6/colibri_imx6.c
+++ b/board/toradex/colibri_imx6/colibri_imx6.c
@@ -289,28 +289,7 @@ int board_ehci_hcd_init(int port)
 	imx_iomux_v3_setup_multiple_pads(usb_pads, ARRAY_SIZE(usb_pads));
 	return 0;
 }
-
-int board_ehci_power(int port, int on)
-{
-	switch (port) {
-	case 0:
-		/* control OTG power */
-		/* No special PE for USBC, always on when ID pin signals
-		   host mode */
-		break;
-	case 1:
-		/* Control MXM USBH */
-		/* Set MXM USBH power enable, '0' means on */
-		gpio_request(GPIO_USBH_EN, "USBH_EN");
-		gpio_direction_output(GPIO_USBH_EN, !on);
-		mdelay(100);
-		break;
-	default:
-		break;
-	}
-	return 0;
-}
-#endif /* CONFIG_USB_EHCI_MX6 */
+#endif
 
 #if defined(CONFIG_FSL_ESDHC) && defined(CONFIG_SPL_BUILD)
 /* use the following sequence: eMMC, MMC */
diff --git a/configs/colibri_imx6_defconfig b/configs/colibri_imx6_defconfig
index 2ab7db44a8..df5a7be39f 100644
--- a/configs/colibri_imx6_defconfig
+++ b/configs/colibri_imx6_defconfig
@@ -68,6 +68,7 @@ CONFIG_DM_REGULATOR_PFUZE100=y
 CONFIG_DM_REGULATOR_FIXED=y
 CONFIG_IMX_THERMAL=y
 CONFIG_USB=y
+CONFIG_DM_USB=y
 CONFIG_USB_KEYBOARD=y
 CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_MANUFACTURER="Toradex"
-- 
2.20.1

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

* [U-Boot] [PATCH v1 13/26] colibri_imx6: drop CONFIG_OF_SYSTEM_SETUP
  2019-02-08 17:42 [U-Boot] [PATCH v1 00/26] colibri imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (11 preceding siblings ...)
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 12/26] colibri_imx6: migrate usb " Marcel Ziswiler
@ 2019-02-08 17:42 ` Marcel Ziswiler
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 14/26] colibri_imx6: print also 64-bit IT Marcel Ziswiler
                   ` (12 subsequent siblings)
  25 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:42 UTC (permalink / raw)
  To: u-boot

From: Max Krummenacher <max.krummenacher@toradex.com>

This doesn't do anything anymore, probably never did.

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 board/toradex/colibri_imx6/colibri_imx6.c | 7 -------
 include/configs/colibri_imx6.h            | 2 --
 2 files changed, 9 deletions(-)

diff --git a/board/toradex/colibri_imx6/colibri_imx6.c b/board/toradex/colibri_imx6/colibri_imx6.c
index adb5a3df4c..83ecd20b3d 100644
--- a/board/toradex/colibri_imx6/colibri_imx6.c
+++ b/board/toradex/colibri_imx6/colibri_imx6.c
@@ -646,13 +646,6 @@ int board_late_init(void)
 }
 #endif /* CONFIG_BOARD_LATE_INIT */
 
-#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_SYSTEM_SETUP)
-int ft_system_setup(void *blob, bd_t *bd)
-{
-	return 0;
-}
-#endif
-
 int checkboard(void)
 {
 	char it[] = " IT";
diff --git a/include/configs/colibri_imx6.h b/include/configs/colibri_imx6.h
index e51ec8516f..c782b2924c 100644
--- a/include/configs/colibri_imx6.h
+++ b/include/configs/colibri_imx6.h
@@ -237,8 +237,6 @@
 #define CONFIG_SYS_MMC_ENV_PART		1
 #endif
 
-#define CONFIG_OF_SYSTEM_SETUP
-
 #define CONFIG_CMD_TIME
 
 #endif	/* __CONFIG_H */
-- 
2.20.1

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

* [U-Boot] [PATCH v1 14/26] colibri_imx6: print also 64-bit IT
  2019-02-08 17:42 [U-Boot] [PATCH v1 00/26] colibri imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (12 preceding siblings ...)
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 13/26] colibri_imx6: drop CONFIG_OF_SYSTEM_SETUP Marcel Ziswiler
@ 2019-02-08 17:42 ` Marcel Ziswiler
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 15/26] colibri_imx6: add distroboot support Marcel Ziswiler
                   ` (11 subsequent siblings)
  25 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:42 UTC (permalink / raw)
  To: u-boot

From: Max Krummenacher <max.krummenacher@toradex.com>

Print also for Colibri iMX6 512MB IT with 64-bit RAM bus.

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 board/toradex/colibri_imx6/colibri_imx6.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/board/toradex/colibri_imx6/colibri_imx6.c b/board/toradex/colibri_imx6/colibri_imx6.c
index 83ecd20b3d..439d38bc29 100644
--- a/board/toradex/colibri_imx6/colibri_imx6.c
+++ b/board/toradex/colibri_imx6/colibri_imx6.c
@@ -1019,6 +1019,7 @@ static void spl_dram_init(void)
 	case TEMP_AUTOMOTIVE:
 	default:
 		if (is_cpu_type(MXC_CPU_MX6DL)) {
+			puts("Industrial temperature grade DDR3 timings, 64bit bus width.\n");
 			ddr_init(mx6dl_dcd_table, ARRAY_SIZE(mx6dl_dcd_table));
 		} else {
 			puts("Industrial temperature grade DDR3 timings, 32bit bus width.\n");
-- 
2.20.1

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

* [U-Boot] [PATCH v1 15/26] colibri_imx6: add distroboot support
  2019-02-08 17:42 [U-Boot] [PATCH v1 00/26] colibri imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (13 preceding siblings ...)
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 14/26] colibri_imx6: print also 64-bit IT Marcel Ziswiler
@ 2019-02-08 17:42 ` Marcel Ziswiler
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 16/26] colibri_imx6: unify sd/mmc drive strenght with linux kernel settings Marcel Ziswiler
                   ` (10 subsequent siblings)
  25 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:42 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

Add support for distro boot. This is especially helpful for external
devices. There is a global boot command which scans a predefined
list of boot targets:
  run distro_bootcmd

As well as direct boot commands such as:
  run bootcmd_mmc1
  run bootcmd_usb
  run bootcmd_dhcp
  ...

Refer to doc/README.distro fo details.

While at it, remove the CONFIG_DRIVE_TYPES define which has not
been used and was meant to be used for multi device boot support
which is now provided by distroboot.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 include/configs/colibri_imx6.h | 23 +++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/include/configs/colibri_imx6.h b/include/configs/colibri_imx6.h
index c782b2924c..77f884f341 100644
--- a/include/configs/colibri_imx6.h
+++ b/include/configs/colibri_imx6.h
@@ -100,14 +100,18 @@
 
 #define CONFIG_LOADADDR			0x12000000
 
-#ifdef CONFIG_CMD_MMC
-#define CONFIG_DRIVE_MMC "mmc "
+#ifndef CONFIG_SPL_BUILD
+#define BOOT_TARGET_DEVICES(func) \
+	func(MMC, mmc, 1) \
+	func(USB, usb, 0) \
+	func(DHCP, dhcp, na)
+#include <config_distro_bootcmd.h>
+#undef BOOTENV_RUN_NET_USB_START
+#define BOOTENV_RUN_NET_USB_START ""
 #else
-#define CONFIG_DRIVE_MMC
+#define BOOTENV
 #endif
 
-#define CONFIG_DRIVE_TYPES CONFIG_DRIVE_MMC
-
 #define DFU_ALT_EMMC_INFO \
 	"u-boot.imx raw 0x2 0x3ff mmcpart 0;" \
 	"boot part 0 1;" \
@@ -134,7 +138,9 @@
 	"fdt_high=0xffffffff\0" \
 	"initrd_high=0xffffffff\0" \
 	"kernel_addr_r=0x11000000\0" \
-	"ramdisk_addr_r=0x12100000\0"
+	"pxefile_addr_r=0x17100000\0" \
+	"ramdisk_addr_r=0x12100000\0" \
+	"scriptaddr=0x17000000\0"
 
 #define NFS_BOOTCMD \
 	"nfsargs=ip=:::::eth0:on root=/dev/nfs rw\0" \
@@ -171,9 +177,10 @@
 
 #define FDT_FILE "imx6dl-colibri-eval-v3.dtb"
 #define CONFIG_EXTRA_ENV_SETTINGS \
+	BOOTENV \
 	"bootcmd=run emmcboot ; echo ; echo emmcboot failed ; " \
-		"run nfsboot ; echo ; echo nfsboot failed ; " \
-		"usb start ;" \
+		"run distro_bootcmd ; " \
+		"usb start ; " \
 		"setenv stdout serial,vga ; setenv stdin serial,usbkbd\0" \
 	"boot_file=uImage\0" \
 	"console=ttymxc0\0" \
-- 
2.20.1

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

* [U-Boot] [PATCH v1 16/26] colibri_imx6: unify sd/mmc drive strenght with linux kernel settings
  2019-02-08 17:42 [U-Boot] [PATCH v1 00/26] colibri imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (14 preceding siblings ...)
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 15/26] colibri_imx6: add distroboot support Marcel Ziswiler
@ 2019-02-08 17:42 ` Marcel Ziswiler
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 17/26] colibri imx6: pf0100: reorder and cleanup message printing Marcel Ziswiler
                   ` (9 subsequent siblings)
  25 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:42 UTC (permalink / raw)
  To: u-boot

From: Max Krummenacher <max.krummenacher@toradex.com>

In the linux device tree we use 40Ohm drive strenght. So use the same
value in U-Boot.

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 board/toradex/colibri_imx6/colibri_imx6.c | 24 +++++++++++++----------
 1 file changed, 14 insertions(+), 10 deletions(-)

diff --git a/board/toradex/colibri_imx6/colibri_imx6.c b/board/toradex/colibri_imx6/colibri_imx6.c
index 439d38bc29..3d72a315b4 100644
--- a/board/toradex/colibri_imx6/colibri_imx6.c
+++ b/board/toradex/colibri_imx6/colibri_imx6.c
@@ -42,6 +42,10 @@ DECLARE_GLOBAL_DATA_PTR;
 	PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
 
 #define USDHC_PAD_CTRL (PAD_CTL_PUS_47K_UP |			\
+	PAD_CTL_SPEED_LOW | PAD_CTL_DSE_40ohm |			\
+	PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
+
+#define USDHC_EMMC_PAD_CTRL (PAD_CTL_PUS_47K_UP |		\
 	PAD_CTL_SPEED_LOW | PAD_CTL_DSE_80ohm |			\
 	PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
 
@@ -92,16 +96,16 @@ iomux_v3_cfg_t const usdhc1_pads[] = {
 
 /* eMMC */
 iomux_v3_cfg_t const usdhc3_pads[] = {
-	MX6_PAD_SD3_CLK__SD3_CLK    | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD3_CMD__SD3_CMD    | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD3_DAT0__SD3_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD3_DAT1__SD3_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD3_DAT2__SD3_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD3_DAT3__SD3_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD3_DAT4__SD3_DATA4 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD3_DAT5__SD3_DATA5 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD3_DAT6__SD3_DATA6 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD3_DAT7__SD3_DATA7 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+	MX6_PAD_SD3_CLK__SD3_CLK    | MUX_PAD_CTRL(USDHC_EMMC_PAD_CTRL),
+	MX6_PAD_SD3_CMD__SD3_CMD    | MUX_PAD_CTRL(USDHC_EMMC_PAD_CTRL),
+	MX6_PAD_SD3_DAT0__SD3_DATA0 | MUX_PAD_CTRL(USDHC_EMMC_PAD_CTRL),
+	MX6_PAD_SD3_DAT1__SD3_DATA1 | MUX_PAD_CTRL(USDHC_EMMC_PAD_CTRL),
+	MX6_PAD_SD3_DAT2__SD3_DATA2 | MUX_PAD_CTRL(USDHC_EMMC_PAD_CTRL),
+	MX6_PAD_SD3_DAT3__SD3_DATA3 | MUX_PAD_CTRL(USDHC_EMMC_PAD_CTRL),
+	MX6_PAD_SD3_DAT4__SD3_DATA4 | MUX_PAD_CTRL(USDHC_EMMC_PAD_CTRL),
+	MX6_PAD_SD3_DAT5__SD3_DATA5 | MUX_PAD_CTRL(USDHC_EMMC_PAD_CTRL),
+	MX6_PAD_SD3_DAT6__SD3_DATA6 | MUX_PAD_CTRL(USDHC_EMMC_PAD_CTRL),
+	MX6_PAD_SD3_DAT7__SD3_DATA7 | MUX_PAD_CTRL(USDHC_EMMC_PAD_CTRL),
 	MX6_PAD_SD3_RST__SD3_RESET  | MUX_PAD_CTRL(USDHC_PAD_CTRL),
 };
 #endif /* CONFIG_FSL_ESDHC & CONFIG_SPL_BUILD */
-- 
2.20.1

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

* [U-Boot] [PATCH v1 17/26] colibri imx6: pf0100: reorder and cleanup message printing
  2019-02-08 17:42 [U-Boot] [PATCH v1 00/26] colibri imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (15 preceding siblings ...)
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 16/26] colibri_imx6: unify sd/mmc drive strenght with linux kernel settings Marcel Ziswiler
@ 2019-02-08 17:42 ` Marcel Ziswiler
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 18/26] colibri imx6: disable ri and dcd irq in uarts Marcel Ziswiler
                   ` (8 subsequent siblings)
  25 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:42 UTC (permalink / raw)
  To: u-boot

From: Max Krummenacher <max.krummenacher@toradex.com>

Keep debug code at the end of the function.
Use a one line informational message for the PMIC only.

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 board/toradex/colibri_imx6/pf0100.c | 82 ++++++++++++++---------------
 1 file changed, 41 insertions(+), 41 deletions(-)

diff --git a/board/toradex/colibri_imx6/pf0100.c b/board/toradex/colibri_imx6/pf0100.c
index 5e411f1743..09c3cc950a 100644
--- a/board/toradex/colibri_imx6/pf0100.c
+++ b/board/toradex/colibri_imx6/pf0100.c
@@ -35,7 +35,7 @@ unsigned pmic_init(void)
 	uchar bus = 1;
 	uchar devid, revid, val;
 
-	puts("PMIC: ");
+	puts("PMIC:  ");
 	rc = i2c_get_chip_for_busnum(bus, PFUZE100_I2C_ADDR, 1, &dev);
 	if (rc) {
 		printf("failed to get device for PMIC at address 0x%x\n",
@@ -51,7 +51,46 @@ unsigned pmic_init(void)
 		puts("i2c pmic revid read failed\n");
 		return 0;
 	}
-	printf("device id: 0x%.2x, revision id: 0x%.2x\n", devid, revid);
+	printf("device id: 0x%.2x, revision id: 0x%.2x, ", devid, revid);
+
+	/* get device programmed state */
+	val = PFUZE100_PAGE_REGISTER_PAGE1;
+	if (dm_i2c_write(dev, PFUZE100_PAGE_REGISTER, &val, 1)) {
+		puts("i2c write failed\n");
+		return 0;
+	}
+	if (dm_i2c_read(dev, PFUZE100_FUSE_POR1, &val, 1) < 0) {
+		puts("i2c fuse_por read failed\n");
+		return 0;
+	}
+	if (val & PFUZE100_FUSE_POR_M)
+		programmed++;
+
+	if (dm_i2c_read(dev, PFUZE100_FUSE_POR2, &val, 1) < 0) {
+		puts("i2c fuse_por read failed\n");
+		return programmed;
+	}
+	if (val & PFUZE100_FUSE_POR_M)
+		programmed++;
+
+	if (dm_i2c_read(dev, PFUZE100_FUSE_POR3, &val, 1) < 0) {
+		puts("i2c fuse_por read failed\n");
+		return programmed;
+	}
+	if (val & PFUZE100_FUSE_POR_M)
+		programmed++;
+
+	switch (programmed) {
+	case 0:
+		puts("not programmed\n");
+		break;
+	case 3:
+		puts("programmed\n");
+		break;
+	default:
+		puts("undefined programming state\n");
+		break;
+	}
 
 #ifdef DEBUG
 	{
@@ -103,45 +142,6 @@ unsigned pmic_init(void)
 	}
 #endif /* DEBUG */
 
-	/* get device programmed state */
-	val = PFUZE100_PAGE_REGISTER_PAGE1;
-	if (dm_i2c_write(dev, PFUZE100_PAGE_REGISTER, &val, 1)) {
-		puts("i2c write failed\n");
-		return 0;
-	}
-	if (dm_i2c_read(dev, PFUZE100_FUSE_POR1, &val, 1) < 0) {
-		puts("i2c fuse_por read failed\n");
-		return 0;
-	}
-	if (val & PFUZE100_FUSE_POR_M)
-		programmed++;
-
-	if (dm_i2c_read(dev, PFUZE100_FUSE_POR2, &val, 1) < 0) {
-		puts("i2c fuse_por read failed\n");
-		return programmed;
-	}
-	if (val & PFUZE100_FUSE_POR_M)
-		programmed++;
-
-	if (dm_i2c_read(dev, PFUZE100_FUSE_POR3, &val, 1) < 0) {
-		puts("i2c fuse_por read failed\n");
-		return programmed;
-	}
-	if (val & PFUZE100_FUSE_POR_M)
-		programmed++;
-
-	switch (programmed) {
-	case 0:
-		printf("PMIC: not programmed\n");
-		break;
-	case 3:
-		printf("PMIC: programmed\n");
-		break;
-	default:
-		printf("PMIC: undefined programming state\n");
-		break;
-	}
-
 	return programmed;
 }
 
-- 
2.20.1

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

* [U-Boot] [PATCH v1 18/26] colibri imx6: disable ri and dcd irq in uarts
  2019-02-08 17:42 [U-Boot] [PATCH v1 00/26] colibri imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (16 preceding siblings ...)
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 17/26] colibri imx6: pf0100: reorder and cleanup message printing Marcel Ziswiler
@ 2019-02-08 17:42 ` Marcel Ziswiler
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 19/26] colibri_imx6: change pmic fusing according to hw 1.1 requirements Marcel Ziswiler
                   ` (7 subsequent siblings)
  25 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:42 UTC (permalink / raw)
  To: u-boot

From: Max Krummenacher <max.krummenacher@toradex.com>

If the UART is used in DTE mode the RI and DCD bits in UCR3 become
irq enable bits. Both are set to enabled after reset and both likely
are pending.

Disable the bits also on UARTs not used in the boot loader to prevent
an interrupt storm when Linux enables the UART interrupts.

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 board/toradex/colibri_imx6/colibri_imx6.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/board/toradex/colibri_imx6/colibri_imx6.c b/board/toradex/colibri_imx6/colibri_imx6.c
index 3d72a315b4..76b776e17e 100644
--- a/board/toradex/colibri_imx6/colibri_imx6.c
+++ b/board/toradex/colibri_imx6/colibri_imx6.c
@@ -271,14 +271,21 @@ iomux_v3_cfg_t const usb_pads[] = {
  * UARTs are used in DTE mode, switch the mode on all UARTs before
  * any pinmuxing connects a (DCE) output to a transceiver output.
  */
+#define UCR3		0x88	/* FIFO Control Register */
+#define UCR3_RI		BIT(8)	/* RIDELT DTE mode */
+#define UCR3_DCD	BIT(9)	/* DCDDELT DTE mode */
 #define UFCR		0x90	/* FIFO Control Register */
-#define UFCR_DCEDTE	(1<<6)	/* DCE=0 */
+#define UFCR_DCEDTE	BIT(6)	/* DCE=0 */
 
 static void setup_dtemode_uart(void)
 {
 	setbits_le32((u32 *)(UART1_BASE + UFCR), UFCR_DCEDTE);
 	setbits_le32((u32 *)(UART2_BASE + UFCR), UFCR_DCEDTE);
 	setbits_le32((u32 *)(UART3_BASE + UFCR), UFCR_DCEDTE);
+
+	clrbits_le32((u32 *)(UART1_BASE + UCR3), UCR3_DCD | UCR3_RI);
+	clrbits_le32((u32 *)(UART2_BASE + UCR3), UCR3_DCD | UCR3_RI);
+	clrbits_le32((u32 *)(UART3_BASE + UCR3), UCR3_DCD | UCR3_RI);
 }
 
 static void setup_iomux_uart(void)
-- 
2.20.1

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

* [U-Boot] [PATCH v1 19/26] colibri_imx6: change pmic fusing according to hw 1.1 requirements
  2019-02-08 17:42 [U-Boot] [PATCH v1 00/26] colibri imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (17 preceding siblings ...)
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 18/26] colibri imx6: disable ri and dcd irq in uarts Marcel Ziswiler
@ 2019-02-08 17:42 ` Marcel Ziswiler
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 20/26] colibri_imx6: revert fuse value set in mfgr_fuse Marcel Ziswiler
                   ` (6 subsequent siblings)
  25 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:42 UTC (permalink / raw)
  To: u-boot

From: Max Krummenacher <max.krummenacher@toradex.com>

Colibri iMX6 V1.1 HW can use the PMIC GEN3 to power the NVCC_SD1.
Change the settings fused into the PMIC's OTP to powerup with
GEN3 set to output 3.3V.

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 board/toradex/colibri_imx6/pf0100_otp.inc | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/board/toradex/colibri_imx6/pf0100_otp.inc b/board/toradex/colibri_imx6/pf0100_otp.inc
index ce29b95ae2..c3b1f67f81 100644
--- a/board/toradex/colibri_imx6/pf0100_otp.inc
+++ b/board/toradex/colibri_imx6/pf0100_otp.inc
@@ -5,16 +5,17 @@
 
 // Register Output for PF0100 programmer
 // Customer: Toradex AG
-// Program: Colibri iMX6
+// Program: Colibri iMX6 V1.1
 // Sample marking:
-// Date: 24.07.2015
-// Time: 10:52:58
+// Date: 01.05.2017
+// Time: 16:22:32
 // Generated from Spreadsheet Revision: P1.8
 
-/* sed commands to get from programmer script to struct */
+/* sed commands to get from programmer script to struct content */
 /* sed -e 's/^WRITE_I2C:\(..\):\(..\)/\{pmic_i2c, 0x\1, 0x\2\},/g' -e 's/^DELAY:\([0-9]*\)/\{pmic_delay, 0, \1\},/g' pf0100_otp_Colibri_iMX6.txt > pf0100_otp.inc
    sed -i -e 's/^VPGM:ON/\{pmic_vpgm, 0, 1},/g' -e 's/^VPGM:OFF/\{pmic_vpgm, 0, 0},/g' pf0100_otp.inc
-   sed -i -e 's/^PWRON: HIGH/\{pmic_pwr, 0, 1},/g' -e 's/^PWRON:LOW/\{pmic_pwr, 0, 0},/g' pf0100_otp.inc */
+   sed -i -e 's/^PWRON: HIGH/\{pmic_pwr, 0, 1},/g' -e 's/^PWRON:LOW/\{pmic_pwr, 0, 0},/g' pf0100_otp.inc
+*/
 
 enum { pmic_i2c, pmic_delay, pmic_vpgm, pmic_pwr };
 struct pmic_otp_prog_t{
@@ -47,7 +48,8 @@ struct pmic_otp_prog_t pmic_otp_prog[] = {
 {pmic_i2c, 0xC8, 0x0E}, // Auto gen from Row134
 {pmic_i2c, 0xCC, 0x0E}, // Auto gen from Row138
 {pmic_i2c, 0xCD, 0x05}, // Auto gen from Row139
-{pmic_i2c, 0xD0, 0x0C}, // Auto gen from Row142
+{pmic_i2c, 0xD0, 0x0F}, // Auto gen from Row142
+{pmic_i2c, 0xD1, 0x05}, // Auto gen from Row143
 {pmic_i2c, 0xD5, 0x07}, // Auto gen from Row147
 {pmic_i2c, 0xD8, 0x07}, // Auto gen from Row150
 {pmic_i2c, 0xD9, 0x06}, // Auto gen from Row151
@@ -185,4 +187,4 @@ struct pmic_otp_prog_t pmic_otp_prog[] = {
 {pmic_delay, 0, 500},
 {pmic_pwr, 0, 1},
 #endif
-};
\ No newline at end of file
+};
-- 
2.20.1

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

* [U-Boot] [PATCH v1 20/26] colibri_imx6: revert fuse value set in mfgr_fuse
  2019-02-08 17:42 [U-Boot] [PATCH v1 00/26] colibri imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (18 preceding siblings ...)
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 19/26] colibri_imx6: change pmic fusing according to hw 1.1 requirements Marcel Ziswiler
@ 2019-02-08 17:42 ` Marcel Ziswiler
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 21/26] toradex: colibri_imx6: overwrite CMA memory set in device tree Marcel Ziswiler
                   ` (5 subsequent siblings)
  25 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:42 UTC (permalink / raw)
  To: u-boot

From: Max Krummenacher <max.krummenacher@toradex.com>

We have two commands to change the bootmode fuses:
mfgr_fuse which set fuse 0/5 and 0/6
and
updt_fuse which burns bit 4 of 0/5.

Before Image 2.6 we fused in mfgr_fuse 0x5062, which boots
from the user partition of the eMMC.
To workaround certain hangs we moved to fastboot mode and
using the first bootpartition of the eMMC requiring a fuse
value of 0x5072 which could be achived by the then added
updt_fuse command. At the same time the mfgr_fuse command
was changed to also fuse 0x5072, revert that second change
so that one can fuse both values, one with just mfgr_fuse
and the later with mfgr_fuse;updt_fuse.

Note that the mfgr_fuse command is only needed at module
production time, a customer might need to use updt_fuse
when upgrading an older module to be compatible with a
newer image. The command is integrated into the image
update scripts.

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 board/toradex/colibri_imx6/do_fuse.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/board/toradex/colibri_imx6/do_fuse.c b/board/toradex/colibri_imx6/do_fuse.c
index e6793e366a..22d191f52a 100644
--- a/board/toradex/colibri_imx6/do_fuse.c
+++ b/board/toradex/colibri_imx6/do_fuse.c
@@ -29,7 +29,7 @@ static int mfgr_fuse(void)
 		return CMD_RET_FAILURE;
 	}
 	/* boot cfg */
-	fuse_prog(0, 5, 0x00005072);
+	fuse_prog(0, 5, 0x00005062);
 	/* BT_FUSE_SEL */
 	fuse_prog(0, 6, 0x00000010);
 	return CMD_RET_SUCCESS;
-- 
2.20.1

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

* [U-Boot] [PATCH v1 21/26] toradex: colibri_imx6: overwrite CMA memory set in device tree
  2019-02-08 17:42 [U-Boot] [PATCH v1 00/26] colibri imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (19 preceding siblings ...)
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 20/26] colibri_imx6: revert fuse value set in mfgr_fuse Marcel Ziswiler
@ 2019-02-08 17:42 ` Marcel Ziswiler
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 22/26] configs: colibri_imx6: Use ext4 file system by default Marcel Ziswiler
                   ` (4 subsequent siblings)
  25 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:42 UTC (permalink / raw)
  To: u-boot

From: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>

Make sure CMA memory is not greater than 50% of available physical
memory.

Allow user to change the CMA memory via 'cma-size' U-Boot environment
variable.

Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 board/toradex/colibri_imx6/colibri_imx6.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/board/toradex/colibri_imx6/colibri_imx6.c b/board/toradex/colibri_imx6/colibri_imx6.c
index 76b776e17e..fd988bd2b0 100644
--- a/board/toradex/colibri_imx6/colibri_imx6.c
+++ b/board/toradex/colibri_imx6/colibri_imx6.c
@@ -22,6 +22,7 @@
 #include <asm/mach-imx/iomux-v3.h>
 #include <asm/mach-imx/sata.h>
 #include <asm/mach-imx/video.h>
+#include <cpu.h>
 #include <dm/platform_data/serial_mxc.h>
 #include <environment.h>
 #include <fsl_esdhc.h>
@@ -679,7 +680,18 @@ int checkboard(void)
 #if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
 int ft_board_setup(void *blob, bd_t *bd)
 {
-	return ft_common_board_setup(blob, bd);
+	u32 cma_size;
+
+	ft_common_board_setup(blob, bd);
+
+	cma_size = getenv_ulong("cma-size", 10, 320 * 1024 * 1024);
+	cma_size = min((u32)(gd->ram_size >> 1), cma_size);
+
+	fdt_setprop_u32(blob,
+			fdt_path_offset(blob, "/reserved-memory/linux,cma"),
+			"size",
+			cma_size);
+	return 0;
 }
 #endif
 
-- 
2.20.1

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

* [U-Boot] [PATCH v1 22/26] configs: colibri_imx6: Use ext4 file system by default
  2019-02-08 17:42 [U-Boot] [PATCH v1 00/26] colibri imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (20 preceding siblings ...)
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 21/26] toradex: colibri_imx6: overwrite CMA memory set in device tree Marcel Ziswiler
@ 2019-02-08 17:42 ` Marcel Ziswiler
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 23/26] colibri_imx6: use SDP if USB serial downloader has been used Marcel Ziswiler
                   ` (3 subsequent siblings)
  25 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:42 UTC (permalink / raw)
  To: u-boot

From: Sanchayan Maity <maitysanchayan@gmail.com>

Use ext4 file system by default.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 include/configs/colibri_imx6.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/include/configs/colibri_imx6.h b/include/configs/colibri_imx6.h
index 77f884f341..6e056aab31 100644
--- a/include/configs/colibri_imx6.h
+++ b/include/configs/colibri_imx6.h
@@ -121,7 +121,7 @@
 	"imx6q-colibri-cam-eval-v3.dtb fat 0 1"
 
 #define EMMC_BOOTCMD \
-	"emmcargs=ip=off root=/dev/mmcblk0p2 rw,noatime rootfstype=ext3 " \
+	"emmcargs=ip=off root=/dev/mmcblk0p2 rw,noatime rootfstype=ext4 " \
 		"rootwait\0" \
 	"emmcboot=run setup; " \
 		"setenv bootargs ${defargs} ${emmcargs} ${setupargs} " \
@@ -153,7 +153,7 @@
 		"&& setenv dtbparam \" - ${fdt_addr_r}\" && true\0"
 
 #define SD_BOOTCMD						\
-	"sdargs=ip=off root=/dev/mmcblk1p2 rw,noatime rootfstype=ext3 " \
+	"sdargs=ip=off root=/dev/mmcblk1p2 rw,noatime rootfstype=ext4 " \
 		"rootwait\0" \
 	"sdboot=run setup; " \
 		"setenv bootargs ${defargs} ${sdargs} ${setupargs} " \
@@ -165,7 +165,7 @@
 		"${fdt_file} && setenv dtbparam \" - ${fdt_addr_r}\" && true\0"
 
 #define USB_BOOTCMD \
-	"usbargs=ip=off root=/dev/sda2 rw,noatime rootfstype=ext3 " \
+	"usbargs=ip=off root=/dev/sda2 rw,noatime rootfstype=ext4 " \
 		"rootwait\0" \
 	"usbboot=run setup; setenv bootargs ${defargs} ${setupargs} " \
 		"${usbargs} ${vidargs}; echo Booting from USB stick...; " \
-- 
2.20.1

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

* [U-Boot] [PATCH v1 23/26] colibri_imx6: use SDP if USB serial downloader has been used
  2019-02-08 17:42 [U-Boot] [PATCH v1 00/26] colibri imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (21 preceding siblings ...)
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 22/26] configs: colibri_imx6: Use ext4 file system by default Marcel Ziswiler
@ 2019-02-08 17:42 ` Marcel Ziswiler
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 24/26] colibri_imx6: switch to zimage Marcel Ziswiler
                   ` (2 subsequent siblings)
  25 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:42 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

In case USB serial downloader has been used to load U-Boot start the
serial download protocol (SDP) emulation. This allows to download
complete images such as Toradex Easy Installer over USB SDP as well.
This code uses the boot ROM provided boot information to reliably
detect USB serial downloader.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 board/toradex/colibri_imx6/colibri_imx6.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/board/toradex/colibri_imx6/colibri_imx6.c b/board/toradex/colibri_imx6/colibri_imx6.c
index fd988bd2b0..4d9032419a 100644
--- a/board/toradex/colibri_imx6/colibri_imx6.c
+++ b/board/toradex/colibri_imx6/colibri_imx6.c
@@ -654,6 +654,14 @@ int board_late_init(void)
 	env_set("board_rev", env_str);
 #endif
 
+#ifdef CONFIG_CMD_USB_SDP
+	if (is_boot_from_usb()) {
+		printf("Serial Downloader recovery mode, using sdp command\n");
+		env_set("bootdelay", "0");
+		env_set("bootcmd", "sdp 0");
+	}
+#endif /* CONFIG_CMD_USB_SDP */
+
 	return 0;
 }
 #endif /* CONFIG_BOARD_LATE_INIT */
@@ -684,7 +692,7 @@ int ft_board_setup(void *blob, bd_t *bd)
 
 	ft_common_board_setup(blob, bd);
 
-	cma_size = getenv_ulong("cma-size", 10, 320 * 1024 * 1024);
+	cma_size = env_get_ulong("cma-size", 10, 320 * 1024 * 1024);
 	cma_size = min((u32)(gd->ram_size >> 1), cma_size);
 
 	fdt_setprop_u32(blob,
-- 
2.20.1

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

* [U-Boot] [PATCH v1 24/26] colibri_imx6: switch to zimage
  2019-02-08 17:42 [U-Boot] [PATCH v1 00/26] colibri imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (22 preceding siblings ...)
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 23/26] colibri_imx6: use SDP if USB serial downloader has been used Marcel Ziswiler
@ 2019-02-08 17:42 ` Marcel Ziswiler
  2019-02-08 21:42   ` Lukasz Majewski
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 25/26] colibri_imx6: added nreset gpio on reboot Marcel Ziswiler
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 26/26] board: colibri_imx6: check for and report ecc errors in fuses Marcel Ziswiler
  25 siblings, 1 reply; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:42 UTC (permalink / raw)
  To: u-boot

From: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>

Switch to the generic compressed Kernel image type (zImage) instead of
the U-Boot specific uImage format.

While at it also fix device tree naming for MMC DFU.

Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 include/configs/colibri_imx6.h | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/include/configs/colibri_imx6.h b/include/configs/colibri_imx6.h
index 6e056aab31..a6a823ee1f 100644
--- a/include/configs/colibri_imx6.h
+++ b/include/configs/colibri_imx6.h
@@ -108,17 +108,17 @@
 #include <config_distro_bootcmd.h>
 #undef BOOTENV_RUN_NET_USB_START
 #define BOOTENV_RUN_NET_USB_START ""
-#else
+#else /* CONFIG_SPL_BUILD */
 #define BOOTENV
-#endif
+#endif /* CONFIG_SPL_BUILD */
 
 #define DFU_ALT_EMMC_INFO \
 	"u-boot.imx raw 0x2 0x3ff mmcpart 0;" \
 	"boot part 0 1;" \
 	"rootfs part 0 2;" \
-	"uImage fat 0 1;" \
-	"imx6q-colibri-eval-v3.dtb fat 0 1;" \
-	"imx6q-colibri-cam-eval-v3.dtb fat 0 1"
+	"zImage fat 0 1;" \
+	"imx6dl-colibri-eval-v3.dtb fat 0 1;" \
+	"imx6dl-colibri-cam-eval-v3.dtb fat 0 1"
 
 #define EMMC_BOOTCMD \
 	"emmcargs=ip=off root=/dev/mmcblk0p2 rw,noatime rootfstype=ext4 " \
@@ -128,7 +128,7 @@
 		"${vidargs}; echo Booting from internal eMMC chip...; "	\
 		"run emmcdtbload; load mmc 0:1 ${kernel_addr_r} " \
 		"${boot_file} && run fdt_fixup && " \
-		"bootm ${kernel_addr_r} ${dtbparam}\0" \
+		"bootz ${kernel_addr_r} ${dtbparam}\0" \
 	"emmcdtbload=setenv dtbparam; load mmc 0:1 ${fdt_addr_r} " \
 		"${fdt_file} && setenv dtbparam \" - ${fdt_addr_r}\" && true\0"
 
@@ -148,11 +148,11 @@
 		"setenv bootargs ${defargs} ${nfsargs} ${setupargs} " \
 		"${vidargs}; echo Booting via DHCP/TFTP/NFS...; " \
 		"run nfsdtbload; dhcp ${kernel_addr_r} " \
-		"&& run fdt_fixup && bootm ${kernel_addr_r} ${dtbparam}\0" \
+		"&& run fdt_fixup && bootz ${kernel_addr_r} ${dtbparam}\0" \
 	"nfsdtbload=setenv dtbparam; tftp ${fdt_addr_r} ${fdt_file} " \
 		"&& setenv dtbparam \" - ${fdt_addr_r}\" && true\0"
 
-#define SD_BOOTCMD						\
+#define SD_BOOTCMD \
 	"sdargs=ip=off root=/dev/mmcblk1p2 rw,noatime rootfstype=ext4 " \
 		"rootwait\0" \
 	"sdboot=run setup; " \
@@ -160,7 +160,7 @@
 		"${vidargs}; echo Booting from SD card; " \
 		"run sddtbload; load mmc 1:1 ${kernel_addr_r} " \
 		"${boot_file} && run fdt_fixup && " \
-		"bootm ${kernel_addr_r} ${dtbparam}\0" \
+		"bootz ${kernel_addr_r} ${dtbparam}\0" \
 	"sddtbload=setenv dtbparam; load mmc 1:1 ${fdt_addr_r} " \
 		"${fdt_file} && setenv dtbparam \" - ${fdt_addr_r}\" && true\0"
 
@@ -171,7 +171,7 @@
 		"${usbargs} ${vidargs}; echo Booting from USB stick...; " \
 		"usb start && run usbdtbload; load usb 0:1 ${kernel_addr_r} " \
 		"${boot_file} && run fdt_fixup && " \
-		"bootm ${kernel_addr_r} ${dtbparam}\0" \
+		"bootz ${kernel_addr_r} ${dtbparam}\0" \
 	"usbdtbload=setenv dtbparam; load usb 0:1 ${fdt_addr_r} " \
 		"${fdt_file} && setenv dtbparam \" - ${fdt_addr_r}\" && true\0"
 
@@ -182,7 +182,7 @@
 		"run distro_bootcmd ; " \
 		"usb start ; " \
 		"setenv stdout serial,vga ; setenv stdin serial,usbkbd\0" \
-	"boot_file=uImage\0" \
+	"boot_file=zImage\0" \
 	"console=ttymxc0\0" \
 	"defargs=enable_wait_mode=off galcore.contiguousSize=50331648\0" \
 	"dfu_alt_info=" DFU_ALT_EMMC_INFO "\0" \
-- 
2.20.1

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

* [U-Boot] [PATCH v1 25/26] colibri_imx6: added nreset gpio on reboot
  2019-02-08 17:42 [U-Boot] [PATCH v1 00/26] colibri imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (23 preceding siblings ...)
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 24/26] colibri_imx6: switch to zimage Marcel Ziswiler
@ 2019-02-08 17:42 ` Marcel Ziswiler
       [not found]   ` <gerard.salvatella@toradex.com>
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 26/26] board: colibri_imx6: check for and report ecc errors in fuses Marcel Ziswiler
  25 siblings, 1 reply; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:42 UTC (permalink / raw)
  To: u-boot

From: Gerard Salvatella <gerard.salvatella@toradex.com>

RGMII_RD1 pin (active high, GPIO6_IO27) is triggered on reboot during
the SPL phase. This asserts (active low) nReset_Out from the PMIC.
Only V1.1 and later Colibri iMX6 modules implement this in hw. Previous
versions do not use this pin, so it is safe to leave it enabled at all
times.

Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 board/toradex/colibri_imx6/colibri_imx6.c | 24 +++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/board/toradex/colibri_imx6/colibri_imx6.c b/board/toradex/colibri_imx6/colibri_imx6.c
index 4d9032419a..98ad87af19 100644
--- a/board/toradex/colibri_imx6/colibri_imx6.c
+++ b/board/toradex/colibri_imx6/colibri_imx6.c
@@ -30,6 +30,7 @@
 #include <micrel.h>
 #include <miiphy.h>
 #include <netdev.h>
+#include <cpu.h>
 
 #include "../common/tdx-cfg-block.h"
 #ifdef CONFIG_TDX_CMD_IMX_MFGR
@@ -1061,6 +1062,26 @@ static void spl_dram_init(void)
 	udelay(100);
 }
 
+static iomux_v3_cfg_t const gpio_reset_pad[] = {
+	MX6_PAD_RGMII_RD1__GPIO6_IO27 | MUX_PAD_CTRL(NO_PAD_CTRL) |
+					MUX_MODE_SION
+#define GPIO_NRESET IMX_GPIO_NR(6, 27)
+};
+
+#define IMX_RESET_CAUSE_POR 0x00011
+static void nreset_out(void)
+{
+	int reset_cause = get_imx_reset_cause();
+
+	if (reset_cause != IMX_RESET_CAUSE_POR) {
+		imx_iomux_v3_setup_multiple_pads(gpio_reset_pad,
+						 ARRAY_SIZE(gpio_reset_pad));
+		gpio_direction_output(GPIO_NRESET, 1);
+		udelay(100);
+		gpio_direction_output(GPIO_NRESET, 0);
+	}
+}
+
 void board_init_f(ulong dummy)
 {
 	/* setup AIPS and disable watchdog */
@@ -1087,6 +1108,9 @@ void board_init_f(ulong dummy)
 	/* Clear the BSS. */
 	memset(__bss_start, 0, __bss_end - __bss_start);
 
+	/* Assert nReset_Out */
+	nreset_out();
+
 	/* load/boot image from boot device */
 	board_init_r(NULL, 0);
 }
-- 
2.20.1

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

* [U-Boot] [PATCH v1 26/26] board: colibri_imx6: check for and report ecc errors in fuses
  2019-02-08 17:42 [U-Boot] [PATCH v1 00/26] colibri imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (24 preceding siblings ...)
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 25/26] colibri_imx6: added nreset gpio on reboot Marcel Ziswiler
@ 2019-02-08 17:42 ` Marcel Ziswiler
  25 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 17:42 UTC (permalink / raw)
  To: u-boot

From: Gerard Salvatella <gerard.salvatella@toradex.com>

The PMIC on the Colibri iMX6 may have ECC errors in fuses that will
prevent correct settings. Up to one bit error per fuse bank can be
reported and corrected by the ECC logic. Two bit errors can only be
reported.

Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 board/toradex/colibri_imx6/pf0100.c | 51 +++++++++++++++++++++++++
 board/toradex/colibri_imx6/pf0100.h | 59 ++++++++++++++++++++++++++++-
 2 files changed, 108 insertions(+), 2 deletions(-)

diff --git a/board/toradex/colibri_imx6/pf0100.c b/board/toradex/colibri_imx6/pf0100.c
index 09c3cc950a..e744243297 100644
--- a/board/toradex/colibri_imx6/pf0100.c
+++ b/board/toradex/colibri_imx6/pf0100.c
@@ -21,6 +21,8 @@
 /* define for PMIC register dump */
 /*#define DEBUG */
 
+#define WARNBAR "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n"
+
 /* use GPIO: EXT_IO1 to switch on VPGM, ON: 1 */
 static __maybe_unused iomux_v3_cfg_t const pmic_prog_pads[] = {
 	MX6_PAD_NANDF_D3__GPIO2_IO03 | MUX_PAD_CTRL(NO_PAD_CTRL),
@@ -42,6 +44,55 @@ unsigned pmic_init(void)
 		       PFUZE100_I2C_ADDR);
 		return 0;
 	}
+
+	/* check for errors in PMIC fuses */
+	if (dm_i2c_read(dev, PFUZE100_INTSTAT3, &val, 1) < 0) {
+		puts("i2c pmic INTSTAT3 register read failed\n");
+		return 0;
+	}
+	if (val & PFUZE100_BIT_OTP_ECCI) {
+		puts("\n" WARNBAR);
+		puts("WARNING: ecc errors found in pmic fuse banks\n");
+		puts(WARNBAR);
+	}
+	if (dm_i2c_read(dev, PFUZE100_OTP_ECC_SE1, &val, 1) < 0) {
+		puts("i2c pmic ECC_SE1 register read failed\n");
+		return 0;
+	}
+	if (val & PFUZE100_BITS_ECC_SE1) {
+		puts(WARNBAR);
+		puts("WARNING: ecc has made bit corrections in banks 1 to 5\n");
+		puts(WARNBAR);
+	}
+	if (dm_i2c_read(dev, PFUZE100_OTP_ECC_SE2, &val, 1) < 0) {
+		puts("i2c pmic ECC_SE2 register read failed\n");
+		return 0;
+	}
+	if (val & PFUZE100_BITS_ECC_SE2) {
+		puts(WARNBAR);
+		puts("WARNING: ecc has made bit corrections in banks 6 to 10\n"
+		    );
+		puts(WARNBAR);
+	}
+	if (dm_i2c_read(dev, PFUZE100_OTP_ECC_DE1, &val, 1) < 0) {
+		puts("i2c pmic ECC_DE register read failed\n");
+		return 0;
+	}
+	if (val & PFUZE100_BITS_ECC_DE1) {
+		puts(WARNBAR);
+		puts("ERROR: banks 1 to 5 have uncorrectable bits\n");
+		puts(WARNBAR);
+	}
+	if (dm_i2c_read(dev, PFUZE100_OTP_ECC_DE2, &val, 1) < 0) {
+		puts("i2c pmic ECC_DE register read failed\n");
+		return 0;
+	}
+	if (val & PFUZE100_BITS_ECC_DE2) {
+		puts(WARNBAR);
+		puts("ERROR: banks 6 to 10 have uncorrectable bits\n");
+		puts(WARNBAR);
+	}
+
 	/* get device ident */
 	if (dm_i2c_read(dev, PFUZE100_DEVICEID, &devid, 1) < 0) {
 		puts("i2c pmic devid read failed\n");
diff --git a/board/toradex/colibri_imx6/pf0100.h b/board/toradex/colibri_imx6/pf0100.h
index c0efb79bbc..9257620511 100644
--- a/board/toradex/colibri_imx6/pf0100.h
+++ b/board/toradex/colibri_imx6/pf0100.h
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0+ */
 /*
- * Copyright (C) 2014-2016, Toradex AG
+ * Copyright (C) 2014-2019, Toradex AG
  */
 
 /*
@@ -10,11 +10,23 @@
 #ifndef PF0100_H_
 #define PF0100_H_
 
+/* bit definitions */
+#define PFUZE100_BIT_0			(0x01 << 0)
+#define PFUZE100_BIT_1			(0x01 << 1)
+#define PFUZE100_BIT_2			(0x01 << 2)
+#define PFUZE100_BIT_3			(0x01 << 3)
+#define PFUZE100_BIT_4			(0x01 << 4)
+#define PFUZE100_BIT_5			(0x01 << 5)
+#define PFUZE100_BIT_6			(0x01 << 6)
+#define PFUZE100_BIT_7			(0x01 << 7)
+
 /* 7-bit I2C bus slave address */
 #define PFUZE100_I2C_ADDR		(0x08)
 /* Register Addresses */
 #define PFUZE100_DEVICEID		(0x0)
 #define PFUZE100_REVID			(0x3)
+#define PFUZE100_INTSTAT3		(0xe)
+#define PFUZE100_BIT_OTP_ECCI		PFUZE100_BIT_7
 #define PFUZE100_SW1AMODE		(0x23)
 #define PFUZE100_SW1ACON		36
 #define PFUZE100_SW1ACON_SPEED_VAL	(0x1<<6)	/*default */
@@ -39,12 +51,55 @@
 #define PFUZE100_PAGE_REGISTER_PAGE2	(0x02 & PFUZE100_PAGE_REGISTER_PAGE_M)
 
 /* extended page 1 */
+#define PFUZE100_OTP_ECC_SE1		0x8a
+#define PFUZE100_BIT_ECC1_SE		PFUZE100_BIT_0
+#define PFUZE100_BIT_ECC2_SE		PFUZE100_BIT_1
+#define PFUZE100_BIT_ECC3_SE		PFUZE100_BIT_2
+#define PFUZE100_BIT_ECC4_SE		PFUZE100_BIT_3
+#define PFUZE100_BIT_ECC5_SE		PFUZE100_BIT_4
+#define PFUZE100_BITS_ECC_SE1		((PFUZE100_BIT_ECC1_SE) | \
+					(PFUZE100_BIT_ECC2_SE) | \
+					(PFUZE100_BIT_ECC3_SE) | \
+					(PFUZE100_BIT_ECC4_SE) | \
+					(PFUZE100_BIT_ECC5_SE))
+#define PFUZE100_OTP_ECC_SE2		0x8b
+#define PFUZE100_BIT_ECC6_SE		PFUZE100_BIT_0
+#define PFUZE100_BIT_ECC7_SE		PFUZE100_BIT_1
+#define PFUZE100_BIT_ECC8_SE		PFUZE100_BIT_2
+#define PFUZE100_BIT_ECC9_SE		PFUZE100_BIT_3
+#define PFUZE100_BIT_ECC10_SE		PFUZE100_BIT_4
+#define PFUZE100_BITS_ECC_SE2		((PFUZE100_BIT_ECC6_SE) | \
+					(PFUZE100_BIT_ECC7_SE) | \
+					(PFUZE100_BIT_ECC8_SE) | \
+					(PFUZE100_BIT_ECC9_SE) | \
+					(PFUZE100_BIT_ECC10_SE))
+#define PFUZE100_OTP_ECC_DE1		0x8c
+#define PFUZE100_BIT_ECC1_DE		PFUZE100_BIT_0
+#define PFUZE100_BIT_ECC2_DE		PFUZE100_BIT_1
+#define PFUZE100_BIT_ECC3_DE		PFUZE100_BIT_2
+#define PFUZE100_BIT_ECC4_DE		PFUZE100_BIT_3
+#define PFUZE100_BIT_ECC5_DE		PFUZE100_BIT_4
+#define PFUZE100_BITS_ECC_DE1		((PFUZE100_BIT_ECC1_DE) | \
+					(PFUZE100_BIT_ECC2_DE) | \
+					(PFUZE100_BIT_ECC3_DE) | \
+					(PFUZE100_BIT_ECC4_DE) | \
+					(PFUZE100_BIT_ECC5_DE))
+#define PFUZE100_OTP_ECC_DE2		0x8d
+#define PFUZE100_BIT_ECC6_DE		PFUZE100_BIT_0
+#define PFUZE100_BIT_ECC7_DE		PFUZE100_BIT_1
+#define PFUZE100_BIT_ECC8_DE		PFUZE100_BIT_2
+#define PFUZE100_BIT_ECC9_DE		PFUZE100_BIT_3
+#define PFUZE100_BIT_ECC10_DE		PFUZE100_BIT_4
+#define PFUZE100_BITS_ECC_DE2		((PFUZE100_BIT_ECC6_DE) | \
+					(PFUZE100_BIT_ECC7_DE) | \
+					(PFUZE100_BIT_ECC8_DE) | \
+					(PFUZE100_BIT_ECC9_DE) | \
+					(PFUZE100_BIT_ECC10_DE))
 #define PFUZE100_FUSE_POR1		0xe4
 #define PFUZE100_FUSE_POR2		0xe5
 #define PFUZE100_FUSE_POR3		0xe6
 #define PFUZE100_FUSE_POR_M		(0x1 << 1)
 
-
 /* output some informational messages, return the number FUSE_POR=1 */
 /* i.e. 0: unprogrammed, 3: programmed, other: undefined prog. state */
 unsigned pmic_init(void);
-- 
2.20.1

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

* [U-Boot] [PATCH v1 24/26] colibri_imx6: switch to zimage
  2019-02-08 17:42 ` [U-Boot] [PATCH v1 24/26] colibri_imx6: switch to zimage Marcel Ziswiler
@ 2019-02-08 21:42   ` Lukasz Majewski
  2019-02-08 21:48     ` Marcel Ziswiler
  0 siblings, 1 reply; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-08 21:42 UTC (permalink / raw)
  To: u-boot

Hi Marcel,

> From: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
> 
> Switch to the generic compressed Kernel image type (zImage) instead of
> the U-Boot specific uImage format.
> 

I would recommend switching to use fitImage instead of zImage.

You can look on display5 board for a reference.

> While at it also fix device tree naming for MMC DFU.
> 
> Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> 
> ---
> 
>  include/configs/colibri_imx6.h | 22 +++++++++++-----------
>  1 file changed, 11 insertions(+), 11 deletions(-)
> 
> diff --git a/include/configs/colibri_imx6.h
> b/include/configs/colibri_imx6.h index 6e056aab31..a6a823ee1f 100644
> --- a/include/configs/colibri_imx6.h
> +++ b/include/configs/colibri_imx6.h
> @@ -108,17 +108,17 @@
>  #include <config_distro_bootcmd.h>
>  #undef BOOTENV_RUN_NET_USB_START
>  #define BOOTENV_RUN_NET_USB_START ""
> -#else
> +#else /* CONFIG_SPL_BUILD */
>  #define BOOTENV
> -#endif
> +#endif /* CONFIG_SPL_BUILD */
>  
>  #define DFU_ALT_EMMC_INFO \
>  	"u-boot.imx raw 0x2 0x3ff mmcpart 0;" \
>  	"boot part 0 1;" \
>  	"rootfs part 0 2;" \
> -	"uImage fat 0 1;" \
> -	"imx6q-colibri-eval-v3.dtb fat 0 1;" \
> -	"imx6q-colibri-cam-eval-v3.dtb fat 0 1"
> +	"zImage fat 0 1;" \
> +	"imx6dl-colibri-eval-v3.dtb fat 0 1;" \
> +	"imx6dl-colibri-cam-eval-v3.dtb fat 0 1"
>  
>  #define EMMC_BOOTCMD \
>  	"emmcargs=ip=off root=/dev/mmcblk0p2 rw,noatime
> rootfstype=ext4 " \ @@ -128,7 +128,7 @@
>  		"${vidargs}; echo Booting from internal eMMC
> chip...; "	\ "run emmcdtbload; load mmc 0:1 ${kernel_addr_r} "
> \ "${boot_file} && run fdt_fixup && " \
> -		"bootm ${kernel_addr_r} ${dtbparam}\0" \
> +		"bootz ${kernel_addr_r} ${dtbparam}\0" \
>  	"emmcdtbload=setenv dtbparam; load mmc 0:1 ${fdt_addr_r} " \
>  		"${fdt_file} && setenv dtbparam \" - ${fdt_addr_r}\"
> && true\0" 
> @@ -148,11 +148,11 @@
>  		"setenv bootargs ${defargs} ${nfsargs} ${setupargs}
> " \ "${vidargs}; echo Booting via DHCP/TFTP/NFS...; " \
>  		"run nfsdtbload; dhcp ${kernel_addr_r} " \
> -		"&& run fdt_fixup && bootm ${kernel_addr_r}
> ${dtbparam}\0" \
> +		"&& run fdt_fixup && bootz ${kernel_addr_r}
> ${dtbparam}\0" \ "nfsdtbload=setenv dtbparam; tftp ${fdt_addr_r}
> ${fdt_file} " \ "&& setenv dtbparam \" - ${fdt_addr_r}\" && true\0"
>  
> -#define SD_BOOTCMD						\
> +#define SD_BOOTCMD \
>  	"sdargs=ip=off root=/dev/mmcblk1p2 rw,noatime
> rootfstype=ext4 " \ "rootwait\0" \
>  	"sdboot=run setup; " \
> @@ -160,7 +160,7 @@
>  		"${vidargs}; echo Booting from SD card; " \
>  		"run sddtbload; load mmc 1:1 ${kernel_addr_r} " \
>  		"${boot_file} && run fdt_fixup && " \
> -		"bootm ${kernel_addr_r} ${dtbparam}\0" \
> +		"bootz ${kernel_addr_r} ${dtbparam}\0" \
>  	"sddtbload=setenv dtbparam; load mmc 1:1 ${fdt_addr_r} " \
>  		"${fdt_file} && setenv dtbparam \" - ${fdt_addr_r}\"
> && true\0" 
> @@ -171,7 +171,7 @@
>  		"${usbargs} ${vidargs}; echo Booting from USB
> stick...; " \ "usb start && run usbdtbload; load usb 0:1
> ${kernel_addr_r} " \ "${boot_file} && run fdt_fixup && " \
> -		"bootm ${kernel_addr_r} ${dtbparam}\0" \
> +		"bootz ${kernel_addr_r} ${dtbparam}\0" \
>  	"usbdtbload=setenv dtbparam; load usb 0:1 ${fdt_addr_r} " \
>  		"${fdt_file} && setenv dtbparam \" - ${fdt_addr_r}\"
> && true\0" 
> @@ -182,7 +182,7 @@
>  		"run distro_bootcmd ; " \
>  		"usb start ; " \
>  		"setenv stdout serial,vga ; setenv stdin
> serial,usbkbd\0" \
> -	"boot_file=uImage\0" \
> +	"boot_file=zImage\0" \
>  	"console=ttymxc0\0" \
>  	"defargs=enable_wait_mode=off
> galcore.contiguousSize=50331648\0" \ "dfu_alt_info="
> DFU_ALT_EMMC_INFO "\0" \




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190208/41e58ba6/attachment.sig>

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

* [U-Boot] [PATCH v1 24/26] colibri_imx6: switch to zimage
  2019-02-08 21:42   ` Lukasz Majewski
@ 2019-02-08 21:48     ` Marcel Ziswiler
  0 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-02-08 21:48 UTC (permalink / raw)
  To: u-boot

Hi Lukasz

On Fri, 2019-02-08 at 22:42 +0100, Lukasz Majewski wrote:
> Hi Marcel,
> 
> > From: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
> > 
> > Switch to the generic compressed Kernel image type (zImage) instead
> > of
> > the U-Boot specific uImage format.
> > 
> 
> I would recommend switching to use fitImage instead of zImage.

Thanks, we are, of course, aware of fitImage and we do use it e.g. for
the Toradex Easy Installer. However, while our former BSPs still booted
from uImage our current BSPs now boot from zImage. In the future, we
plan to fully integrate distroboot which basically makes this choice
here obsolete anyway.

> You can look on display5 board for a reference.
> 
> > While at it also fix device tree naming for MMC DFU.
> > 
> > Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
> > Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> > 
> > ---
> > 
> >  include/configs/colibri_imx6.h | 22 +++++++++++-----------
> >  1 file changed, 11 insertions(+), 11 deletions(-)
> > 
> > diff --git a/include/configs/colibri_imx6.h
> > b/include/configs/colibri_imx6.h index 6e056aab31..a6a823ee1f
> > 100644
> > --- a/include/configs/colibri_imx6.h
> > +++ b/include/configs/colibri_imx6.h
> > @@ -108,17 +108,17 @@
> >  #include <config_distro_bootcmd.h>
> >  #undef BOOTENV_RUN_NET_USB_START
> >  #define BOOTENV_RUN_NET_USB_START ""
> > -#else
> > +#else /* CONFIG_SPL_BUILD */
> >  #define BOOTENV
> > -#endif
> > +#endif /* CONFIG_SPL_BUILD */
> >  
> >  #define DFU_ALT_EMMC_INFO \
> >  	"u-boot.imx raw 0x2 0x3ff mmcpart 0;" \
> >  	"boot part 0 1;" \
> >  	"rootfs part 0 2;" \
> > -	"uImage fat 0 1;" \
> > -	"imx6q-colibri-eval-v3.dtb fat 0 1;" \
> > -	"imx6q-colibri-cam-eval-v3.dtb fat 0 1"
> > +	"zImage fat 0 1;" \
> > +	"imx6dl-colibri-eval-v3.dtb fat 0 1;" \
> > +	"imx6dl-colibri-cam-eval-v3.dtb fat 0 1"
> >  
> >  #define EMMC_BOOTCMD \
> >  	"emmcargs=ip=off root=/dev/mmcblk0p2 rw,noatime
> > rootfstype=ext4 " \ @@ -128,7 +128,7 @@
> >  		"${vidargs}; echo Booting from internal eMMC
> > chip...; "	\ "run emmcdtbload; load mmc 0:1 ${kernel_addr_r} "
> > \ "${boot_file} && run fdt_fixup && " \
> > -		"bootm ${kernel_addr_r} ${dtbparam}\0" \
> > +		"bootz ${kernel_addr_r} ${dtbparam}\0" \
> >  	"emmcdtbload=setenv dtbparam; load mmc 0:1 ${fdt_addr_r} " \
> >  		"${fdt_file} && setenv dtbparam \" - ${fdt_addr_r}\"
> > && true\0" 
> > @@ -148,11 +148,11 @@
> >  		"setenv bootargs ${defargs} ${nfsargs} ${setupargs}
> > " \ "${vidargs}; echo Booting via DHCP/TFTP/NFS...; " \
> >  		"run nfsdtbload; dhcp ${kernel_addr_r} " \
> > -		"&& run fdt_fixup && bootm ${kernel_addr_r}
> > ${dtbparam}\0" \
> > +		"&& run fdt_fixup && bootz ${kernel_addr_r}
> > ${dtbparam}\0" \ "nfsdtbload=setenv dtbparam; tftp ${fdt_addr_r}
> > ${fdt_file} " \ "&& setenv dtbparam \" - ${fdt_addr_r}\" && true\0"
> >  
> > -#define SD_BOOTCMD						\
> > +#define SD_BOOTCMD \
> >  	"sdargs=ip=off root=/dev/mmcblk1p2 rw,noatime
> > rootfstype=ext4 " \ "rootwait\0" \
> >  	"sdboot=run setup; " \
> > @@ -160,7 +160,7 @@
> >  		"${vidargs}; echo Booting from SD card; " \
> >  		"run sddtbload; load mmc 1:1 ${kernel_addr_r} " \
> >  		"${boot_file} && run fdt_fixup && " \
> > -		"bootm ${kernel_addr_r} ${dtbparam}\0" \
> > +		"bootz ${kernel_addr_r} ${dtbparam}\0" \
> >  	"sddtbload=setenv dtbparam; load mmc 1:1 ${fdt_addr_r} " \
> >  		"${fdt_file} && setenv dtbparam \" - ${fdt_addr_r}\"
> > && true\0" 
> > @@ -171,7 +171,7 @@
> >  		"${usbargs} ${vidargs}; echo Booting from USB
> > stick...; " \ "usb start && run usbdtbload; load usb 0:1
> > ${kernel_addr_r} " \ "${boot_file} && run fdt_fixup && " \
> > -		"bootm ${kernel_addr_r} ${dtbparam}\0" \
> > +		"bootz ${kernel_addr_r} ${dtbparam}\0" \
> >  	"usbdtbload=setenv dtbparam; load usb 0:1 ${fdt_addr_r} " \
> >  		"${fdt_file} && setenv dtbparam \" - ${fdt_addr_r}\"
> > && true\0" 
> > @@ -182,7 +182,7 @@
> >  		"run distro_bootcmd ; " \
> >  		"usb start ; " \
> >  		"setenv stdout serial,vga ; setenv stdin
> > serial,usbkbd\0" \
> > -	"boot_file=uImage\0" \
> > +	"boot_file=zImage\0" \
> >  	"console=ttymxc0\0" \
> >  	"defargs=enable_wait_mode=off
> > galcore.contiguousSize=50331648\0" \ "dfu_alt_info="
> > DFU_ALT_EMMC_INFO "\0" \
> 
> 
> 
> Best regards,
> 
> Lukasz Majewski
> 
> --
> 
> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: 
> lukma at denx.de
 
Best regards - Mit freundlichen Grüssen - Meilleures salutations

Marcel Ziswiler
Platform Manager Embedded Linux

Toradex AG
Altsagenstrasse 5 | 6048 Horw/Luzern | Switzerland | T: +41 41 500 48 00
(main line) | Direct: +41 41 500 48 10

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

* [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support
  2019-02-04 13:19       ` Tom Rini
  2019-02-04 15:15         ` Abel Vesa
@ 2019-02-09 22:48         ` Abel Vesa
  2019-02-09 22:55           ` Fabio Estevam
  1 sibling, 1 reply; 654+ messages in thread
From: Abel Vesa @ 2019-02-09 22:48 UTC (permalink / raw)
  To: u-boot

On 19-02-04 08:19:23, Tom Rini wrote:
> On Mon, Feb 04, 2019 at 09:03:43AM -0200, Fabio Estevam wrote:
> > On Mon, Feb 4, 2019 at 7:55 AM Abel Vesa <abel.vesa@nxp.com> wrote:
> > 
> > > If the SPL size (without the dtb appended) is larger then yes, the build fails.
> > > Trouble is if the SPL (without the dtb appended) is, lets say, 63kB and
> > > then the dtb is larger than 1kB. Then there is no mechanism in place to check that
> > > and it will just fail to boot without giving any clues why. But this is a totally
> > > unrelated problem from this patchset's point of view and I think it impacts all
> > > the platforms that support SPL with DM.
> > 
> > Yes, it is unrelated to this series and should be treated separately.
> 
> I also agree.  But, don't we have a mechanism for that?  It sounds like
> some additional targets need to call $(BOARD_SIZE_CHECK) at the end.  Or
> am I missing something?
> 

So, do I need to resend this with all the R-bs ?
> -- 
> Tom

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

* [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support
  2019-02-09 22:48         ` Abel Vesa
@ 2019-02-09 22:55           ` Fabio Estevam
  0 siblings, 0 replies; 654+ messages in thread
From: Fabio Estevam @ 2019-02-09 22:55 UTC (permalink / raw)
  To: u-boot

On Sat, Feb 9, 2019 at 8:48 PM Abel Vesa <abel.vesa@nxp.com> wrote:

> So, do I need to resend this with all the R-bs ?

Just realized that you missed to Cc Stefano Babic <sbabic@denx.de> on
this series.

Stefano,

Should Abel resend this series with you on Cc or can you get review it
from patchwork?

Thanks

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

* [U-Boot] [PATCH v4 00/22] imx: vybrid: Update BK4 and PCM052 boards to only use DM/DTS
@ 2019-02-13 21:46 Lukasz Majewski
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 01/22] net: FEC: Add compatible for vybrid (vf610) to reuse fec_mxc.c driver Lukasz Majewski
                   ` (21 more replies)
  0 siblings, 22 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-13 21:46 UTC (permalink / raw)
  To: u-boot

This patch series converts PCM052 and BK4 to use Driver Model and Device
Tree.

Some notable changes:
- The way how MAC address is read from fuses can now be adjusted
- DTS improvement/sync with kernel (also extract u-boot specific properties)
- Using generic code instead of one from board

The output of u-boot boot:
U-Boot 2019.01-rc3-00076-gc149229be0 (Jan 14 2019 - 08:38:48 +0100)

CPU: Freescale Vybrid VF610 at 396 MHz
Reset cause: POWER ON RESET
Model: Liebherr (LVF) BK4 Vybrid Board
Board: BK4r1 (L333)
DRAM:  512 MiB
NAND:  1024 MiB
MMC:   FSL_SDHC: 0
Loading Environment from NAND... OK
In:    serial at 40028000
Out:   serial at 40028000
Err:   serial at 40028000
Net:   eth0: fec at 400d0000, eth1: fec at 400d1000
Enter passphrase to stop autoboot, booting in 3 seconds

Buildman CI:
./tools/buildman/buildman.py --branch=HEAD  vf610 mx6 vybrid --detail --verbose --show_errors --force-build --count=22 --output-dir=../BUILD/

Travis-CI:
https://travis-ci.org/lmajewski/u-boot-dfu/builds/492731495

U-boot master branch: SHA1: b1b1bab7f92b838a252ab977f56d9c3584c14fb7


Changes in v4:
- Fix maming of DDRBYTE0 -> DDRBYTE2 (as it is in the documentation)
    - Update DDRBYTE0 -> DDRBYTE2 as in VF610 user manual

Changes in v3:
- Add code to enable I2C0 code as suggested by Stefan (so the code can be
  reused by other boards without regressions)
- Exclude the pcm052.c related code to a separate patch
- New patch (separate board code patch)

Changes in v2:
    - Rename pcm052.dts to vf610-pcm052.dts
    - Rename bk4r1.dts to vf610-bk4r1.dts
    - Extract 'u-boot,dm-pre-reloc;' property to separate file (to facilitate
      sync with Linux kernel dts files)
        - New patch
        - Disable EFI related support and commands (as we do not plan to
          use EFI on this setup)

Lukasz Majewski (22):
  net: FEC: Add compatible for vybrid (vf610) to reuse fec_mxc.c driver
  net: Kconfig: FEC: Add dependency on VF610
  vybrid: ddr: Extend vf610-pinfunc.h with DDR pads definitions
  vybrid: clock: Provide enable_i2c_clk() function for Vybrid
  pcm052: board: Do not enable I2C2 code in the board file
  vybrid: Define the imx_get_mac_from_fuse() as a __weak function
  pcm052: board: Remove "m4go" command as it is superseded by "bootaux"
  pcm052: board: vybrid: Update the board name for BK4 device
  ARM: DTS: vybrid: Update vf.dtsi file to descibe more vf610 hardware
  pcm052: board: cosmetic: Add copyright notice to pcm052.c
  ARM: DTS: Update pcm052 based dts files (bk4r1/pcm052)
  ARM: DTS: Provide vf610-bk4r1-u-boot.dtsi for U-Boot specific
    properties
  defconfig: bk4/pcm052: Update bk4r1|pcm052_defconfig to support DM/DT
  config: pcm052: Use SZ_X{MK} from linux/sizes.h for
    include/configs/pcm052.h
  config: bk4: Update include/configs/bk4r1.h file
  pcm052: board: Remove in-board setup code (it is now replaced by DM
    setup)
  config: bk4: Update u-boot script to support recovery via SD card
  config: bk4: Update u-boot envs to support NOR memories initial setup
  pcm052: bk4: sdcard: Add support for SD card booting/recovery
  pcm052: board: Add code to setup LED default states
  pcm052: mac: Provide board specific imx_get_mac_from_fuse() function
  pcm052: bk4: Add board_phy_config() for BK4 to setup ksz8081 phy

 arch/arm/cpu/armv7/vf610/Kconfig              |   1 +
 arch/arm/cpu/armv7/vf610/generic.c            |  24 +-
 arch/arm/dts/Makefile                         |   4 +-
 arch/arm/dts/bk4r1.dts                        |  47 ----
 arch/arm/dts/vf.dtsi                          |  62 +++++
 arch/arm/dts/vf610-bk4r1-u-boot.dtsi          |  27 ++
 arch/arm/dts/vf610-bk4r1.dts                  |  97 +++++++
 arch/arm/dts/{pcm052.dts => vf610-pcm052.dts} |   6 +-
 arch/arm/dts/vf610-pcm052.dtsi                | 259 +++++++++++++++++
 arch/arm/dts/vf610-pinfunc.h                  |  50 ++++
 arch/arm/include/asm/arch-vf610/clock.h       |   3 +
 arch/arm/include/asm/arch-vf610/imx-regs.h    |   2 +
 board/phytec/pcm052/pcm052.c                  | 386 ++++++--------------------
 configs/bk4r1_defconfig                       |  49 +++-
 configs/pcm052_defconfig                      |  36 ++-
 drivers/net/Kconfig                           |   2 +-
 drivers/net/fec_mxc.c                         |   1 +
 include/configs/bk4r1.h                       | 263 +++++++++++++++++-
 include/configs/pcm052.h                      |  51 +---
 19 files changed, 959 insertions(+), 411 deletions(-)
 delete mode 100644 arch/arm/dts/bk4r1.dts
 create mode 100644 arch/arm/dts/vf610-bk4r1-u-boot.dtsi
 create mode 100644 arch/arm/dts/vf610-bk4r1.dts
 rename arch/arm/dts/{pcm052.dts => vf610-pcm052.dts} (81%)
 create mode 100644 arch/arm/dts/vf610-pcm052.dtsi

-- 
2.11.0

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

* [U-Boot] [PATCH v4 01/22] net: FEC: Add compatible for vybrid (vf610) to reuse fec_mxc.c driver
  2019-02-13 21:46 [U-Boot] [PATCH v4 00/22] imx: vybrid: Update BK4 and PCM052 boards to only use DM/DTS Lukasz Majewski
@ 2019-02-13 21:46 ` Lukasz Majewski
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 02/22] net: Kconfig: FEC: Add dependency on VF610 Lukasz Majewski
                   ` (20 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-13 21:46 UTC (permalink / raw)
  To: u-boot

The NXP's FEC driver can be reused on vf610 device (with DM).

Signed-off-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Stefan Agner <stefan.agner@toradex.com>
---

Changes in v4: None
Changes in v3: None
Changes in v2: None

 drivers/net/fec_mxc.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c
index 1a59026a62..5ff49224f4 100644
--- a/drivers/net/fec_mxc.c
+++ b/drivers/net/fec_mxc.c
@@ -1486,6 +1486,7 @@ static const struct udevice_id fecmxc_ids[] = {
 	{ .compatible = "fsl,imx6ul-fec" },
 	{ .compatible = "fsl,imx53-fec" },
 	{ .compatible = "fsl,imx7d-fec" },
+	{ .compatible = "fsl,mvf600-fec" },
 	{ }
 };
 
-- 
2.11.0

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

* [U-Boot] [PATCH v4 02/22] net: Kconfig: FEC: Add dependency on VF610
  2019-02-13 21:46 [U-Boot] [PATCH v4 00/22] imx: vybrid: Update BK4 and PCM052 boards to only use DM/DTS Lukasz Majewski
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 01/22] net: FEC: Add compatible for vybrid (vf610) to reuse fec_mxc.c driver Lukasz Majewski
@ 2019-02-13 21:46 ` Lukasz Majewski
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 03/22] vybrid: ddr: Extend vf610-pinfunc.h with DDR pads definitions Lukasz Majewski
                   ` (19 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-13 21:46 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Stefan Agner <stefan.agner@toradex.com>
---

Changes in v4: None
Changes in v3: None
Changes in v2: None

 drivers/net/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 6a570285aa..a3e1b4f411 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -187,7 +187,7 @@ config FEC_MXC_MDIO_BASE
 
 config FEC_MXC
 	bool "FEC Ethernet controller"
-	depends on MX5 || MX6 || MX7 || IMX8
+	depends on MX5 || MX6 || MX7 || IMX8 || VF610
 	help
 	  This driver supports the 10/100 Fast Ethernet controller for
 	  NXP i.MX processors.
-- 
2.11.0

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

* [U-Boot] [PATCH v4 03/22] vybrid: ddr: Extend vf610-pinfunc.h with DDR pads definitions
  2019-02-13 21:46 [U-Boot] [PATCH v4 00/22] imx: vybrid: Update BK4 and PCM052 boards to only use DM/DTS Lukasz Majewski
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 01/22] net: FEC: Add compatible for vybrid (vf610) to reuse fec_mxc.c driver Lukasz Majewski
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 02/22] net: Kconfig: FEC: Add dependency on VF610 Lukasz Majewski
@ 2019-02-13 21:46 ` Lukasz Majewski
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 04/22] vybrid: clock: Provide enable_i2c_clk() function for Vybrid Lukasz Majewski
                   ` (18 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-13 21:46 UTC (permalink / raw)
  To: u-boot

This patch provides definitions necessary for VF610 DDR pad configurations.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Stefan Agner <stefan.agner@toradex.com>

---

Changes in v4:
- Fix maming of DDRBYTE0 -> DDRBYTE2 (as it is in the documentation)

Changes in v3: None
Changes in v2: None

 arch/arm/dts/vf610-pinfunc.h | 50 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/arch/arm/dts/vf610-pinfunc.h b/arch/arm/dts/vf610-pinfunc.h
index fcad7132c8..9456719074 100644
--- a/arch/arm/dts/vf610-pinfunc.h
+++ b/arch/arm/dts/vf610-pinfunc.h
@@ -807,4 +807,54 @@
 #define VF610_PAD_PTA7__GPIO_134		0x218 0x000 ALT0 0x0
 #define VF610_PAD_PTA7__VIU_PIX_CLK		0x218 0x3AC ALT1 0x1
 
+#define VF610_PAD_DDR_RESETB			0x21c 0x000 ALT0 0x0
+#define VF610_PAD_DDR_A15__DDR_A_15		0x220 0x000 ALT0 0x0
+#define VF610_PAD_DDR_A14__DDR_A_14		0x224 0x000 ALT0 0x0
+#define VF610_PAD_DDR_A13__DDR_A_13		0x228 0x000 ALT0 0x0
+#define VF610_PAD_DDR_A12__DDR_A_12		0x22c 0x000 ALT0 0x0
+#define VF610_PAD_DDR_A11__DDR_A_11		0x230 0x000 ALT0 0x0
+#define VF610_PAD_DDR_A10__DDR_A_10		0x234 0x000 ALT0 0x0
+#define VF610_PAD_DDR_A9__DDR_A_9		0x238 0x000 ALT0 0x0
+#define VF610_PAD_DDR_A8__DDR_A_8		0x23c 0x000 ALT0 0x0
+#define VF610_PAD_DDR_A7__DDR_A_7		0x240 0x000 ALT0 0x0
+#define VF610_PAD_DDR_A6__DDR_A_6		0x244 0x000 ALT0 0x0
+#define VF610_PAD_DDR_A5__DDR_A_5		0x248 0x000 ALT0 0x0
+#define VF610_PAD_DDR_A4__DDR_A_4		0x24c 0x000 ALT0 0x0
+#define VF610_PAD_DDR_A3__DDR_A_3		0x250 0x000 ALT0 0x0
+#define VF610_PAD_DDR_A2__DDR_A_2		0x254 0x000 ALT0 0x0
+#define VF610_PAD_DDR_A1__DDR_A_1		0x258 0x000 ALT0 0x0
+#define VF610_PAD_DDR_A0__DDR_A_0		0x25c 0x000 ALT0 0x0
+#define VF610_PAD_DDR_BA2__DDR_BA_2		0x260 0x000 ALT0 0x0
+#define VF610_PAD_DDR_BA1__DDR_BA_1		0x264 0x000 ALT0 0x0
+#define VF610_PAD_DDR_BA0__DDR_BA_0		0x268 0x000 ALT0 0x0
+#define VF610_PAD_DDR_CAS__DDR_CAS_B		0x26c 0x000 ALT0 0x0
+#define VF610_PAD_DDR_CKE__DDR_CKE_0		0x270 0x000 ALT0 0x0
+#define VF610_PAD_DDR_CLK__DDR_CLK_0		0x274 0x000 ALT0 0x0
+#define VF610_PAD_DDR_CS__DDR_CS_B_0		0x278 0x000 ALT0 0x0
+#define VF610_PAD_DDR_D15__DDR_D_15		0x27c 0x000 ALT0 0x0
+#define VF610_PAD_DDR_D14__DDR_D_14		0x280 0x000 ALT0 0x0
+#define VF610_PAD_DDR_D13__DDR_D_13		0x284 0x000 ALT0 0x0
+#define VF610_PAD_DDR_D12__DDR_D_12		0x288 0x000 ALT0 0x0
+#define VF610_PAD_DDR_D11__DDR_D_11		0x28c 0x000 ALT0 0x0
+#define VF610_PAD_DDR_D10__DDR_D_10		0x290 0x000 ALT0 0x0
+#define VF610_PAD_DDR_D9__DDR_D_9		0x294 0x000 ALT0 0x0
+#define VF610_PAD_DDR_D8__DDR_D_8		0x298 0x000 ALT0 0x0
+#define VF610_PAD_DDR_D7__DDR_D_7		0x29c 0x000 ALT0 0x0
+#define VF610_PAD_DDR_D6__DDR_D_6		0x2a0 0x000 ALT0 0x0
+#define VF610_PAD_DDR_D5__DDR_D_5		0x2a4 0x000 ALT0 0x0
+#define VF610_PAD_DDR_D4__DDR_D_4		0x2a8 0x000 ALT0 0x0
+#define VF610_PAD_DDR_D3__DDR_D_3		0x2ac 0x000 ALT0 0x0
+#define VF610_PAD_DDR_D2__DDR_D_2		0x2b0 0x000 ALT0 0x0
+#define VF610_PAD_DDR_D1__DDR_D_1		0x2b4 0x000 ALT0 0x0
+#define VF610_PAD_DDR_D0__DDR_D_0		0x2b8 0x000 ALT0 0x0
+#define VF610_PAD_DDR_DQM1__DDR_DQM_1		0x2bc 0x000 ALT0 0x0
+#define VF610_PAD_DDR_DQM0__DDR_DQM_0		0x2c0 0x000 ALT0 0x0
+#define VF610_PAD_DDR_DQS1__DDR_DQS_1		0x2c4 0x000 ALT0 0x0
+#define VF610_PAD_DDR_DQS0__DDR_DQS_0		0x2c8 0x000 ALT0 0x0
+#define VF610_PAD_DDR_RAS__DDR_RAS_B		0x2cc 0x000 ALT0 0x0
+#define VF610_PAD_DDR_WE__DDR_WE_B		0x2d0 0x000 ALT0 0x0
+#define VF610_PAD_DDR_ODT1__DDR_ODT_0		0x2d4 0x000 ALT0 0x0
+#define VF610_PAD_DDR_ODT0__DDR_ODT_1		0x2d8 0x000 ALT0 0x0
+#define VF610_PAD_DDR_DDRBYTE1__DDR_DDRBYTE1	0x2dc 0x000 ALT0 0x0
+#define VF610_PAD_DDR_DDRBYTE2__DDR_DDRBYTE2	0x2e0 0x000 ALT0 0x0
 #endif
-- 
2.11.0

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

* [U-Boot] [PATCH v4 04/22] vybrid: clock: Provide enable_i2c_clk() function for Vybrid
  2019-02-13 21:46 [U-Boot] [PATCH v4 00/22] imx: vybrid: Update BK4 and PCM052 boards to only use DM/DTS Lukasz Majewski
                   ` (2 preceding siblings ...)
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 03/22] vybrid: ddr: Extend vf610-pinfunc.h with DDR pads definitions Lukasz Majewski
@ 2019-02-13 21:46 ` Lukasz Majewski
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 05/22] pcm052: board: Do not enable I2C2 code in the board file Lukasz Majewski
                   ` (17 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-13 21:46 UTC (permalink / raw)
  To: u-boot

Provide function to enable I2C clocks for vf610 - in the generic code.
This function overrides the default weak function implementation (which
only returns 1).

Signed-off-by: Lukasz Majewski <lukma@denx.de>
Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v4: None
Changes in v3:
- Add code to enable I2C0 code as suggested by Stefan (so the code can be
  reused by other boards without regressions)
- Exclude the pcm052.c related code to a separate patch

Changes in v2: None

 arch/arm/cpu/armv7/vf610/generic.c      | 22 ++++++++++++++++++++++
 arch/arm/include/asm/arch-vf610/clock.h |  3 +++
 2 files changed, 25 insertions(+)

diff --git a/arch/arm/cpu/armv7/vf610/generic.c b/arch/arm/cpu/armv7/vf610/generic.c
index cbd3391918..e0c0b1bcb0 100644
--- a/arch/arm/cpu/armv7/vf610/generic.c
+++ b/arch/arm/cpu/armv7/vf610/generic.c
@@ -375,3 +375,25 @@ void enable_caches(void)
 	mmu_set_region_dcache_behaviour(IRAM_BASE_ADDR, IRAM_SIZE, option);
 }
 #endif
+
+#ifdef CONFIG_SYS_I2C_MXC
+/* i2c_num can be from 0 - 3 */
+int enable_i2c_clk(unsigned char enable, unsigned int i2c_num)
+{
+	struct ccm_reg *ccm = (struct ccm_reg *)CCM_BASE_ADDR;
+
+	switch (i2c_num) {
+	case 0:
+		clrsetbits_le32(&ccm->ccgr4, CCM_CCGR4_I2C0_CTRL_MASK,
+				CCM_CCGR4_I2C0_CTRL_MASK);
+	case 2:
+		clrsetbits_le32(&ccm->ccgr10, CCM_CCGR10_I2C2_CTRL_MASK,
+				CCM_CCGR10_I2C2_CTRL_MASK);
+		break;
+	default:
+		return -EINVAL;
+	}
+
+	return 0;
+}
+#endif
diff --git a/arch/arm/include/asm/arch-vf610/clock.h b/arch/arm/include/asm/arch-vf610/clock.h
index 3bd73a01f3..72184fd608 100644
--- a/arch/arm/include/asm/arch-vf610/clock.h
+++ b/arch/arm/include/asm/arch-vf610/clock.h
@@ -22,6 +22,9 @@ enum mxc_clock {
 void enable_ocotp_clk(unsigned char enable);
 unsigned int mxc_get_clock(enum mxc_clock clk);
 u32 get_lpuart_clk(void);
+#ifdef CONFIG_SYS_I2C_MXC
+int enable_i2c_clk(unsigned char enable, unsigned int i2c_num);
+#endif
 
 #define imx_get_fecclk() mxc_get_clock(MXC_FEC_CLK)
 
-- 
2.11.0

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

* [U-Boot] [PATCH v4 05/22] pcm052: board: Do not enable I2C2 code in the board file
  2019-02-13 21:46 [U-Boot] [PATCH v4 00/22] imx: vybrid: Update BK4 and PCM052 boards to only use DM/DTS Lukasz Majewski
                   ` (3 preceding siblings ...)
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 04/22] vybrid: clock: Provide enable_i2c_clk() function for Vybrid Lukasz Majewski
@ 2019-02-13 21:46 ` Lukasz Majewski
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 06/22] vybrid: Define the imx_get_mac_from_fuse() as a __weak function Lukasz Majewski
                   ` (16 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-13 21:46 UTC (permalink / raw)
  To: u-boot

As the I2C2 clock is now enabled in the generic clock code, we can remove
this code from a board file.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v4: None
Changes in v3:
- New patch (separate board code patch)

Changes in v2: None

 board/phytec/pcm052/pcm052.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/board/phytec/pcm052/pcm052.c b/board/phytec/pcm052/pcm052.c
index f988af2abc..cfc8009102 100644
--- a/board/phytec/pcm052/pcm052.c
+++ b/board/phytec/pcm052/pcm052.c
@@ -485,7 +485,7 @@ static void clock_init(void)
 	clrsetbits_le32(&ccm->ccgr9, CCM_REG_CTRL_MASK,
 			CCM_CCGR9_FEC0_CTRL_MASK | CCM_CCGR9_FEC1_CTRL_MASK);
 	clrsetbits_le32(&ccm->ccgr10, CCM_REG_CTRL_MASK,
-			CCM_CCGR10_NFC_CTRL_MASK | CCM_CCGR10_I2C2_CTRL_MASK);
+			CCM_CCGR10_NFC_CTRL_MASK);
 
 	clrsetbits_le32(&anadig->pll2_ctrl, ANADIG_PLL2_CTRL_POWERDOWN,
 			ANADIG_PLL2_CTRL_ENABLE | ANADIG_PLL2_CTRL_DIV_SELECT);
-- 
2.11.0

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

* [U-Boot] [PATCH v4 06/22] vybrid: Define the imx_get_mac_from_fuse() as a __weak function
  2019-02-13 21:46 [U-Boot] [PATCH v4 00/22] imx: vybrid: Update BK4 and PCM052 boards to only use DM/DTS Lukasz Majewski
                   ` (4 preceding siblings ...)
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 05/22] pcm052: board: Do not enable I2C2 code in the board file Lukasz Majewski
@ 2019-02-13 21:46 ` Lukasz Majewski
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 07/22] pcm052: board: Remove "m4go" command as it is superseded by "bootaux" Lukasz Majewski
                   ` (15 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-13 21:46 UTC (permalink / raw)
  To: u-boot

The proposed way of reading fused MAC in the imx_get_mac_from_fuse() may
be different for other boards.

This commit defines the imx_get_mac_from_fuse() as a weak function to allow
board file overriding it with customized function.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
---

Changes in v4: None
Changes in v3: None
Changes in v2: None

 arch/arm/cpu/armv7/vf610/generic.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/cpu/armv7/vf610/generic.c b/arch/arm/cpu/armv7/vf610/generic.c
index e0c0b1bcb0..90fa695e98 100644
--- a/arch/arm/cpu/armv7/vf610/generic.c
+++ b/arch/arm/cpu/armv7/vf610/generic.c
@@ -252,7 +252,7 @@ U_BOOT_CMD(
 );
 
 #ifdef CONFIG_FEC_MXC
-void imx_get_mac_from_fuse(int dev_id, unsigned char *mac)
+__weak void imx_get_mac_from_fuse(int dev_id, unsigned char *mac)
 {
 	struct ocotp_regs *ocotp = (struct ocotp_regs *)OCOTP_BASE_ADDR;
 	struct fuse_bank *bank = &ocotp->bank[4];
-- 
2.11.0

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

* [U-Boot] [PATCH v4 07/22] pcm052: board: Remove "m4go" command as it is superseded by "bootaux"
  2019-02-13 21:46 [U-Boot] [PATCH v4 00/22] imx: vybrid: Update BK4 and PCM052 boards to only use DM/DTS Lukasz Majewski
                   ` (5 preceding siblings ...)
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 06/22] vybrid: Define the imx_get_mac_from_fuse() as a __weak function Lukasz Majewski
@ 2019-02-13 21:46 ` Lukasz Majewski
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 08/22] pcm052: board: vybrid: Update the board name for BK4 device Lukasz Majewski
                   ` (14 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-13 21:46 UTC (permalink / raw)
  To: u-boot

The "m4go" provides exactly the same functionality as the IMX generic
"bootaux" command. Remove it to not duplicate the code.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
---

Changes in v4: None
Changes in v3: None
Changes in v2: None

 board/phytec/pcm052/pcm052.c | 38 --------------------------------------
 1 file changed, 38 deletions(-)

diff --git a/board/phytec/pcm052/pcm052.c b/board/phytec/pcm052/pcm052.c
index cfc8009102..4e4b870304 100644
--- a/board/phytec/pcm052/pcm052.c
+++ b/board/phytec/pcm052/pcm052.c
@@ -577,41 +577,3 @@ int checkboard(void)
 
 	return 0;
 }
-
-static int do_m4go(cmd_tbl_t *cmdtp, int flag, int argc,
-		       char * const argv[])
-{
-	ulong addr;
-
-	/* Consume 'm4go' */
-	argc--; argv++;
-
-	/*
-	 * Parse provided address - default to load_addr in case not provided.
-	 */
-
-	if (argc)
-		addr = simple_strtoul(argv[0], NULL, 16);
-	else
-		addr = load_addr;
-
-	/*
-	 * Write boot address in PERSISTENT_ENTRY1[31:0] aka SRC_GPR2[31:0]
-	 */
-	writel(addr + 0x401, 0x4006E028);
-
-	/*
-	 * Start secondary processor by enabling its clock
-	 */
-	writel(0x15a5a, 0x4006B08C);
-
-	return 1;
-}
-
-U_BOOT_CMD(
-	m4go, 2 /* one arg max */, 1 /* repeatable */, do_m4go,
-	"start the secondary Cortex-M4 from scatter file image",
-	"[<addr>]\n"
-	"    - start secondary Cortex-M4 core using a scatter file image\n"
-	"The argument needs to be a scatter file\n"
-);
-- 
2.11.0

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

* [U-Boot] [PATCH v4 08/22] pcm052: board: vybrid: Update the board name for BK4 device
  2019-02-13 21:46 [U-Boot] [PATCH v4 00/22] imx: vybrid: Update BK4 and PCM052 boards to only use DM/DTS Lukasz Majewski
                   ` (6 preceding siblings ...)
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 07/22] pcm052: board: Remove "m4go" command as it is superseded by "bootaux" Lukasz Majewski
@ 2019-02-13 21:46 ` Lukasz Majewski
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 09/22] ARM: DTS: vybrid: Update vf.dtsi file to descibe more vf610 hardware Lukasz Majewski
                   ` (13 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-13 21:46 UTC (permalink / raw)
  To: u-boot

This commit provides distinction between PCM052 and BK4.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
---

Changes in v4: None
Changes in v3: None
Changes in v2: None

 board/phytec/pcm052/pcm052.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/board/phytec/pcm052/pcm052.c b/board/phytec/pcm052/pcm052.c
index 4e4b870304..5f2c9a9c12 100644
--- a/board/phytec/pcm052/pcm052.c
+++ b/board/phytec/pcm052/pcm052.c
@@ -573,7 +573,10 @@ int board_init(void)
 
 int checkboard(void)
 {
+#ifdef CONFIG_TARGET_BK4R1
+	puts("Board: BK4r1 (L333)\n");
+#else
 	puts("Board: PCM-052\n");
-
+#endif
 	return 0;
 }
-- 
2.11.0

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

* [U-Boot] [PATCH v4 09/22] ARM: DTS: vybrid: Update vf.dtsi file to descibe more vf610 hardware
  2019-02-13 21:46 [U-Boot] [PATCH v4 00/22] imx: vybrid: Update BK4 and PCM052 boards to only use DM/DTS Lukasz Majewski
                   ` (7 preceding siblings ...)
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 08/22] pcm052: board: vybrid: Update the board name for BK4 device Lukasz Majewski
@ 2019-02-13 21:46 ` Lukasz Majewski
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 10/22] pcm052: board: cosmetic: Add copyright notice to pcm052.c Lukasz Majewski
                   ` (12 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-13 21:46 UTC (permalink / raw)
  To: u-boot

This patch allows moving vf610 based boards to a device tree and model.
Ported from Linux kernel - v4.20 (tag)

Signed-off-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Stefan Agner <stefan.agner@toradex.com>
Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
---

Changes in v4: None
Changes in v3: None
Changes in v2: None

 arch/arm/dts/vf.dtsi | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)

diff --git a/arch/arm/dts/vf.dtsi b/arch/arm/dts/vf.dtsi
index ad30059b9a..5e3b2c5b9d 100644
--- a/arch/arm/dts/vf.dtsi
+++ b/arch/arm/dts/vf.dtsi
@@ -22,6 +22,10 @@
 		spi1 = &dspi1;
 		ehci0 = &ehci0;
 		ehci1 = &ehci1;
+		i2c0 = &i2c0;
+		i2c1 = &i2c1;
+		i2c2 = &i2c2;
+		i2c3 = &i2c3;
 	};
 
 	soc {
@@ -89,6 +93,22 @@
 				status = "disabled";
 			};
 
+			i2c0: i2c at 40066000 {
+				#address-cells = <1>;
+				#size-cells = <0>;
+				compatible = "fsl,vf610-i2c";
+				reg = <0x40066000 0x1000>;
+				status = "disabled";
+			};
+
+			i2c1: i2c at 40067000 {
+				#address-cells = <1>;
+				#size-cells = <0>;
+				compatible = "fsl,vf610-i2c";
+				reg = <0x40067000 0x1000>;
+				status = "disabled";
+			};
+
 			iomuxc: iomuxc at 40048000 {
 				compatible = "fsl,vf610-iomuxc";
 				reg = <0x40048000 0x1000>;
@@ -156,6 +176,48 @@
 				reg = <0x400b4000 0x800>;
 				status = "disabled";
 			};
+
+			esdhc1: esdhc at 400b2000 {
+				compatible = "fsl,esdhc";
+				reg = <0x400b2000 0x1000>;
+				status = "disabled";
+			};
+
+			fec0: fec at 400d0000 {
+			      compatible = "fsl,mvf600-fec";
+			      reg = <0x400d0000 0x1000>;
+			      status = "disabled";
+			};
+
+			fec1: fec at 400d1000 {
+			      compatible = "fsl,mvf600-fec";
+			      reg = <0x400d1000 0x1000>;
+			      status = "disabled";
+			};
+
+			nfc: nand at 400e0000 {
+				#address-cells = <1>;
+				#size-cells = <0>;
+				compatible = "fsl,vf610-nfc";
+				reg = <0x400e0000 0x4000>;
+				status = "disabled";
+			};
+
+			i2c2: i2c at 400e6000 {
+				#address-cells = <1>;
+				#size-cells = <0>;
+				compatible = "fsl,vf610-i2c";
+				reg = <0x400e6000 0x1000>;
+				status = "disabled";
+			};
+
+			i2c3: i2c at 400e7000 {
+				#address-cells = <1>;
+				#size-cells = <0>;
+				compatible = "fsl,vf610-i2c";
+				reg = <0x400e7000 0x1000>;
+				status = "disabled";
+			};
 		};
 	};
 };
-- 
2.11.0

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

* [U-Boot] [PATCH v4 10/22] pcm052: board: cosmetic: Add copyright notice to pcm052.c
  2019-02-13 21:46 [U-Boot] [PATCH v4 00/22] imx: vybrid: Update BK4 and PCM052 boards to only use DM/DTS Lukasz Majewski
                   ` (8 preceding siblings ...)
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 09/22] ARM: DTS: vybrid: Update vf.dtsi file to descibe more vf610 hardware Lukasz Majewski
@ 2019-02-13 21:46 ` Lukasz Majewski
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 11/22] ARM: DTS: Update pcm052 based dts files (bk4r1/pcm052) Lukasz Majewski
                   ` (11 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-13 21:46 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Lukasz Majewski <lukma@denx.de>
---

Changes in v4: None
Changes in v3: None
Changes in v2: None

 board/phytec/pcm052/pcm052.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/board/phytec/pcm052/pcm052.c b/board/phytec/pcm052/pcm052.c
index 5f2c9a9c12..95df0be6c1 100644
--- a/board/phytec/pcm052/pcm052.c
+++ b/board/phytec/pcm052/pcm052.c
@@ -1,5 +1,8 @@
 // SPDX-License-Identifier: GPL-2.0+
 /*
+ * (C) Copyright 2018
+ * Lukasz Majewski, DENX Software Engineering, lukma at denx.de.
+ *
  * Copyright 2013 Freescale Semiconductor, Inc.
  */
 
-- 
2.11.0

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

* [U-Boot] [PATCH v4 11/22] ARM: DTS: Update pcm052 based dts files (bk4r1/pcm052)
  2019-02-13 21:46 [U-Boot] [PATCH v4 00/22] imx: vybrid: Update BK4 and PCM052 boards to only use DM/DTS Lukasz Majewski
                   ` (9 preceding siblings ...)
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 10/22] pcm052: board: cosmetic: Add copyright notice to pcm052.c Lukasz Majewski
@ 2019-02-13 21:46 ` Lukasz Majewski
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 12/22] ARM: DTS: Provide vf610-bk4r1-u-boot.dtsi for U-Boot specific properties Lukasz Majewski
                   ` (10 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-13 21:46 UTC (permalink / raw)
  To: u-boot

This commit provides update and renames the bk4r1.dts to vf610-bk4r1.dts
file with more on SoC HW description.
The pcm052.dts has been renamed to vf610-pcm052.dts as well.

Moreover, a new vf610-pcm052.drsi file has been introduced
to reuse the common code between devices based on Phytec's
pcm052 modules.
Ported from Linux kernel - v4.20 (tag)

Signed-off-by: Lukasz Majewski <lukma@denx.de>

---

Changes in v4:
    - Update DDRBYTE0 -> DDRBYTE2 as in VF610 user manual

Changes in v3: None
Changes in v2:
    - Rename pcm052.dts to vf610-pcm052.dts
    - Rename bk4r1.dts to vf610-bk4r1.dts
    - Extract 'u-boot,dm-pre-reloc;' property to separate file (to facilitate
      sync with Linux kernel dts files)

 arch/arm/dts/Makefile                         |   4 +-
 arch/arm/dts/bk4r1.dts                        |  47 -----
 arch/arm/dts/vf610-bk4r1.dts                  |  97 ++++++++++
 arch/arm/dts/{pcm052.dts => vf610-pcm052.dts} |   6 +-
 arch/arm/dts/vf610-pcm052.dtsi                | 259 ++++++++++++++++++++++++++
 configs/bk4r1_defconfig                       |   2 +-
 configs/pcm052_defconfig                      |   2 +-
 7 files changed, 361 insertions(+), 56 deletions(-)
 delete mode 100644 arch/arm/dts/bk4r1.dts
 create mode 100644 arch/arm/dts/vf610-bk4r1.dts
 rename arch/arm/dts/{pcm052.dts => vf610-pcm052.dts} (81%)
 create mode 100644 arch/arm/dts/vf610-pcm052.dtsi

diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index ca50623480..8861827fcc 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -432,8 +432,8 @@ dtb-$(CONFIG_MACH_SUN9I) += \
 dtb-$(CONFIG_VF610) += vf500-colibri.dtb \
 	vf610-colibri.dtb \
 	vf610-twr.dtb \
-	pcm052.dtb \
-	bk4r1.dtb
+	vf610-pcm052.dtb \
+	vf610-bk4r1.dtb
 
 dtb-$(CONFIG_MX53) += imx53-cx9020.dtb
 
diff --git a/arch/arm/dts/bk4r1.dts b/arch/arm/dts/bk4r1.dts
deleted file mode 100644
index 866b80e0b0..0000000000
--- a/arch/arm/dts/bk4r1.dts
+++ /dev/null
@@ -1,47 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+ OR X11
-/*
- * Copyright 2016 Toradex AG
- */
-
-/dts-v1/;
-#include "vf.dtsi"
-
-/ {
-	model = "Phytec phyCORE-Vybrid";
-	compatible = "phytec,pcm052", "fsl,vf610";
-
-	chosen {
-		stdout-path = &uart1;
-	};
-
-	aliases {
-		spi0 = &qspi0;
-	};
-
-};
-
-&uart1 {
-	status = "okay";
-};
-
-&qspi0 {
-	bus-num = <0>;
-	num-cs = <2>;
-	status = "okay";
-
-	qflash0: spi_flash at 0 {
-		#address-cells = <1>;
-		#size-cells = <1>;
-		compatible = "spi-flash";
-		spi-max-frequency = <108000000>;
-		reg = <0>;
-	};
-
-	qflash1: spi_flash at 1 {
-		#address-cells = <1>;
-		#size-cells = <1>;
-		compatible = "spi-flash";
-		spi-max-frequency = <66000000>;
-		reg = <1>;
-	};
-};
diff --git a/arch/arm/dts/vf610-bk4r1.dts b/arch/arm/dts/vf610-bk4r1.dts
new file mode 100644
index 0000000000..55cd53384a
--- /dev/null
+++ b/arch/arm/dts/vf610-bk4r1.dts
@@ -0,0 +1,97 @@
+// SPDX-License-Identifier: GPL-2.0+ OR X11
+/*
+ * (C) Copyright 2018
+ * Lukasz Majewski, DENX Software Engineering, lukma at denx.de.
+ *
+ * Copyright 2016 Toradex AG
+ */
+
+/dts-v1/;
+#include "vf610-pcm052.dtsi"
+#include "vf610-pinfunc.h"
+
+/ {
+	model = "Liebherr (LVF) BK4 Vybrid Board";
+	compatible = "lvf,bk4", "fsl,vf610";
+
+	leds {
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_gpio_leds>;
+
+		compatible = "gpio-leds";
+
+		/* PTE15 PORT3[24] H6 green */
+		led at 0 {
+			label = "0";
+			gpios = <&gpio3 24 GPIO_ACTIVE_LOW>;
+			default-state = "off";
+		};
+
+		/* PTA12 PORT0[5] H5 green */
+		led at 1 {
+			label = "1";
+			gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
+			default-state = "off";
+		};
+
+		/* PTE20 PORT3[39] H4 green */
+		led at 2 {
+			label = "2";
+			gpios = <&gpio3 29 GPIO_ACTIVE_LOW>;
+			default-state = "off";
+		};
+
+		/* PTE12 PORT3[21] H3 green */
+		led at 3 {
+			label = "3";
+			gpios = <&gpio3 21 GPIO_ACTIVE_LOW>;
+			default-state = "off";
+		};
+
+		/* LED6 is now PRESET ETH -> PTA16 PORT0[6]  H6 red */
+		/* PTE9  PORT3[18] H5 red */
+		led at 4 {
+			label = "5";
+			gpios = <&gpio3 18 GPIO_ACTIVE_LOW>;
+			default-state = "off";
+		};
+
+		/* PTE23 PORT4[0]  H4 red */
+		led at 5 {
+			label = "6";
+			gpios = <&gpio4 0 GPIO_ACTIVE_LOW>;
+			default-state = "off";
+		};
+
+		/* PTE16 PORT3[25] H3 red */
+		led at 6 {
+			label = "7";
+			gpios = <&gpio3 25 GPIO_ACTIVE_LOW>;
+			default-state = "off";
+		};
+	};
+};
+
+&iomuxc {
+	pinctrl-0 = <&pinctrl_ddr &pinctrl_hog>;
+
+	pinctrl_hog: hoggrp {
+		fsl,pins = <
+			/* ETH control pins */
+			VF610_PAD_PTE17__GPIO_122		0x1183
+			VF610_PAD_PTA16__GPIO_6	0x1183
+		>;
+	};
+
+	pinctrl_gpio_leds: gpioledsgrp {
+		fsl,pins = <
+			/* LEDS */
+			VF610_PAD_PTE15__GPIO_120	0x1183
+			VF610_PAD_PTA12__GPIO_5	0x1183
+			VF610_PAD_PTE9__GPIO_114	0x1183
+			VF610_PAD_PTE20__GPIO_125	0x1183
+			VF610_PAD_PTE23__GPIO_128	0x1183
+			VF610_PAD_PTE16__GPIO_121	0x1183
+		>;
+	};
+};
diff --git a/arch/arm/dts/pcm052.dts b/arch/arm/dts/vf610-pcm052.dts
similarity index 81%
rename from arch/arm/dts/pcm052.dts
rename to arch/arm/dts/vf610-pcm052.dts
index 6489fdc6f4..22026024ea 100644
--- a/arch/arm/dts/pcm052.dts
+++ b/arch/arm/dts/vf610-pcm052.dts
@@ -4,7 +4,7 @@
  */
 
 /dts-v1/;
-#include "vf.dtsi"
+#include "vf610-pcm052.dtsi"
 
 / {
 	model = "Phytec phyCORE-Vybrid";
@@ -15,7 +15,3 @@
 	};
 
 };
-
-&uart1 {
-	status = "okay";
-};
diff --git a/arch/arm/dts/vf610-pcm052.dtsi b/arch/arm/dts/vf610-pcm052.dtsi
new file mode 100644
index 0000000000..1383d03c22
--- /dev/null
+++ b/arch/arm/dts/vf610-pcm052.dtsi
@@ -0,0 +1,259 @@
+// SPDX-License-Identifier: GPL-2.0+ OR X11
+/*
+ * (C) Copyright 2018
+ * Lukasz Majewski, DENX Software Engineering, lukma at denx.de.
+ *
+ */
+
+/dts-v1/;
+#include "vf.dtsi"
+#include "vf610-pinfunc.h"
+
+/ {
+	chosen {
+		stdout-path = &uart1;
+	};
+
+	aliases {
+		spi0 = &qspi0;
+		mmc0 = &esdhc1;
+	};
+};
+
+&esdhc1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_esdhc1>;
+	bus-width = <4>;
+	cd-gpios = <&gpio3 2 GPIO_ACTIVE_LOW>;
+	status = "okay";
+};
+
+&fec0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_eth>;
+
+	phy-mode = "rmii";
+	status = "okay";
+};
+
+&fec1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_eth1>;
+
+	phy-mode = "rmii";
+	status = "okay";
+};
+
+&i2c2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c2>;
+	status = "okay";
+
+	eeprom: eeprom at 50 {
+		compatible = "atmel,24c256";
+		reg = <0x50>;
+		pagesize = <64>;
+		u-boot,i2c-offset-len = <2>;
+	};
+
+	m41t62: rtc at 68 {
+		compatible = "st,m41t62";
+		reg = <0x68>;
+	};
+};
+
+&iomuxc {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_ddr>;
+
+	pinctrl_ddr: ddrgrp {
+		fsl,pins = <
+			VF610_PAD_DDR_A15__DDR_A_15             0x1c0
+			VF610_PAD_DDR_A14__DDR_A_14             0x1c0
+			VF610_PAD_DDR_A13__DDR_A_13             0x1c0
+			VF610_PAD_DDR_A12__DDR_A_12             0x1c0
+			VF610_PAD_DDR_A11__DDR_A_11             0x1c0
+			VF610_PAD_DDR_A10__DDR_A_10             0x1c0
+			VF610_PAD_DDR_A9__DDR_A_9               0x1c0
+			VF610_PAD_DDR_A8__DDR_A_8               0x1c0
+			VF610_PAD_DDR_A7__DDR_A_7               0x1c0
+			VF610_PAD_DDR_A6__DDR_A_6               0x1c0
+			VF610_PAD_DDR_A5__DDR_A_5               0x1c0
+			VF610_PAD_DDR_A4__DDR_A_4               0x1c0
+			VF610_PAD_DDR_A3__DDR_A_3               0x1c0
+			VF610_PAD_DDR_A2__DDR_A_2               0x1c0
+			VF610_PAD_DDR_A1__DDR_A_1               0x1c0
+			VF610_PAD_DDR_A0__DDR_A_0               0x1c0
+			VF610_PAD_DDR_BA2__DDR_BA_2             0x1c0
+			VF610_PAD_DDR_BA1__DDR_BA_1             0x1c0
+			VF610_PAD_DDR_BA0__DDR_BA_0             0x1c0
+			VF610_PAD_DDR_CAS__DDR_CAS_B            0x1c0
+			VF610_PAD_DDR_CKE__DDR_CKE_0            0x1c0
+			VF610_PAD_DDR_CLK__DDR_CLK_0            0x101c0
+			VF610_PAD_DDR_CS__DDR_CS_B_0            0x1c0
+			VF610_PAD_DDR_D15__DDR_D_15             0x1c0
+			VF610_PAD_DDR_D14__DDR_D_14             0x1c0
+			VF610_PAD_DDR_D13__DDR_D_13             0x1c0
+			VF610_PAD_DDR_D12__DDR_D_12             0x1c0
+			VF610_PAD_DDR_D11__DDR_D_11             0x1c0
+			VF610_PAD_DDR_D10__DDR_D_10             0x1c0
+			VF610_PAD_DDR_D9__DDR_D_9               0x1c0
+			VF610_PAD_DDR_D8__DDR_D_8               0x1c0
+			VF610_PAD_DDR_D7__DDR_D_7               0x1c0
+			VF610_PAD_DDR_D6__DDR_D_6               0x1c0
+			VF610_PAD_DDR_D5__DDR_D_5               0x1c0
+			VF610_PAD_DDR_D4__DDR_D_4               0x1c0
+			VF610_PAD_DDR_D3__DDR_D_3               0x1c0
+			VF610_PAD_DDR_D2__DDR_D_2               0x1c0
+			VF610_PAD_DDR_D1__DDR_D_1               0x1c0
+			VF610_PAD_DDR_D0__DDR_D_0               0x1c0
+			VF610_PAD_DDR_DQM1__DDR_DQM_1           0x1c0
+			VF610_PAD_DDR_DQM0__DDR_DQM_0           0x1c0
+			VF610_PAD_DDR_DQS1__DDR_DQS_1           0x101c0
+			VF610_PAD_DDR_DQS0__DDR_DQS_0           0x101c0
+			VF610_PAD_DDR_RAS__DDR_RAS_B            0x1c0
+			VF610_PAD_DDR_WE__DDR_WE_B              0x1c0
+			VF610_PAD_DDR_ODT1__DDR_ODT_0           0x1c0
+			VF610_PAD_DDR_ODT0__DDR_ODT_1           0x1c0
+			VF610_PAD_DDR_DDRBYTE1__DDR_DDRBYTE1    0x1c0
+			VF610_PAD_DDR_DDRBYTE2__DDR_DDRBYTE2    0x1c0
+			VF610_PAD_DDR_RESETB                    0x1006c
+		>;
+	};
+
+	pinctrl_esdhc1: esdhc1grp {
+		fsl,pins = <
+			VF610_PAD_PTA24__ESDHC1_CLK		0x31ef
+			VF610_PAD_PTA25__ESDHC1_CMD		0x31ef
+			VF610_PAD_PTA26__ESDHC1_DAT0		0x31ef
+			VF610_PAD_PTA27__ESDHC1_DAT1		0x31ef
+			VF610_PAD_PTA28__ESDHC1_DATA2		0x31ef
+			VF610_PAD_PTA29__ESDHC1_DAT3		0x31ef
+			VF610_PAD_PTB28__GPIO_98		0x219d
+		>;
+	};
+
+	pinctrl_eth: ethgrp {
+		fsl,pins = <
+			VF610_PAD_PTA6__RMII_CLKIN              0x30dd
+			VF610_PAD_PTC0__ENET_RMII0_MDC          0x30de
+			VF610_PAD_PTC1__ENET_RMII0_MDIO 0x30df
+			VF610_PAD_PTC2__ENET_RMII0_CRS          0x30dd
+			VF610_PAD_PTC3__ENET_RMII0_RXD1 0x30dd
+			VF610_PAD_PTC4__ENET_RMII0_RXD0 0x30dd
+			VF610_PAD_PTC5__ENET_RMII0_RXER 0x30dd
+			VF610_PAD_PTC6__ENET_RMII0_TXD1 0x30de
+			VF610_PAD_PTC7__ENET_RMII0_TXD0 0x30de
+			VF610_PAD_PTC8__ENET_RMII0_TXEN 0x30de
+		>;
+	};
+
+	pinctrl_eth1: eth1grp {
+		fsl,pins = <
+			VF610_PAD_PTC9__ENET_RMII1_MDC		0x30de
+			VF610_PAD_PTC10__ENET_RMII1_MDIO	0x30df
+			VF610_PAD_PTC11__ENET_RMII1_CRS	0x30dd
+			VF610_PAD_PTC12__ENET_RMII1_RXD1	0x30dd
+			VF610_PAD_PTC13__ENET_RMII1_RXD0	0x30dd
+			VF610_PAD_PTC14__ENET_RMII1_RXER	0x30dd
+			VF610_PAD_PTC15__ENET_RMII1_TXD1	0x30de
+			VF610_PAD_PTC16__ENET_RMII1_TXD0	0x30de
+			VF610_PAD_PTC17__ENET_RMII1_TXEN	0x30de
+		>;
+	};
+
+	pinctrl_i2c2: i2c2grp {
+		fsl,pins = <
+			VF610_PAD_PTA22__I2C2_SCL		0x34df
+			VF610_PAD_PTA23__I2C2_SDA		0x34df
+		>;
+	};
+
+	pinctrl_nfc: nfcgrp {
+		fsl,pins = <
+			VF610_PAD_PTD31__NF_IO15		0x28df
+			VF610_PAD_PTD30__NF_IO14		0x28df
+			VF610_PAD_PTD29__NF_IO13		0x28df
+			VF610_PAD_PTD28__NF_IO12		0x28df
+			VF610_PAD_PTD27__NF_IO11		0x28df
+			VF610_PAD_PTD26__NF_IO10		0x28df
+			VF610_PAD_PTD25__NF_IO9		0x28df
+			VF610_PAD_PTD24__NF_IO8		0x28df
+			VF610_PAD_PTD23__NF_IO7		0x28df
+			VF610_PAD_PTD22__NF_IO6		0x28df
+			VF610_PAD_PTD21__NF_IO5		0x28df
+			VF610_PAD_PTD20__NF_IO4		0x28df
+			VF610_PAD_PTD19__NF_IO3		0x28df
+			VF610_PAD_PTD18__NF_IO2		0x28df
+			VF610_PAD_PTD17__NF_IO1		0x28df
+			VF610_PAD_PTD16__NF_IO0		0x28df
+			VF610_PAD_PTB24__NF_WE_B		0x28c2
+			VF610_PAD_PTB25__NF_CE0_B		0x28c2
+			VF610_PAD_PTB27__NF_RE_B		0x28c2
+			VF610_PAD_PTC26__NF_RB_B		0x283d
+			VF610_PAD_PTC27__NF_ALE		0x28c2
+			VF610_PAD_PTC28__NF_CLE		0x28c2
+		>;
+	};
+
+	pinctrl_qspi0: qspi0grp {
+		fsl,pins = <
+			VF610_PAD_PTD0__QSPI0_A_QSCK	0x397f
+			VF610_PAD_PTD1__QSPI0_A_CS0	0x397f
+			VF610_PAD_PTD2__QSPI0_A_DATA3	0x397f
+			VF610_PAD_PTD3__QSPI0_A_DATA2	0x397f
+			VF610_PAD_PTD4__QSPI0_A_DATA1	0x397f
+			VF610_PAD_PTD5__QSPI0_A_DATA0	0x397f
+			VF610_PAD_PTD7__QSPI0_B_QSCK	0x397f
+			VF610_PAD_PTD8__QSPI0_B_CS0	0x397f
+			VF610_PAD_PTD11__QSPI0_B_DATA1	0x397f
+			VF610_PAD_PTD12__QSPI0_B_DATA0	0x397f
+		>;
+	};
+
+	pinctrl_uart1: uart1grp {
+		fsl,pins = <
+			VF610_PAD_PTB4__UART1_TX                0x21a2
+			VF610_PAD_PTB5__UART1_RX                0x21a1
+		>;
+	};
+};
+
+&nfc {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_nfc>;
+
+	status = "okay";
+};
+
+&uart1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart1>;
+
+	status = "okay";
+};
+
+&qspi0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_qspi0>;
+
+	bus-num = <0>;
+	num-cs = <2>;
+	status = "okay";
+
+	qflash0: spi_flash at 0 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "spi-flash";
+		spi-max-frequency = <108000000>;
+		reg = <0>;
+	};
+
+	qflash1: spi_flash at 1 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "spi-flash";
+		spi-max-frequency = <66000000>;
+		reg = <1>;
+	};
+};
diff --git a/configs/bk4r1_defconfig b/configs/bk4r1_defconfig
index 9e31b4ac97..b67a3946ac 100644
--- a/configs/bk4r1_defconfig
+++ b/configs/bk4r1_defconfig
@@ -25,7 +25,7 @@ CONFIG_MTDIDS_DEFAULT="nand0=NAND,nor0=NOR"
 CONFIG_MTDPARTS_DEFAULT="mtdparts=NAND:640k(bootloader),128k(env1),128k(env2),128k(dtb),6144k(kernel),-(root);NOR:-(nor)"
 CONFIG_CMD_UBI=y
 CONFIG_OF_CONTROL=y
-CONFIG_DEFAULT_DEVICE_TREE="bk4r1"
+CONFIG_DEFAULT_DEVICE_TREE="vf610-bk4r1"
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_DM=y
 CONFIG_DM_GPIO=y
diff --git a/configs/pcm052_defconfig b/configs/pcm052_defconfig
index e207df51a8..26ee823df3 100644
--- a/configs/pcm052_defconfig
+++ b/configs/pcm052_defconfig
@@ -24,7 +24,7 @@ CONFIG_MTDIDS_DEFAULT="nand0=NAND"
 CONFIG_MTDPARTS_DEFAULT="mtdparts=NAND:640k(bootloader),128k(env1),128k(env2),128k(dtb),6144k(kernel),-(root)"
 CONFIG_CMD_UBI=y
 CONFIG_OF_CONTROL=y
-CONFIG_DEFAULT_DEVICE_TREE="pcm052"
+CONFIG_DEFAULT_DEVICE_TREE="vf610-pcm052"
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_DM=y
 CONFIG_DM_GPIO=y
-- 
2.11.0

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

* [U-Boot] [PATCH v4 12/22] ARM: DTS: Provide vf610-bk4r1-u-boot.dtsi for U-Boot specific properties
  2019-02-13 21:46 [U-Boot] [PATCH v4 00/22] imx: vybrid: Update BK4 and PCM052 boards to only use DM/DTS Lukasz Majewski
                   ` (10 preceding siblings ...)
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 11/22] ARM: DTS: Update pcm052 based dts files (bk4r1/pcm052) Lukasz Majewski
@ 2019-02-13 21:46 ` Lukasz Majewski
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 13/22] defconfig: bk4/pcm052: Update bk4r1|pcm052_defconfig to support DM/DT Lukasz Majewski
                   ` (9 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-13 21:46 UTC (permalink / raw)
  To: u-boot

This commit brings a separate file in which the U-Boot specific
properties (like 'dm-pre-reloc') are provided.

Such approach allows easy sync with upstream Linux kernel in the
future.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Tom Rini <trini@konsulko.com>

---

Changes in v4: None
Changes in v3: None
Changes in v2:
        - New patch

 arch/arm/dts/vf610-bk4r1-u-boot.dtsi | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)
 create mode 100644 arch/arm/dts/vf610-bk4r1-u-boot.dtsi

diff --git a/arch/arm/dts/vf610-bk4r1-u-boot.dtsi b/arch/arm/dts/vf610-bk4r1-u-boot.dtsi
new file mode 100644
index 0000000000..088926bde2
--- /dev/null
+++ b/arch/arm/dts/vf610-bk4r1-u-boot.dtsi
@@ -0,0 +1,27 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2019
+ * Lukasz Majewski, DENX Software Engineering, lukma at denx.de
+ */
+
+/ {
+	soc {
+		u-boot,dm-pre-reloc;
+	};
+};
+
+&aips0 {
+	u-boot,dm-pre-reloc;
+};
+
+&pinctrl_ddr {
+	u-boot,dm-pre-reloc;
+};
+
+&pinctrl_uart1 {
+	u-boot,dm-pre-reloc;
+};
+
+&uart1 {
+	u-boot,dm-pre-reloc;
+};
-- 
2.11.0

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

* [U-Boot] [PATCH v4 13/22] defconfig: bk4/pcm052: Update bk4r1|pcm052_defconfig to support DM/DT
  2019-02-13 21:46 [U-Boot] [PATCH v4 00/22] imx: vybrid: Update BK4 and PCM052 boards to only use DM/DTS Lukasz Majewski
                   ` (11 preceding siblings ...)
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 12/22] ARM: DTS: Provide vf610-bk4r1-u-boot.dtsi for U-Boot specific properties Lukasz Majewski
@ 2019-02-13 21:46 ` Lukasz Majewski
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 14/22] config: pcm052: Use SZ_X{MK} from linux/sizes.h for include/configs/pcm052.h Lukasz Majewski
                   ` (8 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-13 21:46 UTC (permalink / raw)
  To: u-boot

This commit updates BK4's and PCM052's config files to support as much
as possible device tree and model in u-boot.

Moreover, remove CONFIG_* from pcm052.h (as those are now in
bk4|pcm052_defconfig)

Signed-off-by: Lukasz Majewski <lukma@denx.de>

---

Changes in v4: None
Changes in v3: None
Changes in v2:
        - Disable EFI related support and commands (as we do not plan to
          use EFI on this setup)

 configs/bk4r1_defconfig  | 47 ++++++++++++++++++++++++++++++++++++++++++-----
 configs/pcm052_defconfig | 34 ++++++++++++++++++++++++++++++++--
 include/configs/pcm052.h | 34 ----------------------------------
 3 files changed, 74 insertions(+), 41 deletions(-)

diff --git a/configs/bk4r1_defconfig b/configs/bk4r1_defconfig
index b67a3946ac..e3852f4856 100644
--- a/configs/bk4r1_defconfig
+++ b/configs/bk4r1_defconfig
@@ -2,15 +2,18 @@ CONFIG_ARM=y
 CONFIG_SYS_THUMB_BUILD=y
 CONFIG_ARCH_VF610=y
 CONFIG_SYS_TEXT_BASE=0x3f401000
+CONFIG_SYS_MALLOC_F_LEN=0x800
 CONFIG_TARGET_BK4R1=y
 CONFIG_NR_DRAM_BANKS=1
+CONFIG_FIT=y
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/phytec/pcm052/imximage.cfg"
 CONFIG_BOOTDELAY=3
 CONFIG_BOARD_EARLY_INIT_F=y
 CONFIG_HUSH_PARSER=y
-CONFIG_CMD_BOOTZ=y
-CONFIG_CMD_EEPROM=y
+# CONFIG_CMD_ELF is not set
 CONFIG_CMD_MEMTEST=y
+CONFIG_CMD_DM=y
+CONFIG_CMD_FUSE=y
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_MMC=y
@@ -19,19 +22,45 @@ CONFIG_CMD_SF=y
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
-CONFIG_CMD_DATE=y
+CONFIG_CMD_BOOTCOUNT=y
 CONFIG_CMD_FAT=y
-CONFIG_MTDIDS_DEFAULT="nand0=NAND,nor0=NOR"
-CONFIG_MTDPARTS_DEFAULT="mtdparts=NAND:640k(bootloader),128k(env1),128k(env2),128k(dtb),6144k(kernel),-(root);NOR:-(nor)"
+CONFIG_MTDIDS_DEFAULT="nand0=vf610_nfc,nor0=NOR"
+CONFIG_MTDPARTS_DEFAULT="mtdparts=vf610_nfc:2048k(bootloader),128k(env1),128k(env2),10240k(initrd),40960k(dtbkernel),-(system);NOR:-(nor)"
 CONFIG_CMD_UBI=y
 CONFIG_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="vf610-bk4r1"
 CONFIG_ENV_IS_IN_NAND=y
+CONFIG_NETCONSOLE=y
 CONFIG_DM=y
+CONFIG_BOOTCOUNT_LIMIT=y
+CONFIG_BOOTCOUNT_BOOTLIMIT=3
+CONFIG_SYS_BOOTCOUNT_SINGLEWORD=y
+CONFIG_SYS_BOOTCOUNT_ADDR=0x4006e02c
 CONFIG_DM_GPIO=y
 CONFIG_VYBRID_GPIO=y
+CONFIG_DM_I2C=y
+CONFIG_I2C_SET_DEFAULT_BUS_NUM=y
+CONFIG_I2C_DEFAULT_BUS_NUMBER=0x2
+CONFIG_SYS_I2C_MXC=y
+CONFIG_SYS_I2C_MXC_I2C1=y
+CONFIG_SYS_I2C_MXC_I2C2=y
+CONFIG_SYS_I2C_MXC_I2C3=y
+CONFIG_SYS_I2C_MXC_I2C4=y
+CONFIG_LED=y
+CONFIG_LED_GPIO=y
+CONFIG_MISC=y
+CONFIG_MXC_OCOTP=y
+CONFIG_I2C_EEPROM=y
+CONFIG_SYS_I2C_EEPROM_ADDR=0x50
+CONFIG_SYS_I2C_EEPROM_BUS=2
+CONFIG_SYS_EEPROM_SIZE=32768
+CONFIG_SYS_EEPROM_PAGE_WRITE_BITS=6
+CONFIG_SYS_I2C_EEPROM_ADDR_LEN=2
+CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
+CONFIG_MTD=y
 CONFIG_NAND_VF610_NFC=y
+CONFIG_NAND_VF610_NFC_DT=y
 CONFIG_SYS_NAND_BUSWIDTH_16BIT=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH=y
@@ -39,10 +68,18 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_SPI_FLASH_MTD=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_MICREL=y
+CONFIG_DM_ETH=y
+CONFIG_FEC_MXC=y
 CONFIG_MII=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_VYBRID=y
+CONFIG_DM_RTC=y
 CONFIG_RTC_M41T62=y
+# CONFIG_SPL_SERIAL_PRESENT is not set
+# CONFIG_TPL_SERIAL_PRESENT is not set
 CONFIG_DM_SERIAL=y
 CONFIG_FSL_LPUART=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
 CONFIG_FSL_QSPI=y
+# CONFIG_EFI_LOADER is not set
diff --git a/configs/pcm052_defconfig b/configs/pcm052_defconfig
index 26ee823df3..906abbfd69 100644
--- a/configs/pcm052_defconfig
+++ b/configs/pcm052_defconfig
@@ -9,7 +9,6 @@ CONFIG_BOOTDELAY=3
 CONFIG_BOARD_EARLY_INIT_F=y
 CONFIG_HUSH_PARSER=y
 CONFIG_CMD_BOOTZ=y
-CONFIG_CMD_EEPROM=y
 CONFIG_CMD_MEMTEST=y
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_I2C=y
@@ -18,7 +17,6 @@ CONFIG_CMD_NAND_TRIMFFS=y
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
-CONFIG_CMD_DATE=y
 CONFIG_CMD_FAT=y
 CONFIG_MTDIDS_DEFAULT="nand0=NAND"
 CONFIG_MTDPARTS_DEFAULT="mtdparts=NAND:640k(bootloader),128k(env1),128k(env2),128k(dtb),6144k(kernel),-(root)"
@@ -29,12 +27,44 @@ CONFIG_ENV_IS_IN_NAND=y
 CONFIG_DM=y
 CONFIG_DM_GPIO=y
 CONFIG_VYBRID_GPIO=y
+CONFIG_DM_I2C=y
+CONFIG_I2C_SET_DEFAULT_BUS_NUM=y
+CONFIG_I2C_DEFAULT_BUS_NUMBER=0x2
+CONFIG_SYS_I2C_MXC=y
+CONFIG_SYS_I2C_MXC_I2C1=y
+CONFIG_SYS_I2C_MXC_I2C2=y
+CONFIG_SYS_I2C_MXC_I2C3=y
+CONFIG_SYS_I2C_MXC_I2C4=y
+CONFIG_MISC=y
+CONFIG_MXC_OCOTP=y
+CONFIG_I2C_EEPROM=y
+CONFIG_SYS_I2C_EEPROM_ADDR=0x50
+CONFIG_SYS_I2C_EEPROM_BUS=2
+CONFIG_SYS_EEPROM_SIZE=32768
+CONFIG_SYS_EEPROM_PAGE_WRITE_BITS=6
+CONFIG_SYS_I2C_EEPROM_ADDR_LEN=2
+CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
+CONFIG_MTD=y
 CONFIG_NAND_VF610_NFC=y
+CONFIG_NAND_VF610_NFC_DT=y
 CONFIG_SYS_NAND_BUSWIDTH_16BIT=y
+CONFIG_DM_SPI_FLASH=y
+CONFIG_SPI_FLASH=y
+CONFIG_SPI_FLASH_STMICRO=y
+CONFIG_SPI_FLASH_MTD=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_MICREL=y
+CONFIG_DM_ETH=y
+CONFIG_FEC_MXC=y
 CONFIG_MII=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_VYBRID=y
+CONFIG_DM_RTC=y
 CONFIG_RTC_M41T62=y
 CONFIG_DM_SERIAL=y
 CONFIG_FSL_LPUART=y
+CONFIG_SPI=y
+CONFIG_DM_SPI=y
+CONFIG_FSL_QSPI=y
+# CONFIG_EFI_LOADER is not set
diff --git a/include/configs/pcm052.h b/include/configs/pcm052.h
index e125a38e7d..c2ecb7ec18 100644
--- a/include/configs/pcm052.h
+++ b/include/configs/pcm052.h
@@ -24,48 +24,14 @@
 /* NAND support */
 #define CONFIG_SYS_NAND_ONFI_DETECTION
 
-#ifdef CONFIG_CMD_NAND
 #define CONFIG_SYS_MAX_NAND_DEVICE	1
-#define CONFIG_SYS_NAND_BASE		NFC_BASE_ADDR
-
-#define CONFIG_JFFS2_NAND
-
-/* Dynamic MTD partition support */
-
-#endif
-
-#define CONFIG_SYS_FSL_ESDHC_ADDR	0
-#define CONFIG_SYS_FSL_ESDHC_NUM	1
-
-/*#define CONFIG_ESDHC_DETECT_USE_EXTERN_IRQ1*/
-
-#define CONFIG_FEC_MXC
-#define IMX_FEC_BASE			ENET_BASE_ADDR
-#define CONFIG_FEC_XCV_TYPE		RMII
-#define CONFIG_FEC_MXC_PHYADDR          0
-
 /* QSPI Configs*/
-
 #ifdef CONFIG_FSL_QSPI
 #define FSL_QSPI_FLASH_SIZE		(1 << 24)
 #define FSL_QSPI_FLASH_NUM		2
 #define CONFIG_SYS_FSL_QSPI_LE
 #endif
 
-/* I2C Configs */
-#define CONFIG_SYS_I2C
-#define CONFIG_SYS_I2C_MXC_I2C3
-#define CONFIG_SYS_I2C_MXC
-
-/* RTC (actually an RV-4162 but M41T62-compatible) */
-#define CONFIG_SYS_I2C_RTC_ADDR 0x68
-#define CONFIG_SYS_RTC_BUS_NUM 2
-
-/* EEPROM (24FC256) */
-#define CONFIG_SYS_I2C_EEPROM_ADDR 0x50
-#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2
-#define CONFIG_SYS_I2C_EEPROM_BUS 2
-
 
 #define CONFIG_LOADADDR			0x82000000
 
-- 
2.11.0

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

* [U-Boot] [PATCH v4 14/22] config: pcm052: Use SZ_X{MK} from linux/sizes.h for include/configs/pcm052.h
  2019-02-13 21:46 [U-Boot] [PATCH v4 00/22] imx: vybrid: Update BK4 and PCM052 boards to only use DM/DTS Lukasz Majewski
                   ` (12 preceding siblings ...)
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 13/22] defconfig: bk4/pcm052: Update bk4r1|pcm052_defconfig to support DM/DT Lukasz Majewski
@ 2019-02-13 21:46 ` Lukasz Majewski
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 15/22] config: bk4: Update include/configs/bk4r1.h file Lukasz Majewski
                   ` (7 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-13 21:46 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
---

Changes in v4: None
Changes in v3: None
Changes in v2: None

 include/configs/pcm052.h | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/include/configs/pcm052.h b/include/configs/pcm052.h
index c2ecb7ec18..fb8f3c8609 100644
--- a/include/configs/pcm052.h
+++ b/include/configs/pcm052.h
@@ -9,6 +9,7 @@
 #define __CONFIG_H
 
 #include <asm/arch/imx-regs.h>
+#include <linux/sizes.h>
 
 #define CONFIG_SKIP_LOWLEVEL_INIT
 
@@ -16,7 +17,7 @@
 #define CONFIG_CMDLINE_TAG
 
 /* Size of malloc() pool */
-#define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + 2 * 1024 * 1024)
+#define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + 2 * SZ_1M)
 
 /* Allow to overwrite serial and ethaddr */
 #define CONFIG_ENV_OVERWRITE
@@ -27,7 +28,7 @@
 #define CONFIG_SYS_MAX_NAND_DEVICE	1
 /* QSPI Configs*/
 #ifdef CONFIG_FSL_QSPI
-#define FSL_QSPI_FLASH_SIZE		(1 << 24)
+#define FSL_QSPI_FLASH_SIZE		(SZ_16M)
 #define FSL_QSPI_FLASH_NUM		2
 #define CONFIG_SYS_FSL_QSPI_LE
 #endif
@@ -154,7 +155,7 @@
 
 /* Physical memory map */
 #define PHYS_SDRAM			(0x80000000)
-#define PHYS_SDRAM_SIZE			(CONFIG_PCM052_DDR_SIZE * 1024 * 1024)
+#define PHYS_SDRAM_SIZE			(CONFIG_PCM052_DDR_SIZE * SZ_1M)
 
 #define CONFIG_SYS_SDRAM_BASE		PHYS_SDRAM
 #define CONFIG_SYS_INIT_RAM_ADDR	IRAM_BASE_ADDR
@@ -167,17 +168,17 @@
 
 /* environment organization */
 #ifdef CONFIG_ENV_IS_IN_MMC
-#define CONFIG_ENV_SIZE			(8 * 1024)
+#define CONFIG_ENV_SIZE			(SZ_8K)
 
-#define CONFIG_ENV_OFFSET		(12 * 64 * 1024)
+#define CONFIG_ENV_OFFSET		(12 * SZ_64K)
 #define CONFIG_SYS_MMC_ENV_DEV		0
 #endif
 
 #ifdef CONFIG_ENV_IS_IN_NAND
-#define CONFIG_ENV_SECT_SIZE		(128 * 1024)
-#define CONFIG_ENV_SIZE			(8 * 1024)
+#define CONFIG_ENV_SECT_SIZE		(SZ_128K)
+#define CONFIG_ENV_SIZE			(SZ_8K)
 #define CONFIG_ENV_OFFSET		0xA0000
-#define CONFIG_ENV_SIZE_REDUND		(8 * 1024)
+#define CONFIG_ENV_SIZE_REDUND		(SZ_8K)
 #define CONFIG_ENV_OFFSET_REDUND	0xC0000
 #endif
 
-- 
2.11.0

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

* [U-Boot] [PATCH v4 15/22] config: bk4: Update include/configs/bk4r1.h file
  2019-02-13 21:46 [U-Boot] [PATCH v4 00/22] imx: vybrid: Update BK4 and PCM052 boards to only use DM/DTS Lukasz Majewski
                   ` (13 preceding siblings ...)
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 14/22] config: pcm052: Use SZ_X{MK} from linux/sizes.h for include/configs/pcm052.h Lukasz Majewski
@ 2019-02-13 21:46 ` Lukasz Majewski
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 16/22] pcm052: board: Remove in-board setup code (it is now replaced by DM setup) Lukasz Majewski
                   ` (6 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-13 21:46 UTC (permalink / raw)
  To: u-boot

The BK4's config file has changed since its initial posting to main line.
This commit reflects those changes.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
---

Changes in v4: None
Changes in v3: None
Changes in v2: None

 include/configs/bk4r1.h | 214 ++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 206 insertions(+), 8 deletions(-)

diff --git a/include/configs/bk4r1.h b/include/configs/bk4r1.h
index a012705870..bbd3e4e636 100644
--- a/include/configs/bk4r1.h
+++ b/include/configs/bk4r1.h
@@ -1,24 +1,222 @@
 /* SPDX-License-Identifier: GPL-2.0+ */
 /*
+ * Copyright (C) 2018
+ * Lukasz Majewski, DENX Software Engineering, lukma at denx.de
+ *
  * Copyright 2016 3ADEV <http://3adev.com>
  * Written-by: Albert ARIBAUD <albert.aribaud@3adev.fr>
  *
- * Configuration settings for the phytec PCM-052 SoM-based BK4R1.
+ * Configuration settings for BK4R1.
  */
 
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
 /* Define the BK4r1-specific env commands */
-#define PCM052_EXTRA_ENV_SETTINGS \
+#define BK4_EXTRA_ENV_SETTINGS \
+	"bootlimit=3\0" \
+	"eraseuserdata=false\0" \
+	"altbootcmd=led 5 on; " \
+		"boot\0" \
 	"set_gpio103=mw 0x400ff0c4 0x0080; mw 0x4004819C 0x000011bf\0" \
-	"set_gpio122=mw 0x400481e8 0x0282; mw 0x400ff0c4 0x04000000\0"
+	"set_gpio102=mw 0x400ff0c4 0x40; mw 0x40048198 0x000011bf\0" \
+	"set_gpio96=mw 0x40048180 0x282; mw 0x400ff0c4 0x1\0"\
+	"set_gpio122=mw 0x400481e8 0x0282; mw 0x400ff0c4 0x04000000\0"\
+	"set_gpio6=mw 0x40048018 0x282; mw 0x400ff008 0x40\0"\
+	"manage_userdata=" MANAGE_USERDATA "\0"\
+	"ncenable=true\0"\
+	"ncserverip=192.168.0.77\0"\
+	"if_netconsole=ping $ncserverip\0"\
+	"start_netconsole=setenv ncip $serverip; setenv bootdelay 10;" \
+	     "setenv stdin nc; setenv stdout nc; setenv stderr nc; version;\0" \
+	"preboot=" BK4_NET_INIT \
+		"if ${ncenable}; then run if_netconsole start_netconsole; fi\0"
 
 /* BK4r1 boot command sets GPIO103/PTC30 to force USB hub out of reset*/
-#define PCM052_BOOTCOMMAND "run set_gpio103; sf probe; "
+#define BK4_BOOTCOMMAND "run set_gpio122; run set_gpio96; sf probe; " \
+			"run manage_userdata; "
+
+/* Enable PREBOOT variable */
+#define CONFIG_PREBOOT
+
+/* Set ARP_TIMEOUT to 500ms */
+#define CONFIG_ARP_TIMEOUT 500UL
+
+/* Set ARP_TIMEOUT_COUNT to 3 repetitions */
+#define CONFIG_NET_RETRY_COUNT	5
 
 /* BK4r1 net init sets GPIO122/PTE17 to enable Ethernet */
-#define PCM052_NET_INIT "run set_gpio122; "
+#define BK4_NET_INIT "run set_gpio122;"
+
+/* Check if userdata volume shall be erased */
+#define MANAGE_USERDATA "if ${eraseuserdata}; " \
+						"then ubi part system; " \
+						"ubi remove userdata; " \
+						"ubi create userdata; " \
+						"ubi detach; " \
+						"setenv eraseuserdata false; " \
+						"saveenv; " \
+						"fi; "
+
+/* Autoboot options */
+#define CONFIG_AUTOBOOT_KEYED
+#define CONFIG_AUTOBOOT_PROMPT	\
+	"Enter passphrase to stop autoboot, booting in %d seconds\n"
+#define CONFIG_AUTOBOOT_STOP_STR "123"
+
+#include <asm/arch/imx-regs.h>
+#include <linux/sizes.h>
+
+#define CONFIG_SKIP_LOWLEVEL_INIT
+
+/* Enable passing of ATAGs */
+#define CONFIG_CMDLINE_TAG
+
+/* Size of malloc() pool */
+#define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + 4 * SZ_1M)
+
+/* Allow to overwrite serial and ethaddr */
+#define CONFIG_ENV_OVERWRITE
+
+/* NAND support */
+#define CONFIG_SYS_NAND_ONFI_DETECTION
+#define CONFIG_SYS_MAX_NAND_DEVICE 1
+
+#define IMX_FEC1_BASE			ENET1_BASE_ADDR
+
+/* QSPI Configs*/
+#ifdef CONFIG_FSL_QSPI
+#define FSL_QSPI_FLASH_SIZE		(SZ_16M)
+#define FSL_QSPI_FLASH_NUM		2
+#define CONFIG_SYS_FSL_QSPI_LE
+#endif
+
+#define CONFIG_LOADADDR	0x82000000
+
+/* We boot from the gfxRAM area of the OCRAM. */
+#define CONFIG_BOARD_SIZE_LIMIT		520192
+
+/* boot command, including the target-defined one if any */
+#define CONFIG_BOOTCOMMAND	BK4_BOOTCOMMAND "run bootcmd_nand"
+
+/* Extra env settings (including the target-defined ones if any) */
+#define CONFIG_EXTRA_ENV_SETTINGS \
+	BK4_EXTRA_ENV_SETTINGS \
+	"autoload=no\0" \
+	"fdt_high=0xffffffff\0" \
+	"initrd_high=0xffffffff\0" \
+	"blimg_file=u-boot.vyb\0" \
+	"blimg_addr=0x81000000\0" \
+	"dtbkernel_file=fitImage\0" \
+	"dtbkernel_addr=0x82000000\0" \
+	"ram_file=uRamdisk\0" \
+	"ram_addr=0x83000000\0" \
+	"filesys=rootfs.ubifs\0" \
+	"sys_addr=0x81000000\0" \
+	"nfs_root=/path/to/nfs/root\0" \
+	"tftptimeout=1000\0" \
+	"tftptimeoutcountmax=1000000\0" \
+	"mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0" \
+	"ipaddr=192.168.0.60\0" \
+	"serverip=192.168.0.1\0" \
+	"bootargs_base=setenv bootargs rw " \
+	"console=ttyLP1,115200n8\0" \
+	"bootargs_sd=setenv bootargs ${bootargs} " \
+		"root=/dev/mmcblk0p2 rootwait\0" \
+	"bootargs_nand=setenv bootargs ${bootargs} " \
+		"ubi.mtd=5 rootfstype=" \
+				"ubifs root=ubi0:rootfs${active_workset}\0" \
+	"bootargs_ram=setenv bootargs ${bootargs} " \
+		"root=/dev/ram rw initrd=${ram_addr}\0" \
+	"bootargs_mtd=setenv bootargs ${bootargs} ${mtdparts}\0" \
+	"bootcmd_sd=run bootargs_base bootargs_sd bootargs_mtd; " \
+		"fatload mmc 0:2 ${dtbkernel_addr} ${dtbkernel_file}; " \
+		"bootm ${dtbkernel_addr}\0" \
+	"bootcmd_nand=sf probe;run bootargs_base bootargs_nand bootargs_mtd; " \
+		"ubi part dtbkernel; " \
+		"ubi readvol ${dtbkernel_addr} dtbkernel${active_workset}; " \
+		"led 0 on; " \
+		"bootm ${dtbkernel_addr}\0" \
+	"bootcmd_ram=run bootargs_base bootargs_ram bootargs_mtd; " \
+		"nand read ${fdt_addr} dtb; " \
+		"nand read ${kernel_addr} kernel; " \
+		"nand read ${ram_addr} root; " \
+		"bootz ${kernel_addr} ${ram_addr} ${fdt_addr}\0" \
+	"update_bootloader_from_sd=if fatload mmc 0:2 ${blimg_addr} " \
+		"${blimg_file}; " \
+		"then sf probe; " \
+		"mtdparts default; " \
+		"nand erase.part bootloader; " \
+		"nand write ${blimg_addr} bootloader ${filesize}; fi\0" \
+	"update_bootloader_from_tftp=if tftp ${blimg_addr} "\
+		"${tftpdir}${blimg_file}; "\
+		"then sf probe; " \
+		"mtdparts default; " \
+		"nand erase.part bootloader; " \
+		"nand write ${blimg_addr} bootloader ${filesize}; fi\0" \
+	"update_dtbkernel_from_sd=if fatload mmc 0:2 ${dtbkernel_addr} " \
+		"${dtbkernel_file}; " \
+		"then sf probe; " \
+		"ubi part dtbkernel; " \
+		"ubi write ${dtbkernel_addr} dtbkernel${active_workset} " \
+		"${filesize}; " \
+		"ubi detach; fi\0" \
+	"update_dtbkernel_from_tftp=if tftp ${dtbkernel_addr} " \
+		"${tftpdir}${dtbkernel_file}; " \
+		"then sf probe; " \
+		"ubi part dtbkernel; " \
+		"ubi write ${dtbkernel_addr} dtbkernel${active_workset} " \
+		"${filesize}; " \
+		"ubi detach; fi\0" \
+	"update_ramdisk_from_sd=if fatload mmc 0:2 ${ram_addr} " \
+		"${ram_file}; " \
+		"then sf probe; " \
+		"mtdparts default; " \
+		"nand erase.part initrd; " \
+		"nand write ${ram_addr} initrd ${filesize}; fi\0" \
+	"update_ramdisk_from_tftp=if tftp ${ram_addr} ${tftpdir}${ram_file}; " \
+		"then sf probe; " \
+		"nand erase.part initrd; " \
+		"nand write ${ram_addr} initrd ${filesize}; fi\0" \
+	"update_rootfs_from_sd=if fatload mmc 0:2 ${sys_addr} " \
+		"${filesys}; " \
+		"then sf probe; " \
+		"ubi part system; " \
+		"ubi write ${sys_addr} rootfs${active_workset} ${filesize}; " \
+		"ubi detach; fi\0" \
+	"update_rootfs_from_tftp=if tftp ${sys_addr} ${tftpdir}${filesys}; " \
+		"then sf probe; " \
+		"ubi part system; " \
+		"ubi write ${sys_addr} rootfs${active_workset} ${filesize}; " \
+		"ubi detach; fi\0" \
+	"active_workset=1\0"
+
+/* Miscellaneous configurable options */
+
+#define CONFIG_SYS_MEMTEST_START	0x80010000
+#define CONFIG_SYS_MEMTEST_END		0x87C00000
+
+#define CONFIG_SYS_LOAD_ADDR		CONFIG_LOADADDR
+
+/* Physical memory map */
+#define PHYS_SDRAM			(0x80000000)
+#define PHYS_SDRAM_SIZE		(SZ_512M)
+
+#define CONFIG_SYS_SDRAM_BASE		PHYS_SDRAM
+#define CONFIG_SYS_INIT_RAM_ADDR	IRAM_BASE_ADDR
+#define CONFIG_SYS_INIT_RAM_SIZE	IRAM_SIZE
 
-/* add NOR to MTD env */
+#define CONFIG_SYS_INIT_SP_OFFSET \
+	(CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
+#define CONFIG_SYS_INIT_SP_ADDR \
+	(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
 
-/* now include standard PCM052 config */
+#ifdef CONFIG_ENV_IS_IN_NAND
+#define CONFIG_ENV_SECT_SIZE	(SZ_128K)
+#define CONFIG_ENV_SIZE		(SZ_8K)
+#define CONFIG_ENV_OFFSET	0x200000
+#define CONFIG_ENV_SIZE_REDUND	(SZ_8K)
+#define CONFIG_ENV_OFFSET_REDUND	0x220000
+#endif
 
-#include "configs/pcm052.h"
+#endif /* __CONFIG_H */
-- 
2.11.0

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

* [U-Boot] [PATCH v4 16/22] pcm052: board: Remove in-board setup code (it is now replaced by DM setup)
  2019-02-13 21:46 [U-Boot] [PATCH v4 00/22] imx: vybrid: Update BK4 and PCM052 boards to only use DM/DTS Lukasz Majewski
                   ` (14 preceding siblings ...)
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 15/22] config: bk4: Update include/configs/bk4r1.h file Lukasz Majewski
@ 2019-02-13 21:46 ` Lukasz Majewski
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 17/22] config: bk4: Update u-boot script to support recovery via SD card Lukasz Majewski
                   ` (5 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-13 21:46 UTC (permalink / raw)
  To: u-boot

This commit cleans up the pcm052.c file to remove dead code after moving to
DTS and DM.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
---

Changes in v4: None
Changes in v3: None
Changes in v2: None

 board/phytec/pcm052/pcm052.c | 267 -------------------------------------------
 1 file changed, 267 deletions(-)

diff --git a/board/phytec/pcm052/pcm052.c b/board/phytec/pcm052/pcm052.c
index 95df0be6c1..4a18b0e0f4 100644
--- a/board/phytec/pcm052/pcm052.c
+++ b/board/phytec/pcm052/pcm052.c
@@ -13,79 +13,9 @@
 #include <asm/arch/ddrmc-vf610.h>
 #include <asm/arch/crm_regs.h>
 #include <asm/arch/clock.h>
-#include <mmc.h>
-#include <fsl_esdhc.h>
-#include <miiphy.h>
-#include <netdev.h>
-#include <i2c.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
-/*
- * Default DDR pad settings in arch/arm/include/asm/arch-vf610/iomux-vf610.h
- * do not match our settings. Let us (re)define our own settings here.
- */
-
-#define PCM052_VF610_DDR_PAD_CTRL	PAD_CTL_DSE_20ohm
-#define PCM052_VF610_DDR_PAD_CTRL_1	(PAD_CTL_DSE_20ohm | \
-					PAD_CTL_INPUT_DIFFERENTIAL)
-#define PCM052_VF610_DDR_RESET_PAD_CTL	(PAD_CTL_DSE_150ohm | \
-					PAD_CTL_PUS_100K_UP | \
-					PAD_CTL_INPUT_DIFFERENTIAL)
-
-enum {
-	PCM052_VF610_PAD_DDR_RESETB			= IOMUX_PAD(0x021c, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_RESET_PAD_CTL),
-	PCM052_VF610_PAD_DDR_A15__DDR_A_15		= IOMUX_PAD(0x0220, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_A14__DDR_A_14		= IOMUX_PAD(0x0224, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_A13__DDR_A_13		= IOMUX_PAD(0x0228, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_A12__DDR_A_12		= IOMUX_PAD(0x022c, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_A11__DDR_A_11		= IOMUX_PAD(0x0230, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_A10__DDR_A_10		= IOMUX_PAD(0x0234, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_A9__DDR_A_9		= IOMUX_PAD(0x0238, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_A8__DDR_A_8		= IOMUX_PAD(0x023c, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_A7__DDR_A_7		= IOMUX_PAD(0x0240, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_A6__DDR_A_6		= IOMUX_PAD(0x0244, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_A5__DDR_A_5		= IOMUX_PAD(0x0248, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_A4__DDR_A_4		= IOMUX_PAD(0x024c, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_A3__DDR_A_3		= IOMUX_PAD(0x0250, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_A2__DDR_A_2		= IOMUX_PAD(0x0254, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_A1__DDR_A_1		= IOMUX_PAD(0x0258, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_A0__DDR_A_0		= IOMUX_PAD(0x025c, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_BA2__DDR_BA_2		= IOMUX_PAD(0x0260, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_BA1__DDR_BA_1		= IOMUX_PAD(0x0264, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_BA0__DDR_BA_0		= IOMUX_PAD(0x0268, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_CAS__DDR_CAS_B		= IOMUX_PAD(0x026c, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_CKE__DDR_CKE_0		= IOMUX_PAD(0x0270, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_CLK__DDR_CLK_0		= IOMUX_PAD(0x0274, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL_1),
-	PCM052_VF610_PAD_DDR_CS__DDR_CS_B_0		= IOMUX_PAD(0x0278, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_D15__DDR_D_15		= IOMUX_PAD(0x027c, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_D14__DDR_D_14		= IOMUX_PAD(0x0280, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_D13__DDR_D_13		= IOMUX_PAD(0x0284, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_D12__DDR_D_12		= IOMUX_PAD(0x0288, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_D11__DDR_D_11		= IOMUX_PAD(0x028c, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_D10__DDR_D_10		= IOMUX_PAD(0x0290, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_D9__DDR_D_9		= IOMUX_PAD(0x0294, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_D8__DDR_D_8		= IOMUX_PAD(0x0298, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_D7__DDR_D_7		= IOMUX_PAD(0x029c, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_D6__DDR_D_6		= IOMUX_PAD(0x02a0, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_D5__DDR_D_5		= IOMUX_PAD(0x02a4, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_D4__DDR_D_4		= IOMUX_PAD(0x02a8, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_D3__DDR_D_3		= IOMUX_PAD(0x02ac, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_D2__DDR_D_2		= IOMUX_PAD(0x02b0, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_D1__DDR_D_1		= IOMUX_PAD(0x02b4, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_D0__DDR_D_0		= IOMUX_PAD(0x02b8, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_DQM1__DDR_DQM_1		= IOMUX_PAD(0x02bc, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_DQM0__DDR_DQM_0		= IOMUX_PAD(0x02c0, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_DQS1__DDR_DQS_1		= IOMUX_PAD(0x02c4, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL_1),
-	PCM052_VF610_PAD_DDR_DQS0__DDR_DQS_0		= IOMUX_PAD(0x02c8, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL_1),
-	PCM052_VF610_PAD_DDR_RAS__DDR_RAS_B		= IOMUX_PAD(0x02cc, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_WE__DDR_WE_B		= IOMUX_PAD(0x02d0, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_ODT1__DDR_ODT_0		= IOMUX_PAD(0x02d4, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_ODT0__DDR_ODT_1		= IOMUX_PAD(0x02d8, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_DDRBYTE1__DDR_DDRBYTE1	= IOMUX_PAD(0x02dc, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-	PCM052_VF610_PAD_DDR_DDRBYTE0__DDR_DDRBYTE0	= IOMUX_PAD(0x02e0, __NA_, 0, __NA_, 0, PCM052_VF610_DDR_PAD_CTRL),
-};
-
 static struct ddrmc_cr_setting pcm052_cr_settings[] = {
 	/* not in the datasheets, but in the original code */
 	{ 0x00002000, 105 },
@@ -154,59 +84,6 @@ static struct ddrmc_phy_setting pcm052_phy_settings[] = {
 
 int dram_init(void)
 {
-	static const iomux_v3_cfg_t pcm052_pads[] = {
-		PCM052_VF610_PAD_DDR_A15__DDR_A_15,
-		PCM052_VF610_PAD_DDR_A14__DDR_A_14,
-		PCM052_VF610_PAD_DDR_A13__DDR_A_13,
-		PCM052_VF610_PAD_DDR_A12__DDR_A_12,
-		PCM052_VF610_PAD_DDR_A11__DDR_A_11,
-		PCM052_VF610_PAD_DDR_A10__DDR_A_10,
-		PCM052_VF610_PAD_DDR_A9__DDR_A_9,
-		PCM052_VF610_PAD_DDR_A8__DDR_A_8,
-		PCM052_VF610_PAD_DDR_A7__DDR_A_7,
-		PCM052_VF610_PAD_DDR_A6__DDR_A_6,
-		PCM052_VF610_PAD_DDR_A5__DDR_A_5,
-		PCM052_VF610_PAD_DDR_A4__DDR_A_4,
-		PCM052_VF610_PAD_DDR_A3__DDR_A_3,
-		PCM052_VF610_PAD_DDR_A2__DDR_A_2,
-		PCM052_VF610_PAD_DDR_A1__DDR_A_1,
-		PCM052_VF610_PAD_DDR_A0__DDR_A_0,
-		PCM052_VF610_PAD_DDR_BA2__DDR_BA_2,
-		PCM052_VF610_PAD_DDR_BA1__DDR_BA_1,
-		PCM052_VF610_PAD_DDR_BA0__DDR_BA_0,
-		PCM052_VF610_PAD_DDR_CAS__DDR_CAS_B,
-		PCM052_VF610_PAD_DDR_CKE__DDR_CKE_0,
-		PCM052_VF610_PAD_DDR_CLK__DDR_CLK_0,
-		PCM052_VF610_PAD_DDR_CS__DDR_CS_B_0,
-		PCM052_VF610_PAD_DDR_D15__DDR_D_15,
-		PCM052_VF610_PAD_DDR_D14__DDR_D_14,
-		PCM052_VF610_PAD_DDR_D13__DDR_D_13,
-		PCM052_VF610_PAD_DDR_D12__DDR_D_12,
-		PCM052_VF610_PAD_DDR_D11__DDR_D_11,
-		PCM052_VF610_PAD_DDR_D10__DDR_D_10,
-		PCM052_VF610_PAD_DDR_D9__DDR_D_9,
-		PCM052_VF610_PAD_DDR_D8__DDR_D_8,
-		PCM052_VF610_PAD_DDR_D7__DDR_D_7,
-		PCM052_VF610_PAD_DDR_D6__DDR_D_6,
-		PCM052_VF610_PAD_DDR_D5__DDR_D_5,
-		PCM052_VF610_PAD_DDR_D4__DDR_D_4,
-		PCM052_VF610_PAD_DDR_D3__DDR_D_3,
-		PCM052_VF610_PAD_DDR_D2__DDR_D_2,
-		PCM052_VF610_PAD_DDR_D1__DDR_D_1,
-		PCM052_VF610_PAD_DDR_D0__DDR_D_0,
-		PCM052_VF610_PAD_DDR_DQM1__DDR_DQM_1,
-		PCM052_VF610_PAD_DDR_DQM0__DDR_DQM_0,
-		PCM052_VF610_PAD_DDR_DQS1__DDR_DQS_1,
-		PCM052_VF610_PAD_DDR_DQS0__DDR_DQS_0,
-		PCM052_VF610_PAD_DDR_RAS__DDR_RAS_B,
-		PCM052_VF610_PAD_DDR_WE__DDR_WE_B,
-		PCM052_VF610_PAD_DDR_ODT1__DDR_ODT_0,
-		PCM052_VF610_PAD_DDR_ODT0__DDR_ODT_1,
-		PCM052_VF610_PAD_DDR_DDRBYTE1__DDR_DDRBYTE1,
-		PCM052_VF610_PAD_DDR_DDRBYTE0__DDR_DDRBYTE0,
-		PCM052_VF610_PAD_DDR_RESETB,
-	};
-
 #if defined(CONFIG_TARGET_PCM052)
 
 	static const struct ddr3_jedec_timings pcm052_ddr_timings = {
@@ -323,8 +200,6 @@ int dram_init(void)
 
 #endif
 
-	imx_iomux_v3_setup_multiple_pads(pcm052_pads, ARRAY_SIZE(pcm052_pads));
-
 	ddrmc_ctrl_init_ddr3(&pcm052_ddr_timings, pcm052_cr_settings,
 			     pcm052_phy_settings, 1, row_diff);
 
@@ -333,135 +208,6 @@ int dram_init(void)
 	return 0;
 }
 
-static void setup_iomux_uart(void)
-{
-	static const iomux_v3_cfg_t uart1_pads[] = {
-		NEW_PAD_CTRL(VF610_PAD_PTB4__UART1_TX, VF610_UART_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTB5__UART1_RX, VF610_UART_PAD_CTRL),
-	};
-
-	imx_iomux_v3_setup_multiple_pads(uart1_pads, ARRAY_SIZE(uart1_pads));
-}
-
-#define ENET_PAD_CTRL	(PAD_CTL_PUS_47K_UP | PAD_CTL_SPEED_HIGH | \
-			PAD_CTL_DSE_50ohm | PAD_CTL_OBE_IBE_ENABLE)
-
-static void setup_iomux_enet(void)
-{
-	static const iomux_v3_cfg_t enet0_pads[] = {
-		NEW_PAD_CTRL(VF610_PAD_PTA6__RMII0_CLKIN, ENET_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTC1__RMII0_MDIO, ENET_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTC0__RMII0_MDC, ENET_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTC2__RMII0_CRS_DV, ENET_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTC3__RMII0_RD1, ENET_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTC4__RMII0_RD0, ENET_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTC5__RMII0_RXER, ENET_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTC6__RMII0_TD1, ENET_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTC7__RMII0_TD0, ENET_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTC8__RMII0_TXEN, ENET_PAD_CTRL),
-	};
-
-	imx_iomux_v3_setup_multiple_pads(enet0_pads, ARRAY_SIZE(enet0_pads));
-}
-
-/*
- * I2C2 is the only I2C used, on pads PTA22/PTA23.
- */
-
-static void setup_iomux_i2c(void)
-{
-	static const iomux_v3_cfg_t i2c_pads[] = {
-		VF610_PAD_PTA22__I2C2_SCL,
-		VF610_PAD_PTA23__I2C2_SDA,
-	};
-
-	imx_iomux_v3_setup_multiple_pads(i2c_pads, ARRAY_SIZE(i2c_pads));
-}
-
-#ifdef CONFIG_NAND_VF610_NFC
-static void setup_iomux_nfc(void)
-{
-	static const iomux_v3_cfg_t nfc_pads[] = {
-		VF610_PAD_PTD31__NF_IO15,
-		VF610_PAD_PTD30__NF_IO14,
-		VF610_PAD_PTD29__NF_IO13,
-		VF610_PAD_PTD28__NF_IO12,
-		VF610_PAD_PTD27__NF_IO11,
-		VF610_PAD_PTD26__NF_IO10,
-		VF610_PAD_PTD25__NF_IO9,
-		VF610_PAD_PTD24__NF_IO8,
-		VF610_PAD_PTD23__NF_IO7,
-		VF610_PAD_PTD22__NF_IO6,
-		VF610_PAD_PTD21__NF_IO5,
-		VF610_PAD_PTD20__NF_IO4,
-		VF610_PAD_PTD19__NF_IO3,
-		VF610_PAD_PTD18__NF_IO2,
-		VF610_PAD_PTD17__NF_IO1,
-		VF610_PAD_PTD16__NF_IO0,
-		VF610_PAD_PTB24__NF_WE_B,
-		VF610_PAD_PTB25__NF_CE0_B,
-		VF610_PAD_PTB27__NF_RE_B,
-		VF610_PAD_PTC26__NF_RB_B,
-		VF610_PAD_PTC27__NF_ALE,
-		VF610_PAD_PTC28__NF_CLE
-	};
-
-	imx_iomux_v3_setup_multiple_pads(nfc_pads, ARRAY_SIZE(nfc_pads));
-}
-#endif
-
-static void setup_iomux_qspi(void)
-{
-	static const iomux_v3_cfg_t qspi0_pads[] = {
-		VF610_PAD_PTD0__QSPI0_A_QSCK,
-		VF610_PAD_PTD1__QSPI0_A_CS0,
-		VF610_PAD_PTD2__QSPI0_A_DATA3,
-		VF610_PAD_PTD3__QSPI0_A_DATA2,
-		VF610_PAD_PTD4__QSPI0_A_DATA1,
-		VF610_PAD_PTD5__QSPI0_A_DATA0,
-		VF610_PAD_PTD7__QSPI0_B_QSCK,
-		VF610_PAD_PTD8__QSPI0_B_CS0,
-		VF610_PAD_PTD9__QSPI0_B_DATA3,
-		VF610_PAD_PTD10__QSPI0_B_DATA2,
-		VF610_PAD_PTD11__QSPI0_B_DATA1,
-		VF610_PAD_PTD12__QSPI0_B_DATA0,
-	};
-
-	imx_iomux_v3_setup_multiple_pads(qspi0_pads, ARRAY_SIZE(qspi0_pads));
-}
-
-#define ESDHC_PAD_CTRL	(PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_HIGH | \
-			PAD_CTL_DSE_20ohm | PAD_CTL_OBE_IBE_ENABLE)
-
-struct fsl_esdhc_cfg esdhc_cfg[1] = {
-	{ESDHC1_BASE_ADDR},
-};
-
-int board_mmc_getcd(struct mmc *mmc)
-{
-	/* eSDHC1 is always present */
-	return 1;
-}
-
-int board_mmc_init(bd_t *bis)
-{
-	static const iomux_v3_cfg_t esdhc1_pads[] = {
-		NEW_PAD_CTRL(VF610_PAD_PTA24__ESDHC1_CLK, ESDHC_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTA25__ESDHC1_CMD, ESDHC_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTA26__ESDHC1_DAT0, ESDHC_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTA27__ESDHC1_DAT1, ESDHC_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTA28__ESDHC1_DAT2, ESDHC_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTA29__ESDHC1_DAT3, ESDHC_PAD_CTRL),
-	};
-
-	esdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK);
-
-	imx_iomux_v3_setup_multiple_pads(
-		esdhc1_pads, ARRAY_SIZE(esdhc1_pads));
-
-	return fsl_esdhc_initialize(bis, &esdhc_cfg[0]);
-}
-
 static void clock_init(void)
 {
 	struct ccm_reg *ccm = (struct ccm_reg *)CCM_BASE_ADDR;
@@ -534,23 +280,10 @@ static void mscm_init(void)
 		writew(MSCM_IRSPRC_CP0_EN, &mscmir->irsprc[i]);
 }
 
-int board_phy_config(struct phy_device *phydev)
-{
-	if (phydev->drv->config)
-		phydev->drv->config(phydev);
-
-	return 0;
-}
-
 int board_early_init_f(void)
 {
 	clock_init();
 	mscm_init();
-	setup_iomux_uart();
-	setup_iomux_enet();
-	setup_iomux_i2c();
-	setup_iomux_qspi();
-	setup_iomux_nfc();
 
 	return 0;
 }
-- 
2.11.0

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

* [U-Boot] [PATCH v4 17/22] config: bk4: Update u-boot script to support recovery via SD card
  2019-02-13 21:46 [U-Boot] [PATCH v4 00/22] imx: vybrid: Update BK4 and PCM052 boards to only use DM/DTS Lukasz Majewski
                   ` (15 preceding siblings ...)
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 16/22] pcm052: board: Remove in-board setup code (it is now replaced by DM setup) Lukasz Majewski
@ 2019-02-13 21:46 ` Lukasz Majewski
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 18/22] config: bk4: Update u-boot envs to support NOR memories initial setup Lukasz Majewski
                   ` (4 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-13 21:46 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Lukasz Majewski <lukma@denx.de>
---

Changes in v4: None
Changes in v3: None
Changes in v2: None

 include/configs/bk4r1.h | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/include/configs/bk4r1.h b/include/configs/bk4r1.h
index bbd3e4e636..7bd3411ff2 100644
--- a/include/configs/bk4r1.h
+++ b/include/configs/bk4r1.h
@@ -189,6 +189,37 @@
 		"ubi part system; " \
 		"ubi write ${sys_addr} rootfs${active_workset} ${filesize}; " \
 		"ubi detach; fi\0" \
+	"setup_dtbkernel=nand erase.part dtbkernel; " \
+		"ubi part dtbkernel; " \
+		"ubi create dtbkernel1 972000 s; " \
+		"ubi create dtbkernel2 972000 s; " \
+		"ubi detach\0" \
+	"setup_system=nand erase.part system; " \
+		"ubi part system; " \
+		"ubi create rootfs1 15E15000 d; " \
+		"ubi create rootfs2 15E15000 d; " \
+		"ubi create userdata; " \
+		"ubi detach\0" \
+	"prepare_install_bk4r1_envs=" \
+		"echo 'Preparing envs for SD card recovery!';" \
+		"setenv ipaddr 192.168.0.99;" \
+		"setenv serverip 192.168.0.50;" \
+		"\0" \
+	"install_bk4r1rs="\
+		"led 0 on; " \
+		"nand erase.chip; mtdparts default; "\
+		"led 1 on; "\
+		"run setup_dtbkernel; " \
+		"run setup_system; " \
+		"led 2 on;" \
+		"run update_bootloader_from_sd; "\
+		"run update_dtbkernel_from_sd; "\
+		"run update_rootfs_from_sd; "\
+		"setenv bootcmd 'run bootcmd_nand'; "\
+		"saveenv; " \
+		"led 3 on; " \
+		"echo Finished - Please Power off, REMOVE SDCARD and set boot" \
+			"source to NAND\0" \
 	"active_workset=1\0"
 
 /* Miscellaneous configurable options */
-- 
2.11.0

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

* [U-Boot] [PATCH v4 18/22] config: bk4: Update u-boot envs to support NOR memories initial setup
  2019-02-13 21:46 [U-Boot] [PATCH v4 00/22] imx: vybrid: Update BK4 and PCM052 boards to only use DM/DTS Lukasz Majewski
                   ` (16 preceding siblings ...)
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 17/22] config: bk4: Update u-boot script to support recovery via SD card Lukasz Majewski
@ 2019-02-13 21:46 ` Lukasz Majewski
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 19/22] pcm052: bk4: sdcard: Add support for SD card booting/recovery Lukasz Majewski
                   ` (3 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-13 21:46 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Lukasz Majewski <lukma@denx.de>
---

Changes in v4: None
Changes in v3: None
Changes in v2: None

 include/configs/bk4r1.h | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/include/configs/bk4r1.h b/include/configs/bk4r1.h
index 7bd3411ff2..05ebb7d9c5 100644
--- a/include/configs/bk4r1.h
+++ b/include/configs/bk4r1.h
@@ -200,6 +200,24 @@
 		"ubi create rootfs2 15E15000 d; " \
 		"ubi create userdata; " \
 		"ubi detach\0" \
+	"setup_nor1=" BK4_NET_INIT \
+		"if tftp ${sys_addr} ${tftpdir}ubinor1.img; " \
+		"then sf probe 0:0; " \
+		"sf erase 0 01000000; " \
+		"mtdparts default; " \
+		"ubi part nor; " \
+		"ubi create nor1fs; " \
+		"ubi write ${sys_addr} nor1fs ${filesize}; " \
+		"ubi detach; fi\0" \
+	"setup_nor2=" BK4_NET_INIT \
+		"if tftp ${sys_addr} ${tftpdir}ubinor2.img; " \
+		"then sf probe 0:1; " \
+		"sf erase 0 01000000; " \
+		"mtdparts default; " \
+		"ubi part nor; " \
+		"ubi create nor2fs; " \
+		"ubi write ${sys_addr} nor2fs ${filesize}; " \
+		"ubi detach; fi\0" \
 	"prepare_install_bk4r1_envs=" \
 		"echo 'Preparing envs for SD card recovery!';" \
 		"setenv ipaddr 192.168.0.99;" \
-- 
2.11.0

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

* [U-Boot] [PATCH v4 19/22] pcm052: bk4: sdcard: Add support for SD card booting/recovery
  2019-02-13 21:46 [U-Boot] [PATCH v4 00/22] imx: vybrid: Update BK4 and PCM052 boards to only use DM/DTS Lukasz Majewski
                   ` (17 preceding siblings ...)
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 18/22] config: bk4: Update u-boot envs to support NOR memories initial setup Lukasz Majewski
@ 2019-02-13 21:46 ` Lukasz Majewski
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 20/22] pcm052: board: Add code to setup LED default states Lukasz Majewski
                   ` (2 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-13 21:46 UTC (permalink / raw)
  To: u-boot

This code allows reusing the default u-boot as in the late board init, the
default envs are restored and proper recovery scripts executed.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
---

Changes in v4: None
Changes in v3: None
Changes in v2: None

 arch/arm/cpu/armv7/vf610/Kconfig           |  1 +
 arch/arm/include/asm/arch-vf610/imx-regs.h |  2 ++
 board/phytec/pcm052/pcm052.c               | 32 ++++++++++++++++++++++++++++++
 3 files changed, 35 insertions(+)

diff --git a/arch/arm/cpu/armv7/vf610/Kconfig b/arch/arm/cpu/armv7/vf610/Kconfig
index 13905b5281..5d485a3ce2 100644
--- a/arch/arm/cpu/armv7/vf610/Kconfig
+++ b/arch/arm/cpu/armv7/vf610/Kconfig
@@ -23,6 +23,7 @@ config TARGET_BK4R1
 	bool "BK4r1"
 	select SYS_FSL_ERRATUM_ESDHC135
 	select SYS_FSL_ERRATUM_ESDHC_A001
+	select BOARD_LATE_INIT
 
 endchoice
 
diff --git a/arch/arm/include/asm/arch-vf610/imx-regs.h b/arch/arm/include/asm/arch-vf610/imx-regs.h
index 5d1f63c98b..ae0a187c4d 100644
--- a/arch/arm/include/asm/arch-vf610/imx-regs.h
+++ b/arch/arm/include/asm/arch-vf610/imx-regs.h
@@ -289,6 +289,8 @@
 #define SRC_SRSR_WDOG_M4				(0x1 << 4)
 #define SRC_SRSR_WDOG_A5				(0x1 << 3)
 #define SRC_SRSR_POR_RST				(0x1 << 0)
+#define SRC_SBMR1_BOOTCFG1_SDMMC        BIT(6)
+#define SRC_SBMR1_BOOTCFG1_MMC          BIT(4)
 #define SRC_SBMR2_BMOD_MASK             (0x3 << 24)
 #define SRC_SBMR2_BMOD_SHIFT            24
 #define SRC_SBMR2_BMOD_FUSES            0x0
diff --git a/board/phytec/pcm052/pcm052.c b/board/phytec/pcm052/pcm052.c
index 4a18b0e0f4..d4f170a503 100644
--- a/board/phytec/pcm052/pcm052.c
+++ b/board/phytec/pcm052/pcm052.c
@@ -13,6 +13,7 @@
 #include <asm/arch/ddrmc-vf610.h>
 #include <asm/arch/crm_regs.h>
 #include <asm/arch/clock.h>
+#include <environment.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -307,6 +308,37 @@ int board_init(void)
 	return 0;
 }
 
+#ifdef CONFIG_TARGET_BK4R1
+int board_late_init(void)
+{
+	struct src *psrc = (struct src *)SRC_BASE_ADDR;
+	u32 reg;
+
+	/*
+	 * BK4r1 handle emergency/service SD card boot
+	 * Checking the SBMR1 register BOOTCFG1 byte:
+	 * NAND:
+	 *      bit [2] - NAND data width - 16
+	 *	bit [5] - NAND fast boot
+	 *	bit [7] = 1 - NAND as a source of booting
+	 * SD card (0x64):
+	 *      bit [4] = 0 - SD card source
+	 *	bit [6] = 1 - SD/MMC source
+	 */
+
+	reg = readl(&psrc->sbmr1);
+	if ((reg & SRC_SBMR1_BOOTCFG1_SDMMC) &&
+	    !(reg & SRC_SBMR1_BOOTCFG1_MMC)) {
+		printf("------ SD card boot -------\n");
+		set_default_env("!LVFBootloader", 0);
+		env_set("bootcmd",
+			"run prepare_install_bk4r1_envs; run install_bk4r1rs");
+	}
+
+	return 0;
+}
+#endif /* CONFIG_TARGET_BK4R1 */
+
 int checkboard(void)
 {
 #ifdef CONFIG_TARGET_BK4R1
-- 
2.11.0

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

* [U-Boot] [PATCH v4 20/22] pcm052: board: Add code to setup LED default states
  2019-02-13 21:46 [U-Boot] [PATCH v4 00/22] imx: vybrid: Update BK4 and PCM052 boards to only use DM/DTS Lukasz Majewski
                   ` (18 preceding siblings ...)
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 19/22] pcm052: bk4: sdcard: Add support for SD card booting/recovery Lukasz Majewski
@ 2019-02-13 21:46 ` Lukasz Majewski
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 21/22] pcm052: mac: Provide board specific imx_get_mac_from_fuse() function Lukasz Majewski
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 22/22] pcm052: bk4: Add board_phy_config() for BK4 to setup ksz8081 phy Lukasz Majewski
  21 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-13 21:46 UTC (permalink / raw)
  To: u-boot

As one has moved to DM based LEDs, this code is required to setup the
default state.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
---

Changes in v4: None
Changes in v3: None
Changes in v2: None

 board/phytec/pcm052/pcm052.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/board/phytec/pcm052/pcm052.c b/board/phytec/pcm052/pcm052.c
index d4f170a503..721e25105a 100644
--- a/board/phytec/pcm052/pcm052.c
+++ b/board/phytec/pcm052/pcm052.c
@@ -13,6 +13,7 @@
 #include <asm/arch/ddrmc-vf610.h>
 #include <asm/arch/crm_regs.h>
 #include <asm/arch/clock.h>
+#include <led.h>
 #include <environment.h>
 
 DECLARE_GLOBAL_DATA_PTR;
@@ -314,6 +315,9 @@ int board_late_init(void)
 	struct src *psrc = (struct src *)SRC_BASE_ADDR;
 	u32 reg;
 
+	if (IS_ENABLED(CONFIG_LED))
+		led_default_state();
+
 	/*
 	 * BK4r1 handle emergency/service SD card boot
 	 * Checking the SBMR1 register BOOTCFG1 byte:
-- 
2.11.0

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

* [U-Boot] [PATCH v4 21/22] pcm052: mac: Provide board specific imx_get_mac_from_fuse() function
  2019-02-13 21:46 [U-Boot] [PATCH v4 00/22] imx: vybrid: Update BK4 and PCM052 boards to only use DM/DTS Lukasz Majewski
                   ` (19 preceding siblings ...)
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 20/22] pcm052: board: Add code to setup LED default states Lukasz Majewski
@ 2019-02-13 21:46 ` Lukasz Majewski
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 22/22] pcm052: bk4: Add board_phy_config() for BK4 to setup ksz8081 phy Lukasz Majewski
  21 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-13 21:46 UTC (permalink / raw)
  To: u-boot

This commit introduces the board specific function to read fused mac
address.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
---

Changes in v4: None
Changes in v3: None
Changes in v2: None

 board/phytec/pcm052/pcm052.c | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/board/phytec/pcm052/pcm052.c b/board/phytec/pcm052/pcm052.c
index 721e25105a..1e443a5850 100644
--- a/board/phytec/pcm052/pcm052.c
+++ b/board/phytec/pcm052/pcm052.c
@@ -310,6 +310,47 @@ int board_init(void)
 }
 
 #ifdef CONFIG_TARGET_BK4R1
+void imx_get_mac_from_fuse(int dev_id, unsigned char *mac)
+{
+	struct ocotp_regs *ocotp = (struct ocotp_regs *)OCOTP_BASE_ADDR;
+	struct fuse_bank *bank = &ocotp->bank[4];
+	struct fuse_bank4_regs *fuse =
+		(struct fuse_bank4_regs *)bank->fuse_regs;
+	u32 value;
+
+	/*
+	 * BK4 has different layout of stored MAC address
+	 * than one used in imx_get_mac_from_fuse() @ generic.c
+	 */
+
+	switch (dev_id) {
+	case 0:
+		value = readl(&fuse->mac_addr1);
+
+		mac[0] = value >> 8;
+		mac[1] = value;
+
+		value = readl(&fuse->mac_addr0);
+		mac[2] = value >> 24;
+		mac[3] = value >> 16;
+		mac[4] = value >> 8;
+		mac[5] = value;
+		break;
+	case 1:
+		value = readl(&fuse->mac_addr2);
+
+		mac[0] = value >> 24;
+		mac[1] = value >> 16;
+		mac[2] = value >> 8;
+		mac[3] = value;
+
+		value = readl(&fuse->mac_addr1);
+		mac[4] = value >> 24;
+		mac[5] = value >> 16;
+		break;
+	}
+}
+
 int board_late_init(void)
 {
 	struct src *psrc = (struct src *)SRC_BASE_ADDR;
-- 
2.11.0

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

* [U-Boot] [PATCH v4 22/22] pcm052: bk4: Add board_phy_config() for BK4 to setup ksz8081 phy
  2019-02-13 21:46 [U-Boot] [PATCH v4 00/22] imx: vybrid: Update BK4 and PCM052 boards to only use DM/DTS Lukasz Majewski
                   ` (20 preceding siblings ...)
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 21/22] pcm052: mac: Provide board specific imx_get_mac_from_fuse() function Lukasz Majewski
@ 2019-02-13 21:46 ` Lukasz Majewski
  2019-03-04 22:26   ` Joe Hershberger
  21 siblings, 1 reply; 654+ messages in thread
From: Lukasz Majewski @ 2019-02-13 21:46 UTC (permalink / raw)
  To: u-boot

BK4 requires setup of 50MHz reference clock for its KSZ8081 PHY devices.

Signed-off-by: Lukasz Majewski <lukma@denx.de>

---

Changes in v4: None
Changes in v3: None
Changes in v2: None

 board/phytec/pcm052/pcm052.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/board/phytec/pcm052/pcm052.c b/board/phytec/pcm052/pcm052.c
index 1e443a5850..c30df5df9d 100644
--- a/board/phytec/pcm052/pcm052.c
+++ b/board/phytec/pcm052/pcm052.c
@@ -15,6 +15,7 @@
 #include <asm/arch/clock.h>
 #include <led.h>
 #include <environment.h>
+#include <miiphy.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -382,6 +383,21 @@ int board_late_init(void)
 
 	return 0;
 }
+
+/**
+ * KSZ8081
+ */
+#define MII_KSZ8081_REFERENCE_CLOCK_SELECT	0x1f
+#define RMII_50MHz_CLOCK	0x8180
+
+int board_phy_config(struct phy_device *phydev)
+{
+	/* Set 50 MHz reference clock */
+	phy_write(phydev, MDIO_DEVAD_NONE, MII_KSZ8081_REFERENCE_CLOCK_SELECT,
+		  RMII_50MHz_CLOCK);
+
+	return genphy_config(phydev);
+}
 #endif /* CONFIG_TARGET_BK4R1 */
 
 int checkboard(void)
-- 
2.11.0

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

* [U-Boot] [PATCH v1 2/3] imx: serial_mxc: disable ri and dcd irq in dte mode
  2019-02-01 15:04 ` [U-Boot] [PATCH v1 2/3] imx: serial_mxc: disable ri and dcd irq in dte mode Marcel Ziswiler
@ 2019-02-15 12:26   ` Stefano Babic
  0 siblings, 0 replies; 654+ messages in thread
From: Stefano Babic @ 2019-02-15 12:26 UTC (permalink / raw)
  To: u-boot

Hi Marcel,

On 01/02/19 16:04, Marcel Ziswiler wrote:
> From: Max Krummenacher <max.krummenacher@toradex.com>
> 
> If the UART is used in DTE mode the RI and DCD bits in UCR3 become
> irq enable bits. Both are set to enabled after reset and both likely
> are pending.
> 
> Disable the bits to prevent an interrupt storm when Linux enables
> the UART interrupts.
> 
> Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> 
> ---
> 

I never seen this issue, but you fix looks plausible - I applied this to
my working branch and queued for next PR.

Regards,
Stefano

>  drivers/serial/serial_mxc.c | 13 +++++++++----
>  1 file changed, 9 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/serial/serial_mxc.c b/drivers/serial/serial_mxc.c
> index 7e4e6d36b8..df35ac9114 100644
> --- a/drivers/serial/serial_mxc.c
> +++ b/drivers/serial/serial_mxc.c
> @@ -138,13 +138,18 @@ struct mxc_uart {
>  	u32 ts;
>  };
>  
> -static void _mxc_serial_init(struct mxc_uart *base)
> +static void _mxc_serial_init(struct mxc_uart *base, int use_dte)
>  {
>  	writel(0, &base->cr1);
>  	writel(0, &base->cr2);
>  
>  	while (!(readl(&base->cr2) & UCR2_SRST));
>  
> +	if (use_dte)
> +		writel(0x404 | UCR3_ADNIMP, &base->cr3);
> +	else
> +		writel(0x704 | UCR3_ADNIMP, &base->cr3);
> +
>  	writel(0x704 | UCR3_ADNIMP, &base->cr3);
>  	writel(0x8000, &base->cr4);
>  	writel(0x2b, &base->esc);
> @@ -226,7 +231,7 @@ static int mxc_serial_tstc(void)
>   */
>  static int mxc_serial_init(void)
>  {
> -	_mxc_serial_init(mxc_base);
> +	_mxc_serial_init(mxc_base, false);
>  
>  	serial_setbrg();
>  
> @@ -271,7 +276,7 @@ static int mxc_serial_probe(struct udevice *dev)
>  {
>  	struct mxc_serial_platdata *plat = dev->platdata;
>  
> -	_mxc_serial_init(plat->reg);
> +	_mxc_serial_init(plat->reg, plat->use_dte);
>  
>  	return 0;
>  }
> @@ -367,7 +372,7 @@ static inline void _debug_uart_init(void)
>  {
>  	struct mxc_uart *base = (struct mxc_uart *)CONFIG_DEBUG_UART_BASE;
>  
> -	_mxc_serial_init(base);
> +	_mxc_serial_init(base, false);
>  	_mxc_serial_setbrg(base, CONFIG_DEBUG_UART_CLOCK,
>  			   CONFIG_BAUDRATE, false);
>  }
> 


-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [PATCH v4 01/20] common: spl_fit: Fix the spl_fit_image_get_os for FIT_IMAGE_TINY
  2019-02-01 16:40 ` [U-Boot] [PATCH v4 01/20] common: spl_fit: Fix the spl_fit_image_get_os for FIT_IMAGE_TINY Abel Vesa
                     ` (2 preceding siblings ...)
  2019-02-02  9:40   ` Fabio Estevam
@ 2019-02-16  9:23   ` Stefano Babic
  2019-02-18  8:27     ` Abel Vesa
  3 siblings, 1 reply; 654+ messages in thread
From: Stefano Babic @ 2019-02-16  9:23 UTC (permalink / raw)
  To: u-boot

Hi Abel,

On 01/02/19 17:40, Abel Vesa wrote:
> There is not really reducing codesize here since there is only
> a call. The function is always built in if CONFIG_$(SPL_TPL_)FIT is set.
> Plus, there was a change in behavior if CONFIG_SPL_OS_BOOT is defined.
> If CONFIG_FIT_IMAGE_TINY is defined, the spl_fit_image_get_os was
> returning -ENOTSUPP and then if CONFIG_SPL_OS_BOOT was also
> defined, the spl_image->os was left set to 0 which in turn
> was skipping the fdt appending resulting in boot-up failure.
> 

Really there is a difference in codesize, even if it looks like a side
effect. This patch breaks build for sun8i and sun50i due to increased
size. So I have to drop this patch and I applied the rest of the series
to u-boot-imx.

Best regards,
Stefano Babic

> Fixes: 337bbb6297775e spl: fit: add SPL_FIT_IMAGE_TINY config to reduce code-size
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> ---
>  common/spl/spl_fit.c | 4 ----
>  1 file changed, 4 deletions(-)
> 
> diff --git a/common/spl/spl_fit.c b/common/spl/spl_fit.c
> index db43626..a87d02d 100644
> --- a/common/spl/spl_fit.c
> +++ b/common/spl/spl_fit.c
> @@ -333,11 +333,7 @@ static int spl_fit_record_loadable(const void *fit, int images, int index,
>  
>  static int spl_fit_image_get_os(const void *fit, int noffset, uint8_t *os)
>  {
> -#if CONFIG_IS_ENABLED(FIT_IMAGE_TINY)
> -	return -ENOTSUPP;
> -#else
>  	return fit_image_get_os(fit, noffset, os);
> -#endif
>  }
>  
>  int spl_load_simple_fit(struct spl_image_info *spl_image,
> 

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,v4,18/20] board: mx6sabresd: Remove non-DM code
       [not found]   ` <peng.fan@nxp.com>
@ 2019-02-16 10:26     ` sbabic at denx.de
  2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 17/20] board: mx6sabreauto: Remove the " sbabic at denx.de
                       ` (18 subsequent siblings)
  19 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-02-16 10:26 UTC (permalink / raw)
  To: u-boot

> Since the mx6sabreauto has DM support, remove the unused non-DM code
> from mx6sabresd board file.
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Fabio Estevam <festevam@gmail.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v1, 3/3] imx: cpu.c: give access to reset cause in spl
       [not found]       ` <fabio.estevam@nxp.com>
                           ` (2 preceding siblings ...)
  2019-01-30  9:05         ` [U-Boot] ARM: imx: fix: Provide correct enum values for ONENAND/NOR boot recognition sbabic at denx.de
@ 2019-02-16 10:26         ` sbabic at denx.de
  2019-02-16 10:35         ` [U-Boot] [U-Boot, v2, 2/3] ddr: vybrid: Provide code to perform on-boot calibration sbabic at denx.de
                           ` (7 subsequent siblings)
  11 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-02-16 10:26 UTC (permalink / raw)
  To: u-boot

> From: Max Krummenacher <max.krummenacher@toradex.com>
> This makes get_imx_reset_cause() accessible in SPL, but keeps the SRSR
> register content intact so that U-Boot proper can evaluated the
> reset_cause again should this be needed.
> Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v4, 17/20] board: mx6sabreauto: Remove the non-DM code
       [not found]   ` <peng.fan@nxp.com>
  2019-02-16 10:26     ` [U-Boot] [U-Boot,v4,18/20] board: mx6sabresd: Remove non-DM code sbabic at denx.de
@ 2019-02-16 10:26     ` sbabic at denx.de
  2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 07/20] board: mx6sabresd: Add board_fit_config_name_match to support FIT in SPL sbabic at denx.de
                       ` (17 subsequent siblings)
  19 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-02-16 10:26 UTC (permalink / raw)
  To: u-boot

> Since the mx6sabreauto has DM support, remove the unused non-DM code
> from mx6sabreauto board file.
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Fabio Estevam <festevam@gmail.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v4, 07/20] board: mx6sabresd: Add board_fit_config_name_match to support FIT in SPL
       [not found]   ` <peng.fan@nxp.com>
  2019-02-16 10:26     ` [U-Boot] [U-Boot,v4,18/20] board: mx6sabresd: Remove non-DM code sbabic at denx.de
  2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 17/20] board: mx6sabreauto: Remove the " sbabic at denx.de
@ 2019-02-16 10:26     ` sbabic at denx.de
  2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 15/20] configs: mx6sabreauto: Add DM_SPI_FLASH necessary configs sbabic at denx.de
                       ` (16 subsequent siblings)
  19 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-02-16 10:26 UTC (permalink / raw)
  To: u-boot

> This matches one of the following three boards (or fails):
>  - imx6q-sabresd
>  - imx6qp-sabresd
>  - imx6dl-sabresd
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>
> Reviewed-by: Fabio Estevam <festevam@gmail.com>
> Reviewed-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  [U-Boot, v4, 15/20] configs: mx6sabreauto: Add DM_SPI_FLASH necessary configs
       [not found]   ` <peng.fan@nxp.com>
                       ` (2 preceding siblings ...)
  2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 07/20] board: mx6sabresd: Add board_fit_config_name_match to support FIT in SPL sbabic at denx.de
@ 2019-02-16 10:26     ` sbabic at denx.de
  2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 05/20] configs: imx6sabreauto: Add DM_USB support sbabic at denx.de
                       ` (15 subsequent siblings)
  19 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-02-16 10:26 UTC (permalink / raw)
  To: u-boot

> Enable all neceassary configs to support DM_SPI_FLASH on mx6sabreauto.
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>
> Reviewed-by: Fabio Estevam <festevam@gmail.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  [U-Boot, v1, 1/3] ARM: dts: i.MX6Q, i.MX6QDL: fix address/size-cells warnings
       [not found]   ` <trini@konsulko.com>
@ 2019-02-16 10:26     ` sbabic at denx.de
  0 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-02-16 10:26 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> This fixes the following warnings:
> arch/arm/dts/imx6-apalis.dtb: Warning (avoid_unnecessary_addr_size):
>  /clocks: unnecessary #address-cells/#size-cells without "ranges" or
>  child "reg" property
> arch/arm/dts/imx6-apalis.dtb: Warning (avoid_unnecessary_addr_size):
>  /soc/aips-bus at 02100000/mipi at 021e0000: unnecessary #address-cells/
>  #size-cells without "ranges" or child "reg" property
> arch/arm/dts/imx6-apalis.dtb: Warning (avoid_unnecessary_addr_size):
>  /soc/ipu at 02400000/port at 2: unnecessary #address-cells/#size-cells
>  without "ranges" or child "reg" property
> arch/arm/dts/imx6-apalis.dtb: Warning (avoid_unnecessary_addr_size):
>  /soc/ipu at 02400000/port at 3: unnecessary #address-cells/#size-cells
>  without "ranges" or child "reg" property
> arch/arm/dts/imx6-apalis.dtb: Warning (avoid_unnecessary_addr_size):
>  /soc/ipu at 02800000/port at 2: unnecessary #address-cells/#size-cells
>  without "ranges" or child "reg" property
> arch/arm/dts/imx6-apalis.dtb: Warning (avoid_unnecessary_addr_size):
>  /soc/ipu at 02800000/port at 3: unnecessary #address-cells/#size-cells
>  without "ranges" or child "reg" property
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v4, 05/20] configs: imx6sabreauto: Add DM_USB support
       [not found]   ` <peng.fan@nxp.com>
                       ` (3 preceding siblings ...)
  2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 15/20] configs: mx6sabreauto: Add DM_SPI_FLASH necessary configs sbabic at denx.de
@ 2019-02-16 10:26     ` sbabic at denx.de
  2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 06/20] mmc: fsl_esdhc: Fix DM_REGULATOR ifdefs for SPL builds sbabic at denx.de
                       ` (14 subsequent siblings)
  19 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-02-16 10:26 UTC (permalink / raw)
  To: u-boot

> Add the DM support for USB. For that, DM_REGULATOR is needed.
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Fabio Estevam <festevam@gmail.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  [U-Boot, v4, 06/20] mmc: fsl_esdhc: Fix DM_REGULATOR ifdefs for SPL builds
       [not found]   ` <peng.fan@nxp.com>
                       ` (4 preceding siblings ...)
  2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 05/20] configs: imx6sabreauto: Add DM_USB support sbabic at denx.de
@ 2019-02-16 10:26     ` sbabic at denx.de
  2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 09/20] arm: dts: Add all the imx6[q|qp|dl] sabre[auto|sd] u-boot dts[i] files sbabic at denx.de
                       ` (13 subsequent siblings)
  19 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-02-16 10:26 UTC (permalink / raw)
  To: u-boot

> Since the fsl_esdhc will also be used by SPL, make the
> preprocessor switches more generic to allow any kind of build.
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Fabio Estevam <festevam@gmail.com>
> Reviewed-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v4, 09/20] arm: dts: Add all the imx6[q|qp|dl] sabre[auto|sd] u-boot dts[i] files
       [not found]   ` <peng.fan@nxp.com>
                       ` (5 preceding siblings ...)
  2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 06/20] mmc: fsl_esdhc: Fix DM_REGULATOR ifdefs for SPL builds sbabic at denx.de
@ 2019-02-16 10:26     ` sbabic at denx.de
  2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 12/20] configs: mx6sabresd: Add SPL FIT and DM support sbabic at denx.de
                       ` (12 subsequent siblings)
  19 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-02-16 10:26 UTC (permalink / raw)
  To: u-boot

> This allows us to keep the basic dts[i] files up-to-date with
> the ones in kernel, but at the same time allowing the u-boot
> to add its own properties to the existing nodes.
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Fabio Estevam <festevam@gmail.com>
> Reviewed-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v4, 12/20] configs: mx6sabresd: Add SPL FIT and DM support
       [not found]   ` <peng.fan@nxp.com>
                       ` (6 preceding siblings ...)
  2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 09/20] arm: dts: Add all the imx6[q|qp|dl] sabre[auto|sd] u-boot dts[i] files sbabic at denx.de
@ 2019-02-16 10:26     ` sbabic at denx.de
  2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 04/20] configs: imx6sabreauto: Add DM_MMC support sbabic at denx.de
                       ` (11 subsequent siblings)
  19 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-02-16 10:26 UTC (permalink / raw)
  To: u-boot

> Enable all the necessary configs for SPL DM and FIT support for
> mx6sabresd.
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Fabio Estevam <festevam@gmail.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v4, 04/20] configs: imx6sabreauto: Add DM_MMC support
       [not found]   ` <peng.fan@nxp.com>
                       ` (7 preceding siblings ...)
  2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 12/20] configs: mx6sabresd: Add SPL FIT and DM support sbabic at denx.de
@ 2019-02-16 10:26     ` sbabic at denx.de
  2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 01/20] common: spl_fit: Fix the spl_fit_image_get_os for FIT_IMAGE_TINY sbabic at denx.de
                       ` (10 subsequent siblings)
  19 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-02-16 10:26 UTC (permalink / raw)
  To: u-boot

> Add DM_MMC config to imx6sabreauto defconfig.
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Fabio Estevam <festevam@gmail.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v4, 01/20] common: spl_fit: Fix the spl_fit_image_get_os for FIT_IMAGE_TINY
       [not found]   ` <peng.fan@nxp.com>
                       ` (8 preceding siblings ...)
  2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 04/20] configs: imx6sabreauto: Add DM_MMC support sbabic at denx.de
@ 2019-02-16 10:26     ` sbabic at denx.de
  2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 16/20] configs: mx6sabresd: Add DM_SPI_FLASH necessary configs sbabic at denx.de
                       ` (9 subsequent siblings)
  19 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-02-16 10:26 UTC (permalink / raw)
  To: u-boot

> There is not really reducing codesize here since there is only
> a call. The function is always built in if CONFIG_$(SPL_TPL_)FIT is set.
> Plus, there was a change in behavior if CONFIG_SPL_OS_BOOT is defined.
> If CONFIG_FIT_IMAGE_TINY is defined, the spl_fit_image_get_os was
> returning -ENOTSUPP and then if CONFIG_SPL_OS_BOOT was also
> defined, the spl_image->os was left set to 0 which in turn
> was skipping the fdt appending resulting in boot-up failure.
> Fixes: 337bbb6297775e spl: fit: add SPL_FIT_IMAGE_TINY config to reduce code-size
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Tom Rini <trini@konsulko.com>
> Tested-by: Lukasz Majewski <lukma@denx.de>
> Reviewed-by: Fabio Estevam <festevam@gmail.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  [U-Boot, v4, 16/20] configs: mx6sabresd: Add DM_SPI_FLASH necessary configs
       [not found]   ` <peng.fan@nxp.com>
                       ` (9 preceding siblings ...)
  2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 01/20] common: spl_fit: Fix the spl_fit_image_get_os for FIT_IMAGE_TINY sbabic at denx.de
@ 2019-02-16 10:26     ` sbabic at denx.de
  2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 19/20] board: mx6sabresd: Remove the enet reset gpio handling sbabic at denx.de
                       ` (8 subsequent siblings)
  19 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-02-16 10:26 UTC (permalink / raw)
  To: u-boot

> Enable all neceassary configs to support DM_SPI_FLASH on mx6sabresd.
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>
> Reviewed-by: Fabio Estevam <festevam@gmail.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  [U-Boot, v4, 19/20] board: mx6sabresd: Remove the enet reset gpio handling
       [not found]   ` <peng.fan@nxp.com>
                       ` (10 preceding siblings ...)
  2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 16/20] configs: mx6sabresd: Add DM_SPI_FLASH necessary configs sbabic at denx.de
@ 2019-02-16 10:26     ` sbabic at denx.de
  2019-02-16 10:35     ` [U-Boot] [U-Boot, v4, 03/20] usb: ehci-mx6: Make regulator DM_REGULATOR dependent sbabic at denx.de
                       ` (7 subsequent siblings)
  19 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-02-16 10:26 UTC (permalink / raw)
  To: u-boot

> Rely on the phy-reset-gpios which is set in imx6qdl-sabresd dtsi
> and get rid of the enet reset gpio handling from the board file.
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Fabio Estevam <festevam@gmail.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  [U-Boot, v4, 03/20] usb: ehci-mx6: Make regulator DM_REGULATOR dependent
       [not found]   ` <peng.fan@nxp.com>
                       ` (11 preceding siblings ...)
  2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 19/20] board: mx6sabresd: Remove the enet reset gpio handling sbabic at denx.de
@ 2019-02-16 10:35     ` sbabic at denx.de
  2019-02-16 10:35     ` [U-Boot] [U-Boot, v4, 20/20] configs: mx6sabresd: Reduce SPL size by disabling DOS, EXT and EFI support sbabic at denx.de
                       ` (6 subsequent siblings)
  19 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-02-16 10:35 UTC (permalink / raw)
  To: u-boot

> Do the regulator related work only if the build has the DM_REGULATOR.
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>
> Reviewed-by: Fabio Estevam <festevam@gmail.com>
> Reviewed-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v4, 20/20] configs: mx6sabresd: Reduce SPL size by disabling DOS, EXT and EFI support
       [not found]   ` <peng.fan@nxp.com>
                       ` (12 preceding siblings ...)
  2019-02-16 10:35     ` [U-Boot] [U-Boot, v4, 03/20] usb: ehci-mx6: Make regulator DM_REGULATOR dependent sbabic at denx.de
@ 2019-02-16 10:35     ` sbabic at denx.de
  2019-02-16 10:35     ` [U-Boot] [U-Boot,v4,13/20] mx6sabreauto: Add DM_GPIO support sbabic at denx.de
                       ` (5 subsequent siblings)
  19 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-02-16 10:35 UTC (permalink / raw)
  To: u-boot

> With DM and FIT enabled in SPL, there is an sram overflow. By disabling
> CONFIG_SPL_DOS_PARTITION, CONFIG_SPL_EXT_SUPPORT and
> CONFIG_SPL_EFI_PARTITION, we get to keep the 'one binary to fit all'
> for imx6[q|qp|dl] on sabresd since the final SPL image is now under 64KB.
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Fabio Estevam <festevam@gmail.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,v4,13/20] mx6sabreauto: Add DM_GPIO support
       [not found]   ` <peng.fan@nxp.com>
                       ` (13 preceding siblings ...)
  2019-02-16 10:35     ` [U-Boot] [U-Boot, v4, 20/20] configs: mx6sabresd: Reduce SPL size by disabling DOS, EXT and EFI support sbabic at denx.de
@ 2019-02-16 10:35     ` sbabic at denx.de
  2019-02-16 10:35     ` [U-Boot] [U-Boot, v4, 11/20] configs: mx6sabreauto: Add SPL FIT and DM support sbabic at denx.de
                       ` (4 subsequent siblings)
  19 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-02-16 10:35 UTC (permalink / raw)
  To: u-boot

> Add the DM_GPIO related config for mx6sabreauto.
> Also add the gpio request calls.
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>
> Reviewed-by: Fabio Estevam <festevam@gmail.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v4, 08/20] board: mx6sabreauto: Add board_fit_config_name_match to support FIT in SPL
       [not found]   ` <peng.fan@nxp.com>
                       ` (15 preceding siblings ...)
  2019-02-16 10:35     ` [U-Boot] [U-Boot, v4, 11/20] configs: mx6sabreauto: Add SPL FIT and DM support sbabic at denx.de
@ 2019-02-16 10:35     ` sbabic at denx.de
  2019-02-16 10:35     ` [U-Boot] [U-Boot, v4, 10/20] arm: dts: Update all the dts[i] files for imx6[q|qp|dl] sabre[auto|sd] sbabic at denx.de
                       ` (2 subsequent siblings)
  19 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-02-16 10:35 UTC (permalink / raw)
  To: u-boot

> This matches one of the following three boards (or fails):
>  - imx6q-sabreauto
>  - imx6qp-sabreauto
>  - imx6dl-sabreauto
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>
> Reviewed-by: Fabio Estevam <festevam@gmail.com>
> Reviewed-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v4, 10/20] arm: dts: Update all the dts[i] files for imx6[q|qp|dl] sabre[auto|sd]
       [not found]   ` <peng.fan@nxp.com>
                       ` (16 preceding siblings ...)
  2019-02-16 10:35     ` [U-Boot] [U-Boot, v4, 08/20] board: mx6sabreauto: Add board_fit_config_name_match to support FIT in SPL sbabic at denx.de
@ 2019-02-16 10:35     ` sbabic at denx.de
  2019-02-16 10:35     ` [U-Boot] [U-Boot,v4,14/20] mx6sabresd: Add DM_GPIO support sbabic at denx.de
  2019-02-16 10:45     ` [U-Boot] [U-Boot, v4, 02/20] usb: Rename SPL_USB_SUPPORT to SPL_USB_STORAGE sbabic at denx.de
  19 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-02-16 10:35 UTC (permalink / raw)
  To: u-boot

> Update all the dts[i] files for imx6[q|qp|dl] sabre[auto|sd] to the ones
> from kernel v4.20 (commit 8fe28cb58bcb2).
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Acked-by: Peng Fan <peng.fan@nxp.com>
> Reviewed-by: Fabio Estevam <festevam@gmail.com>
> Reviewed-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v4, 11/20] configs: mx6sabreauto: Add SPL FIT and DM support
       [not found]   ` <peng.fan@nxp.com>
                       ` (14 preceding siblings ...)
  2019-02-16 10:35     ` [U-Boot] [U-Boot,v4,13/20] mx6sabreauto: Add DM_GPIO support sbabic at denx.de
@ 2019-02-16 10:35     ` sbabic at denx.de
  2019-02-16 10:35     ` [U-Boot] [U-Boot, v4, 08/20] board: mx6sabreauto: Add board_fit_config_name_match to support FIT in SPL sbabic at denx.de
                       ` (3 subsequent siblings)
  19 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-02-16 10:35 UTC (permalink / raw)
  To: u-boot

> Enable all the necessary configs for SPL DM and FIT support for
> mx6sabreauto.
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Fabio Estevam <festevam@gmail.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  [U-Boot, v2, 2/3] ddr: vybrid: Provide code to perform on-boot calibration
       [not found]       ` <fabio.estevam@nxp.com>
                           ` (3 preceding siblings ...)
  2019-02-16 10:26         ` [U-Boot] [U-Boot, v1, 3/3] imx: cpu.c: give access to reset cause in spl sbabic at denx.de
@ 2019-02-16 10:35         ` sbabic at denx.de
  2019-02-16 10:45         ` [U-Boot] [U-Boot, v2, 1/3] ddr: vybrid: Add DDRMC calibration related registers (DQS to DQ) sbabic at denx.de
                           ` (6 subsequent siblings)
  11 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-02-16 10:35 UTC (permalink / raw)
  To: u-boot

> This patch provides the code to calibrate the DDR's
> DQS to DQ signals (RDLVL).
> It is based on:
> VFxxx Controller Reference Manual, Rev. 0, 10/2016, page 1600
> 10.1.6.16.4.1 "Software Read Leveling in MC Evaluation Mode"
> and NXP's community thread:
> "Vybrid: About DDR leveling feature on DDRMC."
> https://community.nxp.com/thread/395323
> Signed-off-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,v4,14/20] mx6sabresd: Add DM_GPIO support
       [not found]   ` <peng.fan@nxp.com>
                       ` (17 preceding siblings ...)
  2019-02-16 10:35     ` [U-Boot] [U-Boot, v4, 10/20] arm: dts: Update all the dts[i] files for imx6[q|qp|dl] sabre[auto|sd] sbabic at denx.de
@ 2019-02-16 10:35     ` sbabic at denx.de
  2019-02-16 10:45     ` [U-Boot] [U-Boot, v4, 02/20] usb: Rename SPL_USB_SUPPORT to SPL_USB_STORAGE sbabic at denx.de
  19 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-02-16 10:35 UTC (permalink / raw)
  To: u-boot

> Add the DM_GPIO related config for mx6sabresd.
> Also add the gpio request calls.
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>
> Reviewed-by: Fabio Estevam <festevam@gmail.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v1, 2/3] imx: serial_mxc: disable ri and dcd irq in dte mode
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (11 preceding siblings ...)
  2019-01-30  9:05         ` [U-Boot] [U-Boot, v2, 08/11] configs: colibri_imx7: enable CAAM driver sbabic at denx.de
@ 2019-02-16 10:35         ` sbabic at denx.de
  2019-03-13  9:28         ` [U-Boot] [U-Boot, v1, 25/26] colibri_imx6: added nreset gpio on reboot sbabic at denx.de
                           ` (63 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-02-16 10:35 UTC (permalink / raw)
  To: u-boot

> From: Max Krummenacher <max.krummenacher@toradex.com>
> If the UART is used in DTE mode the RI and DCD bits in UCR3 become
> irq enable bits. Both are set to enabled after reset and both likely
> are pending.
> Disable the bits to prevent an interrupt storm when Linux enables
> the UART interrupts.
> Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 3/3] ddr: vybrid: Add calibration code to memory controler's (DDRMC) setup code
       [not found]       ` <fabio.estevam@nxp.com>
                           ` (5 preceding siblings ...)
  2019-02-16 10:45         ` [U-Boot] [U-Boot, v2, 1/3] ddr: vybrid: Add DDRMC calibration related registers (DQS to DQ) sbabic at denx.de
@ 2019-02-16 10:45         ` sbabic at denx.de
       [not found]         ` <marek.vasut+renesas@gmail.com>
                           ` (4 subsequent siblings)
  11 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-02-16 10:45 UTC (permalink / raw)
  To: u-boot

> This patch extends the vf610 DDR memory controller code to support SW
> leveling.
> Signed-off-by: Lukasz Majewski <lukma@denx.de>
> Reviewed-by: Stefan Agner <stefan.agner@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 1/3] ddr: vybrid: Add DDRMC calibration related registers (DQS to DQ)
       [not found]       ` <fabio.estevam@nxp.com>
                           ` (4 preceding siblings ...)
  2019-02-16 10:35         ` [U-Boot] [U-Boot, v2, 2/3] ddr: vybrid: Provide code to perform on-boot calibration sbabic at denx.de
@ 2019-02-16 10:45         ` sbabic at denx.de
  2019-02-16 10:45         ` [U-Boot] [U-Boot, v2, 3/3] ddr: vybrid: Add calibration code to memory controler's (DDRMC) setup code sbabic at denx.de
                           ` (5 subsequent siblings)
  11 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-02-16 10:45 UTC (permalink / raw)
  To: u-boot

> This commit provides extra defines needed for DDR memory controller
> calibration (read leveling performing).
> Signed-off-by: Lukasz Majewski <lukma@denx.de>
> Reviewed-by: Stefan Agner <stefan.agner@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v4, 02/20] usb: Rename SPL_USB_SUPPORT to SPL_USB_STORAGE
       [not found]   ` <peng.fan@nxp.com>
                       ` (18 preceding siblings ...)
  2019-02-16 10:35     ` [U-Boot] [U-Boot,v4,14/20] mx6sabresd: Add DM_GPIO support sbabic at denx.de
@ 2019-02-16 10:45     ` sbabic at denx.de
  19 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-02-16 10:45 UTC (permalink / raw)
  To: u-boot

> Since there is the SPL_USB_HOST_SUPPORT for enabling USB support in SPL,
> makes more sense to rename the SPL_USB_SUPPORT as SPL_USB_STORAGE.
> Everything that is not part of the usb storage support in SPL is now
> build under SPL_USB_HOST_SUPPORT.
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Tom Rini <trini@konsulko.com>
> Reviewed-by: Fabio Estevam <festevam@gmail.com>
> Reviewed-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [PATCH v4 01/20] common: spl_fit: Fix the spl_fit_image_get_os for FIT_IMAGE_TINY
  2019-02-16  9:23   ` Stefano Babic
@ 2019-02-18  8:27     ` Abel Vesa
  0 siblings, 0 replies; 654+ messages in thread
From: Abel Vesa @ 2019-02-18  8:27 UTC (permalink / raw)
  To: u-boot

On 19-02-16 10:23:10, Stefano Babic wrote:
> Hi Abel,
> 
> On 01/02/19 17:40, Abel Vesa wrote:
> > There is not really reducing codesize here since there is only
> > a call. The function is always built in if CONFIG_$(SPL_TPL_)FIT is set.
> > Plus, there was a change in behavior if CONFIG_SPL_OS_BOOT is defined.
> > If CONFIG_FIT_IMAGE_TINY is defined, the spl_fit_image_get_os was
> > returning -ENOTSUPP and then if CONFIG_SPL_OS_BOOT was also
> > defined, the spl_image->os was left set to 0 which in turn
> > was skipping the fdt appending resulting in boot-up failure.
> > 
> 
> Really there is a difference in codesize, even if it looks like a side
> effect. This patch breaks build for sun8i and sun50i due to increased
> size. So I have to drop this patch and I applied the rest of the series
> to u-boot-imx.
> 

Ok then, but the real problem here is the fact that the spl_image->os remains
unset. And, as per the comment from the common/spl/spl_fit.c call site, the
fallback should be setting to IH_OS_U_BOOT. See below.

> Best regards,
> Stefano Babic
> 
> > Fixes: 337bbb6297775e spl: fit: add SPL_FIT_IMAGE_TINY config to reduce code-size
> > Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> > ---
> >  common/spl/spl_fit.c | 4 ----
> >  1 file changed, 4 deletions(-)
> > 
> > diff --git a/common/spl/spl_fit.c b/common/spl/spl_fit.c
> > index db43626..a87d02d 100644
> > --- a/common/spl/spl_fit.c
> > +++ b/common/spl/spl_fit.c
> > @@ -333,11 +333,7 @@ static int spl_fit_record_loadable(const void *fit, int images, int index,
> >  
> >  static int spl_fit_image_get_os(const void *fit, int noffset, uint8_t *os)
> >  {
#if CONFIG_IS_ENABLED(FIT_IMAGE_TINY)

So I guess we can keep as it was before but add the following line here then:
+	*os = IH_OS_U_BOOT;

Let me know if I'm missing something here.

	return -ENOTSUPP;
#else
 	return fit_image_get_os(fit, noffset, os);
#endif
> >  }
> >  
> >  int spl_load_simple_fit(struct spl_image_info *spl_image,
> > 
> 
> -- 
> =====================================================================
> 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] 654+ messages in thread

* [U-Boot] [PATCH 3/3] logos: Add the TechNexion's logo
  2018-12-11 18:40 ` [U-Boot] [PATCH 3/3] logos: Add the TechNexion's logo Otavio Salvador
@ 2019-02-18 22:53   ` Fabio Estevam
  2019-03-20 17:39     ` Fabio Estevam
  0 siblings, 1 reply; 654+ messages in thread
From: Fabio Estevam @ 2019-02-18 22:53 UTC (permalink / raw)
  To: u-boot

Hi Stefano,

On Tue, Dec 11, 2018 at 4:41 PM Otavio Salvador <otavio@ossystems.com.br> wrote:
>
> From: Fabio Estevam <festevam@gmail.com>
>
> Add the TechNexion's logo from their internal U-Boot tree.
>
> Signed-off-by: Fabio Estevam <festevam@gmail.com>
> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
> ---
>
>  tools/logos/technexion.bmp | Bin 0 -> 22390 bytes
>  1 file changed, 0 insertions(+), 0 deletions(-)
>  create mode 100644 tools/logos/technexion.bmp

I noticed this patch has not been applied.

Maybe a patchwork bug?

Could you please consider applying it?

Thanks

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

* [U-Boot] [PATCH v2 11/23] apalis_imx6: migrate mmc and sata to using driver model
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 11/23] apalis_imx6: migrate mmc and sata " Marcel Ziswiler
@ 2019-02-25 10:39   ` Soeren Moch
  2019-03-01 12:20     ` Soeren Moch
  0 siblings, 1 reply; 654+ messages in thread
From: Soeren Moch @ 2019-02-25 10:39 UTC (permalink / raw)
  To: u-boot



On 08.02.19 18:12, Marcel Ziswiler wrote:
> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>
> Migrate MMC and SATA to using driver model.
>
> While at it also enable SCSI driver model.
>
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
[also reply to v2 of this series to avoid that this gets lost in patchwork]

Hi Marcel,

Thank you for providing this solution to keep SATA working on i.MX6
under DM_SCSI.
I also want to use this on a tbs2910 board, there was a long list of
other boards needing this functionality [1].

Can you implement the UCLASS at a more general place, e.g.
drivers/ata/dwc_ahsata.c directly, instead of your board file? So this
functionality could easily be enabled for other boards.

Thank you,
Soeren

[1] https://lists.denx.de/pipermail/u-boot/2018-November/349368.html

> ---
>
> Changes in v2: None
>
>  board/toradex/apalis_imx6/apalis_imx6.c | 98 +++++++++++++++----------
>  configs/apalis_imx6_defconfig           |  3 +
>  include/configs/apalis_imx6.h           |  3 -
>  3 files changed, 61 insertions(+), 43 deletions(-)
>
> diff --git a/board/toradex/apalis_imx6/apalis_imx6.c b/board/toradex/apalis_imx6/apalis_imx6.c
> index 2c16c31021..db06c4e064 100644
> --- a/board/toradex/apalis_imx6/apalis_imx6.c
> +++ b/board/toradex/apalis_imx6/apalis_imx6.c
> @@ -9,6 +9,7 @@
>  #include <common.h>
>  #include <dm.h>
>
> +#include <ahci.h>
>  #include <asm/arch/clock.h>
>  #include <asm/arch/crm_regs.h>
>  #include <asm/arch/imx-regs.h>
> @@ -22,7 +23,9 @@
>  #include <asm/mach-imx/iomux-v3.h>
>  #include <asm/mach-imx/sata.h>
>  #include <asm/mach-imx/video.h>
> +#include <dm/device-internal.h>
>  #include <dm/platform_data/serial_mxc.h>
> +#include <dwc_ahsata.h>
>  #include <environment.h>
>  #include <fsl_esdhc.h>
>  #include <imx_thermal.h>
> @@ -60,6 +63,8 @@ DECLARE_GLOBAL_DATA_PTR;
>
>  #define OUTPUT_RGB (PAD_CTL_SPEED_MED|PAD_CTL_DSE_60ohm|PAD_CTL_SRE_FAST)
>
> +#define APALIS_IMX6_SATA_INIT_RETRIES	10
> +
>  int dram_init(void)
>  {
>  	/* use the DDR controllers configured size */
> @@ -79,6 +84,7 @@ iomux_v3_cfg_t const uart1_pads_dte[] = {
>  	MX6_PAD_CSI0_DAT11__UART1_TX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL),
>  };
>
> +#if defined(CONFIG_FSL_ESDHC) && defined(CONFIG_SPL_BUILD)
>  /* Apalis MMC1 */
>  iomux_v3_cfg_t const usdhc1_pads[] = {
>  	MX6_PAD_SD1_CLK__SD1_CLK   | MUX_PAD_CTRL(USDHC_PAD_CTRL),
> @@ -121,6 +127,7 @@ iomux_v3_cfg_t const usdhc3_pads[] = {
>  	MX6_PAD_SD3_DAT7__SD3_DATA7 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
>  	MX6_PAD_SD3_RST__GPIO7_IO08 | MUX_PAD_CTRL(WEAK_PULLUP) | MUX_MODE_SION,
>  };
> +#endif /* CONFIG_FSL_ESDHC & CONFIG_SPL_BUILD */
>
>  int mx6_rgmii_rework(struct phy_device *phydev)
>  {
> @@ -288,7 +295,7 @@ int board_ehci_power(int port, int on)
>  }
>  #endif
>
> -#ifdef CONFIG_FSL_ESDHC
> +#if defined(CONFIG_FSL_ESDHC) && defined(CONFIG_SPL_BUILD)
>  /* use the following sequence: eMMC, MMC1, SD1 */
>  struct fsl_esdhc_cfg usdhc_cfg[CONFIG_SYS_FSL_USDHC_NUM] = {
>  	{USDHC3_BASE_ADDR},
> @@ -319,43 +326,6 @@ int board_mmc_getcd(struct mmc *mmc)
>
>  int board_mmc_init(bd_t *bis)
>  {
> -#ifndef CONFIG_SPL_BUILD
> -	s32 status = 0;
> -	u32 index = 0;
> -
> -	usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK);
> -	usdhc_cfg[1].sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK);
> -	usdhc_cfg[2].sdhc_clk = mxc_get_clock(MXC_ESDHC2_CLK);
> -
> -	usdhc_cfg[0].max_bus_width = 8;
> -	usdhc_cfg[1].max_bus_width = 8;
> -	usdhc_cfg[2].max_bus_width = 4;
> -
> -	for (index = 0; index < CONFIG_SYS_FSL_USDHC_NUM; ++index) {
> -		switch (index) {
> -		case 0:
> -			imx_iomux_v3_setup_multiple_pads(
> -				usdhc3_pads, ARRAY_SIZE(usdhc3_pads));
> -			break;
> -		case 1:
> -			imx_iomux_v3_setup_multiple_pads(
> -				usdhc1_pads, ARRAY_SIZE(usdhc1_pads));
> -			break;
> -		case 2:
> -			imx_iomux_v3_setup_multiple_pads(
> -				usdhc2_pads, ARRAY_SIZE(usdhc2_pads));
> -			break;
> -		default:
> -			printf("Warning: you configured more USDHC controllers (%d) then supported by the board (%d)\n",
> -			       index + 1, CONFIG_SYS_FSL_USDHC_NUM);
> -			return status;
> -		}
> -
> -		status |= fsl_esdhc_initialize(bis, &usdhc_cfg[index]);
> -	}
> -
> -	return status;
> -#else /* CONFIG_SPL_BUILD */
>  	struct src *psrc = (struct src *)SRC_BASE_ADDR;
>  	unsigned reg = readl(&psrc->sbmr1) >> 11;
>  	/*
> @@ -394,9 +364,8 @@ int board_mmc_init(bd_t *bis)
>  	}
>
>  	return fsl_esdhc_initialize(bis, &usdhc_cfg[0]);
> -#endif /* CONFIG_SPL_BUILD */
>  }
> -#endif /* CONFIG_FSL_ESDHC */
> +#endif /* CONFIG_FSL_ESDHC & CONFIG_SPL_BUILD */
>
>  int board_phy_config(struct phy_device *phydev)
>  {
> @@ -1162,3 +1131,52 @@ U_BOOT_DEVICE(mxc_serial) = {
>  	.name = "serial_mxc",
>  	.platdata = &mxc_serial_plat,
>  };
> +
> +#if CONFIG_IS_ENABLED(AHCI)
> +static int sata_imx_probe(struct udevice *dev)
> +{
> +	int i, err;
> +
> +	for (i = 0; i < APALIS_IMX6_SATA_INIT_RETRIES; i++) {
> +		err = setup_sata();
> +		if (err) {
> +			printf("SATA setup failed: %d\n", err);
> +			return err;
> +		}
> +
> +		udelay(100);
> +
> +		err = dwc_ahsata_probe(dev);
> +		if (!err)
> +			break;
> +
> +		/* There is no device on the SATA port */
> +		if (sata_dm_port_status(0, 0) == 0)
> +			break;
> +
> +		/* There's a device, but link not established. Retry */
> +		device_remove(dev, DM_REMOVE_NORMAL);
> +	}
> +
> +	return 0;
> +}
> +
> +struct ahci_ops sata_imx_ops = {
> +	.port_status = dwc_ahsata_port_status,
> +	.reset	= dwc_ahsata_bus_reset,
> +	.scan	= dwc_ahsata_scan,
> +};
> +
> +static const struct udevice_id sata_imx_ids[] = {
> +	{ .compatible = "fsl,imx6q-ahci" },
> +	{ }
> +};
> +
> +U_BOOT_DRIVER(sata_imx) = {
> +	.name		= "dwc_ahci",
> +	.id		= UCLASS_AHCI,
> +	.of_match	= sata_imx_ids,
> +	.ops		= &sata_imx_ops,
> +	.probe		= sata_imx_probe,
> +};
> +#endif /* AHCI */
> diff --git a/configs/apalis_imx6_defconfig b/configs/apalis_imx6_defconfig
> index 7e973ded74..510161ad32 100644
> --- a/configs/apalis_imx6_defconfig
> +++ b/configs/apalis_imx6_defconfig
> @@ -9,6 +9,7 @@ CONFIG_SPL_MMC_SUPPORT=y
>  CONFIG_SPL_SERIAL_SUPPORT=y
>  CONFIG_SPL=y
>  CONFIG_CMD_HDMIDETECT=y
> +CONFIG_AHCI=y
>  CONFIG_DISTRO_DEFAULTS=y
>  CONFIG_NR_DRAM_BANKS=1
>  CONFIG_FIT=y
> @@ -55,6 +56,7 @@ CONFIG_DWC_AHSATA=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DM_GPIO=y
>  CONFIG_DM_I2C=y
> +CONFIG_DM_MMC=y
>  CONFIG_FSL_ESDHC=y
>  CONFIG_PHYLIB=y
>  CONFIG_PHY_MICREL=y
> @@ -67,6 +69,7 @@ CONFIG_DM_PMIC_PFUZE100=y
>  CONFIG_DM_REGULATOR=y
>  CONFIG_DM_REGULATOR_PFUZE100=y
>  CONFIG_DM_REGULATOR_FIXED=y
> +CONFIG_DM_SCSI=y
>  CONFIG_IMX_THERMAL=y
>  CONFIG_USB=y
>  CONFIG_USB_KEYBOARD=y
> diff --git a/include/configs/apalis_imx6.h b/include/configs/apalis_imx6.h
> index 5ab009c8f3..6b20d1e104 100644
> --- a/include/configs/apalis_imx6.h
> +++ b/include/configs/apalis_imx6.h
> @@ -57,9 +57,6 @@
>   * SATA Configs
>   */
>  #ifdef CONFIG_CMD_SATA
> -#define CONFIG_SYS_SATA_MAX_DEVICE	1
> -#define CONFIG_DWC_AHSATA_PORT_ID	0
> -#define CONFIG_DWC_AHSATA_BASE_ADDR	SATA_ARB_BASE_ADDR
>  #define CONFIG_LBA48
>  #endif
>

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

* [U-Boot] [PATCH 1/2] tools/imx8m_image.sh: remove bashism
  2019-01-02  6:58 [U-Boot] [PATCH 1/2] tools/imx8m_image.sh: remove bashism Baruch Siach
  2019-01-02  6:58 ` [U-Boot] [PATCH 2/2] imx8mq_evk/README: remove ARCH environment variable Baruch Siach
  2019-01-03 13:41 ` [U-Boot] [PATCH 1/2] tools/imx8m_image.sh: remove bashism Christopher Spencer
@ 2019-02-28  1:43 ` Fabio Estevam
  2019-02-28  4:23   ` Baruch Siach
  2019-04-01 13:20   ` Otavio Salvador
  2 siblings, 2 replies; 654+ messages in thread
From: Fabio Estevam @ 2019-02-28  1:43 UTC (permalink / raw)
  To: u-boot

Hi Baruch and Stefano,

On Wed, Jan 2, 2019 at 4:59 AM Baruch Siach <baruch@tkos.co.il> wrote:
>
> Use a single '=' to test string equality for compatibility with non-bash
> shells. Otherwise, if /bin/sh is dash, build fails:
>
> ./tools/imx8m_image.sh: 15: [: signed_hdmi_imx8m.bin: unexpected operator
> ./tools/imx8m_image.sh: 15: [: signed_hdmi_imx8m.bin: unexpected operator
> ./tools/imx8m_image.sh: 15: [: spl/u-boot-spl-ddr.bin: unexpected operator
> ./tools/imx8m_image.sh: 15: [: spl/u-boot-spl-ddr.bin: unexpected operator
> WARNING './spl/u-boot-spl-ddr.bin' not found, resulting binary is not-functional
>
> Signed-off-by: Baruch Siach <baruch@tkos.co.il>

I don't see this patch applied yet.

Do we have other solution?

Thanks

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

* [U-Boot] [PATCH 1/2] tools/imx8m_image.sh: remove bashism
  2019-02-28  1:43 ` Fabio Estevam
@ 2019-02-28  4:23   ` Baruch Siach
  2019-04-01 13:20   ` Otavio Salvador
  1 sibling, 0 replies; 654+ messages in thread
From: Baruch Siach @ 2019-02-28  4:23 UTC (permalink / raw)
  To: u-boot

Hi Fabio,

On Thu, Feb 28 2019, Fabio Estevam wrote:
> On Wed, Jan 2, 2019 at 4:59 AM Baruch Siach <baruch@tkos.co.il> wrote:
>>
>> Use a single '=' to test string equality for compatibility with non-bash
>> shells. Otherwise, if /bin/sh is dash, build fails:
>>
>> ./tools/imx8m_image.sh: 15: [: signed_hdmi_imx8m.bin: unexpected operator
>> ./tools/imx8m_image.sh: 15: [: signed_hdmi_imx8m.bin: unexpected operator
>> ./tools/imx8m_image.sh: 15: [: spl/u-boot-spl-ddr.bin: unexpected operator
>> ./tools/imx8m_image.sh: 15: [: spl/u-boot-spl-ddr.bin: unexpected operator
>> WARNING './spl/u-boot-spl-ddr.bin' not found, resulting binary is not-functional
>>
>> Signed-off-by: Baruch Siach <baruch@tkos.co.il>
>
> I don't see this patch applied yet.
>
> Do we have other solution?

Stefano suggested an alternative in reply to the other patch:

  https://lists.denx.de/pipermail/u-boot/2019-January/356941.html

baruch

-- 
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -

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

* [U-Boot] [PATCH v4 19/20] board: mx6sabresd: Remove the enet reset gpio handling
  2019-02-02  9:48   ` Fabio Estevam
@ 2019-02-28 19:01     ` Soeren Moch
  2019-02-28 19:24       ` Fabio Estevam
  0 siblings, 1 reply; 654+ messages in thread
From: Soeren Moch @ 2019-02-28 19:01 UTC (permalink / raw)
  To: u-boot



On 02.02.19 10:48, Fabio Estevam wrote:
> On Fri, Feb 1, 2019 at 2:53 PM Abel Vesa <abel.vesa@nxp.com> wrote:
>> Rely on the phy-reset-gpios which is set in imx6qdl-sabresd dtsi
>> and get rid of the enet reset gpio handling from the board file.
>>
>> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Reviewed-by: Fabio Estevam <festevam@gmail.com>
Fabio,

I tried to understand this patch, in order to also apply it  for the
tbs2910 board.
What I read from the fec_mxc driver, this only works with DM_ETH
enabled, but this is not enabled for mx6sabresd.

Can you point me to what I miss here?

Thanks,
Soeren

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

* [U-Boot] [PATCH v4 19/20] board: mx6sabresd: Remove the enet reset gpio handling
  2019-02-28 19:01     ` Soeren Moch
@ 2019-02-28 19:24       ` Fabio Estevam
  0 siblings, 0 replies; 654+ messages in thread
From: Fabio Estevam @ 2019-02-28 19:24 UTC (permalink / raw)
  To: u-boot

Hi Soeren,

On Thu, Feb 28, 2019 at 4:01 PM Soeren Moch <smoch@web.de> wrote:

> Fabio,
>
> I tried to understand this patch, in order to also apply it  for the
> tbs2910 board.
> What I read from the fec_mxc driver, this only works with DM_ETH
> enabled, but this is not enabled for mx6sabresd.

Good catch. DM_ETH needs to be enabled for mx6sabresd.

However, I noticed that when using U-Boot master I can not boot
mx6sabresd anymore:

U-Boot SPL 2019.04-rc2-00134-g783e66816d (Feb 28 2019 - 16:17:32 -0300)
Trying to boot from MMC1

(It hangs here)

Abel, Peng,

Could you please take a look at this?

Thanks

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

* [U-Boot] [PATCH 00/10] tbs2910 fixes and driver model conversion
@ 2019-03-01 12:10 Soeren Moch
  2019-03-01 12:10 ` [U-Boot] [PATCH 01/10] board: tbs2910: Fix default environment Soeren Moch
                   ` (9 more replies)
  0 siblings, 10 replies; 654+ messages in thread
From: Soeren Moch @ 2019-03-01 12:10 UTC (permalink / raw)
  To: u-boot

DM_MMC activates BLK, so we have to convert dwc_ahsata to AHCI before.

Soeren Moch (10):
  board: tbs2910: Fix default environment
  board: tbs2910: Remove efi loader support in defconfig to reduce
    u-boot size
  board: tbs2910: Add device tree
  board: tbs2910: Add pinctrl driver and convert gpio to driver model
  board: tbs2910: Convert usb to driver model
  board: tbs2910: Convert i2c and rtc to driver model
  ata: dwc_ahsata: Fix sector reports for large disks
  ata: dwc_ahsata: Add ahci driver model support
  board: tbs2910: Convert sata to ahci driver model
  board: tbs2910: Convert mmc to driver model

 arch/arm/dts/imx6q-tbs2910.dts | 394 +++++++++++++++++++++++++++++++++
 board/tbs/tbs2910/MAINTAINERS  |   1 +
 board/tbs/tbs2910/tbs2910.c    | 184 +--------------
 configs/cm_fx6_defconfig       |   1 +
 configs/tbs2910_defconfig      |  18 +-
 drivers/ata/Kconfig            |   8 +
 drivers/ata/dwc_ahsata.c       |  38 +++-
 include/configs/tbs2910.h      |  38 +---
 8 files changed, 455 insertions(+), 227 deletions(-)
 create mode 100644 arch/arm/dts/imx6q-tbs2910.dts

--
2.17.1

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

* [U-Boot] [PATCH 01/10] board: tbs2910: Fix default environment
  2019-03-01 12:10 [U-Boot] [PATCH 00/10] tbs2910 fixes and driver model conversion Soeren Moch
@ 2019-03-01 12:10 ` Soeren Moch
  2019-03-14 19:16   ` Soeren Moch
  2019-03-01 12:10 ` [U-Boot] [PATCH 02/10] board: tbs2910: Remove efi loader support in defconfig to reduce u-boot size Soeren Moch
                   ` (8 subsequent siblings)
  9 siblings, 1 reply; 654+ messages in thread
From: Soeren Moch @ 2019-03-01 12:10 UTC (permalink / raw)
  To: u-boot

Especially fix usb keyboard support. Other changes are only for
beautification.

Signed-off-by: Soeren Moch <smoch@web.de>
---
Cc: Stefano Babic <sbabic@denx.de>
Cc: u-boot at lists.denx.de
---
 include/configs/tbs2910.h | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/include/configs/tbs2910.h b/include/configs/tbs2910.h
index 2d4b9c9bfe..b06c90939c 100644
--- a/include/configs/tbs2910.h
+++ b/include/configs/tbs2910.h
@@ -94,7 +94,7 @@
 		"run set_con_hdmi; " \
 	"else " \
 		"run set_con_serial; " \
-	"fi;"
+	"fi"
 #endif /* CONFIG_USB_KEYBOARD */
 #endif /* CONFIG_CMD_USB      */

@@ -142,12 +142,12 @@
 	"console=ttymxc0\0" \
 	"fan=gpio set 92\0" \
 	"set_con_serial=setenv stdout serial; " \
-			"setenv stderr serial;\0" \
+			"setenv stderr serial\0" \
 	"set_con_hdmi=setenv stdout serial,vga; " \
-			"setenv stderr serial,vga;\0" \
-	"stderr=serial,vga;\0" \
-	"stdin=serial,usbkbd;\0" \
-	"stdout=serial,vga;\0"
+			"setenv stderr serial,vga\0" \
+	"stderr=serial,vga\0" \
+	"stdin=serial,usbkbd\0" \
+	"stdout=serial,vga\0"

 #define CONFIG_BOOTCOMMAND \
 	"mmc rescan; " \
--
2.17.1

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

* [U-Boot] [PATCH 02/10] board: tbs2910: Remove efi loader support in defconfig to reduce u-boot size
  2019-03-01 12:10 [U-Boot] [PATCH 00/10] tbs2910 fixes and driver model conversion Soeren Moch
  2019-03-01 12:10 ` [U-Boot] [PATCH 01/10] board: tbs2910: Fix default environment Soeren Moch
@ 2019-03-01 12:10 ` Soeren Moch
  2019-04-01  8:59   ` [U-Boot] [U-Boot, " sbabic at denx.de
  2019-03-01 12:10 ` [U-Boot] [PATCH 03/10] board: tbs2910: Add device tree Soeren Moch
                   ` (7 subsequent siblings)
  9 siblings, 1 reply; 654+ messages in thread
From: Soeren Moch @ 2019-03-01 12:10 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Soeren Moch <smoch@web.de>
---
Cc: Stefano Babic <sbabic@denx.de>
Cc: u-boot at lists.denx.de
---
 configs/tbs2910_defconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/configs/tbs2910_defconfig b/configs/tbs2910_defconfig
index 78beb9a522..70a3e18e23 100644
--- a/configs/tbs2910_defconfig
+++ b/configs/tbs2910_defconfig
@@ -56,3 +56,4 @@ CONFIG_CI_UDC=y
 CONFIG_USB_GADGET_DOWNLOAD=y
 CONFIG_VIDEO=y
 CONFIG_OF_LIBFDT=y
+# CONFIG_EFI_LOADER is not set
--
2.17.1

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

* [U-Boot] [PATCH 03/10] board: tbs2910: Add device tree
  2019-03-01 12:10 [U-Boot] [PATCH 00/10] tbs2910 fixes and driver model conversion Soeren Moch
  2019-03-01 12:10 ` [U-Boot] [PATCH 01/10] board: tbs2910: Fix default environment Soeren Moch
  2019-03-01 12:10 ` [U-Boot] [PATCH 02/10] board: tbs2910: Remove efi loader support in defconfig to reduce u-boot size Soeren Moch
@ 2019-03-01 12:10 ` Soeren Moch
  2019-04-01  8:59   ` [U-Boot] [U-Boot,03/10] " sbabic at denx.de
  2019-03-01 12:10 ` [U-Boot] [PATCH 04/10] board: tbs2910: Add pinctrl driver and convert gpio to driver model Soeren Moch
                   ` (6 subsequent siblings)
  9 siblings, 1 reply; 654+ messages in thread
From: Soeren Moch @ 2019-03-01 12:10 UTC (permalink / raw)
  To: u-boot

... as preparation for additional driver model coonversions.

We use CONFIG_OF_EMBED here to keep u-boot.imx as final binary name. So we
maintain compatibility with the original TBS u-boot and available HOWTOs
for u-boot updates.

Signed-off-by: Soeren Moch <smoch@web.de>
---
Cc: Stefano Babic <sbabic@denx.de>
Cc: u-boot at lists.denx.de
---
 arch/arm/dts/imx6q-tbs2910.dts | 394 +++++++++++++++++++++++++++++++++
 board/tbs/tbs2910/MAINTAINERS  |   1 +
 board/tbs/tbs2910/tbs2910.c    |   6 -
 configs/tbs2910_defconfig      |   4 +-
 4 files changed, 398 insertions(+), 7 deletions(-)
 create mode 100644 arch/arm/dts/imx6q-tbs2910.dts

diff --git a/arch/arm/dts/imx6q-tbs2910.dts b/arch/arm/dts/imx6q-tbs2910.dts
new file mode 100644
index 0000000000..21e62c0cab
--- /dev/null
+++ b/arch/arm/dts/imx6q-tbs2910.dts
@@ -0,0 +1,394 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+//
+// Copyright 2014-2019 Soeren Moch <smoch@web.de>
+
+/dts-v1/;
+
+#include "imx6q.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+	model = "TBS2910 Matrix ARM mini PC";
+	compatible = "tbs,imx6q-tbs2910", "fsl,imx6q";
+
+	chosen {
+		stdout-path = &uart1;
+	};
+
+	aliases {
+		mmc0 = &usdhc2;
+		mmc1 = &usdhc3;
+		mmc2 = &usdhc4;
+		usb0 = &usbotg;
+	};
+
+	memory at 10000000 {
+		reg = <0x10000000 0x80000000>;
+	};
+
+	fan {
+		compatible = "gpio-fan";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_gpio_fan>;
+		gpios = <&gpio3 28 GPIO_ACTIVE_HIGH>;
+		gpio-fan,speed-map = <0    0
+				      3000 1>;
+	};
+
+	ir_recv {
+		compatible = "gpio-ir-receiver";
+		gpios = <&gpio3 18 GPIO_ACTIVE_LOW>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_ir>;
+	};
+
+	leds {
+		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_gpio_leds>;
+
+		blue {
+			label = "blue_status_led";
+			gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
+		};
+	};
+
+	reg_2p5v: regulator-2p5v {
+		compatible = "regulator-fixed";
+		regulator-name = "2P5V";
+		regulator-min-microvolt = <2500000>;
+		regulator-max-microvolt = <2500000>;
+	};
+
+	reg_3p3v: regulator-3p3v {
+		compatible = "regulator-fixed";
+		regulator-name = "3P3V";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+	};
+
+	reg_5p0v: regulator-5p0v {
+		compatible = "regulator-fixed";
+		regulator-name = "5P0V";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+	};
+
+	sound-sgtl5000 {
+		audio-codec = <&sgtl5000>;
+		audio-routing =
+			"MIC_IN", "Mic Jack",
+			"Mic Jack", "Mic Bias",
+			"Headphone Jack", "HP_OUT";
+		compatible = "fsl,imx-audio-sgtl5000";
+		model = "On-board Codec";
+		mux-ext-port = <3>;
+		mux-int-port = <1>;
+		ssi-controller = <&ssi1>;
+	};
+
+	sound-spdif {
+		compatible = "fsl,imx-audio-spdif";
+		model = "On-board SPDIF";
+		spdif-controller = <&spdif>;
+		spdif-out;
+	};
+};
+
+&audmux {
+	status = "okay";
+};
+
+&fec {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_enet>;
+	phy-mode = "rgmii";
+	phy-reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
+	status = "okay";
+};
+
+&hdmi {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_hdmi>;
+	ddc-i2c-bus = <&i2c2>;
+	status = "okay";
+};
+
+&i2c1 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c1>;
+	status = "okay";
+
+	sgtl5000: sgtl5000 at a {
+		clocks = <&clks IMX6QDL_CLK_CKO>;
+		compatible = "fsl,sgtl5000";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_sgtl5000>;
+		reg = <0x0a>;
+		VDDA-supply = <&reg_2p5v>;
+		VDDIO-supply = <&reg_3p3v>;
+	};
+};
+
+&i2c2 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c2>;
+	status = "okay";
+};
+
+&i2c3 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c3>;
+	status = "okay";
+
+	rtc: ds1307 at 68 {
+		compatible = "dallas,ds1307";
+		reg = <0x68>;
+	};
+};
+
+&pcie {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_pcie>;
+	reset-gpio = <&gpio7 12 GPIO_ACTIVE_LOW>;
+	status = "okay";
+};
+
+&sata {
+	fsl,transmit-level-mV = <1104>;
+	fsl,transmit-boost-mdB = <3330>;
+	fsl,transmit-atten-16ths = <16>;
+	fsl,receive-eq-mdB = <3000>;
+	status = "okay";
+};
+
+&snvs_poweroff {
+	status = "okay";
+};
+
+&spdif {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_spdif>;
+	status = "okay";
+};
+
+&ssi1 {
+	status = "okay";
+};
+
+&uart1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart1>;
+	status = "okay";
+};
+
+&uart2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart2>;
+	status = "okay";
+};
+
+&usbh1 {
+	vbus-supply = <&reg_5p0v>;
+	status = "okay";
+};
+
+&usbotg {
+	vbus-supply = <&reg_5p0v>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usbotg>;
+	disable-over-current;
+	status = "okay";
+};
+
+&usdhc2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usdhc2>;
+	bus-width = <4>;
+	cd-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
+	vmmc-supply = <&reg_3p3v>;
+	vqmmc-supply = <&reg_3p3v>;
+	voltage-ranges = <3300 3300>;
+	no-1-8-v;
+	status = "okay";
+};
+
+&usdhc3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usdhc3>;
+	bus-width = <4>;
+	cd-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
+	wp-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
+	vmmc-supply = <&reg_3p3v>;
+	vqmmc-supply = <&reg_3p3v>;
+	voltage-ranges = <3300 3300>;
+	no-1-8-v;
+	status = "okay";
+};
+
+&usdhc4 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usdhc4>;
+	bus-width = <8>;
+	vmmc-supply = <&reg_3p3v>;
+	vqmmc-supply = <&reg_3p3v>;
+	voltage-ranges = <3300 3300>;
+	non-removable;
+	no-1-8-v;
+	status = "okay";
+};
+
+&iomuxc {
+	pinctrl_enet: enetgrp {
+		fsl,pins = <
+			MX6QDL_PAD_ENET_MDIO__ENET_MDIO       0x1b0b0
+			MX6QDL_PAD_ENET_MDC__ENET_MDC         0x1b0b0
+			MX6QDL_PAD_RGMII_TXC__RGMII_TXC       0x1b030
+			MX6QDL_PAD_RGMII_TD0__RGMII_TD0       0x1b030
+			MX6QDL_PAD_RGMII_TD1__RGMII_TD1       0x1b030
+			MX6QDL_PAD_RGMII_TD2__RGMII_TD2       0x1b030
+			MX6QDL_PAD_RGMII_TD3__RGMII_TD3       0x1b030
+			MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b030
+			MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK  0x1b0b0
+			MX6QDL_PAD_RGMII_RXC__RGMII_RXC       0x1b030
+			MX6QDL_PAD_RGMII_RD0__RGMII_RD0       0x1b030
+			MX6QDL_PAD_RGMII_RD1__RGMII_RD1       0x1b030
+			MX6QDL_PAD_RGMII_RD2__RGMII_RD2       0x1b030
+			MX6QDL_PAD_RGMII_RD3__RGMII_RD3       0x1b030
+			MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b030
+			MX6QDL_PAD_GPIO_16__ENET_REF_CLK      0x4001b0a8
+			MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25    0x1b059
+		>;
+	};
+
+	pinctrl_gpio_fan: gpiofangrp {
+		fsl,pins = <
+			MX6QDL_PAD_EIM_D28__GPIO3_IO28        0x130b1
+		>;
+	};
+
+	pinctrl_gpio_leds: gpioledsgrp {
+		fsl,pins = <
+			MX6QDL_PAD_GPIO_2__GPIO1_IO02         0x130b1
+		>;
+	};
+
+	pinctrl_hdmi: hdmigrp {
+		fsl,pins = <
+			MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x1f8b0
+		>;
+	};
+
+	pinctrl_i2c1: i2c1grp {
+		fsl,pins = <
+			MX6QDL_PAD_CSI0_DAT9__I2C1_SCL        0x4001b8b1
+			MX6QDL_PAD_CSI0_DAT8__I2C1_SDA        0x4001b8b1
+		>;
+	};
+
+	pinctrl_i2c2: i2c2grp {
+		fsl,pins = <
+			MX6QDL_PAD_KEY_COL3__I2C2_SCL         0x4001b8b1
+			MX6QDL_PAD_KEY_ROW3__I2C2_SDA         0x4001b8b1
+		>;
+	};
+
+	pinctrl_i2c3: i2c3grp {
+		fsl,pins = <
+			MX6QDL_PAD_GPIO_3__I2C3_SCL           0x4001b8b1
+			MX6QDL_PAD_GPIO_6__I2C3_SDA           0x4001b8b1
+		>;
+	};
+
+	pinctrl_ir: irgrp {
+		fsl,pins = <
+			MX6QDL_PAD_EIM_D18__GPIO3_IO18        0x17059
+		>;
+	};
+
+	pinctrl_pcie: pciegrp {
+		fsl,pins = <
+			MX6QDL_PAD_GPIO_17__GPIO7_IO12        0x17059
+		>;
+	};
+
+	pinctrl_sgtl5000: sgtl5000grp {
+		fsl,pins = <
+			MX6QDL_PAD_CSI0_DAT7__AUD3_RXD        0x130b0
+			MX6QDL_PAD_CSI0_DAT4__AUD3_TXC        0x130b0
+			MX6QDL_PAD_CSI0_DAT5__AUD3_TXD        0x110b0
+			MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS       0x130b0
+			MX6QDL_PAD_GPIO_0__CCM_CLKO1          0x130b0
+		>;
+	};
+
+	pinctrl_spdif: spdifgrp {
+		fsl,pins = <MX6QDL_PAD_GPIO_19__SPDIF_OUT     0x13091
+		>;
+	};
+
+	pinctrl_uart1: uart1grp {
+		fsl,pins = <
+			MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA  0x1b0b1
+			MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA  0x1b0b1
+		>;
+	};
+
+	pinctrl_uart2: uart2grp {
+		fsl,pins = <
+			MX6QDL_PAD_EIM_D26__UART2_TX_DATA     0x1b0b1
+			MX6QDL_PAD_EIM_D27__UART2_RX_DATA     0x1b0b1
+		>;
+	};
+
+	pinctrl_usbotg: usbotggrp {
+		fsl,pins = <
+			MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID     0x17059
+		>;
+	};
+
+	pinctrl_usdhc2: usdhc2grp {
+		fsl,pins = <
+			MX6QDL_PAD_SD2_CMD__SD2_CMD           0x17059
+			MX6QDL_PAD_SD2_CLK__SD2_CLK           0x10059
+			MX6QDL_PAD_SD2_DAT0__SD2_DATA0        0x17059
+			MX6QDL_PAD_SD2_DAT1__SD2_DATA1        0x17059
+			MX6QDL_PAD_SD2_DAT2__SD2_DATA2        0x17059
+			MX6QDL_PAD_SD2_DAT3__SD2_DATA3        0x17059
+			MX6QDL_PAD_NANDF_D2__GPIO2_IO02       0x17059
+		>;
+	};
+
+	pinctrl_usdhc3: usdhc3grp {
+		fsl,pins = <
+			MX6QDL_PAD_SD3_CMD__SD3_CMD           0x17059
+			MX6QDL_PAD_SD3_CLK__SD3_CLK           0x10059
+			MX6QDL_PAD_SD3_DAT0__SD3_DATA0        0x17059
+			MX6QDL_PAD_SD3_DAT1__SD3_DATA1        0x17059
+			MX6QDL_PAD_SD3_DAT2__SD3_DATA2        0x17059
+			MX6QDL_PAD_SD3_DAT3__SD3_DATA3        0x17059
+			MX6QDL_PAD_NANDF_D0__GPIO2_IO00       0x17059
+			MX6QDL_PAD_NANDF_D1__GPIO2_IO01       0x17059
+		>;
+	};
+
+	pinctrl_usdhc4: usdhc4grp {
+		fsl,pins = <
+			MX6QDL_PAD_SD4_CMD__SD4_CMD           0x17059
+			MX6QDL_PAD_SD4_CLK__SD4_CLK           0x10059
+			MX6QDL_PAD_SD4_DAT0__SD4_DATA0        0x17059
+			MX6QDL_PAD_SD4_DAT1__SD4_DATA1        0x17059
+			MX6QDL_PAD_SD4_DAT2__SD4_DATA2        0x17059
+			MX6QDL_PAD_SD4_DAT3__SD4_DATA3        0x17059
+			MX6QDL_PAD_SD4_DAT4__SD4_DATA4        0x17059
+			MX6QDL_PAD_SD4_DAT5__SD4_DATA5        0x17059
+			MX6QDL_PAD_SD4_DAT6__SD4_DATA6        0x17059
+			MX6QDL_PAD_SD4_DAT7__SD4_DATA7        0x17059
+		>;
+	};
+};
diff --git a/board/tbs/tbs2910/MAINTAINERS b/board/tbs/tbs2910/MAINTAINERS
index bf176553d2..a3ad2f712a 100644
--- a/board/tbs/tbs2910/MAINTAINERS
+++ b/board/tbs/tbs2910/MAINTAINERS
@@ -1,6 +1,7 @@
 TBS2910 BOARD
 M:	Soeren Moch <smoch@web.de>
 S:	Maintained
+F:	arch/arm/dts/imx6q-tbs2910.dts
 F:	board/tbs/tbs2910/
 F:	configs/tbs2910_defconfig
 F:	include/configs/tbs2910.h
diff --git a/board/tbs/tbs2910/tbs2910.c b/board/tbs/tbs2910/tbs2910.c
index ecb45f208d..99b282ca6b 100644
--- a/board/tbs/tbs2910/tbs2910.c
+++ b/board/tbs/tbs2910/tbs2910.c
@@ -446,9 +446,3 @@ int board_init(void)
 #endif
 	return 0;
 }
-
-int checkboard(void)
-{
-	puts("Board: TBS2910 Matrix ARM mini PC\n");
-	return 0;
-}
diff --git a/configs/tbs2910_defconfig b/configs/tbs2910_defconfig
index 70a3e18e23..3cc68eb922 100644
--- a/configs/tbs2910_defconfig
+++ b/configs/tbs2910_defconfig
@@ -36,6 +36,9 @@ CONFIG_CMD_EXT4_WRITE=y
 CONFIG_CMD_FAT=y
 CONFIG_CMD_FS_GENERIC=y
 CONFIG_EFI_PARTITION=y
+CONFIG_OF_CONTROL=y
+CONFIG_OF_EMBED=y
+CONFIG_DEFAULT_DEVICE_TREE="imx6q-tbs2910"
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_DM=y
 CONFIG_DWC_AHSATA=y
@@ -55,5 +58,4 @@ CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
 CONFIG_CI_UDC=y
 CONFIG_USB_GADGET_DOWNLOAD=y
 CONFIG_VIDEO=y
-CONFIG_OF_LIBFDT=y
 # CONFIG_EFI_LOADER is not set
--
2.17.1

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

* [U-Boot] [PATCH 04/10] board: tbs2910: Add pinctrl driver and convert gpio to driver model
  2019-03-01 12:10 [U-Boot] [PATCH 00/10] tbs2910 fixes and driver model conversion Soeren Moch
                   ` (2 preceding siblings ...)
  2019-03-01 12:10 ` [U-Boot] [PATCH 03/10] board: tbs2910: Add device tree Soeren Moch
@ 2019-03-01 12:10 ` Soeren Moch
  2019-04-01  8:52   ` [U-Boot] [U-Boot, " sbabic at denx.de
  2019-03-01 12:10 ` [U-Boot] [PATCH 05/10] board: tbs2910: Convert usb " Soeren Moch
                   ` (5 subsequent siblings)
  9 siblings, 1 reply; 654+ messages in thread
From: Soeren Moch @ 2019-03-01 12:10 UTC (permalink / raw)
  To: u-boot

We need this for additional driver model conversions.

Signed-off-by: Soeren Moch <smoch@web.de>
---
Cc: Stefano Babic <sbabic@denx.de>
Cc: u-boot at lists.denx.de
---
 board/tbs/tbs2910/tbs2910.c | 3 +++
 configs/tbs2910_defconfig   | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/board/tbs/tbs2910/tbs2910.c b/board/tbs/tbs2910/tbs2910.c
index 99b282ca6b..175dd88a69 100644
--- a/board/tbs/tbs2910/tbs2910.c
+++ b/board/tbs/tbs2910/tbs2910.c
@@ -138,6 +138,7 @@ static void setup_iomux_enet(void)
 	imx_iomux_v3_setup_multiple_pads(enet_pads, ARRAY_SIZE(enet_pads));

 	/* Reset AR8035 PHY */
+	gpio_request(IMX_GPIO_NR(1, 25), "ETH_PHY_RESET");
 	gpio_direction_output(IMX_GPIO_NR(1, 25) , 0);
 	udelay(500);
 	gpio_set_value(IMX_GPIO_NR(1, 25), 1);
@@ -230,12 +231,14 @@ int board_mmc_init(bd_t *bis)
 		case 0:
 			imx_iomux_v3_setup_multiple_pads(
 				usdhc2_pads, ARRAY_SIZE(usdhc2_pads));
+			gpio_request(USDHC2_CD_GPIO, "MMC0_CD");
 			gpio_direction_input(USDHC2_CD_GPIO);
 			usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC2_CLK);
 			break;
 		case 1:
 			imx_iomux_v3_setup_multiple_pads(
 				usdhc3_pads, ARRAY_SIZE(usdhc3_pads));
+			gpio_request(USDHC3_CD_GPIO, "MMC1_CD");
 			gpio_direction_input(USDHC3_CD_GPIO);
 			usdhc_cfg[1].sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK);
 			break;
diff --git a/configs/tbs2910_defconfig b/configs/tbs2910_defconfig
index 3cc68eb922..717cabfa3b 100644
--- a/configs/tbs2910_defconfig
+++ b/configs/tbs2910_defconfig
@@ -42,10 +42,13 @@ CONFIG_DEFAULT_DEVICE_TREE="imx6q-tbs2910"
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_DM=y
 CONFIG_DWC_AHSATA=y
+CONFIG_DM_GPIO=y
 CONFIG_FSL_ESDHC=y
 CONFIG_PHYLIB=y
 CONFIG_MII=y
 CONFIG_PCI=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_IMX6=y
 CONFIG_DM_THERMAL=y
 CONFIG_USB=y
 CONFIG_USB_STORAGE=y
--
2.17.1

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

* [U-Boot] [PATCH 05/10] board: tbs2910: Convert usb to driver model
  2019-03-01 12:10 [U-Boot] [PATCH 00/10] tbs2910 fixes and driver model conversion Soeren Moch
                   ` (3 preceding siblings ...)
  2019-03-01 12:10 ` [U-Boot] [PATCH 04/10] board: tbs2910: Add pinctrl driver and convert gpio to driver model Soeren Moch
@ 2019-03-01 12:10 ` Soeren Moch
  2019-04-01  8:52   ` [U-Boot] [U-Boot, " sbabic at denx.de
  2019-03-01 12:10 ` [U-Boot] [PATCH 06/10] board: tbs2910: Convert i2c and rtc " Soeren Moch
                   ` (4 subsequent siblings)
  9 siblings, 1 reply; 654+ messages in thread
From: Soeren Moch @ 2019-03-01 12:10 UTC (permalink / raw)
  To: u-boot

So we don't need to duplicate settings from the device tree in the board file.

Signed-off-by: Soeren Moch <smoch@web.de>
---
Cc: Stefano Babic <sbabic@denx.de>
Cc: u-boot at lists.denx.de
---
 board/tbs/tbs2910/tbs2910.c | 10 ----------
 configs/tbs2910_defconfig   |  2 ++
 include/configs/tbs2910.h   |  1 -
 3 files changed, 2 insertions(+), 11 deletions(-)

diff --git a/board/tbs/tbs2910/tbs2910.c b/board/tbs/tbs2910/tbs2910.c
index 175dd88a69..20c93778e1 100644
--- a/board/tbs/tbs2910/tbs2910.c
+++ b/board/tbs/tbs2910/tbs2910.c
@@ -418,12 +418,6 @@ static const struct boot_mode board_boot_modes[] = {
 };
 #endif

-#ifdef CONFIG_USB_EHCI_MX6
-static iomux_v3_cfg_t const usb_otg_pads[] = {
-	MX6_PAD_ENET_RX_ER__USB_OTG_ID | MUX_PAD_CTRL(NO_PAD_CTRL),
-};
-#endif
-
 int board_init(void)
 {
 	/* address of boot parameters */
@@ -442,10 +436,6 @@ int board_init(void)
 #endif
 #ifdef CONFIG_CMD_BMODE
 	add_board_boot_modes(board_boot_modes);
-#endif
-#ifdef CONFIG_USB_EHCI_MX6
-	imx_iomux_v3_setup_multiple_pads(
-		usb_otg_pads, ARRAY_SIZE(usb_otg_pads));
 #endif
 	return 0;
 }
diff --git a/configs/tbs2910_defconfig b/configs/tbs2910_defconfig
index 717cabfa3b..395275c6dd 100644
--- a/configs/tbs2910_defconfig
+++ b/configs/tbs2910_defconfig
@@ -43,6 +43,7 @@ CONFIG_ENV_IS_IN_MMC=y
 CONFIG_DM=y
 CONFIG_DWC_AHSATA=y
 CONFIG_DM_GPIO=y
+CONFIG_DM_KEYBOARD=y
 CONFIG_FSL_ESDHC=y
 CONFIG_PHYLIB=y
 CONFIG_MII=y
@@ -51,6 +52,7 @@ CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX6=y
 CONFIG_DM_THERMAL=y
 CONFIG_USB=y
+CONFIG_DM_USB=y
 CONFIG_USB_STORAGE=y
 CONFIG_USB_KEYBOARD=y
 CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/include/configs/tbs2910.h b/include/configs/tbs2910.h
index b06c90939c..93f75d72f3 100644
--- a/include/configs/tbs2910.h
+++ b/include/configs/tbs2910.h
@@ -81,7 +81,6 @@

 /* USB */
 #ifdef CONFIG_CMD_USB
-#define CONFIG_USB_MAX_CONTROLLER_COUNT 2
 #define CONFIG_EHCI_HCD_INIT_AFTER_RESET
 #define CONFIG_MXC_USB_PORTSC		(PORT_PTS_UTMI | PORT_PTS_PTW)
 #ifdef CONFIG_CMD_USB_MASS_STORAGE
--
2.17.1

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

* [U-Boot] [PATCH 06/10] board: tbs2910: Convert i2c and rtc to driver model
  2019-03-01 12:10 [U-Boot] [PATCH 00/10] tbs2910 fixes and driver model conversion Soeren Moch
                   ` (4 preceding siblings ...)
  2019-03-01 12:10 ` [U-Boot] [PATCH 05/10] board: tbs2910: Convert usb " Soeren Moch
@ 2019-03-01 12:10 ` Soeren Moch
  2019-04-01  8:59   ` [U-Boot] [U-Boot, " sbabic at denx.de
  2019-03-01 12:10 ` [U-Boot] [PATCH 07/10] ata: dwc_ahsata: Fix sector reports for large disks Soeren Moch
                   ` (3 subsequent siblings)
  9 siblings, 1 reply; 654+ messages in thread
From: Soeren Moch @ 2019-03-01 12:10 UTC (permalink / raw)
  To: u-boot

So we don't need to duplicate settings from the device tree in the board file.

Signed-off-by: Soeren Moch <smoch@web.de>
---
Cc: Stefano Babic <sbabic@denx.de>
Cc: u-boot at lists.denx.de
---
 board/tbs/tbs2910/tbs2910.c | 57 -------------------------------------
 configs/tbs2910_defconfig   |  6 +++-
 include/configs/tbs2910.h   | 17 -----------
 3 files changed, 5 insertions(+), 75 deletions(-)

diff --git a/board/tbs/tbs2910/tbs2910.c b/board/tbs/tbs2910/tbs2910.c
index 20c93778e1..2445efbde2 100644
--- a/board/tbs/tbs2910/tbs2910.c
+++ b/board/tbs/tbs2910/tbs2910.c
@@ -9,7 +9,6 @@
 #include <asm/arch/mx6-pins.h>
 #include <linux/errno.h>
 #include <asm/gpio.h>
-#include <asm/mach-imx/mxc_i2c.h>
 #include <asm/mach-imx/iomux-v3.h>
 #include <asm/mach-imx/sata.h>
 #include <asm/mach-imx/boot_mode.h>
@@ -22,7 +21,6 @@
 #include <asm/arch/crm_regs.h>
 #include <asm/io.h>
 #include <asm/arch/sys_proto.h>
-#include <i2c.h>
 DECLARE_GLOBAL_DATA_PTR;

 #define WEAK_PULLUP	(PAD_CTL_PUS_47K_UP |			\
@@ -40,56 +38,6 @@ DECLARE_GLOBAL_DATA_PTR;
 #define ENET_PAD_CTRL  (PAD_CTL_PUS_100K_UP |			\
 	PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)

-#define I2C_PAD_CTRL  (PAD_CTL_PUS_100K_UP |			\
-	PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS |	\
-	PAD_CTL_ODE | PAD_CTL_SRE_FAST)
-
-#define I2C_PAD MUX_PAD_CTRL(I2C_PAD_CTRL)
-
-#ifdef CONFIG_SYS_I2C
-/* I2C1, SGTL5000 */
-static struct i2c_pads_info i2c_pad_info0 = {
-	.scl = {
-		.i2c_mode = MX6_PAD_CSI0_DAT9__I2C1_SCL | I2C_PAD,
-		.gpio_mode = MX6_PAD_CSI0_DAT9__GPIO5_IO27 | I2C_PAD,
-		.gp = IMX_GPIO_NR(5, 27)
-	},
-	.sda = {
-		.i2c_mode = MX6_PAD_CSI0_DAT8__I2C1_SDA | I2C_PAD,
-		.gpio_mode = MX6_PAD_CSI0_DAT8__GPIO5_IO26 | I2C_PAD,
-		.gp = IMX_GPIO_NR(5, 26)
-	}
-};
-
-/* I2C2 HDMI */
-static struct i2c_pads_info i2c_pad_info1 = {
-	.scl = {
-		.i2c_mode = MX6_PAD_KEY_COL3__I2C2_SCL | I2C_PAD,
-		.gpio_mode = MX6_PAD_KEY_COL3__GPIO4_IO12 | I2C_PAD,
-		.gp = IMX_GPIO_NR(4, 12)
-	},
-	.sda = {
-		.i2c_mode = MX6_PAD_KEY_ROW3__I2C2_SDA | I2C_PAD,
-		.gpio_mode = MX6_PAD_KEY_ROW3__GPIO4_IO13 | I2C_PAD,
-		.gp = IMX_GPIO_NR(4, 13)
-	}
-};
-
-/* I2C3, CON11, DS1307, PCIe_SMB */
-static struct i2c_pads_info i2c_pad_info2 = {
-	.scl = {
-		.i2c_mode = MX6_PAD_GPIO_3__I2C3_SCL | I2C_PAD,
-		.gpio_mode = MX6_PAD_GPIO_3__GPIO1_IO03 | I2C_PAD,
-		.gp = IMX_GPIO_NR(1, 3)
-	},
-	.sda = {
-		.i2c_mode = MX6_PAD_GPIO_6__I2C3_SDA | I2C_PAD,
-		.gpio_mode = MX6_PAD_GPIO_6__GPIO1_IO06 | I2C_PAD,
-		.gp = IMX_GPIO_NR(1, 6)
-	}
-};
-#endif /* CONFIG_SYS_I2C */
-
 static iomux_v3_cfg_t const uart1_pads[] = {
 	MX6_PAD_CSI0_DAT10__UART1_TX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL),
 	MX6_PAD_CSI0_DAT11__UART1_RX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL),
@@ -426,11 +374,6 @@ int board_init(void)
 #ifdef CONFIG_VIDEO_IPUV3
 	setup_display();
 #endif
-#ifdef CONFIG_SYS_I2C
-	setup_i2c(0, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info0);
-	setup_i2c(1, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info1);
-	setup_i2c(2, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info2);
-#endif
 #ifdef CONFIG_DWC_AHSATA
 	setup_sata();
 #endif
diff --git a/configs/tbs2910_defconfig b/configs/tbs2910_defconfig
index 395275c6dd..153f61d09d 100644
--- a/configs/tbs2910_defconfig
+++ b/configs/tbs2910_defconfig
@@ -28,7 +28,6 @@ CONFIG_CMD_DHCP=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
-CONFIG_CMD_DATE=y
 CONFIG_CMD_TIME=y
 CONFIG_CMD_EXT2=y
 CONFIG_CMD_EXT4=y
@@ -43,6 +42,8 @@ CONFIG_ENV_IS_IN_MMC=y
 CONFIG_DM=y
 CONFIG_DWC_AHSATA=y
 CONFIG_DM_GPIO=y
+CONFIG_DM_I2C=y
+CONFIG_SYS_I2C_MXC=y
 CONFIG_DM_KEYBOARD=y
 CONFIG_FSL_ESDHC=y
 CONFIG_PHYLIB=y
@@ -50,6 +51,8 @@ CONFIG_MII=y
 CONFIG_PCI=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX6=y
+CONFIG_DM_RTC=y
+CONFIG_RTC_DS1307=y
 CONFIG_DM_THERMAL=y
 CONFIG_USB=y
 CONFIG_DM_USB=y
@@ -62,5 +65,6 @@ CONFIG_USB_GADGET_VENDOR_NUM=0x0525
 CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
 CONFIG_CI_UDC=y
 CONFIG_USB_GADGET_DOWNLOAD=y
+CONFIG_I2C_EDID=y
 CONFIG_VIDEO=y
 # CONFIG_EFI_LOADER is not set
diff --git a/include/configs/tbs2910.h b/include/configs/tbs2910.h
index 93f75d72f3..eff93eff4f 100644
--- a/include/configs/tbs2910.h
+++ b/include/configs/tbs2910.h
@@ -97,23 +97,6 @@
 #endif /* CONFIG_USB_KEYBOARD */
 #endif /* CONFIG_CMD_USB      */

-/* RTC */
-#ifdef CONFIG_CMD_DATE
-#define CONFIG_RTC_DS1307
-#define CONFIG_SYS_RTC_BUS_NUM		2
-#endif
-
-/* I2C */
-#ifdef CONFIG_CMD_I2C
-#define CONFIG_SYS_I2C
-#define CONFIG_SYS_I2C_MXC
-#define CONFIG_SYS_I2C_MXC_I2C1		/* enable I2C bus 1 */
-#define CONFIG_SYS_I2C_MXC_I2C2		/* enable I2C bus 2 */
-#define CONFIG_SYS_I2C_MXC_I2C3		/* enable I2C bus 3 */
-#define CONFIG_SYS_I2C_SPEED		100000
-#define CONFIG_I2C_EDID
-#endif
-
 /* Environment organization */
 #define CONFIG_SYS_MMC_ENV_DEV		2 /* overwritten on SD boot */
 #define CONFIG_SYS_MMC_ENV_PART		1 /* overwritten on SD boot */
--
2.17.1

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

* [U-Boot] [PATCH 07/10] ata: dwc_ahsata: Fix sector reports for large disks
  2019-03-01 12:10 [U-Boot] [PATCH 00/10] tbs2910 fixes and driver model conversion Soeren Moch
                   ` (5 preceding siblings ...)
  2019-03-01 12:10 ` [U-Boot] [PATCH 06/10] board: tbs2910: Convert i2c and rtc " Soeren Moch
@ 2019-03-01 12:10 ` Soeren Moch
  2019-04-01  8:52   ` [U-Boot] [U-Boot, " sbabic at denx.de
  2019-03-01 12:10 ` [U-Boot] [PATCH 08/10] ata: dwc_ahsata: Add ahci driver model support Soeren Moch
                   ` (2 subsequent siblings)
  9 siblings, 1 reply; 654+ messages in thread
From: Soeren Moch @ 2019-03-01 12:10 UTC (permalink / raw)
  To: u-boot

Do not report negative sector numbers for disks > 1TB, do not limit
sector numbers to 32 bit if CONFIG_SYS_64BIT_LBA is enabled.

Signed-off-by: Soeren Moch <smoch@web.de>
---
Cc: Stefano Babic <sbabic@denx.de>
Cc: u-boot at lists.denx.de
---
 drivers/ata/dwc_ahsata.c | 14 +++-----------
 1 file changed, 3 insertions(+), 11 deletions(-)

diff --git a/drivers/ata/dwc_ahsata.c b/drivers/ata/dwc_ahsata.c
index 4c5b98482f..6fe5641dd9 100644
--- a/drivers/ata/dwc_ahsata.c
+++ b/drivers/ata/dwc_ahsata.c
@@ -511,15 +511,9 @@ static int ahci_port_start(struct ahci_uc_priv *uc_priv, u8 port)
 static void dwc_ahsata_print_info(struct blk_desc *pdev)
 {
 	printf("SATA Device Info:\n\r");
-#ifdef CONFIG_SYS_64BIT_LBA
 	printf("S/N: %s\n\rProduct model number: %s\n\r"
-		"Firmware version: %s\n\rCapacity: %lld sectors\n\r",
+		"Firmware version: %s\n\rCapacity: " LBAFU " sectors\n\r",
 		pdev->product, pdev->vendor, pdev->revision, pdev->lba);
-#else
-	printf("S/N: %s\n\rProduct model number: %s\n\r"
-		"Firmware version: %s\n\rCapacity: %ld sectors\n\r",
-		pdev->product, pdev->vendor, pdev->revision, pdev->lba);
-#endif
 }

 static void dwc_ahsata_identify(struct ahci_uc_priv *uc_priv, u16 *id)
@@ -754,7 +748,6 @@ static int dwc_ahsata_scan_common(struct ahci_uc_priv *uc_priv,
 	u8 serial[ATA_ID_SERNO_LEN + 1] = { 0 };
 	u8 firmware[ATA_ID_FW_REV_LEN + 1] = { 0 };
 	u8 product[ATA_ID_PROD_LEN + 1] = { 0 };
-	u64 n_sectors;
 	u8 port = uc_priv->hard_port_no;
 	ALLOC_CACHE_ALIGN_BUFFER(u16, id, ATA_ID_WORDS);

@@ -773,9 +766,8 @@ static int dwc_ahsata_scan_common(struct ahci_uc_priv *uc_priv,
 	ata_id_c_string(id, product, ATA_ID_PROD, sizeof(product));
 	memcpy(pdev->vendor, product, sizeof(product));

-	/* Totoal sectors */
-	n_sectors = ata_id_n_sectors(id);
-	pdev->lba = (u32)n_sectors;
+	/* Total sectors */
+	pdev->lba = ata_id_n_sectors(id);

 	pdev->type = DEV_TYPE_HARDDISK;
 	pdev->blksz = ATA_SECT_SIZE;
--
2.17.1

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

* [U-Boot] [PATCH 08/10] ata: dwc_ahsata: Add ahci driver model support
  2019-03-01 12:10 [U-Boot] [PATCH 00/10] tbs2910 fixes and driver model conversion Soeren Moch
                   ` (6 preceding siblings ...)
  2019-03-01 12:10 ` [U-Boot] [PATCH 07/10] ata: dwc_ahsata: Fix sector reports for large disks Soeren Moch
@ 2019-03-01 12:10 ` Soeren Moch
  2019-03-07  8:33   ` Soeren Moch
       [not found]   ` <smoch@web.de>
  2019-03-01 12:11 ` [U-Boot] [PATCH " Soeren Moch
  2019-03-01 12:11 ` [U-Boot] [PATCH 10/10] board: tbs2910: Convert mmc to " Soeren Moch
  9 siblings, 2 replies; 654+ messages in thread
From: Soeren Moch @ 2019-03-01 12:10 UTC (permalink / raw)
  To: u-boot

Disable this support for cm_fx6 to avoid breakage.

Signed-off-by: Soeren Moch <smoch@web.de>
---
It would be easy to add weak board_ahci_enable/disable functions which
can be overwritten (e.g. in the cm_fx6 board file) to handle power enable/
disable on driver probe/remove. But I have no idea why this board needs these
repeated probe/remove calls for the same sata device. In my tests on a
tbs2910 board a sata harddisk is always recognized by a 'sata init' command,
also without this probe loop.
If this can be ironed out, we can remove the DWC_AHSATA_AHCI config option.

Cc: Nikita Kiryanov <nikita@compulab.co.il>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Marcel Ziswiler <marcel@ziswiler.com>
Cc: Stefan Roese <sr@denx.de>
Cc: Simon Glass <sjg@chromium.org>
Cc: u-boot at lists.denx.de
---
 configs/cm_fx6_defconfig |  1 +
 drivers/ata/Kconfig      |  8 ++++++++
 drivers/ata/dwc_ahsata.c | 24 ++++++++++++++++++++++++
 3 files changed, 33 insertions(+)

diff --git a/configs/cm_fx6_defconfig b/configs/cm_fx6_defconfig
index c8d1e83111..1623357132 100644
--- a/configs/cm_fx6_defconfig
+++ b/configs/cm_fx6_defconfig
@@ -51,6 +51,7 @@ CONFIG_DEFAULT_DEVICE_TREE="imx6q-cm-fx6"
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
 CONFIG_DWC_AHSATA=y
+# CONFIG_DWC_AHSATA_AHCI is not set
 CONFIG_DM_KEYBOARD=y
 CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
index 49a056e941..d7818c2d68 100644
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
@@ -66,6 +66,14 @@ config DWC_AHSATA
 	  Enable this driver to support the DWC AHSATA SATA controller found
 	  in i.MX5 and i.MX6 SoCs.

+config DWC_AHSATA_AHCI
+	bool "Enable DWC AHSATA AHCI driver support"
+	depends on DWC_AHSATA
+	depends on AHCI
+	default y
+	help
+	  Enable this option unless you need your private ahci implementation
+
 config FSL_SATA
 	bool "Enable Freescale SATA controller driver support"
 	select LIBATA
diff --git a/drivers/ata/dwc_ahsata.c b/drivers/ata/dwc_ahsata.c
index 6fe5641dd9..afced8e7e3 100644
--- a/drivers/ata/dwc_ahsata.c
+++ b/drivers/ata/dwc_ahsata.c
@@ -16,6 +16,7 @@
 #include <asm/io.h>
 #include <asm/arch/clock.h>
 #include <asm/arch/sys_proto.h>
+#include <asm/mach-imx/sata.h>
 #include <linux/bitops.h>
 #include <linux/ctype.h>
 #include <linux/errno.h>
@@ -1020,6 +1021,9 @@ int dwc_ahsata_probe(struct udevice *dev)
 	struct ahci_uc_priv *uc_priv = dev_get_uclass_priv(dev);
 	int ret;

+#if defined(CONFIG_MX6)
+	setup_sata();
+#endif
 	uc_priv->host_flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY |
 			ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA | ATA_FLAG_NO_ATAPI;
 	uc_priv->mmio_base = (void __iomem *)dev_read_addr(dev);
@@ -1067,4 +1071,24 @@ U_BOOT_DRIVER(dwc_ahsata_blk) = {
 	.ops		= &dwc_ahsata_blk_ops,
 };

+#if CONFIG_IS_ENABLED(DWC_AHSATA_AHCI)
+struct ahci_ops dwc_ahsata_ahci_ops = {
+	.port_status = dwc_ahsata_port_status,
+	.reset       = dwc_ahsata_bus_reset,
+	.scan        = dwc_ahsata_scan,
+};
+
+static const struct udevice_id dwc_ahsata_ahci_ids[] = {
+	{ .compatible = "fsl,imx6q-ahci" },
+	{ }
+};
+
+U_BOOT_DRIVER(dwc_ahsata_ahci) = {
+	.name     = "dwc_ahsata_ahci",
+	.id       = UCLASS_AHCI,
+	.of_match = dwc_ahsata_ahci_ids,
+	.ops      = &dwc_ahsata_ahci_ops,
+	.probe    = dwc_ahsata_probe,
+};
+#endif
 #endif
--
2.17.1

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

* [U-Boot] [PATCH 09/10] board: tbs2910: Convert sata to ahci driver model
  2019-03-01 12:10 [U-Boot] [PATCH 00/10] tbs2910 fixes and driver model conversion Soeren Moch
                   ` (7 preceding siblings ...)
  2019-03-01 12:10 ` [U-Boot] [PATCH 08/10] ata: dwc_ahsata: Add ahci driver model support Soeren Moch
@ 2019-03-01 12:11 ` Soeren Moch
  2019-03-01 12:11 ` [U-Boot] [PATCH 10/10] board: tbs2910: Convert mmc to " Soeren Moch
  9 siblings, 0 replies; 654+ messages in thread
From: Soeren Moch @ 2019-03-01 12:11 UTC (permalink / raw)
  To: u-boot

While at it, also configure 64-bit LBA support.

Signed-off-by: Soeren Moch <smoch@web.de>
---
Cc: Stefano Babic <sbabic@denx.de>
Cc: Nikita Kiryanov <nikita@compulab.co.il>
Cc: Marcel Ziswiler <marcel@ziswiler.com>
Cc: u-boot at lists.denx.de
---
 board/tbs/tbs2910/tbs2910.c | 4 ----
 configs/tbs2910_defconfig   | 1 +
 include/configs/tbs2910.h   | 1 +
 3 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/board/tbs/tbs2910/tbs2910.c b/board/tbs/tbs2910/tbs2910.c
index 2445efbde2..84c813e29f 100644
--- a/board/tbs/tbs2910/tbs2910.c
+++ b/board/tbs/tbs2910/tbs2910.c
@@ -10,7 +10,6 @@
 #include <linux/errno.h>
 #include <asm/gpio.h>
 #include <asm/mach-imx/iomux-v3.h>
-#include <asm/mach-imx/sata.h>
 #include <asm/mach-imx/boot_mode.h>
 #include <asm/mach-imx/video.h>
 #include <mmc.h>
@@ -374,9 +373,6 @@ int board_init(void)
 #ifdef CONFIG_VIDEO_IPUV3
 	setup_display();
 #endif
-#ifdef CONFIG_DWC_AHSATA
-	setup_sata();
-#endif
 #ifdef CONFIG_CMD_BMODE
 	add_board_boot_modes(board_boot_modes);
 #endif
diff --git a/configs/tbs2910_defconfig b/configs/tbs2910_defconfig
index 153f61d09d..54e34df6aa 100644
--- a/configs/tbs2910_defconfig
+++ b/configs/tbs2910_defconfig
@@ -4,6 +4,7 @@ CONFIG_ARCH_MX6=y
 CONFIG_SYS_TEXT_BASE=0x17800000
 CONFIG_TARGET_TBS2910=y
 CONFIG_CMD_HDMIDETECT=y
+CONFIG_AHCI=y
 CONFIG_NR_DRAM_BANKS=1
 CONFIG_BOOTDELAY=3
 CONFIG_PRE_CONSOLE_BUFFER=y
diff --git a/include/configs/tbs2910.h b/include/configs/tbs2910.h
index eff93eff4f..a211b9d611 100644
--- a/include/configs/tbs2910.h
+++ b/include/configs/tbs2910.h
@@ -77,6 +77,7 @@
 #define CONFIG_DWC_AHSATA_PORT_ID	0
 #define CONFIG_DWC_AHSATA_BASE_ADDR	SATA_ARB_BASE_ADDR
 #define CONFIG_LBA48
+#define CONFIG_SYS_64BIT_LBA
 #endif

 /* USB */
--
2.17.1

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

* [U-Boot] [PATCH 10/10] board: tbs2910: Convert mmc to driver model
  2019-03-01 12:10 [U-Boot] [PATCH 00/10] tbs2910 fixes and driver model conversion Soeren Moch
                   ` (8 preceding siblings ...)
  2019-03-01 12:11 ` [U-Boot] [PATCH " Soeren Moch
@ 2019-03-01 12:11 ` Soeren Moch
  2019-04-01  8:59   ` [U-Boot] [U-Boot, " sbabic at denx.de
  9 siblings, 1 reply; 654+ messages in thread
From: Soeren Moch @ 2019-03-01 12:11 UTC (permalink / raw)
  To: u-boot

So we don't need to duplicate settings from the device tree in the board file.

Signed-off-by: Soeren Moch <smoch@web.de>
---
Cc: Stefano Babic <sbabic@denx.de>
Cc: u-boot at lists.denx.de
---
 board/tbs/tbs2910/tbs2910.c | 108 ------------------------------------
 configs/tbs2910_defconfig   |   1 +
 include/configs/tbs2910.h   |   7 ---
 3 files changed, 1 insertion(+), 115 deletions(-)

diff --git a/board/tbs/tbs2910/tbs2910.c b/board/tbs/tbs2910/tbs2910.c
index 84c813e29f..fb0e773afc 100644
--- a/board/tbs/tbs2910/tbs2910.c
+++ b/board/tbs/tbs2910/tbs2910.c
@@ -30,10 +30,6 @@ DECLARE_GLOBAL_DATA_PTR;
 	PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm |			\
 	PAD_CTL_SRE_FAST  | PAD_CTL_HYS)

-#define USDHC_PAD_CTRL (PAD_CTL_PUS_47K_UP |			\
-	PAD_CTL_SPEED_LOW | PAD_CTL_DSE_80ohm |			\
-	PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
-
 #define ENET_PAD_CTRL  (PAD_CTL_PUS_100K_UP |			\
 	PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)

@@ -103,110 +99,6 @@ static void setup_iomux_uart(void)
 }

 #ifdef CONFIG_FSL_ESDHC
-static iomux_v3_cfg_t const usdhc2_pads[] = {
-	MX6_PAD_SD2_CLK__SD2_CLK     | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD2_CMD__SD2_CMD     | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD2_DAT0__SD2_DATA0  | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD2_DAT1__SD2_DATA1  | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD2_DAT2__SD2_DATA2  | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD2_DAT3__SD2_DATA3  | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_NANDF_D2__GPIO2_IO02 | MUX_PAD_CTRL(NO_PAD_CTRL), /* CD */
-};
-
-static iomux_v3_cfg_t const usdhc3_pads[] = {
-	MX6_PAD_SD3_CLK__SD3_CLK     | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD3_CMD__SD3_CMD     | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD3_DAT0__SD3_DATA0  | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD3_DAT1__SD3_DATA1  | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD3_DAT2__SD3_DATA2  | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD3_DAT3__SD3_DATA3  | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_NANDF_D0__GPIO2_IO00 | MUX_PAD_CTRL(NO_PAD_CTRL), /* CD */
-};
-
-static iomux_v3_cfg_t const usdhc4_pads[] = {
-	MX6_PAD_SD4_CLK__SD4_CLK    | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD4_CMD__SD4_CMD    | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD4_DAT0__SD4_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD4_DAT1__SD4_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD4_DAT2__SD4_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD4_DAT3__SD4_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD4_DAT4__SD4_DATA4 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD4_DAT5__SD4_DATA5 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD4_DAT6__SD4_DATA6 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD4_DAT7__SD4_DATA7 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
-};
-
-static struct fsl_esdhc_cfg usdhc_cfg[3] = {
-	{USDHC2_BASE_ADDR},
-	{USDHC3_BASE_ADDR},
-	{USDHC4_BASE_ADDR},
-};
-
-#define USDHC2_CD_GPIO	IMX_GPIO_NR(2, 2)
-#define USDHC3_CD_GPIO	IMX_GPIO_NR(2, 0)
-
-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 USDHC2_BASE_ADDR:
-		ret = !gpio_get_value(USDHC2_CD_GPIO);
-		break;
-	case USDHC3_BASE_ADDR:
-		ret = !gpio_get_value(USDHC3_CD_GPIO);
-		break;
-	case USDHC4_BASE_ADDR:
-		ret = 1; /* eMMC/uSDHC4 is always present */
-		break;
-	}
-	return ret;
-}
-
-int board_mmc_init(bd_t *bis)
-{
-	/*
-	 * (U-Boot device node)    (Physical Port)
-	 * mmc0                    SD2
-	 * mmc1                    SD3
-	 * mmc2                    eMMC
-	 */
-	int i, ret;
-	for (i = 0; i < CONFIG_SYS_FSL_USDHC_NUM; i++) {
-		switch (i) {
-		case 0:
-			imx_iomux_v3_setup_multiple_pads(
-				usdhc2_pads, ARRAY_SIZE(usdhc2_pads));
-			gpio_request(USDHC2_CD_GPIO, "MMC0_CD");
-			gpio_direction_input(USDHC2_CD_GPIO);
-			usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC2_CLK);
-			break;
-		case 1:
-			imx_iomux_v3_setup_multiple_pads(
-				usdhc3_pads, ARRAY_SIZE(usdhc3_pads));
-			gpio_request(USDHC3_CD_GPIO, "MMC1_CD");
-			gpio_direction_input(USDHC3_CD_GPIO);
-			usdhc_cfg[1].sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK);
-			break;
-		case 2:
-			imx_iomux_v3_setup_multiple_pads(
-				usdhc4_pads, ARRAY_SIZE(usdhc4_pads));
-			usdhc_cfg[2].sdhc_clk = mxc_get_clock(MXC_ESDHC4_CLK);
-			break;
-		default:
-			printf("Warning: you configured more USDHC controllers"
-			       "(%d) then supported by the board (%d)\n",
-			       i + 1, CONFIG_SYS_FSL_USDHC_NUM);
-			return -EINVAL;
-		}
-		ret = fsl_esdhc_initialize(bis, &usdhc_cfg[i]);
-		if (ret)
-			return ret;
-	}
-	return 0;
-}
-
 /* set environment device to boot device when booting from SD */
 int board_mmc_get_env_dev(int devno)
 {
diff --git a/configs/tbs2910_defconfig b/configs/tbs2910_defconfig
index 54e34df6aa..4d755c88c3 100644
--- a/configs/tbs2910_defconfig
+++ b/configs/tbs2910_defconfig
@@ -46,6 +46,7 @@ CONFIG_DM_GPIO=y
 CONFIG_DM_I2C=y
 CONFIG_SYS_I2C_MXC=y
 CONFIG_DM_KEYBOARD=y
+CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_PHYLIB=y
 CONFIG_MII=y
diff --git a/include/configs/tbs2910.h b/include/configs/tbs2910.h
index a211b9d611..f31cadd951 100644
--- a/include/configs/tbs2910.h
+++ b/include/configs/tbs2910.h
@@ -40,13 +40,6 @@
 #define CONFIG_MXC_UART
 #define CONFIG_MXC_UART_BASE		UART1_BASE /* select UART1/UART2 */

-/* Filesystems / image support */
-
-/* MMC */
-#define CONFIG_SYS_FSL_USDHC_NUM	3
-#define CONFIG_SYS_FSL_ESDHC_ADDR	USDHC4_BASE_ADDR
-#define CONFIG_SUPPORT_EMMC_BOOT
-
 /* Ethernet */
 #define CONFIG_FEC_MXC
 #define CONFIG_FEC_MXC
--
2.17.1

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

* [U-Boot] [PATCH v2 11/23] apalis_imx6: migrate mmc and sata to using driver model
  2019-02-25 10:39   ` Soeren Moch
@ 2019-03-01 12:20     ` Soeren Moch
  2019-03-01 12:29       ` Marcel Ziswiler
  0 siblings, 1 reply; 654+ messages in thread
From: Soeren Moch @ 2019-03-01 12:20 UTC (permalink / raw)
  To: u-boot



On 25.02.19 11:39, Soeren Moch wrote:
>
> On 08.02.19 18:12, Marcel Ziswiler wrote:
>> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>>
>> Migrate MMC and SATA to using driver model.
>>
>> While at it also enable SCSI driver model.
>>
>> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> [also reply to v2 of this series to avoid that this gets lost in patchwork]
>
> Hi Marcel,
>
> Thank you for providing this solution to keep SATA working on i.MX6
> under DM_SCSI.
> I also want to use this on a tbs2910 board, there was a long list of
> other boards needing this functionality [1].
>
> Can you implement the UCLASS at a more general place, e.g.
> drivers/ata/dwc_ahsata.c directly, instead of your board file? So this
> functionality could easily be enabled for other boards.
>
> Thank you,
> Soeren
>
> [1] https://lists.denx.de/pipermail/u-boot/2018-November/349368.html
>
>
Since there was no feedback on this so far, I sent a proposal here:
https://lists.denx.de/pipermail/u-boot/2019-March/360521.html

Regards,
Soeren

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

* [U-Boot] [PATCH v2 11/23] apalis_imx6: migrate mmc and sata to using driver model
  2019-03-01 12:20     ` Soeren Moch
@ 2019-03-01 12:29       ` Marcel Ziswiler
  0 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-03-01 12:29 UTC (permalink / raw)
  To: u-boot

Hi Soeren

On Fri, 2019-03-01 at 13:20 +0100, Soeren Moch wrote:
> 
> On 25.02.19 11:39, Soeren Moch wrote:
> > On 08.02.19 18:12, Marcel Ziswiler wrote:
> > > From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> > > 
> > > Migrate MMC and SATA to using driver model.
> > > 
> > > While at it also enable SCSI driver model.
> > > 
> > > Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> > [also reply to v2 of this series to avoid that this gets lost in
> > patchwork]
> > 
> > Hi Marcel,
> > 
> > Thank you for providing this solution to keep SATA working on i.MX6
> > under DM_SCSI.
> > I also want to use this on a tbs2910 board, there was a long list
> > of
> > other boards needing this functionality [1].
> > 
> > Can you implement the UCLASS at a more general place, e.g.
> > drivers/ata/dwc_ahsata.c directly, instead of your board file? So
> > this
> > functionality could easily be enabled for other boards.
> > 
> > Thank you,
> > Soeren
> > 
> > [1] 
> > https://lists.denx.de/pipermail/u-boot/2018-November/349368.html
> > 
> > 
> Since there was no feedback on this so far, I sent a proposal here:
> https://lists.denx.de/pipermail/u-boot/2019-March/360521.html

Yeah, sorry. I got trapped at the Embedded World in Nürnberg and your
message disappeared in the spew of emails I just now managed to get on
top off again. I will give your proposal a try and will re-work my
patch set accordingly. Thanks for cleaning up this mess!

> Regards,
> Soeren

Cheers

Marcel

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

* [U-Boot] [PATCH v4 22/22] pcm052: bk4: Add board_phy_config() for BK4 to setup ksz8081 phy
  2019-02-13 21:46 ` [U-Boot] [PATCH v4 22/22] pcm052: bk4: Add board_phy_config() for BK4 to setup ksz8081 phy Lukasz Majewski
@ 2019-03-04 22:26   ` Joe Hershberger
  2019-03-04 22:35     ` Lukasz Majewski
  0 siblings, 1 reply; 654+ messages in thread
From: Joe Hershberger @ 2019-03-04 22:26 UTC (permalink / raw)
  To: u-boot

On Wed, Feb 13, 2019 at 3:51 PM Lukasz Majewski <lukma@denx.de> wrote:
>
> BK4 requires setup of 50MHz reference clock for its KSZ8081 PHY devices.
>
> Signed-off-by: Lukasz Majewski <lukma@denx.de>

Acked-by: Joe Hershberger <joe.hershberger@ni.com>

> ---
>
> Changes in v4: None
> Changes in v3: None
> Changes in v2: None
>
>  board/phytec/pcm052/pcm052.c | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
>
> diff --git a/board/phytec/pcm052/pcm052.c b/board/phytec/pcm052/pcm052.c
> index 1e443a5850..c30df5df9d 100644
> --- a/board/phytec/pcm052/pcm052.c
> +++ b/board/phytec/pcm052/pcm052.c
> @@ -15,6 +15,7 @@
>  #include <asm/arch/clock.h>
>  #include <led.h>
>  #include <environment.h>
> +#include <miiphy.h>
>
>  DECLARE_GLOBAL_DATA_PTR;
>
> @@ -382,6 +383,21 @@ int board_late_init(void)
>
>         return 0;
>  }
> +
> +/**
> + * KSZ8081
> + */
> +#define MII_KSZ8081_REFERENCE_CLOCK_SELECT     0x1f
> +#define RMII_50MHz_CLOCK       0x8180
> +
> +int board_phy_config(struct phy_device *phydev)
> +{
> +       /* Set 50 MHz reference clock */
> +       phy_write(phydev, MDIO_DEVAD_NONE, MII_KSZ8081_REFERENCE_CLOCK_SELECT,
> +                 RMII_50MHz_CLOCK);

Is it reasonable to use the clock infrastructure? Not necessarily
instead of fixing this now, but would be a good direction.

> +
> +       return genphy_config(phydev);
> +}
>  #endif /* CONFIG_TARGET_BK4R1 */
>
>  int checkboard(void)
> --
> 2.11.0
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

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

* [U-Boot] [PATCH v4 22/22] pcm052: bk4: Add board_phy_config() for BK4 to setup ksz8081 phy
  2019-03-04 22:26   ` Joe Hershberger
@ 2019-03-04 22:35     ` Lukasz Majewski
  0 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-03-04 22:35 UTC (permalink / raw)
  To: u-boot

Hi Joe,

> On Wed, Feb 13, 2019 at 3:51 PM Lukasz Majewski <lukma@denx.de> wrote:
> >
> > BK4 requires setup of 50MHz reference clock for its KSZ8081 PHY
> > devices.
> >
> > Signed-off-by: Lukasz Majewski <lukma@denx.de>  
> 
> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
> 
> > ---
> >
> > Changes in v4: None
> > Changes in v3: None
> > Changes in v2: None
> >
> >  board/phytec/pcm052/pcm052.c | 16 ++++++++++++++++
> >  1 file changed, 16 insertions(+)
> >
> > diff --git a/board/phytec/pcm052/pcm052.c
> > b/board/phytec/pcm052/pcm052.c index 1e443a5850..c30df5df9d 100644
> > --- a/board/phytec/pcm052/pcm052.c
> > +++ b/board/phytec/pcm052/pcm052.c
> > @@ -15,6 +15,7 @@
> >  #include <asm/arch/clock.h>
> >  #include <led.h>
> >  #include <environment.h>
> > +#include <miiphy.h>
> >
> >  DECLARE_GLOBAL_DATA_PTR;
> >
> > @@ -382,6 +383,21 @@ int board_late_init(void)
> >
> >         return 0;
> >  }
> > +
> > +/**
> > + * KSZ8081
> > + */
> > +#define MII_KSZ8081_REFERENCE_CLOCK_SELECT     0x1f
> > +#define RMII_50MHz_CLOCK       0x8180
> > +
> > +int board_phy_config(struct phy_device *phydev)
> > +{
> > +       /* Set 50 MHz reference clock */
> > +       phy_write(phydev, MDIO_DEVAD_NONE,
> > MII_KSZ8081_REFERENCE_CLOCK_SELECT,
> > +                 RMII_50MHz_CLOCK);  
> 
> Is it reasonable to use the clock infrastructure?

Yes, I do have in the back of my head that this shall be done via clock
API. However, it is a long way to and I would like first to have the
DM/DTS cleanup patches in main line.

> Not necessarily
> instead of fixing this now, but would be a good direction.
> 
> > +
> > +       return genphy_config(phydev);
> > +}
> >  #endif /* CONFIG_TARGET_BK4R1 */
> >
> >  int checkboard(void)
> > --
> > 2.11.0
> >
> > _______________________________________________
> > U-Boot mailing list
> > U-Boot at lists.denx.de
> > https://lists.denx.de/listinfo/u-boot  




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190304/fa20d279/attachment.sig>

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

* [U-Boot] [PATCH RESEND 01/10] pinctrl: imx8: add i.MX8QM compatible
@ 2019-03-05  2:32 Peng Fan
  2019-03-05  2:32 ` [U-Boot] [PATCH RESEND 02/10] dt-bindings: pinctrl: add i.MX8QM pads definition Peng Fan
                   ` (9 more replies)
  0 siblings, 10 replies; 654+ messages in thread
From: Peng Fan @ 2019-03-05  2:32 UTC (permalink / raw)
  To: u-boot

Add i.MX8QM compatible

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 drivers/pinctrl/nxp/pinctrl-imx8.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/pinctrl/nxp/pinctrl-imx8.c b/drivers/pinctrl/nxp/pinctrl-imx8.c
index 0738da0ebe..c1b0ca438a 100644
--- a/drivers/pinctrl/nxp/pinctrl-imx8.c
+++ b/drivers/pinctrl/nxp/pinctrl-imx8.c
@@ -25,6 +25,7 @@ static int imx8_pinctrl_probe(struct udevice *dev)
 
 static const struct udevice_id imx8_pinctrl_match[] = {
 	{ .compatible = "fsl,imx8qxp-iomuxc", .data = (ulong)&imx8_pinctrl_soc_info },
+	{ .compatible = "fsl,imx8qm-iomuxc", .data = (ulong)&imx8_pinctrl_soc_info },
 	{ /* sentinel */ }
 };
 
-- 
2.16.4

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

* [U-Boot] [PATCH RESEND 02/10] dt-bindings: pinctrl: add i.MX8QM pads definition
  2019-03-05  2:32 [U-Boot] [PATCH RESEND 01/10] pinctrl: imx8: add i.MX8QM compatible Peng Fan
@ 2019-03-05  2:32 ` Peng Fan
  2019-03-05  2:32 ` [U-Boot] [PATCH RESEND 03/10] dt-bindings: clock: dt-bindings: pinctrl: add i.MX8QM clocks definition Peng Fan
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2019-03-05  2:32 UTC (permalink / raw)
  To: u-boot

Add i.MX8QM pads definition

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 include/dt-bindings/pinctrl/pads-imx8qm.h | 961 ++++++++++++++++++++++++++++++
 1 file changed, 961 insertions(+)
 create mode 100644 include/dt-bindings/pinctrl/pads-imx8qm.h

diff --git a/include/dt-bindings/pinctrl/pads-imx8qm.h b/include/dt-bindings/pinctrl/pads-imx8qm.h
new file mode 100644
index 0000000000..e980fd55ed
--- /dev/null
+++ b/include/dt-bindings/pinctrl/pads-imx8qm.h
@@ -0,0 +1,961 @@
+/* SPDX-License-Identifier:     GPL-2.0+ */
+/*
+ * Copyright 2018 NXP
+ */
+
+#ifndef SC_PADS_H
+#define SC_PADS_H
+
+#define SC_P_SIM0_CLK                            0	/* DMA.SIM0.CLK, LSIO.GPIO0.IO00 */
+#define SC_P_SIM0_RST                            1	/* DMA.SIM0.RST, LSIO.GPIO0.IO01 */
+#define SC_P_SIM0_IO                             2	/* DMA.SIM0.IO, LSIO.GPIO0.IO02 */
+#define SC_P_SIM0_PD                             3	/* DMA.SIM0.PD, DMA.I2C3.SCL, LSIO.GPIO0.IO03 */
+#define SC_P_SIM0_POWER_EN                       4	/* DMA.SIM0.POWER_EN, DMA.I2C3.SDA, LSIO.GPIO0.IO04 */
+#define SC_P_SIM0_GPIO0_00                       5	/* DMA.SIM0.POWER_EN, LSIO.GPIO0.IO05 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_SIM           6	/*  */
+#define SC_P_M40_I2C0_SCL                        7	/* M40.I2C0.SCL, M40.UART0.RX, M40.GPIO0.IO02, LSIO.GPIO0.IO06 */
+#define SC_P_M40_I2C0_SDA                        8	/* M40.I2C0.SDA, M40.UART0.TX, M40.GPIO0.IO03, LSIO.GPIO0.IO07 */
+#define SC_P_M40_GPIO0_00                        9	/* M40.GPIO0.IO00, M40.TPM0.CH0, DMA.UART4.RX, LSIO.GPIO0.IO08 */
+#define SC_P_M40_GPIO0_01                        10	/* M40.GPIO0.IO01, M40.TPM0.CH1, DMA.UART4.TX, LSIO.GPIO0.IO09 */
+#define SC_P_M41_I2C0_SCL                        11	/* M41.I2C0.SCL, M41.UART0.RX, M41.GPIO0.IO02, LSIO.GPIO0.IO10 */
+#define SC_P_M41_I2C0_SDA                        12	/* M41.I2C0.SDA, M41.UART0.TX, M41.GPIO0.IO03, LSIO.GPIO0.IO11 */
+#define SC_P_M41_GPIO0_00                        13	/* M41.GPIO0.IO00, M41.TPM0.CH0, DMA.UART3.RX, LSIO.GPIO0.IO12 */
+#define SC_P_M41_GPIO0_01                        14	/* M41.GPIO0.IO01, M41.TPM0.CH1, DMA.UART3.TX, LSIO.GPIO0.IO13 */
+#define SC_P_GPT0_CLK                            15	/* LSIO.GPT0.CLK, DMA.I2C1.SCL, LSIO.KPP0.COL4, LSIO.GPIO0.IO14 */
+#define SC_P_GPT0_CAPTURE                        16	/* LSIO.GPT0.CAPTURE, DMA.I2C1.SDA, LSIO.KPP0.COL5, LSIO.GPIO0.IO15 */
+#define SC_P_GPT0_COMPARE                        17	/* LSIO.GPT0.COMPARE, LSIO.PWM3.OUT, LSIO.KPP0.COL6, LSIO.GPIO0.IO16 */
+#define SC_P_GPT1_CLK                            18	/* LSIO.GPT1.CLK, DMA.I2C2.SCL, LSIO.KPP0.COL7, LSIO.GPIO0.IO17 */
+#define SC_P_GPT1_CAPTURE                        19	/* LSIO.GPT1.CAPTURE, DMA.I2C2.SDA, LSIO.KPP0.ROW4, LSIO.GPIO0.IO18 */
+#define SC_P_GPT1_COMPARE                        20	/* LSIO.GPT1.COMPARE, LSIO.PWM2.OUT, LSIO.KPP0.ROW5, LSIO.GPIO0.IO19 */
+#define SC_P_UART0_RX                            21	/* DMA.UART0.RX, SCU.UART0.RX, LSIO.GPIO0.IO20 */
+#define SC_P_UART0_TX                            22	/* DMA.UART0.TX, SCU.UART0.TX, LSIO.GPIO0.IO21 */
+#define SC_P_UART0_RTS_B                         23	/* DMA.UART0.RTS_B, LSIO.PWM0.OUT, DMA.UART2.RX, LSIO.GPIO0.IO22 */
+#define SC_P_UART0_CTS_B                         24	/* DMA.UART0.CTS_B, LSIO.PWM1.OUT, DMA.UART2.TX, LSIO.GPIO0.IO23 */
+#define SC_P_UART1_TX                            25	/* DMA.UART1.TX, DMA.SPI3.SCK, LSIO.GPIO0.IO24 */
+#define SC_P_UART1_RX                            26	/* DMA.UART1.RX, DMA.SPI3.SDO, LSIO.GPIO0.IO25 */
+#define SC_P_UART1_RTS_B                         27	/* DMA.UART1.RTS_B, DMA.SPI3.SDI, DMA.UART1.CTS_B, LSIO.GPIO0.IO26 */
+#define SC_P_UART1_CTS_B                         28	/* DMA.UART1.CTS_B, DMA.SPI3.CS0, DMA.UART1.RTS_B, LSIO.GPIO0.IO27 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_GPIOLH        29	/*  */
+#define SC_P_SCU_PMIC_MEMC_ON                    30	/* SCU.GPIO0.IOXX_PMIC_MEMC_ON */
+#define SC_P_SCU_WDOG_OUT                        31	/* SCU.WDOG0.WDOG_OUT */
+#define SC_P_PMIC_I2C_SDA                        32	/* SCU.PMIC_I2C.SDA */
+#define SC_P_PMIC_I2C_SCL                        33	/* SCU.PMIC_I2C.SCL */
+#define SC_P_PMIC_EARLY_WARNING                  34	/* SCU.PMIC_EARLY_WARNING */
+#define SC_P_PMIC_INT_B                          35	/* SCU.DSC.PMIC_INT_B */
+#define SC_P_SCU_GPIO0_00                        36	/* SCU.GPIO0.IO00, SCU.UART0.RX, LSIO.GPIO0.IO28 */
+#define SC_P_SCU_GPIO0_01                        37	/* SCU.GPIO0.IO01, SCU.UART0.TX, LSIO.GPIO0.IO29 */
+#define SC_P_SCU_GPIO0_02                        38	/* SCU.GPIO0.IO02, SCU.GPIO0.IOXX_PMIC_GPU0_ON, LSIO.GPIO0.IO30 */
+#define SC_P_SCU_GPIO0_03                        39	/* SCU.GPIO0.IO03, SCU.GPIO0.IOXX_PMIC_GPU1_ON, LSIO.GPIO0.IO31 */
+#define SC_P_SCU_GPIO0_04                        40	/* SCU.GPIO0.IO04, SCU.GPIO0.IOXX_PMIC_A72_ON, LSIO.GPIO1.IO00 */
+#define SC_P_SCU_GPIO0_05                        41	/* SCU.GPIO0.IO05, SCU.GPIO0.IOXX_PMIC_A53_ON, LSIO.GPIO1.IO01 */
+#define SC_P_SCU_GPIO0_06                        42	/* SCU.GPIO0.IO06, SCU.TPM0.CH0, LSIO.GPIO1.IO02 */
+#define SC_P_SCU_GPIO0_07                        43	/* SCU.GPIO0.IO07, SCU.TPM0.CH1, SCU.DSC.RTC_CLOCK_OUTPUT_32K, LSIO.GPIO1.IO03 */
+#define SC_P_SCU_BOOT_MODE0                      44	/* SCU.DSC.BOOT_MODE0 */
+#define SC_P_SCU_BOOT_MODE1                      45	/* SCU.DSC.BOOT_MODE1 */
+#define SC_P_SCU_BOOT_MODE2                      46	/* SCU.DSC.BOOT_MODE2 */
+#define SC_P_SCU_BOOT_MODE3                      47	/* SCU.DSC.BOOT_MODE3 */
+#define SC_P_SCU_BOOT_MODE4                      48	/* SCU.DSC.BOOT_MODE4, SCU.PMIC_I2C.SCL */
+#define SC_P_SCU_BOOT_MODE5                      49	/* SCU.DSC.BOOT_MODE5, SCU.PMIC_I2C.SDA */
+#define SC_P_LVDS0_GPIO00                        50	/* LVDS0.GPIO0.IO00, LVDS0.PWM0.OUT, LSIO.GPIO1.IO04 */
+#define SC_P_LVDS0_GPIO01                        51	/* LVDS0.GPIO0.IO01, LSIO.GPIO1.IO05 */
+#define SC_P_LVDS0_I2C0_SCL                      52	/* LVDS0.I2C0.SCL, LVDS0.GPIO0.IO02, LSIO.GPIO1.IO06 */
+#define SC_P_LVDS0_I2C0_SDA                      53	/* LVDS0.I2C0.SDA, LVDS0.GPIO0.IO03, LSIO.GPIO1.IO07 */
+#define SC_P_LVDS0_I2C1_SCL                      54	/* LVDS0.I2C1.SCL, DMA.UART2.TX, LSIO.GPIO1.IO08 */
+#define SC_P_LVDS0_I2C1_SDA                      55	/* LVDS0.I2C1.SDA, DMA.UART2.RX, LSIO.GPIO1.IO09 */
+#define SC_P_LVDS1_GPIO00                        56	/* LVDS1.GPIO0.IO00, LVDS1.PWM0.OUT, LSIO.GPIO1.IO10 */
+#define SC_P_LVDS1_GPIO01                        57	/* LVDS1.GPIO0.IO01, LSIO.GPIO1.IO11 */
+#define SC_P_LVDS1_I2C0_SCL                      58	/* LVDS1.I2C0.SCL, LVDS1.GPIO0.IO02, LSIO.GPIO1.IO12 */
+#define SC_P_LVDS1_I2C0_SDA                      59	/* LVDS1.I2C0.SDA, LVDS1.GPIO0.IO03, LSIO.GPIO1.IO13 */
+#define SC_P_LVDS1_I2C1_SCL                      60	/* LVDS1.I2C1.SCL, DMA.UART3.TX, LSIO.GPIO1.IO14 */
+#define SC_P_LVDS1_I2C1_SDA                      61	/* LVDS1.I2C1.SDA, DMA.UART3.RX, LSIO.GPIO1.IO15 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_LVDSGPIO      62	/*  */
+#define SC_P_MIPI_DSI0_I2C0_SCL                  63	/* MIPI_DSI0.I2C0.SCL, LSIO.GPIO1.IO16 */
+#define SC_P_MIPI_DSI0_I2C0_SDA                  64	/* MIPI_DSI0.I2C0.SDA, LSIO.GPIO1.IO17 */
+#define SC_P_MIPI_DSI0_GPIO0_00                  65	/* MIPI_DSI0.GPIO0.IO00, MIPI_DSI0.PWM0.OUT, LSIO.GPIO1.IO18 */
+#define SC_P_MIPI_DSI0_GPIO0_01                  66	/* MIPI_DSI0.GPIO0.IO01, LSIO.GPIO1.IO19 */
+#define SC_P_MIPI_DSI1_I2C0_SCL                  67	/* MIPI_DSI1.I2C0.SCL, LSIO.GPIO1.IO20 */
+#define SC_P_MIPI_DSI1_I2C0_SDA                  68	/* MIPI_DSI1.I2C0.SDA, LSIO.GPIO1.IO21 */
+#define SC_P_MIPI_DSI1_GPIO0_00                  69	/* MIPI_DSI1.GPIO0.IO00, MIPI_DSI1.PWM0.OUT, LSIO.GPIO1.IO22 */
+#define SC_P_MIPI_DSI1_GPIO0_01                  70	/* MIPI_DSI1.GPIO0.IO01, LSIO.GPIO1.IO23 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_MIPIDSIGPIO   71	/*  */
+#define SC_P_MIPI_CSI0_MCLK_OUT                  72	/* MIPI_CSI0.ACM.MCLK_OUT, LSIO.GPIO1.IO24 */
+#define SC_P_MIPI_CSI0_I2C0_SCL                  73	/* MIPI_CSI0.I2C0.SCL, LSIO.GPIO1.IO25 */
+#define SC_P_MIPI_CSI0_I2C0_SDA                  74	/* MIPI_CSI0.I2C0.SDA, LSIO.GPIO1.IO26 */
+#define SC_P_MIPI_CSI0_GPIO0_00                  75	/* MIPI_CSI0.GPIO0.IO00, DMA.I2C0.SCL, MIPI_CSI1.I2C0.SCL, LSIO.GPIO1.IO27 */
+#define SC_P_MIPI_CSI0_GPIO0_01                  76	/* MIPI_CSI0.GPIO0.IO01, DMA.I2C0.SDA, MIPI_CSI1.I2C0.SDA, LSIO.GPIO1.IO28 */
+#define SC_P_MIPI_CSI1_MCLK_OUT                  77	/* MIPI_CSI1.ACM.MCLK_OUT, LSIO.GPIO1.IO29 */
+#define SC_P_MIPI_CSI1_GPIO0_00                  78	/* MIPI_CSI1.GPIO0.IO00, DMA.UART4.RX, LSIO.GPIO1.IO30 */
+#define SC_P_MIPI_CSI1_GPIO0_01                  79	/* MIPI_CSI1.GPIO0.IO01, DMA.UART4.TX, LSIO.GPIO1.IO31 */
+#define SC_P_MIPI_CSI1_I2C0_SCL                  80	/* MIPI_CSI1.I2C0.SCL, LSIO.GPIO2.IO00 */
+#define SC_P_MIPI_CSI1_I2C0_SDA                  81	/* MIPI_CSI1.I2C0.SDA, LSIO.GPIO2.IO01 */
+#define SC_P_HDMI_TX0_TS_SCL                     82	/* HDMI_TX0.I2C0.SCL, DMA.I2C0.SCL, LSIO.GPIO2.IO02 */
+#define SC_P_HDMI_TX0_TS_SDA                     83	/* HDMI_TX0.I2C0.SDA, DMA.I2C0.SDA, LSIO.GPIO2.IO03 */
+#define SC_P_COMP_CTL_GPIO_3V3_HDMIGPIO          84	/*  */
+#define SC_P_ESAI1_FSR                           85	/* AUD.ESAI1.FSR, LSIO.GPIO2.IO04 */
+#define SC_P_ESAI1_FST                           86	/* AUD.ESAI1.FST, AUD.SPDIF0.EXT_CLK, LSIO.GPIO2.IO05 */
+#define SC_P_ESAI1_SCKR                          87	/* AUD.ESAI1.SCKR, LSIO.GPIO2.IO06 */
+#define SC_P_ESAI1_SCKT                          88	/* AUD.ESAI1.SCKT, AUD.SAI2.RXC, AUD.SPDIF0.EXT_CLK, LSIO.GPIO2.IO07 */
+#define SC_P_ESAI1_TX0                           89	/* AUD.ESAI1.TX0, AUD.SAI2.RXD, AUD.SPDIF0.RX, LSIO.GPIO2.IO08 */
+#define SC_P_ESAI1_TX1                           90	/* AUD.ESAI1.TX1, AUD.SAI2.RXFS, AUD.SPDIF0.TX, LSIO.GPIO2.IO09 */
+#define SC_P_ESAI1_TX2_RX3                       91	/* AUD.ESAI1.TX2_RX3, AUD.SPDIF0.RX, LSIO.GPIO2.IO10 */
+#define SC_P_ESAI1_TX3_RX2                       92	/* AUD.ESAI1.TX3_RX2, AUD.SPDIF0.TX, LSIO.GPIO2.IO11 */
+#define SC_P_ESAI1_TX4_RX1                       93	/* AUD.ESAI1.TX4_RX1, LSIO.GPIO2.IO12 */
+#define SC_P_ESAI1_TX5_RX0                       94	/* AUD.ESAI1.TX5_RX0, LSIO.GPIO2.IO13 */
+#define SC_P_SPDIF0_RX                           95	/* AUD.SPDIF0.RX, AUD.MQS.R, AUD.ACM.MCLK_IN1, LSIO.GPIO2.IO14 */
+#define SC_P_SPDIF0_TX                           96	/* AUD.SPDIF0.TX, AUD.MQS.L, AUD.ACM.MCLK_OUT1, LSIO.GPIO2.IO15 */
+#define SC_P_SPDIF0_EXT_CLK                      97	/* AUD.SPDIF0.EXT_CLK, DMA.DMA0.REQ_IN0, LSIO.GPIO2.IO16 */
+#define SC_P_SPI3_SCK                            98	/* DMA.SPI3.SCK, LSIO.GPIO2.IO17 */
+#define SC_P_SPI3_SDO                            99	/* DMA.SPI3.SDO, DMA.FTM.CH0, LSIO.GPIO2.IO18 */
+#define SC_P_SPI3_SDI                            100	/* DMA.SPI3.SDI, DMA.FTM.CH1, LSIO.GPIO2.IO19 */
+#define SC_P_SPI3_CS0                            101	/* DMA.SPI3.CS0, DMA.FTM.CH2, LSIO.GPIO2.IO20 */
+#define SC_P_SPI3_CS1                            102	/* DMA.SPI3.CS1, LSIO.GPIO2.IO21 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_GPIORHB       103	/*  */
+#define SC_P_ESAI0_FSR                           104	/* AUD.ESAI0.FSR, LSIO.GPIO2.IO22 */
+#define SC_P_ESAI0_FST                           105	/* AUD.ESAI0.FST, LSIO.GPIO2.IO23 */
+#define SC_P_ESAI0_SCKR                          106	/* AUD.ESAI0.SCKR, LSIO.GPIO2.IO24 */
+#define SC_P_ESAI0_SCKT                          107	/* AUD.ESAI0.SCKT, LSIO.GPIO2.IO25 */
+#define SC_P_ESAI0_TX0                           108	/* AUD.ESAI0.TX0, LSIO.GPIO2.IO26 */
+#define SC_P_ESAI0_TX1                           109	/* AUD.ESAI0.TX1, LSIO.GPIO2.IO27 */
+#define SC_P_ESAI0_TX2_RX3                       110	/* AUD.ESAI0.TX2_RX3, LSIO.GPIO2.IO28 */
+#define SC_P_ESAI0_TX3_RX2                       111	/* AUD.ESAI0.TX3_RX2, LSIO.GPIO2.IO29 */
+#define SC_P_ESAI0_TX4_RX1                       112	/* AUD.ESAI0.TX4_RX1, LSIO.GPIO2.IO30 */
+#define SC_P_ESAI0_TX5_RX0                       113	/* AUD.ESAI0.TX5_RX0, LSIO.GPIO2.IO31 */
+#define SC_P_MCLK_IN0                            114	/* AUD.ACM.MCLK_IN0, AUD.ESAI0.RX_HF_CLK, AUD.ESAI1.RX_HF_CLK, LSIO.GPIO3.IO00 */
+#define SC_P_MCLK_OUT0                           115	/* AUD.ACM.MCLK_OUT0, AUD.ESAI0.TX_HF_CLK, AUD.ESAI1.TX_HF_CLK, LSIO.GPIO3.IO01 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_GPIORHC       116	/*  */
+#define SC_P_SPI0_SCK                            117	/* DMA.SPI0.SCK, AUD.SAI0.RXC, LSIO.GPIO3.IO02 */
+#define SC_P_SPI0_SDO                            118	/* DMA.SPI0.SDO, AUD.SAI0.TXD, LSIO.GPIO3.IO03 */
+#define SC_P_SPI0_SDI                            119	/* DMA.SPI0.SDI, AUD.SAI0.RXD, LSIO.GPIO3.IO04 */
+#define SC_P_SPI0_CS0                            120	/* DMA.SPI0.CS0, AUD.SAI0.RXFS, LSIO.GPIO3.IO05 */
+#define SC_P_SPI0_CS1                            121	/* DMA.SPI0.CS1, AUD.SAI0.TXC, LSIO.GPIO3.IO06 */
+#define SC_P_SPI2_SCK                            122	/* DMA.SPI2.SCK, LSIO.GPIO3.IO07 */
+#define SC_P_SPI2_SDO                            123	/* DMA.SPI2.SDO, LSIO.GPIO3.IO08 */
+#define SC_P_SPI2_SDI                            124	/* DMA.SPI2.SDI, LSIO.GPIO3.IO09 */
+#define SC_P_SPI2_CS0                            125	/* DMA.SPI2.CS0, LSIO.GPIO3.IO10 */
+#define SC_P_SPI2_CS1                            126	/* DMA.SPI2.CS1, AUD.SAI0.TXFS, LSIO.GPIO3.IO11 */
+#define SC_P_SAI1_RXC                            127	/* AUD.SAI1.RXC, AUD.SAI0.TXD, LSIO.GPIO3.IO12 */
+#define SC_P_SAI1_RXD                            128	/* AUD.SAI1.RXD, AUD.SAI0.TXFS, LSIO.GPIO3.IO13 */
+#define SC_P_SAI1_RXFS                           129	/* AUD.SAI1.RXFS, AUD.SAI0.RXD, LSIO.GPIO3.IO14 */
+#define SC_P_SAI1_TXC                            130	/* AUD.SAI1.TXC, AUD.SAI0.TXC, LSIO.GPIO3.IO15 */
+#define SC_P_SAI1_TXD                            131	/* AUD.SAI1.TXD, AUD.SAI1.RXC, LSIO.GPIO3.IO16 */
+#define SC_P_SAI1_TXFS                           132	/* AUD.SAI1.TXFS, AUD.SAI1.RXFS, LSIO.GPIO3.IO17 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_GPIORHT       133	/*  */
+#define SC_P_ADC_IN7                             134	/* DMA.ADC1.IN3, DMA.SPI1.CS1, LSIO.KPP0.ROW3, LSIO.GPIO3.IO25 */
+#define SC_P_ADC_IN6                             135	/* DMA.ADC1.IN2, DMA.SPI1.CS0, LSIO.KPP0.ROW2, LSIO.GPIO3.IO24 */
+#define SC_P_ADC_IN5                             136	/* DMA.ADC1.IN1, DMA.SPI1.SDI, LSIO.KPP0.ROW1, LSIO.GPIO3.IO23 */
+#define SC_P_ADC_IN4                             137	/* DMA.ADC1.IN0, DMA.SPI1.SDO, LSIO.KPP0.ROW0, LSIO.GPIO3.IO22 */
+#define SC_P_ADC_IN3                             138	/* DMA.ADC0.IN3, DMA.SPI1.SCK, LSIO.KPP0.COL3, LSIO.GPIO3.IO21 */
+#define SC_P_ADC_IN2                             139	/* DMA.ADC0.IN2, LSIO.KPP0.COL2, LSIO.GPIO3.IO20 */
+#define SC_P_ADC_IN1                             140	/* DMA.ADC0.IN1, LSIO.KPP0.COL1, LSIO.GPIO3.IO19 */
+#define SC_P_ADC_IN0                             141	/* DMA.ADC0.IN0, LSIO.KPP0.COL0, LSIO.GPIO3.IO18 */
+#define SC_P_MLB_SIG                             142	/* CONN.MLB.SIG, AUD.SAI3.RXC, LSIO.GPIO3.IO26 */
+#define SC_P_MLB_CLK                             143	/* CONN.MLB.CLK, AUD.SAI3.RXFS, LSIO.GPIO3.IO27 */
+#define SC_P_MLB_DATA                            144	/* CONN.MLB.DATA, AUD.SAI3.RXD, LSIO.GPIO3.IO28 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_GPIOLHT       145	/*  */
+#define SC_P_FLEXCAN0_RX                         146	/* DMA.FLEXCAN0.RX, LSIO.GPIO3.IO29 */
+#define SC_P_FLEXCAN0_TX                         147	/* DMA.FLEXCAN0.TX, LSIO.GPIO3.IO30 */
+#define SC_P_FLEXCAN1_RX                         148	/* DMA.FLEXCAN1.RX, LSIO.GPIO3.IO31 */
+#define SC_P_FLEXCAN1_TX                         149	/* DMA.FLEXCAN1.TX, LSIO.GPIO4.IO00 */
+#define SC_P_FLEXCAN2_RX                         150	/* DMA.FLEXCAN2.RX, LSIO.GPIO4.IO01 */
+#define SC_P_FLEXCAN2_TX                         151	/* DMA.FLEXCAN2.TX, LSIO.GPIO4.IO02 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_GPIOTHR       152	/*  */
+#define SC_P_USB_SS3_TC0                         153	/* DMA.I2C1.SCL, CONN.USB_OTG1.PWR, LSIO.GPIO4.IO03 */
+#define SC_P_USB_SS3_TC1                         154	/* DMA.I2C1.SCL, CONN.USB_OTG2.PWR, LSIO.GPIO4.IO04 */
+#define SC_P_USB_SS3_TC2                         155	/* DMA.I2C1.SDA, CONN.USB_OTG1.OC, LSIO.GPIO4.IO05 */
+#define SC_P_USB_SS3_TC3                         156	/* DMA.I2C1.SDA, CONN.USB_OTG2.OC, LSIO.GPIO4.IO06 */
+#define SC_P_COMP_CTL_GPIO_3V3_USB3IO            157	/*  */
+#define SC_P_USDHC1_RESET_B                      158	/* CONN.USDHC1.RESET_B, LSIO.GPIO4.IO07 */
+#define SC_P_USDHC1_VSELECT                      159	/* CONN.USDHC1.VSELECT, LSIO.GPIO4.IO08 */
+#define SC_P_USDHC2_RESET_B                      160	/* CONN.USDHC2.RESET_B, LSIO.GPIO4.IO09 */
+#define SC_P_USDHC2_VSELECT                      161	/* CONN.USDHC2.VSELECT, LSIO.GPIO4.IO10 */
+#define SC_P_USDHC2_WP                           162	/* CONN.USDHC2.WP, LSIO.GPIO4.IO11 */
+#define SC_P_USDHC2_CD_B                         163	/* CONN.USDHC2.CD_B, LSIO.GPIO4.IO12 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_VSELSEP       164	/*  */
+#define SC_P_ENET0_MDIO                          165	/* CONN.ENET0.MDIO, DMA.I2C4.SDA, LSIO.GPIO4.IO13 */
+#define SC_P_ENET0_MDC                           166	/* CONN.ENET0.MDC, DMA.I2C4.SCL, LSIO.GPIO4.IO14 */
+#define SC_P_ENET0_REFCLK_125M_25M               167	/* CONN.ENET0.REFCLK_125M_25M, CONN.ENET0.PPS, LSIO.GPIO4.IO15 */
+#define SC_P_ENET1_REFCLK_125M_25M               168	/* CONN.ENET1.REFCLK_125M_25M, CONN.ENET1.PPS, LSIO.GPIO4.IO16 */
+#define SC_P_ENET1_MDIO                          169	/* CONN.ENET1.MDIO, DMA.I2C4.SDA, LSIO.GPIO4.IO17 */
+#define SC_P_ENET1_MDC                           170	/* CONN.ENET1.MDC, DMA.I2C4.SCL, LSIO.GPIO4.IO18 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_GPIOCT        171	/*  */
+#define SC_P_QSPI1A_SS0_B                        172	/* LSIO.QSPI1A.SS0_B, LSIO.GPIO4.IO19 */
+#define SC_P_QSPI1A_SS1_B                        173	/* LSIO.QSPI1A.SS1_B, LSIO.QSPI1A.SCLK2, LSIO.GPIO4.IO20 */
+#define SC_P_QSPI1A_SCLK                         174	/* LSIO.QSPI1A.SCLK, LSIO.GPIO4.IO21 */
+#define SC_P_QSPI1A_DQS                          175	/* LSIO.QSPI1A.DQS, LSIO.GPIO4.IO22 */
+#define SC_P_QSPI1A_DATA3                        176	/* LSIO.QSPI1A.DATA3, DMA.I2C1.SDA, CONN.USB_OTG1.OC, LSIO.GPIO4.IO23 */
+#define SC_P_QSPI1A_DATA2                        177	/* LSIO.QSPI1A.DATA2, DMA.I2C1.SCL, CONN.USB_OTG2.PWR, LSIO.GPIO4.IO24 */
+#define SC_P_QSPI1A_DATA1                        178	/* LSIO.QSPI1A.DATA1, DMA.I2C1.SDA, CONN.USB_OTG2.OC, LSIO.GPIO4.IO25 */
+#define SC_P_QSPI1A_DATA0                        179	/* LSIO.QSPI1A.DATA0, LSIO.GPIO4.IO26 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_QSPI1         180	/*  */
+#define SC_P_QSPI0A_DATA0                        181	/* LSIO.QSPI0A.DATA0 */
+#define SC_P_QSPI0A_DATA1                        182	/* LSIO.QSPI0A.DATA1 */
+#define SC_P_QSPI0A_DATA2                        183	/* LSIO.QSPI0A.DATA2 */
+#define SC_P_QSPI0A_DATA3                        184	/* LSIO.QSPI0A.DATA3 */
+#define SC_P_QSPI0A_DQS                          185	/* LSIO.QSPI0A.DQS */
+#define SC_P_QSPI0A_SS0_B                        186	/* LSIO.QSPI0A.SS0_B */
+#define SC_P_QSPI0A_SS1_B                        187	/* LSIO.QSPI0A.SS1_B, LSIO.QSPI0A.SCLK2 */
+#define SC_P_QSPI0A_SCLK                         188	/* LSIO.QSPI0A.SCLK */
+#define SC_P_QSPI0B_SCLK                         189	/* LSIO.QSPI0B.SCLK */
+#define SC_P_QSPI0B_DATA0                        190	/* LSIO.QSPI0B.DATA0 */
+#define SC_P_QSPI0B_DATA1                        191	/* LSIO.QSPI0B.DATA1 */
+#define SC_P_QSPI0B_DATA2                        192	/* LSIO.QSPI0B.DATA2 */
+#define SC_P_QSPI0B_DATA3                        193	/* LSIO.QSPI0B.DATA3 */
+#define SC_P_QSPI0B_DQS                          194	/* LSIO.QSPI0B.DQS */
+#define SC_P_QSPI0B_SS0_B                        195	/* LSIO.QSPI0B.SS0_B */
+#define SC_P_QSPI0B_SS1_B                        196	/* LSIO.QSPI0B.SS1_B, LSIO.QSPI0B.SCLK2 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_QSPI0         197	/*  */
+#define SC_P_PCIE_CTRL0_CLKREQ_B                 198	/* HSIO.PCIE0.CLKREQ_B, LSIO.GPIO4.IO27 */
+#define SC_P_PCIE_CTRL0_WAKE_B                   199	/* HSIO.PCIE0.WAKE_B, LSIO.GPIO4.IO28 */
+#define SC_P_PCIE_CTRL0_PERST_B                  200	/* HSIO.PCIE0.PERST_B, LSIO.GPIO4.IO29 */
+#define SC_P_PCIE_CTRL1_CLKREQ_B                 201	/* HSIO.PCIE1.CLKREQ_B, DMA.I2C1.SDA, CONN.USB_OTG2.OC, LSIO.GPIO4.IO30 */
+#define SC_P_PCIE_CTRL1_WAKE_B                   202	/* HSIO.PCIE1.WAKE_B, DMA.I2C1.SCL, CONN.USB_OTG2.PWR, LSIO.GPIO4.IO31 */
+#define SC_P_PCIE_CTRL1_PERST_B                  203	/* HSIO.PCIE1.PERST_B, DMA.I2C1.SCL, CONN.USB_OTG1.PWR, LSIO.GPIO5.IO00 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_PCIESEP       204	/*  */
+#define SC_P_USB_HSIC0_DATA                      205	/* CONN.USB_HSIC0.DATA, DMA.I2C1.SDA, LSIO.GPIO5.IO01 */
+#define SC_P_USB_HSIC0_STROBE                    206	/* CONN.USB_HSIC0.STROBE, DMA.I2C1.SCL, LSIO.GPIO5.IO02 */
+#define SC_P_CALIBRATION_0_HSIC                  207	/*  */
+#define SC_P_CALIBRATION_1_HSIC                  208	/*  */
+#define SC_P_EMMC0_CLK                           209	/* CONN.EMMC0.CLK, CONN.NAND.READY_B */
+#define SC_P_EMMC0_CMD                           210	/* CONN.EMMC0.CMD, CONN.NAND.DQS, AUD.MQS.R, LSIO.GPIO5.IO03 */
+#define SC_P_EMMC0_DATA0                         211	/* CONN.EMMC0.DATA0, CONN.NAND.DATA00, LSIO.GPIO5.IO04 */
+#define SC_P_EMMC0_DATA1                         212	/* CONN.EMMC0.DATA1, CONN.NAND.DATA01, LSIO.GPIO5.IO05 */
+#define SC_P_EMMC0_DATA2                         213	/* CONN.EMMC0.DATA2, CONN.NAND.DATA02, LSIO.GPIO5.IO06 */
+#define SC_P_EMMC0_DATA3                         214	/* CONN.EMMC0.DATA3, CONN.NAND.DATA03, LSIO.GPIO5.IO07 */
+#define SC_P_EMMC0_DATA4                         215	/* CONN.EMMC0.DATA4, CONN.NAND.DATA04, LSIO.GPIO5.IO08 */
+#define SC_P_EMMC0_DATA5                         216	/* CONN.EMMC0.DATA5, CONN.NAND.DATA05, LSIO.GPIO5.IO09 */
+#define SC_P_EMMC0_DATA6                         217	/* CONN.EMMC0.DATA6, CONN.NAND.DATA06, LSIO.GPIO5.IO10 */
+#define SC_P_EMMC0_DATA7                         218	/* CONN.EMMC0.DATA7, CONN.NAND.DATA07, LSIO.GPIO5.IO11 */
+#define SC_P_EMMC0_STROBE                        219	/* CONN.EMMC0.STROBE, CONN.NAND.CLE, LSIO.GPIO5.IO12 */
+#define SC_P_EMMC0_RESET_B                       220	/* CONN.EMMC0.RESET_B, CONN.NAND.WP_B, CONN.USDHC1.VSELECT, LSIO.GPIO5.IO13 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_SD1FIX        221	/*  */
+#define SC_P_USDHC1_CLK                          222	/* CONN.USDHC1.CLK, AUD.MQS.R */
+#define SC_P_USDHC1_CMD                          223	/* CONN.USDHC1.CMD, AUD.MQS.L, LSIO.GPIO5.IO14 */
+#define SC_P_USDHC1_DATA0                        224	/* CONN.USDHC1.DATA0, CONN.NAND.RE_N, LSIO.GPIO5.IO15 */
+#define SC_P_USDHC1_DATA1                        225	/* CONN.USDHC1.DATA1, CONN.NAND.RE_P, LSIO.GPIO5.IO16 */
+#define SC_P_CTL_NAND_RE_P_N                     226	/*  */
+#define SC_P_USDHC1_DATA2                        227	/* CONN.USDHC1.DATA2, CONN.NAND.DQS_N, LSIO.GPIO5.IO17 */
+#define SC_P_USDHC1_DATA3                        228	/* CONN.USDHC1.DATA3, CONN.NAND.DQS_P, LSIO.GPIO5.IO18 */
+#define SC_P_CTL_NAND_DQS_P_N                    229	/*  */
+#define SC_P_USDHC1_DATA4                        230	/* CONN.USDHC1.DATA4, CONN.NAND.CE0_B, AUD.MQS.R, LSIO.GPIO5.IO19 */
+#define SC_P_USDHC1_DATA5                        231	/* CONN.USDHC1.DATA5, CONN.NAND.RE_B, AUD.MQS.L, LSIO.GPIO5.IO20 */
+#define SC_P_USDHC1_DATA6                        232	/* CONN.USDHC1.DATA6, CONN.NAND.WE_B, CONN.USDHC1.WP, LSIO.GPIO5.IO21 */
+#define SC_P_USDHC1_DATA7                        233	/* CONN.USDHC1.DATA7, CONN.NAND.ALE, CONN.USDHC1.CD_B, LSIO.GPIO5.IO22 */
+#define SC_P_USDHC1_STROBE                       234	/* CONN.USDHC1.STROBE, CONN.NAND.CE1_B, CONN.USDHC1.RESET_B, LSIO.GPIO5.IO23 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_VSEL2         235	/*  */
+#define SC_P_USDHC2_CLK                          236	/* CONN.USDHC2.CLK, AUD.MQS.R, LSIO.GPIO5.IO24 */
+#define SC_P_USDHC2_CMD                          237	/* CONN.USDHC2.CMD, AUD.MQS.L, LSIO.GPIO5.IO25 */
+#define SC_P_USDHC2_DATA0                        238	/* CONN.USDHC2.DATA0, DMA.UART4.RX, LSIO.GPIO5.IO26 */
+#define SC_P_USDHC2_DATA1                        239	/* CONN.USDHC2.DATA1, DMA.UART4.TX, LSIO.GPIO5.IO27 */
+#define SC_P_USDHC2_DATA2                        240	/* CONN.USDHC2.DATA2, DMA.UART4.CTS_B, LSIO.GPIO5.IO28 */
+#define SC_P_USDHC2_DATA3                        241	/* CONN.USDHC2.DATA3, DMA.UART4.RTS_B, LSIO.GPIO5.IO29 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_VSEL3         242	/*  */
+#define SC_P_ENET0_RGMII_TXC                     243	/* CONN.ENET0.RGMII_TXC, CONN.ENET0.RCLK50M_OUT, CONN.ENET0.RCLK50M_IN, LSIO.GPIO5.IO30 */
+#define SC_P_ENET0_RGMII_TX_CTL                  244	/* CONN.ENET0.RGMII_TX_CTL, LSIO.GPIO5.IO31 */
+#define SC_P_ENET0_RGMII_TXD0                    245	/* CONN.ENET0.RGMII_TXD0, LSIO.GPIO6.IO00 */
+#define SC_P_ENET0_RGMII_TXD1                    246	/* CONN.ENET0.RGMII_TXD1, LSIO.GPIO6.IO01 */
+#define SC_P_ENET0_RGMII_TXD2                    247	/* CONN.ENET0.RGMII_TXD2, DMA.UART3.TX, VPU.TSI_S1.VID, LSIO.GPIO6.IO02 */
+#define SC_P_ENET0_RGMII_TXD3                    248	/* CONN.ENET0.RGMII_TXD3, DMA.UART3.RTS_B, VPU.TSI_S1.SYNC, LSIO.GPIO6.IO03 */
+#define SC_P_ENET0_RGMII_RXC                     249	/* CONN.ENET0.RGMII_RXC, DMA.UART3.CTS_B, VPU.TSI_S1.DATA, LSIO.GPIO6.IO04 */
+#define SC_P_ENET0_RGMII_RX_CTL                  250	/* CONN.ENET0.RGMII_RX_CTL, VPU.TSI_S0.VID, LSIO.GPIO6.IO05 */
+#define SC_P_ENET0_RGMII_RXD0                    251	/* CONN.ENET0.RGMII_RXD0, VPU.TSI_S0.SYNC, LSIO.GPIO6.IO06 */
+#define SC_P_ENET0_RGMII_RXD1                    252	/* CONN.ENET0.RGMII_RXD1, VPU.TSI_S0.DATA, LSIO.GPIO6.IO07 */
+#define SC_P_ENET0_RGMII_RXD2                    253	/* CONN.ENET0.RGMII_RXD2, CONN.ENET0.RMII_RX_ER, VPU.TSI_S0.CLK, LSIO.GPIO6.IO08 */
+#define SC_P_ENET0_RGMII_RXD3                    254	/* CONN.ENET0.RGMII_RXD3, DMA.UART3.RX, VPU.TSI_S1.CLK, LSIO.GPIO6.IO09 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENETB    255	/*  */
+#define SC_P_ENET1_RGMII_TXC                     256	/* CONN.ENET1.RGMII_TXC, CONN.ENET1.RCLK50M_OUT, CONN.ENET1.RCLK50M_IN, LSIO.GPIO6.IO10 */
+#define SC_P_ENET1_RGMII_TX_CTL                  257	/* CONN.ENET1.RGMII_TX_CTL, LSIO.GPIO6.IO11 */
+#define SC_P_ENET1_RGMII_TXD0                    258	/* CONN.ENET1.RGMII_TXD0, LSIO.GPIO6.IO12 */
+#define SC_P_ENET1_RGMII_TXD1                    259	/* CONN.ENET1.RGMII_TXD1, LSIO.GPIO6.IO13 */
+#define SC_P_ENET1_RGMII_TXD2                    260	/* CONN.ENET1.RGMII_TXD2, DMA.UART3.TX, VPU.TSI_S1.VID, LSIO.GPIO6.IO14 */
+#define SC_P_ENET1_RGMII_TXD3                    261	/* CONN.ENET1.RGMII_TXD3, DMA.UART3.RTS_B, VPU.TSI_S1.SYNC, LSIO.GPIO6.IO15 */
+#define SC_P_ENET1_RGMII_RXC                     262	/* CONN.ENET1.RGMII_RXC, DMA.UART3.CTS_B, VPU.TSI_S1.DATA, LSIO.GPIO6.IO16 */
+#define SC_P_ENET1_RGMII_RX_CTL                  263	/* CONN.ENET1.RGMII_RX_CTL, VPU.TSI_S0.VID, LSIO.GPIO6.IO17 */
+#define SC_P_ENET1_RGMII_RXD0                    264	/* CONN.ENET1.RGMII_RXD0, VPU.TSI_S0.SYNC, LSIO.GPIO6.IO18 */
+#define SC_P_ENET1_RGMII_RXD1                    265	/* CONN.ENET1.RGMII_RXD1, VPU.TSI_S0.DATA, LSIO.GPIO6.IO19 */
+#define SC_P_ENET1_RGMII_RXD2                    266	/* CONN.ENET1.RGMII_RXD2, CONN.ENET1.RMII_RX_ER, VPU.TSI_S0.CLK, LSIO.GPIO6.IO20 */
+#define SC_P_ENET1_RGMII_RXD3                    267	/* CONN.ENET1.RGMII_RXD3, DMA.UART3.RX, VPU.TSI_S1.CLK, LSIO.GPIO6.IO21 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENETA    268	/*  */
+/*@}*/
+
+/*!
+ * @name Pad Mux Definitions
+ * format: name padid padmux
+ */
+/*@{*/
+#define SC_P_SIM0_CLK_DMA_SIM0_CLK                              SC_P_SIM0_CLK                      0
+#define SC_P_SIM0_CLK_LSIO_GPIO0_IO00                           SC_P_SIM0_CLK                      3
+#define SC_P_SIM0_RST_DMA_SIM0_RST                              SC_P_SIM0_RST                      0
+#define SC_P_SIM0_RST_LSIO_GPIO0_IO01                           SC_P_SIM0_RST                      3
+#define SC_P_SIM0_IO_DMA_SIM0_IO                                SC_P_SIM0_IO                       0
+#define SC_P_SIM0_IO_LSIO_GPIO0_IO02                            SC_P_SIM0_IO                       3
+#define SC_P_SIM0_PD_DMA_SIM0_PD                                SC_P_SIM0_PD                       0
+#define SC_P_SIM0_PD_DMA_I2C3_SCL                               SC_P_SIM0_PD                       1
+#define SC_P_SIM0_PD_LSIO_GPIO0_IO03                            SC_P_SIM0_PD                       3
+#define SC_P_SIM0_POWER_EN_DMA_SIM0_POWER_EN                    SC_P_SIM0_POWER_EN                 0
+#define SC_P_SIM0_POWER_EN_DMA_I2C3_SDA                         SC_P_SIM0_POWER_EN                 1
+#define SC_P_SIM0_POWER_EN_LSIO_GPIO0_IO04                      SC_P_SIM0_POWER_EN                 3
+#define SC_P_SIM0_GPIO0_00_DMA_SIM0_POWER_EN                    SC_P_SIM0_GPIO0_00                 0
+#define SC_P_SIM0_GPIO0_00_LSIO_GPIO0_IO05                      SC_P_SIM0_GPIO0_00                 3
+#define SC_P_M40_I2C0_SCL_M40_I2C0_SCL                          SC_P_M40_I2C0_SCL                  0
+#define SC_P_M40_I2C0_SCL_M40_UART0_RX                          SC_P_M40_I2C0_SCL                  1
+#define SC_P_M40_I2C0_SCL_M40_GPIO0_IO02                        SC_P_M40_I2C0_SCL                  2
+#define SC_P_M40_I2C0_SCL_LSIO_GPIO0_IO06                       SC_P_M40_I2C0_SCL                  3
+#define SC_P_M40_I2C0_SDA_M40_I2C0_SDA                          SC_P_M40_I2C0_SDA                  0
+#define SC_P_M40_I2C0_SDA_M40_UART0_TX                          SC_P_M40_I2C0_SDA                  1
+#define SC_P_M40_I2C0_SDA_M40_GPIO0_IO03                        SC_P_M40_I2C0_SDA                  2
+#define SC_P_M40_I2C0_SDA_LSIO_GPIO0_IO07                       SC_P_M40_I2C0_SDA                  3
+#define SC_P_M40_GPIO0_00_M40_GPIO0_IO00                        SC_P_M40_GPIO0_00                  0
+#define SC_P_M40_GPIO0_00_M40_TPM0_CH0                          SC_P_M40_GPIO0_00                  1
+#define SC_P_M40_GPIO0_00_DMA_UART4_RX                          SC_P_M40_GPIO0_00                  2
+#define SC_P_M40_GPIO0_00_LSIO_GPIO0_IO08                       SC_P_M40_GPIO0_00                  3
+#define SC_P_M40_GPIO0_01_M40_GPIO0_IO01                        SC_P_M40_GPIO0_01                  0
+#define SC_P_M40_GPIO0_01_M40_TPM0_CH1                          SC_P_M40_GPIO0_01                  1
+#define SC_P_M40_GPIO0_01_DMA_UART4_TX                          SC_P_M40_GPIO0_01                  2
+#define SC_P_M40_GPIO0_01_LSIO_GPIO0_IO09                       SC_P_M40_GPIO0_01                  3
+#define SC_P_M41_I2C0_SCL_M41_I2C0_SCL                          SC_P_M41_I2C0_SCL                  0
+#define SC_P_M41_I2C0_SCL_M41_UART0_RX                          SC_P_M41_I2C0_SCL                  1
+#define SC_P_M41_I2C0_SCL_M41_GPIO0_IO02                        SC_P_M41_I2C0_SCL                  2
+#define SC_P_M41_I2C0_SCL_LSIO_GPIO0_IO10                       SC_P_M41_I2C0_SCL                  3
+#define SC_P_M41_I2C0_SDA_M41_I2C0_SDA                          SC_P_M41_I2C0_SDA                  0
+#define SC_P_M41_I2C0_SDA_M41_UART0_TX                          SC_P_M41_I2C0_SDA                  1
+#define SC_P_M41_I2C0_SDA_M41_GPIO0_IO03                        SC_P_M41_I2C0_SDA                  2
+#define SC_P_M41_I2C0_SDA_LSIO_GPIO0_IO11                       SC_P_M41_I2C0_SDA                  3
+#define SC_P_M41_GPIO0_00_M41_GPIO0_IO00                        SC_P_M41_GPIO0_00                  0
+#define SC_P_M41_GPIO0_00_M41_TPM0_CH0                          SC_P_M41_GPIO0_00                  1
+#define SC_P_M41_GPIO0_00_DMA_UART3_RX                          SC_P_M41_GPIO0_00                  2
+#define SC_P_M41_GPIO0_00_LSIO_GPIO0_IO12                       SC_P_M41_GPIO0_00                  3
+#define SC_P_M41_GPIO0_01_M41_GPIO0_IO01                        SC_P_M41_GPIO0_01                  0
+#define SC_P_M41_GPIO0_01_M41_TPM0_CH1                          SC_P_M41_GPIO0_01                  1
+#define SC_P_M41_GPIO0_01_DMA_UART3_TX                          SC_P_M41_GPIO0_01                  2
+#define SC_P_M41_GPIO0_01_LSIO_GPIO0_IO13                       SC_P_M41_GPIO0_01                  3
+#define SC_P_GPT0_CLK_LSIO_GPT0_CLK                             SC_P_GPT0_CLK                      0
+#define SC_P_GPT0_CLK_DMA_I2C1_SCL                              SC_P_GPT0_CLK                      1
+#define SC_P_GPT0_CLK_LSIO_KPP0_COL4                            SC_P_GPT0_CLK                      2
+#define SC_P_GPT0_CLK_LSIO_GPIO0_IO14                           SC_P_GPT0_CLK                      3
+#define SC_P_GPT0_CAPTURE_LSIO_GPT0_CAPTURE                     SC_P_GPT0_CAPTURE                  0
+#define SC_P_GPT0_CAPTURE_DMA_I2C1_SDA                          SC_P_GPT0_CAPTURE                  1
+#define SC_P_GPT0_CAPTURE_LSIO_KPP0_COL5                        SC_P_GPT0_CAPTURE                  2
+#define SC_P_GPT0_CAPTURE_LSIO_GPIO0_IO15                       SC_P_GPT0_CAPTURE                  3
+#define SC_P_GPT0_COMPARE_LSIO_GPT0_COMPARE                     SC_P_GPT0_COMPARE                  0
+#define SC_P_GPT0_COMPARE_LSIO_PWM3_OUT                         SC_P_GPT0_COMPARE                  1
+#define SC_P_GPT0_COMPARE_LSIO_KPP0_COL6                        SC_P_GPT0_COMPARE                  2
+#define SC_P_GPT0_COMPARE_LSIO_GPIO0_IO16                       SC_P_GPT0_COMPARE                  3
+#define SC_P_GPT1_CLK_LSIO_GPT1_CLK                             SC_P_GPT1_CLK                      0
+#define SC_P_GPT1_CLK_DMA_I2C2_SCL                              SC_P_GPT1_CLK                      1
+#define SC_P_GPT1_CLK_LSIO_KPP0_COL7                            SC_P_GPT1_CLK                      2
+#define SC_P_GPT1_CLK_LSIO_GPIO0_IO17                           SC_P_GPT1_CLK                      3
+#define SC_P_GPT1_CAPTURE_LSIO_GPT1_CAPTURE                     SC_P_GPT1_CAPTURE                  0
+#define SC_P_GPT1_CAPTURE_DMA_I2C2_SDA                          SC_P_GPT1_CAPTURE                  1
+#define SC_P_GPT1_CAPTURE_LSIO_KPP0_ROW4                        SC_P_GPT1_CAPTURE                  2
+#define SC_P_GPT1_CAPTURE_LSIO_GPIO0_IO18                       SC_P_GPT1_CAPTURE                  3
+#define SC_P_GPT1_COMPARE_LSIO_GPT1_COMPARE                     SC_P_GPT1_COMPARE                  0
+#define SC_P_GPT1_COMPARE_LSIO_PWM2_OUT                         SC_P_GPT1_COMPARE                  1
+#define SC_P_GPT1_COMPARE_LSIO_KPP0_ROW5                        SC_P_GPT1_COMPARE                  2
+#define SC_P_GPT1_COMPARE_LSIO_GPIO0_IO19                       SC_P_GPT1_COMPARE                  3
+#define SC_P_UART0_RX_DMA_UART0_RX                              SC_P_UART0_RX                      0
+#define SC_P_UART0_RX_SCU_UART0_RX                              SC_P_UART0_RX                      1
+#define SC_P_UART0_RX_LSIO_GPIO0_IO20                           SC_P_UART0_RX                      3
+#define SC_P_UART0_TX_DMA_UART0_TX                              SC_P_UART0_TX                      0
+#define SC_P_UART0_TX_SCU_UART0_TX                              SC_P_UART0_TX                      1
+#define SC_P_UART0_TX_LSIO_GPIO0_IO21                           SC_P_UART0_TX                      3
+#define SC_P_UART0_RTS_B_DMA_UART0_RTS_B                        SC_P_UART0_RTS_B                   0
+#define SC_P_UART0_RTS_B_LSIO_PWM0_OUT                          SC_P_UART0_RTS_B                   1
+#define SC_P_UART0_RTS_B_DMA_UART2_RX                           SC_P_UART0_RTS_B                   2
+#define SC_P_UART0_RTS_B_LSIO_GPIO0_IO22                        SC_P_UART0_RTS_B                   3
+#define SC_P_UART0_CTS_B_DMA_UART0_CTS_B                        SC_P_UART0_CTS_B                   0
+#define SC_P_UART0_CTS_B_LSIO_PWM1_OUT                          SC_P_UART0_CTS_B                   1
+#define SC_P_UART0_CTS_B_DMA_UART2_TX                           SC_P_UART0_CTS_B                   2
+#define SC_P_UART0_CTS_B_LSIO_GPIO0_IO23                        SC_P_UART0_CTS_B                   3
+#define SC_P_UART1_TX_DMA_UART1_TX                              SC_P_UART1_TX                      0
+#define SC_P_UART1_TX_DMA_SPI3_SCK                              SC_P_UART1_TX                      1
+#define SC_P_UART1_TX_LSIO_GPIO0_IO24                           SC_P_UART1_TX                      3
+#define SC_P_UART1_RX_DMA_UART1_RX                              SC_P_UART1_RX                      0
+#define SC_P_UART1_RX_DMA_SPI3_SDO                              SC_P_UART1_RX                      1
+#define SC_P_UART1_RX_LSIO_GPIO0_IO25                           SC_P_UART1_RX                      3
+#define SC_P_UART1_RTS_B_DMA_UART1_RTS_B                        SC_P_UART1_RTS_B                   0
+#define SC_P_UART1_RTS_B_DMA_SPI3_SDI                           SC_P_UART1_RTS_B                   1
+#define SC_P_UART1_RTS_B_DMA_UART1_CTS_B                        SC_P_UART1_RTS_B                   2
+#define SC_P_UART1_RTS_B_LSIO_GPIO0_IO26                        SC_P_UART1_RTS_B                   3
+#define SC_P_UART1_CTS_B_DMA_UART1_CTS_B                        SC_P_UART1_CTS_B                   0
+#define SC_P_UART1_CTS_B_DMA_SPI3_CS0                           SC_P_UART1_CTS_B                   1
+#define SC_P_UART1_CTS_B_DMA_UART1_RTS_B                        SC_P_UART1_CTS_B                   2
+#define SC_P_UART1_CTS_B_LSIO_GPIO0_IO27                        SC_P_UART1_CTS_B                   3
+#define SC_P_SCU_PMIC_MEMC_ON_SCU_GPIO0_IOXX_PMIC_MEMC_ON       SC_P_SCU_PMIC_MEMC_ON              0
+#define SC_P_SCU_WDOG_OUT_SCU_WDOG0_WDOG_OUT                    SC_P_SCU_WDOG_OUT                  0
+#define SC_P_PMIC_I2C_SDA_SCU_PMIC_I2C_SDA                      SC_P_PMIC_I2C_SDA                  0
+#define SC_P_PMIC_I2C_SCL_SCU_PMIC_I2C_SCL                      SC_P_PMIC_I2C_SCL                  0
+#define SC_P_PMIC_EARLY_WARNING_SCU_PMIC_EARLY_WARNING          SC_P_PMIC_EARLY_WARNING            0
+#define SC_P_PMIC_INT_B_SCU_DSC_PMIC_INT_B                      SC_P_PMIC_INT_B                    0
+#define SC_P_SCU_GPIO0_00_SCU_GPIO0_IO00                        SC_P_SCU_GPIO0_00                  0
+#define SC_P_SCU_GPIO0_00_SCU_UART0_RX                          SC_P_SCU_GPIO0_00                  1
+#define SC_P_SCU_GPIO0_00_LSIO_GPIO0_IO28                       SC_P_SCU_GPIO0_00                  3
+#define SC_P_SCU_GPIO0_01_SCU_GPIO0_IO01                        SC_P_SCU_GPIO0_01                  0
+#define SC_P_SCU_GPIO0_01_SCU_UART0_TX                          SC_P_SCU_GPIO0_01                  1
+#define SC_P_SCU_GPIO0_01_LSIO_GPIO0_IO29                       SC_P_SCU_GPIO0_01                  3
+#define SC_P_SCU_GPIO0_02_SCU_GPIO0_IO02                        SC_P_SCU_GPIO0_02                  0
+#define SC_P_SCU_GPIO0_02_SCU_GPIO0_IOXX_PMIC_GPU0_ON           SC_P_SCU_GPIO0_02                  1
+#define SC_P_SCU_GPIO0_02_LSIO_GPIO0_IO30                       SC_P_SCU_GPIO0_02                  3
+#define SC_P_SCU_GPIO0_03_SCU_GPIO0_IO03                        SC_P_SCU_GPIO0_03                  0
+#define SC_P_SCU_GPIO0_03_SCU_GPIO0_IOXX_PMIC_GPU1_ON           SC_P_SCU_GPIO0_03                  1
+#define SC_P_SCU_GPIO0_03_LSIO_GPIO0_IO31                       SC_P_SCU_GPIO0_03                  3
+#define SC_P_SCU_GPIO0_04_SCU_GPIO0_IO04                        SC_P_SCU_GPIO0_04                  0
+#define SC_P_SCU_GPIO0_04_SCU_GPIO0_IOXX_PMIC_A72_ON            SC_P_SCU_GPIO0_04                  1
+#define SC_P_SCU_GPIO0_04_LSIO_GPIO1_IO00                       SC_P_SCU_GPIO0_04                  3
+#define SC_P_SCU_GPIO0_05_SCU_GPIO0_IO05                        SC_P_SCU_GPIO0_05                  0
+#define SC_P_SCU_GPIO0_05_SCU_GPIO0_IOXX_PMIC_A53_ON            SC_P_SCU_GPIO0_05                  1
+#define SC_P_SCU_GPIO0_05_LSIO_GPIO1_IO01                       SC_P_SCU_GPIO0_05                  3
+#define SC_P_SCU_GPIO0_06_SCU_GPIO0_IO06                        SC_P_SCU_GPIO0_06                  0
+#define SC_P_SCU_GPIO0_06_SCU_TPM0_CH0                          SC_P_SCU_GPIO0_06                  1
+#define SC_P_SCU_GPIO0_06_LSIO_GPIO1_IO02                       SC_P_SCU_GPIO0_06                  3
+#define SC_P_SCU_GPIO0_07_SCU_GPIO0_IO07                        SC_P_SCU_GPIO0_07                  0
+#define SC_P_SCU_GPIO0_07_SCU_TPM0_CH1                          SC_P_SCU_GPIO0_07                  1
+#define SC_P_SCU_GPIO0_07_SCU_DSC_RTC_CLOCK_OUTPUT_32K          SC_P_SCU_GPIO0_07                  2
+#define SC_P_SCU_GPIO0_07_LSIO_GPIO1_IO03                       SC_P_SCU_GPIO0_07                  3
+#define SC_P_SCU_BOOT_MODE0_SCU_DSC_BOOT_MODE0                  SC_P_SCU_BOOT_MODE0                0
+#define SC_P_SCU_BOOT_MODE1_SCU_DSC_BOOT_MODE1                  SC_P_SCU_BOOT_MODE1                0
+#define SC_P_SCU_BOOT_MODE2_SCU_DSC_BOOT_MODE2                  SC_P_SCU_BOOT_MODE2                0
+#define SC_P_SCU_BOOT_MODE3_SCU_DSC_BOOT_MODE3                  SC_P_SCU_BOOT_MODE3                0
+#define SC_P_SCU_BOOT_MODE4_SCU_DSC_BOOT_MODE4                  SC_P_SCU_BOOT_MODE4                0
+#define SC_P_SCU_BOOT_MODE4_SCU_PMIC_I2C_SCL                    SC_P_SCU_BOOT_MODE4                1
+#define SC_P_SCU_BOOT_MODE5_SCU_DSC_BOOT_MODE5                  SC_P_SCU_BOOT_MODE5                0
+#define SC_P_SCU_BOOT_MODE5_SCU_PMIC_I2C_SDA                    SC_P_SCU_BOOT_MODE5                1
+#define SC_P_LVDS0_GPIO00_LVDS0_GPIO0_IO00                      SC_P_LVDS0_GPIO00                  0
+#define SC_P_LVDS0_GPIO00_LVDS0_PWM0_OUT                        SC_P_LVDS0_GPIO00                  1
+#define SC_P_LVDS0_GPIO00_LSIO_GPIO1_IO04                       SC_P_LVDS0_GPIO00                  3
+#define SC_P_LVDS0_GPIO01_LVDS0_GPIO0_IO01                      SC_P_LVDS0_GPIO01                  0
+#define SC_P_LVDS0_GPIO01_LSIO_GPIO1_IO05                       SC_P_LVDS0_GPIO01                  3
+#define SC_P_LVDS0_I2C0_SCL_LVDS0_I2C0_SCL                      SC_P_LVDS0_I2C0_SCL                0
+#define SC_P_LVDS0_I2C0_SCL_LVDS0_GPIO0_IO02                    SC_P_LVDS0_I2C0_SCL                1
+#define SC_P_LVDS0_I2C0_SCL_LSIO_GPIO1_IO06                     SC_P_LVDS0_I2C0_SCL                3
+#define SC_P_LVDS0_I2C0_SDA_LVDS0_I2C0_SDA                      SC_P_LVDS0_I2C0_SDA                0
+#define SC_P_LVDS0_I2C0_SDA_LVDS0_GPIO0_IO03                    SC_P_LVDS0_I2C0_SDA                1
+#define SC_P_LVDS0_I2C0_SDA_LSIO_GPIO1_IO07                     SC_P_LVDS0_I2C0_SDA                3
+#define SC_P_LVDS0_I2C1_SCL_LVDS0_I2C1_SCL                      SC_P_LVDS0_I2C1_SCL                0
+#define SC_P_LVDS0_I2C1_SCL_DMA_UART2_TX                        SC_P_LVDS0_I2C1_SCL                1
+#define SC_P_LVDS0_I2C1_SCL_LSIO_GPIO1_IO08                     SC_P_LVDS0_I2C1_SCL                3
+#define SC_P_LVDS0_I2C1_SDA_LVDS0_I2C1_SDA                      SC_P_LVDS0_I2C1_SDA                0
+#define SC_P_LVDS0_I2C1_SDA_DMA_UART2_RX                        SC_P_LVDS0_I2C1_SDA                1
+#define SC_P_LVDS0_I2C1_SDA_LSIO_GPIO1_IO09                     SC_P_LVDS0_I2C1_SDA                3
+#define SC_P_LVDS1_GPIO00_LVDS1_GPIO0_IO00                      SC_P_LVDS1_GPIO00                  0
+#define SC_P_LVDS1_GPIO00_LVDS1_PWM0_OUT                        SC_P_LVDS1_GPIO00                  1
+#define SC_P_LVDS1_GPIO00_LSIO_GPIO1_IO10                       SC_P_LVDS1_GPIO00                  3
+#define SC_P_LVDS1_GPIO01_LVDS1_GPIO0_IO01                      SC_P_LVDS1_GPIO01                  0
+#define SC_P_LVDS1_GPIO01_LSIO_GPIO1_IO11                       SC_P_LVDS1_GPIO01                  3
+#define SC_P_LVDS1_I2C0_SCL_LVDS1_I2C0_SCL                      SC_P_LVDS1_I2C0_SCL                0
+#define SC_P_LVDS1_I2C0_SCL_LVDS1_GPIO0_IO02                    SC_P_LVDS1_I2C0_SCL                1
+#define SC_P_LVDS1_I2C0_SCL_LSIO_GPIO1_IO12                     SC_P_LVDS1_I2C0_SCL                3
+#define SC_P_LVDS1_I2C0_SDA_LVDS1_I2C0_SDA                      SC_P_LVDS1_I2C0_SDA                0
+#define SC_P_LVDS1_I2C0_SDA_LVDS1_GPIO0_IO03                    SC_P_LVDS1_I2C0_SDA                1
+#define SC_P_LVDS1_I2C0_SDA_LSIO_GPIO1_IO13                     SC_P_LVDS1_I2C0_SDA                3
+#define SC_P_LVDS1_I2C1_SCL_LVDS1_I2C1_SCL                      SC_P_LVDS1_I2C1_SCL                0
+#define SC_P_LVDS1_I2C1_SCL_DMA_UART3_TX                        SC_P_LVDS1_I2C1_SCL                1
+#define SC_P_LVDS1_I2C1_SCL_LSIO_GPIO1_IO14                     SC_P_LVDS1_I2C1_SCL                3
+#define SC_P_LVDS1_I2C1_SDA_LVDS1_I2C1_SDA                      SC_P_LVDS1_I2C1_SDA                0
+#define SC_P_LVDS1_I2C1_SDA_DMA_UART3_RX                        SC_P_LVDS1_I2C1_SDA                1
+#define SC_P_LVDS1_I2C1_SDA_LSIO_GPIO1_IO15                     SC_P_LVDS1_I2C1_SDA                3
+#define SC_P_MIPI_DSI0_I2C0_SCL_MIPI_DSI0_I2C0_SCL              SC_P_MIPI_DSI0_I2C0_SCL            0
+#define SC_P_MIPI_DSI0_I2C0_SCL_LSIO_GPIO1_IO16                 SC_P_MIPI_DSI0_I2C0_SCL            3
+#define SC_P_MIPI_DSI0_I2C0_SDA_MIPI_DSI0_I2C0_SDA              SC_P_MIPI_DSI0_I2C0_SDA            0
+#define SC_P_MIPI_DSI0_I2C0_SDA_LSIO_GPIO1_IO17                 SC_P_MIPI_DSI0_I2C0_SDA            3
+#define SC_P_MIPI_DSI0_GPIO0_00_MIPI_DSI0_GPIO0_IO00            SC_P_MIPI_DSI0_GPIO0_00            0
+#define SC_P_MIPI_DSI0_GPIO0_00_MIPI_DSI0_PWM0_OUT              SC_P_MIPI_DSI0_GPIO0_00            1
+#define SC_P_MIPI_DSI0_GPIO0_00_LSIO_GPIO1_IO18                 SC_P_MIPI_DSI0_GPIO0_00            3
+#define SC_P_MIPI_DSI0_GPIO0_01_MIPI_DSI0_GPIO0_IO01            SC_P_MIPI_DSI0_GPIO0_01            0
+#define SC_P_MIPI_DSI0_GPIO0_01_LSIO_GPIO1_IO19                 SC_P_MIPI_DSI0_GPIO0_01            3
+#define SC_P_MIPI_DSI1_I2C0_SCL_MIPI_DSI1_I2C0_SCL              SC_P_MIPI_DSI1_I2C0_SCL            0
+#define SC_P_MIPI_DSI1_I2C0_SCL_LSIO_GPIO1_IO20                 SC_P_MIPI_DSI1_I2C0_SCL            3
+#define SC_P_MIPI_DSI1_I2C0_SDA_MIPI_DSI1_I2C0_SDA              SC_P_MIPI_DSI1_I2C0_SDA            0
+#define SC_P_MIPI_DSI1_I2C0_SDA_LSIO_GPIO1_IO21                 SC_P_MIPI_DSI1_I2C0_SDA            3
+#define SC_P_MIPI_DSI1_GPIO0_00_MIPI_DSI1_GPIO0_IO00            SC_P_MIPI_DSI1_GPIO0_00            0
+#define SC_P_MIPI_DSI1_GPIO0_00_MIPI_DSI1_PWM0_OUT              SC_P_MIPI_DSI1_GPIO0_00            1
+#define SC_P_MIPI_DSI1_GPIO0_00_LSIO_GPIO1_IO22                 SC_P_MIPI_DSI1_GPIO0_00            3
+#define SC_P_MIPI_DSI1_GPIO0_01_MIPI_DSI1_GPIO0_IO01            SC_P_MIPI_DSI1_GPIO0_01            0
+#define SC_P_MIPI_DSI1_GPIO0_01_LSIO_GPIO1_IO23                 SC_P_MIPI_DSI1_GPIO0_01            3
+#define SC_P_MIPI_CSI0_MCLK_OUT_MIPI_CSI0_ACM_MCLK_OUT          SC_P_MIPI_CSI0_MCLK_OUT            0
+#define SC_P_MIPI_CSI0_MCLK_OUT_LSIO_GPIO1_IO24                 SC_P_MIPI_CSI0_MCLK_OUT            3
+#define SC_P_MIPI_CSI0_I2C0_SCL_MIPI_CSI0_I2C0_SCL              SC_P_MIPI_CSI0_I2C0_SCL            0
+#define SC_P_MIPI_CSI0_I2C0_SCL_LSIO_GPIO1_IO25                 SC_P_MIPI_CSI0_I2C0_SCL            3
+#define SC_P_MIPI_CSI0_I2C0_SDA_MIPI_CSI0_I2C0_SDA              SC_P_MIPI_CSI0_I2C0_SDA            0
+#define SC_P_MIPI_CSI0_I2C0_SDA_LSIO_GPIO1_IO26                 SC_P_MIPI_CSI0_I2C0_SDA            3
+#define SC_P_MIPI_CSI0_GPIO0_00_MIPI_CSI0_GPIO0_IO00            SC_P_MIPI_CSI0_GPIO0_00            0
+#define SC_P_MIPI_CSI0_GPIO0_00_DMA_I2C0_SCL                    SC_P_MIPI_CSI0_GPIO0_00            1
+#define SC_P_MIPI_CSI0_GPIO0_00_MIPI_CSI1_I2C0_SCL              SC_P_MIPI_CSI0_GPIO0_00            2
+#define SC_P_MIPI_CSI0_GPIO0_00_LSIO_GPIO1_IO27                 SC_P_MIPI_CSI0_GPIO0_00            3
+#define SC_P_MIPI_CSI0_GPIO0_01_MIPI_CSI0_GPIO0_IO01            SC_P_MIPI_CSI0_GPIO0_01            0
+#define SC_P_MIPI_CSI0_GPIO0_01_DMA_I2C0_SDA                    SC_P_MIPI_CSI0_GPIO0_01            1
+#define SC_P_MIPI_CSI0_GPIO0_01_MIPI_CSI1_I2C0_SDA              SC_P_MIPI_CSI0_GPIO0_01            2
+#define SC_P_MIPI_CSI0_GPIO0_01_LSIO_GPIO1_IO28                 SC_P_MIPI_CSI0_GPIO0_01            3
+#define SC_P_MIPI_CSI1_MCLK_OUT_MIPI_CSI1_ACM_MCLK_OUT          SC_P_MIPI_CSI1_MCLK_OUT            0
+#define SC_P_MIPI_CSI1_MCLK_OUT_LSIO_GPIO1_IO29                 SC_P_MIPI_CSI1_MCLK_OUT            3
+#define SC_P_MIPI_CSI1_GPIO0_00_MIPI_CSI1_GPIO0_IO00            SC_P_MIPI_CSI1_GPIO0_00            0
+#define SC_P_MIPI_CSI1_GPIO0_00_DMA_UART4_RX                    SC_P_MIPI_CSI1_GPIO0_00            1
+#define SC_P_MIPI_CSI1_GPIO0_00_LSIO_GPIO1_IO30                 SC_P_MIPI_CSI1_GPIO0_00            3
+#define SC_P_MIPI_CSI1_GPIO0_01_MIPI_CSI1_GPIO0_IO01            SC_P_MIPI_CSI1_GPIO0_01            0
+#define SC_P_MIPI_CSI1_GPIO0_01_DMA_UART4_TX                    SC_P_MIPI_CSI1_GPIO0_01            1
+#define SC_P_MIPI_CSI1_GPIO0_01_LSIO_GPIO1_IO31                 SC_P_MIPI_CSI1_GPIO0_01            3
+#define SC_P_MIPI_CSI1_I2C0_SCL_MIPI_CSI1_I2C0_SCL              SC_P_MIPI_CSI1_I2C0_SCL            0
+#define SC_P_MIPI_CSI1_I2C0_SCL_LSIO_GPIO2_IO00                 SC_P_MIPI_CSI1_I2C0_SCL            3
+#define SC_P_MIPI_CSI1_I2C0_SDA_MIPI_CSI1_I2C0_SDA              SC_P_MIPI_CSI1_I2C0_SDA            0
+#define SC_P_MIPI_CSI1_I2C0_SDA_LSIO_GPIO2_IO01                 SC_P_MIPI_CSI1_I2C0_SDA            3
+#define SC_P_HDMI_TX0_TS_SCL_HDMI_TX0_I2C0_SCL                  SC_P_HDMI_TX0_TS_SCL               0
+#define SC_P_HDMI_TX0_TS_SCL_DMA_I2C0_SCL                       SC_P_HDMI_TX0_TS_SCL               1
+#define SC_P_HDMI_TX0_TS_SCL_LSIO_GPIO2_IO02                    SC_P_HDMI_TX0_TS_SCL               3
+#define SC_P_HDMI_TX0_TS_SDA_HDMI_TX0_I2C0_SDA                  SC_P_HDMI_TX0_TS_SDA               0
+#define SC_P_HDMI_TX0_TS_SDA_DMA_I2C0_SDA                       SC_P_HDMI_TX0_TS_SDA               1
+#define SC_P_HDMI_TX0_TS_SDA_LSIO_GPIO2_IO03                    SC_P_HDMI_TX0_TS_SDA               3
+#define SC_P_ESAI1_FSR_AUD_ESAI1_FSR                            SC_P_ESAI1_FSR                     0
+#define SC_P_ESAI1_FSR_LSIO_GPIO2_IO04                          SC_P_ESAI1_FSR                     3
+#define SC_P_ESAI1_FST_AUD_ESAI1_FST                            SC_P_ESAI1_FST                     0
+#define SC_P_ESAI1_FST_AUD_SPDIF0_EXT_CLK                       SC_P_ESAI1_FST                     1
+#define SC_P_ESAI1_FST_LSIO_GPIO2_IO05                          SC_P_ESAI1_FST                     3
+#define SC_P_ESAI1_SCKR_AUD_ESAI1_SCKR                          SC_P_ESAI1_SCKR                    0
+#define SC_P_ESAI1_SCKR_LSIO_GPIO2_IO06                         SC_P_ESAI1_SCKR                    3
+#define SC_P_ESAI1_SCKT_AUD_ESAI1_SCKT                          SC_P_ESAI1_SCKT                    0
+#define SC_P_ESAI1_SCKT_AUD_SAI2_RXC                            SC_P_ESAI1_SCKT                    1
+#define SC_P_ESAI1_SCKT_AUD_SPDIF0_EXT_CLK                      SC_P_ESAI1_SCKT                    2
+#define SC_P_ESAI1_SCKT_LSIO_GPIO2_IO07                         SC_P_ESAI1_SCKT                    3
+#define SC_P_ESAI1_TX0_AUD_ESAI1_TX0                            SC_P_ESAI1_TX0                     0
+#define SC_P_ESAI1_TX0_AUD_SAI2_RXD                             SC_P_ESAI1_TX0                     1
+#define SC_P_ESAI1_TX0_AUD_SPDIF0_RX                            SC_P_ESAI1_TX0                     2
+#define SC_P_ESAI1_TX0_LSIO_GPIO2_IO08                          SC_P_ESAI1_TX0                     3
+#define SC_P_ESAI1_TX1_AUD_ESAI1_TX1                            SC_P_ESAI1_TX1                     0
+#define SC_P_ESAI1_TX1_AUD_SAI2_RXFS                            SC_P_ESAI1_TX1                     1
+#define SC_P_ESAI1_TX1_AUD_SPDIF0_TX                            SC_P_ESAI1_TX1                     2
+#define SC_P_ESAI1_TX1_LSIO_GPIO2_IO09                          SC_P_ESAI1_TX1                     3
+#define SC_P_ESAI1_TX2_RX3_AUD_ESAI1_TX2_RX3                    SC_P_ESAI1_TX2_RX3                 0
+#define SC_P_ESAI1_TX2_RX3_AUD_SPDIF0_RX                        SC_P_ESAI1_TX2_RX3                 1
+#define SC_P_ESAI1_TX2_RX3_LSIO_GPIO2_IO10                      SC_P_ESAI1_TX2_RX3                 3
+#define SC_P_ESAI1_TX3_RX2_AUD_ESAI1_TX3_RX2                    SC_P_ESAI1_TX3_RX2                 0
+#define SC_P_ESAI1_TX3_RX2_AUD_SPDIF0_TX                        SC_P_ESAI1_TX3_RX2                 1
+#define SC_P_ESAI1_TX3_RX2_LSIO_GPIO2_IO11                      SC_P_ESAI1_TX3_RX2                 3
+#define SC_P_ESAI1_TX4_RX1_AUD_ESAI1_TX4_RX1                    SC_P_ESAI1_TX4_RX1                 0
+#define SC_P_ESAI1_TX4_RX1_LSIO_GPIO2_IO12                      SC_P_ESAI1_TX4_RX1                 3
+#define SC_P_ESAI1_TX5_RX0_AUD_ESAI1_TX5_RX0                    SC_P_ESAI1_TX5_RX0                 0
+#define SC_P_ESAI1_TX5_RX0_LSIO_GPIO2_IO13                      SC_P_ESAI1_TX5_RX0                 3
+#define SC_P_SPDIF0_RX_AUD_SPDIF0_RX                            SC_P_SPDIF0_RX                     0
+#define SC_P_SPDIF0_RX_AUD_MQS_R                                SC_P_SPDIF0_RX                     1
+#define SC_P_SPDIF0_RX_AUD_ACM_MCLK_IN1                         SC_P_SPDIF0_RX                     2
+#define SC_P_SPDIF0_RX_LSIO_GPIO2_IO14                          SC_P_SPDIF0_RX                     3
+#define SC_P_SPDIF0_TX_AUD_SPDIF0_TX                            SC_P_SPDIF0_TX                     0
+#define SC_P_SPDIF0_TX_AUD_MQS_L                                SC_P_SPDIF0_TX                     1
+#define SC_P_SPDIF0_TX_AUD_ACM_MCLK_OUT1                        SC_P_SPDIF0_TX                     2
+#define SC_P_SPDIF0_TX_LSIO_GPIO2_IO15                          SC_P_SPDIF0_TX                     3
+#define SC_P_SPDIF0_EXT_CLK_AUD_SPDIF0_EXT_CLK                  SC_P_SPDIF0_EXT_CLK                0
+#define SC_P_SPDIF0_EXT_CLK_DMA_DMA0_REQ_IN0                    SC_P_SPDIF0_EXT_CLK                1
+#define SC_P_SPDIF0_EXT_CLK_LSIO_GPIO2_IO16                     SC_P_SPDIF0_EXT_CLK                3
+#define SC_P_SPI3_SCK_DMA_SPI3_SCK                              SC_P_SPI3_SCK                      0
+#define SC_P_SPI3_SCK_LSIO_GPIO2_IO17                           SC_P_SPI3_SCK                      3
+#define SC_P_SPI3_SDO_DMA_SPI3_SDO                              SC_P_SPI3_SDO                      0
+#define SC_P_SPI3_SDO_DMA_FTM_CH0                               SC_P_SPI3_SDO                      1
+#define SC_P_SPI3_SDO_LSIO_GPIO2_IO18                           SC_P_SPI3_SDO                      3
+#define SC_P_SPI3_SDI_DMA_SPI3_SDI                              SC_P_SPI3_SDI                      0
+#define SC_P_SPI3_SDI_DMA_FTM_CH1                               SC_P_SPI3_SDI                      1
+#define SC_P_SPI3_SDI_LSIO_GPIO2_IO19                           SC_P_SPI3_SDI                      3
+#define SC_P_SPI3_CS0_DMA_SPI3_CS0                              SC_P_SPI3_CS0                      0
+#define SC_P_SPI3_CS0_DMA_FTM_CH2                               SC_P_SPI3_CS0                      1
+#define SC_P_SPI3_CS0_LSIO_GPIO2_IO20                           SC_P_SPI3_CS0                      3
+#define SC_P_SPI3_CS1_DMA_SPI3_CS1                              SC_P_SPI3_CS1                      0
+#define SC_P_SPI3_CS1_LSIO_GPIO2_IO21                           SC_P_SPI3_CS1                      3
+#define SC_P_ESAI0_FSR_AUD_ESAI0_FSR                            SC_P_ESAI0_FSR                     0
+#define SC_P_ESAI0_FSR_LSIO_GPIO2_IO22                          SC_P_ESAI0_FSR                     3
+#define SC_P_ESAI0_FST_AUD_ESAI0_FST                            SC_P_ESAI0_FST                     0
+#define SC_P_ESAI0_FST_LSIO_GPIO2_IO23                          SC_P_ESAI0_FST                     3
+#define SC_P_ESAI0_SCKR_AUD_ESAI0_SCKR                          SC_P_ESAI0_SCKR                    0
+#define SC_P_ESAI0_SCKR_LSIO_GPIO2_IO24                         SC_P_ESAI0_SCKR                    3
+#define SC_P_ESAI0_SCKT_AUD_ESAI0_SCKT                          SC_P_ESAI0_SCKT                    0
+#define SC_P_ESAI0_SCKT_LSIO_GPIO2_IO25                         SC_P_ESAI0_SCKT                    3
+#define SC_P_ESAI0_TX0_AUD_ESAI0_TX0                            SC_P_ESAI0_TX0                     0
+#define SC_P_ESAI0_TX0_LSIO_GPIO2_IO26                          SC_P_ESAI0_TX0                     3
+#define SC_P_ESAI0_TX1_AUD_ESAI0_TX1                            SC_P_ESAI0_TX1                     0
+#define SC_P_ESAI0_TX1_LSIO_GPIO2_IO27                          SC_P_ESAI0_TX1                     3
+#define SC_P_ESAI0_TX2_RX3_AUD_ESAI0_TX2_RX3                    SC_P_ESAI0_TX2_RX3                 0
+#define SC_P_ESAI0_TX2_RX3_LSIO_GPIO2_IO28                      SC_P_ESAI0_TX2_RX3                 3
+#define SC_P_ESAI0_TX3_RX2_AUD_ESAI0_TX3_RX2                    SC_P_ESAI0_TX3_RX2                 0
+#define SC_P_ESAI0_TX3_RX2_LSIO_GPIO2_IO29                      SC_P_ESAI0_TX3_RX2                 3
+#define SC_P_ESAI0_TX4_RX1_AUD_ESAI0_TX4_RX1                    SC_P_ESAI0_TX4_RX1                 0
+#define SC_P_ESAI0_TX4_RX1_LSIO_GPIO2_IO30                      SC_P_ESAI0_TX4_RX1                 3
+#define SC_P_ESAI0_TX5_RX0_AUD_ESAI0_TX5_RX0                    SC_P_ESAI0_TX5_RX0                 0
+#define SC_P_ESAI0_TX5_RX0_LSIO_GPIO2_IO31                      SC_P_ESAI0_TX5_RX0                 3
+#define SC_P_MCLK_IN0_AUD_ACM_MCLK_IN0                          SC_P_MCLK_IN0                      0
+#define SC_P_MCLK_IN0_AUD_ESAI0_RX_HF_CLK                       SC_P_MCLK_IN0                      1
+#define SC_P_MCLK_IN0_AUD_ESAI1_RX_HF_CLK                       SC_P_MCLK_IN0                      2
+#define SC_P_MCLK_IN0_LSIO_GPIO3_IO00                           SC_P_MCLK_IN0                      3
+#define SC_P_MCLK_OUT0_AUD_ACM_MCLK_OUT0                        SC_P_MCLK_OUT0                     0
+#define SC_P_MCLK_OUT0_AUD_ESAI0_TX_HF_CLK                      SC_P_MCLK_OUT0                     1
+#define SC_P_MCLK_OUT0_AUD_ESAI1_TX_HF_CLK                      SC_P_MCLK_OUT0                     2
+#define SC_P_MCLK_OUT0_LSIO_GPIO3_IO01                          SC_P_MCLK_OUT0                     3
+#define SC_P_SPI0_SCK_DMA_SPI0_SCK                              SC_P_SPI0_SCK                      0
+#define SC_P_SPI0_SCK_AUD_SAI0_RXC                              SC_P_SPI0_SCK                      1
+#define SC_P_SPI0_SCK_LSIO_GPIO3_IO02                           SC_P_SPI0_SCK                      3
+#define SC_P_SPI0_SDO_DMA_SPI0_SDO                              SC_P_SPI0_SDO                      0
+#define SC_P_SPI0_SDO_AUD_SAI0_TXD                              SC_P_SPI0_SDO                      1
+#define SC_P_SPI0_SDO_LSIO_GPIO3_IO03                           SC_P_SPI0_SDO                      3
+#define SC_P_SPI0_SDI_DMA_SPI0_SDI                              SC_P_SPI0_SDI                      0
+#define SC_P_SPI0_SDI_AUD_SAI0_RXD                              SC_P_SPI0_SDI                      1
+#define SC_P_SPI0_SDI_LSIO_GPIO3_IO04                           SC_P_SPI0_SDI                      3
+#define SC_P_SPI0_CS0_DMA_SPI0_CS0                              SC_P_SPI0_CS0                      0
+#define SC_P_SPI0_CS0_AUD_SAI0_RXFS                             SC_P_SPI0_CS0                      1
+#define SC_P_SPI0_CS0_LSIO_GPIO3_IO05                           SC_P_SPI0_CS0                      3
+#define SC_P_SPI0_CS1_DMA_SPI0_CS1                              SC_P_SPI0_CS1                      0
+#define SC_P_SPI0_CS1_AUD_SAI0_TXC                              SC_P_SPI0_CS1                      1
+#define SC_P_SPI0_CS1_LSIO_GPIO3_IO06                           SC_P_SPI0_CS1                      3
+#define SC_P_SPI2_SCK_DMA_SPI2_SCK                              SC_P_SPI2_SCK                      0
+#define SC_P_SPI2_SCK_LSIO_GPIO3_IO07                           SC_P_SPI2_SCK                      3
+#define SC_P_SPI2_SDO_DMA_SPI2_SDO                              SC_P_SPI2_SDO                      0
+#define SC_P_SPI2_SDO_LSIO_GPIO3_IO08                           SC_P_SPI2_SDO                      3
+#define SC_P_SPI2_SDI_DMA_SPI2_SDI                              SC_P_SPI2_SDI                      0
+#define SC_P_SPI2_SDI_LSIO_GPIO3_IO09                           SC_P_SPI2_SDI                      3
+#define SC_P_SPI2_CS0_DMA_SPI2_CS0                              SC_P_SPI2_CS0                      0
+#define SC_P_SPI2_CS0_LSIO_GPIO3_IO10                           SC_P_SPI2_CS0                      3
+#define SC_P_SPI2_CS1_DMA_SPI2_CS1                              SC_P_SPI2_CS1                      0
+#define SC_P_SPI2_CS1_AUD_SAI0_TXFS                             SC_P_SPI2_CS1                      1
+#define SC_P_SPI2_CS1_LSIO_GPIO3_IO11                           SC_P_SPI2_CS1                      3
+#define SC_P_SAI1_RXC_AUD_SAI1_RXC                              SC_P_SAI1_RXC                      0
+#define SC_P_SAI1_RXC_AUD_SAI0_TXD                              SC_P_SAI1_RXC                      1
+#define SC_P_SAI1_RXC_LSIO_GPIO3_IO12                           SC_P_SAI1_RXC                      3
+#define SC_P_SAI1_RXD_AUD_SAI1_RXD                              SC_P_SAI1_RXD                      0
+#define SC_P_SAI1_RXD_AUD_SAI0_TXFS                             SC_P_SAI1_RXD                      1
+#define SC_P_SAI1_RXD_LSIO_GPIO3_IO13                           SC_P_SAI1_RXD                      3
+#define SC_P_SAI1_RXFS_AUD_SAI1_RXFS                            SC_P_SAI1_RXFS                     0
+#define SC_P_SAI1_RXFS_AUD_SAI0_RXD                             SC_P_SAI1_RXFS                     1
+#define SC_P_SAI1_RXFS_LSIO_GPIO3_IO14                          SC_P_SAI1_RXFS                     3
+#define SC_P_SAI1_TXC_AUD_SAI1_TXC                              SC_P_SAI1_TXC                      0
+#define SC_P_SAI1_TXC_AUD_SAI0_TXC                              SC_P_SAI1_TXC                      1
+#define SC_P_SAI1_TXC_LSIO_GPIO3_IO15                           SC_P_SAI1_TXC                      3
+#define SC_P_SAI1_TXD_AUD_SAI1_TXD                              SC_P_SAI1_TXD                      0
+#define SC_P_SAI1_TXD_AUD_SAI1_RXC                              SC_P_SAI1_TXD                      1
+#define SC_P_SAI1_TXD_LSIO_GPIO3_IO16                           SC_P_SAI1_TXD                      3
+#define SC_P_SAI1_TXFS_AUD_SAI1_TXFS                            SC_P_SAI1_TXFS                     0
+#define SC_P_SAI1_TXFS_AUD_SAI1_RXFS                            SC_P_SAI1_TXFS                     1
+#define SC_P_SAI1_TXFS_LSIO_GPIO3_IO17                          SC_P_SAI1_TXFS                     3
+#define SC_P_ADC_IN7_DMA_ADC1_IN3                               SC_P_ADC_IN7                       0
+#define SC_P_ADC_IN7_DMA_SPI1_CS1                               SC_P_ADC_IN7                       1
+#define SC_P_ADC_IN7_LSIO_KPP0_ROW3                             SC_P_ADC_IN7                       2
+#define SC_P_ADC_IN7_LSIO_GPIO3_IO25                            SC_P_ADC_IN7                       3
+#define SC_P_ADC_IN6_DMA_ADC1_IN2                               SC_P_ADC_IN6                       0
+#define SC_P_ADC_IN6_DMA_SPI1_CS0                               SC_P_ADC_IN6                       1
+#define SC_P_ADC_IN6_LSIO_KPP0_ROW2                             SC_P_ADC_IN6                       2
+#define SC_P_ADC_IN6_LSIO_GPIO3_IO24                            SC_P_ADC_IN6                       3
+#define SC_P_ADC_IN5_DMA_ADC1_IN1                               SC_P_ADC_IN5                       0
+#define SC_P_ADC_IN5_DMA_SPI1_SDI                               SC_P_ADC_IN5                       1
+#define SC_P_ADC_IN5_LSIO_KPP0_ROW1                             SC_P_ADC_IN5                       2
+#define SC_P_ADC_IN5_LSIO_GPIO3_IO23                            SC_P_ADC_IN5                       3
+#define SC_P_ADC_IN4_DMA_ADC1_IN0                               SC_P_ADC_IN4                       0
+#define SC_P_ADC_IN4_DMA_SPI1_SDO                               SC_P_ADC_IN4                       1
+#define SC_P_ADC_IN4_LSIO_KPP0_ROW0                             SC_P_ADC_IN4                       2
+#define SC_P_ADC_IN4_LSIO_GPIO3_IO22                            SC_P_ADC_IN4                       3
+#define SC_P_ADC_IN3_DMA_ADC0_IN3                               SC_P_ADC_IN3                       0
+#define SC_P_ADC_IN3_DMA_SPI1_SCK                               SC_P_ADC_IN3                       1
+#define SC_P_ADC_IN3_LSIO_KPP0_COL3                             SC_P_ADC_IN3                       2
+#define SC_P_ADC_IN3_LSIO_GPIO3_IO21                            SC_P_ADC_IN3                       3
+#define SC_P_ADC_IN2_DMA_ADC0_IN2                               SC_P_ADC_IN2                       0
+#define SC_P_ADC_IN2_LSIO_KPP0_COL2                             SC_P_ADC_IN2                       2
+#define SC_P_ADC_IN2_LSIO_GPIO3_IO20                            SC_P_ADC_IN2                       3
+#define SC_P_ADC_IN1_DMA_ADC0_IN1                               SC_P_ADC_IN1                       0
+#define SC_P_ADC_IN1_LSIO_KPP0_COL1                             SC_P_ADC_IN1                       2
+#define SC_P_ADC_IN1_LSIO_GPIO3_IO19                            SC_P_ADC_IN1                       3
+#define SC_P_ADC_IN0_DMA_ADC0_IN0                               SC_P_ADC_IN0                       0
+#define SC_P_ADC_IN0_LSIO_KPP0_COL0                             SC_P_ADC_IN0                       2
+#define SC_P_ADC_IN0_LSIO_GPIO3_IO18                            SC_P_ADC_IN0                       3
+#define SC_P_MLB_SIG_CONN_MLB_SIG                               SC_P_MLB_SIG                       0
+#define SC_P_MLB_SIG_AUD_SAI3_RXC                               SC_P_MLB_SIG                       1
+#define SC_P_MLB_SIG_LSIO_GPIO3_IO26                            SC_P_MLB_SIG                       3
+#define SC_P_MLB_CLK_CONN_MLB_CLK                               SC_P_MLB_CLK                       0
+#define SC_P_MLB_CLK_AUD_SAI3_RXFS                              SC_P_MLB_CLK                       1
+#define SC_P_MLB_CLK_LSIO_GPIO3_IO27                            SC_P_MLB_CLK                       3
+#define SC_P_MLB_DATA_CONN_MLB_DATA                             SC_P_MLB_DATA                      0
+#define SC_P_MLB_DATA_AUD_SAI3_RXD                              SC_P_MLB_DATA                      1
+#define SC_P_MLB_DATA_LSIO_GPIO3_IO28                           SC_P_MLB_DATA                      3
+#define SC_P_FLEXCAN0_RX_DMA_FLEXCAN0_RX                        SC_P_FLEXCAN0_RX                   0
+#define SC_P_FLEXCAN0_RX_LSIO_GPIO3_IO29                        SC_P_FLEXCAN0_RX                   3
+#define SC_P_FLEXCAN0_TX_DMA_FLEXCAN0_TX                        SC_P_FLEXCAN0_TX                   0
+#define SC_P_FLEXCAN0_TX_LSIO_GPIO3_IO30                        SC_P_FLEXCAN0_TX                   3
+#define SC_P_FLEXCAN1_RX_DMA_FLEXCAN1_RX                        SC_P_FLEXCAN1_RX                   0
+#define SC_P_FLEXCAN1_RX_LSIO_GPIO3_IO31                        SC_P_FLEXCAN1_RX                   3
+#define SC_P_FLEXCAN1_TX_DMA_FLEXCAN1_TX                        SC_P_FLEXCAN1_TX                   0
+#define SC_P_FLEXCAN1_TX_LSIO_GPIO4_IO00                        SC_P_FLEXCAN1_TX                   3
+#define SC_P_FLEXCAN2_RX_DMA_FLEXCAN2_RX                        SC_P_FLEXCAN2_RX                   0
+#define SC_P_FLEXCAN2_RX_LSIO_GPIO4_IO01                        SC_P_FLEXCAN2_RX                   3
+#define SC_P_FLEXCAN2_TX_DMA_FLEXCAN2_TX                        SC_P_FLEXCAN2_TX                   0
+#define SC_P_FLEXCAN2_TX_LSIO_GPIO4_IO02                        SC_P_FLEXCAN2_TX                   3
+#define SC_P_USB_SS3_TC0_DMA_I2C1_SCL                           SC_P_USB_SS3_TC0                   0
+#define SC_P_USB_SS3_TC0_CONN_USB_OTG1_PWR                      SC_P_USB_SS3_TC0                   1
+#define SC_P_USB_SS3_TC0_LSIO_GPIO4_IO03                        SC_P_USB_SS3_TC0                   3
+#define SC_P_USB_SS3_TC1_DMA_I2C1_SCL                           SC_P_USB_SS3_TC1                   0
+#define SC_P_USB_SS3_TC1_CONN_USB_OTG2_PWR                      SC_P_USB_SS3_TC1                   1
+#define SC_P_USB_SS3_TC1_LSIO_GPIO4_IO04                        SC_P_USB_SS3_TC1                   3
+#define SC_P_USB_SS3_TC2_DMA_I2C1_SDA                           SC_P_USB_SS3_TC2                   0
+#define SC_P_USB_SS3_TC2_CONN_USB_OTG1_OC                       SC_P_USB_SS3_TC2                   1
+#define SC_P_USB_SS3_TC2_LSIO_GPIO4_IO05                        SC_P_USB_SS3_TC2                   3
+#define SC_P_USB_SS3_TC3_DMA_I2C1_SDA                           SC_P_USB_SS3_TC3                   0
+#define SC_P_USB_SS3_TC3_CONN_USB_OTG2_OC                       SC_P_USB_SS3_TC3                   1
+#define SC_P_USB_SS3_TC3_LSIO_GPIO4_IO06                        SC_P_USB_SS3_TC3                   3
+#define SC_P_USDHC1_RESET_B_CONN_USDHC1_RESET_B                 SC_P_USDHC1_RESET_B                0
+#define SC_P_USDHC1_RESET_B_LSIO_GPIO4_IO07                     SC_P_USDHC1_RESET_B                3
+#define SC_P_USDHC1_VSELECT_CONN_USDHC1_VSELECT                 SC_P_USDHC1_VSELECT                0
+#define SC_P_USDHC1_VSELECT_LSIO_GPIO4_IO08                     SC_P_USDHC1_VSELECT                3
+#define SC_P_USDHC2_RESET_B_CONN_USDHC2_RESET_B                 SC_P_USDHC2_RESET_B                0
+#define SC_P_USDHC2_RESET_B_LSIO_GPIO4_IO09                     SC_P_USDHC2_RESET_B                3
+#define SC_P_USDHC2_VSELECT_CONN_USDHC2_VSELECT                 SC_P_USDHC2_VSELECT                0
+#define SC_P_USDHC2_VSELECT_LSIO_GPIO4_IO10                     SC_P_USDHC2_VSELECT                3
+#define SC_P_USDHC2_WP_CONN_USDHC2_WP                           SC_P_USDHC2_WP                     0
+#define SC_P_USDHC2_WP_LSIO_GPIO4_IO11                          SC_P_USDHC2_WP                     3
+#define SC_P_USDHC2_CD_B_CONN_USDHC2_CD_B                       SC_P_USDHC2_CD_B                   0
+#define SC_P_USDHC2_CD_B_LSIO_GPIO4_IO12                        SC_P_USDHC2_CD_B                   3
+#define SC_P_ENET0_MDIO_CONN_ENET0_MDIO                         SC_P_ENET0_MDIO                    0
+#define SC_P_ENET0_MDIO_DMA_I2C4_SDA                            SC_P_ENET0_MDIO                    1
+#define SC_P_ENET0_MDIO_LSIO_GPIO4_IO13                         SC_P_ENET0_MDIO                    3
+#define SC_P_ENET0_MDC_CONN_ENET0_MDC                           SC_P_ENET0_MDC                     0
+#define SC_P_ENET0_MDC_DMA_I2C4_SCL                             SC_P_ENET0_MDC                     1
+#define SC_P_ENET0_MDC_LSIO_GPIO4_IO14                          SC_P_ENET0_MDC                     3
+#define SC_P_ENET0_REFCLK_125M_25M_CONN_ENET0_REFCLK_125M_25M   SC_P_ENET0_REFCLK_125M_25M         0
+#define SC_P_ENET0_REFCLK_125M_25M_CONN_ENET0_PPS               SC_P_ENET0_REFCLK_125M_25M         1
+#define SC_P_ENET0_REFCLK_125M_25M_LSIO_GPIO4_IO15              SC_P_ENET0_REFCLK_125M_25M         3
+#define SC_P_ENET1_REFCLK_125M_25M_CONN_ENET1_REFCLK_125M_25M   SC_P_ENET1_REFCLK_125M_25M         0
+#define SC_P_ENET1_REFCLK_125M_25M_CONN_ENET1_PPS               SC_P_ENET1_REFCLK_125M_25M         1
+#define SC_P_ENET1_REFCLK_125M_25M_LSIO_GPIO4_IO16              SC_P_ENET1_REFCLK_125M_25M         3
+#define SC_P_ENET1_MDIO_CONN_ENET1_MDIO                         SC_P_ENET1_MDIO                    0
+#define SC_P_ENET1_MDIO_DMA_I2C4_SDA                            SC_P_ENET1_MDIO                    1
+#define SC_P_ENET1_MDIO_LSIO_GPIO4_IO17                         SC_P_ENET1_MDIO                    3
+#define SC_P_ENET1_MDC_CONN_ENET1_MDC                           SC_P_ENET1_MDC                     0
+#define SC_P_ENET1_MDC_DMA_I2C4_SCL                             SC_P_ENET1_MDC                     1
+#define SC_P_ENET1_MDC_LSIO_GPIO4_IO18                          SC_P_ENET1_MDC                     3
+#define SC_P_QSPI1A_SS0_B_LSIO_QSPI1A_SS0_B                     SC_P_QSPI1A_SS0_B                  0
+#define SC_P_QSPI1A_SS0_B_LSIO_GPIO4_IO19                       SC_P_QSPI1A_SS0_B                  3
+#define SC_P_QSPI1A_SS1_B_LSIO_QSPI1A_SS1_B                     SC_P_QSPI1A_SS1_B                  0
+#define SC_P_QSPI1A_SS1_B_LSIO_QSPI1A_SCLK2                     SC_P_QSPI1A_SS1_B                  1
+#define SC_P_QSPI1A_SS1_B_LSIO_GPIO4_IO20                       SC_P_QSPI1A_SS1_B                  3
+#define SC_P_QSPI1A_SCLK_LSIO_QSPI1A_SCLK                       SC_P_QSPI1A_SCLK                   0
+#define SC_P_QSPI1A_SCLK_LSIO_GPIO4_IO21                        SC_P_QSPI1A_SCLK                   3
+#define SC_P_QSPI1A_DQS_LSIO_QSPI1A_DQS                         SC_P_QSPI1A_DQS                    0
+#define SC_P_QSPI1A_DQS_LSIO_GPIO4_IO22                         SC_P_QSPI1A_DQS                    3
+#define SC_P_QSPI1A_DATA3_LSIO_QSPI1A_DATA3                     SC_P_QSPI1A_DATA3                  0
+#define SC_P_QSPI1A_DATA3_DMA_I2C1_SDA                          SC_P_QSPI1A_DATA3                  1
+#define SC_P_QSPI1A_DATA3_CONN_USB_OTG1_OC                      SC_P_QSPI1A_DATA3                  2
+#define SC_P_QSPI1A_DATA3_LSIO_GPIO4_IO23                       SC_P_QSPI1A_DATA3                  3
+#define SC_P_QSPI1A_DATA2_LSIO_QSPI1A_DATA2                     SC_P_QSPI1A_DATA2                  0
+#define SC_P_QSPI1A_DATA2_DMA_I2C1_SCL                          SC_P_QSPI1A_DATA2                  1
+#define SC_P_QSPI1A_DATA2_CONN_USB_OTG2_PWR                     SC_P_QSPI1A_DATA2                  2
+#define SC_P_QSPI1A_DATA2_LSIO_GPIO4_IO24                       SC_P_QSPI1A_DATA2                  3
+#define SC_P_QSPI1A_DATA1_LSIO_QSPI1A_DATA1                     SC_P_QSPI1A_DATA1                  0
+#define SC_P_QSPI1A_DATA1_DMA_I2C1_SDA                          SC_P_QSPI1A_DATA1                  1
+#define SC_P_QSPI1A_DATA1_CONN_USB_OTG2_OC                      SC_P_QSPI1A_DATA1                  2
+#define SC_P_QSPI1A_DATA1_LSIO_GPIO4_IO25                       SC_P_QSPI1A_DATA1                  3
+#define SC_P_QSPI1A_DATA0_LSIO_QSPI1A_DATA0                     SC_P_QSPI1A_DATA0                  0
+#define SC_P_QSPI1A_DATA0_LSIO_GPIO4_IO26                       SC_P_QSPI1A_DATA0                  3
+#define SC_P_QSPI0A_DATA0_LSIO_QSPI0A_DATA0                     SC_P_QSPI0A_DATA0                  0
+#define SC_P_QSPI0A_DATA1_LSIO_QSPI0A_DATA1                     SC_P_QSPI0A_DATA1                  0
+#define SC_P_QSPI0A_DATA2_LSIO_QSPI0A_DATA2                     SC_P_QSPI0A_DATA2                  0
+#define SC_P_QSPI0A_DATA3_LSIO_QSPI0A_DATA3                     SC_P_QSPI0A_DATA3                  0
+#define SC_P_QSPI0A_DQS_LSIO_QSPI0A_DQS                         SC_P_QSPI0A_DQS                    0
+#define SC_P_QSPI0A_SS0_B_LSIO_QSPI0A_SS0_B                     SC_P_QSPI0A_SS0_B                  0
+#define SC_P_QSPI0A_SS1_B_LSIO_QSPI0A_SS1_B                     SC_P_QSPI0A_SS1_B                  0
+#define SC_P_QSPI0A_SS1_B_LSIO_QSPI0A_SCLK2                     SC_P_QSPI0A_SS1_B                  1
+#define SC_P_QSPI0A_SCLK_LSIO_QSPI0A_SCLK                       SC_P_QSPI0A_SCLK                   0
+#define SC_P_QSPI0B_SCLK_LSIO_QSPI0B_SCLK                       SC_P_QSPI0B_SCLK                   0
+#define SC_P_QSPI0B_DATA0_LSIO_QSPI0B_DATA0                     SC_P_QSPI0B_DATA0                  0
+#define SC_P_QSPI0B_DATA1_LSIO_QSPI0B_DATA1                     SC_P_QSPI0B_DATA1                  0
+#define SC_P_QSPI0B_DATA2_LSIO_QSPI0B_DATA2                     SC_P_QSPI0B_DATA2                  0
+#define SC_P_QSPI0B_DATA3_LSIO_QSPI0B_DATA3                     SC_P_QSPI0B_DATA3                  0
+#define SC_P_QSPI0B_DQS_LSIO_QSPI0B_DQS                         SC_P_QSPI0B_DQS                    0
+#define SC_P_QSPI0B_SS0_B_LSIO_QSPI0B_SS0_B                     SC_P_QSPI0B_SS0_B                  0
+#define SC_P_QSPI0B_SS1_B_LSIO_QSPI0B_SS1_B                     SC_P_QSPI0B_SS1_B                  0
+#define SC_P_QSPI0B_SS1_B_LSIO_QSPI0B_SCLK2                     SC_P_QSPI0B_SS1_B                  1
+#define SC_P_PCIE_CTRL0_CLKREQ_B_HSIO_PCIE0_CLKREQ_B            SC_P_PCIE_CTRL0_CLKREQ_B           0
+#define SC_P_PCIE_CTRL0_CLKREQ_B_LSIO_GPIO4_IO27                SC_P_PCIE_CTRL0_CLKREQ_B           3
+#define SC_P_PCIE_CTRL0_WAKE_B_HSIO_PCIE0_WAKE_B                SC_P_PCIE_CTRL0_WAKE_B             0
+#define SC_P_PCIE_CTRL0_WAKE_B_LSIO_GPIO4_IO28                  SC_P_PCIE_CTRL0_WAKE_B             3
+#define SC_P_PCIE_CTRL0_PERST_B_HSIO_PCIE0_PERST_B              SC_P_PCIE_CTRL0_PERST_B            0
+#define SC_P_PCIE_CTRL0_PERST_B_LSIO_GPIO4_IO29                 SC_P_PCIE_CTRL0_PERST_B            3
+#define SC_P_PCIE_CTRL1_CLKREQ_B_HSIO_PCIE1_CLKREQ_B            SC_P_PCIE_CTRL1_CLKREQ_B           0
+#define SC_P_PCIE_CTRL1_CLKREQ_B_DMA_I2C1_SDA                   SC_P_PCIE_CTRL1_CLKREQ_B           1
+#define SC_P_PCIE_CTRL1_CLKREQ_B_CONN_USB_OTG2_OC               SC_P_PCIE_CTRL1_CLKREQ_B           2
+#define SC_P_PCIE_CTRL1_CLKREQ_B_LSIO_GPIO4_IO30                SC_P_PCIE_CTRL1_CLKREQ_B           3
+#define SC_P_PCIE_CTRL1_WAKE_B_HSIO_PCIE1_WAKE_B                SC_P_PCIE_CTRL1_WAKE_B             0
+#define SC_P_PCIE_CTRL1_WAKE_B_DMA_I2C1_SCL                     SC_P_PCIE_CTRL1_WAKE_B             1
+#define SC_P_PCIE_CTRL1_WAKE_B_CONN_USB_OTG2_PWR                SC_P_PCIE_CTRL1_WAKE_B             2
+#define SC_P_PCIE_CTRL1_WAKE_B_LSIO_GPIO4_IO31                  SC_P_PCIE_CTRL1_WAKE_B             3
+#define SC_P_PCIE_CTRL1_PERST_B_HSIO_PCIE1_PERST_B              SC_P_PCIE_CTRL1_PERST_B            0
+#define SC_P_PCIE_CTRL1_PERST_B_DMA_I2C1_SCL                    SC_P_PCIE_CTRL1_PERST_B            1
+#define SC_P_PCIE_CTRL1_PERST_B_CONN_USB_OTG1_PWR               SC_P_PCIE_CTRL1_PERST_B            2
+#define SC_P_PCIE_CTRL1_PERST_B_LSIO_GPIO5_IO00                 SC_P_PCIE_CTRL1_PERST_B            3
+#define SC_P_USB_HSIC0_DATA_CONN_USB_HSIC0_DATA                 SC_P_USB_HSIC0_DATA                0
+#define SC_P_USB_HSIC0_DATA_DMA_I2C1_SDA                        SC_P_USB_HSIC0_DATA                1
+#define SC_P_USB_HSIC0_DATA_LSIO_GPIO5_IO01                     SC_P_USB_HSIC0_DATA                3
+#define SC_P_USB_HSIC0_STROBE_CONN_USB_HSIC0_STROBE             SC_P_USB_HSIC0_STROBE              0
+#define SC_P_USB_HSIC0_STROBE_DMA_I2C1_SCL                      SC_P_USB_HSIC0_STROBE              1
+#define SC_P_USB_HSIC0_STROBE_LSIO_GPIO5_IO02                   SC_P_USB_HSIC0_STROBE              3
+#define SC_P_EMMC0_CLK_CONN_EMMC0_CLK                           SC_P_EMMC0_CLK                     0
+#define SC_P_EMMC0_CLK_CONN_NAND_READY_B                        SC_P_EMMC0_CLK                     1
+#define SC_P_EMMC0_CMD_CONN_EMMC0_CMD                           SC_P_EMMC0_CMD                     0
+#define SC_P_EMMC0_CMD_CONN_NAND_DQS                            SC_P_EMMC0_CMD                     1
+#define SC_P_EMMC0_CMD_AUD_MQS_R                                SC_P_EMMC0_CMD                     2
+#define SC_P_EMMC0_CMD_LSIO_GPIO5_IO03                          SC_P_EMMC0_CMD                     3
+#define SC_P_EMMC0_DATA0_CONN_EMMC0_DATA0                       SC_P_EMMC0_DATA0                   0
+#define SC_P_EMMC0_DATA0_CONN_NAND_DATA00                       SC_P_EMMC0_DATA0                   1
+#define SC_P_EMMC0_DATA0_LSIO_GPIO5_IO04                        SC_P_EMMC0_DATA0                   3
+#define SC_P_EMMC0_DATA1_CONN_EMMC0_DATA1                       SC_P_EMMC0_DATA1                   0
+#define SC_P_EMMC0_DATA1_CONN_NAND_DATA01                       SC_P_EMMC0_DATA1                   1
+#define SC_P_EMMC0_DATA1_LSIO_GPIO5_IO05                        SC_P_EMMC0_DATA1                   3
+#define SC_P_EMMC0_DATA2_CONN_EMMC0_DATA2                       SC_P_EMMC0_DATA2                   0
+#define SC_P_EMMC0_DATA2_CONN_NAND_DATA02                       SC_P_EMMC0_DATA2                   1
+#define SC_P_EMMC0_DATA2_LSIO_GPIO5_IO06                        SC_P_EMMC0_DATA2                   3
+#define SC_P_EMMC0_DATA3_CONN_EMMC0_DATA3                       SC_P_EMMC0_DATA3                   0
+#define SC_P_EMMC0_DATA3_CONN_NAND_DATA03                       SC_P_EMMC0_DATA3                   1
+#define SC_P_EMMC0_DATA3_LSIO_GPIO5_IO07                        SC_P_EMMC0_DATA3                   3
+#define SC_P_EMMC0_DATA4_CONN_EMMC0_DATA4                       SC_P_EMMC0_DATA4                   0
+#define SC_P_EMMC0_DATA4_CONN_NAND_DATA04                       SC_P_EMMC0_DATA4                   1
+#define SC_P_EMMC0_DATA4_LSIO_GPIO5_IO08                        SC_P_EMMC0_DATA4                   3
+#define SC_P_EMMC0_DATA5_CONN_EMMC0_DATA5                       SC_P_EMMC0_DATA5                   0
+#define SC_P_EMMC0_DATA5_CONN_NAND_DATA05                       SC_P_EMMC0_DATA5                   1
+#define SC_P_EMMC0_DATA5_LSIO_GPIO5_IO09                        SC_P_EMMC0_DATA5                   3
+#define SC_P_EMMC0_DATA6_CONN_EMMC0_DATA6                       SC_P_EMMC0_DATA6                   0
+#define SC_P_EMMC0_DATA6_CONN_NAND_DATA06                       SC_P_EMMC0_DATA6                   1
+#define SC_P_EMMC0_DATA6_LSIO_GPIO5_IO10                        SC_P_EMMC0_DATA6                   3
+#define SC_P_EMMC0_DATA7_CONN_EMMC0_DATA7                       SC_P_EMMC0_DATA7                   0
+#define SC_P_EMMC0_DATA7_CONN_NAND_DATA07                       SC_P_EMMC0_DATA7                   1
+#define SC_P_EMMC0_DATA7_LSIO_GPIO5_IO11                        SC_P_EMMC0_DATA7                   3
+#define SC_P_EMMC0_STROBE_CONN_EMMC0_STROBE                     SC_P_EMMC0_STROBE                  0
+#define SC_P_EMMC0_STROBE_CONN_NAND_CLE                         SC_P_EMMC0_STROBE                  1
+#define SC_P_EMMC0_STROBE_LSIO_GPIO5_IO12                       SC_P_EMMC0_STROBE                  3
+#define SC_P_EMMC0_RESET_B_CONN_EMMC0_RESET_B                   SC_P_EMMC0_RESET_B                 0
+#define SC_P_EMMC0_RESET_B_CONN_NAND_WP_B                       SC_P_EMMC0_RESET_B                 1
+#define SC_P_EMMC0_RESET_B_CONN_USDHC1_VSELECT                  SC_P_EMMC0_RESET_B                 2
+#define SC_P_EMMC0_RESET_B_LSIO_GPIO5_IO13                      SC_P_EMMC0_RESET_B                 3
+#define SC_P_USDHC1_CLK_CONN_USDHC1_CLK                         SC_P_USDHC1_CLK                    0
+#define SC_P_USDHC1_CLK_AUD_MQS_R                               SC_P_USDHC1_CLK                    1
+#define SC_P_USDHC1_CMD_CONN_USDHC1_CMD                         SC_P_USDHC1_CMD                    0
+#define SC_P_USDHC1_CMD_AUD_MQS_L                               SC_P_USDHC1_CMD                    1
+#define SC_P_USDHC1_CMD_LSIO_GPIO5_IO14                         SC_P_USDHC1_CMD                    3
+#define SC_P_USDHC1_DATA0_CONN_USDHC1_DATA0                     SC_P_USDHC1_DATA0                  0
+#define SC_P_USDHC1_DATA0_CONN_NAND_RE_N                        SC_P_USDHC1_DATA0                  1
+#define SC_P_USDHC1_DATA0_LSIO_GPIO5_IO15                       SC_P_USDHC1_DATA0                  3
+#define SC_P_USDHC1_DATA1_CONN_USDHC1_DATA1                     SC_P_USDHC1_DATA1                  0
+#define SC_P_USDHC1_DATA1_CONN_NAND_RE_P                        SC_P_USDHC1_DATA1                  1
+#define SC_P_USDHC1_DATA1_LSIO_GPIO5_IO16                       SC_P_USDHC1_DATA1                  3
+#define SC_P_USDHC1_DATA2_CONN_USDHC1_DATA2                     SC_P_USDHC1_DATA2                  0
+#define SC_P_USDHC1_DATA2_CONN_NAND_DQS_N                       SC_P_USDHC1_DATA2                  1
+#define SC_P_USDHC1_DATA2_LSIO_GPIO5_IO17                       SC_P_USDHC1_DATA2                  3
+#define SC_P_USDHC1_DATA3_CONN_USDHC1_DATA3                     SC_P_USDHC1_DATA3                  0
+#define SC_P_USDHC1_DATA3_CONN_NAND_DQS_P                       SC_P_USDHC1_DATA3                  1
+#define SC_P_USDHC1_DATA3_LSIO_GPIO5_IO18                       SC_P_USDHC1_DATA3                  3
+#define SC_P_USDHC1_DATA4_CONN_USDHC1_DATA4                     SC_P_USDHC1_DATA4                  0
+#define SC_P_USDHC1_DATA4_CONN_NAND_CE0_B                       SC_P_USDHC1_DATA4                  1
+#define SC_P_USDHC1_DATA4_AUD_MQS_R                             SC_P_USDHC1_DATA4                  2
+#define SC_P_USDHC1_DATA4_LSIO_GPIO5_IO19                       SC_P_USDHC1_DATA4                  3
+#define SC_P_USDHC1_DATA5_CONN_USDHC1_DATA5                     SC_P_USDHC1_DATA5                  0
+#define SC_P_USDHC1_DATA5_CONN_NAND_RE_B                        SC_P_USDHC1_DATA5                  1
+#define SC_P_USDHC1_DATA5_AUD_MQS_L                             SC_P_USDHC1_DATA5                  2
+#define SC_P_USDHC1_DATA5_LSIO_GPIO5_IO20                       SC_P_USDHC1_DATA5                  3
+#define SC_P_USDHC1_DATA6_CONN_USDHC1_DATA6                     SC_P_USDHC1_DATA6                  0
+#define SC_P_USDHC1_DATA6_CONN_NAND_WE_B                        SC_P_USDHC1_DATA6                  1
+#define SC_P_USDHC1_DATA6_CONN_USDHC1_WP                        SC_P_USDHC1_DATA6                  2
+#define SC_P_USDHC1_DATA6_LSIO_GPIO5_IO21                       SC_P_USDHC1_DATA6                  3
+#define SC_P_USDHC1_DATA7_CONN_USDHC1_DATA7                     SC_P_USDHC1_DATA7                  0
+#define SC_P_USDHC1_DATA7_CONN_NAND_ALE                         SC_P_USDHC1_DATA7                  1
+#define SC_P_USDHC1_DATA7_CONN_USDHC1_CD_B                      SC_P_USDHC1_DATA7                  2
+#define SC_P_USDHC1_DATA7_LSIO_GPIO5_IO22                       SC_P_USDHC1_DATA7                  3
+#define SC_P_USDHC1_STROBE_CONN_USDHC1_STROBE                   SC_P_USDHC1_STROBE                 0
+#define SC_P_USDHC1_STROBE_CONN_NAND_CE1_B                      SC_P_USDHC1_STROBE                 1
+#define SC_P_USDHC1_STROBE_CONN_USDHC1_RESET_B                  SC_P_USDHC1_STROBE                 2
+#define SC_P_USDHC1_STROBE_LSIO_GPIO5_IO23                      SC_P_USDHC1_STROBE                 3
+#define SC_P_USDHC2_CLK_CONN_USDHC2_CLK                         SC_P_USDHC2_CLK                    0
+#define SC_P_USDHC2_CLK_AUD_MQS_R                               SC_P_USDHC2_CLK                    1
+#define SC_P_USDHC2_CLK_LSIO_GPIO5_IO24                         SC_P_USDHC2_CLK                    3
+#define SC_P_USDHC2_CMD_CONN_USDHC2_CMD                         SC_P_USDHC2_CMD                    0
+#define SC_P_USDHC2_CMD_AUD_MQS_L                               SC_P_USDHC2_CMD                    1
+#define SC_P_USDHC2_CMD_LSIO_GPIO5_IO25                         SC_P_USDHC2_CMD                    3
+#define SC_P_USDHC2_DATA0_CONN_USDHC2_DATA0                     SC_P_USDHC2_DATA0                  0
+#define SC_P_USDHC2_DATA0_DMA_UART4_RX                          SC_P_USDHC2_DATA0                  1
+#define SC_P_USDHC2_DATA0_LSIO_GPIO5_IO26                       SC_P_USDHC2_DATA0                  3
+#define SC_P_USDHC2_DATA1_CONN_USDHC2_DATA1                     SC_P_USDHC2_DATA1                  0
+#define SC_P_USDHC2_DATA1_DMA_UART4_TX                          SC_P_USDHC2_DATA1                  1
+#define SC_P_USDHC2_DATA1_LSIO_GPIO5_IO27                       SC_P_USDHC2_DATA1                  3
+#define SC_P_USDHC2_DATA2_CONN_USDHC2_DATA2                     SC_P_USDHC2_DATA2                  0
+#define SC_P_USDHC2_DATA2_DMA_UART4_CTS_B                       SC_P_USDHC2_DATA2                  1
+#define SC_P_USDHC2_DATA2_LSIO_GPIO5_IO28                       SC_P_USDHC2_DATA2                  3
+#define SC_P_USDHC2_DATA3_CONN_USDHC2_DATA3                     SC_P_USDHC2_DATA3                  0
+#define SC_P_USDHC2_DATA3_DMA_UART4_RTS_B                       SC_P_USDHC2_DATA3                  1
+#define SC_P_USDHC2_DATA3_LSIO_GPIO5_IO29                       SC_P_USDHC2_DATA3                  3
+#define SC_P_ENET0_RGMII_TXC_CONN_ENET0_RGMII_TXC               SC_P_ENET0_RGMII_TXC               0
+#define SC_P_ENET0_RGMII_TXC_CONN_ENET0_RCLK50M_OUT             SC_P_ENET0_RGMII_TXC               1
+#define SC_P_ENET0_RGMII_TXC_CONN_ENET0_RCLK50M_IN              SC_P_ENET0_RGMII_TXC               2
+#define SC_P_ENET0_RGMII_TXC_LSIO_GPIO5_IO30                    SC_P_ENET0_RGMII_TXC               3
+#define SC_P_ENET0_RGMII_TX_CTL_CONN_ENET0_RGMII_TX_CTL         SC_P_ENET0_RGMII_TX_CTL            0
+#define SC_P_ENET0_RGMII_TX_CTL_LSIO_GPIO5_IO31                 SC_P_ENET0_RGMII_TX_CTL            3
+#define SC_P_ENET0_RGMII_TXD0_CONN_ENET0_RGMII_TXD0             SC_P_ENET0_RGMII_TXD0              0
+#define SC_P_ENET0_RGMII_TXD0_LSIO_GPIO6_IO00                   SC_P_ENET0_RGMII_TXD0              3
+#define SC_P_ENET0_RGMII_TXD1_CONN_ENET0_RGMII_TXD1             SC_P_ENET0_RGMII_TXD1              0
+#define SC_P_ENET0_RGMII_TXD1_LSIO_GPIO6_IO01                   SC_P_ENET0_RGMII_TXD1              3
+#define SC_P_ENET0_RGMII_TXD2_CONN_ENET0_RGMII_TXD2             SC_P_ENET0_RGMII_TXD2              0
+#define SC_P_ENET0_RGMII_TXD2_DMA_UART3_TX                      SC_P_ENET0_RGMII_TXD2              1
+#define SC_P_ENET0_RGMII_TXD2_VPU_TSI_S1_VID                    SC_P_ENET0_RGMII_TXD2              2
+#define SC_P_ENET0_RGMII_TXD2_LSIO_GPIO6_IO02                   SC_P_ENET0_RGMII_TXD2              3
+#define SC_P_ENET0_RGMII_TXD3_CONN_ENET0_RGMII_TXD3             SC_P_ENET0_RGMII_TXD3              0
+#define SC_P_ENET0_RGMII_TXD3_DMA_UART3_RTS_B                   SC_P_ENET0_RGMII_TXD3              1
+#define SC_P_ENET0_RGMII_TXD3_VPU_TSI_S1_SYNC                   SC_P_ENET0_RGMII_TXD3              2
+#define SC_P_ENET0_RGMII_TXD3_LSIO_GPIO6_IO03                   SC_P_ENET0_RGMII_TXD3              3
+#define SC_P_ENET0_RGMII_RXC_CONN_ENET0_RGMII_RXC               SC_P_ENET0_RGMII_RXC               0
+#define SC_P_ENET0_RGMII_RXC_DMA_UART3_CTS_B                    SC_P_ENET0_RGMII_RXC               1
+#define SC_P_ENET0_RGMII_RXC_VPU_TSI_S1_DATA                    SC_P_ENET0_RGMII_RXC               2
+#define SC_P_ENET0_RGMII_RXC_LSIO_GPIO6_IO04                    SC_P_ENET0_RGMII_RXC               3
+#define SC_P_ENET0_RGMII_RX_CTL_CONN_ENET0_RGMII_RX_CTL         SC_P_ENET0_RGMII_RX_CTL            0
+#define SC_P_ENET0_RGMII_RX_CTL_VPU_TSI_S0_VID                  SC_P_ENET0_RGMII_RX_CTL            2
+#define SC_P_ENET0_RGMII_RX_CTL_LSIO_GPIO6_IO05                 SC_P_ENET0_RGMII_RX_CTL            3
+#define SC_P_ENET0_RGMII_RXD0_CONN_ENET0_RGMII_RXD0             SC_P_ENET0_RGMII_RXD0              0
+#define SC_P_ENET0_RGMII_RXD0_VPU_TSI_S0_SYNC                   SC_P_ENET0_RGMII_RXD0              2
+#define SC_P_ENET0_RGMII_RXD0_LSIO_GPIO6_IO06                   SC_P_ENET0_RGMII_RXD0              3
+#define SC_P_ENET0_RGMII_RXD1_CONN_ENET0_RGMII_RXD1             SC_P_ENET0_RGMII_RXD1              0
+#define SC_P_ENET0_RGMII_RXD1_VPU_TSI_S0_DATA                   SC_P_ENET0_RGMII_RXD1              2
+#define SC_P_ENET0_RGMII_RXD1_LSIO_GPIO6_IO07                   SC_P_ENET0_RGMII_RXD1              3
+#define SC_P_ENET0_RGMII_RXD2_CONN_ENET0_RGMII_RXD2             SC_P_ENET0_RGMII_RXD2              0
+#define SC_P_ENET0_RGMII_RXD2_CONN_ENET0_RMII_RX_ER             SC_P_ENET0_RGMII_RXD2              1
+#define SC_P_ENET0_RGMII_RXD2_VPU_TSI_S0_CLK                    SC_P_ENET0_RGMII_RXD2              2
+#define SC_P_ENET0_RGMII_RXD2_LSIO_GPIO6_IO08                   SC_P_ENET0_RGMII_RXD2              3
+#define SC_P_ENET0_RGMII_RXD3_CONN_ENET0_RGMII_RXD3             SC_P_ENET0_RGMII_RXD3              0
+#define SC_P_ENET0_RGMII_RXD3_DMA_UART3_RX                      SC_P_ENET0_RGMII_RXD3              1
+#define SC_P_ENET0_RGMII_RXD3_VPU_TSI_S1_CLK                    SC_P_ENET0_RGMII_RXD3              2
+#define SC_P_ENET0_RGMII_RXD3_LSIO_GPIO6_IO09                   SC_P_ENET0_RGMII_RXD3              3
+#define SC_P_ENET1_RGMII_TXC_CONN_ENET1_RGMII_TXC               SC_P_ENET1_RGMII_TXC               0
+#define SC_P_ENET1_RGMII_TXC_CONN_ENET1_RCLK50M_OUT             SC_P_ENET1_RGMII_TXC               1
+#define SC_P_ENET1_RGMII_TXC_CONN_ENET1_RCLK50M_IN              SC_P_ENET1_RGMII_TXC               2
+#define SC_P_ENET1_RGMII_TXC_LSIO_GPIO6_IO10                    SC_P_ENET1_RGMII_TXC               3
+#define SC_P_ENET1_RGMII_TX_CTL_CONN_ENET1_RGMII_TX_CTL         SC_P_ENET1_RGMII_TX_CTL            0
+#define SC_P_ENET1_RGMII_TX_CTL_LSIO_GPIO6_IO11                 SC_P_ENET1_RGMII_TX_CTL            3
+#define SC_P_ENET1_RGMII_TXD0_CONN_ENET1_RGMII_TXD0             SC_P_ENET1_RGMII_TXD0              0
+#define SC_P_ENET1_RGMII_TXD0_LSIO_GPIO6_IO12                   SC_P_ENET1_RGMII_TXD0              3
+#define SC_P_ENET1_RGMII_TXD1_CONN_ENET1_RGMII_TXD1             SC_P_ENET1_RGMII_TXD1              0
+#define SC_P_ENET1_RGMII_TXD1_LSIO_GPIO6_IO13                   SC_P_ENET1_RGMII_TXD1              3
+#define SC_P_ENET1_RGMII_TXD2_CONN_ENET1_RGMII_TXD2             SC_P_ENET1_RGMII_TXD2              0
+#define SC_P_ENET1_RGMII_TXD2_DMA_UART3_TX                      SC_P_ENET1_RGMII_TXD2              1
+#define SC_P_ENET1_RGMII_TXD2_VPU_TSI_S1_VID                    SC_P_ENET1_RGMII_TXD2              2
+#define SC_P_ENET1_RGMII_TXD2_LSIO_GPIO6_IO14                   SC_P_ENET1_RGMII_TXD2              3
+#define SC_P_ENET1_RGMII_TXD3_CONN_ENET1_RGMII_TXD3             SC_P_ENET1_RGMII_TXD3              0
+#define SC_P_ENET1_RGMII_TXD3_DMA_UART3_RTS_B                   SC_P_ENET1_RGMII_TXD3              1
+#define SC_P_ENET1_RGMII_TXD3_VPU_TSI_S1_SYNC                   SC_P_ENET1_RGMII_TXD3              2
+#define SC_P_ENET1_RGMII_TXD3_LSIO_GPIO6_IO15                   SC_P_ENET1_RGMII_TXD3              3
+#define SC_P_ENET1_RGMII_RXC_CONN_ENET1_RGMII_RXC               SC_P_ENET1_RGMII_RXC               0
+#define SC_P_ENET1_RGMII_RXC_DMA_UART3_CTS_B                    SC_P_ENET1_RGMII_RXC               1
+#define SC_P_ENET1_RGMII_RXC_VPU_TSI_S1_DATA                    SC_P_ENET1_RGMII_RXC               2
+#define SC_P_ENET1_RGMII_RXC_LSIO_GPIO6_IO16                    SC_P_ENET1_RGMII_RXC               3
+#define SC_P_ENET1_RGMII_RX_CTL_CONN_ENET1_RGMII_RX_CTL         SC_P_ENET1_RGMII_RX_CTL            0
+#define SC_P_ENET1_RGMII_RX_CTL_VPU_TSI_S0_VID                  SC_P_ENET1_RGMII_RX_CTL            2
+#define SC_P_ENET1_RGMII_RX_CTL_LSIO_GPIO6_IO17                 SC_P_ENET1_RGMII_RX_CTL            3
+#define SC_P_ENET1_RGMII_RXD0_CONN_ENET1_RGMII_RXD0             SC_P_ENET1_RGMII_RXD0              0
+#define SC_P_ENET1_RGMII_RXD0_VPU_TSI_S0_SYNC                   SC_P_ENET1_RGMII_RXD0              2
+#define SC_P_ENET1_RGMII_RXD0_LSIO_GPIO6_IO18                   SC_P_ENET1_RGMII_RXD0              3
+#define SC_P_ENET1_RGMII_RXD1_CONN_ENET1_RGMII_RXD1             SC_P_ENET1_RGMII_RXD1              0
+#define SC_P_ENET1_RGMII_RXD1_VPU_TSI_S0_DATA                   SC_P_ENET1_RGMII_RXD1              2
+#define SC_P_ENET1_RGMII_RXD1_LSIO_GPIO6_IO19                   SC_P_ENET1_RGMII_RXD1              3
+#define SC_P_ENET1_RGMII_RXD2_CONN_ENET1_RGMII_RXD2             SC_P_ENET1_RGMII_RXD2              0
+#define SC_P_ENET1_RGMII_RXD2_CONN_ENET1_RMII_RX_ER             SC_P_ENET1_RGMII_RXD2              1
+#define SC_P_ENET1_RGMII_RXD2_VPU_TSI_S0_CLK                    SC_P_ENET1_RGMII_RXD2              2
+#define SC_P_ENET1_RGMII_RXD2_LSIO_GPIO6_IO20                   SC_P_ENET1_RGMII_RXD2              3
+#define SC_P_ENET1_RGMII_RXD3_CONN_ENET1_RGMII_RXD3             SC_P_ENET1_RGMII_RXD3              0
+#define SC_P_ENET1_RGMII_RXD3_DMA_UART3_RX                      SC_P_ENET1_RGMII_RXD3              1
+#define SC_P_ENET1_RGMII_RXD3_VPU_TSI_S1_CLK                    SC_P_ENET1_RGMII_RXD3              2
+#define SC_P_ENET1_RGMII_RXD3_LSIO_GPIO6_IO21                   SC_P_ENET1_RGMII_RXD3              3
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENETB_PAD               SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENETB              0
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENETA_PAD               SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENETA              0
+
+#endif				/* SC_PADS_H */
-- 
2.16.4

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

* [U-Boot] [PATCH RESEND 03/10] dt-bindings: clock: dt-bindings: pinctrl: add i.MX8QM clocks definition
  2019-03-05  2:32 [U-Boot] [PATCH RESEND 01/10] pinctrl: imx8: add i.MX8QM compatible Peng Fan
  2019-03-05  2:32 ` [U-Boot] [PATCH RESEND 02/10] dt-bindings: pinctrl: add i.MX8QM pads definition Peng Fan
@ 2019-03-05  2:32 ` Peng Fan
  2019-03-05  2:32 ` [U-Boot] [PATCH RESEND 04/10] arm: dts: introduce dtsi for i.MX8QM Peng Fan
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2019-03-05  2:32 UTC (permalink / raw)
  To: u-boot

Add i.MX8QM clocks definition

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 include/dt-bindings/clock/imx8qm-clock.h | 846 +++++++++++++++++++++++++++++++
 1 file changed, 846 insertions(+)
 create mode 100644 include/dt-bindings/clock/imx8qm-clock.h

diff --git a/include/dt-bindings/clock/imx8qm-clock.h b/include/dt-bindings/clock/imx8qm-clock.h
new file mode 100644
index 0000000000..58de976e63
--- /dev/null
+++ b/include/dt-bindings/clock/imx8qm-clock.h
@@ -0,0 +1,846 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright 2018 NXP
+ */
+
+#ifndef __DT_BINDINGS_CLOCK_IMX8QM_H
+#define __DT_BINDINGS_CLOCK_IMX8QM_H
+
+#define IMX8QM_CLK_DUMMY					0
+
+#define IMX8QM_A53_DIV						1
+#define IMX8QM_A53_CLK						2
+#define IMX8QM_A72_DIV						3
+#define IMX8QM_A72_CLK						4
+
+/* SC Clocks. */
+#define IMX8QM_SC_I2C_DIV					5
+#define IMX8QM_SC_I2C_CLK					6
+#define IMX8QM_SC_PID0_DIV					7
+#define IMX8QM_SC_PID0_CLK					8
+#define IMX8QM_SC_PIT_DIV					9
+#define IMX8QM_SC_PIT_CLK					10
+#define IMX8QM_SC_TPM_DIV					11
+#define IMX8QM_SC_TPM_CLK					12
+#define IMX8QM_SC_UART_DIV					13
+#define IMX8QM_SC_UART_CLK					14
+
+/* LSIO */
+#define IMX8QM_PWM0_DIV						15
+#define IMX8QM_PWM0_CLK						16
+#define IMX8QM_PWM1_DIV						17
+#define IMX8QM_PWM1_CLK						18
+#define IMX8QM_PWM2_DIV						19
+#define IMX8QM_PWM2_CLK						20
+#define IMX8QM_PWM3_DIV						21
+#define IMX8QM_PWM3_CLK						22
+#define IMX8QM_PWM4_DIV						23
+#define IMX8QM_PWM4_CLK						24
+#define IMX8QM_PWM5_DIV						26
+#define IMX8QM_PWM5_CLK						27
+#define IMX8QM_PWM6_DIV						28
+#define IMX8QM_PWM6_CLK						29
+#define IMX8QM_PWM7_DIV						30
+#define IMX8QM_PWM7_CLK						31
+#define IMX8QM_FSPI0_DIV					32
+#define IMX8QM_FSPI0_CLK					33
+#define IMX8QM_FSPI1_DIV					34
+#define IMX8QM_FSPI1_CLK					35
+#define IMX8QM_GPT0_DIV						36
+#define IMX8QM_GPT0_CLK						37
+#define IMX8QM_GPT1_DIV						38
+#define IMX8QM_GPT1_CLK						39
+#define IMX8QM_GPT2_DIV						40
+#define IMX8QM_GPT2_CLK						41
+#define IMX8QM_GPT3_DIV						42
+#define IMX8QM_GPT3_CLK						43
+#define IMX8QM_GPT4_DIV						44
+#define IMX8QM_GPT4_CLK						45
+
+/* Connectivity */
+#define IMX8QM_APBHDMA_CLK					46
+#define IMX8QM_GPMI_APB_CLK					47
+#define IMX8QM_GPMI_APB_BCH_CLK				48
+#define IMX8QM_GPMI_BCH_IO_DIV				49
+#define IMX8QM_GPMI_BCH_IO_CLK				50
+#define IMX8QM_GPMI_BCH_DIV				51
+#define IMX8QM_GPMI_BCH_CLK				52
+#define IMX8QM_SDHC0_IPG_CLK				53
+#define IMX8QM_SDHC0_DIV				54
+#define IMX8QM_SDHC0_CLK				55
+#define IMX8QM_SDHC1_IPG_CLK				56
+#define IMX8QM_SDHC1_DIV				57
+#define IMX8QM_SDHC1_CLK				58
+#define IMX8QM_SDHC2_IPG_CLK				59
+#define IMX8QM_SDHC2_DIV				60
+#define IMX8QM_SDHC2_CLK				61
+#define IMX8QM_USB2_OH_AHB_CLK				62
+#define IMX8QM_USB2_OH_IPG_S_CLK			63
+#define IMX8QM_USB2_OH_IPG_S_PL301_CLK			64
+#define IMX8QM_USB2_PHY_IPG_CLK				65
+#define IMX8QM_USB3_IPG_CLK				66
+#define IMX8QM_USB3_CORE_PCLK				67
+#define IMX8QM_USB3_PHY_CLK				68
+#define IMX8QM_USB3_ACLK_DIV				69
+#define IMX8QM_USB3_ACLK				70
+#define IMX8QM_USB3_BUS_DIV				71
+#define IMX8QM_USB3_BUS_CLK				72
+#define IMX8QM_USB3_LPM_DIV				73
+#define IMX8QM_USB3_LPM_CLK				74
+#define IMX8QM_ENET0_AHB_CLK				75
+#define IMX8QM_ENET0_IPG_S_CLK				76
+#define IMX8QM_ENET0_IPG_CLK				77
+#define IMX8QM_ENET0_RGMII_DIV				78
+#define IMX8QM_ENET0_RGMII_TX_CLK			79
+#define IMX8QM_ENET0_ROOT_DIV				80
+#define IMX8QM_ENET0_TX_CLK				81
+#define IMX8QM_ENET0_ROOT_CLK				82
+#define IMX8QM_ENET0_PTP_CLK				83
+#define IMX8QM_ENET0_BYPASS_DIV				84
+#define IMX8QM_ENET1_AHB_CLK				85
+#define IMX8QM_ENET1_IPG_S_CLK				86
+#define IMX8QM_ENET1_IPG_CLK				87
+#define IMX8QM_ENET1_RGMII_DIV				88
+#define IMX8QM_ENET1_RGMII_TX_CLK			89
+#define IMX8QM_ENET1_ROOT_DIV				90
+#define IMX8QM_ENET1_TX_CLK				91
+#define IMX8QM_ENET1_ROOT_CLK				92
+#define IMX8QM_ENET1_PTP_CLK				93
+#define IMX8QM_ENET1_BYPASS_DIV				94
+#define IMX8QM_MLB_CLK					95
+#define IMX8QM_MLB_HCLK					96
+#define IMX8QM_MLB_IPG_CLK				97
+#define IMX8QM_EDMA_CLK					98
+#define IMX8QM_EDMA_IPG_CLK				99
+
+/* DMA */
+#define IMX8QM_SPI0_IPG_CLK				100
+#define IMX8QM_SPI0_DIV					101
+#define IMX8QM_SPI0_CLK					102
+#define IMX8QM_SPI1_IPG_CLK				103
+#define IMX8QM_SPI1_DIV					104
+#define IMX8QM_SPI1_CLK					105
+#define IMX8QM_SPI2_IPG_CLK				106
+#define IMX8QM_SPI2_DIV					107
+#define IMX8QM_SPI2_CLK					108
+#define IMX8QM_SPI3_IPG_CLK				109
+#define IMX8QM_SPI3_DIV					110
+#define IMX8QM_SPI3_CLK					111
+#define IMX8QM_UART0_IPG_CLK				112
+#define IMX8QM_UART0_DIV				113
+#define IMX8QM_UART0_CLK				114
+#define IMX8QM_UART1_IPG_CLK				115
+#define IMX8QM_UART1_DIV				116
+#define IMX8QM_UART1_CLK				117
+#define IMX8QM_UART2_IPG_CLK				118
+#define IMX8QM_UART2_DIV				119
+#define IMX8QM_UART2_CLK				120
+#define IMX8QM_UART3_IPG_CLK				121
+#define IMX8QM_UART3_DIV				122
+#define IMX8QM_UART3_CLK				123
+#define IMX8QM_UART4_IPG_CLK				124
+#define IMX8QM_UART4_DIV				125
+#define IMX8QM_EMVSIM0_IPG_CLK				126
+#define IMX8QM_UART4_CLK				127
+#define IMX8QM_EMVSIM0_DIV				128
+#define IMX8QM_EMVSIM0_CLK				129
+#define IMX8QM_EMVSIM1_IPG_CLK				130
+#define IMX8QM_EMVSIM1_DIV				131
+#define IMX8QM_EMVSIM1_CLK				132
+#define IMX8QM_CAN0_IPG_CHI_CLK				133
+#define IMX8QM_CAN0_IPG_CLK				134
+#define IMX8QM_CAN0_DIV					135
+#define IMX8QM_CAN0_CLK					136
+#define IMX8QM_CAN1_IPG_CHI_CLK				137
+#define IMX8QM_CAN1_IPG_CLK				138
+#define IMX8QM_CAN1_DIV					139
+#define IMX8QM_CAN1_CLK					140
+#define IMX8QM_CAN2_IPG_CHI_CLK				141
+#define IMX8QM_CAN2_IPG_CLK				142
+#define IMX8QM_CAN2_DIV					143
+#define IMX8QM_CAN2_CLK					144
+#define IMX8QM_I2C0_IPG_CLK				145
+#define IMX8QM_I2C0_DIV					146
+#define IMX8QM_I2C0_CLK					147
+#define IMX8QM_I2C1_IPG_CLK				148
+#define IMX8QM_I2C1_DIV					149
+#define IMX8QM_I2C1_CLK					150
+#define IMX8QM_I2C2_IPG_CLK				151
+#define IMX8QM_I2C2_DIV					152
+#define IMX8QM_I2C2_CLK					153
+#define IMX8QM_I2C3_IPG_CLK				154
+#define IMX8QM_I2C3_DIV					155
+#define IMX8QM_I2C3_CLK					156
+#define IMX8QM_I2C4_IPG_CLK				157
+#define IMX8QM_I2C4_DIV					158
+#define IMX8QM_I2C4_CLK					159
+#define IMX8QM_FTM0_IPG_CLK				160
+#define IMX8QM_FTM0_DIV					161
+#define IMX8QM_FTM0_CLK					162
+#define IMX8QM_FTM1_IPG_CLK				163
+#define IMX8QM_FTM1_DIV					164
+#define IMX8QM_FTM1_CLK					165
+#define IMX8QM_ADC0_IPG_CLK				166
+#define IMX8QM_ADC0_DIV					167
+#define IMX8QM_ADC0_CLK					168
+#define IMX8QM_ADC1_IPG_CLK				169
+#define IMX8QM_ADC1_DIV					170
+#define IMX8QM_ADC1_CLK					171
+
+/* Audio */
+#define IMX8QM_AUD_PLL0_DIV				172
+#define IMX8QM_AUD_PLL0					173
+#define IMX8QM_AUD_PLL1_DIV				174
+#define IMX8QM_AUD_PLL1					175
+#define IMX8QM_AUD_AMIX_IPG				182
+#define IMX8QM_AUD_ESAI_0_IPG				183
+#define IMX8QM_AUD_ESAI_1_IPG				184
+#define IMX8QM_AUD_ESAI_0_EXTAL_IPG			185
+#define IMX8QM_AUD_ESAI_1_EXTAL_IPG			186
+#define IMX8QM_AUD_SAI_0_IPG				187
+#define IMX8QM_AUD_SAI_0_IPG_S				188
+#define IMX8QM_AUD_SAI_0_MCLK				189
+#define IMX8QM_AUD_SAI_1_IPG				190
+#define IMX8QM_AUD_SAI_1_IPG_S				191
+#define IMX8QM_AUD_SAI_1_MCLK				192
+#define IMX8QM_AUD_SAI_2_IPG				193
+#define IMX8QM_AUD_SAI_2_IPG_S				194
+#define IMX8QM_AUD_SAI_2_MCLK				195
+#define IMX8QM_AUD_SAI_3_IPG				196
+#define IMX8QM_AUD_SAI_3_IPG_S				197
+#define IMX8QM_AUD_SAI_3_MCLK				198
+#define IMX8QM_AUD_SAI_6_IPG				199
+#define IMX8QM_AUD_SAI_6_IPG_S				200
+#define IMX8QM_AUD_SAI_6_MCLK				201
+#define IMX8QM_AUD_SAI_7_IPG				202
+#define IMX8QM_AUD_SAI_7_IPG_S				203
+#define IMX8QM_AUD_SAI_7_MCLK				204
+#define IMX8QM_AUD_SAI_HDMIRX0_IPG			205
+#define IMX8QM_AUD_SAI_HDMIRX0_IPG_S			206
+#define IMX8QM_AUD_SAI_HDMIRX0_MCLK			207
+#define IMX8QM_AUD_SAI_HDMITX0_IPG			208
+#define IMX8QM_AUD_SAI_HDMITX0_IPG_S			209
+#define IMX8QM_AUD_SAI_HDMITX0_MCLK			210
+#define IMX8QM_AUD_MQS_IPG				211
+#define IMX8QM_AUD_MQS_HMCLK				212
+#define IMX8QM_AUD_GPT5_IPG_S				213
+#define IMX8QM_AUD_GPT5_CLKIN				214
+#define IMX8QM_AUD_GPT5_24M_CLK				215
+#define IMX8QM_AUD_GPT6_IPG_S				216
+#define IMX8QM_AUD_GPT6_CLKIN				217
+#define IMX8QM_AUD_GPT6_24M_CLK				218
+#define IMX8QM_AUD_GPT7_IPG_S				219
+#define IMX8QM_AUD_GPT7_CLKIN				220
+#define IMX8QM_AUD_GPT7_24M_CLK				221
+#define IMX8QM_AUD_GPT8_IPG_S				222
+#define IMX8QM_AUD_GPT8_CLKIN				223
+#define IMX8QM_AUD_GPT8_24M_CLK				224
+#define IMX8QM_AUD_GPT9_IPG_S				225
+#define IMX8QM_AUD_GPT9_CLKIN				226
+#define IMX8QM_AUD_GPT9_24M_CLK				227
+#define IMX8QM_AUD_GPT10_IPG_S				228
+#define IMX8QM_AUD_GPT10_CLKIN				229
+#define IMX8QM_AUD_GPT10_24M_CLK			230
+#define IMX8QM_AUD_ACM_AUD_PLL_CLK0_DIV		232
+#define IMX8QM_AUD_ACM_AUD_PLL_CLK0_CLK		233
+#define IMX8QM_AUD_ACM_AUD_PLL_CLK1_DIV		234
+#define IMX8QM_AUD_ACM_AUD_PLL_CLK1_CLK		235
+#define IMX8QM_AUD_ACM_AUD_REC_CLK0_DIV		236
+#define IMX8QM_AUD_ACM_AUD_REC_CLK0_CLK		237
+#define IMX8QM_AUD_ACM_AUD_REC_CLK1_DIV		238
+#define IMX8QM_AUD_ACM_AUD_REC_CLK1_CLK		239
+#define IMX8QM_AUD_MCLKOUT0				240
+#define IMX8QM_AUD_MCLKOUT1				241
+#define IMX8QM_AUD_SPDIF_0_TX_CLK			242
+#define IMX8QM_AUD_SPDIF_0_GCLKW			243
+#define IMX8QM_AUD_SPDIF_0_IPG_S			244
+#define IMX8QM_AUD_SPDIF_1_TX_CLK			245
+#define IMX8QM_AUD_SPDIF_1_GCLKW			246
+#define IMX8QM_AUD_SPDIF_1_IPG_S			247
+#define IMX8QM_AUD_ASRC_0_IPG				248
+#define IMX8QM_AUD_ASRC_0_MEM				249
+#define IMX8QM_AUD_ASRC_1_IPG				250
+#define IMX8QM_AUD_ASRC_1_MEM				251
+
+/* VPU */
+#define IMX8QM_VPU_CORE_DIV				252
+#define IMX8QM_VPU_CORE_CLK				253
+#define IMX8QM_VPU_UART_DIV				254
+#define IMX8QM_VPU_UART_CLK				255
+#define IMX8QM_VPU_DDR_DIV				256
+#define IMX8QM_VPU_DDR_CLK				257
+#define IMX8QM_VPU_SYS_DIV				258
+#define IMX8QM_VPU_SYS_CLK				259
+#define IMX8QM_VPU_XUVI_DIV				260
+#define IMX8QM_VPU_XUVI_CLK				261
+
+/* GPU Clocks. */
+#define IMX8QM_GPU0_CORE_DIV				262
+#define IMX8QM_GPU0_CORE_CLK				263
+#define IMX8QM_GPU0_SHADER_DIV				264
+#define IMX8QM_GPU0_SHADER_CLK				265
+#define IMX8QM_GPU1_CORE_DIV				266
+#define IMX8QM_GPU1_CORE_CLK				267
+#define IMX8QM_GPU1_SHADER_DIV				268
+#define IMX8QM_GPU1_SHADER_CLK				269
+
+/* MIPI CSI */
+#define IMX8QM_CSI0_IPG_CLK_S				270
+#define IMX8QM_CSI0_LIS_IPG_CLK				271
+#define IMX8QM_CSI0_APB_CLK				272
+#define IMX8QM_CSI0_I2C0_DIV				273
+#define IMX8QM_CSI0_I2C0_CLK				274
+#define IMX8QM_CSI0_PWM0_DIV				275
+#define IMX8QM_CSI0_PWM0_CLK				276
+#define IMX8QM_CSI0_CORE_DIV				277
+#define IMX8QM_CSI0_CORE_CLK				278
+#define IMX8QM_CSI0_ESC_DIV				279
+#define IMX8QM_CSI0_ESC_CLK				280
+#define IMX8QM_CSI1_IPG_CLK_S				281
+#define IMX8QM_CSI1_LIS_IPG_CLK				282
+#define IMX8QM_CSI1_APB_CLK				283
+#define IMX8QM_CSI1_I2C0_DIV				284
+#define IMX8QM_CSI1_I2C0_CLK				285
+#define IMX8QM_CSI1_PWM0_DIV				286
+#define IMX8QM_CSI1_PWM0_CLK				287
+#define IMX8QM_CSI1_CORE_DIV				288
+#define IMX8QM_CSI1_CORE_CLK				289
+#define IMX8QM_CSI1_ESC_DIV				290
+#define IMX8QM_CSI1_ESC_CLK				291
+
+/* Display */
+#define IMX8QM_DC0_PLL0_DIV				292
+#define IMX8QM_DC0_PLL0_CLK				293
+#define IMX8QM_DC0_PLL1_DIV				294
+#define IMX8QM_DC0_PLL1_CLK				295
+#define IMX8QM_DC0_DISP0_DIV				296
+#define IMX8QM_DC0_DISP0_CLK				297
+#define IMX8QM_DC0_DISP1_DIV				298
+#define IMX8QM_DC0_DISP1_CLK				299
+#define IMX8QM_DC0_BYPASS_0_DIV				300
+#define IMX8QM_DC0_BYPASS_1_DIV				301
+#define IMX8QM_DC0_IRIS_AXI_CLK				302
+#define IMX8AM_DC0_IRIS_MVPL_CLK			303
+#define IMX8QM_DC0_DISP0_MSI_CLK			304
+#define IMX8QM_DC0_LIS_IPG_CLK				305
+#define IMX8QM_DC0_PXL_CMB_APB_CLK			306
+#define IMX8QM_DC0_PRG0_RTRAM_CLK			307
+#define IMX8QM_DC0_PRG1_RTRAM_CLK			308
+#define IMX8QM_DC0_PRG2_RTRAM_CLK			309
+#define IMX8QM_DC0_PRG3_RTRAM_CLK			310
+#define IMX8QM_DC0_PRG4_RTRAM_CLK			311
+#define IMX8QM_DC0_PRG5_RTRAM_CLK			312
+#define IMX8QM_DC0_PRG6_RTRAM_CLK			313
+#define IMX8QM_DC0_PRG7_RTRAM_CLK			314
+#define IMX8QM_DC0_PRG8_RTRAM_CLK			315
+#define IMX8QM_DC0_PRG0_APB_CLK				316
+#define IMX8QM_DC0_PRG1_APB_CLK				317
+#define IMX8QM_DC0_PRG2_APB_CLK				318
+#define IMX8QM_DC0_PRG3_APB_CLK				319
+#define IMX8QM_DC0_PRG4_APB_CLK				320
+#define IMX8QM_DC0_PRG5_APB_CLK				321
+#define IMX8QM_DC0_PRG6_APB_CLK				322
+#define IMX8QM_DC0_PRG7_APB_CLK				323
+#define IMX8QM_DC0_PRG8_APB_CLK				324
+#define IMX8QM_DC0_DPR0_APB_CLK				325
+#define IMX8QM_DC0_DPR1_APB_CLK				326
+#define IMX8QM_DC0_RTRAM0_CLK				327
+#define IMX8QM_DC0_RTRAM1_CLK				328
+#define IMX8QM_DC1_PLL0_DIV				329
+#define IMX8QM_DC1_PLL0_CLK				330
+#define IMX8QM_DC1_PLL1_DIV				331
+#define IMX8QM_DC1_PLL1_CLK				332
+#define IMX8QM_DC1_DISP0_DIV				333
+#define IMX8QM_DC1_DISP0_CLK				334
+#define IMX8QM_DC1_BYPASS_0_DIV				335
+#define IMX8QM_DC1_BYPASS_1_DIV				336
+#define IMX8QM_DC1_DISP1_DIV				337
+#define IMX8QM_DC1_DISP1_CLK				338
+#define IMX8QM_DC1_IRIS_AXI_CLK				339
+#define IMX8AM_DC1_IRIS_MVPL_CLK			340
+#define IMX8QM_DC1_DISP0_MSI_CLK			341
+#define IMX8QM_DC1_LIS_IPG_CLK				342
+#define IMX8QM_DC1_PXL_CMB_APB_CLK			343
+#define IMX8QM_DC1_PRG0_RTRAM_CLK			344
+#define IMX8QM_DC1_PRG1_RTRAM_CLK			345
+#define IMX8QM_DC1_PRG2_RTRAM_CLK			346
+#define IMX8QM_DC1_PRG3_RTRAM_CLK			347
+#define IMX8QM_DC1_PRG4_RTRAM_CLK			348
+#define IMX8QM_DC1_PRG5_RTRAM_CLK			349
+#define IMX8QM_DC1_PRG6_RTRAM_CLK			350
+#define IMX8QM_DC1_PRG7_RTRAM_CLK			351
+#define IMX8QM_DC1_PRG8_RTRAM_CLK			352
+#define IMX8QM_DC1_PRG0_APB_CLK				353
+#define IMX8QM_DC1_PRG1_APB_CLK				354
+#define IMX8QM_DC1_PRG2_APB_CLK				355
+#define IMX8QM_DC1_PRG3_APB_CLK				356
+#define IMX8QM_DC1_PRG4_APB_CLK				357
+#define IMX8QM_DC1_PRG5_APB_CLK				358
+#define IMX8QM_DC1_PRG6_APB_CLK				359
+#define IMX8QM_DC1_PRG7_APB_CLK				360
+#define IMX8QM_DC1_PRG8_APB_CLK				361
+#define IMX8QM_DC1_DPR0_APB_CLK				362
+#define IMX8QM_DC1_DPR1_APB_CLK				363
+#define IMX8QM_DC1_RTRAM0_CLK				364
+#define IMX8QM_DC1_RTRAM1_CLK				365
+
+/* DRC */
+#define IMX8QM_DRC0_PLL0_DIV				366
+#define IMX8QM_DRC0_PLL0_CLK				367
+#define IMX8QM_DRC0_DIV					368
+#define IMX8QM_DRC0_CLK					369
+#define IMX8QM_DRC1_PLL0_DIV				370
+#define IMX8QM_DRC1_PLL0_CLK				371
+#define IMX8QM_DRC1_DIV					372
+#define IMX8QM_DRC1_CLK					373
+
+/* HDMI */
+#define IMX8QM_HDMI_AV_PLL_DIV				374
+#define IMX8QM_HDMI_AV_PLL_CLK				375
+#define IMX8QM_HDMI_I2S_BYPASS_CLK			376
+#define IMX8QM_HDMI_I2C0_DIV				377
+#define IMX8QM_HDMI_I2C0_CLK				378
+#define IMX8QM_HDMI_PXL_DIV				379
+#define IMX8QM_HDMI_PXL_CLK				380
+#define IMX8QM_HDMI_PXL_LINK_DIV			381
+#define IMX8QM_HDMI_PXL_LINK_CLK			382
+#define IMX8QM_HDMI_PXL_MUX_DIV				383
+#define IMX8QM_HDMI_PXL_MUX_CLK				384
+#define IMX8QM_HDMI_I2S_DIV				385
+#define IMX8QM_HDMI_I2S_CLK				386
+#define IMX8QM_HDMI_HDP_CORE_DIV			387
+#define IMX8QM_HDMI_HDP_CORE_CLK			388
+#define IMX8QM_HDMI_I2C_IPG_S_CLK			389
+#define IMX8QM_HDMI_I2C_IPG_CLK				390
+#define IMX8QM_HDMI_PWM_IPG_S_CLK			391
+#define IMX8QM_HDMI_PWM_IPG_CLK				392
+#define IMX8QM_HDMI_PWM_32K_CLK				393
+#define IMX8QM_HDMI_GPIO_IPG_CLK			394
+#define IMX8QM_HDMI_PXL_LINK_SLV_ODD_CLK		395
+#define IMX8QM_HDMI_PXL_LINK_SLV_EVEN_CLK		396
+#define IMX8QM_HDMI_LIS_IPG_CLK				397
+#define IMX8QM_HDMI_MSI_HCLK				398
+#define IMX8QM_HDMI_PXL_EVEN_CLK			399
+#define IMX8QM_HDMI_HDP_CLK				400
+#define IMX8QM_HDMI_PXL_DBL_CLK				401
+#define IMX8QM_HDMI_APB_CLK				402
+#define IMX8QM_HDMI_PXL_LPCG_CLK			403
+#define IMX8QM_HDMI_HDP_PHY_CLK				404
+#define IMX8QM_HDMI_IPG_DIV				405
+#define IMX8QM_HDMI_VIF_CLK				406
+#define IMX8QM_HDMI_DIG_PLL_DIV				407
+#define IMX8QM_HDMI_DIG_PLL_CLK				408
+#define IMX8QM_HDMI_APB_MUX_CSR_CLK			409
+#define IMX8QM_HDMI_APB_MUX_CTRL_CLK			410
+
+/* RX-HDMI */
+#define IMX8QM_HDMI_RX_I2S_BYPASS_CLK			411
+#define IMX8QM_HDMI_RX_BYPASS_CLK			412
+#define IMX8QM_HDMI_RX_SPDIF_BYPASS_CLK			413
+#define IMX8QM_HDMI_RX_I2C0_DIV				414
+#define IMX8QM_HDMI_RX_I2C0_CLK				415
+#define IMX8QM_HDMI_RX_SPDIF_DIV			416
+#define IMX8QM_HDMI_RX_SPDIF_CLK			417
+#define IMX8QM_HDMI_RX_HD_REF_DIV			418
+#define IMX8QM_HDMI_RX_HD_REF_CLK			419
+#define IMX8QM_HDMI_RX_HD_CORE_DIV			420
+#define IMX8QM_HDMI_RX_HD_CORE_CLK			421
+#define IMX8QM_HDMI_RX_PXL_DIV				422
+#define IMX8QM_HDMI_RX_PXL_CLK				423
+#define IMX8QM_HDMI_RX_I2S_DIV				424
+#define IMX8QM_HDMI_RX_I2S_CLK				425
+#define IMX8QM_HDMI_RX_PWM_DIV				426
+#define IMX8QM_HDMI_RX_PWM_CLK				427
+
+/* LVDS */
+#define IMX8QM_LVDS0_BYPASS_CLK				428
+#define IMX8QM_LVDS0_PIXEL_DIV				429
+#define IMX8QM_LVDS0_PIXEL_CLK				430
+#define IMX8QM_LVDS0_PHY_DIV				431
+#define IMX8QM_LVDS0_PHY_CLK				432
+#define IMX8QM_LVDS0_I2C0_IPG_CLK			433
+#define IMX8QM_LVDS0_I2C0_DIV				434
+#define IMX8QM_LVDS0_I2C0_CLK				435
+#define IMX8QM_LVDS0_I2C1_IPG_CLK			436
+#define IMX8QM_LVDS0_I2C1_DIV				437
+#define IMX8QM_LVDS0_I2C1_CLK				438
+#define IMX8QM_LVDS0_PWM0_IPG_CLK			439
+#define IMX8QM_LVDS0_PWM0_DIV				440
+#define IMX8QM_LVDS0_PWM0_CLK				441
+#define IMX8QM_LVDS0_GPIO_IPG_CLK			444
+#define IMX8QM_LVDS1_BYPASS_DIV				445
+#define IMX8QM_LVDS1_BYPASS_CLK				446
+#define IMX8QM_LVDS1_PIXEL_DIV				447
+#define IMX8QM_LVDS1_PIXEL_CLK				448
+#define IMX8QM_LVDS1_PHY_DIV				449
+#define IMX8QM_LVDS1_PHY_CLK				450
+#define IMX8QM_LVDS1_I2C0_IPG_CLK			451
+#define IMX8QM_LVDS1_I2C0_DIV				452
+#define IMX8QM_LVDS1_I2C0_CLK				453
+#define IMX8QM_LVDS1_I2C1_IPG_CLK			454
+#define IMX8QM_LVDS1_I2C1_DIV				455
+#define IMX8QM_LVDS1_I2C1_CLK				456
+#define IMX8QM_LVDS1_PWM0_IPG_CLK			457
+#define IMX8QM_LVDS1_PWM0_DIV				458
+#define IMX8QM_LVDS1_PWM0_CLK				459
+#define IMX8QM_LVDS1_GPIO_IPG_CLK			462
+
+/* MIPI */
+#define IMX8QM_MIPI0_BYPASS_CLK				465
+#define IMX8QM_MIPI0_I2C0_DIV				466
+#define IMX8QM_MIPI0_I2C0_CLK				467
+#define IMX8QM_MIPI0_I2C1_DIV				468
+#define IMX8QM_MIPI0_I2C1_CLK				469
+#define IMX8QM_MIPI0_PWM0_DIV				470
+#define IMX8QM_MIPI0_PWM0_CLK				471
+#define IMX8QM_MIPI0_DSI_TX_ESC_DIV			472
+#define IMX8QM_MIPI0_DSI_TX_ESC_CLK			473
+#define IMX8QM_MIPI0_DSI_RX_ESC_DIV			474
+#define IMX8QM_MIPI0_DSI_RX_ESC_CLK			475
+#define IMX8QM_MIPI0_PXL_DIV				476
+#define IMX8QM_MIPI0_PXL_CLK				477
+#define IMX8QM_MIPI1_BYPASS_CLK				479
+#define IMX8QM_MIPI1_I2C0_DIV				480
+#define IMX8QM_MIPI1_I2C0_CLK				481
+#define IMX8QM_MIPI1_I2C1_DIV				482
+#define IMX8QM_MIPI1_I2C1_CLK				483
+#define IMX8QM_MIPI1_PWM0_DIV				484
+#define IMX8QM_MIPI1_PWM0_CLK				485
+#define IMX8QM_MIPI1_DSI_TX_ESC_DIV			486
+#define IMX8QM_MIPI1_DSI_TX_ESC_CLK			487
+#define IMX8QM_MIPI1_DSI_RX_ESC_DIV			488
+#define IMX8QM_MIPI1_DSI_RX_ESC_CLK			489
+#define IMX8QM_MIPI1_PXL_DIV				490
+#define IMX8QM_MIPI1_PXL_CLK				491
+
+/* Imaging */
+#define IMX8QM_IMG_JPEG_ENC_IPG_CLK			492
+#define IMX8QM_IMG_JPEG_ENC_CLK				493
+#define IMX8QM_IMG_JPEG_DEC_IPG_CLK			494
+#define IMX8QM_IMG_JPEG_DEC_CLK				495
+#define IMX8QM_IMG_PXL_LINK_DC0_CLK			496
+#define IMX8QM_IMG_PXL_LINK_DC1_CLK			497
+#define IMX8QM_IMG_PXL_LINK_CSI0_CLK			498
+#define IMX8QM_IMG_PXL_LINK_CSI1_CLK			499
+#define IMX8QM_IMG_PXL_LINK_HDMI_IN_CLK			500
+#define IMX8QM_IMG_PDMA_0_CLK				501
+#define IMX8QM_IMG_PDMA_1_CLK				502
+#define IMX8QM_IMG_PDMA_2_CLK				503
+#define IMX8QM_IMG_PDMA_3_CLK				504
+#define IMX8QM_IMG_PDMA_4_CLK				505
+#define IMX8QM_IMG_PDMA_5_CLK				506
+#define IMX8QM_IMG_PDMA_6_CLK				507
+#define IMX8QM_IMG_PDMA_7_CLK				508
+
+/* HSIO */
+#define IMX8QM_HSIO_PCIE_A_MSTR_AXI_CLK		509
+#define IMX8QM_HSIO_PCIE_A_SLV_AXI_CLK		510
+#define IMX8QM_HSIO_PCIE_A_DBI_AXI_CLK		511
+#define IMX8QM_HSIO_PCIE_B_MSTR_AXI_CLK		512
+#define IMX8QM_HSIO_PCIE_B_SLV_AXI_CLK		513
+#define IMX8QM_HSIO_PCIE_B_DBI_AXI_CLK		514
+#define IMX8QM_HSIO_PCIE_X1_PER_CLK			515
+#define IMX8QM_HSIO_PCIE_X2_PER_CLK			516
+#define IMX8QM_HSIO_SATA_PER_CLK			517
+#define IMX8QM_HSIO_PHY_X1_PER_CLK			518
+#define IMX8QM_HSIO_PHY_X2_PER_CLK			519
+#define IMX8QM_HSIO_MISC_PER_CLK			520
+#define IMX8QM_HSIO_PHY_X1_APB_CLK			521
+#define IMX8QM_HSIO_PHY_X2_APB_0_CLK		522
+#define IMX8QM_HSIO_PHY_X2_APB_1_CLK		523
+#define IMX8QM_HSIO_SATA_CLK				524
+#define IMX8QM_HSIO_GPIO_CLK				525
+#define IMX8QM_HSIO_PHY_X1_PCLK				526
+#define IMX8QM_HSIO_PHY_X2_PCLK_0			527
+#define IMX8QM_HSIO_PHY_X2_PCLK_1			528
+#define IMX8QM_HSIO_SATA_EPCS_RX_CLK		529
+#define IMX8QM_HSIO_SATA_EPCS_TX_CLK		530
+
+/* M4 */
+#define IMX8QM_M4_0_CORE_DIV				531
+#define IMX8QM_M4_0_CORE_CLK				532
+#define IMX8QM_M4_0_I2C_DIV				533
+#define IMX8QM_M4_0_I2C_CLK				534
+#define IMX8QM_M4_0_PIT_DIV				535
+#define IMX8QM_M4_0_PIT_CLK				536
+#define IMX8QM_M4_0_TPM_DIV				537
+#define IMX8QM_M4_0_TPM_CLK				538
+#define IMX8QM_M4_0_UART_DIV				539
+#define IMX8QM_M4_0_UART_CLK				540
+#define IMX8QM_M4_0_WDOG_DIV				541
+#define IMX8QM_M4_0_WDOG_CLK				542
+#define IMX8QM_M4_1_CORE_DIV				543
+#define IMX8QM_M4_1_CORE_CLK				544
+#define IMX8QM_M4_1_I2C_DIV				545
+#define IMX8QM_M4_1_I2C_CLK				546
+#define IMX8QM_M4_1_PIT_DIV				547
+#define IMX8QM_M4_1_PIT_CLK				548
+#define IMX8QM_M4_1_TPM_DIV				549
+#define IMX8QM_M4_1_TPM_CLK				550
+#define IMX8QM_M4_1_UART_DIV				551
+#define IMX8QM_M4_1_UART_CLK				552
+#define IMX8QM_M4_1_WDOG_DIV				553
+#define IMX8QM_M4_1_WDOG_CLK				554
+
+/* IPG clocks */
+#define IMX8QM_24MHZ					555
+#define IMX8QM_GPT_3M					556
+#define IMX8QM_IPG_DMA_CLK_ROOT				557
+#define IMX8QM_IPG_AUD_CLK_ROOT				558
+#define IMX8QM_IPG_CONN_CLK_ROOT			559
+#define IMX8QM_AHB_CONN_CLK_ROOT			560
+#define IMX8QM_AXI_CONN_CLK_ROOT			561
+#define IMX8QM_IPG_MIPI_CSI_CLK_ROOT			562
+#define IMX8QM_DC_AXI_EXT_CLK				563
+#define IMX8QM_DC_AXI_INT_CLK				564
+#define IMX8QM_DC_CFG_CLK				565
+#define IMX8QM_HDMI_IPG_CLK				566
+#define IMX8QM_LVDS_IPG_CLK				567
+#define IMX8QM_IMG_AXI_CLK				568
+#define IMX8QM_IMG_IPG_CLK				569
+#define IMX8QM_IMG_PXL_CLK				570
+#define IMX8QM_CSI0_I2C0_IPG_CLK			571
+#define IMX8QM_CSI0_PWM0_IPG_CLK			572
+#define IMX8QM_CSI1_I2C0_IPG_CLK			573
+#define IMX8QM_CSI1_PWM0_IPG_CLK			574
+#define IMX8QM_DC0_DPR0_B_CLK				575
+#define IMX8QM_DC0_DPR1_B_CLK				576
+#define IMX8QM_DC1_DPR0_B_CLK				577
+#define IMX8QM_DC1_DPR1_B_CLK				578
+#define IMX8QM_32KHZ					579
+#define IMX8QM_HSIO_AXI_CLK				580
+#define IMX8QM_HSIO_PER_CLK				581
+#define IMX8QM_HDMI_RX_GPIO_IPG_S_CLK			582
+#define IMX8QM_HDMI_RX_PWM_IPG_S_CLK			583
+#define IMX8QM_HDMI_RX_PWM_IPG_CLK			584
+#define IMX8QM_HDMI_RX_I2C_DIV_CLK			585
+#define IMX8QM_HDMI_RX_I2C_IPG_S_CLK			586
+#define IMX8QM_HDMI_RX_I2C_IPG_CLK			587
+#define IMX8QM_HDMI_RX_SINK_PCLK			588
+#define IMX8QM_HDMI_RX_SINK_SCLK			589
+#define IMX8QM_HDMI_RX_PXL_ENC_CLK			590
+#define IMX8QM_HDMI_RX_IPG_CLK				591
+
+/* ACM */
+#define IMX8QM_HDMI_RX_MCLK			592
+#define IMX8QM_EXT_AUD_MCLK0			593
+#define IMX8QM_EXT_AUD_MCLK1			594
+#define IMX8QM_ESAI0_RX_CLK			595
+#define IMX8QM_ESAI0_RX_HF_CLK			596
+#define IMX8QM_ESAI0_TX_CLK			597
+#define IMX8QM_ESAI0_TX_HF_CLK			598
+#define IMX8QM_ESAI1_RX_CLK			599
+#define IMX8QM_ESAI1_RX_HF_CLK			600
+#define IMX8QM_ESAI1_TX_CLK			601
+#define IMX8QM_ESAI1_TX_HF_CLK			602
+#define IMX8QM_SPDIF0_RX			603
+#define IMX8QM_SPDIF1_RX			604
+#define IMX8QM_SAI0_RX_BCLK			605
+#define IMX8QM_SAI0_TX_BCLK			606
+#define IMX8QM_SAI1_RX_BCLK			607
+#define IMX8QM_SAI1_TX_BCLK			608
+#define IMX8QM_SAI2_RX_BCLK			609
+#define IMX8QM_SAI3_RX_BCLK			610
+#define IMX8QM_HDMI_RX_SAI0_RX_BCLK		611
+#define IMX8QM_SAI6_RX_BCLK			612
+#define IMX8QM_HDMI_TX_SAI0_TX_BCLK		613
+
+#define IMX8QM_ACM_AUD_CLK0_SEL		614
+#define IMX8QM_ACM_AUD_CLK0_CLK		615
+#define IMX8QM_ACM_AUD_CLK1_SEL		616
+#define IMX8QM_ACM_AUD_CLK1_CLK		617
+#define IMX8QM_ACM_MCLKOUT0_SEL		618
+#define IMX8QM_ACM_MCLKOUT0_CLK		619
+#define IMX8QM_ACM_MCLKOUT1_SEL		620
+#define IMX8QM_ACM_MCLKOUT1_CLK		621
+#define IMX8QM_ACM_ASRC0_MUX_CLK_SEL		622
+#define IMX8QM_ACM_ASRC0_MUX_CLK_CLK		623
+#define IMX8QM_ACM_ASRC1_MUX_CLK_SEL		624
+#define IMX8QM_ACM_ASRC1_MUX_CLK_CLK		625
+#define IMX8QM_ACM_ESAI0_MCLK_SEL		626
+#define IMX8QM_ACM_ESAI0_MCLK_CLK		627
+#define IMX8QM_ACM_ESAI1_MCLK_SEL		628
+#define IMX8QM_ACM_ESAI1_MCLK_CLK		629
+#define IMX8QM_ACM_GPT0_MUX_CLK_SEL		630
+#define IMX8QM_ACM_GPT0_MUX_CLK_CLK		631
+#define IMX8QM_ACM_GPT1_MUX_CLK_SEL		632
+#define IMX8QM_ACM_GPT1_MUX_CLK_CLK		633
+#define IMX8QM_ACM_GPT2_MUX_CLK_SEL		634
+#define IMX8QM_ACM_GPT2_MUX_CLK_CLK		635
+#define IMX8QM_ACM_GPT3_MUX_CLK_SEL		636
+#define IMX8QM_ACM_GPT3_MUX_CLK_CLK		637
+#define IMX8QM_ACM_GPT4_MUX_CLK_SEL		638
+#define IMX8QM_ACM_GPT4_MUX_CLK_CLK		639
+#define IMX8QM_ACM_GPT5_MUX_CLK_SEL		640
+#define IMX8QM_ACM_GPT5_MUX_CLK_CLK		641
+#define IMX8QM_ACM_SAI0_MCLK_SEL		642
+#define IMX8QM_ACM_SAI0_MCLK_CLK		643
+#define IMX8QM_ACM_SAI1_MCLK_SEL		644
+#define IMX8QM_ACM_SAI1_MCLK_CLK		645
+#define IMX8QM_ACM_SAI2_MCLK_SEL		646
+#define IMX8QM_ACM_SAI2_MCLK_CLK		647
+#define IMX8QM_ACM_SAI3_MCLK_SEL		648
+#define IMX8QM_ACM_SAI3_MCLK_CLK		649
+#define IMX8QM_ACM_HDMI_RX_SAI0_MCLK_SEL	650
+#define IMX8QM_ACM_HDMI_RX_SAI0_MCLK_CLK	651
+#define IMX8QM_ACM_HDMI_TX_SAI0_MCLK_SEL	652
+#define IMX8QM_ACM_HDMI_TX_SAI0_MCLK_CLK	653
+#define IMX8QM_ACM_SAI6_MCLK_SEL		654
+#define IMX8QM_ACM_SAI6_MCLK_CLK		655
+#define IMX8QM_ACM_SAI7_MCLK_SEL		656
+#define IMX8QM_ACM_SAI7_MCLK_CLK		657
+#define IMX8QM_ACM_SPDIF0_TX_CLK_SEL		658
+#define IMX8QM_ACM_SPDIF0_TX_CLK_CLK		659
+#define IMX8QM_ACM_SPDIF1_TX_CLK_SEL		660
+#define IMX8QM_ACM_SPDIF1_TX_CLK_CLK		661
+#define IMX8QM_ACM_MQS_TX_CLK_SEL		662
+#define IMX8QM_ACM_MQS_TX_CLK_CLK		663
+
+#define IMX8QM_ENET0_REF_25MHZ_125MHZ_SEL	664
+#define IMX8QM_ENET0_REF_25MHZ_125MHZ_CLK	665
+#define IMX8QM_ENET1_REF_25MHZ_125MHZ_SEL	666
+#define IMX8QM_ENET1_REF_25MHZ_125MHZ_CLK	667
+#define IMX8QM_ENET0_REF_50MHZ_CLK			668
+#define IMX8QM_ENET1_REF_50MHZ_CLK			669
+#define IMX8QM_ENET_25MHZ_CLK				670
+#define IMX8QM_ENET_125MHZ_CLK				671
+#define IMX8QM_ENET0_REF_DIV				672
+#define IMX8QM_ENET0_REF_CLK				673
+#define IMX8QM_ENET1_REF_DIV				674
+#define IMX8QM_ENET1_REF_CLK				675
+#define IMX8QM_ENET0_RMII_TX_CLK			676
+#define IMX8QM_ENET1_RMII_TX_CLK			677
+#define IMX8QM_ENET0_RMII_TX_SEL			678
+#define IMX8QM_ENET1_RMII_TX_SEL			679
+#define IMX8QM_ENET0_RMII_RX_CLK			680
+#define IMX8QM_ENET1_RMII_RX_CLK			681
+
+#define IMX8QM_KPP_CLK					683
+#define IMX8QM_GPT0_HF_CLK				684
+#define IMX8QM_GPT0_IPG_S_CLK				685
+#define IMX8QM_GPT0_IPG_SLV_CLK				686
+#define IMX8QM_GPT0_IPG_MSTR_CLK			687
+#define IMX8QM_GPT1_HF_CLK				688
+#define IMX8QM_GPT1_IPG_S_CLK				689
+#define IMX8QM_GPT1_IPG_SLV_CLK				690
+#define IMX8QM_GPT1_IPG_MSTR_CLK			691
+#define IMX8QM_GPT2_HF_CLK				692
+#define IMX8QM_GPT2_IPG_S_CLK				693
+#define IMX8QM_GPT2_IPG_SLV_CLK				694
+#define IMX8QM_GPT2_IPG_MSTR_CLK			695
+#define IMX8QM_GPT3_HF_CLK				696
+#define IMX8QM_GPT3_IPG_S_CLK				697
+#define IMX8QM_GPT3_IPG_SLV_CLK				698
+#define IMX8QM_GPT3_IPG_MSTR_CLK			699
+#define IMX8QM_GPT4_HF_CLK				700
+#define IMX8QM_GPT4_IPG_S_CLK				701
+#define IMX8QM_GPT4_IPG_SLV_CLK				702
+#define IMX8QM_GPT4_IPG_MSTR_CLK			703
+#define IMX8QM_PWM0_HF_CLK				704
+#define IMX8QM_PWM0_IPG_S_CLK				705
+#define IMX8QM_PWM0_IPG_SLV_CLK				706
+#define IMX8QM_PWM0_IPG_MSTR_CLK			707
+#define IMX8QM_PWM1_HF_CLK				708
+#define IMX8QM_PWM1_IPG_S_CLK				709
+#define IMX8QM_PWM1_IPG_SLV_CLK				710
+#define IMX8QM_PWM1_IPG_MSTR_CLK			711
+#define IMX8QM_PWM2_HF_CLK				712
+#define IMX8QM_PWM2_IPG_S_CLK				713
+#define IMX8QM_PWM2_IPG_SLV_CLK				714
+#define IMX8QM_PWM2_IPG_MSTR_CLK			715
+#define IMX8QM_PWM3_HF_CLK				716
+#define IMX8QM_PWM3_IPG_S_CLK				717
+#define IMX8QM_PWM3_IPG_SLV_CLK				718
+#define IMX8QM_PWM3_IPG_MSTR_CLK			719
+#define IMX8QM_PWM4_HF_CLK				720
+#define IMX8QM_PWM4_IPG_S_CLK				721
+#define IMX8QM_PWM4_IPG_SLV_CLK				722
+#define IMX8QM_PWM4_IPG_MSTR_CLK			723
+#define IMX8QM_PWM5_HF_CLK				724
+#define IMX8QM_PWM5_IPG_S_CLK				725
+#define IMX8QM_PWM5_IPG_SLV_CLK				726
+#define IMX8QM_PWM5_IPG_MSTR_CLK			727
+#define IMX8QM_PWM6_HF_CLK				728
+#define IMX8QM_PWM6_IPG_S_CLK				729
+#define IMX8QM_PWM6_IPG_SLV_CLK				730
+#define IMX8QM_PWM6_IPG_MSTR_CLK			731
+#define IMX8QM_PWM7_HF_CLK				732
+#define IMX8QM_PWM7_IPG_S_CLK				733
+#define IMX8QM_PWM7_IPG_SLV_CLK				734
+#define IMX8QM_PWM7_IPG_MSTR_CLK			735
+#define IMX8QM_FSPI0_HCLK				736
+#define IMX8QM_FSPI0_IPG_CLK				737
+#define IMX8QM_FSPI0_IPG_S_CLK				738
+#define IMX8QM_FSPI1_HCLK				736
+#define IMX8QM_FSPI1_IPG_CLK				737
+#define IMX8QM_FSPI1_IPG_S_CLK				738
+#define IMX8QM_GPIO0_IPG_S_CLK				739
+#define IMX8QM_GPIO1_IPG_S_CLK				740
+#define IMX8QM_GPIO2_IPG_S_CLK				741
+#define IMX8QM_GPIO3_IPG_S_CLK				742
+#define IMX8QM_GPIO4_IPG_S_CLK				743
+#define IMX8QM_GPIO5_IPG_S_CLK				744
+#define IMX8QM_GPIO6_IPG_S_CLK				745
+#define IMX8QM_GPIO7_IPG_S_CLK				746
+#define IMX8QM_ROMCP_CLK				747
+#define IMX8QM_ROMCP_REG_CLK				748
+#define IMX8QM_96KROM_CLK				749
+#define IMX8QM_OCRAM_MEM_CLK				750
+#define IMX8QM_OCRAM_CTRL_CLK				751
+#define IMX8QM_LSIO_BUS_CLK				752
+#define IMX8QM_LSIO_MEM_CLK				753
+#define IMX8QM_LVDS0_LIS_IPG_CLK			754
+#define IMX8QM_LVDS1_LIS_IPG_CLK			755
+#define IMX8QM_MIPI0_LIS_IPG_CLK			756
+#define IMX8QM_MIPI0_I2C0_IPG_S_CLK			757
+#define IMX8QM_MIPI0_I2C0_IPG_CLK			758
+#define IMX8QM_MIPI0_I2C1_IPG_S_CLK			759
+#define IMX8QM_MIPI0_I2C1_IPG_CLK			760
+#define IMX8QM_MIPI0_CLK_ROOT				761
+#define IMX8QM_MIPI1_LIS_IPG_CLK			762
+#define IMX8QM_MIPI1_I2C0_IPG_S_CLK			763
+#define IMX8QM_MIPI1_I2C0_IPG_CLK			764
+#define IMX8QM_MIPI1_I2C1_IPG_S_CLK			765
+#define IMX8QM_MIPI1_I2C1_IPG_CLK			766
+#define IMX8QM_MIPI1_CLK_ROOT				767
+#define IMX8QM_DC0_DISP0_SEL				768
+#define IMX8QM_DC0_DISP1_SEL				769
+#define IMX8QM_DC1_DISP0_SEL				770
+#define IMX8QM_DC1_DISP1_SEL				771
+
+/* CM40 */
+#define IMX8QM_CM40_IPG_CLK				772
+#define IMX8QM_CM40_I2C_DIV				773
+#define IMX8QM_CM40_I2C_CLK				774
+#define IMX8QM_CM40_I2C_IPG_CLK				775
+
+/* CM41 */
+#define IMX8QM_CM41_IPG_CLK				776
+#define IMX8QM_CM41_I2C_DIV				777
+#define IMX8QM_CM41_I2C_CLK				778
+#define IMX8QM_CM41_I2C_IPG_CLK				779
+
+#define IMX8QM_HDMI_PXL_SEL				780
+#define IMX8QM_HDMI_PXL_LINK_SEL			781
+#define IMX8QM_HDMI_PXL_MUX_SEL				782
+#define IMX8QM_HDMI_AV_PLL_BYPASS_CLK			783
+
+#define IMX8QM_HDMI_RX_PXL_SEL				784
+#define IMX8QM_HDMI_RX_HD_REF_SEL			785
+#define IMX8QM_HDMI_RX_HD_CORE_SEL			786
+#define IMX8QM_HDMI_RX_DIG_PLL_CLK			787
+
+#define IMX8QM_LSIO_MU5A_IPG_S_CLK			788
+#define IMX8QM_LSIO_MU5A_IPG_CLK			789
+#define IMX8QM_LSIO_MU6A_IPG_S_CLK			790
+#define IMX8QM_LSIO_MU6A_IPG_CLK			791
+
+/* DSP */
+#define IMX8QM_AUD_DSP_ADB_ACLK				792
+#define IMX8QM_AUD_DSP_IPG				793
+#define IMX8QM_AUD_DSP_CORE_CLK				794
+#define IMX8QM_AUD_OCRAM_IPG				795
+
+#define IMX8QM_CLK_END					796
+
+#endif /* __DT_BINDINGS_CLOCK_IMX8QM_H */
-- 
2.16.4

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

* [U-Boot] [PATCH RESEND 04/10] arm: dts: introduce dtsi for i.MX8QM
  2019-03-05  2:32 [U-Boot] [PATCH RESEND 01/10] pinctrl: imx8: add i.MX8QM compatible Peng Fan
  2019-03-05  2:32 ` [U-Boot] [PATCH RESEND 02/10] dt-bindings: pinctrl: add i.MX8QM pads definition Peng Fan
  2019-03-05  2:32 ` [U-Boot] [PATCH RESEND 03/10] dt-bindings: clock: dt-bindings: pinctrl: add i.MX8QM clocks definition Peng Fan
@ 2019-03-05  2:32 ` Peng Fan
  2019-03-05  2:32 ` [U-Boot] [PATCH RESEND 05/10] imx8: add cpu support Peng Fan
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2019-03-05  2:32 UTC (permalink / raw)
  To: u-boot

Introduce basic dtsi for i.MX8QM, only support SDHC/FEC/LPUART.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 arch/arm/dts/fsl-imx8qm.dtsi | 400 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 400 insertions(+)
 create mode 100644 arch/arm/dts/fsl-imx8qm.dtsi

diff --git a/arch/arm/dts/fsl-imx8qm.dtsi b/arch/arm/dts/fsl-imx8qm.dtsi
new file mode 100644
index 0000000000..b39c40bd98
--- /dev/null
+++ b/arch/arm/dts/fsl-imx8qm.dtsi
@@ -0,0 +1,400 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2018 NXP
+ */
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include "fsl-imx8-ca53.dtsi"
+#include <dt-bindings/clock/imx8qm-clock.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/soc/imx_rsrc.h>
+#include <dt-bindings/soc/imx8_pd.h>
+#include <dt-bindings/pinctrl/pads-imx8qm.h>
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+	compatible = "fsl,imx8qm";
+	interrupt-parent = <&gic>;
+	#address-cells = <2>;
+	#size-cells = <2>;
+
+	aliases {
+		ethernet0 = &fec1;
+		ethernet1 = &fec2;
+		serial0 = &lpuart0;
+		mmc0 = &usdhc1;
+		mmc1 = &usdhc2;
+		mmc2 = &usdhc3;
+	};
+
+	memory at 80000000 {
+		device_type = "memory";
+		reg = <0x00000000 0x80000000 0 0x40000000>;
+		      /* DRAM space - 1, size : 1 GB DRAM */
+	};
+
+	gic: interrupt-controller at 51a00000 {
+		compatible = "arm,gic-v3";
+		reg = <0x0 0x51a00000 0 0x10000>, /* GIC Dist */
+		      <0x0 0x51b00000 0 0xC0000>, /* GICR */
+		      <0x0 0x52000000 0 0x2000>,  /* GICC */
+		      <0x0 0x52010000 0 0x1000>,  /* GICH */
+		      <0x0 0x52020000 0 0x20000>; /* GICV */
+		#interrupt-cells = <3>;
+		interrupt-controller;
+		interrupts = <GIC_PPI 9
+			(GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_HIGH)>;
+		interrupt-parent = <&gic>;
+	};
+
+	mu: mu at 5d1c0000 {
+		compatible = "fsl,imx8-mu";
+		reg = <0x0 0x5d1c0000 0x0 0x10000>;
+		interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-parent = <&gic>;
+		fsl,scu_ap_mu_id = <0>;
+		status = "okay";
+
+		clk: clk {
+			compatible = "fsl,imx8qm-clk";
+			#clock-cells = <1>;
+		};
+
+		iomuxc: iomuxc {
+			compatible = "fsl,imx8qm-iomuxc";
+		};
+	};
+
+	imx8qm-pm {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		pd_lsio: PD_LSIO {
+			compatible = "nxp,imx8-pd";
+			reg = <SC_R_LAST>;
+			#power-domain-cells = <0>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			pd_lsio_gpio0: PD_LSIO_GPIO_0 {
+				reg = <SC_R_GPIO_0>;
+				#power-domain-cells = <0>;
+				power-domains = <&pd_lsio>;
+			};
+			pd_lsio_gpio1: PD_LSIO_GPIO_1 {
+				reg = <SC_R_GPIO_1>;
+				#power-domain-cells = <0>;
+				power-domains = <&pd_lsio>;
+			};
+			pd_lsio_gpio2: PD_LSIO_GPIO_2 {
+				reg = <SC_R_GPIO_2>;
+				#power-domain-cells = <0>;
+				power-domains = <&pd_lsio>;
+			};
+			pd_lsio_gpio3: PD_LSIO_GPIO_3 {
+				reg = <SC_R_GPIO_3>;
+				#power-domain-cells = <0>;
+				power-domains = <&pd_lsio>;
+			};
+			pd_lsio_gpio4: PD_LSIO_GPIO_4 {
+				reg = <SC_R_GPIO_4>;
+				#power-domain-cells = <0>;
+				power-domains = <&pd_lsio>;
+			};
+			pd_lsio_gpio5: PD_LSIO_GPIO_5{
+				reg = <SC_R_GPIO_5>;
+				#power-domain-cells = <0>;
+				power-domains = <&pd_lsio>;
+			};
+			pd_lsio_gpio6:PD_LSIO_GPIO_6 {
+				reg = <SC_R_GPIO_6>;
+				#power-domain-cells = <0>;
+				power-domains = <&pd_lsio>;
+			};
+			pd_lsio_gpio7: PD_LSIO_GPIO_7 {
+				reg = <SC_R_GPIO_7>;
+				#power-domain-cells = <0>;
+				power-domains = <&pd_lsio>;
+			};
+		};
+
+		pd_conn: PD_CONN {
+			compatible = "nxp,imx8-pd";
+			reg = <SC_R_LAST>;
+			#power-domain-cells = <0>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			pd_conn_sdch0: PD_CONN_SDHC_0 {
+				reg = <SC_R_SDHC_0>;
+				#power-domain-cells = <0>;
+				power-domains = <&pd_conn>;
+			};
+			pd_conn_sdch1: PD_CONN_SDHC_1 {
+				reg = <SC_R_SDHC_1>;
+				#power-domain-cells = <0>;
+				power-domains = <&pd_conn>;
+			};
+			pd_conn_sdch2: PD_CONN_SDHC_2 {
+				reg = <SC_R_SDHC_2>;
+				#power-domain-cells = <0>;
+				power-domains = <&pd_conn>;
+			};
+			pd_conn_enet0: PD_CONN_ENET_0 {
+				reg = <SC_R_ENET_0>;
+				#power-domain-cells = <0>;
+				power-domains = <&pd_conn>;
+				wakeup-irq = <258>;
+			};
+			pd_conn_enet1: PD_CONN_ENET_1 {
+				reg = <SC_R_ENET_1>;
+				#power-domain-cells = <0>;
+				power-domains = <&pd_conn>;
+				fsl,wakeup_irq = <262>;
+			};
+		};
+
+		pd_dma: PD_DMA {
+			compatible = "nxp,imx8-pd";
+			reg = <SC_R_LAST>;
+			#power-domain-cells = <0>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			pd_dma_lpi2c0: PD_DMA_I2C_0 {
+				reg = <SC_R_I2C_0>;
+				#power-domain-cells = <0>;
+				power-domains = <&pd_dma>;
+			};
+			pd_dma_lpi2c1: PD_DMA_I2C_1 {
+				reg = <SC_R_I2C_1>;
+				#power-domain-cells = <0>;
+				power-domains = <&pd_dma>;
+			};
+			pd_dma_lpi2c2:PD_DMA_I2C_2 {
+				reg = <SC_R_I2C_2>;
+				#power-domain-cells = <0>;
+				power-domains = <&pd_dma>;
+			};
+			pd_dma_lpi2c3: PD_DMA_I2C_3 {
+				reg = <SC_R_I2C_3>;
+				#power-domain-cells = <0>;
+				power-domains = <&pd_dma>;
+			};
+			pd_dma_lpi2c4: PD_DMA_I2C_4 {
+				reg = <SC_R_I2C_4>;
+				#power-domain-cells = <0>;
+				power-domains = <&pd_dma>;
+			};
+			pd_dma_lpuart0: PD_DMA_UART0 {
+				reg = <SC_R_UART_0>;
+				#power-domain-cells = <0>;
+				power-domains = <&pd_dma>;
+				wakeup-irq = <345>;
+			};
+		};
+	};
+
+	gpio0: gpio at 5d080000 {
+		compatible = "fsl,imx8qm-gpio", "fsl,imx35-gpio";
+		reg = <0x0 0x5d080000 0x0 0x10000>;
+		interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
+		gpio-controller;
+		#gpio-cells = <2>;
+		power-domains = <&pd_lsio_gpio0>;
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	gpio1: gpio at 5d090000 {
+		compatible = "fsl,imx8qm-gpio", "fsl,imx35-gpio";
+		reg = <0x0 0x5d090000 0x0 0x10000>;
+		interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
+		gpio-controller;
+		#gpio-cells = <2>;
+		power-domains = <&pd_lsio_gpio1>;
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	gpio2: gpio at 5d0a0000 {
+		compatible = "fsl,imx8qm-gpio", "fsl,imx35-gpio";
+		reg = <0x0 0x5d0a0000 0x0 0x10000>;
+		interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+		gpio-controller;
+		#gpio-cells = <2>;
+		power-domains = <&pd_lsio_gpio2>;
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	gpio3: gpio at 5d0b0000 {
+		compatible = "fsl,imx8qm-gpio", "fsl,imx35-gpio";
+		reg = <0x0 0x5d0b0000 0x0 0x10000>;
+		interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
+		gpio-controller;
+		#gpio-cells = <2>;
+		power-domains = <&pd_lsio_gpio3>;
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	gpio4: gpio at 5d0c0000 {
+		compatible = "fsl,imx8qm-gpio", "fsl,imx35-gpio";
+		reg = <0x0 0x5d0c0000 0x0 0x10000>;
+		interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
+		gpio-controller;
+		#gpio-cells = <2>;
+		power-domains = <&pd_lsio_gpio4>;
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	gpio5: gpio at 5d0d0000 {
+		compatible = "fsl,imx8qm-gpio", "fsl,imx35-gpio";
+		reg = <0x0 0x5d0d0000 0x0 0x10000>;
+		interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
+		gpio-controller;
+		#gpio-cells = <2>;
+		power-domains = <&pd_lsio_gpio5>;
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	gpio6: gpio at 5d0e0000 {
+		compatible = "fsl,imx8qm-gpio", "fsl,imx35-gpio";
+		reg = <0x0 0x5d0e0000 0x0 0x10000>;
+		interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>;
+		gpio-controller;
+		#gpio-cells = <2>;
+		power-domains = <&pd_lsio_gpio6>;
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	gpio7: gpio at 5d0f0000 {
+		compatible = "fsl,imx8qm-gpio", "fsl,imx35-gpio";
+		reg = <0x0 0x5d0f0000 0x0 0x10000>;
+		interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
+		gpio-controller;
+		#gpio-cells = <2>;
+		power-domains = <&pd_lsio_gpio7>;
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	lpuart0: serial at 5a060000 {
+		compatible = "fsl,imx8qm-lpuart";
+		reg = <0x0 0x5a060000 0x0 0x1000>;
+		interrupts = <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>;
+		clocks = <&clk IMX8QM_UART0_CLK>,
+			 <&clk IMX8QM_UART0_IPG_CLK>;
+		clock-names = "per", "ipg";
+		assigned-clocks = <&clk IMX8QM_UART0_CLK>;
+		assigned-clock-rates = <80000000>;
+		power-domains = <&pd_dma_lpuart0>;
+		status = "disabled";
+	};
+
+	usdhc1: usdhc at 5b010000 {
+		compatible = "fsl,imx8qm-usdhc", "fsl,imx6sl-usdhc";
+		interrupt-parent = <&gic>;
+		interrupts = <GIC_SPI 232 IRQ_TYPE_LEVEL_HIGH>;
+		reg = <0x0 0x5b010000 0x0 0x10000>;
+		clocks = <&clk IMX8QM_SDHC0_IPG_CLK>,
+			 <&clk IMX8QM_SDHC0_CLK>,
+			 <&clk IMX8QM_CLK_DUMMY>;
+		clock-names = "ipg", "per", "ahb";
+		assigned-clocks = <&clk IMX8QM_SDHC0_DIV>;
+		assigned-clock-rates = <400000000>;
+		power-domains = <&pd_conn_sdch0>;
+		fsl,tuning-start-tap = <20>;
+		fsl,tuning-step= <2>;
+		status = "disabled";
+	};
+
+	usdhc2: usdhc at 5b020000 {
+		compatible = "fsl,imx8qm-usdhc", "fsl,imx6sl-usdhc";
+		interrupt-parent = <&gic>;
+		interrupts = <GIC_SPI 233 IRQ_TYPE_LEVEL_HIGH>;
+		reg = <0x0 0x5b020000 0x0 0x10000>;
+		clocks = <&clk IMX8QM_SDHC1_IPG_CLK>,
+			 <&clk IMX8QM_SDHC1_CLK>,
+			 <&clk IMX8QM_CLK_DUMMY>;
+		clock-names = "ipg", "per", "ahb";
+		assigned-clocks = <&clk IMX8QM_SDHC1_DIV>;
+		assigned-clock-rates = <200000000>;
+		power-domains = <&pd_conn_sdch1>;
+		fsl,tuning-start-tap = <20>;
+		fsl,tuning-step= <2>;
+		status = "disabled";
+	};
+
+	usdhc3: usdhc at 5b030000 {
+		compatible = "fsl,imx8qm-usdhc", "fsl,imx6sl-usdhc";
+		interrupt-parent = <&gic>;
+		interrupts = <GIC_SPI 234 IRQ_TYPE_LEVEL_HIGH>;
+		reg = <0x0 0x5b030000 0x0 0x10000>;
+		clocks = <&clk IMX8QM_SDHC2_IPG_CLK>,
+			 <&clk IMX8QM_SDHC2_CLK>,
+			 <&clk IMX8QM_CLK_DUMMY>;
+		clock-names = "ipg", "per", "ahb";
+		assigned-clocks = <&clk IMX8QM_SDHC2_DIV>;
+		assigned-clock-rates = <200000000>;
+		power-domains = <&pd_conn_sdch2>;
+		status = "disabled";
+	};
+
+	fec1: ethernet at 5b040000 {
+		compatible = "fsl,imx8qm-fec", "fsl,imx7d-fec";
+		reg = <0x0 0x5b040000 0x0 0x10000>;
+		interrupts = <GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>;
+		clocks = <&clk IMX8QM_ENET0_IPG_CLK>,
+			 <&clk IMX8QM_ENET0_AHB_CLK>,
+			 <&clk IMX8QM_ENET0_RGMII_TX_CLK>,
+			 <&clk IMX8QM_ENET0_PTP_CLK>,
+			 <&clk IMX8QM_ENET0_TX_CLK>;
+		clock-names = "ipg", "ahb", "enet_clk_ref", "ptp",
+			      "enet_2x_txclk";
+		assigned-clocks = <&clk IMX8QM_ENET0_ROOT_DIV>,
+				  <&clk IMX8QM_ENET0_REF_DIV>;
+		assigned-clock-rates = <250000000>, <125000000>;
+		fsl,num-tx-queues=<3>;
+		fsl,num-rx-queues=<3>;
+		fsl,wakeup_irq = <0>;
+		power-domains = <&pd_conn_enet0>;
+		status = "disabled";
+	};
+
+	fec2: ethernet at 5b050000 {
+		compatible = "fsl,imx8qm-fec", "fsl,imx7d-fec";
+		reg = <0x0 0x5b050000 0x0 0x10000>;
+		interrupts = <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>;
+		clocks = <&clk IMX8QM_ENET1_IPG_CLK>,
+			 <&clk IMX8QM_ENET1_AHB_CLK>,
+			 <&clk IMX8QM_ENET1_RGMII_TX_CLK>,
+			 <&clk IMX8QM_ENET1_PTP_CLK>,
+			 <&clk IMX8QM_ENET1_TX_CLK>;
+		clock-names = "ipg", "ahb", "enet_clk_ref", "ptp",
+			      "enet_2x_txclk";
+		assigned-clocks = <&clk IMX8QM_ENET1_ROOT_DIV>,
+				  <&clk IMX8QM_ENET1_REF_DIV>;
+		assigned-clock-rates = <250000000>, <125000000>;
+		fsl,num-tx-queues=<3>;
+		fsl,num-rx-queues=<3>;
+		fsl,wakeup_irq = <0>;
+		power-domains = <&pd_conn_enet1>;
+		status = "disabled";
+	};
+};
+
+&A53_0 {
+	clocks = <&clk IMX8QM_A53_DIV>;
+};
-- 
2.16.4

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

* [U-Boot] [PATCH RESEND 05/10] imx8: add cpu support
  2019-03-05  2:32 [U-Boot] [PATCH RESEND 01/10] pinctrl: imx8: add i.MX8QM compatible Peng Fan
                   ` (2 preceding siblings ...)
  2019-03-05  2:32 ` [U-Boot] [PATCH RESEND 04/10] arm: dts: introduce dtsi for i.MX8QM Peng Fan
@ 2019-03-05  2:32 ` Peng Fan
  2019-03-05  2:32 ` [U-Boot] [PATCH RESEND 06/10] clk: imx8: split code into common and soc specific part Peng Fan
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2019-03-05  2:32 UTC (permalink / raw)
  To: u-boot

Add cpu type and Kconfig entry

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 arch/arm/include/asm/arch-imx/cpu.h | 1 +
 arch/arm/mach-imx/imx8/Kconfig      | 5 +++++
 arch/arm/mach-imx/imx8/cpu.c        | 3 +++
 3 files changed, 9 insertions(+)

diff --git a/arch/arm/include/asm/arch-imx/cpu.h b/arch/arm/include/asm/arch-imx/cpu.h
index 667badbc06..d4a83eef72 100644
--- a/arch/arm/include/asm/arch-imx/cpu.h
+++ b/arch/arm/include/asm/arch-imx/cpu.h
@@ -26,6 +26,7 @@
 #define MXC_CPU_MX7D		0x72
 #define MXC_CPU_IMX8MQ		0x82
 #define MXC_CPU_IMX8QXP_A0	0x90 /* dummy ID */
+#define MXC_CPU_IMX8QM		0x91 /* dummy ID */
 #define MXC_CPU_IMX8QXP		0x92 /* dummy ID */
 #define MXC_CPU_MX7ULP		0xE1 /* Temporally hard code */
 #define MXC_CPU_VF610		0xF6 /* dummy ID */
diff --git a/arch/arm/mach-imx/imx8/Kconfig b/arch/arm/mach-imx/imx8/Kconfig
index f76a139684..4336a8c236 100644
--- a/arch/arm/mach-imx/imx8/Kconfig
+++ b/arch/arm/mach-imx/imx8/Kconfig
@@ -10,6 +10,11 @@ config MU_BASE_SPL
 	  SPL runs in EL3 mode, it use MU0_A to communicate with SCU.
 	  So we could not reuse the one in dts which is for normal U-Boot.
 
+config IMX8QM
+	select IMX8
+	select SUPPORT_SPL
+	bool
+
 config IMX8QXP
 	select IMX8
 	select SUPPORT_SPL
diff --git a/arch/arm/mach-imx/imx8/cpu.c b/arch/arm/mach-imx/imx8/cpu.c
index 7539e45652..ac65ae74fd 100644
--- a/arch/arm/mach-imx/imx8/cpu.c
+++ b/arch/arm/mach-imx/imx8/cpu.c
@@ -542,6 +542,8 @@ const char *get_imx8_type(u32 imxtype)
 	case MXC_CPU_IMX8QXP:
 	case MXC_CPU_IMX8QXP_A0:
 		return "QXP";
+	case MXC_CPU_IMX8QM:
+		return "QM";
 	default:
 		return "??";
 	}
@@ -613,6 +615,7 @@ static const struct cpu_ops cpu_imx8_ops = {
 
 static const struct udevice_id cpu_imx8_ids[] = {
 	{ .compatible = "arm,cortex-a35" },
+	{ .compatible = "arm,cortex-a53" },
 	{ }
 };
 
-- 
2.16.4

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

* [U-Boot] [PATCH RESEND 06/10] clk: imx8: split code into common and soc specific part
  2019-03-05  2:32 [U-Boot] [PATCH RESEND 01/10] pinctrl: imx8: add i.MX8QM compatible Peng Fan
                   ` (3 preceding siblings ...)
  2019-03-05  2:32 ` [U-Boot] [PATCH RESEND 05/10] imx8: add cpu support Peng Fan
@ 2019-03-05  2:32 ` Peng Fan
  2019-03-05  2:32 ` [U-Boot] [PATCH RESEND 07/10] clk: imx8: add i.MX8QM clk driver Peng Fan
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2019-03-05  2:32 UTC (permalink / raw)
  To: u-boot

To make it easy to add new clk driver for i.MX8, split
the code into common part and SoC specific part.

Make the get/set/enable non static and introduce a num_clks for
soc_clk_dump, because the arrays are moved to clk-imx8qxp.c.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 drivers/clk/imx/Makefile      |   4 +
 drivers/clk/imx/clk-imx8.c    | 297 ++--------------------------------------
 drivers/clk/imx/clk-imx8.h    |  19 +++
 drivers/clk/imx/clk-imx8qxp.c | 311 ++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 342 insertions(+), 289 deletions(-)
 create mode 100644 drivers/clk/imx/clk-imx8.h
 create mode 100644 drivers/clk/imx/clk-imx8qxp.c

diff --git a/drivers/clk/imx/Makefile b/drivers/clk/imx/Makefile
index 5505ae52e2..d07d91b88f 100644
--- a/drivers/clk/imx/Makefile
+++ b/drivers/clk/imx/Makefile
@@ -3,3 +3,7 @@
 # SPDX-License-Identifier: GPL-2.0
 
 obj-$(CONFIG_CLK_IMX8) += clk-imx8.o
+
+ifdef CONFIG_CLK_IMX8
+obj-$(CONFIG_IMX8QXP) += clk-imx8qxp.o
+endif
diff --git a/drivers/clk/imx/clk-imx8.c b/drivers/clk/imx/clk-imx8.c
index d03fcc2fdd..c69a9ed867 100644
--- a/drivers/clk/imx/clk-imx8.c
+++ b/drivers/clk/imx/clk-imx8.c
@@ -13,302 +13,21 @@
 #include <dt-bindings/soc/imx_rsrc.h>
 #include <misc.h>
 
-struct imx8_clks {
-	ulong id;
-	const char *name;
-};
-
-#if CONFIG_IS_ENABLED(CMD_CLK)
-static struct imx8_clks imx8_clk_names[] = {
-	{ IMX8QXP_A35_DIV, "A35_DIV" },
-	{ IMX8QXP_I2C0_CLK, "I2C0" },
-	{ IMX8QXP_I2C1_CLK, "I2C1" },
-	{ IMX8QXP_I2C2_CLK, "I2C2" },
-	{ IMX8QXP_I2C3_CLK, "I2C3" },
-	{ IMX8QXP_UART0_CLK, "UART0" },
-	{ IMX8QXP_UART1_CLK, "UART1" },
-	{ IMX8QXP_UART2_CLK, "UART2" },
-	{ IMX8QXP_UART3_CLK, "UART3" },
-	{ IMX8QXP_SDHC0_CLK, "SDHC0" },
-	{ IMX8QXP_SDHC1_CLK, "SDHC1" },
-	{ IMX8QXP_ENET0_AHB_CLK, "ENET0_AHB" },
-	{ IMX8QXP_ENET0_IPG_CLK, "ENET0_IPG" },
-	{ IMX8QXP_ENET0_REF_DIV, "ENET0_REF" },
-	{ IMX8QXP_ENET0_PTP_CLK, "ENET0_PTP" },
-	{ IMX8QXP_ENET1_AHB_CLK, "ENET1_AHB" },
-	{ IMX8QXP_ENET1_IPG_CLK, "ENET1_IPG" },
-	{ IMX8QXP_ENET1_REF_DIV, "ENET1_REF" },
-	{ IMX8QXP_ENET1_PTP_CLK, "ENET1_PTP" },
-};
-#endif
+#include "clk-imx8.h"
 
-static ulong imx8_clk_get_rate(struct clk *clk)
+__weak ulong imx8_clk_get_rate(struct clk *clk)
 {
-	sc_pm_clk_t pm_clk;
-	ulong rate;
-	u16 resource;
-	int ret;
-
-	debug("%s(#%lu)\n", __func__, clk->id);
-
-	switch (clk->id) {
-	case IMX8QXP_A35_DIV:
-		resource = SC_R_A35;
-		pm_clk = SC_PM_CLK_CPU;
-		break;
-	case IMX8QXP_I2C0_CLK:
-		resource = SC_R_I2C_0;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_I2C1_CLK:
-		resource = SC_R_I2C_1;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_I2C2_CLK:
-		resource = SC_R_I2C_2;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_I2C3_CLK:
-		resource = SC_R_I2C_3;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_SDHC0_IPG_CLK:
-	case IMX8QXP_SDHC0_CLK:
-	case IMX8QXP_SDHC0_DIV:
-		resource = SC_R_SDHC_0;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_SDHC1_IPG_CLK:
-	case IMX8QXP_SDHC1_CLK:
-	case IMX8QXP_SDHC1_DIV:
-		resource = SC_R_SDHC_1;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_UART0_IPG_CLK:
-	case IMX8QXP_UART0_CLK:
-		resource = SC_R_UART_0;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_UART1_CLK:
-		resource = SC_R_UART_1;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_UART2_CLK:
-		resource = SC_R_UART_2;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_UART3_CLK:
-		resource = SC_R_UART_3;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_ENET0_IPG_CLK:
-	case IMX8QXP_ENET0_AHB_CLK:
-	case IMX8QXP_ENET0_REF_DIV:
-	case IMX8QXP_ENET0_PTP_CLK:
-		resource = SC_R_ENET_0;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_ENET1_IPG_CLK:
-	case IMX8QXP_ENET1_AHB_CLK:
-	case IMX8QXP_ENET1_REF_DIV:
-	case IMX8QXP_ENET1_PTP_CLK:
-		resource = SC_R_ENET_1;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	default:
-		if (clk->id < IMX8QXP_UART0_IPG_CLK ||
-		    clk->id >= IMX8QXP_CLK_END) {
-			printf("%s(Invalid clk ID #%lu)\n",
-			       __func__, clk->id);
-			return -EINVAL;
-		}
-		return -ENOTSUPP;
-	};
-
-	ret = sc_pm_get_clock_rate(-1, resource, pm_clk,
-				   (sc_pm_clock_rate_t *)&rate);
-	if (ret) {
-		printf("%s err %d\n", __func__, ret);
-		return ret;
-	}
-
-	return rate;
+	return 0;
 }
 
-static ulong imx8_clk_set_rate(struct clk *clk, unsigned long rate)
+__weak ulong imx8_clk_set_rate(struct clk *clk, unsigned long rate)
 {
-	sc_pm_clk_t pm_clk;
-	u32 new_rate = rate;
-	u16 resource;
-	int ret;
-
-	debug("%s(#%lu), rate: %lu\n", __func__, clk->id, rate);
-
-	switch (clk->id) {
-	case IMX8QXP_I2C0_CLK:
-		resource = SC_R_I2C_0;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_I2C1_CLK:
-		resource = SC_R_I2C_1;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_I2C2_CLK:
-		resource = SC_R_I2C_2;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_I2C3_CLK:
-		resource = SC_R_I2C_3;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_UART0_CLK:
-		resource = SC_R_UART_0;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_UART1_CLK:
-		resource = SC_R_UART_1;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_UART2_CLK:
-		resource = SC_R_UART_2;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_UART3_CLK:
-		resource = SC_R_UART_3;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_SDHC0_IPG_CLK:
-	case IMX8QXP_SDHC0_CLK:
-	case IMX8QXP_SDHC0_DIV:
-		resource = SC_R_SDHC_0;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_SDHC1_SEL:
-	case IMX8QXP_SDHC0_SEL:
-		return 0;
-	case IMX8QXP_SDHC1_IPG_CLK:
-	case IMX8QXP_SDHC1_CLK:
-	case IMX8QXP_SDHC1_DIV:
-		resource = SC_R_SDHC_1;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_ENET0_IPG_CLK:
-	case IMX8QXP_ENET0_AHB_CLK:
-	case IMX8QXP_ENET0_REF_DIV:
-	case IMX8QXP_ENET0_PTP_CLK:
-		resource = SC_R_ENET_0;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_ENET1_IPG_CLK:
-	case IMX8QXP_ENET1_AHB_CLK:
-	case IMX8QXP_ENET1_REF_DIV:
-	case IMX8QXP_ENET1_PTP_CLK:
-		resource = SC_R_ENET_1;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	default:
-		if (clk->id < IMX8QXP_UART0_IPG_CLK ||
-		    clk->id >= IMX8QXP_CLK_END) {
-			printf("%s(Invalid clk ID #%lu)\n",
-			       __func__, clk->id);
-			return -EINVAL;
-		}
-		return -ENOTSUPP;
-	};
-
-	ret = sc_pm_set_clock_rate(-1, resource, pm_clk, &new_rate);
-	if (ret) {
-		printf("%s err %d\n", __func__, ret);
-		return ret;
-	}
-
-	return new_rate;
+	return 0;
 }
 
-static int __imx8_clk_enable(struct clk *clk, bool enable)
+__weak int __imx8_clk_enable(struct clk *clk, bool enable)
 {
-	sc_pm_clk_t pm_clk;
-	u16 resource;
-	int ret;
-
-	debug("%s(#%lu)\n", __func__, clk->id);
-
-	switch (clk->id) {
-	case IMX8QXP_I2C0_CLK:
-		resource = SC_R_I2C_0;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_I2C1_CLK:
-		resource = SC_R_I2C_1;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_I2C2_CLK:
-		resource = SC_R_I2C_2;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_I2C3_CLK:
-		resource = SC_R_I2C_3;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_UART0_CLK:
-		resource = SC_R_UART_0;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_UART1_CLK:
-		resource = SC_R_UART_1;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_UART2_CLK:
-		resource = SC_R_UART_2;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_UART3_CLK:
-		resource = SC_R_UART_3;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_SDHC0_IPG_CLK:
-	case IMX8QXP_SDHC0_CLK:
-	case IMX8QXP_SDHC0_DIV:
-		resource = SC_R_SDHC_0;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_SDHC1_IPG_CLK:
-	case IMX8QXP_SDHC1_CLK:
-	case IMX8QXP_SDHC1_DIV:
-		resource = SC_R_SDHC_1;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_ENET0_IPG_CLK:
-	case IMX8QXP_ENET0_AHB_CLK:
-	case IMX8QXP_ENET0_REF_DIV:
-	case IMX8QXP_ENET0_PTP_CLK:
-		resource = SC_R_ENET_0;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	case IMX8QXP_ENET1_IPG_CLK:
-	case IMX8QXP_ENET1_AHB_CLK:
-	case IMX8QXP_ENET1_REF_DIV:
-	case IMX8QXP_ENET1_PTP_CLK:
-		resource = SC_R_ENET_1;
-		pm_clk = SC_PM_CLK_PER;
-		break;
-	default:
-		if (clk->id < IMX8QXP_UART0_IPG_CLK ||
-		    clk->id >= IMX8QXP_CLK_END) {
-			printf("%s(Invalid clk ID #%lu)\n",
-			       __func__, clk->id);
-			return -EINVAL;
-		}
-		return -ENOTSUPP;
-	}
-
-	ret = sc_pm_clock_enable(-1, resource, pm_clk, enable, 0);
-	if (ret) {
-		printf("%s err %d\n", __func__, ret);
-		return ret;
-	}
-
-	return 0;
+	return -ENOTSUPP;
 }
 
 static int imx8_clk_disable(struct clk *clk)
@@ -336,7 +55,7 @@ int soc_clk_dump(void)
 
 	printf("Clk\t\tHz\n");
 
-	for (i = 0; i < ARRAY_SIZE(imx8_clk_names); i++) {
+	for (i = 0; i < num_clks; i++) {
 		clk.id = imx8_clk_names[i].id;
 		ret = clk_request(dev, &clk);
 		if (ret < 0) {
diff --git a/drivers/clk/imx/clk-imx8.h b/drivers/clk/imx/clk-imx8.h
new file mode 100644
index 0000000000..68ad6755e8
--- /dev/null
+++ b/drivers/clk/imx/clk-imx8.h
@@ -0,0 +1,19 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright 2018 NXP
+ * Peng Fan <peng.fan@nxp.com>
+ */
+
+struct imx8_clks {
+	ulong id;
+	const char *name;
+};
+
+#if CONFIG_IS_ENABLED(CMD_CLK)
+extern struct imx8_clks imx8_clk_names[];
+extern int num_clks;
+#endif
+
+ulong imx8_clk_get_rate(struct clk *clk);
+ulong imx8_clk_set_rate(struct clk *clk, unsigned long rate);
+int __imx8_clk_enable(struct clk *clk, bool enable);
diff --git a/drivers/clk/imx/clk-imx8qxp.c b/drivers/clk/imx/clk-imx8qxp.c
new file mode 100644
index 0000000000..1fca36ac91
--- /dev/null
+++ b/drivers/clk/imx/clk-imx8qxp.c
@@ -0,0 +1,311 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2018 NXP
+ * Peng Fan <peng.fan@nxp.com>
+ */
+
+#include <common.h>
+#include <clk-uclass.h>
+#include <dm.h>
+#include <asm/arch/sci/sci.h>
+#include <asm/arch/clock.h>
+#include <dt-bindings/clock/imx8qxp-clock.h>
+#include <dt-bindings/soc/imx_rsrc.h>
+#include <misc.h>
+
+#include "clk-imx8.h"
+
+#if CONFIG_IS_ENABLED(CMD_CLK)
+struct imx8_clks imx8_clk_names[] = {
+	{ IMX8QXP_A35_DIV, "A35_DIV" },
+	{ IMX8QXP_I2C0_CLK, "I2C0" },
+	{ IMX8QXP_I2C1_CLK, "I2C1" },
+	{ IMX8QXP_I2C2_CLK, "I2C2" },
+	{ IMX8QXP_I2C3_CLK, "I2C3" },
+	{ IMX8QXP_UART0_CLK, "UART0" },
+	{ IMX8QXP_UART1_CLK, "UART1" },
+	{ IMX8QXP_UART2_CLK, "UART2" },
+	{ IMX8QXP_UART3_CLK, "UART3" },
+	{ IMX8QXP_SDHC0_CLK, "SDHC0" },
+	{ IMX8QXP_SDHC1_CLK, "SDHC1" },
+	{ IMX8QXP_ENET0_AHB_CLK, "ENET0_AHB" },
+	{ IMX8QXP_ENET0_IPG_CLK, "ENET0_IPG" },
+	{ IMX8QXP_ENET0_REF_DIV, "ENET0_REF" },
+	{ IMX8QXP_ENET0_PTP_CLK, "ENET0_PTP" },
+	{ IMX8QXP_ENET1_AHB_CLK, "ENET1_AHB" },
+	{ IMX8QXP_ENET1_IPG_CLK, "ENET1_IPG" },
+	{ IMX8QXP_ENET1_REF_DIV, "ENET1_REF" },
+	{ IMX8QXP_ENET1_PTP_CLK, "ENET1_PTP" },
+};
+
+int num_clks = ARRAY_SIZE(imx8_clk_names);
+#endif
+
+ulong imx8_clk_get_rate(struct clk *clk)
+{
+	sc_pm_clk_t pm_clk;
+	ulong rate;
+	u16 resource;
+	int ret;
+
+	debug("%s(#%lu)\n", __func__, clk->id);
+
+	switch (clk->id) {
+	case IMX8QXP_A35_DIV:
+		resource = SC_R_A35;
+		pm_clk = SC_PM_CLK_CPU;
+		break;
+	case IMX8QXP_I2C0_CLK:
+		resource = SC_R_I2C_0;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_I2C1_CLK:
+		resource = SC_R_I2C_1;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_I2C2_CLK:
+		resource = SC_R_I2C_2;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_I2C3_CLK:
+		resource = SC_R_I2C_3;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_SDHC0_IPG_CLK:
+	case IMX8QXP_SDHC0_CLK:
+	case IMX8QXP_SDHC0_DIV:
+		resource = SC_R_SDHC_0;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_SDHC1_IPG_CLK:
+	case IMX8QXP_SDHC1_CLK:
+	case IMX8QXP_SDHC1_DIV:
+		resource = SC_R_SDHC_1;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_UART0_IPG_CLK:
+	case IMX8QXP_UART0_CLK:
+		resource = SC_R_UART_0;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_UART1_CLK:
+		resource = SC_R_UART_1;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_UART2_CLK:
+		resource = SC_R_UART_2;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_UART3_CLK:
+		resource = SC_R_UART_3;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_ENET0_IPG_CLK:
+	case IMX8QXP_ENET0_AHB_CLK:
+	case IMX8QXP_ENET0_REF_DIV:
+	case IMX8QXP_ENET0_PTP_CLK:
+		resource = SC_R_ENET_0;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_ENET1_IPG_CLK:
+	case IMX8QXP_ENET1_AHB_CLK:
+	case IMX8QXP_ENET1_REF_DIV:
+	case IMX8QXP_ENET1_PTP_CLK:
+		resource = SC_R_ENET_1;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	default:
+		if (clk->id < IMX8QXP_UART0_IPG_CLK ||
+		    clk->id >= IMX8QXP_CLK_END) {
+			printf("%s(Invalid clk ID #%lu)\n",
+			       __func__, clk->id);
+			return -EINVAL;
+		}
+		return -ENOTSUPP;
+	};
+
+	ret = sc_pm_get_clock_rate(-1, resource, pm_clk,
+				   (sc_pm_clock_rate_t *)&rate);
+	if (ret) {
+		printf("%s err %d\n", __func__, ret);
+		return ret;
+	}
+
+	return rate;
+}
+
+ulong imx8_clk_set_rate(struct clk *clk, unsigned long rate)
+{
+	sc_pm_clk_t pm_clk;
+	u32 new_rate = rate;
+	u16 resource;
+	int ret;
+
+	debug("%s(#%lu), rate: %lu\n", __func__, clk->id, rate);
+
+	switch (clk->id) {
+	case IMX8QXP_I2C0_CLK:
+		resource = SC_R_I2C_0;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_I2C1_CLK:
+		resource = SC_R_I2C_1;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_I2C2_CLK:
+		resource = SC_R_I2C_2;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_I2C3_CLK:
+		resource = SC_R_I2C_3;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_UART0_CLK:
+		resource = SC_R_UART_0;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_UART1_CLK:
+		resource = SC_R_UART_1;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_UART2_CLK:
+		resource = SC_R_UART_2;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_UART3_CLK:
+		resource = SC_R_UART_3;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_SDHC0_IPG_CLK:
+	case IMX8QXP_SDHC0_CLK:
+	case IMX8QXP_SDHC0_DIV:
+		resource = SC_R_SDHC_0;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_SDHC1_SEL:
+	case IMX8QXP_SDHC0_SEL:
+		return 0;
+	case IMX8QXP_SDHC1_IPG_CLK:
+	case IMX8QXP_SDHC1_CLK:
+	case IMX8QXP_SDHC1_DIV:
+		resource = SC_R_SDHC_1;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_ENET0_IPG_CLK:
+	case IMX8QXP_ENET0_AHB_CLK:
+	case IMX8QXP_ENET0_REF_DIV:
+	case IMX8QXP_ENET0_PTP_CLK:
+		resource = SC_R_ENET_0;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_ENET1_IPG_CLK:
+	case IMX8QXP_ENET1_AHB_CLK:
+	case IMX8QXP_ENET1_REF_DIV:
+	case IMX8QXP_ENET1_PTP_CLK:
+		resource = SC_R_ENET_1;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	default:
+		if (clk->id < IMX8QXP_UART0_IPG_CLK ||
+		    clk->id >= IMX8QXP_CLK_END) {
+			printf("%s(Invalid clk ID #%lu)\n",
+			       __func__, clk->id);
+			return -EINVAL;
+		}
+		return -ENOTSUPP;
+	};
+
+	ret = sc_pm_set_clock_rate(-1, resource, pm_clk, &new_rate);
+	if (ret) {
+		printf("%s err %d\n", __func__, ret);
+		return ret;
+	}
+
+	return new_rate;
+}
+
+int __imx8_clk_enable(struct clk *clk, bool enable)
+{
+	sc_pm_clk_t pm_clk;
+	u16 resource;
+	int ret;
+
+	debug("%s(#%lu)\n", __func__, clk->id);
+
+	switch (clk->id) {
+	case IMX8QXP_I2C0_CLK:
+		resource = SC_R_I2C_0;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_I2C1_CLK:
+		resource = SC_R_I2C_1;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_I2C2_CLK:
+		resource = SC_R_I2C_2;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_I2C3_CLK:
+		resource = SC_R_I2C_3;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_UART0_CLK:
+		resource = SC_R_UART_0;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_UART1_CLK:
+		resource = SC_R_UART_1;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_UART2_CLK:
+		resource = SC_R_UART_2;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_UART3_CLK:
+		resource = SC_R_UART_3;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_SDHC0_IPG_CLK:
+	case IMX8QXP_SDHC0_CLK:
+	case IMX8QXP_SDHC0_DIV:
+		resource = SC_R_SDHC_0;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_SDHC1_IPG_CLK:
+	case IMX8QXP_SDHC1_CLK:
+	case IMX8QXP_SDHC1_DIV:
+		resource = SC_R_SDHC_1;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_ENET0_IPG_CLK:
+	case IMX8QXP_ENET0_AHB_CLK:
+	case IMX8QXP_ENET0_REF_DIV:
+	case IMX8QXP_ENET0_PTP_CLK:
+		resource = SC_R_ENET_0;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QXP_ENET1_IPG_CLK:
+	case IMX8QXP_ENET1_AHB_CLK:
+	case IMX8QXP_ENET1_REF_DIV:
+	case IMX8QXP_ENET1_PTP_CLK:
+		resource = SC_R_ENET_1;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	default:
+		if (clk->id < IMX8QXP_UART0_IPG_CLK ||
+		    clk->id >= IMX8QXP_CLK_END) {
+			printf("%s(Invalid clk ID #%lu)\n",
+			       __func__, clk->id);
+			return -EINVAL;
+		}
+		return -ENOTSUPP;
+	}
+
+	ret = sc_pm_clock_enable(-1, resource, pm_clk, enable, 0);
+	if (ret) {
+		printf("%s err %d\n", __func__, ret);
+		return ret;
+	}
+
+	return 0;
+}
-- 
2.16.4

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

* [U-Boot] [PATCH RESEND 07/10] clk: imx8: add i.MX8QM clk driver
  2019-03-05  2:32 [U-Boot] [PATCH RESEND 01/10] pinctrl: imx8: add i.MX8QM compatible Peng Fan
                   ` (4 preceding siblings ...)
  2019-03-05  2:32 ` [U-Boot] [PATCH RESEND 06/10] clk: imx8: split code into common and soc specific part Peng Fan
@ 2019-03-05  2:32 ` Peng Fan
  2019-03-05  2:32 ` [U-Boot] [PATCH RESEND 08/10] imx8: imx8-pins: add i.MX8QM Peng Fan
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2019-03-05  2:32 UTC (permalink / raw)
  To: u-boot

Add i.MX8QM clk driver, SDHC/FEC/UART/I2C supported.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 drivers/clk/imx/Makefile     |   1 +
 drivers/clk/imx/clk-imx8.c   |   1 +
 drivers/clk/imx/clk-imx8qm.c | 307 +++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 309 insertions(+)
 create mode 100644 drivers/clk/imx/clk-imx8qm.c

diff --git a/drivers/clk/imx/Makefile b/drivers/clk/imx/Makefile
index d07d91b88f..eb379c188a 100644
--- a/drivers/clk/imx/Makefile
+++ b/drivers/clk/imx/Makefile
@@ -6,4 +6,5 @@ obj-$(CONFIG_CLK_IMX8) += clk-imx8.o
 
 ifdef CONFIG_CLK_IMX8
 obj-$(CONFIG_IMX8QXP) += clk-imx8qxp.o
+obj-$(CONFIG_IMX8QM) += clk-imx8qm.o
 endif
diff --git a/drivers/clk/imx/clk-imx8.c b/drivers/clk/imx/clk-imx8.c
index c69a9ed867..a755e26501 100644
--- a/drivers/clk/imx/clk-imx8.c
+++ b/drivers/clk/imx/clk-imx8.c
@@ -101,6 +101,7 @@ static int imx8_clk_probe(struct udevice *dev)
 
 static const struct udevice_id imx8_clk_ids[] = {
 	{ .compatible = "fsl,imx8qxp-clk" },
+	{ .compatible = "fsl,imx8qm-clk" },
 	{ },
 };
 
diff --git a/drivers/clk/imx/clk-imx8qm.c b/drivers/clk/imx/clk-imx8qm.c
new file mode 100644
index 0000000000..6b5561e178
--- /dev/null
+++ b/drivers/clk/imx/clk-imx8qm.c
@@ -0,0 +1,307 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2018 NXP
+ * Peng Fan <peng.fan@nxp.com>
+ */
+
+#include <common.h>
+#include <clk-uclass.h>
+#include <dm.h>
+#include <asm/arch/sci/sci.h>
+#include <asm/arch/clock.h>
+#include <dt-bindings/clock/imx8qm-clock.h>
+#include <dt-bindings/soc/imx_rsrc.h>
+#include <misc.h>
+
+#include "clk-imx8.h"
+
+#if CONFIG_IS_ENABLED(CMD_CLK)
+struct imx8_clks imx8_clk_names[] = {
+	{ IMX8QM_A53_DIV, "A53_DIV" },
+	{ IMX8QM_UART0_CLK, "UART0" },
+	{ IMX8QM_UART1_CLK, "UART1" },
+	{ IMX8QM_UART2_CLK, "UART2" },
+	{ IMX8QM_UART3_CLK, "UART3" },
+	{ IMX8QM_SDHC0_CLK, "SDHC0" },
+	{ IMX8QM_SDHC1_CLK, "SDHC1" },
+	{ IMX8QM_SDHC2_CLK, "SDHC2" },
+	{ IMX8QM_ENET0_AHB_CLK, "ENET0_AHB" },
+	{ IMX8QM_ENET0_IPG_CLK, "ENET0_IPG" },
+	{ IMX8QM_ENET0_REF_DIV, "ENET0_REF" },
+	{ IMX8QM_ENET0_PTP_CLK, "ENET0_PTP" },
+	{ IMX8QM_ENET1_AHB_CLK, "ENET1_AHB" },
+	{ IMX8QM_ENET1_IPG_CLK, "ENET1_IPG" },
+	{ IMX8QM_ENET1_REF_DIV, "ENET1_REF" },
+	{ IMX8QM_ENET1_PTP_CLK, "ENET1_PTP" },
+};
+
+int num_clks = ARRAY_SIZE(imx8_clk_names);
+#endif
+
+ulong imx8_clk_get_rate(struct clk *clk)
+{
+	sc_pm_clk_t pm_clk;
+	ulong rate;
+	u16 resource;
+	int ret;
+
+	debug("%s(#%lu)\n", __func__, clk->id);
+
+	switch (clk->id) {
+	case IMX8QM_A53_DIV:
+		resource = SC_R_A53;
+		pm_clk = SC_PM_CLK_CPU;
+		break;
+	case IMX8QM_I2C0_CLK:
+		resource = SC_R_I2C_0;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_I2C1_CLK:
+		resource = SC_R_I2C_1;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_I2C2_CLK:
+		resource = SC_R_I2C_2;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_I2C3_CLK:
+		resource = SC_R_I2C_3;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_SDHC0_IPG_CLK:
+	case IMX8QM_SDHC0_CLK:
+	case IMX8QM_SDHC0_DIV:
+		resource = SC_R_SDHC_0;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_SDHC1_IPG_CLK:
+	case IMX8QM_SDHC1_CLK:
+	case IMX8QM_SDHC1_DIV:
+		resource = SC_R_SDHC_1;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_UART0_IPG_CLK:
+	case IMX8QM_UART0_CLK:
+		resource = SC_R_UART_0;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_UART1_CLK:
+		resource = SC_R_UART_1;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_UART2_CLK:
+		resource = SC_R_UART_2;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_UART3_CLK:
+		resource = SC_R_UART_3;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_ENET0_IPG_CLK:
+	case IMX8QM_ENET0_AHB_CLK:
+	case IMX8QM_ENET0_REF_DIV:
+	case IMX8QM_ENET0_PTP_CLK:
+		resource = SC_R_ENET_0;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_ENET1_IPG_CLK:
+	case IMX8QM_ENET1_AHB_CLK:
+	case IMX8QM_ENET1_REF_DIV:
+	case IMX8QM_ENET1_PTP_CLK:
+		resource = SC_R_ENET_1;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	default:
+		if (clk->id < IMX8QM_UART0_IPG_CLK ||
+		    clk->id >= IMX8QM_CLK_END) {
+			printf("%s(Invalid clk ID #%lu)\n",
+			       __func__, clk->id);
+			return -EINVAL;
+		}
+		return -ENOTSUPP;
+	};
+
+	ret = sc_pm_get_clock_rate(-1, resource, pm_clk,
+				   (sc_pm_clock_rate_t *)&rate);
+	if (ret) {
+		printf("%s err %d\n", __func__, ret);
+		return ret;
+	}
+
+	return rate;
+}
+
+ulong imx8_clk_set_rate(struct clk *clk, unsigned long rate)
+{
+	sc_pm_clk_t pm_clk;
+	u32 new_rate = rate;
+	u16 resource;
+	int ret;
+
+	debug("%s(#%lu), rate: %lu\n", __func__, clk->id, rate);
+
+	switch (clk->id) {
+	case IMX8QM_I2C0_CLK:
+		resource = SC_R_I2C_0;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_I2C1_CLK:
+		resource = SC_R_I2C_1;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_I2C2_CLK:
+		resource = SC_R_I2C_2;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_I2C3_CLK:
+		resource = SC_R_I2C_3;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_UART0_CLK:
+		resource = SC_R_UART_0;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_UART1_CLK:
+		resource = SC_R_UART_1;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_UART2_CLK:
+		resource = SC_R_UART_2;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_UART3_CLK:
+		resource = SC_R_UART_3;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_SDHC0_IPG_CLK:
+	case IMX8QM_SDHC0_CLK:
+	case IMX8QM_SDHC0_DIV:
+		resource = SC_R_SDHC_0;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_SDHC1_IPG_CLK:
+	case IMX8QM_SDHC1_CLK:
+	case IMX8QM_SDHC1_DIV:
+		resource = SC_R_SDHC_1;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_ENET0_IPG_CLK:
+	case IMX8QM_ENET0_AHB_CLK:
+	case IMX8QM_ENET0_REF_DIV:
+	case IMX8QM_ENET0_PTP_CLK:
+	case IMX8QM_ENET0_ROOT_DIV:
+		resource = SC_R_ENET_0;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_ENET1_IPG_CLK:
+	case IMX8QM_ENET1_AHB_CLK:
+	case IMX8QM_ENET1_REF_DIV:
+	case IMX8QM_ENET1_PTP_CLK:
+	case IMX8QM_ENET1_ROOT_DIV:
+		resource = SC_R_ENET_1;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	default:
+		if (clk->id < IMX8QM_UART0_IPG_CLK ||
+		    clk->id >= IMX8QM_CLK_END) {
+			printf("%s(Invalid clk ID #%lu)\n",
+			       __func__, clk->id);
+			return -EINVAL;
+		}
+		return -ENOTSUPP;
+	};
+
+	ret = sc_pm_set_clock_rate(-1, resource, pm_clk, &new_rate);
+	if (ret) {
+		printf("%s err %d\n", __func__, ret);
+		return ret;
+	}
+
+	return new_rate;
+}
+
+int __imx8_clk_enable(struct clk *clk, bool enable)
+{
+	sc_pm_clk_t pm_clk;
+	u16 resource;
+	int ret;
+
+	debug("%s(#%lu)\n", __func__, clk->id);
+
+	switch (clk->id) {
+	case IMX8QM_I2C0_CLK:
+		resource = SC_R_I2C_0;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_I2C1_CLK:
+		resource = SC_R_I2C_1;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_I2C2_CLK:
+		resource = SC_R_I2C_2;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_I2C3_CLK:
+		resource = SC_R_I2C_3;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_UART0_CLK:
+		resource = SC_R_UART_0;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_UART1_CLK:
+		resource = SC_R_UART_1;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_UART2_CLK:
+		resource = SC_R_UART_2;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_UART3_CLK:
+		resource = SC_R_UART_3;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_SDHC0_IPG_CLK:
+	case IMX8QM_SDHC0_CLK:
+	case IMX8QM_SDHC0_DIV:
+		resource = SC_R_SDHC_0;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_SDHC1_IPG_CLK:
+	case IMX8QM_SDHC1_CLK:
+	case IMX8QM_SDHC1_DIV:
+		resource = SC_R_SDHC_1;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_ENET0_IPG_CLK:
+	case IMX8QM_ENET0_AHB_CLK:
+	case IMX8QM_ENET0_REF_DIV:
+	case IMX8QM_ENET0_PTP_CLK:
+		resource = SC_R_ENET_0;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	case IMX8QM_ENET1_IPG_CLK:
+	case IMX8QM_ENET1_AHB_CLK:
+	case IMX8QM_ENET1_REF_DIV:
+	case IMX8QM_ENET1_PTP_CLK:
+		resource = SC_R_ENET_1;
+		pm_clk = SC_PM_CLK_PER;
+		break;
+	default:
+		if (clk->id < IMX8QM_UART0_IPG_CLK ||
+		    clk->id >= IMX8QM_CLK_END) {
+			printf("%s(Invalid clk ID #%lu)\n",
+			       __func__, clk->id);
+			return -EINVAL;
+		}
+		return -ENOTSUPP;
+	}
+
+	ret = sc_pm_clock_enable(-1, resource, pm_clk, enable, 0);
+	if (ret) {
+		printf("%s err %d\n", __func__, ret);
+		return ret;
+	}
+
+	return 0;
+}
-- 
2.16.4

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

* [U-Boot] [PATCH RESEND 08/10] imx8: imx8-pins: add i.MX8QM
  2019-03-05  2:32 [U-Boot] [PATCH RESEND 01/10] pinctrl: imx8: add i.MX8QM compatible Peng Fan
                   ` (5 preceding siblings ...)
  2019-03-05  2:32 ` [U-Boot] [PATCH RESEND 07/10] clk: imx8: add i.MX8QM clk driver Peng Fan
@ 2019-03-05  2:32 ` Peng Fan
  2019-03-05  2:32 ` [U-Boot] [PATCH RESEND 09/10] misc: imx8: scu: add i.MX8QM support Peng Fan
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2019-03-05  2:32 UTC (permalink / raw)
  To: u-boot

Add i.MX8QM entry

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 arch/arm/include/asm/arch-imx8/imx8-pins.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm/include/asm/arch-imx8/imx8-pins.h b/arch/arm/include/asm/arch-imx8/imx8-pins.h
index dcced1010b..2130298163 100644
--- a/arch/arm/include/asm/arch-imx8/imx8-pins.h
+++ b/arch/arm/include/asm/arch-imx8/imx8-pins.h
@@ -8,6 +8,8 @@
 
 #if defined(CONFIG_IMX8QXP)
 #include <dt-bindings/pinctrl/pads-imx8qxp.h>
+#elif defined(CONFIG_IMX8QM)
+#include <dt-bindings/pinctrl/pads-imx8qm.h>
 #else
 #error "No pin header"
 #endif
-- 
2.16.4

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

* [U-Boot] [PATCH RESEND 09/10] misc: imx8: scu: add i.MX8QM support
  2019-03-05  2:32 [U-Boot] [PATCH RESEND 01/10] pinctrl: imx8: add i.MX8QM compatible Peng Fan
                   ` (6 preceding siblings ...)
  2019-03-05  2:32 ` [U-Boot] [PATCH RESEND 08/10] imx8: imx8-pins: add i.MX8QM Peng Fan
@ 2019-03-05  2:32 ` Peng Fan
  2019-03-05  2:32 ` [U-Boot] [PATCH RESEND 10/10] imx: support i.MX8QM MEK board Peng Fan
  2019-03-18  8:42 ` [U-Boot] [PATCH RESEND 01/10] pinctrl: imx8: add i.MX8QM compatible Peng Fan
  9 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2019-03-05  2:32 UTC (permalink / raw)
  To: u-boot

According to IMX8QXP/8QM config option, choose the clk/iomuxc
compatible.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 drivers/misc/imx8/scu.c | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/drivers/misc/imx8/scu.c b/drivers/misc/imx8/scu.c
index 1b9c49c99c..9ec00457b8 100644
--- a/drivers/misc/imx8/scu.c
+++ b/drivers/misc/imx8/scu.c
@@ -219,11 +219,21 @@ static int imx8_scu_bind(struct udevice *dev)
 	int ret;
 	struct udevice *child;
 	int node;
+	char *clk_compatible, *iomuxc_compatible;
+
+	if (IS_ENABLED(CONFIG_IMX8QXP)) {
+		clk_compatible = "fsl,imx8qxp-clk";
+		iomuxc_compatible = "fsl,imx8qxp-iomuxc";
+	} else if (IS_ENABLED(CONFIG_IMX8QM)) {
+		clk_compatible = "fsl,imx8qm-clk";
+		iomuxc_compatible = "fsl,imx8qm-iomuxc";
+	} else {
+		return -EINVAL;
+	}
 
 	debug("%s(dev=%p)\n", __func__, dev);
 
-	node = fdt_node_offset_by_compatible(gd->fdt_blob, -1,
-					     "fsl,imx8qxp-clk");
+	node = fdt_node_offset_by_compatible(gd->fdt_blob, -1, clk_compatible);
 	if (node < 0)
 		panic("No clk node found\n");
 
@@ -234,7 +244,7 @@ static int imx8_scu_bind(struct udevice *dev)
 	plat->clk = child;
 
 	node = fdt_node_offset_by_compatible(gd->fdt_blob, -1,
-					     "fsl,imx8qxp-iomuxc");
+					     iomuxc_compatible);
 	if (node < 0)
 		panic("No iomuxc node found\n");
 
-- 
2.16.4

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

* [U-Boot] [PATCH RESEND 10/10] imx: support i.MX8QM MEK board
  2019-03-05  2:32 [U-Boot] [PATCH RESEND 01/10] pinctrl: imx8: add i.MX8QM compatible Peng Fan
                   ` (7 preceding siblings ...)
  2019-03-05  2:32 ` [U-Boot] [PATCH RESEND 09/10] misc: imx8: scu: add i.MX8QM support Peng Fan
@ 2019-03-05  2:32 ` Peng Fan
  2019-04-09 12:48   ` Peng Fan
  2019-03-18  8:42 ` [U-Boot] [PATCH RESEND 01/10] pinctrl: imx8: add i.MX8QM compatible Peng Fan
  9 siblings, 1 reply; 654+ messages in thread
From: Peng Fan @ 2019-03-05  2:32 UTC (permalink / raw)
  To: u-boot

Add i.MX8QM MEK board support.
Included a basic dts, enabled SPL FIT

Boot log as below:
U-Boot SPL 2019.01-rc1-00029-gf002213219 (Dec 24 2018 - 10:28:30 +0800)
Normal Boot
Trying to boot from MMC2_2

U-Boot 2019.01-rc1-00029-gf002213219 (Dec 24 2018 - 10:28:30 +0800)

CPU:   NXP i.MX8QM RevB A53 at 142933 MHz

Model: Freescale i.MX8QM MEK
Board: iMX8QM MEK
Build: SCFW 9330215b
Boot:  SD1
DRAM:  6 GiB
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
Loading Environment from MMC... *** Warning - bad CRC, using default environment

In:    serial at 5a060000
Out:   serial at 5a060000
Err:   serial at 5a060000
Net:
Error: ethernet at 5b040000 address not set.
eth-1: ethernet at 5b040000
Hit any key to stop autoboot:  0

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 arch/arm/dts/Makefile                   |   4 +-
 arch/arm/dts/fsl-imx8qm-mek-u-boot.dtsi | 112 +++++++++++++++++++
 arch/arm/dts/fsl-imx8qm-mek.dts         | 184 ++++++++++++++++++++++++++++++++
 arch/arm/mach-imx/imx8/Kconfig          |   6 ++
 board/freescale/imx8qm_mek/Kconfig      |  14 +++
 board/freescale/imx8qm_mek/MAINTAINERS  |   6 ++
 board/freescale/imx8qm_mek/Makefile     |   8 ++
 board/freescale/imx8qm_mek/README       |  57 ++++++++++
 board/freescale/imx8qm_mek/imx8qm_mek.c | 157 +++++++++++++++++++++++++++
 board/freescale/imx8qm_mek/imximage.cfg |  19 ++++
 board/freescale/imx8qm_mek/spl.c        |  75 +++++++++++++
 configs/imx8qm_mek_defconfig            |  75 +++++++++++++
 include/configs/imx8qm_mek.h            | 176 ++++++++++++++++++++++++++++++
 13 files changed, 892 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/dts/fsl-imx8qm-mek-u-boot.dtsi
 create mode 100644 arch/arm/dts/fsl-imx8qm-mek.dts
 create mode 100644 board/freescale/imx8qm_mek/Kconfig
 create mode 100644 board/freescale/imx8qm_mek/MAINTAINERS
 create mode 100644 board/freescale/imx8qm_mek/Makefile
 create mode 100644 board/freescale/imx8qm_mek/README
 create mode 100644 board/freescale/imx8qm_mek/imx8qm_mek.c
 create mode 100644 board/freescale/imx8qm_mek/imximage.cfg
 create mode 100644 board/freescale/imx8qm_mek/spl.c
 create mode 100644 configs/imx8qm_mek_defconfig
 create mode 100644 include/configs/imx8qm_mek.h

diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 2a040b20a5..954d595391 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -486,7 +486,9 @@ dtb-$(CONFIG_MX7) += imx7d-sdb.dtb \
 
 dtb-$(CONFIG_ARCH_MX7ULP) += imx7ulp-evk.dtb
 
-dtb-$(CONFIG_ARCH_IMX8) += fsl-imx8qxp-mek.dtb
+dtb-$(CONFIG_ARCH_IMX8) += \
+	fsl-imx8qxp-mek.dtb \
+	fsl-imx8qm-mek.dtb \
 
 dtb-$(CONFIG_ARCH_IMX8M) += fsl-imx8mq-evk.dtb
 
diff --git a/arch/arm/dts/fsl-imx8qm-mek-u-boot.dtsi b/arch/arm/dts/fsl-imx8qm-mek-u-boot.dtsi
new file mode 100644
index 0000000000..5d50eb028e
--- /dev/null
+++ b/arch/arm/dts/fsl-imx8qm-mek-u-boot.dtsi
@@ -0,0 +1,112 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2018 NXP
+ */
+
+&mu {
+	u-boot,dm-spl;
+};
+
+&clk {
+	u-boot,dm-spl;
+};
+
+&iomuxc {
+	u-boot,dm-spl;
+};
+
+&pd_lsio {
+	u-boot,dm-spl;
+};
+
+&pd_lsio_gpio0 {
+	u-boot,dm-spl;
+};
+
+&pd_lsio_gpio1 {
+	u-boot,dm-spl;
+};
+
+&pd_lsio_gpio2 {
+	u-boot,dm-spl;
+};
+
+&pd_lsio_gpio3 {
+	u-boot,dm-spl;
+};
+
+&pd_lsio_gpio4 {
+	u-boot,dm-spl;
+};
+
+&pd_lsio_gpio5 {
+	u-boot,dm-spl;
+};
+
+&pd_lsio_gpio6 {
+	u-boot,dm-spl;
+};
+
+&pd_lsio_gpio7 {
+	u-boot,dm-spl;
+};
+
+&pd_conn {
+	u-boot,dm-spl;
+};
+
+&pd_conn_sdch0 {
+	u-boot,dm-spl;
+};
+
+&pd_conn_sdch1 {
+	u-boot,dm-spl;
+};
+
+&pd_conn_sdch2 {
+	u-boot,dm-spl;
+};
+
+&gpio0 {
+	u-boot,dm-spl;
+};
+
+&gpio1 {
+	u-boot,dm-spl;
+};
+
+&gpio2 {
+	u-boot,dm-spl;
+};
+
+&gpio3 {
+	u-boot,dm-spl;
+};
+
+&gpio4 {
+	u-boot,dm-spl;
+};
+
+&gpio5 {
+	u-boot,dm-spl;
+};
+
+&gpio6 {
+	u-boot,dm-spl;
+};
+
+&gpio7 {
+	u-boot,dm-spl;
+};
+
+&lpuart0 {
+	u-boot,dm-spl;
+};
+
+&usdhc1 {
+	u-boot,dm-spl;
+};
+
+&usdhc2 {
+	u-boot,dm-spl;
+};
diff --git a/arch/arm/dts/fsl-imx8qm-mek.dts b/arch/arm/dts/fsl-imx8qm-mek.dts
new file mode 100644
index 0000000000..63908ba6bf
--- /dev/null
+++ b/arch/arm/dts/fsl-imx8qm-mek.dts
@@ -0,0 +1,184 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2017-2018 NXP
+ */
+
+/dts-v1/;
+
+#include "fsl-imx8qm.dtsi"
+#include "fsl-imx8qm-mek-u-boot.dtsi"
+
+/ {
+	model = "Freescale i.MX8QM MEK";
+	compatible = "fsl,imx8qm-mek", "fsl,imx8qm";
+
+	chosen {
+		bootargs = "console=ttyLP0,115200 earlycon=lpuart32,0x5a060000,115200";
+		stdout-path = &lpuart0;
+	};
+
+	reg_usdhc2_vmmc: usdhc2_vmmc {
+		compatible = "regulator-fixed";
+		regulator-name = "sw-3p3-sd1";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		gpio = <&gpio4 7 GPIO_ACTIVE_HIGH>;
+		off-on-delay = <4800>;
+		enable-active-high;
+	};
+};
+
+&iomuxc {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_hog>;
+
+	imx8qm-mek {
+		pinctrl_hog: hoggrp {
+			fsl,pins = <
+				SC_P_MCLK_OUT0_AUD_ACM_MCLK_OUT0	0x0600004c
+				SC_P_QSPI1A_DATA1_LSIO_GPIO4_IO25	0x0600004c
+				SC_P_SCU_GPIO0_03_LSIO_GPIO0_IO31	0x0600004c
+			>;
+		};
+
+		pinctrl_fec1: fec1grp {
+			fsl,pins = <
+				SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENETB_PAD	0x000014a0
+				SC_P_ENET0_MDC_CONN_ENET0_MDC			0x06000020
+				SC_P_ENET0_MDIO_CONN_ENET0_MDIO			0x06000020
+				SC_P_ENET0_RGMII_TX_CTL_CONN_ENET0_RGMII_TX_CTL	0x00000061
+				SC_P_ENET0_RGMII_TXC_CONN_ENET0_RGMII_TXC	0x00000061
+				SC_P_ENET0_RGMII_TXD0_CONN_ENET0_RGMII_TXD0	0x00000061
+				SC_P_ENET0_RGMII_TXD1_CONN_ENET0_RGMII_TXD1	0x00000061
+				SC_P_ENET0_RGMII_TXD2_CONN_ENET0_RGMII_TXD2	0x00000061
+				SC_P_ENET0_RGMII_TXD3_CONN_ENET0_RGMII_TXD3	0x00000061
+				SC_P_ENET0_RGMII_RXC_CONN_ENET0_RGMII_RXC	0x00000061
+				SC_P_ENET0_RGMII_RX_CTL_CONN_ENET0_RGMII_RX_CTL	0x00000061
+				SC_P_ENET0_RGMII_RXD0_CONN_ENET0_RGMII_RXD0	0x00000061
+				SC_P_ENET0_RGMII_RXD1_CONN_ENET0_RGMII_RXD1	0x00000061
+				SC_P_ENET0_RGMII_RXD2_CONN_ENET0_RGMII_RXD2	0x00000061
+				SC_P_ENET0_RGMII_RXD3_CONN_ENET0_RGMII_RXD3	0x00000061
+			>;
+		};
+
+		pinctrl_fec2: fec2grp {
+			fsl,pins = <
+				SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENETA_PAD	0x000014a0
+				SC_P_ENET1_RGMII_TX_CTL_CONN_ENET1_RGMII_TX_CTL	0x00000060
+				SC_P_ENET1_RGMII_TXC_CONN_ENET1_RGMII_TXC	0x00000060
+				SC_P_ENET1_RGMII_TXD0_CONN_ENET1_RGMII_TXD0	0x00000060
+				SC_P_ENET1_RGMII_TXD1_CONN_ENET1_RGMII_TXD1	0x00000060
+				SC_P_ENET1_RGMII_TXD2_CONN_ENET1_RGMII_TXD2	0x00000060
+				SC_P_ENET1_RGMII_TXD3_CONN_ENET1_RGMII_TXD3	0x00000060
+				SC_P_ENET1_RGMII_RXC_CONN_ENET1_RGMII_RXC	0x00000060
+				SC_P_ENET1_RGMII_RX_CTL_CONN_ENET1_RGMII_RX_CTL	0x00000060
+				SC_P_ENET1_RGMII_RXD0_CONN_ENET1_RGMII_RXD0	0x00000060
+				SC_P_ENET1_RGMII_RXD1_CONN_ENET1_RGMII_RXD1	0x00000060
+				SC_P_ENET1_RGMII_RXD2_CONN_ENET1_RGMII_RXD2	0x00000060
+				SC_P_ENET1_RGMII_RXD3_CONN_ENET1_RGMII_RXD3	0x00000060
+			>;
+		};
+
+		pinctrl_lpuart0: lpuart0grp {
+			fsl,pins = <
+				SC_P_UART0_RX_DMA_UART0_RX		0x06000020
+				SC_P_UART0_TX_DMA_UART0_TX		0x06000020
+			>;
+		};
+
+		pinctrl_usdhc1: usdhc1grp {
+			fsl,pins = <
+				SC_P_EMMC0_CLK_CONN_EMMC0_CLK		0x06000041
+				SC_P_EMMC0_CMD_CONN_EMMC0_CMD		0x00000021
+				SC_P_EMMC0_DATA0_CONN_EMMC0_DATA0	0x00000021
+				SC_P_EMMC0_DATA1_CONN_EMMC0_DATA1	0x00000021
+				SC_P_EMMC0_DATA2_CONN_EMMC0_DATA2	0x00000021
+				SC_P_EMMC0_DATA3_CONN_EMMC0_DATA3	0x00000021
+				SC_P_EMMC0_DATA4_CONN_EMMC0_DATA4	0x00000021
+				SC_P_EMMC0_DATA5_CONN_EMMC0_DATA5	0x00000021
+				SC_P_EMMC0_DATA6_CONN_EMMC0_DATA6	0x00000021
+				SC_P_EMMC0_DATA7_CONN_EMMC0_DATA7	0x00000021
+				SC_P_EMMC0_STROBE_CONN_EMMC0_STROBE	0x00000041
+				SC_P_EMMC0_RESET_B_CONN_EMMC0_RESET_B	0x00000021
+			>;
+		};
+
+		pinctrl_usdhc2_gpio: usdhc2grpgpio {
+			fsl,pins = <
+				SC_P_USDHC1_DATA6_LSIO_GPIO5_IO21	0x00000021
+				SC_P_USDHC1_DATA7_LSIO_GPIO5_IO22	0x00000021
+				SC_P_USDHC1_RESET_B_LSIO_GPIO4_IO07	0x00000021
+			>;
+		};
+
+		pinctrl_usdhc2: usdhc2grp {
+			fsl,pins = <
+				SC_P_USDHC1_CLK_CONN_USDHC1_CLK		0x06000041
+				SC_P_USDHC1_CMD_CONN_USDHC1_CMD		0x00000021
+				SC_P_USDHC1_DATA0_CONN_USDHC1_DATA0	0x00000021
+				SC_P_USDHC1_DATA1_CONN_USDHC1_DATA1	0x00000021
+				SC_P_USDHC1_DATA2_CONN_USDHC1_DATA2	0x00000021
+				SC_P_USDHC1_DATA3_CONN_USDHC1_DATA3	0x00000021
+				SC_P_USDHC1_VSELECT_CONN_USDHC1_VSELECT	0x00000021
+			>;
+		};
+	};
+};
+
+&usdhc1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usdhc1>;
+	bus-width = <8>;
+	non-removable;
+	status = "okay";
+};
+
+&usdhc2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+	bus-width = <4>;
+	cd-gpios = <&gpio5 22 GPIO_ACTIVE_LOW>;
+	wp-gpios = <&gpio5 21 GPIO_ACTIVE_HIGH>;
+	vmmc-supply = <&reg_usdhc2_vmmc>;
+	status = "okay";
+};
+
+&fec1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_fec1>;
+	phy-mode = "rgmii-txid";
+	phy-handle = <&ethphy0>;
+	fsl,magic-packet;
+	fsl,rgmii_rxc_dly;
+	status = "okay";
+
+	mdio {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		ethphy0: ethernet-phy at 0 {
+			compatible = "ethernet-phy-ieee802.3-c22";
+			reg = <0>;
+			at803x,eee-disabled;
+			at803x,vddio-1p8v;
+		};
+
+		ethphy1: ethernet-phy at 1 {
+			compatible = "ethernet-phy-ieee802.3-c22";
+			reg = <1>;
+			at803x,eee-disabled;
+			at803x,vddio-1p8v;
+			status = "disabled";
+		};
+	};
+};
+
+&lpuart0 { /* console */
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_lpuart0>;
+	status = "okay";
+};
+
+&gpio1 {
+	status = "okay";
+};
diff --git a/arch/arm/mach-imx/imx8/Kconfig b/arch/arm/mach-imx/imx8/Kconfig
index 4336a8c236..c32f7dbb61 100644
--- a/arch/arm/mach-imx/imx8/Kconfig
+++ b/arch/arm/mach-imx/imx8/Kconfig
@@ -32,8 +32,14 @@ config TARGET_IMX8QXP_MEK
 	select BOARD_LATE_INIT
 	select IMX8QXP
 
+config TARGET_IMX8QM_MEK
+	bool "Support i.MX8QM MEK board"
+	select BOARD_LATE_INIT
+	select IMX8QM
+
 endchoice
 
 source "board/freescale/imx8qxp_mek/Kconfig"
+source "board/freescale/imx8qm_mek/Kconfig"
 
 endif
diff --git a/board/freescale/imx8qm_mek/Kconfig b/board/freescale/imx8qm_mek/Kconfig
new file mode 100644
index 0000000000..93d7d5f9c5
--- /dev/null
+++ b/board/freescale/imx8qm_mek/Kconfig
@@ -0,0 +1,14 @@
+if TARGET_IMX8QM_MEK
+
+config SYS_BOARD
+	default "imx8qm_mek"
+
+config SYS_VENDOR
+	default "freescale"
+
+config SYS_CONFIG_NAME
+	default "imx8qm_mek"
+
+source "board/freescale/common/Kconfig"
+
+endif
diff --git a/board/freescale/imx8qm_mek/MAINTAINERS b/board/freescale/imx8qm_mek/MAINTAINERS
new file mode 100644
index 0000000000..115830df19
--- /dev/null
+++ b/board/freescale/imx8qm_mek/MAINTAINERS
@@ -0,0 +1,6 @@
+i.MX8QM MEK BOARD
+M:	Peng Fan <peng.fan@nxp.com>
+S:	Maintained
+F:	board/freescale/imx8qm_mek/
+F:	include/configs/imx8qm_mek.h
+F:	configs/imx8qm_mek_defconfig
diff --git a/board/freescale/imx8qm_mek/Makefile b/board/freescale/imx8qm_mek/Makefile
new file mode 100644
index 0000000000..bc9a1260bd
--- /dev/null
+++ b/board/freescale/imx8qm_mek/Makefile
@@ -0,0 +1,8 @@
+#
+# Copyright 2018 NXP
+#
+# SPDX-License-Identifier:	GPL-2.0+
+#
+
+obj-y += imx8qm_mek.o
+obj-$(CONFIG_SPL_BUILD) += spl.o
diff --git a/board/freescale/imx8qm_mek/README b/board/freescale/imx8qm_mek/README
new file mode 100644
index 0000000000..c3523801ae
--- /dev/null
+++ b/board/freescale/imx8qm_mek/README
@@ -0,0 +1,57 @@
+U-Boot for the NXP i.MX8QM EVK board
+
+Quick Start
+===========
+
+- Build the ARM Trusted firmware binary
+- Get scfw_tcm.bin and ahab-container.img
+- Build U-Boot
+- Flash the binary into the SD card
+- Boot
+
+Get and Build the ARM Trusted firmware
+======================================
+
+$ git clone https://source.codeaurora.org/external/imx/imx-atf
+$ cd imx-atf/
+$ git checkout origin/imx_4.14.78_1.0.0_ga -b imx_4.14.78_1.0.0_ga
+$ make PLAT=imx8qm bl31
+
+Get scfw_tcm.bin and ahab-container.img
+==============================
+
+$ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/imx-sc-firmware-1.1.bin
+$ chmod +x imx-sc-firmware-1.1.bin
+$ ./imx-sc-firmware-1.1.bin
+$ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.0.bin
+$ chmod +x firmware-imx-8.0.bin
+$ ./firmware-imx-8.0.bin
+
+Copy the following binaries to U-Boot folder:
+
+$ cp imx-atf/build/imx8qm/release/bl31.bin .
+$ cp u-boot/u-boot.bin .
+
+Copy the following firmwares U-Boot folder :
+
+$ cp firmware-imx-7.6/firmware/seco/ahab-container.img .
+$ cp imx-sc-firmware-0.7/mx8qm-mek-scfw-tcm.bin	.
+
+Build U-Boot
+============
+$ export ATF_LOAD_ADDR=0x80000000
+$ export BL33_LOAD_ADDR=0x80020000
+$ make imx8qm_mek_defconfig
+$ make flash.bin
+$ dd if=u-boot.itb of=flash.bin bs=512 seek=1984
+
+Flash the binary into the SD card
+=================================
+
+Burn the flash.bin binary to SD card offset 32KB:
+
+$ sudo dd if=flash.bin of=/dev/sd[x] bs=1024 seek=32
+
+Boot
+====
+Set Boot switch SW2: 1100.
diff --git a/board/freescale/imx8qm_mek/imx8qm_mek.c b/board/freescale/imx8qm_mek/imx8qm_mek.c
new file mode 100644
index 0000000000..e69efc4dd6
--- /dev/null
+++ b/board/freescale/imx8qm_mek/imx8qm_mek.c
@@ -0,0 +1,157 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2018 NXP
+ */
+
+#include <common.h>
+#include <errno.h>
+#include <linux/libfdt.h>
+#include <environment.h>
+#include <asm/io.h>
+#include <asm/gpio.h>
+#include <asm/arch/clock.h>
+#include <asm/arch/sci/sci.h>
+#include <asm/arch/imx8-pins.h>
+#include <asm/arch/iomux.h>
+#include <asm/arch/sys_proto.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+#define UART_PAD_CTRL	((SC_PAD_CONFIG_OUT_IN << PADRING_CONFIG_SHIFT) | \
+			 (SC_PAD_ISO_OFF << PADRING_LPCONFIG_SHIFT) | \
+			 (SC_PAD_28FDSOI_DSE_DV_HIGH << PADRING_DSE_SHIFT) | \
+			 (SC_PAD_28FDSOI_PS_PU << PADRING_PULL_SHIFT))
+
+static iomux_cfg_t uart0_pads[] = {
+	SC_P_UART0_RX | MUX_PAD_CTRL(UART_PAD_CTRL),
+	SC_P_UART0_TX | MUX_PAD_CTRL(UART_PAD_CTRL),
+};
+
+static void setup_iomux_uart(void)
+{
+	imx8_iomux_setup_multiple_pads(uart0_pads, ARRAY_SIZE(uart0_pads));
+}
+
+int board_early_init_f(void)
+{
+	int ret;
+	/* Set UART0 clock root to 80 MHz */
+	sc_pm_clock_rate_t rate = 80000000;
+
+	/* Power up UART0 */
+	ret = sc_pm_set_resource_power_mode(-1, SC_R_UART_0, SC_PM_PW_MODE_ON);
+	if (ret)
+		return ret;
+
+	ret = sc_pm_set_clock_rate(-1, SC_R_UART_0, 2, &rate);
+	if (ret)
+		return ret;
+
+	/* Enable UART0 clock root */
+	ret = sc_pm_clock_enable(-1, SC_R_UART_0, 2, true, false);
+	if (ret)
+		return ret;
+
+	setup_iomux_uart();
+
+	sc_pm_set_resource_power_mode(-1, SC_R_GPIO_5, SC_PM_PW_MODE_ON);
+
+	return 0;
+}
+
+#if IS_ENABLED(CONFIG_DM_GPIO)
+static void board_gpio_init(void)
+{
+	/* TODO */
+}
+#else
+static inline void board_gpio_init(void) {}
+#endif
+
+#if IS_ENABLED(CONFIG_FEC_MXC)
+#include <miiphy.h>
+
+int board_phy_config(struct phy_device *phydev)
+{
+	phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x1f);
+	phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x8);
+
+	phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x00);
+	phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x82ee);
+	phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x05);
+	phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x100);
+
+	if (phydev->drv->config)
+		phydev->drv->config(phydev);
+
+	return 0;
+}
+#endif
+
+void build_info(void)
+{
+	u32 sc_build = 0, sc_commit = 0;
+
+	/* Get SCFW build and commit id */
+	sc_misc_build_info(-1, &sc_build, &sc_commit);
+	if (!sc_build) {
+		printf("SCFW does not support build info\n");
+		sc_commit = 0; /* Display 0 when the build info is not supported*/
+	}
+	printf("Build: SCFW %x\n", sc_commit);
+}
+
+int checkboard(void)
+{
+	puts("Board: iMX8QM MEK\n");
+
+	build_info();
+	print_bootinfo();
+
+	return 0;
+}
+
+int board_init(void)
+{
+	/* Power up base board */
+	sc_pm_set_resource_power_mode(-1, SC_R_BOARD_R1, SC_PM_PW_MODE_ON);
+
+	board_gpio_init();
+
+	return 0;
+}
+
+void detail_board_ddr_info(void)
+{
+	puts("\nDDR    ");
+}
+
+/*
+ * Board specific reset that is system reset.
+ */
+void reset_cpu(ulong addr)
+{
+	/* TODO */
+}
+
+#ifdef CONFIG_OF_BOARD_SETUP
+int ft_board_setup(void *blob, bd_t *bd)
+{
+	return 0;
+}
+#endif
+
+int board_mmc_get_env_dev(int devno)
+{
+	return devno;
+}
+
+int board_late_init(void)
+{
+#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
+	env_set("board_name", "MEK");
+	env_set("board_rev", "iMX8QM");
+#endif
+
+	return 0;
+}
diff --git a/board/freescale/imx8qm_mek/imximage.cfg b/board/freescale/imx8qm_mek/imximage.cfg
new file mode 100644
index 0000000000..7dc6b93eb5
--- /dev/null
+++ b/board/freescale/imx8qm_mek/imximage.cfg
@@ -0,0 +1,19 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright 2018 NXP
+ */
+
+#define __ASSEMBLY__
+
+/* Boot from SD, sector size 0x400 */
+BOOT_FROM SD 0x400
+/* SoC type IMX8QM */
+SOC_TYPE IMX8QM
+/* Append seco container image */
+APPEND mx8qm-ahab-container.img
+/* Create the 2nd container */
+CONTAINER
+/* Add scfw image with exec attribute */
+IMAGE SCU mx8qm-mek-scfw-tcm.bin
+/* Add ATF image with exec attribute */
+IMAGE A35 spl/u-boot-spl.bin 0x00100000
diff --git a/board/freescale/imx8qm_mek/spl.c b/board/freescale/imx8qm_mek/spl.c
new file mode 100644
index 0000000000..95ce9f37e8
--- /dev/null
+++ b/board/freescale/imx8qm_mek/spl.c
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2018 NXP
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <spl.h>
+#include <dm/uclass.h>
+#include <dm/device.h>
+#include <dm/uclass-internal.h>
+#include <dm/device-internal.h>
+#include <dm/lists.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+void spl_board_init(void)
+{
+	struct udevice *dev;
+	int offset;
+
+	uclass_find_first_device(UCLASS_MISC, &dev);
+
+	for (; dev; uclass_find_next_device(&dev)) {
+		if (device_probe(dev))
+			continue;
+	}
+
+	offset = fdt_node_offset_by_compatible(gd->fdt_blob, -1, "nxp,imx8-pd");
+	while (offset != -FDT_ERR_NOTFOUND) {
+		lists_bind_fdt(gd->dm_root, offset_to_ofnode(offset),
+			       NULL, true);
+		offset = fdt_node_offset_by_compatible(gd->fdt_blob, offset,
+						       "nxp,imx8-pd");
+	}
+
+	uclass_find_first_device(UCLASS_POWER_DOMAIN, &dev);
+
+	for (; dev; uclass_find_next_device(&dev)) {
+		if (device_probe(dev))
+			continue;
+	}
+
+	arch_cpu_init();
+
+	board_early_init_f();
+
+	timer_init();
+
+	preloader_console_init();
+
+	puts("Normal Boot\n");
+}
+
+#ifdef CONFIG_SPL_LOAD_FIT
+int board_fit_config_name_match(const char *name)
+{
+	/* Just empty function now - can't decide what to choose */
+	debug("%s: %s\n", __func__, name);
+
+	return 0;
+}
+#endif
+
+void board_init_f(ulong dummy)
+{
+	/* Clear global data */
+	memset((void *)gd, 0, sizeof(gd_t));
+
+	/* Clear the BSS. */
+	memset(__bss_start, 0, __bss_end - __bss_start);
+
+	board_init_r(NULL, 0);
+}
diff --git a/configs/imx8qm_mek_defconfig b/configs/imx8qm_mek_defconfig
new file mode 100644
index 0000000000..238d44d1f5
--- /dev/null
+++ b/configs/imx8qm_mek_defconfig
@@ -0,0 +1,75 @@
+CONFIG_ARM=y
+CONFIG_ARCH_IMX8=y
+CONFIG_SYS_TEXT_BASE=0x80020000
+CONFIG_SPL_GPIO_SUPPORT=y
+CONFIG_SPL_LIBCOMMON_SUPPORT=y
+CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_SYS_MALLOC_F_LEN=0x2000
+CONFIG_TARGET_IMX8QM_MEK=y
+CONFIG_SPL_MMC_SUPPORT=y
+CONFIG_SPL_SERIAL_SUPPORT=y
+CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
+CONFIG_SPL=y
+CONFIG_NR_DRAM_BANKS=3
+CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-imx/mkimage_fit_atf.sh"
+CONFIG_FIT=y
+CONFIG_SPL_LOAD_FIT=y
+CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/imx8qm_mek/imximage.cfg"
+CONFIG_BOOTDELAY=3
+CONFIG_LOG=y
+CONFIG_SPL_BOARD_INIT=y
+CONFIG_SPL_SEPARATE_BSS=y
+CONFIG_SPL_POWER_SUPPORT=y
+CONFIG_SPL_POWER_DOMAIN=y
+CONFIG_SPL_WATCHDOG_SUPPORT=y
+CONFIG_CMD_CPU=y
+# CONFIG_CMD_IMPORTENV is not set
+CONFIG_CMD_CLK=y
+CONFIG_CMD_DM=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_I2C=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_DHCP=y
+CONFIG_CMD_MII=y
+CONFIG_CMD_PING=y
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_FAT=y
+CONFIG_SPL_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="fsl-imx8qm-mek"
+CONFIG_ENV_IS_IN_MMC=y
+CONFIG_SPL_DM=y
+CONFIG_SPL_CLK=y
+CONFIG_CLK_IMX8=y
+CONFIG_CPU=y
+CONFIG_DM_GPIO=y
+CONFIG_MXC_GPIO=y
+CONFIG_DM_PCA953X=y
+CONFIG_DM_I2C=y
+CONFIG_SYS_I2C_IMX_LPI2C=y
+CONFIG_I2C_MUX=y
+CONFIG_I2C_MUX_PCA954x=y
+CONFIG_MISC=y
+CONFIG_DM_MMC=y
+CONFIG_PHYLIB=y
+CONFIG_PHY_ADDR_ENABLE=y
+CONFIG_PHY_ATHEROS=y
+CONFIG_DM_ETH=y
+CONFIG_PHY_GIGE=y
+CONFIG_FEC_MXC_SHARE_MDIO=y
+CONFIG_FEC_MXC_MDIO_BASE=0x5B040000
+CONFIG_FEC_MXC=y
+CONFIG_MII=y
+CONFIG_PINCTRL=y
+CONFIG_SPL_PINCTRL=y
+CONFIG_PINCTRL_IMX8=y
+CONFIG_POWER_DOMAIN=y
+CONFIG_IMX8_POWER_DOMAIN=y
+CONFIG_DM_REGULATOR=y
+CONFIG_SPL_DM_REGULATOR=y
+CONFIG_DM_REGULATOR_FIXED=y
+CONFIG_DM_REGULATOR_GPIO=y
+CONFIG_SPL_DM_REGULATOR_GPIO=y
+CONFIG_DM_SERIAL=y
+CONFIG_FSL_LPUART=y
+CONFIG_SPL_TINY_MEMSET=y
+# CONFIG_EFI_LOADER is not set
diff --git a/include/configs/imx8qm_mek.h b/include/configs/imx8qm_mek.h
new file mode 100644
index 0000000000..02c5d1c054
--- /dev/null
+++ b/include/configs/imx8qm_mek.h
@@ -0,0 +1,176 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright 2018 NXP
+ */
+
+#ifndef __IMX8QM_MEK_H
+#define __IMX8QM_MEK_H
+
+#include <linux/sizes.h>
+#include <asm/arch/imx-regs.h>
+
+#ifdef CONFIG_SPL_BUILD
+#define CONFIG_SPL_TEXT_BASE				0x0
+#define CONFIG_SPL_MAX_SIZE				(124 * 1024)
+#define CONFIG_SYS_MONITOR_LEN				(1024 * 1024)
+#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR
+#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR		0x800
+#define CONFIG_SYS_MMCSD_FS_BOOT_PARTITION		0
+
+#define CONFIG_SPL_LDSCRIPT		"arch/arm/cpu/armv8/u-boot-spl.lds"
+#define CONFIG_SPL_STACK		0x013E000
+#define CONFIG_SPL_BSS_START_ADDR	0x00128000
+#define CONFIG_SPL_BSS_MAX_SIZE		0x1000	/* 4 KB */
+#define CONFIG_SYS_SPL_MALLOC_START	0x00120000
+#define CONFIG_SYS_SPL_MALLOC_SIZE	0x3000	/* 12 KB */
+#define CONFIG_SERIAL_LPUART_BASE	0x5a060000
+#define CONFIG_SYS_ICACHE_OFF
+#define CONFIG_SYS_DCACHE_OFF
+#define CONFIG_MALLOC_F_ADDR		0x00120000
+
+#define CONFIG_SPL_RAW_IMAGE_ARM_TRUSTED_FIRMWARE
+
+#define CONFIG_SPL_ABORT_ON_RAW_IMAGE
+
+#define CONFIG_OF_EMBED
+#endif
+
+#define CONFIG_REMAKE_ELF
+
+#define CONFIG_BOARD_EARLY_INIT_F
+
+/* Flat Device Tree Definitions */
+#define CONFIG_OF_BOARD_SETUP
+
+#undef CONFIG_CMD_EXPORTENV
+#undef CONFIG_CMD_IMPORTENV
+#undef CONFIG_CMD_IMLS
+
+#undef CONFIG_CMD_CRC32
+#undef CONFIG_BOOTM_NETBSD
+
+#define CONFIG_FSL_ESDHC
+#define CONFIG_FSL_USDHC
+#define CONFIG_SYS_FSL_ESDHC_ADDR       0
+#define USDHC1_BASE_ADDR                0x5B010000
+#define USDHC2_BASE_ADDR                0x5B020000
+#define CONFIG_SUPPORT_EMMC_BOOT	/* eMMC specific */
+
+#define CONFIG_ENV_OVERWRITE
+
+#define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
+
+/* Initial environment variables */
+#define CONFIG_EXTRA_ENV_SETTINGS		\
+	"script=boot.scr\0" \
+	"image=Image\0" \
+	"panel=NULL\0" \
+	"console=ttyLP0,${baudrate} earlycon=lpuart32,0x5a060000,${baudrate}\0" \
+	"fdt_addr=0x83000000\0"			\
+	"fdt_high=0xffffffffffffffff\0"		\
+	"boot_fdt=try\0" \
+	"fdt_file=fsl-imx8qxp-mek.dtb\0" \
+	"initrd_addr=0x83800000\0"		\
+	"initrd_high=0xffffffffffffffff\0" \
+	"mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \
+	"mmcpart=" __stringify(CONFIG_SYS_MMC_IMG_LOAD_PART) "\0" \
+	"mmcroot=" CONFIG_MMCROOT " rootwait rw\0" \
+	"mmcautodetect=yes\0" \
+	"mmcargs=setenv bootargs console=${console} root=${mmcroot}\0 " \
+	"loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
+	"bootscript=echo Running bootscript from mmc ...; " \
+		"source\0" \
+	"loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
+	"loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
+	"mmcboot=echo Booting from mmc ...; " \
+		"run mmcargs; " \
+		"if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
+			"if run loadfdt; then " \
+				"booti ${loadaddr} - ${fdt_addr}; " \
+			"else " \
+				"echo WARN: Cannot load the DT; " \
+			"fi; " \
+		"else " \
+			"echo wait for boot; " \
+		"fi;\0" \
+	"netargs=setenv bootargs console=${console} " \
+		"root=/dev/nfs " \
+		"ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \
+	"netboot=echo Booting from net ...; " \
+		"run netargs;  " \
+		"if test ${ip_dyn} = yes; then " \
+			"setenv get_cmd dhcp; " \
+		"else " \
+			"setenv get_cmd tftp; " \
+		"fi; " \
+		"${get_cmd} ${loadaddr} ${image}; " \
+		"if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
+			"if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \
+				"booti ${loadaddr} - ${fdt_addr}; " \
+			"else " \
+				"echo WARN: Cannot load the DT; " \
+			"fi; " \
+		"else " \
+			"booti; " \
+		"fi;\0"
+
+#define CONFIG_BOOTCOMMAND \
+	   "mmc dev ${mmcdev}; if mmc rescan; then " \
+		   "if run loadbootscript; then " \
+			   "run bootscript; " \
+		   "else " \
+			   "if run loadimage; then " \
+				   "run mmcboot; " \
+			   "else run netboot; " \
+			   "fi; " \
+		   "fi; " \
+	   "else booti ${loadaddr} - ${fdt_addr}; fi"
+
+/* Link Definitions */
+#define CONFIG_LOADADDR			0x80280000
+
+#define CONFIG_SYS_LOAD_ADDR           CONFIG_LOADADDR
+
+#define CONFIG_SYS_INIT_SP_ADDR         0x80200000
+
+/* Default environment is in SD */
+#define CONFIG_ENV_SIZE			0x1000
+#define CONFIG_ENV_OFFSET		(64 * SZ_64K)
+#define CONFIG_SYS_MMC_ENV_PART		0	/* user area */
+
+#define CONFIG_SYS_MMC_IMG_LOAD_PART	1
+
+/* On LPDDR4 board, USDHC1 is for eMMC, USDHC2 is for SD on CPU board */
+#define CONFIG_SYS_MMC_ENV_DEV		1   /* USDHC2 */
+#define CONFIG_MMCROOT			"/dev/mmcblk1p2"  /* USDHC2 */
+#define CONFIG_SYS_FSL_USDHC_NUM	2
+
+/* Size of malloc() pool */
+#define CONFIG_SYS_MALLOC_LEN		((CONFIG_ENV_SIZE + (32 * 1024)) * 1024)
+
+#define CONFIG_SYS_SDRAM_BASE		0x80000000
+#define PHYS_SDRAM_1			0x80000000
+#define PHYS_SDRAM_2			0x880000000
+#define PHYS_SDRAM_1_SIZE		0x80000000	/* 2 GB */
+#define PHYS_SDRAM_2_SIZE		0x100000000	/* 4 GB */
+
+/* Serial */
+#define CONFIG_BAUDRATE			115200
+
+/* Monitor Command Prompt */
+#define CONFIG_HUSH_PARSER
+#define CONFIG_SYS_PROMPT_HUSH_PS2     "> "
+#define CONFIG_SYS_CBSIZE              2048
+#define CONFIG_SYS_MAXARGS             64
+#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE
+#define CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE + \
+					sizeof(CONFIG_SYS_PROMPT) + 16)
+
+/* Generic Timer Definitions */
+#define COUNTER_FREQUENCY		8000000	/* 8MHz */
+
+/* Networking */
+#define CONFIG_FEC_XCV_TYPE		RGMII
+#define FEC_QUIRK_ENET_MAC
+
+#endif /* __IMX8QM_MEK_H */
-- 
2.16.4

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

* [U-Boot] [PATCH 08/10] ata: dwc_ahsata: Add ahci driver model support
  2019-03-01 12:10 ` [U-Boot] [PATCH 08/10] ata: dwc_ahsata: Add ahci driver model support Soeren Moch
@ 2019-03-07  8:33   ` Soeren Moch
  2019-03-08 20:19     ` Soeren Moch
       [not found]   ` <smoch@web.de>
  1 sibling, 1 reply; 654+ messages in thread
From: Soeren Moch @ 2019-03-07  8:33 UTC (permalink / raw)
  To: u-boot

On 01.03.19 13:10, Soeren Moch wrote:
> Disable this support for cm_fx6 to avoid breakage.
>
> Signed-off-by: Soeren Moch <smoch@web.de>
> ---
> It would be easy to add weak board_ahci_enable/disable functions which
> can be overwritten (e.g. in the cm_fx6 board file) to handle power enable/
> disable on driver probe/remove. But I have no idea why this board needs these
> repeated probe/remove calls for the same sata device. In my tests on a
> tbs2910 board a sata harddisk is always recognized by a 'sata init' command,
> also without this probe loop.
> If this can be ironed out, we can remove the DWC_AHSATA_AHCI config option.
>
> Cc: Nikita Kiryanov <nikita@compulab.co.il>
> Cc: Stefano Babic <sbabic@denx.de>
> Cc: Fabio Estevam <festevam@gmail.com>
> Cc: Marcel Ziswiler <marcel@ziswiler.com>
> Cc: Stefan Roese <sr@denx.de>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: u-boot at lists.denx.de
> ---

After rebasing this patch series from v2019.04-rc2 to -rc3, I get this:

Matrix U-Boot> sata init

AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl SATA mode

flags: ncq stag pm led clo only pmp pio slum part

Can not start port 0

data abort

pc : [<8ffab37c>]          lr : [<8ffab595>]

reloc pc : [<1781837c>]    lr : [<17818595>]

sp : 87f909c8  ip : 87f90cd4     fp : 00000004

r10: 6c41202e  r9 : 87f90ea0     r8 : 00000000

r7 : 87f90a80  r6 : 00000200     r5 : 00000000  r4 : 87f90a80

r3 : 00000070  r2 : 87f90cc0     r1 : 87f90cc0  r0 : 00000000

Flags: nzcv  IRQs off  FIQs off  Mode SVC_32

Code: fb03231c f8d3030b 9001a00c 9e0c4611 (3038f8da)

Resetting CPU ...


Any idea what got broken here?

Thanks,
Soeren

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

* [U-Boot] [PATCH] imx8qxp: mek: enable dm-spl for pm
@ 2019-03-07 12:43 Peng Fan
  2019-03-18  8:43 ` Peng Fan
  0 siblings, 1 reply; 654+ messages in thread
From: Peng Fan @ 2019-03-07 12:43 UTC (permalink / raw)
  To: u-boot

with u-boot,dm-spl added for imx8qx-pm node, and SPL_SIMPLE_BUS enabled,
the bind and probe code in board file could be removed.

Also we need to enlarge SYS_MALLOC_F_LEN to avoid calloc fail.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 arch/arm/dts/fsl-imx8qxp-mek-u-boot.dtsi |  5 +++++
 board/freescale/imx8qxp_mek/spl.c        | 15 ---------------
 configs/imx8qxp_mek_defconfig            |  2 +-
 3 files changed, 6 insertions(+), 16 deletions(-)

diff --git a/arch/arm/dts/fsl-imx8qxp-mek-u-boot.dtsi b/arch/arm/dts/fsl-imx8qxp-mek-u-boot.dtsi
index 5d50eb028e..201559008c 100644
--- a/arch/arm/dts/fsl-imx8qxp-mek-u-boot.dtsi
+++ b/arch/arm/dts/fsl-imx8qxp-mek-u-boot.dtsi
@@ -3,6 +3,11 @@
  * Copyright 2018 NXP
  */
 
+&{/imx8qx-pm} {
+
+	u-boot,dm-spl;
+};
+
 &mu {
 	u-boot,dm-spl;
 };
diff --git a/board/freescale/imx8qxp_mek/spl.c b/board/freescale/imx8qxp_mek/spl.c
index 95ce9f37e8..51f323811a 100644
--- a/board/freescale/imx8qxp_mek/spl.c
+++ b/board/freescale/imx8qxp_mek/spl.c
@@ -27,21 +27,6 @@ void spl_board_init(void)
 			continue;
 	}
 
-	offset = fdt_node_offset_by_compatible(gd->fdt_blob, -1, "nxp,imx8-pd");
-	while (offset != -FDT_ERR_NOTFOUND) {
-		lists_bind_fdt(gd->dm_root, offset_to_ofnode(offset),
-			       NULL, true);
-		offset = fdt_node_offset_by_compatible(gd->fdt_blob, offset,
-						       "nxp,imx8-pd");
-	}
-
-	uclass_find_first_device(UCLASS_POWER_DOMAIN, &dev);
-
-	for (; dev; uclass_find_next_device(&dev)) {
-		if (device_probe(dev))
-			continue;
-	}
-
 	arch_cpu_init();
 
 	board_early_init_f();
diff --git a/configs/imx8qxp_mek_defconfig b/configs/imx8qxp_mek_defconfig
index a94998b8b5..915d8812ad 100644
--- a/configs/imx8qxp_mek_defconfig
+++ b/configs/imx8qxp_mek_defconfig
@@ -4,7 +4,7 @@ CONFIG_SYS_TEXT_BASE=0x80020000
 CONFIG_SPL_GPIO_SUPPORT=y
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
-CONFIG_SYS_MALLOC_F_LEN=0x2000
+CONFIG_SYS_MALLOC_F_LEN=0x4000
 CONFIG_TARGET_IMX8QXP_MEK=y
 CONFIG_SPL_MMC_SUPPORT=y
 CONFIG_SPL_SERIAL_SUPPORT=y
-- 
2.16.4

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

* [U-Boot] [PATCH 08/10] ata: dwc_ahsata: Add ahci driver model support
  2019-03-07  8:33   ` Soeren Moch
@ 2019-03-08 20:19     ` Soeren Moch
  0 siblings, 0 replies; 654+ messages in thread
From: Soeren Moch @ 2019-03-08 20:19 UTC (permalink / raw)
  To: u-boot



On 07.03.19 09:33, Soeren Moch wrote:
> On 01.03.19 13:10, Soeren Moch wrote:
>> Disable this support for cm_fx6 to avoid breakage.
>>
>> Signed-off-by: Soeren Moch <smoch@web.de>
>> ---
>> It would be easy to add weak board_ahci_enable/disable functions which
>> can be overwritten (e.g. in the cm_fx6 board file) to handle power enable/
>> disable on driver probe/remove. But I have no idea why this board needs these
>> repeated probe/remove calls for the same sata device. In my tests on a
>> tbs2910 board a sata harddisk is always recognized by a 'sata init' command,
>> also without this probe loop.
>> If this can be ironed out, we can remove the DWC_AHSATA_AHCI config option.
>>
>> Cc: Nikita Kiryanov <nikita@compulab.co.il>
>> Cc: Stefano Babic <sbabic@denx.de>
>> Cc: Fabio Estevam <festevam@gmail.com>
>> Cc: Marcel Ziswiler <marcel@ziswiler.com>
>> Cc: Stefan Roese <sr@denx.de>
>> Cc: Simon Glass <sjg@chromium.org>
>> Cc: u-boot at lists.denx.de
>> ---
> After rebasing this patch series from v2019.04-rc2 to -rc3, I get this:
>
> Matrix U-Boot> sata init
>
> AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl SATA mode
>
> flags: ncq stag pm led clo only pmp pio slum part
>
> Can not start port 0
>
> data abort
>
> pc : [<8ffab37c>]          lr : [<8ffab595>]
>
> reloc pc : [<1781837c>]    lr : [<17818595>]
>
> sp : 87f909c8  ip : 87f90cd4     fp : 00000004
>
> r10: 6c41202e  r9 : 87f90ea0     r8 : 00000000
>
> r7 : 87f90a80  r6 : 00000200     r5 : 00000000  r4 : 87f90a80
>
> r3 : 00000070  r2 : 87f90cc0     r1 : 87f90cc0  r0 : 00000000
>
> Flags: nzcv  IRQs off  FIQs off  Mode SVC_32
>
> Code: fb03231c f8d3030b 9001a00c 9e0c4611 (3038f8da)
>
> Resetting CPU ...
>
>
> Any idea what got broken here?
This was caused by a bad power supply.
So this patch series still works fine on top of v2019.04-rc3.

Sorry for the noise,
Soeren

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

* [U-Boot] [PATCH v2 04/23] apalis_imx6: enable fit image, gpt, imx thermal, efi loader support
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 04/23] apalis_imx6: enable fit image, gpt, imx thermal, efi loader support Marcel Ziswiler
@ 2019-03-12 10:45   ` Igor Opaniuk
  0 siblings, 0 replies; 654+ messages in thread
From: Igor Opaniuk @ 2019-03-12 10:45 UTC (permalink / raw)
  To: u-boot

Hi Marcel,

s/Enbale/Enable/g


On Fri, 8 Feb 2019 at 19:13, Marcel Ziswiler <marcel@ziswiler.com> wrote:
>
> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>
> Enbale FIT image, GPT command, i.MX thermal and EFI loader support.
>
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>
> ---
>
> Changes in v2: None
>
>  configs/apalis_imx6_defconfig | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/configs/apalis_imx6_defconfig b/configs/apalis_imx6_defconfig
> index 098d791a62..b262bb88b9 100644
> --- a/configs/apalis_imx6_defconfig
> +++ b/configs/apalis_imx6_defconfig
> @@ -11,6 +11,7 @@ CONFIG_SPL=y
>  CONFIG_CMD_HDMIDETECT=y
>  CONFIG_DISTRO_DEFAULTS=y
>  CONFIG_NR_DRAM_BANKS=1
> +CONFIG_FIT=y
>  CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg,MX6Q"
>  CONFIG_BOOTDELAY=1
>  # CONFIG_CONSOLE_MUX is not set
> @@ -36,6 +37,7 @@ CONFIG_CMD_MEMTEST=y
>  CONFIG_SYS_ALT_MEMTEST=y
>  CONFIG_CMD_DFU=y
>  CONFIG_CMD_GPIO=y
> +CONFIG_CMD_GPT=y
>  CONFIG_CMD_I2C=y
>  CONFIG_CMD_MMC=y
>  CONFIG_CMD_USB=y
> @@ -52,6 +54,7 @@ CONFIG_PHYLIB=y
>  CONFIG_PHY_MICREL=y
>  CONFIG_PHY_MICREL_KSZ90X1=y
>  CONFIG_MII=y
> +CONFIG_IMX_THERMAL=y
>  CONFIG_USB=y
>  CONFIG_USB_KEYBOARD=y
>  CONFIG_USB_GADGET=y
> @@ -65,4 +68,3 @@ CONFIG_VIDEO=y
>  CONFIG_FAT_WRITE=y
>  CONFIG_OF_LIBFDT=y
>  CONFIG_OF_LIBFDT_OVERLAY=y
> -# CONFIG_EFI_LOADER is not set
> --
> 2.20.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

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

* [U-Boot] [PATCH v2 05/23] apalis_imx6: remove obsolete USB_GADGET_MASS_STORAGE configuration
  2019-02-08 17:12 ` [U-Boot] [PATCH v2 05/23] apalis_imx6: remove obsolete USB_GADGET_MASS_STORAGE configuration Marcel Ziswiler
@ 2019-03-12 10:46   ` Igor Opaniuk
  0 siblings, 0 replies; 654+ messages in thread
From: Igor Opaniuk @ 2019-03-12 10:46 UTC (permalink / raw)
  To: u-boot

Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

On Fri, 8 Feb 2019 at 19:16, Marcel Ziswiler <marcel@ziswiler.com> wrote:
>
> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>
> Remove obsolete USB_GADGET_MASS_STORAGE configuration.
>
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>
> ---
>
> Changes in v2: None
>
>  include/configs/apalis_imx6.h | 2 --
>  1 file changed, 2 deletions(-)
>
> diff --git a/include/configs/apalis_imx6.h b/include/configs/apalis_imx6.h
> index a1ba16fc79..7222285ab3 100644
> --- a/include/configs/apalis_imx6.h
> +++ b/include/configs/apalis_imx6.h
> @@ -82,8 +82,6 @@
>  /* Client */
>  #define CONFIG_USBD_HS
>
> -#define CONFIG_USB_GADGET_MASS_STORAGE
> -
>  /* Framebuffer and LCD */
>  #define CONFIG_VIDEO_IPUV3
>  #define CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE
> --
> 2.20.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

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

* [U-Boot] [U-Boot, v4, 17/22] config: bk4: Update u-boot script to support recovery via SD card
       [not found]     ` <marcel.ziswiler@toradex.com>
       [not found]       ` <max.krummenacher@toradex.com>
@ 2019-03-13  9:28       ` sbabic at denx.de
  2019-03-13  9:28       ` [U-Boot] [U-Boot, v4, 05/22] pcm052: board: Do not enable I2C2 code in the board file sbabic at denx.de
                         ` (19 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:28 UTC (permalink / raw)
  To: u-boot

> Signed-off-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  [U-Boot, v4, 05/22] pcm052: board: Do not enable I2C2 code in the board file
       [not found]     ` <marcel.ziswiler@toradex.com>
       [not found]       ` <max.krummenacher@toradex.com>
  2019-03-13  9:28       ` [U-Boot] [U-Boot, v4, 17/22] config: bk4: Update u-boot script to support recovery via SD card sbabic at denx.de
@ 2019-03-13  9:28       ` sbabic at denx.de
  2019-03-13  9:28       ` [U-Boot] [U-Boot, v4, 07/22] pcm052: board: Remove "m4go" command as it is superseded by "bootaux" sbabic at denx.de
                         ` (18 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:28 UTC (permalink / raw)
  To: u-boot

> As the I2C2 clock is now enabled in the generic clock code, we can remove
> this code from a board file.
> Signed-off-by: Lukasz Majewski <lukma@denx.de>
> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v1, 25/26] colibri_imx6: added nreset gpio on reboot
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (12 preceding siblings ...)
  2019-02-16 10:35         ` [U-Boot] [U-Boot, v1, 2/3] imx: serial_mxc: disable ri and dcd irq in dte mode sbabic at denx.de
@ 2019-03-13  9:28         ` sbabic at denx.de
  2019-03-13  9:28         ` [U-Boot] [U-Boot, v1, 11/26] colibri_imx6: migrate mmc to using driver model sbabic at denx.de
                           ` (62 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:28 UTC (permalink / raw)
  To: u-boot

> From: Gerard Salvatella <gerard.salvatella@toradex.com>
> RGMII_RD1 pin (active high, GPIO6_IO27) is triggered on reboot during
> the SPL phase. This asserts (active low) nReset_Out from the PMIC.
> Only V1.1 and later Colibri iMX6 modules implement this in hw. Previous
> versions do not use this pin, so it is safe to leave it enabled at all
> times.
> Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v4, 07/22] pcm052: board: Remove "m4go" command as it is superseded by "bootaux"
       [not found]     ` <marcel.ziswiler@toradex.com>
                         ` (2 preceding siblings ...)
  2019-03-13  9:28       ` [U-Boot] [U-Boot, v4, 05/22] pcm052: board: Do not enable I2C2 code in the board file sbabic at denx.de
@ 2019-03-13  9:28       ` sbabic at denx.de
  2019-03-13  9:28       ` [U-Boot] [U-Boot, v4, 06/22] vybrid: Define the imx_get_mac_from_fuse() as a __weak function sbabic at denx.de
                         ` (17 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:28 UTC (permalink / raw)
  To: u-boot

> The "m4go" provides exactly the same functionality as the IMX generic
> "bootaux" command. Remove it to not duplicate the code.
> Signed-off-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v4, 19/22] pcm052: bk4: sdcard: Add support for SD card booting/recovery
       [not found] ` <uboot-imx@nxp.com>
                     ` (11 preceding siblings ...)
       [not found]   ` <peng.fan@nxp.com>
@ 2019-03-13  9:28   ` sbabic at denx.de
  2019-04-01  8:52   ` [U-Boot] [U-Boot, v2, 19/22] arm: vf610: add uart2 clock/pinmux support sbabic at denx.de
                     ` (26 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:28 UTC (permalink / raw)
  To: u-boot

> This code allows reusing the default u-boot as in the late board init, the
> default envs are restored and proper recovery scripts executed.
> Signed-off-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v4, 06/22] vybrid: Define the imx_get_mac_from_fuse() as a __weak function
       [not found]     ` <marcel.ziswiler@toradex.com>
                         ` (3 preceding siblings ...)
  2019-03-13  9:28       ` [U-Boot] [U-Boot, v4, 07/22] pcm052: board: Remove "m4go" command as it is superseded by "bootaux" sbabic at denx.de
@ 2019-03-13  9:28       ` sbabic at denx.de
  2019-03-13  9:28       ` [U-Boot] [U-Boot, v4, 15/22] config: bk4: Update include/configs/bk4r1.h file sbabic at denx.de
                         ` (16 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:28 UTC (permalink / raw)
  To: u-boot

> The proposed way of reading fused MAC in the imx_get_mac_from_fuse() may
> be different for other boards.
> This commit defines the imx_get_mac_from_fuse() as a weak function to allow
> board file overriding it with customized function.
> Signed-off-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v1, 11/26] colibri_imx6: migrate mmc to using driver model
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (13 preceding siblings ...)
  2019-03-13  9:28         ` [U-Boot] [U-Boot, v1, 25/26] colibri_imx6: added nreset gpio on reboot sbabic at denx.de
@ 2019-03-13  9:28         ` sbabic at denx.de
  2019-03-13  9:28         ` [U-Boot] [U-Boot, v2, 10/23] apalis_imx6: migrate pmic and regulator " sbabic at denx.de
                           ` (61 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:28 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Migrate MMC to using driver model.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v4, 15/22] config: bk4: Update include/configs/bk4r1.h file
       [not found]     ` <marcel.ziswiler@toradex.com>
                         ` (4 preceding siblings ...)
  2019-03-13  9:28       ` [U-Boot] [U-Boot, v4, 06/22] vybrid: Define the imx_get_mac_from_fuse() as a __weak function sbabic at denx.de
@ 2019-03-13  9:28       ` sbabic at denx.de
  2019-03-13  9:28       ` [U-Boot] [U-Boot, v4, 10/22] pcm052: board: cosmetic: Add copyright notice to pcm052.c sbabic at denx.de
                         ` (15 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:28 UTC (permalink / raw)
  To: u-boot

> The BK4's config file has changed since its initial posting to main line.
> This commit reflects those changes.
> Signed-off-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  [U-Boot, v4, 10/22] pcm052: board: cosmetic: Add copyright notice to pcm052.c
       [not found]     ` <marcel.ziswiler@toradex.com>
                         ` (5 preceding siblings ...)
  2019-03-13  9:28       ` [U-Boot] [U-Boot, v4, 15/22] config: bk4: Update include/configs/bk4r1.h file sbabic at denx.de
@ 2019-03-13  9:28       ` sbabic at denx.de
  2019-03-13  9:28       ` [U-Boot] [U-Boot, v4, 04/22] vybrid: clock: Provide enable_i2c_clk() function for Vybrid sbabic at denx.de
                         ` (14 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:28 UTC (permalink / raw)
  To: u-boot

> Signed-off-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,v1,15/26] colibri_imx6: add distroboot support
       [not found]   ` <stefan.agner@toradex.com>
       [not found]     ` <martyn.welch@collabora.com>
@ 2019-03-13  9:28     ` sbabic at denx.de
  2019-03-13  9:29     ` [U-Boot] [U-Boot,v2,14/23] apalis_imx6: " sbabic at denx.de
                       ` (40 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:28 UTC (permalink / raw)
  To: u-boot

> From: Stefan Agner <stefan.agner@toradex.com>
> Add support for distro boot. This is especially helpful for external
> devices. There is a global boot command which scans a predefined
> list of boot targets:
>   run distro_bootcmd
> As well as direct boot commands such as:
>   run bootcmd_mmc1
>   run bootcmd_usb
>   run bootcmd_dhcp
>   ...
> Refer to doc/README.distro fo details.
> While at it, remove the CONFIG_DRIVE_TYPES define which has not
> been used and was meant to be used for multi device boot support
> which is now provided by distroboot.
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 10/23] apalis_imx6: migrate pmic and regulator to using driver model
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (14 preceding siblings ...)
  2019-03-13  9:28         ` [U-Boot] [U-Boot, v1, 11/26] colibri_imx6: migrate mmc to using driver model sbabic at denx.de
@ 2019-03-13  9:28         ` sbabic at denx.de
  2019-03-13  9:28         ` [U-Boot] [U-Boot, v1, 17/26] colibri imx6: pf0100: reorder and cleanup message printing sbabic at denx.de
                           ` (60 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:28 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Migrate PMIC and regulator to using driver model.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v1, 17/26] colibri imx6: pf0100: reorder and cleanup message printing
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (15 preceding siblings ...)
  2019-03-13  9:28         ` [U-Boot] [U-Boot, v2, 10/23] apalis_imx6: migrate pmic and regulator " sbabic at denx.de
@ 2019-03-13  9:28         ` sbabic at denx.de
  2019-03-13  9:28         ` [U-Boot] [U-Boot, v1, 22/26] configs: colibri_imx6: Use ext4 file system by default sbabic at denx.de
                           ` (59 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:28 UTC (permalink / raw)
  To: u-boot

> From: Max Krummenacher <max.krummenacher@toradex.com>
> Keep debug code at the end of the function.
> Use a one line informational message for the PMIC only.
> Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  [U-Boot, v1, 22/26] configs: colibri_imx6: Use ext4 file system by default
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (16 preceding siblings ...)
  2019-03-13  9:28         ` [U-Boot] [U-Boot, v1, 17/26] colibri imx6: pf0100: reorder and cleanup message printing sbabic at denx.de
@ 2019-03-13  9:28         ` sbabic at denx.de
  2019-03-13  9:28         ` [U-Boot] [U-Boot,v1,14/26] colibri_imx6: print also 64-bit IT sbabic at denx.de
                           ` (58 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:28 UTC (permalink / raw)
  To: u-boot

> From: Sanchayan Maity <maitysanchayan@gmail.com>
> Use ext4 file system by default.
> Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,v1,14/26] colibri_imx6: print also 64-bit IT
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (17 preceding siblings ...)
  2019-03-13  9:28         ` [U-Boot] [U-Boot, v1, 22/26] configs: colibri_imx6: Use ext4 file system by default sbabic at denx.de
@ 2019-03-13  9:28         ` sbabic at denx.de
  2019-03-13  9:29         ` [U-Boot] [U-Boot, v2, 13/23] apalis_imx6: drop CONFIG_OF_SYSTEM_SETUP sbabic at denx.de
                           ` (57 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:28 UTC (permalink / raw)
  To: u-boot

> From: Max Krummenacher <max.krummenacher@toradex.com>
> Print also for Colibri iMX6 512MB IT with 64-bit RAM bus.
> Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v4, 04/22] vybrid: clock: Provide enable_i2c_clk() function for Vybrid
       [not found]     ` <marcel.ziswiler@toradex.com>
                         ` (6 preceding siblings ...)
  2019-03-13  9:28       ` [U-Boot] [U-Boot, v4, 10/22] pcm052: board: cosmetic: Add copyright notice to pcm052.c sbabic at denx.de
@ 2019-03-13  9:28       ` sbabic at denx.de
  2019-03-13  9:29       ` [U-Boot] [U-Boot, v4, 14/22] config: pcm052: Use SZ_X{MK} from linux/sizes.h for include/configs/pcm052.h sbabic at denx.de
                         ` (13 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:28 UTC (permalink / raw)
  To: u-boot

> Provide function to enable I2C clocks for vf610 - in the generic code.
> This function overrides the default weak function implementation (which
> only returns 1).
> Signed-off-by: Lukasz Majewski <lukma@denx.de>
> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  [U-Boot, v4, 11/22] ARM: DTS: Update pcm052 based dts files (bk4r1/pcm052)
       [not found]         ` <marek.vasut+renesas@gmail.com>
  2019-01-30  9:05           ` [U-Boot] [U-Boot,v4,2/2] imx: Add PHYTEC phyBOARD-i.MX6UL-Segin sbabic at denx.de
@ 2019-03-13  9:29           ` sbabic at denx.de
  1 sibling, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:29 UTC (permalink / raw)
  To: u-boot

> This commit provides update and renames the bk4r1.dts to vf610-bk4r1.dts
> file with more on SoC HW description.
> The pcm052.dts has been renamed to vf610-pcm052.dts as well.
> Moreover, a new vf610-pcm052.drsi file has been introduced
> to reuse the common code between devices based on Phytec's
> pcm052 modules.
> Ported from Linux kernel - v4.20 (tag)
> Signed-off-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v4, 14/22] config: pcm052: Use SZ_X{MK} from linux/sizes.h for include/configs/pcm052.h
       [not found]     ` <marcel.ziswiler@toradex.com>
                         ` (7 preceding siblings ...)
  2019-03-13  9:28       ` [U-Boot] [U-Boot, v4, 04/22] vybrid: clock: Provide enable_i2c_clk() function for Vybrid sbabic at denx.de
@ 2019-03-13  9:29       ` sbabic at denx.de
  2019-03-13  9:29       ` [U-Boot] [U-Boot, v4, 18/22] config: bk4: Update u-boot envs to support NOR memories initial setup sbabic at denx.de
                         ` (12 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:29 UTC (permalink / raw)
  To: u-boot

> Signed-off-by: Lukasz Majewski <lukma@denx.de>
> Reviewed-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 13/23] apalis_imx6: drop CONFIG_OF_SYSTEM_SETUP
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (18 preceding siblings ...)
  2019-03-13  9:28         ` [U-Boot] [U-Boot,v1,14/26] colibri_imx6: print also 64-bit IT sbabic at denx.de
@ 2019-03-13  9:29         ` sbabic at denx.de
  2019-03-13  9:29         ` [U-Boot] [U-Boot,v2,02/23] apalis_imx6: use distro defaults sbabic at denx.de
                           ` (56 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:29 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> This doesn't do anything anymore, probably never did.
> Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,v2,02/23] apalis_imx6: use distro defaults
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (19 preceding siblings ...)
  2019-03-13  9:29         ` [U-Boot] [U-Boot, v2, 13/23] apalis_imx6: drop CONFIG_OF_SYSTEM_SETUP sbabic at denx.de
@ 2019-03-13  9:29         ` sbabic at denx.de
  2019-03-13  9:29         ` [U-Boot] [U-Boot, v2, 07/23] apalis_imx6: clean-up and migrate gpios to using driver model sbabic at denx.de
                           ` (55 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:29 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Use distro defaults and minimise default configuration again using
> savedefconfig.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 07/23] apalis_imx6: clean-up and migrate gpios to using driver model
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (20 preceding siblings ...)
  2019-03-13  9:29         ` [U-Boot] [U-Boot,v2,02/23] apalis_imx6: use distro defaults sbabic at denx.de
@ 2019-03-13  9:29         ` sbabic at denx.de
  2019-03-13  9:29         ` [U-Boot] [U-Boot, v2, 12/23] apalis_imx6: migrate usb " sbabic at denx.de
                           ` (54 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:29 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Migrate GPIOs to using driver model, properly request backlight,
> Ethernet PHY reset, MMC/SD card detect and USB power GPIOs and also
> enable SION bit in pin muxing for Apalis, backlight, eMMC reset,
> Ethernet PHY reset and USB power enable GPIOs.
> While at it also update copyright year, clean-up/re-order includes,
> add some comments clarifying ifdef scope and do some White-space
> clean-up.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 12/23] apalis_imx6: migrate usb to using driver model
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (21 preceding siblings ...)
  2019-03-13  9:29         ` [U-Boot] [U-Boot, v2, 07/23] apalis_imx6: clean-up and migrate gpios to using driver model sbabic at denx.de
@ 2019-03-13  9:29         ` sbabic at denx.de
  2019-03-13  9:29         ` [U-Boot] [U-Boot, v1, 12/26] colibri_imx6: " sbabic at denx.de
                           ` (53 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:29 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Migrate USB to using driver model.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v1, 12/26] colibri_imx6: migrate usb to using driver model
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (22 preceding siblings ...)
  2019-03-13  9:29         ` [U-Boot] [U-Boot, v2, 12/23] apalis_imx6: migrate usb " sbabic at denx.de
@ 2019-03-13  9:29         ` sbabic at denx.de
  2019-03-13  9:29         ` [U-Boot] [U-Boot, v2, 15/23] apalis_imx6: use both sd/mmc interfaces for setsdupdate sbabic at denx.de
                           ` (52 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:29 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Migrate USB to using driver model.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  [U-Boot, v2, 15/23] apalis_imx6: use both sd/mmc interfaces for setsdupdate
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (23 preceding siblings ...)
  2019-03-13  9:29         ` [U-Boot] [U-Boot, v1, 12/26] colibri_imx6: " sbabic at denx.de
@ 2019-03-13  9:29         ` sbabic at denx.de
  2019-03-13  9:29         ` [U-Boot] [U-Boot, v2, 16/23] apalis_imx6: unify sd/mmc drive strength with linux kernel settings sbabic at denx.de
                           ` (51 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:29 UTC (permalink / raw)
  To: u-boot

> From: Max Krummenacher <max.krummenacher@toradex.com>
> During porting to 2016.11 the check of a SD (mmc2) interface
> was dropped, this was unintended.
> Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 16/23] apalis_imx6: unify sd/mmc drive strength with linux kernel settings
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (24 preceding siblings ...)
  2019-03-13  9:29         ` [U-Boot] [U-Boot, v2, 15/23] apalis_imx6: use both sd/mmc interfaces for setsdupdate sbabic at denx.de
@ 2019-03-13  9:29         ` sbabic at denx.de
  2019-03-13  9:29         ` [U-Boot] [U-Boot, v1, 05/26] colibri_imx6: remove obsolete USB_GADGET_MASS_STORAGE configuration sbabic at denx.de
                           ` (50 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:29 UTC (permalink / raw)
  To: u-boot

> From: Max Krummenacher <max.krummenacher@toradex.com>
> In the Linux device tree we use 40Ohm drive strength. So use the same
> value in U-Boot.
> Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v4, 18/22] config: bk4: Update u-boot envs to support NOR memories initial setup
       [not found]     ` <marcel.ziswiler@toradex.com>
                         ` (8 preceding siblings ...)
  2019-03-13  9:29       ` [U-Boot] [U-Boot, v4, 14/22] config: pcm052: Use SZ_X{MK} from linux/sizes.h for include/configs/pcm052.h sbabic at denx.de
@ 2019-03-13  9:29       ` sbabic at denx.de
  2019-03-13  9:29       ` [U-Boot] [U-Boot, v4, 12/22] ARM: DTS: Provide vf610-bk4r1-u-boot.dtsi for U-Boot specific properties sbabic at denx.de
                         ` (11 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:29 UTC (permalink / raw)
  To: u-boot

> Signed-off-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v1, 05/26] colibri_imx6: remove obsolete USB_GADGET_MASS_STORAGE configuration
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (25 preceding siblings ...)
  2019-03-13  9:29         ` [U-Boot] [U-Boot, v2, 16/23] apalis_imx6: unify sd/mmc drive strength with linux kernel settings sbabic at denx.de
@ 2019-03-13  9:29         ` sbabic at denx.de
  2019-03-13  9:29         ` [U-Boot] [U-Boot, v1, 08/26] colibri_imx6: enable pin control driver sbabic at denx.de
                           ` (49 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:29 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Remove obsolete USB_GADGET_MASS_STORAGE configuration.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v1, 08/26] colibri_imx6: enable pin control driver
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (26 preceding siblings ...)
  2019-03-13  9:29         ` [U-Boot] [U-Boot, v1, 05/26] colibri_imx6: remove obsolete USB_GADGET_MASS_STORAGE configuration sbabic at denx.de
@ 2019-03-13  9:29         ` sbabic at denx.de
  2019-03-13  9:29         ` [U-Boot] [U-Boot, v2, 19/23] apalis_imx6: revert fuse value set in mfgr_fuse sbabic at denx.de
                           ` (48 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:29 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Enable pin control driver as required for further driver model
> migration.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 19/23] apalis_imx6: revert fuse value set in mfgr_fuse
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (27 preceding siblings ...)
  2019-03-13  9:29         ` [U-Boot] [U-Boot, v1, 08/26] colibri_imx6: enable pin control driver sbabic at denx.de
@ 2019-03-13  9:29         ` sbabic at denx.de
  2019-03-13  9:29         ` [U-Boot] [U-Boot,v2,22/23] apalis_imx6: switch to zimage sbabic at denx.de
                           ` (47 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:29 UTC (permalink / raw)
  To: u-boot

> From: Max Krummenacher <max.krummenacher@toradex.com>
> We have two commands to change the bootmode fuses:
> mfgr_fuse which set fuse 0/5 and 0/6
> and
> updt_fuse which burns bit 4 of 0/5.
> Before BSP 2.6 we fused in mfgr_fuse 0x5062, which boots
> from the user partition of the eMMC.
> To workaround certain hangs we moved to fastboot mode and
> using the first bootpartition of the eMMC requiring a fuse
> value of 0x5072 which could be achieved by the then added
> updt_fuse command. At the same time the mfgr_fuse command
> was changed to also fuse 0x5072, revert that second change
> so that one can fuse both values, one with just mfgr_fuse
> and the later with mfgr_fuse;updt_fuse.
> Note that the mfgr_fuse command is only needed at module
> production time, a customer might need to use updt_fuse
> when upgrading an older module to be compatible with a
> newer image. The command is integrated into the image
> update scripts.
> Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
> Acked-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,v2,22/23] apalis_imx6: switch to zimage
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (28 preceding siblings ...)
  2019-03-13  9:29         ` [U-Boot] [U-Boot, v2, 19/23] apalis_imx6: revert fuse value set in mfgr_fuse sbabic at denx.de
@ 2019-03-13  9:29         ` sbabic at denx.de
  2019-03-13  9:29         ` [U-Boot] [U-Boot,v1,02/26] colibri_imx6: use distro defaults sbabic at denx.de
                           ` (46 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:29 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Switch to the generic compressed Kernel image type (zImage) instead of
> the U-Boot specific uImage format.
> While at it also fix device tree naming for MMC DFU.
> Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,v1,02/26] colibri_imx6: use distro defaults
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (29 preceding siblings ...)
  2019-03-13  9:29         ` [U-Boot] [U-Boot,v2,22/23] apalis_imx6: switch to zimage sbabic at denx.de
@ 2019-03-13  9:29         ` sbabic at denx.de
  2019-03-13  9:29         ` [U-Boot] [U-Boot, v2, 03/23] apalis_imx6: move console in env from header file to defconfig sbabic at denx.de
                           ` (45 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:29 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Use distro defaults and minimise default configuration again using
> savedefconfig.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 03/23] apalis_imx6: move console in env from header file to defconfig
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (30 preceding siblings ...)
  2019-03-13  9:29         ` [U-Boot] [U-Boot,v1,02/26] colibri_imx6: use distro defaults sbabic at denx.de
@ 2019-03-13  9:29         ` sbabic at denx.de
  2019-03-13  9:29         ` [U-Boot] [U-Boot, v1, 21/26] toradex: colibri_imx6: overwrite CMA memory set in device tree sbabic at denx.de
                           ` (44 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:29 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Move console in env from header file to defconfig.
> While at it also update copyright year and remove spurious comments and
> new lines.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v4, 12/22] ARM: DTS: Provide vf610-bk4r1-u-boot.dtsi for U-Boot specific properties
       [not found]     ` <marcel.ziswiler@toradex.com>
                         ` (9 preceding siblings ...)
  2019-03-13  9:29       ` [U-Boot] [U-Boot, v4, 18/22] config: bk4: Update u-boot envs to support NOR memories initial setup sbabic at denx.de
@ 2019-03-13  9:29       ` sbabic at denx.de
  2019-03-13  9:29       ` [U-Boot] [U-Boot, v4, 21/22] pcm052: mac: Provide board specific imx_get_mac_from_fuse() function sbabic at denx.de
                         ` (10 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:29 UTC (permalink / raw)
  To: u-boot

> This commit brings a separate file in which the U-Boot specific
> properties (like 'dm-pre-reloc') are provided.
> Such approach allows easy sync with upstream Linux kernel in the
> future.
> Signed-off-by: Lukasz Majewski <lukma@denx.de>
> Reviewed-by: Tom Rini <trini@konsulko.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v4, 21/22] pcm052: mac: Provide board specific imx_get_mac_from_fuse() function
       [not found]     ` <marcel.ziswiler@toradex.com>
                         ` (10 preceding siblings ...)
  2019-03-13  9:29       ` [U-Boot] [U-Boot, v4, 12/22] ARM: DTS: Provide vf610-bk4r1-u-boot.dtsi for U-Boot specific properties sbabic at denx.de
@ 2019-03-13  9:29       ` sbabic at denx.de
  2019-03-13  9:29       ` [U-Boot] [U-Boot, v4, 09/22] ARM: DTS: vybrid: Update vf.dtsi file to descibe more vf610 hardware sbabic at denx.de
                         ` (9 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:29 UTC (permalink / raw)
  To: u-boot

> This commit introduces the board specific function to read fused mac
> address.
> Signed-off-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v4, 09/22] ARM: DTS: vybrid: Update vf.dtsi file to descibe more vf610 hardware
       [not found]     ` <marcel.ziswiler@toradex.com>
                         ` (11 preceding siblings ...)
  2019-03-13  9:29       ` [U-Boot] [U-Boot, v4, 21/22] pcm052: mac: Provide board specific imx_get_mac_from_fuse() function sbabic at denx.de
@ 2019-03-13  9:29       ` sbabic at denx.de
  2019-03-13  9:29       ` [U-Boot] [U-Boot, v4, 13/22] defconfig: bk4/pcm052: Update bk4r1|pcm052_defconfig to support DM/DT sbabic at denx.de
                         ` (8 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:29 UTC (permalink / raw)
  To: u-boot

> This patch allows moving vf610 based boards to a device tree and model.
> Ported from Linux kernel - v4.20 (tag)
> Signed-off-by: Lukasz Majewski <lukma@denx.de>
> Reviewed-by: Stefan Agner <stefan.agner@toradex.com>
> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v1, 21/26] toradex: colibri_imx6: overwrite CMA memory set in device tree
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (31 preceding siblings ...)
  2019-03-13  9:29         ` [U-Boot] [U-Boot, v2, 03/23] apalis_imx6: move console in env from header file to defconfig sbabic at denx.de
@ 2019-03-13  9:29         ` sbabic at denx.de
  2019-03-13  9:29         ` [U-Boot] [U-Boot,v1,24/26] colibri_imx6: switch to zimage sbabic at denx.de
                           ` (43 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:29 UTC (permalink / raw)
  To: u-boot

> From: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
> Make sure CMA memory is not greater than 50% of available physical
> memory.
> Allow user to change the CMA memory via 'cma-size' U-Boot environment
> variable.
> Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,v1,24/26] colibri_imx6: switch to zimage
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (32 preceding siblings ...)
  2019-03-13  9:29         ` [U-Boot] [U-Boot, v1, 21/26] toradex: colibri_imx6: overwrite CMA memory set in device tree sbabic at denx.de
@ 2019-03-13  9:29         ` sbabic at denx.de
  2019-03-13  9:29         ` [U-Boot] [U-Boot, v2, 06/23] apalis_imx6: migrate to using device tree sbabic at denx.de
                           ` (42 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:29 UTC (permalink / raw)
  To: u-boot

> From: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
> Switch to the generic compressed Kernel image type (zImage) instead of
> the U-Boot specific uImage format.
> While at it also fix device tree naming for MMC DFU.
> Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v4, 13/22] defconfig: bk4/pcm052: Update bk4r1|pcm052_defconfig to support DM/DT
       [not found]     ` <marcel.ziswiler@toradex.com>
                         ` (12 preceding siblings ...)
  2019-03-13  9:29       ` [U-Boot] [U-Boot, v4, 09/22] ARM: DTS: vybrid: Update vf.dtsi file to descibe more vf610 hardware sbabic at denx.de
@ 2019-03-13  9:29       ` sbabic at denx.de
  2019-03-13  9:30       ` [U-Boot] [U-Boot, v4, 16/22] pcm052: board: Remove in-board setup code (it is now replaced by DM setup) sbabic at denx.de
                         ` (7 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:29 UTC (permalink / raw)
  To: u-boot

> This commit updates BK4's and PCM052's config files to support as much
> as possible device tree and model in u-boot.
> Moreover, remove CONFIG_* from pcm052.h (as those are now in
> bk4|pcm052_defconfig)
> Signed-off-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,v2,14/23] apalis_imx6: add distroboot support
       [not found]   ` <stefan.agner@toradex.com>
       [not found]     ` <martyn.welch@collabora.com>
  2019-03-13  9:28     ` [U-Boot] [U-Boot,v1,15/26] colibri_imx6: add distroboot support sbabic at denx.de
@ 2019-03-13  9:29     ` sbabic at denx.de
  2019-03-13  9:30     ` [U-Boot] [U-Boot, v1, 23/26] colibri_imx6: use SDP if USB serial downloader has been used sbabic at denx.de
                       ` (39 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:29 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Add support for distro boot. This is especially helpful for external
> devices. There is a global boot command which scans a predefined
> list of boot targets:
>   run distro_bootcmd
> As well as direct boot commands such as:
>   run bootcmd_mmc1
>   run bootcmd_mmc2
>   run bootcmd_usb
>   run bootcmd_dhcp
>   ...
> Refer to doc/README.distro for details.
> While at it, remove the CONFIG_DRIVE_TYPES define which has not
> been used and was meant to be used for multi device boot support
> which is now provided by distroboot.
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 06/23] apalis_imx6: migrate to using device tree
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (33 preceding siblings ...)
  2019-03-13  9:29         ` [U-Boot] [U-Boot,v1,24/26] colibri_imx6: switch to zimage sbabic at denx.de
@ 2019-03-13  9:29         ` sbabic at denx.de
  2019-03-13  9:29         ` [U-Boot] [U-Boot, v2, 20/23] configs: apalis_imx6: Use ext4 file system by default sbabic at denx.de
                           ` (41 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:29 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Migrate to using device tree required for further driver model
> integration.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v1, 19/26] colibri_imx6: change pmic fusing according to hw 1.1 requirements
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (35 preceding siblings ...)
  2019-03-13  9:29         ` [U-Boot] [U-Boot, v2, 20/23] configs: apalis_imx6: Use ext4 file system by default sbabic at denx.de
@ 2019-03-13  9:29         ` sbabic at denx.de
  2019-03-13  9:30         ` [U-Boot] [U-Boot, v1, 10/26] colibri_imx6: migrate pmic and regulator to using driver model sbabic at denx.de
                           ` (39 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:29 UTC (permalink / raw)
  To: u-boot

> From: Max Krummenacher <max.krummenacher@toradex.com>
> Colibri iMX6 V1.1 HW can use the PMIC GEN3 to power the NVCC_SD1.
> Change the settings fused into the PMIC's OTP to powerup with
> GEN3 set to output 3.3V.
> Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
> Acked-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  [U-Boot, v2, 20/23] configs: apalis_imx6: Use ext4 file system by default
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (34 preceding siblings ...)
  2019-03-13  9:29         ` [U-Boot] [U-Boot, v2, 06/23] apalis_imx6: migrate to using device tree sbabic at denx.de
@ 2019-03-13  9:29         ` sbabic at denx.de
  2019-03-13  9:29         ` [U-Boot] [U-Boot, v1, 19/26] colibri_imx6: change pmic fusing according to hw 1.1 requirements sbabic at denx.de
                           ` (40 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:29 UTC (permalink / raw)
  To: u-boot

> From: Sanchayan Maity <maitysanchayan@gmail.com>
> Use ext4 file system by default.
> Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v1, 10/26] colibri_imx6: migrate pmic and regulator to using driver model
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (36 preceding siblings ...)
  2019-03-13  9:29         ` [U-Boot] [U-Boot, v1, 19/26] colibri_imx6: change pmic fusing according to hw 1.1 requirements sbabic at denx.de
@ 2019-03-13  9:30         ` sbabic at denx.de
  2019-03-13  9:30         ` [U-Boot] [U-Boot, v2, 18/23] apalis_imx6: disable ri and dcd irq in uarts sbabic at denx.de
                           ` (38 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:30 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Migrate PMIC and regulator to using driver model.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v1, 23/26] colibri_imx6: use SDP if USB serial downloader has been used
       [not found]   ` <stefan.agner@toradex.com>
                       ` (2 preceding siblings ...)
  2019-03-13  9:29     ` [U-Boot] [U-Boot,v2,14/23] apalis_imx6: " sbabic at denx.de
@ 2019-03-13  9:30     ` sbabic at denx.de
       [not found]     ` <marcel.ziswiler@toradex.com>
                       ` (38 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:30 UTC (permalink / raw)
  To: u-boot

> From: Stefan Agner <stefan.agner@toradex.com>
> In case USB serial downloader has been used to load U-Boot start the
> serial download protocol (SDP) emulation. This allows to download
> complete images such as Toradex Easy Installer over USB SDP as well.
> This code uses the boot ROM provided boot information to reliably
> detect USB serial downloader.
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 18/23] apalis_imx6: disable ri and dcd irq in uarts
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (37 preceding siblings ...)
  2019-03-13  9:30         ` [U-Boot] [U-Boot, v1, 10/26] colibri_imx6: migrate pmic and regulator to using driver model sbabic at denx.de
@ 2019-03-13  9:30         ` sbabic at denx.de
  2019-03-13  9:30         ` [U-Boot] [U-Boot, v2, 09/23] apalis_imx6: migrate i2c to using driver model sbabic at denx.de
                           ` (37 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:30 UTC (permalink / raw)
  To: u-boot

> From: Max Krummenacher <max.krummenacher@toradex.com>
> If the UART is used in DTE mode the RI and DCD bits in UCR3 become
> irq enable bits. Both are set to enabled after reset and both likely
> are pending.
> Disable the bits also on UARTs not used in the boot loader to prevent
> an interrupt storm when Linux enables the UART interrupts.
> Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v4, 16/22] pcm052: board: Remove in-board setup code (it is now replaced by DM setup)
       [not found]     ` <marcel.ziswiler@toradex.com>
                         ` (13 preceding siblings ...)
  2019-03-13  9:29       ` [U-Boot] [U-Boot, v4, 13/22] defconfig: bk4/pcm052: Update bk4r1|pcm052_defconfig to support DM/DT sbabic at denx.de
@ 2019-03-13  9:30       ` sbabic at denx.de
  2019-03-13  9:38       ` [U-Boot] [U-Boot, v4, 03/22] vybrid: ddr: Extend vf610-pinfunc.h with DDR pads definitions sbabic at denx.de
                         ` (6 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:30 UTC (permalink / raw)
  To: u-boot

> This commit cleans up the pcm052.c file to remove dead code after moving to
> DTS and DM.
> Signed-off-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 09/23] apalis_imx6: migrate i2c to using driver model
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (38 preceding siblings ...)
  2019-03-13  9:30         ` [U-Boot] [U-Boot, v2, 18/23] apalis_imx6: disable ri and dcd irq in uarts sbabic at denx.de
@ 2019-03-13  9:30         ` sbabic at denx.de
  2019-03-13  9:30         ` [U-Boot] [U-Boot, v2, 01/23] apalis_imx6: get rid of obsolete nospl configurations sbabic at denx.de
                           ` (36 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:30 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Migrate I2C to using driver model.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  [U-Boot, v2, 01/23] apalis_imx6: get rid of obsolete nospl configurations
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (39 preceding siblings ...)
  2019-03-13  9:30         ` [U-Boot] [U-Boot, v2, 09/23] apalis_imx6: migrate i2c to using driver model sbabic at denx.de
@ 2019-03-13  9:30         ` sbabic at denx.de
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 18/26] colibri imx6: disable ri and dcd irq in uarts sbabic at denx.de
                           ` (35 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:30 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Now with SPL long since being in place even for recovery using SDP
> finally get rid of those nospl configurations.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v1, 18/26] colibri imx6: disable ri and dcd irq in uarts
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (40 preceding siblings ...)
  2019-03-13  9:30         ` [U-Boot] [U-Boot, v2, 01/23] apalis_imx6: get rid of obsolete nospl configurations sbabic at denx.de
@ 2019-03-13  9:38         ` sbabic at denx.de
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 03/26] colibri_imx6: move console in env from header file to defconfig sbabic at denx.de
                           ` (34 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:38 UTC (permalink / raw)
  To: u-boot

> From: Max Krummenacher <max.krummenacher@toradex.com>
> If the UART is used in DTE mode the RI and DCD bits in UCR3 become
> irq enable bits. Both are set to enabled after reset and both likely
> are pending.
> Disable the bits also on UARTs not used in the boot loader to prevent
> an interrupt storm when Linux enables the UART interrupts.
> Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v1, 06/26] colibri_imx6: migrate to using device tree
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (42 preceding siblings ...)
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 03/26] colibri_imx6: move console in env from header file to defconfig sbabic at denx.de
@ 2019-03-13  9:38         ` sbabic at denx.de
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 26/26] board: colibri_imx6: check for and report ecc errors in fuses sbabic at denx.de
                           ` (32 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:38 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Migrate to using device tree required for further driver model
> integration.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v4, 03/22] vybrid: ddr: Extend vf610-pinfunc.h with DDR pads definitions
       [not found]     ` <marcel.ziswiler@toradex.com>
                         ` (14 preceding siblings ...)
  2019-03-13  9:30       ` [U-Boot] [U-Boot, v4, 16/22] pcm052: board: Remove in-board setup code (it is now replaced by DM setup) sbabic at denx.de
@ 2019-03-13  9:38       ` sbabic at denx.de
  2019-03-13  9:47       ` [U-Boot] [U-Boot, v4, 20/22] pcm052: board: Add code to setup LED default states sbabic at denx.de
                         ` (5 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:38 UTC (permalink / raw)
  To: u-boot

> This patch provides definitions necessary for VF610 DDR pad configurations.
> Signed-off-by: Lukasz Majewski <lukma@denx.de>
> Reviewed-by: Stefan Agner <stefan.agner@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v1, 03/26] colibri_imx6: move console in env from header file to defconfig
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (41 preceding siblings ...)
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 18/26] colibri imx6: disable ri and dcd irq in uarts sbabic at denx.de
@ 2019-03-13  9:38         ` sbabic at denx.de
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 06/26] colibri_imx6: migrate to using device tree sbabic at denx.de
                           ` (33 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:38 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Move console in env from header file to defconfig.
> While at it also update copyright year.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v1, 26/26] board: colibri_imx6: check for and report ecc errors in fuses
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (43 preceding siblings ...)
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 06/26] colibri_imx6: migrate to using device tree sbabic at denx.de
@ 2019-03-13  9:38         ` sbabic at denx.de
  2019-03-24 21:42           ` Marcel Ziswiler
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v2, 11/23] apalis_imx6: migrate mmc and sata to using driver model sbabic at denx.de
                           ` (31 subsequent siblings)
  76 siblings, 1 reply; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:38 UTC (permalink / raw)
  To: u-boot

> From: Gerard Salvatella <gerard.salvatella@toradex.com>
> The PMIC on the Colibri iMX6 may have ECC errors in fuses that will
> prevent correct settings. Up to one bit error per fuse bank can be
> reported and corrected by the ECC logic. Two bit errors can only be
> reported.
> Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  [U-Boot, v2, 11/23] apalis_imx6: migrate mmc and sata to using driver model
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (44 preceding siblings ...)
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 26/26] board: colibri_imx6: check for and report ecc errors in fuses sbabic at denx.de
@ 2019-03-13  9:38         ` sbabic at denx.de
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 04/26] colibri_imx6: enable fit image, gpt, imx thermal, efi loader support sbabic at denx.de
                           ` (30 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:38 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Migrate MMC and SATA to using driver model.
> While at it also enable SCSI driver model.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v1, 20/26] colibri_imx6: revert fuse value set in mfgr_fuse
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (51 preceding siblings ...)
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 07/26] colibri_imx6: clean-up and migrate gpios to using driver model sbabic at denx.de
@ 2019-03-13  9:38         ` sbabic at denx.de
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v2, 17/23] apalis_imx6: pf0100: reorder and cleanup message printing sbabic at denx.de
                           ` (23 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:38 UTC (permalink / raw)
  To: u-boot

> From: Max Krummenacher <max.krummenacher@toradex.com>
> We have two commands to change the bootmode fuses:
> mfgr_fuse which set fuse 0/5 and 0/6
> and
> updt_fuse which burns bit 4 of 0/5.
> Before Image 2.6 we fused in mfgr_fuse 0x5062, which boots
> from the user partition of the eMMC.
> To workaround certain hangs we moved to fastboot mode and
> using the first bootpartition of the eMMC requiring a fuse
> value of 0x5072 which could be achived by the then added
> updt_fuse command. At the same time the mfgr_fuse command
> was changed to also fuse 0x5072, revert that second change
> so that one can fuse both values, one with just mfgr_fuse
> and the later with mfgr_fuse;updt_fuse.
> Note that the mfgr_fuse command is only needed at module
> production time, a customer might need to use updt_fuse
> when upgrading an older module to be compatible with a
> newer image. The command is integrated into the image
> update scripts.
> Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
> Acked-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v1, 07/26] colibri_imx6: clean-up and migrate gpios to using driver model
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (50 preceding siblings ...)
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 01/26] colibri_imx6: get rid of obsolete nospl configurations sbabic at denx.de
@ 2019-03-13  9:38         ` sbabic at denx.de
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 20/26] colibri_imx6: revert fuse value set in mfgr_fuse sbabic at denx.de
                           ` (24 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:38 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Migrate GPIOs to using driver model, properly request backlight, MMC/SD
> card detect and USB power enable GPIOs and also enable SION bit in pin
> muxing for auxiliary, backlight and USB power enable GPIOs.
> While at it also update copyright year, clean-up/re-order includes, add
> some comments clarifying ifdef scope and do some white-space clean-up.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v1, 09/26] colibri_imx6: migrate i2c to using driver model
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (46 preceding siblings ...)
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 04/26] colibri_imx6: enable fit image, gpt, imx thermal, efi loader support sbabic at denx.de
@ 2019-03-13  9:38         ` sbabic at denx.de
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 16/26] colibri_imx6: unify sd/mmc drive strenght with linux kernel settings sbabic at denx.de
                           ` (28 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:38 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Migrate I2C to using driver model.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v1, 16/26] colibri_imx6: unify sd/mmc drive strenght with linux kernel settings
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (47 preceding siblings ...)
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 09/26] colibri_imx6: migrate i2c to using driver model sbabic at denx.de
@ 2019-03-13  9:38         ` sbabic at denx.de
  2019-03-13  9:38         ` [U-Boot] [U-Boot,v2,08/23] apalis_imx6: enable pin control driver sbabic at denx.de
                           ` (27 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:38 UTC (permalink / raw)
  To: u-boot

> From: Max Krummenacher <max.krummenacher@toradex.com>
> In the linux device tree we use 40Ohm drive strenght. So use the same
> value in U-Boot.
> Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,v2,08/23] apalis_imx6: enable pin control driver
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (48 preceding siblings ...)
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 16/26] colibri_imx6: unify sd/mmc drive strenght with linux kernel settings sbabic at denx.de
@ 2019-03-13  9:38         ` sbabic at denx.de
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 01/26] colibri_imx6: get rid of obsolete nospl configurations sbabic at denx.de
                           ` (26 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:38 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Enable pin control driver as required for further driver model
> migration.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v1, 04/26] colibri_imx6: enable fit image, gpt, imx thermal, efi loader support
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (45 preceding siblings ...)
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v2, 11/23] apalis_imx6: migrate mmc and sata to using driver model sbabic at denx.de
@ 2019-03-13  9:38         ` sbabic at denx.de
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 09/26] colibri_imx6: migrate i2c to using driver model sbabic at denx.de
                           ` (29 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:38 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Enbale FIT image, GPT command, i.MX thermal and EFI loader support.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  [U-Boot, v1, 01/26] colibri_imx6: get rid of obsolete nospl configurations
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (49 preceding siblings ...)
  2019-03-13  9:38         ` [U-Boot] [U-Boot,v2,08/23] apalis_imx6: enable pin control driver sbabic at denx.de
@ 2019-03-13  9:38         ` sbabic at denx.de
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 07/26] colibri_imx6: clean-up and migrate gpios to using driver model sbabic at denx.de
                           ` (25 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:38 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Now with SPL long since being in place even for recovery using SDP
> finally get rid of those nospl configurations.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 23/23] board: apalis_imx6: check for and report ecc errors in fuses
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (55 preceding siblings ...)
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v2, 05/23] apalis_imx6: remove obsolete USB_GADGET_MASS_STORAGE configuration sbabic at denx.de
@ 2019-03-13  9:38         ` sbabic at denx.de
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v2, 04/23] apalis_imx6: enable fit image, gpt, imx thermal, efi loader support sbabic at denx.de
                           ` (19 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:38 UTC (permalink / raw)
  To: u-boot

> From: Gerard Salvatella <gerard.salvatella@toradex.com>
> The PMIC on Apalis iMX6 may have ECC errors in fuses that will prevent
> correct settings. Up to one bit error per fuse bank may be reported and
> corrected by the ECC logic. Two bit errors can only be reported.
> Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 05/23] apalis_imx6: remove obsolete USB_GADGET_MASS_STORAGE configuration
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (54 preceding siblings ...)
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 13/26] colibri_imx6: drop CONFIG_OF_SYSTEM_SETUP sbabic at denx.de
@ 2019-03-13  9:38         ` sbabic at denx.de
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v2, 23/23] board: apalis_imx6: check for and report ecc errors in fuses sbabic at denx.de
                           ` (20 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:38 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Remove obsolete USB_GADGET_MASS_STORAGE configuration.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v1, 13/26] colibri_imx6: drop CONFIG_OF_SYSTEM_SETUP
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (53 preceding siblings ...)
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v2, 17/23] apalis_imx6: pf0100: reorder and cleanup message printing sbabic at denx.de
@ 2019-03-13  9:38         ` sbabic at denx.de
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v2, 05/23] apalis_imx6: remove obsolete USB_GADGET_MASS_STORAGE configuration sbabic at denx.de
                           ` (21 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:38 UTC (permalink / raw)
  To: u-boot

> From: Max Krummenacher <max.krummenacher@toradex.com>
> This doesn't do anything anymore, probably never did.
> Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 04/23] apalis_imx6: enable fit image, gpt, imx thermal, efi loader support
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (56 preceding siblings ...)
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v2, 23/23] board: apalis_imx6: check for and report ecc errors in fuses sbabic at denx.de
@ 2019-03-13  9:38         ` sbabic at denx.de
  2019-04-01  8:52         ` [U-Boot] [U-Boot,13/17] imx6: wandboard: convert to DM_USB sbabic at denx.de
                           ` (18 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:38 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Enbale FIT image, GPT command, i.MX thermal and EFI loader support.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  [U-Boot, v2, 17/23] apalis_imx6: pf0100: reorder and cleanup message printing
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (52 preceding siblings ...)
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 20/26] colibri_imx6: revert fuse value set in mfgr_fuse sbabic at denx.de
@ 2019-03-13  9:38         ` sbabic at denx.de
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 13/26] colibri_imx6: drop CONFIG_OF_SYSTEM_SETUP sbabic at denx.de
                           ` (22 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:38 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Keep debug code at the end of the function.
> Use a one line informational message for the PMIC only.
> Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 21/23] apalis_imx6: use SDP if USB serial downloader has been used
       [not found]   ` <stefan.agner@toradex.com>
                       ` (4 preceding siblings ...)
       [not found]     ` <marcel.ziswiler@toradex.com>
@ 2019-03-13  9:38     ` sbabic at denx.de
  2019-04-01  8:52     ` [U-Boot] [U-Boot, v2, 11/22] colibri_vf: migrate fec, esdhc, nfc and usb to driver model sbabic at denx.de
                       ` (36 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:38 UTC (permalink / raw)
  To: u-boot

> From: Stefan Agner <stefan.agner@toradex.com>
> In case USB serial downloader has been used to load U-Boot start the
> serial download protocol (SDP) emulation. This allows to download
> complete images such as Toradex Easy Installer over USB SDP as well.
> This code uses the boot ROM provided boot information to reliably
> detect USB serial downloader.
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  [U-Boot, v4, 20/22] pcm052: board: Add code to setup LED default states
       [not found]     ` <marcel.ziswiler@toradex.com>
                         ` (15 preceding siblings ...)
  2019-03-13  9:38       ` [U-Boot] [U-Boot, v4, 03/22] vybrid: ddr: Extend vf610-pinfunc.h with DDR pads definitions sbabic at denx.de
@ 2019-03-13  9:47       ` sbabic at denx.de
  2019-03-13  9:47       ` [U-Boot] [U-Boot, v4, 01/22] net: FEC: Add compatible for vybrid (vf610) to reuse fec_mxc.c driver sbabic at denx.de
                         ` (4 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:47 UTC (permalink / raw)
  To: u-boot

> As one has moved to DM based LEDs, this code is required to setup the
> default state.
> Signed-off-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v4, 02/22] net: Kconfig: FEC: Add dependency on VF610
       [not found]     ` <marcel.ziswiler@toradex.com>
                         ` (17 preceding siblings ...)
  2019-03-13  9:47       ` [U-Boot] [U-Boot, v4, 01/22] net: FEC: Add compatible for vybrid (vf610) to reuse fec_mxc.c driver sbabic at denx.de
@ 2019-03-13  9:47       ` sbabic at denx.de
  2019-03-13  9:47       ` [U-Boot] [U-Boot, v4, 08/22] pcm052: board: vybrid: Update the board name for BK4 device sbabic at denx.de
                         ` (2 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:47 UTC (permalink / raw)
  To: u-boot

> Signed-off-by: Lukasz Majewski <lukma@denx.de>
> Reviewed-by: Stefan Agner <stefan.agner@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v4, 08/22] pcm052: board: vybrid: Update the board name for BK4 device
       [not found]     ` <marcel.ziswiler@toradex.com>
                         ` (18 preceding siblings ...)
  2019-03-13  9:47       ` [U-Boot] [U-Boot, v4, 02/22] net: Kconfig: FEC: Add dependency on VF610 sbabic at denx.de
@ 2019-03-13  9:47       ` sbabic at denx.de
  2019-03-13  9:47       ` [U-Boot] [U-Boot, v4, 22/22] pcm052: bk4: Add board_phy_config() for BK4 to setup ksz8081 phy sbabic at denx.de
  2019-04-01  8:59       ` [U-Boot] [U-Boot, v2, 08/22] ARM: dts: colibri_vf: update device trees sbabic at denx.de
  21 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:47 UTC (permalink / raw)
  To: u-boot

> This commit provides distinction between PCM052 and BK4.
> Signed-off-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v4, 22/22] pcm052: bk4: Add board_phy_config() for BK4 to setup ksz8081 phy
       [not found]     ` <marcel.ziswiler@toradex.com>
                         ` (19 preceding siblings ...)
  2019-03-13  9:47       ` [U-Boot] [U-Boot, v4, 08/22] pcm052: board: vybrid: Update the board name for BK4 device sbabic at denx.de
@ 2019-03-13  9:47       ` sbabic at denx.de
  2019-04-01  8:59       ` [U-Boot] [U-Boot, v2, 08/22] ARM: dts: colibri_vf: update device trees sbabic at denx.de
  21 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:47 UTC (permalink / raw)
  To: u-boot

> BK4 requires setup of 50MHz reference clock for its KSZ8081 PHY devices.
> Signed-off-by: Lukasz Majewski <lukma@denx.de>
> Acked-by: Joe Hershberger <joe.hershberger@ni.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v4, 01/22] net: FEC: Add compatible for vybrid (vf610) to reuse fec_mxc.c driver
       [not found]     ` <marcel.ziswiler@toradex.com>
                         ` (16 preceding siblings ...)
  2019-03-13  9:47       ` [U-Boot] [U-Boot, v4, 20/22] pcm052: board: Add code to setup LED default states sbabic at denx.de
@ 2019-03-13  9:47       ` sbabic at denx.de
  2019-03-13  9:47       ` [U-Boot] [U-Boot, v4, 02/22] net: Kconfig: FEC: Add dependency on VF610 sbabic at denx.de
                         ` (3 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:47 UTC (permalink / raw)
  To: u-boot

> The NXP's FEC driver can be reused on vf610 device (with DM).
> Signed-off-by: Lukasz Majewski <lukma@denx.de>
> Reviewed-by: Stefan Agner <stefan.agner@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [PATCH 01/10] board: tbs2910: Fix default environment
  2019-03-01 12:10 ` [U-Boot] [PATCH 01/10] board: tbs2910: Fix default environment Soeren Moch
@ 2019-03-14 19:16   ` Soeren Moch
  2019-03-14 19:18     ` Stefano Babic
  0 siblings, 1 reply; 654+ messages in thread
From: Soeren Moch @ 2019-03-14 19:16 UTC (permalink / raw)
  To: u-boot

On 01.03.19 13:10, Soeren Moch wrote:
> Especially fix usb keyboard support. Other changes are only for
> beautification.
>
> Signed-off-by: Soeren Moch <smoch@web.de>
> ---
> Cc: Stefano Babic <sbabic@denx.de>
> Cc: u-boot at lists.denx.de
Stefano,

apparently you decided to pull fixes for v2019.04 and DM conversions for
v2019.07. Since this patch (1/10) is a fix, can you at least pull this
now, and the rest of the series later (or for -next)?

Thanks,
Soeren

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

* [U-Boot] [PATCH 01/10] board: tbs2910: Fix default environment
  2019-03-14 19:16   ` Soeren Moch
@ 2019-03-14 19:18     ` Stefano Babic
  0 siblings, 0 replies; 654+ messages in thread
From: Stefano Babic @ 2019-03-14 19:18 UTC (permalink / raw)
  To: u-boot



On 14/03/19 20:16, Soeren Moch wrote:
> On 01.03.19 13:10, Soeren Moch wrote:
>> Especially fix usb keyboard support. Other changes are only for
>> beautification.
>>
>> Signed-off-by: Soeren Moch <smoch@web.de>
>> ---
>> Cc: Stefano Babic <sbabic@denx.de>
>> Cc: u-boot at lists.denx.de
> Stefano,
> 
> apparently you decided to pull fixes for v2019.04 and DM conversions for
> v2019.07.

That is right.

> Since this patch (1/10) is a fix, can you at least pull this
> now, and the rest of the series later (or for -next)?

I pick up 1/10

Regards,
Stefano

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [PATCH RESEND 01/10] pinctrl: imx8: add i.MX8QM compatible
  2019-03-05  2:32 [U-Boot] [PATCH RESEND 01/10] pinctrl: imx8: add i.MX8QM compatible Peng Fan
                   ` (8 preceding siblings ...)
  2019-03-05  2:32 ` [U-Boot] [PATCH RESEND 10/10] imx: support i.MX8QM MEK board Peng Fan
@ 2019-03-18  8:42 ` Peng Fan
  9 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2019-03-18  8:42 UTC (permalink / raw)
  To: u-boot

Ping..

Thanks,
Peng.

> -----Original Message-----
> From: Peng Fan [mailto:peng.fan at nxp.com]
> Sent: 2019年3月5日 10:32
> To: sbabic at denx.de; Fabio Estevam <fabio.estevam@nxp.com>
> Cc: u-boot at lists.denx.de; van.freenix at gmail.com; dl-uboot-imx
> <uboot-imx@nxp.com>; Peng Fan <peng.fan@nxp.com>
> Subject: [PATCH RESEND 01/10] pinctrl: imx8: add i.MX8QM compatible
> 
> Add i.MX8QM compatible
> 
> Signed-off-by: Peng Fan <peng.fan@nxp.com>
> ---
>  drivers/pinctrl/nxp/pinctrl-imx8.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/pinctrl/nxp/pinctrl-imx8.c
> b/drivers/pinctrl/nxp/pinctrl-imx8.c
> index 0738da0ebe..c1b0ca438a 100644
> --- a/drivers/pinctrl/nxp/pinctrl-imx8.c
> +++ b/drivers/pinctrl/nxp/pinctrl-imx8.c
> @@ -25,6 +25,7 @@ static int imx8_pinctrl_probe(struct udevice *dev)
> 
>  static const struct udevice_id imx8_pinctrl_match[] = {
>  	{ .compatible = "fsl,imx8qxp-iomuxc", .data =
> (ulong)&imx8_pinctrl_soc_info },
> +	{ .compatible = "fsl,imx8qm-iomuxc", .data =
> (ulong)&imx8_pinctrl_soc_info },
>  	{ /* sentinel */ }
>  };
> 
> --
> 2.16.4

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

* [U-Boot] [PATCH] imx8qxp: mek: enable dm-spl for pm
  2019-03-07 12:43 [U-Boot] [PATCH] imx8qxp: mek: enable dm-spl for pm Peng Fan
@ 2019-03-18  8:43 ` Peng Fan
  2019-04-09 12:47   ` Peng Fan
  0 siblings, 1 reply; 654+ messages in thread
From: Peng Fan @ 2019-03-18  8:43 UTC (permalink / raw)
  To: u-boot

Hi Stefano,

Are you fine with this patch?

Thanks,
Peng.

> -----Original Message-----
> From: Peng Fan
> Sent: 2019年3月7日 20:44
> To: sbabic at denx.de; festevam at gmail.com
> Cc: dl-uboot-imx <uboot-imx@nxp.com>; u-boot at lists.denx.de; Peng Fan
> <peng.fan@nxp.com>
> Subject: [PATCH] imx8qxp: mek: enable dm-spl for pm
> 
> with u-boot,dm-spl added for imx8qx-pm node, and SPL_SIMPLE_BUS
> enabled, the bind and probe code in board file could be removed.
> 
> Also we need to enlarge SYS_MALLOC_F_LEN to avoid calloc fail.
> 
> Signed-off-by: Peng Fan <peng.fan@nxp.com>
> ---
>  arch/arm/dts/fsl-imx8qxp-mek-u-boot.dtsi |  5 +++++
>  board/freescale/imx8qxp_mek/spl.c        | 15 ---------------
>  configs/imx8qxp_mek_defconfig            |  2 +-
>  3 files changed, 6 insertions(+), 16 deletions(-)
> 
> diff --git a/arch/arm/dts/fsl-imx8qxp-mek-u-boot.dtsi
> b/arch/arm/dts/fsl-imx8qxp-mek-u-boot.dtsi
> index 5d50eb028e..201559008c 100644
> --- a/arch/arm/dts/fsl-imx8qxp-mek-u-boot.dtsi
> +++ b/arch/arm/dts/fsl-imx8qxp-mek-u-boot.dtsi
> @@ -3,6 +3,11 @@
>   * Copyright 2018 NXP
>   */
> 
> +&{/imx8qx-pm} {
> +
> +	u-boot,dm-spl;
> +};
> +
>  &mu {
>  	u-boot,dm-spl;
>  };
> diff --git a/board/freescale/imx8qxp_mek/spl.c
> b/board/freescale/imx8qxp_mek/spl.c
> index 95ce9f37e8..51f323811a 100644
> --- a/board/freescale/imx8qxp_mek/spl.c
> +++ b/board/freescale/imx8qxp_mek/spl.c
> @@ -27,21 +27,6 @@ void spl_board_init(void)
>  			continue;
>  	}
> 
> -	offset = fdt_node_offset_by_compatible(gd->fdt_blob, -1,
> "nxp,imx8-pd");
> -	while (offset != -FDT_ERR_NOTFOUND) {
> -		lists_bind_fdt(gd->dm_root, offset_to_ofnode(offset),
> -			       NULL, true);
> -		offset = fdt_node_offset_by_compatible(gd->fdt_blob, offset,
> -						       "nxp,imx8-pd");
> -	}
> -
> -	uclass_find_first_device(UCLASS_POWER_DOMAIN, &dev);
> -
> -	for (; dev; uclass_find_next_device(&dev)) {
> -		if (device_probe(dev))
> -			continue;
> -	}
> -
>  	arch_cpu_init();
> 
>  	board_early_init_f();
> diff --git a/configs/imx8qxp_mek_defconfig b/configs/imx8qxp_mek_defconfig
> index a94998b8b5..915d8812ad 100644
> --- a/configs/imx8qxp_mek_defconfig
> +++ b/configs/imx8qxp_mek_defconfig
> @@ -4,7 +4,7 @@ CONFIG_SYS_TEXT_BASE=0x80020000
> CONFIG_SPL_GPIO_SUPPORT=y  CONFIG_SPL_LIBCOMMON_SUPPORT=y
> CONFIG_SPL_LIBGENERIC_SUPPORT=y
> -CONFIG_SYS_MALLOC_F_LEN=0x2000
> +CONFIG_SYS_MALLOC_F_LEN=0x4000
>  CONFIG_TARGET_IMX8QXP_MEK=y
>  CONFIG_SPL_MMC_SUPPORT=y
>  CONFIG_SPL_SERIAL_SUPPORT=y
> --
> 2.16.4

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

* [U-Boot] [PATCH 00/17] Convert some imx6 boards to DM_VIDEO
@ 2019-03-18 22:29 Anatolij Gustschin
  2019-03-18 22:29 ` [U-Boot] [PATCH 01/17] video: ipuv3: add DM_VIDEO support Anatolij Gustschin
                   ` (18 more replies)
  0 siblings, 19 replies; 654+ messages in thread
From: Anatolij Gustschin @ 2019-03-18 22:29 UTC (permalink / raw)
  To: u-boot

This series starts conversion of ipuv3 driver to DM_VIDEO.
It has been tested on apalis_imx6 module with LVDS display
attached and on wandboard with HDMI display.

With applied "[PATCH 17/17] imx6: wandboard: convert to DM_MMC"
building wandboard target doesn't work. To fix this please
apply patches [1], [2] and enable CONFIG_AHCI and CONFIG_DM_SCSI
in wandboard_defconfig.

[1] http://patchwork.ozlabs.org/patch/1050141
[2] http://patchwork.ozlabs.org/patch/1050143

Anatolij Gustschin (17):
  video: ipuv3: add DM_VIDEO support
  video: move ipuv3 files to subdirectory
  imx: move CONFIG_VIDEO_IPUV3 to defconfigs
  imx6: dts: add 'u-boot,dm-pre-reloc' to soc and ipu nodes
  apalis_imx6: convert to DM_VIDEO
  imx6: icore: convert to DM_VIDEO
  imx6: ge_bx50v3: convert to DM_VIDEO
  colibri_imx6: convert to DM_VIDEO
  mx6sabresd: convert to DM_VIDEO
  mx6sabreauto: convert to DM_VIDEO
  imx6: wandboard: add device tree
  imx6: wandboard: convert to DM_GPIO and enable pinctrl driver
  imx6: wandboard: convert to DM_USB
  imx6: wandboard: convert to DM_VIDEO
  imx6: wandboard: convert to DM_PMIC
  imx6: wandboard: convert to DM_I2C
  imx6: wandboard: convert to DM_MMC

 arch/arm/dts/imx6dl-wandboard-revb1.dts   |  18 +
 arch/arm/dts/imx6qdl-wandboard-revb1.dtsi |  41 +++
 arch/arm/dts/imx6qdl-wandboard.dtsi       | 380 ++++++++++++++++++++++
 arch/arm/dts/imx6qdl.dtsi                 |   2 +
 arch/arm/include/asm/mach-imx/video.h     |   1 +
 arch/arm/mach-imx/video.c                 |  25 +-
 board/wandboard/MAINTAINERS               |   3 +
 board/wandboard/spl.c                     |  92 ++++++
 board/wandboard/wandboard.c               | 160 +++------
 configs/apalis_imx6_defconfig             |   4 +-
 configs/aristainetos2_defconfig           |   1 +
 configs/aristainetos2b_defconfig          |   1 +
 configs/aristainetos_defconfig            |   1 +
 configs/cgtqmx6eval_defconfig             |   1 +
 configs/cm_fx6_defconfig                  |   1 +
 configs/colibri_imx6_defconfig            |   3 +-
 configs/dms-ba16-1g_defconfig             |   1 +
 configs/dms-ba16_defconfig                |   1 +
 configs/ge_bx50v3_defconfig               |   2 +
 configs/gwventana_emmc_defconfig          |   1 +
 configs/gwventana_gw5904_defconfig        |   1 +
 configs/gwventana_nand_defconfig          |   1 +
 configs/imx6dl_icore_nand_defconfig       |   2 +-
 configs/imx6q_icore_nand_defconfig        |   2 +-
 configs/imx6qdl_icore_mmc_defconfig       |   2 +-
 configs/imx6qdl_icore_nand_defconfig      |   2 +-
 configs/m53menlo_defconfig                |   1 +
 configs/marsboard_defconfig               |   1 +
 configs/mx51evk_defconfig                 |   1 +
 configs/mx53cx9020_defconfig              |   1 +
 configs/mx53loco_defconfig                |   1 +
 configs/mx53ppd_defconfig                 |   1 +
 configs/mx6cuboxi_defconfig               |   1 +
 configs/mx6qsabrelite_defconfig           |   1 +
 configs/mx6sabreauto_defconfig            |   3 +-
 configs/mx6sabresd_defconfig              |   3 +-
 configs/nitrogen6dl2g_defconfig           |   1 +
 configs/nitrogen6dl_defconfig             |   1 +
 configs/nitrogen6q2g_defconfig            |   1 +
 configs/nitrogen6q_defconfig              |   1 +
 configs/nitrogen6s1g_defconfig            |   1 +
 configs/nitrogen6s_defconfig              |   1 +
 configs/novena_defconfig                  |   1 +
 configs/riotboard_defconfig               |   1 +
 configs/riotboard_spl_defconfig           |   1 +
 configs/tbs2910_defconfig                 |   1 +
 configs/wandboard_defconfig               |  18 +-
 drivers/video/Kconfig                     |   9 +-
 drivers/video/Makefile                    |   2 +-
 drivers/video/imx/Kconfig                 |   8 +
 drivers/video/imx/Makefile                |   6 +
 drivers/video/{ => imx}/ipu.h             |   0
 drivers/video/{ => imx}/ipu_common.c      |   0
 drivers/video/{ => imx}/ipu_disp.c        |   0
 drivers/video/{ => imx}/ipu_regs.h        |   0
 drivers/video/{ => imx}/mxc_ipuv3_fb.c    |  89 ++++-
 drivers/video/{ => imx}/mxcfb.h           |   0
 include/configs/advantech_dms-ba16.h      |   1 -
 include/configs/apalis_imx6.h             |   1 -
 include/configs/aristainetos-common.h     |   1 -
 include/configs/cgtqmx6eval.h             |   1 -
 include/configs/cm_fx6.h                  |   1 -
 include/configs/colibri_imx6.h            |   1 -
 include/configs/embestmx6boards.h         |   1 -
 include/configs/ge_bx50v3.h               |   8 -
 include/configs/gw_ventana.h              |   1 -
 include/configs/m53menlo.h                |   1 -
 include/configs/mx51evk.h                 |   1 -
 include/configs/mx53cx9020.h              |   1 -
 include/configs/mx53loco.h                |   1 -
 include/configs/mx53ppd.h                 |   5 -
 include/configs/mx6cuboxi.h               |   1 -
 include/configs/mx6sabre_common.h         |   1 -
 include/configs/nitrogen6x.h              |   1 -
 include/configs/novena.h                  |   1 -
 include/configs/tbs2910.h                 |   1 -
 include/configs/wandboard.h               |  18 -
 77 files changed, 766 insertions(+), 187 deletions(-)
 create mode 100644 arch/arm/dts/imx6dl-wandboard-revb1.dts
 create mode 100644 arch/arm/dts/imx6qdl-wandboard-revb1.dtsi
 create mode 100644 arch/arm/dts/imx6qdl-wandboard.dtsi
 create mode 100644 drivers/video/imx/Kconfig
 create mode 100644 drivers/video/imx/Makefile
 rename drivers/video/{ => imx}/ipu.h (100%)
 rename drivers/video/{ => imx}/ipu_common.c (100%)
 rename drivers/video/{ => imx}/ipu_disp.c (100%)
 rename drivers/video/{ => imx}/ipu_regs.h (100%)
 rename drivers/video/{ => imx}/mxc_ipuv3_fb.c (88%)
 rename drivers/video/{ => imx}/mxcfb.h (100%)

-- 
2.17.1

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

* [U-Boot] [PATCH 01/17] video: ipuv3: add DM_VIDEO support
  2019-03-18 22:29 [U-Boot] [PATCH 00/17] Convert some imx6 boards to DM_VIDEO Anatolij Gustschin
@ 2019-03-18 22:29 ` Anatolij Gustschin
  2019-03-18 22:29 ` [U-Boot] [PATCH 02/17] video: move ipuv3 files to subdirectory Anatolij Gustschin
                   ` (17 subsequent siblings)
  18 siblings, 0 replies; 654+ messages in thread
From: Anatolij Gustschin @ 2019-03-18 22:29 UTC (permalink / raw)
  To: u-boot

Extend the driver to build with DM_VIDEO enabled. DTS files
must additionally include 'u-boot,dm-pre-reloc' property in
soc and ipu nodes to enable driver binding to ipu device.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
---
 arch/arm/include/asm/mach-imx/video.h |  1 +
 arch/arm/mach-imx/video.c             | 25 +++++---
 drivers/video/Kconfig                 | 14 ++---
 drivers/video/mxc_ipuv3_fb.c          | 87 +++++++++++++++++++++++++++
 4 files changed, 113 insertions(+), 14 deletions(-)

diff --git a/arch/arm/include/asm/mach-imx/video.h b/arch/arm/include/asm/mach-imx/video.h
index 812e6f85e4..d1a14ad7d3 100644
--- a/arch/arm/include/asm/mach-imx/video.h
+++ b/arch/arm/include/asm/mach-imx/video.h
@@ -26,4 +26,5 @@ extern size_t display_count;
 #endif
 
 int ipu_set_ldb_clock(int rate);
+int ipu_displays_init(void);
 #endif
diff --git a/arch/arm/mach-imx/video.c b/arch/arm/mach-imx/video.c
index 953fe53cb4..22a371a212 100644
--- a/arch/arm/mach-imx/video.c
+++ b/arch/arm/mach-imx/video.c
@@ -4,6 +4,17 @@
 #include <linux/errno.h>
 #include <asm/mach-imx/video.h>
 
+#ifdef CONFIG_IMX_HDMI
+#include <asm/arch/mxc_hdmi.h>
+#include <asm/io.h>
+
+int detect_hdmi(struct display_info_t const *dev)
+{
+	struct hdmi_regs *hdmi	= (struct hdmi_regs *)HDMI_ARB_BASE_ADDR;
+	return readb(&hdmi->phy_stat0) & HDMI_DVI_STAT;
+}
+#endif
+
 int board_video_skip(void)
 {
 	int i;
@@ -42,6 +53,11 @@ int board_video_skip(void)
 			       displays[i].mode.name,
 			       displays[i].mode.xres,
 			       displays[i].mode.yres);
+
+#ifdef CONFIG_IMX_HDMI
+			if (!strcmp(displays[i].mode.name, "HDMI"))
+				imx_enable_hdmi_phy();
+#endif
 		} else
 			printf("LCD %s cannot be configured: %d\n",
 			       displays[i].mode.name, ret);
@@ -53,12 +69,7 @@ int board_video_skip(void)
 	return ret;
 }
 
-#ifdef CONFIG_IMX_HDMI
-#include <asm/arch/mxc_hdmi.h>
-#include <asm/io.h>
-int detect_hdmi(struct display_info_t const *dev)
+int ipu_displays_init(void)
 {
-	struct hdmi_regs *hdmi	= (struct hdmi_regs *)HDMI_ARB_BASE_ADDR;
-	return readb(&hdmi->phy_stat0) & HDMI_DVI_STAT;
+	return board_video_skip();
 }
-#endif
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 2eac4b6381..73a2402f41 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -538,6 +538,13 @@ config VIDEO_TEGRA124
 
 source "drivers/video/bridge/Kconfig"
 
+config VIDEO_IPUV3
+	bool "i.MX IPUv3 Core video support"
+	depends on (VIDEO || DM_VIDEO) && (MX5 || MX6)
+	help
+	  This enables framebuffer driver for i.MX processors working
+	  on the IPUv3(Image Processing Unit) internal graphic processor.
+
 config VIDEO
 	bool "Enable legacy video support"
 	depends on !DM_VIDEO
@@ -547,13 +554,6 @@ config VIDEO
 	  model. Video drivers typically provide a colour text console and
 	  cursor.
 
-config VIDEO_IPUV3
-	bool "i.MX IPUv3 Core video support"
-	depends on VIDEO && MX6
-	help
-	  This enables framebuffer driver for i.MX processors working
-	  on the IPUv3(Image Processing Unit) internal graphic processor.
-
 config CFB_CONSOLE
 	bool "Enable colour frame buffer console"
 	depends on VIDEO
diff --git a/drivers/video/mxc_ipuv3_fb.c b/drivers/video/mxc_ipuv3_fb.c
index 23cd55de47..5b3ba7b3a9 100644
--- a/drivers/video/mxc_ipuv3_fb.c
+++ b/drivers/video/mxc_ipuv3_fb.c
@@ -17,6 +17,7 @@
 #include <linux/list.h>
 #include <linux/fb.h>
 #include <asm/io.h>
+#include <asm/mach-imx/video.h>
 #include <malloc.h>
 #include <video_fb.h>
 #include "videomodes.h"
@@ -24,6 +25,9 @@
 #include "mxcfb.h"
 #include "ipu_regs.h"
 
+#include <dm.h>
+#include <video.h>
+
 DECLARE_GLOBAL_DATA_PTR;
 
 static int mxcfb_map_video_memory(struct fb_info *fbi);
@@ -401,8 +405,14 @@ static int mxcfb_map_video_memory(struct fb_info *fbi)
 				    fbi->fix.line_length;
 	}
 	fbi->fix.smem_len = roundup(fbi->fix.smem_len, ARCH_DMA_MINALIGN);
+
+#if CONFIG_IS_ENABLED(DM_VIDEO)
+	fbi->screen_base = (char *)gd->video_bottom;
+#else
 	fbi->screen_base = (char *)memalign(ARCH_DMA_MINALIGN,
 					    fbi->fix.smem_len);
+#endif
+
 	fbi->fix.smem_start = (unsigned long)fbi->screen_base;
 	if (fbi->screen_base == 0) {
 		puts("Unable to allocate framebuffer memory\n");
@@ -416,7 +426,9 @@ static int mxcfb_map_video_memory(struct fb_info *fbi)
 
 	fbi->screen_size = fbi->fix.smem_len;
 
+#if CONFIG_IS_ENABLED(VIDEO)
 	gd->fb_base = fbi->fix.smem_start;
+#endif
 
 	/* Clear the screen */
 	memset((char *)fbi->screen_base, 0, fbi->fix.smem_len);
@@ -611,3 +623,78 @@ int ipuv3_fb_init(struct fb_videomode const *mode,
 
 	return 0;
 }
+
+#if CONFIG_IS_ENABLED(DM_VIDEO)
+enum {
+	/* Maximum display size we support */
+	LCD_MAX_WIDTH		= 1920,
+	LCD_MAX_HEIGHT		= 1080,
+	LCD_MAX_LOG2_BPP	= VIDEO_BPP16,
+};
+
+static int ipuv3_video_probe(struct udevice *dev)
+{
+	struct video_uc_platdata *plat = dev_get_uclass_platdata(dev);
+	struct video_priv *uc_priv = dev_get_uclass_priv(dev);
+	u32 fb_start, fb_end;
+	int ret;
+
+	debug("%s() plat: base 0x%lx, size 0x%x\n",
+	      __func__, plat->base, plat->size);
+
+	ret = ipu_probe();
+	if (ret)
+		return ret;
+
+	ret = ipu_displays_init();
+	if (ret < 0)
+		return ret;
+
+	ret = mxcfb_probe(gpixfmt, gdisp, gmode);
+	if (ret < 0)
+		return ret;
+
+	uc_priv->xsize = gmode->xres;
+	uc_priv->ysize = gmode->yres;
+	uc_priv->bpix = LCD_MAX_LOG2_BPP;
+
+	/* Enable dcache for the frame buffer */
+	fb_start = plat->base & ~(MMU_SECTION_SIZE - 1);
+	fb_end = plat->base + plat->size;
+	fb_end = ALIGN(fb_end, 1 << MMU_SECTION_SHIFT);
+	mmu_set_region_dcache_behaviour(fb_start, fb_end - fb_start,
+					DCACHE_WRITEBACK);
+	video_set_flush_dcache(dev, true);
+
+	return 0;
+}
+
+struct ipuv3_video_priv {
+	ulong regs;
+};
+
+static int ipuv3_video_bind(struct udevice *dev)
+{
+	struct video_uc_platdata *plat = dev_get_uclass_platdata(dev);
+
+	plat->size = LCD_MAX_WIDTH * LCD_MAX_HEIGHT *
+		     (1 << LCD_MAX_LOG2_BPP) / 8;
+
+	return 0;
+}
+
+static const struct udevice_id ipuv3_video_ids[] = {
+	{ .compatible = "fsl,imx6q-ipu" },
+	{ }
+};
+
+U_BOOT_DRIVER(ipuv3_video) = {
+	.name	= "ipuv3_video",
+	.id	= UCLASS_VIDEO,
+	.of_match = ipuv3_video_ids,
+	.bind	= ipuv3_video_bind,
+	.probe	= ipuv3_video_probe,
+	.priv_auto_alloc_size = sizeof(struct ipuv3_video_priv),
+	.flags	= DM_FLAG_PRE_RELOC,
+};
+#endif /* CONFIG_DM_VIDEO */
-- 
2.17.1

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

* [U-Boot] [PATCH 02/17] video: move ipuv3 files to subdirectory
  2019-03-18 22:29 [U-Boot] [PATCH 00/17] Convert some imx6 boards to DM_VIDEO Anatolij Gustschin
  2019-03-18 22:29 ` [U-Boot] [PATCH 01/17] video: ipuv3: add DM_VIDEO support Anatolij Gustschin
@ 2019-03-18 22:29 ` Anatolij Gustschin
  2019-03-18 22:29 ` [U-Boot] [PATCH 03/17] imx: move CONFIG_VIDEO_IPUV3 to defconfigs Anatolij Gustschin
                   ` (16 subsequent siblings)
  18 siblings, 0 replies; 654+ messages in thread
From: Anatolij Gustschin @ 2019-03-18 22:29 UTC (permalink / raw)
  To: u-boot

Place ipuv3 files and headers in custom driver subdirectory.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
---
 drivers/video/Kconfig                  | 7 +------
 drivers/video/Makefile                 | 2 +-
 drivers/video/imx/Kconfig              | 8 ++++++++
 drivers/video/imx/Makefile             | 6 ++++++
 drivers/video/{ => imx}/ipu.h          | 0
 drivers/video/{ => imx}/ipu_common.c   | 0
 drivers/video/{ => imx}/ipu_disp.c     | 0
 drivers/video/{ => imx}/ipu_regs.h     | 0
 drivers/video/{ => imx}/mxc_ipuv3_fb.c | 2 +-
 drivers/video/{ => imx}/mxcfb.h        | 0
 10 files changed, 17 insertions(+), 8 deletions(-)
 create mode 100644 drivers/video/imx/Kconfig
 create mode 100644 drivers/video/imx/Makefile
 rename drivers/video/{ => imx}/ipu.h (100%)
 rename drivers/video/{ => imx}/ipu_common.c (100%)
 rename drivers/video/{ => imx}/ipu_disp.c (100%)
 rename drivers/video/{ => imx}/ipu_regs.h (100%)
 rename drivers/video/{ => imx}/mxc_ipuv3_fb.c (99%)
 rename drivers/video/{ => imx}/mxcfb.h (100%)

diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 73a2402f41..53871f864f 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -538,12 +538,7 @@ config VIDEO_TEGRA124
 
 source "drivers/video/bridge/Kconfig"
 
-config VIDEO_IPUV3
-	bool "i.MX IPUv3 Core video support"
-	depends on (VIDEO || DM_VIDEO) && (MX5 || MX6)
-	help
-	  This enables framebuffer driver for i.MX processors working
-	  on the IPUv3(Image Processing Unit) internal graphic processor.
+source "drivers/video/imx/Kconfig"
 
 config VIDEO
 	bool "Enable legacy video support"
diff --git a/drivers/video/Makefile b/drivers/video/Makefile
index 671f037c35..349a207035 100644
--- a/drivers/video/Makefile
+++ b/drivers/video/Makefile
@@ -46,7 +46,7 @@ obj-$(CONFIG_VIDEO_DA8XX) += da8xx-fb.o videomodes.o
 obj-$(CONFIG_VIDEO_DW_HDMI) += dw_hdmi.o
 obj-$(CONFIG_VIDEO_EFI) += efi.o
 obj-$(CONFIG_VIDEO_FSL_DCU_FB) += fsl_dcu_fb.o videomodes.o
-obj-$(CONFIG_VIDEO_IPUV3) += mxc_ipuv3_fb.o ipu_common.o ipu_disp.o
+obj-$(CONFIG_VIDEO_IPUV3) += imx/
 obj-$(CONFIG_VIDEO_IVYBRIDGE_IGD) += ivybridge_igd.o
 obj-$(CONFIG_VIDEO_LCD_ANX9804) += anx9804.o
 obj-$(CONFIG_VIDEO_LCD_HITACHI_TX18D42VM) += hitachi_tx18d42vm_lcd.o
diff --git a/drivers/video/imx/Kconfig b/drivers/video/imx/Kconfig
new file mode 100644
index 0000000000..c33620e075
--- /dev/null
+++ b/drivers/video/imx/Kconfig
@@ -0,0 +1,8 @@
+
+config VIDEO_IPUV3
+	bool "i.MX IPUv3 Core video support"
+	depends on (VIDEO || DM_VIDEO) && (MX5 || MX6)
+	help
+	  This enables framebuffer driver for i.MX processors working
+	  on the IPUv3(Image Processing Unit) internal graphic processor.
+
diff --git a/drivers/video/imx/Makefile b/drivers/video/imx/Makefile
new file mode 100644
index 0000000000..179ea651fe
--- /dev/null
+++ b/drivers/video/imx/Makefile
@@ -0,0 +1,6 @@
+# SPDX-License-Identifier: GPL-2.0+
+#
+# (C) Copyright 2000-2007
+# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+
+obj-y += mxc_ipuv3_fb.o ipu_common.o ipu_disp.o
diff --git a/drivers/video/ipu.h b/drivers/video/imx/ipu.h
similarity index 100%
rename from drivers/video/ipu.h
rename to drivers/video/imx/ipu.h
diff --git a/drivers/video/ipu_common.c b/drivers/video/imx/ipu_common.c
similarity index 100%
rename from drivers/video/ipu_common.c
rename to drivers/video/imx/ipu_common.c
diff --git a/drivers/video/ipu_disp.c b/drivers/video/imx/ipu_disp.c
similarity index 100%
rename from drivers/video/ipu_disp.c
rename to drivers/video/imx/ipu_disp.c
diff --git a/drivers/video/ipu_regs.h b/drivers/video/imx/ipu_regs.h
similarity index 100%
rename from drivers/video/ipu_regs.h
rename to drivers/video/imx/ipu_regs.h
diff --git a/drivers/video/mxc_ipuv3_fb.c b/drivers/video/imx/mxc_ipuv3_fb.c
similarity index 99%
rename from drivers/video/mxc_ipuv3_fb.c
rename to drivers/video/imx/mxc_ipuv3_fb.c
index 5b3ba7b3a9..3e38d4bdcc 100644
--- a/drivers/video/mxc_ipuv3_fb.c
+++ b/drivers/video/imx/mxc_ipuv3_fb.c
@@ -20,7 +20,7 @@
 #include <asm/mach-imx/video.h>
 #include <malloc.h>
 #include <video_fb.h>
-#include "videomodes.h"
+#include "../videomodes.h"
 #include "ipu.h"
 #include "mxcfb.h"
 #include "ipu_regs.h"
diff --git a/drivers/video/mxcfb.h b/drivers/video/imx/mxcfb.h
similarity index 100%
rename from drivers/video/mxcfb.h
rename to drivers/video/imx/mxcfb.h
-- 
2.17.1

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

* [U-Boot] [PATCH 03/17] imx: move CONFIG_VIDEO_IPUV3 to defconfigs
  2019-03-18 22:29 [U-Boot] [PATCH 00/17] Convert some imx6 boards to DM_VIDEO Anatolij Gustschin
  2019-03-18 22:29 ` [U-Boot] [PATCH 01/17] video: ipuv3: add DM_VIDEO support Anatolij Gustschin
  2019-03-18 22:29 ` [U-Boot] [PATCH 02/17] video: move ipuv3 files to subdirectory Anatolij Gustschin
@ 2019-03-18 22:29 ` Anatolij Gustschin
  2019-03-18 22:29 ` [U-Boot] [PATCH 04/17] imx6: dts: add 'u-boot, dm-pre-reloc' to soc and ipu nodes Anatolij Gustschin
                   ` (15 subsequent siblings)
  18 siblings, 0 replies; 654+ messages in thread
From: Anatolij Gustschin @ 2019-03-18 22:29 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Anatolij Gustschin <agust@denx.de>
---
 configs/apalis_imx6_defconfig         | 1 +
 configs/aristainetos2_defconfig       | 1 +
 configs/aristainetos2b_defconfig      | 1 +
 configs/aristainetos_defconfig        | 1 +
 configs/cgtqmx6eval_defconfig         | 1 +
 configs/cm_fx6_defconfig              | 1 +
 configs/colibri_imx6_defconfig        | 1 +
 configs/dms-ba16-1g_defconfig         | 1 +
 configs/dms-ba16_defconfig            | 1 +
 configs/ge_bx50v3_defconfig           | 2 ++
 configs/gwventana_emmc_defconfig      | 1 +
 configs/gwventana_gw5904_defconfig    | 1 +
 configs/gwventana_nand_defconfig      | 1 +
 configs/m53menlo_defconfig            | 1 +
 configs/marsboard_defconfig           | 1 +
 configs/mx51evk_defconfig             | 1 +
 configs/mx53cx9020_defconfig          | 1 +
 configs/mx53loco_defconfig            | 1 +
 configs/mx53ppd_defconfig             | 1 +
 configs/mx6cuboxi_defconfig           | 1 +
 configs/mx6qsabrelite_defconfig       | 1 +
 configs/mx6sabreauto_defconfig        | 1 +
 configs/mx6sabresd_defconfig          | 1 +
 configs/nitrogen6dl2g_defconfig       | 1 +
 configs/nitrogen6dl_defconfig         | 1 +
 configs/nitrogen6q2g_defconfig        | 1 +
 configs/nitrogen6q_defconfig          | 1 +
 configs/nitrogen6s1g_defconfig        | 1 +
 configs/nitrogen6s_defconfig          | 1 +
 configs/novena_defconfig              | 1 +
 configs/riotboard_defconfig           | 1 +
 configs/riotboard_spl_defconfig       | 1 +
 configs/tbs2910_defconfig             | 1 +
 configs/wandboard_defconfig           | 1 +
 include/configs/advantech_dms-ba16.h  | 1 -
 include/configs/apalis_imx6.h         | 1 -
 include/configs/aristainetos-common.h | 1 -
 include/configs/cgtqmx6eval.h         | 1 -
 include/configs/cm_fx6.h              | 1 -
 include/configs/colibri_imx6.h        | 1 -
 include/configs/embestmx6boards.h     | 1 -
 include/configs/ge_bx50v3.h           | 6 ------
 include/configs/gw_ventana.h          | 1 -
 include/configs/m53menlo.h            | 1 -
 include/configs/mx51evk.h             | 1 -
 include/configs/mx53cx9020.h          | 1 -
 include/configs/mx53loco.h            | 1 -
 include/configs/mx53ppd.h             | 5 -----
 include/configs/mx6cuboxi.h           | 1 -
 include/configs/mx6sabre_common.h     | 1 -
 include/configs/nitrogen6x.h          | 1 -
 include/configs/novena.h              | 1 -
 include/configs/tbs2910.h             | 1 -
 include/configs/wandboard.h           | 1 -
 54 files changed, 35 insertions(+), 29 deletions(-)

diff --git a/configs/apalis_imx6_defconfig b/configs/apalis_imx6_defconfig
index 1ab5edc966..60ca8a5147 100644
--- a/configs/apalis_imx6_defconfig
+++ b/configs/apalis_imx6_defconfig
@@ -82,5 +82,6 @@ CONFIG_CI_UDC=y
 CONFIG_USB_GADGET_DOWNLOAD=y
 CONFIG_USB_HOST_ETHER=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 CONFIG_FAT_WRITE=y
 CONFIG_OF_LIBFDT_OVERLAY=y
diff --git a/configs/aristainetos2_defconfig b/configs/aristainetos2_defconfig
index f7de4e3b9a..60be6ba17b 100644
--- a/configs/aristainetos2_defconfig
+++ b/configs/aristainetos2_defconfig
@@ -51,6 +51,7 @@ CONFIG_MXC_SPI=y
 CONFIG_USB=y
 CONFIG_USB_STORAGE=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_IMX_WATCHDOG=y
 CONFIG_OF_LIBFDT=y
diff --git a/configs/aristainetos2b_defconfig b/configs/aristainetos2b_defconfig
index ff21f1f2c4..64f56ab58e 100644
--- a/configs/aristainetos2b_defconfig
+++ b/configs/aristainetos2b_defconfig
@@ -51,6 +51,7 @@ CONFIG_MXC_SPI=y
 CONFIG_USB=y
 CONFIG_USB_STORAGE=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_IMX_WATCHDOG=y
 CONFIG_OF_LIBFDT=y
diff --git a/configs/aristainetos_defconfig b/configs/aristainetos_defconfig
index 950f9f6baa..757d6ccb42 100644
--- a/configs/aristainetos_defconfig
+++ b/configs/aristainetos_defconfig
@@ -50,6 +50,7 @@ CONFIG_MXC_SPI=y
 CONFIG_USB=y
 CONFIG_USB_STORAGE=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_IMX_WATCHDOG=y
 CONFIG_OF_LIBFDT=y
diff --git a/configs/cgtqmx6eval_defconfig b/configs/cgtqmx6eval_defconfig
index 99c581b2de..fb99c6c73c 100644
--- a/configs/cgtqmx6eval_defconfig
+++ b/configs/cgtqmx6eval_defconfig
@@ -72,5 +72,6 @@ CONFIG_CI_UDC=y
 CONFIG_USB_HOST_ETHER=y
 CONFIG_USB_ETHER_ASIX=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_OF_LIBFDT=y
diff --git a/configs/cm_fx6_defconfig b/configs/cm_fx6_defconfig
index c8d1e83111..abdfc7f705 100644
--- a/configs/cm_fx6_defconfig
+++ b/configs/cm_fx6_defconfig
@@ -76,4 +76,5 @@ CONFIG_DM_USB=y
 CONFIG_USB_KEYBOARD=y
 CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 CONFIG_FDT_FIXUP_PARTITIONS=y
diff --git a/configs/colibri_imx6_defconfig b/configs/colibri_imx6_defconfig
index df5a7be39f..611f9f0950 100644
--- a/configs/colibri_imx6_defconfig
+++ b/configs/colibri_imx6_defconfig
@@ -78,5 +78,6 @@ CONFIG_CI_UDC=y
 CONFIG_USB_GADGET_DOWNLOAD=y
 CONFIG_USB_HOST_ETHER=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 CONFIG_FAT_WRITE=y
 CONFIG_OF_LIBFDT_OVERLAY=y
diff --git a/configs/dms-ba16-1g_defconfig b/configs/dms-ba16-1g_defconfig
index a2f4395b9e..845e75f145 100644
--- a/configs/dms-ba16-1g_defconfig
+++ b/configs/dms-ba16-1g_defconfig
@@ -51,5 +51,6 @@ CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
 CONFIG_CI_UDC=y
 CONFIG_USB_GADGET_DOWNLOAD=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_OF_LIBFDT=y
diff --git a/configs/dms-ba16_defconfig b/configs/dms-ba16_defconfig
index 2784c1268e..c04786a974 100644
--- a/configs/dms-ba16_defconfig
+++ b/configs/dms-ba16_defconfig
@@ -50,5 +50,6 @@ CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
 CONFIG_CI_UDC=y
 CONFIG_USB_GADGET_DOWNLOAD=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_OF_LIBFDT=y
diff --git a/configs/ge_bx50v3_defconfig b/configs/ge_bx50v3_defconfig
index 22349a08c7..91782b06a8 100644
--- a/configs/ge_bx50v3_defconfig
+++ b/configs/ge_bx50v3_defconfig
@@ -60,3 +60,5 @@ CONFIG_DM_GPIO=y
 CONFIG_DM_SPI=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_OF_BOARD_SETUP=y
+CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
diff --git a/configs/gwventana_emmc_defconfig b/configs/gwventana_emmc_defconfig
index 07171c7009..2e04127014 100644
--- a/configs/gwventana_emmc_defconfig
+++ b/configs/gwventana_emmc_defconfig
@@ -84,6 +84,7 @@ CONFIG_USB_HOST_ETHER=y
 CONFIG_USB_ETHER_ASIX=y
 CONFIG_USB_ETHER_SMSC95XX=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_HEXDUMP=y
 CONFIG_OF_LIBFDT=y
diff --git a/configs/gwventana_gw5904_defconfig b/configs/gwventana_gw5904_defconfig
index 0ed2209e3b..275aa89ed6 100644
--- a/configs/gwventana_gw5904_defconfig
+++ b/configs/gwventana_gw5904_defconfig
@@ -88,6 +88,7 @@ CONFIG_USB_HOST_ETHER=y
 CONFIG_USB_ETHER_ASIX=y
 CONFIG_USB_ETHER_SMSC95XX=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_HEXDUMP=y
 CONFIG_OF_LIBFDT=y
diff --git a/configs/gwventana_nand_defconfig b/configs/gwventana_nand_defconfig
index 57e4a999ab..477d205bc3 100644
--- a/configs/gwventana_nand_defconfig
+++ b/configs/gwventana_nand_defconfig
@@ -87,6 +87,7 @@ CONFIG_USB_HOST_ETHER=y
 CONFIG_USB_ETHER_ASIX=y
 CONFIG_USB_ETHER_SMSC95XX=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_HEXDUMP=y
 CONFIG_OF_LIBFDT=y
diff --git a/configs/m53menlo_defconfig b/configs/m53menlo_defconfig
index 5555e05030..e830b2c92e 100644
--- a/configs/m53menlo_defconfig
+++ b/configs/m53menlo_defconfig
@@ -64,6 +64,7 @@ CONFIG_USB_ETHER_ASIX=y
 CONFIG_USB_ETHER_MCS7830=y
 CONFIG_USB_ETHER_SMSC95XX=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_IMX_WATCHDOG=y
 CONFIG_FAT_WRITE=y
diff --git a/configs/marsboard_defconfig b/configs/marsboard_defconfig
index 48bec11c10..30d765946e 100644
--- a/configs/marsboard_defconfig
+++ b/configs/marsboard_defconfig
@@ -33,5 +33,6 @@ CONFIG_USB=y
 CONFIG_USB_HOST_ETHER=y
 CONFIG_USB_ETHER_ASIX=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_OF_LIBFDT=y
diff --git a/configs/mx51evk_defconfig b/configs/mx51evk_defconfig
index e93e81f3c3..dc0b3b3f77 100644
--- a/configs/mx51evk_defconfig
+++ b/configs/mx51evk_defconfig
@@ -31,5 +31,6 @@ CONFIG_USB_HOST_ETHER=y
 CONFIG_USB_ETHER_ASIX=y
 CONFIG_USB_ETHER_SMSC95XX=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_OF_LIBFDT=y
diff --git a/configs/mx53cx9020_defconfig b/configs/mx53cx9020_defconfig
index 07f3a23028..831d50925f 100644
--- a/configs/mx53cx9020_defconfig
+++ b/configs/mx53cx9020_defconfig
@@ -32,4 +32,5 @@ CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX5=y
 CONFIG_MXC_UART=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
diff --git a/configs/mx53loco_defconfig b/configs/mx53loco_defconfig
index 4e161371e3..776fc8bab4 100644
--- a/configs/mx53loco_defconfig
+++ b/configs/mx53loco_defconfig
@@ -32,5 +32,6 @@ CONFIG_USB_ETHER_ASIX=y
 CONFIG_USB_ETHER_MCS7830=y
 CONFIG_USB_ETHER_SMSC95XX=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_OF_LIBFDT=y
diff --git a/configs/mx53ppd_defconfig b/configs/mx53ppd_defconfig
index db31d817aa..2a6183b77b 100644
--- a/configs/mx53ppd_defconfig
+++ b/configs/mx53ppd_defconfig
@@ -39,6 +39,7 @@ CONFIG_RTC_S35392A=y
 CONFIG_USB=y
 CONFIG_USB_STORAGE=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_IMX_WATCHDOG=y
 CONFIG_OF_LIBFDT=y
diff --git a/configs/mx6cuboxi_defconfig b/configs/mx6cuboxi_defconfig
index 506e3a71df..f1c2fd4dba 100644
--- a/configs/mx6cuboxi_defconfig
+++ b/configs/mx6cuboxi_defconfig
@@ -39,5 +39,6 @@ CONFIG_DM_THERMAL=y
 CONFIG_USB=y
 CONFIG_USB_KEYBOARD=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_OF_LIBFDT=y
diff --git a/configs/mx6qsabrelite_defconfig b/configs/mx6qsabrelite_defconfig
index 2666340615..3d0e57d087 100644
--- a/configs/mx6qsabrelite_defconfig
+++ b/configs/mx6qsabrelite_defconfig
@@ -55,5 +55,6 @@ CONFIG_CI_UDC=y
 CONFIG_USB_ETHER=y
 CONFIG_USB_ETH_CDC=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_OF_LIBFDT=y
diff --git a/configs/mx6sabreauto_defconfig b/configs/mx6sabreauto_defconfig
index f51b5af7ab..e52ad368d2 100644
--- a/configs/mx6sabreauto_defconfig
+++ b/configs/mx6sabreauto_defconfig
@@ -83,4 +83,5 @@ CONFIG_USB_GADGET_DOWNLOAD=y
 CONFIG_USB_HOST_ETHER=y
 CONFIG_USB_ETHER_ASIX=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
diff --git a/configs/mx6sabresd_defconfig b/configs/mx6sabresd_defconfig
index ac879a3d20..ea34217e1c 100644
--- a/configs/mx6sabresd_defconfig
+++ b/configs/mx6sabresd_defconfig
@@ -94,4 +94,5 @@ CONFIG_CI_UDC=y
 CONFIG_USB_HOST_ETHER=y
 CONFIG_USB_ETHER_ASIX=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
diff --git a/configs/nitrogen6dl2g_defconfig b/configs/nitrogen6dl2g_defconfig
index af59a71d3b..a5c1e7a492 100644
--- a/configs/nitrogen6dl2g_defconfig
+++ b/configs/nitrogen6dl2g_defconfig
@@ -57,5 +57,6 @@ CONFIG_CI_UDC=y
 CONFIG_USB_ETHER=y
 CONFIG_USB_ETH_CDC=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_OF_LIBFDT=y
diff --git a/configs/nitrogen6dl_defconfig b/configs/nitrogen6dl_defconfig
index 9072c04446..6fe9e9da20 100644
--- a/configs/nitrogen6dl_defconfig
+++ b/configs/nitrogen6dl_defconfig
@@ -57,5 +57,6 @@ CONFIG_CI_UDC=y
 CONFIG_USB_ETHER=y
 CONFIG_USB_ETH_CDC=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_OF_LIBFDT=y
diff --git a/configs/nitrogen6q2g_defconfig b/configs/nitrogen6q2g_defconfig
index b92d27a475..b8fb34ca25 100644
--- a/configs/nitrogen6q2g_defconfig
+++ b/configs/nitrogen6q2g_defconfig
@@ -59,5 +59,6 @@ CONFIG_CI_UDC=y
 CONFIG_USB_ETHER=y
 CONFIG_USB_ETH_CDC=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_OF_LIBFDT=y
diff --git a/configs/nitrogen6q_defconfig b/configs/nitrogen6q_defconfig
index 3b8cc6ad2f..3c4c386101 100644
--- a/configs/nitrogen6q_defconfig
+++ b/configs/nitrogen6q_defconfig
@@ -59,5 +59,6 @@ CONFIG_CI_UDC=y
 CONFIG_USB_ETHER=y
 CONFIG_USB_ETH_CDC=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_OF_LIBFDT=y
diff --git a/configs/nitrogen6s1g_defconfig b/configs/nitrogen6s1g_defconfig
index 36cfe2196c..9c0356b3a9 100644
--- a/configs/nitrogen6s1g_defconfig
+++ b/configs/nitrogen6s1g_defconfig
@@ -57,5 +57,6 @@ CONFIG_CI_UDC=y
 CONFIG_USB_ETHER=y
 CONFIG_USB_ETH_CDC=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_OF_LIBFDT=y
diff --git a/configs/nitrogen6s_defconfig b/configs/nitrogen6s_defconfig
index 40c09d7ab6..dc104bab56 100644
--- a/configs/nitrogen6s_defconfig
+++ b/configs/nitrogen6s_defconfig
@@ -57,5 +57,6 @@ CONFIG_CI_UDC=y
 CONFIG_USB_ETHER=y
 CONFIG_USB_ETH_CDC=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_OF_LIBFDT=y
diff --git a/configs/novena_defconfig b/configs/novena_defconfig
index 4c9c1cb9eb..103d9183cb 100644
--- a/configs/novena_defconfig
+++ b/configs/novena_defconfig
@@ -58,6 +58,7 @@ CONFIG_USB_HOST_ETHER=y
 CONFIG_USB_ETHER_ASIX=y
 CONFIG_USB_ETHER_SMSC95XX=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_FAT_WRITE=y
 CONFIG_OF_LIBFDT=y
diff --git a/configs/riotboard_defconfig b/configs/riotboard_defconfig
index a9191ad846..cdfc5c6a16 100644
--- a/configs/riotboard_defconfig
+++ b/configs/riotboard_defconfig
@@ -33,5 +33,6 @@ CONFIG_USB=y
 CONFIG_USB_HOST_ETHER=y
 CONFIG_USB_ETHER_ASIX=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_OF_LIBFDT=y
diff --git a/configs/riotboard_spl_defconfig b/configs/riotboard_spl_defconfig
index 2298d5b615..8d67599469 100644
--- a/configs/riotboard_spl_defconfig
+++ b/configs/riotboard_spl_defconfig
@@ -42,6 +42,7 @@ CONFIG_USB=y
 CONFIG_USB_HOST_ETHER=y
 CONFIG_USB_ETHER_ASIX=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_OF_LIBFDT=y
 CONFIG_SPL_OF_LIBFDT=y
diff --git a/configs/tbs2910_defconfig b/configs/tbs2910_defconfig
index 78beb9a522..ad37daa98f 100644
--- a/configs/tbs2910_defconfig
+++ b/configs/tbs2910_defconfig
@@ -55,4 +55,5 @@ CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
 CONFIG_CI_UDC=y
 CONFIG_USB_GADGET_DOWNLOAD=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 CONFIG_OF_LIBFDT=y
diff --git a/configs/wandboard_defconfig b/configs/wandboard_defconfig
index 5725487446..9a67e63132 100644
--- a/configs/wandboard_defconfig
+++ b/configs/wandboard_defconfig
@@ -42,5 +42,6 @@ CONFIG_MII=y
 CONFIG_DM_THERMAL=y
 CONFIG_USB=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_OF_LIBFDT=y
diff --git a/include/configs/advantech_dms-ba16.h b/include/configs/advantech_dms-ba16.h
index 0c9de6125d..382750986d 100644
--- a/include/configs/advantech_dms-ba16.h
+++ b/include/configs/advantech_dms-ba16.h
@@ -227,7 +227,6 @@
 
 /* Framebuffer */
 #ifdef CONFIG_VIDEO
-#define CONFIG_VIDEO_IPUV3
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_SPLASH_SCREEN
 #define CONFIG_SPLASH_SCREEN_ALIGN
diff --git a/include/configs/apalis_imx6.h b/include/configs/apalis_imx6.h
index c8aa1bdddf..fc72a55255 100644
--- a/include/configs/apalis_imx6.h
+++ b/include/configs/apalis_imx6.h
@@ -80,7 +80,6 @@
 #define CONFIG_USBD_HS
 
 /* Framebuffer and LCD */
-#define CONFIG_VIDEO_IPUV3
 #define CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_SPLASH_SCREEN
diff --git a/include/configs/aristainetos-common.h b/include/configs/aristainetos-common.h
index ca974c015f..3d0e7cf5d9 100644
--- a/include/configs/aristainetos-common.h
+++ b/include/configs/aristainetos-common.h
@@ -193,7 +193,6 @@
 /* UBI support */
 
 /* Framebuffer */
-#define CONFIG_VIDEO_IPUV3
 /* check this console not needed, after test remove it */
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_SPLASH_SCREEN
diff --git a/include/configs/cgtqmx6eval.h b/include/configs/cgtqmx6eval.h
index e01bf5bf1b..ac3b96a200 100644
--- a/include/configs/cgtqmx6eval.h
+++ b/include/configs/cgtqmx6eval.h
@@ -63,7 +63,6 @@
 #define CONFIG_USBD_HS
 
 /* Framebuffer */
-#define CONFIG_VIDEO_IPUV3
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_SPLASH_SCREEN
 #define CONFIG_SPLASH_SCREEN_ALIGN
diff --git a/include/configs/cm_fx6.h b/include/configs/cm_fx6.h
index f7e82dfbdb..3aafa7e815 100644
--- a/include/configs/cm_fx6.h
+++ b/include/configs/cm_fx6.h
@@ -220,7 +220,6 @@
 #define CONFIG_SYS_SPI_U_BOOT_OFFS	(64 * 1024)
 
 /* Display */
-#define CONFIG_VIDEO_IPUV3
 #define CONFIG_IMX_HDMI
 
 #define CONFIG_SPLASH_SCREEN
diff --git a/include/configs/colibri_imx6.h b/include/configs/colibri_imx6.h
index a6a823ee1f..802270e401 100644
--- a/include/configs/colibri_imx6.h
+++ b/include/configs/colibri_imx6.h
@@ -71,7 +71,6 @@
 #define CONFIG_USBD_HS
 
 /* Framebuffer and LCD */
-#define CONFIG_VIDEO_IPUV3
 #define CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_SPLASH_SCREEN
diff --git a/include/configs/embestmx6boards.h b/include/configs/embestmx6boards.h
index 7e7de4dae6..d8935499c1 100644
--- a/include/configs/embestmx6boards.h
+++ b/include/configs/embestmx6boards.h
@@ -97,7 +97,6 @@
 #endif
 
 /* Framebuffer */
-#define CONFIG_VIDEO_IPUV3
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_SPLASH_SCREEN
 #define CONFIG_SPLASH_SCREEN_ALIGN
diff --git a/include/configs/ge_bx50v3.h b/include/configs/ge_bx50v3.h
index a5d7cb1be0..cc6a4f9bac 100644
--- a/include/configs/ge_bx50v3.h
+++ b/include/configs/ge_bx50v3.h
@@ -208,13 +208,7 @@
 #define CONFIG_SYS_FSL_USDHC_NUM	3
 
 /* Framebuffer */
-#define CONFIG_VIDEO
 #ifdef CONFIG_VIDEO
-#define CONFIG_VIDEO_IPUV3
-#define CONFIG_CFB_CONSOLE
-#define CONFIG_VGA_AS_SINGLE_DEVICE
-#define CONFIG_SYS_CONSOLE_FG_COL 0xFF
-#define CONFIG_SYS_CONSOLE_BG_COL 0x00
 #define CONFIG_HIDE_LOGO_VERSION
 #define CONFIG_IMX_HDMI
 #define CONFIG_IMX_VIDEO_SKIP
diff --git a/include/configs/gw_ventana.h b/include/configs/gw_ventana.h
index 6e23fa29b3..d1fabc64dc 100644
--- a/include/configs/gw_ventana.h
+++ b/include/configs/gw_ventana.h
@@ -136,7 +136,6 @@
 #define CONFIG_NETCONSOLE
 
 /* Framebuffer and LCD */
-#define CONFIG_VIDEO_IPUV3
 #define CONFIG_VIDEO_LOGO
 #define CONFIG_IMX_HDMI
 #define CONFIG_IMX_VIDEO_SKIP
diff --git a/include/configs/m53menlo.h b/include/configs/m53menlo.h
index 51456fbe55..84d061339e 100644
--- a/include/configs/m53menlo.h
+++ b/include/configs/m53menlo.h
@@ -138,7 +138,6 @@
  * LCD
  */
 #ifdef CONFIG_VIDEO
-#define CONFIG_VIDEO_IPUV3
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_VIDEO_BMP_GZIP
 #define CONFIG_SPLASH_SCREEN
diff --git a/include/configs/mx51evk.h b/include/configs/mx51evk.h
index eb172c97b3..9bf9773c69 100644
--- a/include/configs/mx51evk.h
+++ b/include/configs/mx51evk.h
@@ -68,7 +68,6 @@
 
 /* Framebuffer and LCD */
 #define CONFIG_PREBOOT
-#define CONFIG_VIDEO_IPUV3
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_SPLASH_SCREEN
 #define CONFIG_BMP_16BPP
diff --git a/include/configs/mx53cx9020.h b/include/configs/mx53cx9020.h
index 3ed5ee3c57..1e3ea88b77 100644
--- a/include/configs/mx53cx9020.h
+++ b/include/configs/mx53cx9020.h
@@ -161,7 +161,6 @@
 
 /* Framebuffer and LCD */
 #define CONFIG_PREBOOT
-#define CONFIG_VIDEO_IPUV3
 #define CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_SPLASH_SCREEN
diff --git a/include/configs/mx53loco.h b/include/configs/mx53loco.h
index 816164e87e..2d18f05423 100644
--- a/include/configs/mx53loco.h
+++ b/include/configs/mx53loco.h
@@ -178,7 +178,6 @@
 
 /* Framebuffer and LCD */
 #define CONFIG_PREBOOT
-#define CONFIG_VIDEO_IPUV3
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_SPLASH_SCREEN
 #define CONFIG_BMP_16BPP
diff --git a/include/configs/mx53ppd.h b/include/configs/mx53ppd.h
index 5b97fe9843..f002324fdd 100644
--- a/include/configs/mx53ppd.h
+++ b/include/configs/mx53ppd.h
@@ -215,9 +215,4 @@
 #define CONFIG_PWM_IMX
 #define CONFIG_IMX6_PWM_PER_CLK 66666000
 
-/* Framebuffer and LCD */
-#ifdef CONFIG_VIDEO
-	#define CONFIG_VIDEO_IPUV3
-#endif
-
 #endif				/* __CONFIG_H */
diff --git a/include/configs/mx6cuboxi.h b/include/configs/mx6cuboxi.h
index a62e14f7c6..7b4ae2102e 100644
--- a/include/configs/mx6cuboxi.h
+++ b/include/configs/mx6cuboxi.h
@@ -35,7 +35,6 @@
 #define CONFIG_PHY_ATHEROS
 
 /* Framebuffer */
-#define CONFIG_VIDEO_IPUV3
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_SPLASH_SCREEN
 #define CONFIG_SPLASH_SCREEN_ALIGN
diff --git a/include/configs/mx6sabre_common.h b/include/configs/mx6sabre_common.h
index 711aa82f9c..73888c7f4f 100644
--- a/include/configs/mx6sabre_common.h
+++ b/include/configs/mx6sabre_common.h
@@ -192,7 +192,6 @@
 #endif
 
 /* Framebuffer */
-#define CONFIG_VIDEO_IPUV3
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_SPLASH_SCREEN
 #define CONFIG_SPLASH_SCREEN_ALIGN
diff --git a/include/configs/nitrogen6x.h b/include/configs/nitrogen6x.h
index c364442244..e8a6c6697c 100644
--- a/include/configs/nitrogen6x.h
+++ b/include/configs/nitrogen6x.h
@@ -65,7 +65,6 @@
 #define CONFIG_MXC_USB_FLAGS	0
 
 /* Framebuffer and LCD */
-#define CONFIG_VIDEO_IPUV3
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_SPLASH_SCREEN
 #define CONFIG_SPLASH_SCREEN_ALIGN
diff --git a/include/configs/novena.h b/include/configs/novena.h
index 25736f3c03..bb5bf808c2 100644
--- a/include/configs/novena.h
+++ b/include/configs/novena.h
@@ -125,7 +125,6 @@
 
 /* Video output */
 #ifdef CONFIG_VIDEO
-#define CONFIG_VIDEO_IPUV3
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_SPLASH_SCREEN
 #define CONFIG_BMP_16BPP
diff --git a/include/configs/tbs2910.h b/include/configs/tbs2910.h
index 2d4b9c9bfe..761be0987b 100644
--- a/include/configs/tbs2910.h
+++ b/include/configs/tbs2910.h
@@ -58,7 +58,6 @@
 
 /* Framebuffer */
 #ifdef CONFIG_VIDEO
-#define CONFIG_VIDEO_IPUV3
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_IMX_HDMI
 #define CONFIG_IMX_VIDEO_SKIP
diff --git a/include/configs/wandboard.h b/include/configs/wandboard.h
index b03a1c550c..e6d1fcacf5 100644
--- a/include/configs/wandboard.h
+++ b/include/configs/wandboard.h
@@ -65,7 +65,6 @@
 
 /* Framebuffer */
 #ifdef CONFIG_VIDEO
-#define CONFIG_VIDEO_IPUV3
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_SPLASH_SCREEN
 #define CONFIG_SPLASH_SCREEN_ALIGN
-- 
2.17.1

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

* [U-Boot] [PATCH 04/17] imx6: dts: add 'u-boot, dm-pre-reloc' to soc and ipu nodes
  2019-03-18 22:29 [U-Boot] [PATCH 00/17] Convert some imx6 boards to DM_VIDEO Anatolij Gustschin
                   ` (2 preceding siblings ...)
  2019-03-18 22:29 ` [U-Boot] [PATCH 03/17] imx: move CONFIG_VIDEO_IPUV3 to defconfigs Anatolij Gustschin
@ 2019-03-18 22:29 ` Anatolij Gustschin
  2019-03-18 22:29 ` [U-Boot] [PATCH 05/17] apalis_imx6: convert to DM_VIDEO Anatolij Gustschin
                   ` (14 subsequent siblings)
  18 siblings, 0 replies; 654+ messages in thread
From: Anatolij Gustschin @ 2019-03-18 22:29 UTC (permalink / raw)
  To: u-boot

u-boot,dm-pre-reloc is required for reserving video memory
when binding DM_VIDEO driver.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
---
 arch/arm/dts/imx6qdl.dtsi | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm/dts/imx6qdl.dtsi b/arch/arm/dts/imx6qdl.dtsi
index e4daf15088..c0a9478008 100644
--- a/arch/arm/dts/imx6qdl.dtsi
+++ b/arch/arm/dts/imx6qdl.dtsi
@@ -145,6 +145,7 @@
 		compatible = "simple-bus";
 		interrupt-parent = <&gpc>;
 		ranges;
+		u-boot,dm-pre-reloc;
 
 		dma_apbh: dma-apbh at 110000 {
 			compatible = "fsl,imx6q-dma-apbh", "fsl,imx28-dma-apbh";
@@ -1261,6 +1262,7 @@
 				 <&clks IMX6QDL_CLK_IPU1_DI1>;
 			clock-names = "bus", "di0", "di1";
 			resets = <&src 2>;
+			u-boot,dm-pre-reloc;
 
 			ipu1_csi0: port at 0 {
 				reg = <0>;
-- 
2.17.1

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

* [U-Boot] [PATCH 05/17] apalis_imx6: convert to DM_VIDEO
  2019-03-18 22:29 [U-Boot] [PATCH 00/17] Convert some imx6 boards to DM_VIDEO Anatolij Gustschin
                   ` (3 preceding siblings ...)
  2019-03-18 22:29 ` [U-Boot] [PATCH 04/17] imx6: dts: add 'u-boot, dm-pre-reloc' to soc and ipu nodes Anatolij Gustschin
@ 2019-03-18 22:29 ` Anatolij Gustschin
  2019-03-18 22:29 ` [U-Boot] [PATCH 06/17] imx6: icore: " Anatolij Gustschin
                   ` (13 subsequent siblings)
  18 siblings, 0 replies; 654+ messages in thread
From: Anatolij Gustschin @ 2019-03-18 22:29 UTC (permalink / raw)
  To: u-boot

Enable DM_VIDEO in defconfig.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
---
 configs/apalis_imx6_defconfig | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/configs/apalis_imx6_defconfig b/configs/apalis_imx6_defconfig
index 60ca8a5147..06695208bc 100644
--- a/configs/apalis_imx6_defconfig
+++ b/configs/apalis_imx6_defconfig
@@ -81,7 +81,8 @@ CONFIG_USB_GADGET_PRODUCT_NUM=0x4000
 CONFIG_CI_UDC=y
 CONFIG_USB_GADGET_DOWNLOAD=y
 CONFIG_USB_HOST_ETHER=y
-CONFIG_VIDEO=y
+CONFIG_DM_VIDEO=y
+CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_VIDEO_IPUV3=y
 CONFIG_FAT_WRITE=y
 CONFIG_OF_LIBFDT_OVERLAY=y
-- 
2.17.1

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

* [U-Boot] [PATCH 06/17] imx6: icore: convert to DM_VIDEO
  2019-03-18 22:29 [U-Boot] [PATCH 00/17] Convert some imx6 boards to DM_VIDEO Anatolij Gustschin
                   ` (4 preceding siblings ...)
  2019-03-18 22:29 ` [U-Boot] [PATCH 05/17] apalis_imx6: convert to DM_VIDEO Anatolij Gustschin
@ 2019-03-18 22:29 ` Anatolij Gustschin
  2019-03-18 22:29 ` [U-Boot] [PATCH 07/17] imx6: ge_bx50v3: " Anatolij Gustschin
                   ` (12 subsequent siblings)
  18 siblings, 0 replies; 654+ messages in thread
From: Anatolij Gustschin @ 2019-03-18 22:29 UTC (permalink / raw)
  To: u-boot

Enable DM_VIDEO in defconfigs.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
---
 configs/imx6dl_icore_nand_defconfig  | 2 +-
 configs/imx6q_icore_nand_defconfig   | 2 +-
 configs/imx6qdl_icore_mmc_defconfig  | 2 +-
 configs/imx6qdl_icore_nand_defconfig | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/configs/imx6dl_icore_nand_defconfig b/configs/imx6dl_icore_nand_defconfig
index c34c515080..d81f00faec 100644
--- a/configs/imx6dl_icore_nand_defconfig
+++ b/configs/imx6dl_icore_nand_defconfig
@@ -49,5 +49,5 @@ CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX6=y
 CONFIG_MXC_UART=y
 CONFIG_IMX_THERMAL=y
-CONFIG_VIDEO=y
+CONFIG_DM_VIDEO=y
 CONFIG_VIDEO_IPUV3=y
diff --git a/configs/imx6q_icore_nand_defconfig b/configs/imx6q_icore_nand_defconfig
index cf149d615b..8702426561 100644
--- a/configs/imx6q_icore_nand_defconfig
+++ b/configs/imx6q_icore_nand_defconfig
@@ -50,5 +50,5 @@ CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX6=y
 CONFIG_MXC_UART=y
 CONFIG_IMX_THERMAL=y
-CONFIG_VIDEO=y
+CONFIG_DM_VIDEO=y
 CONFIG_VIDEO_IPUV3=y
diff --git a/configs/imx6qdl_icore_mmc_defconfig b/configs/imx6qdl_icore_mmc_defconfig
index 68ad1c6d20..a8b0c6ef49 100644
--- a/configs/imx6qdl_icore_mmc_defconfig
+++ b/configs/imx6qdl_icore_mmc_defconfig
@@ -67,5 +67,5 @@ CONFIG_PINCTRL_IMX6=y
 CONFIG_DEBUG_UART_MXC=y
 CONFIG_MXC_UART=y
 CONFIG_IMX_THERMAL=y
-CONFIG_VIDEO=y
+CONFIG_DM_VIDEO=y
 CONFIG_VIDEO_IPUV3=y
diff --git a/configs/imx6qdl_icore_nand_defconfig b/configs/imx6qdl_icore_nand_defconfig
index cf149d615b..8702426561 100644
--- a/configs/imx6qdl_icore_nand_defconfig
+++ b/configs/imx6qdl_icore_nand_defconfig
@@ -50,5 +50,5 @@ CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX6=y
 CONFIG_MXC_UART=y
 CONFIG_IMX_THERMAL=y
-CONFIG_VIDEO=y
+CONFIG_DM_VIDEO=y
 CONFIG_VIDEO_IPUV3=y
-- 
2.17.1

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

* [U-Boot] [PATCH 07/17] imx6: ge_bx50v3: convert to DM_VIDEO
  2019-03-18 22:29 [U-Boot] [PATCH 00/17] Convert some imx6 boards to DM_VIDEO Anatolij Gustschin
                   ` (5 preceding siblings ...)
  2019-03-18 22:29 ` [U-Boot] [PATCH 06/17] imx6: icore: " Anatolij Gustschin
@ 2019-03-18 22:29 ` Anatolij Gustschin
  2019-03-18 22:29 ` [U-Boot] [PATCH 08/17] colibri_imx6: " Anatolij Gustschin
                   ` (11 subsequent siblings)
  18 siblings, 0 replies; 654+ messages in thread
From: Anatolij Gustschin @ 2019-03-18 22:29 UTC (permalink / raw)
  To: u-boot

Enable DM_VIDEO in defconfig.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
---
 configs/ge_bx50v3_defconfig | 2 +-
 include/configs/ge_bx50v3.h | 2 --
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/configs/ge_bx50v3_defconfig b/configs/ge_bx50v3_defconfig
index 91782b06a8..da8a5ee28d 100644
--- a/configs/ge_bx50v3_defconfig
+++ b/configs/ge_bx50v3_defconfig
@@ -60,5 +60,5 @@ CONFIG_DM_GPIO=y
 CONFIG_DM_SPI=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_OF_BOARD_SETUP=y
-CONFIG_VIDEO=y
+CONFIG_DM_VIDEO=y
 CONFIG_VIDEO_IPUV3=y
diff --git a/include/configs/ge_bx50v3.h b/include/configs/ge_bx50v3.h
index cc6a4f9bac..8762d7e095 100644
--- a/include/configs/ge_bx50v3.h
+++ b/include/configs/ge_bx50v3.h
@@ -208,12 +208,10 @@
 #define CONFIG_SYS_FSL_USDHC_NUM	3
 
 /* Framebuffer */
-#ifdef CONFIG_VIDEO
 #define CONFIG_HIDE_LOGO_VERSION
 #define CONFIG_IMX_HDMI
 #define CONFIG_IMX_VIDEO_SKIP
 #define CONFIG_CMD_BMP
-#endif
 
 #define CONFIG_PWM_IMX
 #define CONFIG_IMX6_PWM_PER_CLK	66000000
-- 
2.17.1

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

* [U-Boot] [PATCH 08/17] colibri_imx6: convert to DM_VIDEO
  2019-03-18 22:29 [U-Boot] [PATCH 00/17] Convert some imx6 boards to DM_VIDEO Anatolij Gustschin
                   ` (6 preceding siblings ...)
  2019-03-18 22:29 ` [U-Boot] [PATCH 07/17] imx6: ge_bx50v3: " Anatolij Gustschin
@ 2019-03-18 22:29 ` Anatolij Gustschin
  2019-03-18 22:29 ` [U-Boot] [PATCH 09/17] mx6sabresd: " Anatolij Gustschin
                   ` (10 subsequent siblings)
  18 siblings, 0 replies; 654+ messages in thread
From: Anatolij Gustschin @ 2019-03-18 22:29 UTC (permalink / raw)
  To: u-boot

Enable DM_VIDEO in defconfig.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
---
 configs/colibri_imx6_defconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configs/colibri_imx6_defconfig b/configs/colibri_imx6_defconfig
index 611f9f0950..bf05c68807 100644
--- a/configs/colibri_imx6_defconfig
+++ b/configs/colibri_imx6_defconfig
@@ -77,7 +77,7 @@ CONFIG_USB_GADGET_PRODUCT_NUM=0x4000
 CONFIG_CI_UDC=y
 CONFIG_USB_GADGET_DOWNLOAD=y
 CONFIG_USB_HOST_ETHER=y
-CONFIG_VIDEO=y
+CONFIG_DM_VIDEO=y
 CONFIG_VIDEO_IPUV3=y
 CONFIG_FAT_WRITE=y
 CONFIG_OF_LIBFDT_OVERLAY=y
-- 
2.17.1

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

* [U-Boot] [PATCH 09/17] mx6sabresd: convert to DM_VIDEO
  2019-03-18 22:29 [U-Boot] [PATCH 00/17] Convert some imx6 boards to DM_VIDEO Anatolij Gustschin
                   ` (7 preceding siblings ...)
  2019-03-18 22:29 ` [U-Boot] [PATCH 08/17] colibri_imx6: " Anatolij Gustschin
@ 2019-03-18 22:29 ` Anatolij Gustschin
  2019-09-16 18:18   ` Fabio Estevam
  2019-03-18 22:29 ` [U-Boot] [PATCH 10/17] mx6sabreauto: " Anatolij Gustschin
                   ` (9 subsequent siblings)
  18 siblings, 1 reply; 654+ messages in thread
From: Anatolij Gustschin @ 2019-03-18 22:29 UTC (permalink / raw)
  To: u-boot

Enable DM_VIDEO in defconfig.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
---
 configs/mx6sabresd_defconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configs/mx6sabresd_defconfig b/configs/mx6sabresd_defconfig
index ea34217e1c..825218c0d6 100644
--- a/configs/mx6sabresd_defconfig
+++ b/configs/mx6sabresd_defconfig
@@ -93,6 +93,6 @@ CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
 CONFIG_CI_UDC=y
 CONFIG_USB_HOST_ETHER=y
 CONFIG_USB_ETHER_ASIX=y
-CONFIG_VIDEO=y
+CONFIG_DM_VIDEO=y
 CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
-- 
2.17.1

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

* [U-Boot] [PATCH 10/17] mx6sabreauto: convert to DM_VIDEO
  2019-03-18 22:29 [U-Boot] [PATCH 00/17] Convert some imx6 boards to DM_VIDEO Anatolij Gustschin
                   ` (8 preceding siblings ...)
  2019-03-18 22:29 ` [U-Boot] [PATCH 09/17] mx6sabresd: " Anatolij Gustschin
@ 2019-03-18 22:29 ` Anatolij Gustschin
  2019-03-18 22:29 ` [U-Boot] [PATCH 11/17] imx6: wandboard: add device tree Anatolij Gustschin
                   ` (8 subsequent siblings)
  18 siblings, 0 replies; 654+ messages in thread
From: Anatolij Gustschin @ 2019-03-18 22:29 UTC (permalink / raw)
  To: u-boot

Enable DM_VIDEO in defconfig.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
---
 configs/mx6sabreauto_defconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configs/mx6sabreauto_defconfig b/configs/mx6sabreauto_defconfig
index e52ad368d2..bcb3f314b1 100644
--- a/configs/mx6sabreauto_defconfig
+++ b/configs/mx6sabreauto_defconfig
@@ -82,6 +82,6 @@ CONFIG_CI_UDC=y
 CONFIG_USB_GADGET_DOWNLOAD=y
 CONFIG_USB_HOST_ETHER=y
 CONFIG_USB_ETHER_ASIX=y
-CONFIG_VIDEO=y
+CONFIG_DM_VIDEO=y
 CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
-- 
2.17.1

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

* [U-Boot] [PATCH 11/17] imx6: wandboard: add device tree
  2019-03-18 22:29 [U-Boot] [PATCH 00/17] Convert some imx6 boards to DM_VIDEO Anatolij Gustschin
                   ` (9 preceding siblings ...)
  2019-03-18 22:29 ` [U-Boot] [PATCH 10/17] mx6sabreauto: " Anatolij Gustschin
@ 2019-03-18 22:29 ` Anatolij Gustschin
  2019-03-18 22:29 ` [U-Boot] [PATCH 12/17] imx6: wandboard: convert to DM_GPIO and enable pinctrl driver Anatolij Gustschin
                   ` (7 subsequent siblings)
  18 siblings, 0 replies; 654+ messages in thread
From: Anatolij Gustschin @ 2019-03-18 22:29 UTC (permalink / raw)
  To: u-boot

Add device trees from Linux in preparation for driver model
conversions.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
---
 arch/arm/dts/imx6dl-wandboard-revb1.dts   |  18 ++
 arch/arm/dts/imx6qdl-wandboard-revb1.dtsi |  41 ++++
 arch/arm/dts/imx6qdl-wandboard.dtsi       | 279 ++++++++++++++++++++++
 board/wandboard/MAINTAINERS               |   3 +
 configs/wandboard_defconfig               |   3 +-
 5 files changed, 343 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/dts/imx6dl-wandboard-revb1.dts
 create mode 100644 arch/arm/dts/imx6qdl-wandboard-revb1.dtsi
 create mode 100644 arch/arm/dts/imx6qdl-wandboard.dtsi

diff --git a/arch/arm/dts/imx6dl-wandboard-revb1.dts b/arch/arm/dts/imx6dl-wandboard-revb1.dts
new file mode 100644
index 0000000000..738db4fc77
--- /dev/null
+++ b/arch/arm/dts/imx6dl-wandboard-revb1.dts
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2013 Freescale Semiconductor, Inc.
+ *
+ * Author: Fabio Estevam <fabio.estevam@freescale.com>
+ */
+/dts-v1/;
+#include "imx6dl.dtsi"
+#include "imx6qdl-wandboard-revb1.dtsi"
+
+/ {
+	model = "Wandboard i.MX6 Dual Lite Board rev B1";
+	compatible = "wand,imx6dl-wandboard", "fsl,imx6dl";
+
+	memory at 10000000 {
+		reg = <0x10000000 0x40000000>;
+	};
+};
diff --git a/arch/arm/dts/imx6qdl-wandboard-revb1.dtsi b/arch/arm/dts/imx6qdl-wandboard-revb1.dtsi
new file mode 100644
index 0000000000..855dc6f9df
--- /dev/null
+++ b/arch/arm/dts/imx6qdl-wandboard-revb1.dtsi
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2013 Freescale Semiconductor, Inc.
+ *
+ * Author: Fabio Estevam <fabio.estevam@freescale.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ */
+
+#include "imx6qdl-wandboard.dtsi"
+
+&iomuxc {
+	pinctrl-0 = <&pinctrl_hog>;
+
+	imx6qdl-wandboard {
+		pinctrl_hog: hoggrp {
+			fsl,pins = <
+				MX6QDL_PAD_GPIO_2__GPIO1_IO02		0x80000000	/* uSDHC1 CD */
+				MX6QDL_PAD_EIM_DA9__GPIO3_IO09		0x80000000	/* uSDHC3 CD */
+				MX6QDL_PAD_EIM_EB1__GPIO2_IO29		0x0f0b0		/* WL_REF_ON */
+				MX6QDL_PAD_EIM_A25__GPIO5_IO02		0x0f0b0		/* WL_RST_N */
+				MX6QDL_PAD_ENET_RXD1__GPIO1_IO26	0x000b0		/* WL_REG_ON */
+				MX6QDL_PAD_ENET_TXD1__GPIO1_IO29	0x80000000	/* WL_HOST_WAKE */
+				MX6QDL_PAD_ENET_TXD0__GPIO1_IO30	0x80000000	/* WL_WAKE */
+				MX6QDL_PAD_EIM_D29__GPIO3_IO29		0x80000000	/* RGMII_nRST */
+				MX6QDL_PAD_EIM_DA13__GPIO3_IO13		0x80000000	/* BT_ON */
+				MX6QDL_PAD_EIM_DA14__GPIO3_IO14		0x80000000	/* BT_WAKE */
+				MX6QDL_PAD_EIM_DA15__GPIO3_IO15		0x80000000	/* BT_HOST_WAKE */
+			>;
+		};
+	};
+};
+
+&usdhc2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usdhc2>;
+	non-removable;
+	status = "okay";
+};
diff --git a/arch/arm/dts/imx6qdl-wandboard.dtsi b/arch/arm/dts/imx6qdl-wandboard.dtsi
new file mode 100644
index 0000000000..381bf61fcd
--- /dev/null
+++ b/arch/arm/dts/imx6qdl-wandboard.dtsi
@@ -0,0 +1,279 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2013 Freescale Semiconductor, Inc.
+ *
+ * Author: Fabio Estevam <fabio.estevam@freescale.com>
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+	sound {
+		compatible = "fsl,imx6-wandboard-sgtl5000",
+			     "fsl,imx-audio-sgtl5000";
+		model = "imx6-wandboard-sgtl5000";
+		ssi-controller = <&ssi1>;
+		audio-codec = <&codec>;
+		audio-routing =
+			"MIC_IN", "Mic Jack",
+			"Mic Jack", "Mic Bias",
+			"Headphone Jack", "HP_OUT";
+		mux-int-port = <1>;
+		mux-ext-port = <3>;
+	};
+
+	sound-spdif {
+		compatible = "fsl,imx-audio-spdif";
+		model = "imx-spdif";
+		spdif-controller = <&spdif>;
+		spdif-out;
+	};
+
+	reg_2p5v: regulator-2p5v {
+		compatible = "regulator-fixed";
+		regulator-name = "2P5V";
+		regulator-min-microvolt = <2500000>;
+		regulator-max-microvolt = <2500000>;
+		regulator-always-on;
+	};
+
+	reg_3p3v: regulator-3p3v {
+		compatible = "regulator-fixed";
+		regulator-name = "3P3V";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-always-on;
+	};
+
+	reg_usb_otg_vbus: regulator-usbotgvbus {
+		compatible = "regulator-fixed";
+		regulator-name = "usb_otg_vbus";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_usbotgvbus>;
+		gpio = <&gpio3 22 GPIO_ACTIVE_LOW>;
+	};
+};
+
+&audmux {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_audmux>;
+	status = "okay";
+};
+
+&hdmi {
+	ddc-i2c-bus = <&i2c1>;
+	status = "okay";
+};
+
+&i2c1 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c1>;
+	status = "okay";
+};
+
+&i2c2 {
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c2>;
+	status = "okay";
+
+	codec: sgtl5000 at a {
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_mclk>;
+		compatible = "fsl,sgtl5000";
+		reg = <0x0a>;
+		clocks = <&clks IMX6QDL_CLK_CKO>;
+		VDDA-supply = <&reg_2p5v>;
+		VDDIO-supply = <&reg_3p3v>;
+		lrclk-strength = <3>;
+	};
+};
+
+&iomuxc {
+	pinctrl-names = "default";
+
+	imx6qdl-wandboard {
+
+		pinctrl_audmux: audmuxgrp {
+			fsl,pins = <
+				MX6QDL_PAD_CSI0_DAT7__AUD3_RXD		0x130b0
+				MX6QDL_PAD_CSI0_DAT4__AUD3_TXC		0x130b0
+				MX6QDL_PAD_CSI0_DAT5__AUD3_TXD		0x110b0
+				MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS		0x130b0
+			>;
+		};
+
+		pinctrl_enet: enetgrp {
+			fsl,pins = <
+				MX6QDL_PAD_ENET_MDIO__ENET_MDIO		0x1b0b0
+				MX6QDL_PAD_ENET_MDC__ENET_MDC		0x1b0b0
+				MX6QDL_PAD_RGMII_TXC__RGMII_TXC		0x1b030
+				MX6QDL_PAD_RGMII_TD0__RGMII_TD0		0x1b030
+				MX6QDL_PAD_RGMII_TD1__RGMII_TD1		0x1b030
+				MX6QDL_PAD_RGMII_TD2__RGMII_TD2		0x1b030
+				MX6QDL_PAD_RGMII_TD3__RGMII_TD3		0x1b030
+				MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL	0x1b030
+				MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK	0x1b0b0
+				MX6QDL_PAD_RGMII_RXC__RGMII_RXC		0x1b030
+				MX6QDL_PAD_RGMII_RD0__RGMII_RD0		0x1b030
+				MX6QDL_PAD_RGMII_RD1__RGMII_RD1		0x1b030
+				MX6QDL_PAD_RGMII_RD2__RGMII_RD2		0x1b030
+				MX6QDL_PAD_RGMII_RD3__RGMII_RD3		0x1b030
+				MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL	0x1b030
+				MX6QDL_PAD_GPIO_16__ENET_REF_CLK	0x4001b0a8
+				MX6QDL_PAD_GPIO_6__ENET_IRQ		0x000b1
+			>;
+		};
+
+		pinctrl_i2c1: i2c1grp {
+			fsl,pins = <
+				MX6QDL_PAD_EIM_D21__I2C1_SCL		0x4001b8b1
+				MX6QDL_PAD_EIM_D28__I2C1_SDA		0x4001b8b1
+			>;
+		};
+
+		pinctrl_i2c2: i2c2grp {
+			fsl,pins = <
+				MX6QDL_PAD_KEY_COL3__I2C2_SCL		0x4001b8b1
+				MX6QDL_PAD_KEY_ROW3__I2C2_SDA		0x4001b8b1
+			>;
+		};
+
+		pinctrl_mclk: mclkgrp {
+			fsl,pins = <
+				MX6QDL_PAD_GPIO_0__CCM_CLKO1		0x130b0
+			>;
+		};
+
+		pinctrl_spdif: spdifgrp {
+			fsl,pins = <
+				MX6QDL_PAD_ENET_RXD0__SPDIF_OUT		0x1b0b0
+			>;
+		};
+
+		pinctrl_uart1: uart1grp {
+			fsl,pins = <
+				MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA	0x1b0b1
+				MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA	0x1b0b1
+			>;
+		};
+
+		pinctrl_uart3: uart3grp {
+			fsl,pins = <
+				MX6QDL_PAD_EIM_D24__UART3_TX_DATA	0x1b0b1
+				MX6QDL_PAD_EIM_D25__UART3_RX_DATA	0x1b0b1
+				MX6QDL_PAD_EIM_D23__UART3_CTS_B		0x1b0b1
+				MX6QDL_PAD_EIM_EB3__UART3_RTS_B		0x1b0b1
+			>;
+		};
+
+		pinctrl_usbotg: usbotggrp {
+			fsl,pins = <
+				MX6QDL_PAD_GPIO_1__USB_OTG_ID		0x17059
+			>;
+		};
+
+		pinctrl_usbotgvbus: usbotgvbusgrp {
+			fsl,pins = <
+				MX6QDL_PAD_EIM_D22__GPIO3_IO22		0x130b0
+			>;
+		};
+
+		pinctrl_usdhc1: usdhc1grp {
+			fsl,pins = <
+				MX6QDL_PAD_SD1_CMD__SD1_CMD		0x17059
+				MX6QDL_PAD_SD1_CLK__SD1_CLK		0x10059
+				MX6QDL_PAD_SD1_DAT0__SD1_DATA0		0x17059
+				MX6QDL_PAD_SD1_DAT1__SD1_DATA1		0x17059
+				MX6QDL_PAD_SD1_DAT2__SD1_DATA2		0x17059
+				MX6QDL_PAD_SD1_DAT3__SD1_DATA3		0x17059
+			>;
+		};
+
+		pinctrl_usdhc2: usdhc2grp {
+			fsl,pins = <
+				MX6QDL_PAD_SD2_CMD__SD2_CMD		0x17059
+				MX6QDL_PAD_SD2_CLK__SD2_CLK		0x10059
+				MX6QDL_PAD_SD2_DAT0__SD2_DATA0		0x17059
+				MX6QDL_PAD_SD2_DAT1__SD2_DATA1		0x17059
+				MX6QDL_PAD_SD2_DAT2__SD2_DATA2		0x17059
+				MX6QDL_PAD_SD2_DAT3__SD2_DATA3		0x17059
+			>;
+		};
+
+		pinctrl_usdhc3: usdhc3grp {
+			fsl,pins = <
+				MX6QDL_PAD_SD3_CMD__SD3_CMD		0x17059
+				MX6QDL_PAD_SD3_CLK__SD3_CLK		0x10059
+				MX6QDL_PAD_SD3_DAT0__SD3_DATA0		0x17059
+				MX6QDL_PAD_SD3_DAT1__SD3_DATA1		0x17059
+				MX6QDL_PAD_SD3_DAT2__SD3_DATA2		0x17059
+				MX6QDL_PAD_SD3_DAT3__SD3_DATA3		0x17059
+			>;
+		};
+	};
+};
+
+&fec {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_enet>;
+	phy-mode = "rgmii";
+	phy-reset-gpios = <&gpio3 29 GPIO_ACTIVE_LOW>;
+	interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
+			      <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
+	fsl,err006687-workaround-present;
+	status = "okay";
+};
+
+&spdif {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_spdif>;
+	status = "okay";
+};
+
+&ssi1 {
+	status = "okay";
+};
+
+&uart1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart1>;
+	status = "okay";
+};
+
+&uart3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart3>;
+	uart-has-rtscts;
+	status = "okay";
+};
+
+&usbh1 {
+	status = "okay";
+};
+
+&usbotg {
+	vbus-supply = <&reg_usb_otg_vbus>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usbotg>;
+	disable-over-current;
+	dr_mode = "otg";
+	status = "okay";
+};
+
+&usdhc1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usdhc1>;
+	cd-gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
+	status = "okay";
+};
+
+&usdhc3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usdhc3>;
+	cd-gpios = <&gpio3 9 GPIO_ACTIVE_LOW>;
+	status = "okay";
+};
diff --git a/board/wandboard/MAINTAINERS b/board/wandboard/MAINTAINERS
index d7cbae8f95..00a31a9346 100644
--- a/board/wandboard/MAINTAINERS
+++ b/board/wandboard/MAINTAINERS
@@ -1,6 +1,9 @@
 WANDBOARD BOARD
 M:	Fabio Estevam <fabio.estevam@nxp.com>
 S:	Maintained
+F:	arch/arm/dts/imx6qdl-wandboard.dtsi
+F:	arch/arm/dts/imx6qdl-wandboard-revb1.dtsi
+F:	arch/arm/dts/imx6dl-wandboard-revb1.dts
 F:	board/wandboard/
 F:	include/configs/wandboard.h
 F:	configs/wandboard_defconfig
diff --git a/configs/wandboard_defconfig b/configs/wandboard_defconfig
index 9a67e63132..9307ea6c64 100644
--- a/configs/wandboard_defconfig
+++ b/configs/wandboard_defconfig
@@ -32,6 +32,8 @@ CONFIG_CMD_SATA=y
 CONFIG_CMD_USB=y
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_EXT4_WRITE=y
+CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="imx6dl-wandboard-revb1"
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
 CONFIG_DM=y
@@ -44,4 +46,3 @@ CONFIG_USB=y
 CONFIG_VIDEO=y
 CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
-CONFIG_OF_LIBFDT=y
-- 
2.17.1

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

* [U-Boot] [PATCH 12/17] imx6: wandboard: convert to DM_GPIO and enable pinctrl driver
  2019-03-18 22:29 [U-Boot] [PATCH 00/17] Convert some imx6 boards to DM_VIDEO Anatolij Gustschin
                   ` (10 preceding siblings ...)
  2019-03-18 22:29 ` [U-Boot] [PATCH 11/17] imx6: wandboard: add device tree Anatolij Gustschin
@ 2019-03-18 22:29 ` Anatolij Gustschin
  2019-03-18 22:29 ` [U-Boot] [PATCH 13/17] imx6: wandboard: convert to DM_USB Anatolij Gustschin
                   ` (6 subsequent siblings)
  18 siblings, 0 replies; 654+ messages in thread
From: Anatolij Gustschin @ 2019-03-18 22:29 UTC (permalink / raw)
  To: u-boot

Enable DM_GPIO and pinctrl in defconfig and add gpio_request()
calls where required.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
---
 board/wandboard/wandboard.c | 12 ++++++++++++
 configs/wandboard_defconfig |  3 +++
 2 files changed, 15 insertions(+)

diff --git a/board/wandboard/wandboard.c b/board/wandboard/wandboard.c
index 6af1b45882..e0d5769131 100644
--- a/board/wandboard/wandboard.c
+++ b/board/wandboard/wandboard.c
@@ -131,12 +131,14 @@ static void setup_iomux_enet(void)
 	if (with_pmic) {
 		SETUP_IOMUX_PADS(enet_ar8035_power_pads);
 		/* enable AR8035 POWER */
+		gpio_request(ETH_PHY_AR8035_POWER, "PHY_POWER");
 		gpio_direction_output(ETH_PHY_AR8035_POWER, 0);
 	}
 	/* wait until 3.3V of PHY and clock become stable */
 	mdelay(10);
 
 	/* Reset AR8031 PHY */
+	gpio_request(ETH_PHY_RESET, "PHY_RESET");
 	gpio_direction_output(ETH_PHY_RESET, 0);
 	mdelay(10);
 	gpio_set_value(ETH_PHY_RESET, 1);
@@ -170,6 +172,11 @@ int board_mmc_init(bd_t *bis)
 	int ret;
 	u32 index = 0;
 
+#if !CONFIG_IS_ENABLED(DM_MMC)
+	gpio_request(USDHC1_CD_GPIO, "USDHC1_CD");
+	gpio_request(USDHC3_CD_GPIO, "USDHC3_CD");
+#endif
+
 	/*
 	 * Following map is done:
 	 * (U-Boot device node)    (Physical Port)
@@ -356,6 +363,8 @@ static void enable_fwadapt_7wvga(struct display_info_t const *dev)
 {
 	SETUP_IOMUX_PADS(fwadapt_7wvga_pads);
 
+	gpio_request(IMX_GPIO_NR(2, 10), "DISP0_BKLEN");
+	gpio_request(IMX_GPIO_NR(2, 11), "DISP0_VDDEN");
 	gpio_direction_output(IMX_GPIO_NR(2, 10), 1);
 	gpio_direction_output(IMX_GPIO_NR(2, 11), 1);
 }
@@ -418,6 +427,7 @@ static void setup_display(void)
 
 	/* Disable LCD backlight */
 	SETUP_IOMUX_PAD(PAD_DI0_PIN4__GPIO4_IO20);
+	gpio_request(IMX_GPIO_NR(4, 20), "LCD_BKLEN");
 	gpio_direction_input(IMX_GPIO_NR(4, 20));
 }
 #endif /* CONFIG_VIDEO_IPUV3 */
@@ -548,6 +558,8 @@ int board_init(void)
 
 int checkboard(void)
 {
+	gpio_request(REV_DETECTION, "REV_DETECT");
+
 	if (is_revd1())
 		puts("Board: Wandboard rev D1\n");
 	else if (is_revc1())
diff --git a/configs/wandboard_defconfig b/configs/wandboard_defconfig
index 9307ea6c64..11cf4415ae 100644
--- a/configs/wandboard_defconfig
+++ b/configs/wandboard_defconfig
@@ -38,9 +38,12 @@ CONFIG_ENV_IS_IN_MMC=y
 CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
 CONFIG_DM=y
 CONFIG_DWC_AHSATA=y
+CONFIG_DM_GPIO=y
 CONFIG_FSL_ESDHC=y
 CONFIG_PHYLIB=y
 CONFIG_MII=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_IMX6=y
 CONFIG_DM_THERMAL=y
 CONFIG_USB=y
 CONFIG_VIDEO=y
-- 
2.17.1

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

* [U-Boot] [PATCH 13/17] imx6: wandboard: convert to DM_USB
  2019-03-18 22:29 [U-Boot] [PATCH 00/17] Convert some imx6 boards to DM_VIDEO Anatolij Gustschin
                   ` (11 preceding siblings ...)
  2019-03-18 22:29 ` [U-Boot] [PATCH 12/17] imx6: wandboard: convert to DM_GPIO and enable pinctrl driver Anatolij Gustschin
@ 2019-03-18 22:29 ` Anatolij Gustschin
  2019-03-18 22:29 ` [U-Boot] [PATCH 14/17] imx6: wandboard: convert to DM_VIDEO Anatolij Gustschin
                   ` (5 subsequent siblings)
  18 siblings, 0 replies; 654+ messages in thread
From: Anatolij Gustschin @ 2019-03-18 22:29 UTC (permalink / raw)
  To: u-boot

Drop CONFIG_USB_MAX_CONTROLLER_COUNT and enable DM_USB
in defconfig.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
---
 configs/wandboard_defconfig | 1 +
 include/configs/wandboard.h | 1 -
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/configs/wandboard_defconfig b/configs/wandboard_defconfig
index 11cf4415ae..9e13d7f67c 100644
--- a/configs/wandboard_defconfig
+++ b/configs/wandboard_defconfig
@@ -46,6 +46,7 @@ CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX6=y
 CONFIG_DM_THERMAL=y
 CONFIG_USB=y
+CONFIG_DM_USB=y
 CONFIG_VIDEO=y
 CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
diff --git a/include/configs/wandboard.h b/include/configs/wandboard.h
index e6d1fcacf5..e01e3e3669 100644
--- a/include/configs/wandboard.h
+++ b/include/configs/wandboard.h
@@ -51,7 +51,6 @@
 #define CONFIG_SYS_FSL_ESDHC_ADDR	0
 
 /* USB Configs */
-#define CONFIG_USB_MAX_CONTROLLER_COUNT	2
 #define CONFIG_MXC_USB_PORTSC		(PORT_PTS_UTMI | PORT_PTS_PTW)
 #define CONFIG_MXC_USB_FLAGS		0
 
-- 
2.17.1

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

* [U-Boot] [PATCH 14/17] imx6: wandboard: convert to DM_VIDEO
  2019-03-18 22:29 [U-Boot] [PATCH 00/17] Convert some imx6 boards to DM_VIDEO Anatolij Gustschin
                   ` (12 preceding siblings ...)
  2019-03-18 22:29 ` [U-Boot] [PATCH 13/17] imx6: wandboard: convert to DM_USB Anatolij Gustschin
@ 2019-03-18 22:29 ` Anatolij Gustschin
  2019-03-18 22:29 ` [U-Boot] [PATCH 15/17] imx6: wandboard: convert to DM_PMIC Anatolij Gustschin
                   ` (4 subsequent siblings)
  18 siblings, 0 replies; 654+ messages in thread
From: Anatolij Gustschin @ 2019-03-18 22:29 UTC (permalink / raw)
  To: u-boot

Enable DM_VIDEO in defconfig.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
---
 configs/wandboard_defconfig | 2 +-
 include/configs/wandboard.h | 2 --
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/configs/wandboard_defconfig b/configs/wandboard_defconfig
index 9e13d7f67c..c4018cce4a 100644
--- a/configs/wandboard_defconfig
+++ b/configs/wandboard_defconfig
@@ -47,6 +47,6 @@ CONFIG_PINCTRL_IMX6=y
 CONFIG_DM_THERMAL=y
 CONFIG_USB=y
 CONFIG_DM_USB=y
-CONFIG_VIDEO=y
+CONFIG_DM_VIDEO=y
 CONFIG_VIDEO_IPUV3=y
 # CONFIG_VIDEO_SW_CURSOR is not set
diff --git a/include/configs/wandboard.h b/include/configs/wandboard.h
index e01e3e3669..13a9fd2450 100644
--- a/include/configs/wandboard.h
+++ b/include/configs/wandboard.h
@@ -63,7 +63,6 @@
 #define CONFIG_PHY_ATHEROS
 
 /* Framebuffer */
-#ifdef CONFIG_VIDEO
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_SPLASH_SCREEN
 #define CONFIG_SPLASH_SCREEN_ALIGN
@@ -72,7 +71,6 @@
 #define CONFIG_VIDEO_BMP_LOGO
 #define CONFIG_IMX_HDMI
 #define CONFIG_IMX_VIDEO_SKIP
-#endif
 
 #define CONFIG_EXTRA_ENV_SETTINGS \
 	"console=ttymxc0\0" \
-- 
2.17.1

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

* [U-Boot] [PATCH 15/17] imx6: wandboard: convert to DM_PMIC
  2019-03-18 22:29 [U-Boot] [PATCH 00/17] Convert some imx6 boards to DM_VIDEO Anatolij Gustschin
                   ` (13 preceding siblings ...)
  2019-03-18 22:29 ` [U-Boot] [PATCH 14/17] imx6: wandboard: convert to DM_VIDEO Anatolij Gustschin
@ 2019-03-18 22:29 ` Anatolij Gustschin
  2019-03-18 22:29 ` [U-Boot] [PATCH 16/17] imx6: wandboard: convert to DM_I2C Anatolij Gustschin
                   ` (3 subsequent siblings)
  18 siblings, 0 replies; 654+ messages in thread
From: Anatolij Gustschin @ 2019-03-18 22:29 UTC (permalink / raw)
  To: u-boot

Enable DM_PMIC_PFUZE100 driver and add PMIC description to DTS.
Rework power_init_board() code.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
---
 arch/arm/dts/imx6qdl-wandboard.dtsi | 101 ++++++++++++++++++++++++++++
 board/wandboard/wandboard.c         |  38 ++++++-----
 configs/wandboard_defconfig         |   2 +
 include/configs/wandboard.h         |   6 --
 4 files changed, 125 insertions(+), 22 deletions(-)

diff --git a/arch/arm/dts/imx6qdl-wandboard.dtsi b/arch/arm/dts/imx6qdl-wandboard.dtsi
index 381bf61fcd..4d03d49fde 100644
--- a/arch/arm/dts/imx6qdl-wandboard.dtsi
+++ b/arch/arm/dts/imx6qdl-wandboard.dtsi
@@ -90,6 +90,107 @@
 		VDDIO-supply = <&reg_3p3v>;
 		lrclk-strength = <3>;
 	};
+
+	pmic: pfuze100 at 8 {
+		compatible = "fsl,pfuze100";
+		reg = <0x08>;
+
+		regulators {
+			sw1a_reg: sw1ab {
+				regulator-min-microvolt = <300000>;
+				regulator-max-microvolt = <1875000>;
+				regulator-boot-on;
+				regulator-always-on;
+				regulator-ramp-delay = <6250>;
+			};
+
+			sw1c_reg: sw1c {
+				regulator-min-microvolt = <300000>;
+				regulator-max-microvolt = <1875000>;
+				regulator-boot-on;
+				regulator-always-on;
+				regulator-ramp-delay = <6250>;
+			};
+
+			sw2_reg: sw2 {
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+				regulator-ramp-delay = <6250>;
+			};
+
+			sw3a_reg: sw3a {
+				regulator-min-microvolt = <400000>;
+				regulator-max-microvolt = <1975000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			sw3b_reg: sw3b {
+				regulator-min-microvolt = <400000>;
+				regulator-max-microvolt = <1975000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			sw4_reg: sw4 {
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-always-on;
+			};
+
+			swbst_reg: swbst {
+				regulator-min-microvolt = <5000000>;
+				regulator-max-microvolt = <5150000>;
+			};
+
+			snvs_reg: vsnvs {
+				regulator-min-microvolt = <1000000>;
+				regulator-max-microvolt = <3000000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			vref_reg: vrefddr {
+				regulator-boot-on;
+				regulator-always-on;
+			};
+
+			vgen1_reg: vgen1 {
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <1550000>;
+			};
+
+			vgen2_reg: vgen2 {
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <1550000>;
+			};
+
+			vgen3_reg: vgen3 {
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+			};
+
+			vgen4_reg: vgen4 {
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-always-on;
+			};
+
+			vgen5_reg: vgen5 {
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-always-on;
+			};
+
+			vgen6_reg: vgen6 {
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-always-on;
+			};
+		};
+	};
 };
 
 &iomuxc {
diff --git a/board/wandboard/wandboard.c b/board/wandboard/wandboard.c
index e0d5769131..23589df932 100644
--- a/board/wandboard/wandboard.c
+++ b/board/wandboard/wandboard.c
@@ -453,24 +453,30 @@ int board_early_init_f(void)
 
 int power_init_board(void)
 {
-	struct pmic *p;
-	u32 reg;
-
-	/* configure PFUZE100 PMIC */
-	power_pfuze100_init(PMIC_I2C_BUS);
-	p = pmic_get("PFUZE100");
-	if (p && !pmic_probe(p)) {
-		pmic_reg_read(p, PFUZE100_DEVICEID, &reg);
-		printf("PMIC:  PFUZE100 ID=0x%02x\n", reg);
-		with_pmic = true;
-
-		/* Set VGEN2 to 1.5V and enable */
-		pmic_reg_read(p, PFUZE100_VGEN2VOL, &reg);
-		reg &= ~(LDO_VOL_MASK);
-		reg |= (LDOA_1_50V | (1 << (LDO_EN)));
-		pmic_reg_write(p, PFUZE100_VGEN2VOL, reg);
+	struct udevice *dev;
+	int reg, ret;
+
+	puts("PMIC:  ");
+
+	ret = pmic_get("pfuze100", &dev);
+	if (ret < 0) {
+		printf("pmic_get() ret %d\n", ret);
+		return 0;
 	}
 
+	reg = pmic_reg_read(dev, PFUZE100_DEVICEID);
+	if (reg < 0) {
+		printf("pmic_reg_read() ret %d\n", reg);
+		return 0;
+	}
+	printf("PMIC:  PFUZE100 ID=0x%02x\n", reg);
+	with_pmic = true;
+
+	/* Set VGEN2 to 1.5V and enable */
+	reg = pmic_reg_read(dev, PFUZE100_VGEN2VOL);
+	reg &= ~(LDO_VOL_MASK);
+	reg |= (LDOA_1_50V | (1 << (LDO_EN)));
+	pmic_reg_write(dev, PFUZE100_VGEN2VOL, reg);
 	return 0;
 }
 
diff --git a/configs/wandboard_defconfig b/configs/wandboard_defconfig
index c4018cce4a..63f2639bd3 100644
--- a/configs/wandboard_defconfig
+++ b/configs/wandboard_defconfig
@@ -44,6 +44,8 @@ CONFIG_PHYLIB=y
 CONFIG_MII=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX6=y
+CONFIG_DM_PMIC=y
+CONFIG_DM_PMIC_PFUZE100=y
 CONFIG_DM_THERMAL=y
 CONFIG_USB=y
 CONFIG_DM_USB=y
diff --git a/include/configs/wandboard.h b/include/configs/wandboard.h
index 13a9fd2450..aeb66ad454 100644
--- a/include/configs/wandboard.h
+++ b/include/configs/wandboard.h
@@ -40,12 +40,6 @@
 #define CONFIG_SYS_I2C_MXC_I2C3		/* enable I2C bus 3 */
 #define CONFIG_SYS_I2C_SPEED		100000
 
-/* PMIC */
-#define CONFIG_POWER
-#define CONFIG_POWER_I2C
-#define CONFIG_POWER_PFUZE100
-#define CONFIG_POWER_PFUZE100_I2C_ADDR	0x08
-
 /* MMC Configuration */
 #define CONFIG_SYS_FSL_USDHC_NUM	2
 #define CONFIG_SYS_FSL_ESDHC_ADDR	0
-- 
2.17.1

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

* [U-Boot] [PATCH 16/17] imx6: wandboard: convert to DM_I2C
  2019-03-18 22:29 [U-Boot] [PATCH 00/17] Convert some imx6 boards to DM_VIDEO Anatolij Gustschin
                   ` (14 preceding siblings ...)
  2019-03-18 22:29 ` [U-Boot] [PATCH 15/17] imx6: wandboard: convert to DM_PMIC Anatolij Gustschin
@ 2019-03-18 22:29 ` Anatolij Gustschin
  2019-03-18 22:29 ` [U-Boot] [PATCH 17/17] imx6: wandboard: convert to DM_MMC Anatolij Gustschin
                   ` (2 subsequent siblings)
  18 siblings, 0 replies; 654+ messages in thread
From: Anatolij Gustschin @ 2019-03-18 22:29 UTC (permalink / raw)
  To: u-boot

Allow building with DM_I2C enabled.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
---
 board/wandboard/wandboard.c | 23 ++++++++++++++++++-----
 configs/wandboard_defconfig |  5 +++++
 include/configs/wandboard.h |  8 --------
 3 files changed, 23 insertions(+), 13 deletions(-)

diff --git a/board/wandboard/wandboard.c b/board/wandboard/wandboard.c
index 23589df932..c0902abe38 100644
--- a/board/wandboard/wandboard.c
+++ b/board/wandboard/wandboard.c
@@ -355,8 +355,21 @@ static void do_enable_hdmi(struct display_info_t const *dev)
 
 static int detect_i2c(struct display_info_t const *dev)
 {
+#ifdef CONFIG_DM_I2C
+	struct udevice *bus, *udev;
+	int rc;
+
+	rc = uclass_get_device_by_seq(UCLASS_I2C, dev->bus, &bus);
+	if (rc)
+		return rc;
+	rc = dm_i2c_probe(bus, dev->addr, 0, &udev);
+	if (rc)
+		return 0;
+	return 1;
+#else
 	return (0 == i2c_set_bus_num(dev->bus)) &&
 			(0 == i2c_probe(dev->addr));
+#endif
 }
 
 static void enable_fwadapt_7wvga(struct display_info_t const *dev)
@@ -547,13 +560,13 @@ int board_init(void)
 	gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
 
 #if defined(CONFIG_VIDEO_IPUV3)
-	setup_i2c(1, CONFIG_SYS_I2C_SPEED, 0x7f, &mx6dl_i2c2_pad_info);
+	setup_i2c(1, CONFIG_SYS_MXC_I2C1_SPEED, 0x7f, &mx6dl_i2c2_pad_info);
 	if (is_mx6dq() || is_mx6dqp()) {
-		setup_i2c(1, CONFIG_SYS_I2C_SPEED, 0x7f, &mx6q_i2c2_pad_info);
-		setup_i2c(2, CONFIG_SYS_I2C_SPEED, 0x7f, &mx6q_i2c3_pad_info);
+		setup_i2c(1, CONFIG_SYS_MXC_I2C1_SPEED, 0x7f, &mx6q_i2c2_pad_info);
+		setup_i2c(2, CONFIG_SYS_MXC_I2C2_SPEED, 0x7f, &mx6q_i2c3_pad_info);
 	} else {
-		setup_i2c(1, CONFIG_SYS_I2C_SPEED, 0x7f, &mx6dl_i2c2_pad_info);
-		setup_i2c(2, CONFIG_SYS_I2C_SPEED, 0x7f, &mx6dl_i2c3_pad_info);
+		setup_i2c(1, CONFIG_SYS_MXC_I2C1_SPEED, 0x7f, &mx6dl_i2c2_pad_info);
+		setup_i2c(2, CONFIG_SYS_MXC_I2C2_SPEED, 0x7f, &mx6dl_i2c3_pad_info);
 	}
 
 	setup_display();
diff --git a/configs/wandboard_defconfig b/configs/wandboard_defconfig
index 63f2639bd3..9d9fbffbbd 100644
--- a/configs/wandboard_defconfig
+++ b/configs/wandboard_defconfig
@@ -39,6 +39,11 @@ CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
 CONFIG_DM=y
 CONFIG_DWC_AHSATA=y
 CONFIG_DM_GPIO=y
+CONFIG_DM_I2C=y
+CONFIG_SYS_I2C_MXC=y
+CONFIG_SYS_I2C_MXC_I2C1=y
+CONFIG_SYS_I2C_MXC_I2C2=y
+CONFIG_SYS_I2C_MXC_I2C3=y
 CONFIG_FSL_ESDHC=y
 CONFIG_PHYLIB=y
 CONFIG_MII=y
diff --git a/include/configs/wandboard.h b/include/configs/wandboard.h
index aeb66ad454..2e6262f0f4 100644
--- a/include/configs/wandboard.h
+++ b/include/configs/wandboard.h
@@ -32,14 +32,6 @@
 #define CONFIG_SYS_MEMTEST_START	0x10000000
 #define CONFIG_SYS_MEMTEST_END		(CONFIG_SYS_MEMTEST_START + 500 * SZ_1M)
 
-/* I2C Configs */
-#define CONFIG_SYS_I2C
-#define CONFIG_SYS_I2C_MXC
-#define CONFIG_SYS_I2C_MXC_I2C1		/* enable I2C bus 1 */
-#define CONFIG_SYS_I2C_MXC_I2C2		/* enable I2C bus 2 */
-#define CONFIG_SYS_I2C_MXC_I2C3		/* enable I2C bus 3 */
-#define CONFIG_SYS_I2C_SPEED		100000
-
 /* MMC Configuration */
 #define CONFIG_SYS_FSL_USDHC_NUM	2
 #define CONFIG_SYS_FSL_ESDHC_ADDR	0
-- 
2.17.1

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

* [U-Boot] [PATCH 17/17] imx6: wandboard: convert to DM_MMC
  2019-03-18 22:29 [U-Boot] [PATCH 00/17] Convert some imx6 boards to DM_VIDEO Anatolij Gustschin
                   ` (15 preceding siblings ...)
  2019-03-18 22:29 ` [U-Boot] [PATCH 16/17] imx6: wandboard: convert to DM_I2C Anatolij Gustschin
@ 2019-03-18 22:29 ` Anatolij Gustschin
  2019-03-18 22:37 ` [U-Boot] [PATCH 00/17] Convert some imx6 boards to DM_VIDEO Anatolij Gustschin
  2019-03-20 13:25 ` Fabio Estevam
  18 siblings, 0 replies; 654+ messages in thread
From: Anatolij Gustschin @ 2019-03-18 22:29 UTC (permalink / raw)
  To: u-boot

Move SDHC init to SPL code since it is not required with
DM_MMC. Enable DM_MMC support.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
---
 board/wandboard/spl.c       | 92 +++++++++++++++++++++++++++++++++++
 board/wandboard/wandboard.c | 97 -------------------------------------
 configs/wandboard_defconfig |  1 +
 3 files changed, 93 insertions(+), 97 deletions(-)

diff --git a/board/wandboard/spl.c b/board/wandboard/spl.c
index 9c3350019c..000cb109fc 100644
--- a/board/wandboard/spl.c
+++ b/board/wandboard/spl.c
@@ -422,4 +422,96 @@ void board_init_f(ulong dummy)
 	/* DDR initialization */
 	spl_dram_init();
 }
+
+#define USDHC1_CD_GPIO		IMX_GPIO_NR(1, 2)
+#define USDHC3_CD_GPIO		IMX_GPIO_NR(3, 9)
+
+#define USDHC_PAD_CTRL (PAD_CTL_PUS_47K_UP |			\
+	PAD_CTL_SPEED_LOW | PAD_CTL_DSE_80ohm |			\
+	PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
+
+static struct fsl_esdhc_cfg usdhc_cfg[2] = {
+	{USDHC3_BASE_ADDR},
+	{USDHC1_BASE_ADDR},
+};
+
+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)),
+	/* Carrier MicroSD Card Detect */
+	IOMUX_PADS(PAD_GPIO_2__GPIO1_IO02  | MUX_PAD_CTRL(NO_PAD_CTRL)),
+};
+
+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)),
+	/* SOM MicroSD Card Detect */
+	IOMUX_PADS(PAD_EIM_DA9__GPIO3_IO09  | MUX_PAD_CTRL(NO_PAD_CTRL)),
+};
+
+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 USDHC3_BASE_ADDR:
+		ret = !gpio_get_value(USDHC3_CD_GPIO);
+		break;
+	}
+
+	return ret;
+}
+
+int board_mmc_init(bd_t *bis)
+{
+	int ret;
+	u32 index = 0;
+
+	/*
+	 * Following map is done:
+	 * (U-Boot device node)    (Physical Port)
+	 * mmc0                    SOM MicroSD
+	 * mmc1                    Carrier board MicroSD
+	 */
+	for (index = 0; index < CONFIG_SYS_FSL_USDHC_NUM; ++index) {
+		switch (index) {
+		case 0:
+			SETUP_IOMUX_PADS(usdhc3_pads);
+			usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK);
+			usdhc_cfg[0].max_bus_width = 4;
+			gpio_direction_input(USDHC3_CD_GPIO);
+			break;
+		case 1:
+			SETUP_IOMUX_PADS(usdhc1_pads);
+			usdhc_cfg[1].sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK);
+			usdhc_cfg[1].max_bus_width = 4;
+			gpio_direction_input(USDHC1_CD_GPIO);
+			break;
+		default:
+			printf("Warning: you configured more USDHC controllers"
+			       "(%d) then supported by the board (%d)\n",
+			       index + 1, CONFIG_SYS_FSL_USDHC_NUM);
+			return -EINVAL;
+		}
+
+		ret = fsl_esdhc_initialize(bis, &usdhc_cfg[index]);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
 #endif
diff --git a/board/wandboard/wandboard.c b/board/wandboard/wandboard.c
index c0902abe38..69fbc8b690 100644
--- a/board/wandboard/wandboard.c
+++ b/board/wandboard/wandboard.c
@@ -22,8 +22,6 @@
 #include <asm/io.h>
 #include <linux/sizes.h>
 #include <common.h>
-#include <fsl_esdhc.h>
-#include <mmc.h>
 #include <miiphy.h>
 #include <netdev.h>
 #include <phy.h>
@@ -37,10 +35,6 @@ DECLARE_GLOBAL_DATA_PTR;
 	PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm |			\
 	PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
 
-#define USDHC_PAD_CTRL (PAD_CTL_PUS_47K_UP |			\
-	PAD_CTL_SPEED_LOW | PAD_CTL_DSE_80ohm |			\
-	PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
-
 #define ENET_PAD_CTRL  (PAD_CTL_PUS_100K_UP |			\
 	PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
 
@@ -48,8 +42,6 @@ DECLARE_GLOBAL_DATA_PTR;
 	PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS |	\
 	PAD_CTL_ODE | PAD_CTL_SRE_FAST)
 
-#define USDHC1_CD_GPIO		IMX_GPIO_NR(1, 2)
-#define USDHC3_CD_GPIO		IMX_GPIO_NR(3, 9)
 #define ETH_PHY_RESET		IMX_GPIO_NR(3, 29)
 #define ETH_PHY_AR8035_POWER	IMX_GPIO_NR(7, 13)
 #define REV_DETECTION		IMX_GPIO_NR(2, 28)
@@ -68,28 +60,6 @@ static iomux_v3_cfg_t const uart1_pads[] = {
 	IOMUX_PADS(PAD_CSI0_DAT11__UART1_RX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL)),
 };
 
-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)),
-	/* Carrier MicroSD Card Detect */
-	IOMUX_PADS(PAD_GPIO_2__GPIO1_IO02  | MUX_PAD_CTRL(NO_PAD_CTRL)),
-};
-
-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)),
-	/* SOM MicroSD Card Detect */
-	IOMUX_PADS(PAD_EIM_DA9__GPIO3_IO09  | MUX_PAD_CTRL(NO_PAD_CTRL)),
-};
-
 static iomux_v3_cfg_t const enet_pads[] = {
 	IOMUX_PADS(PAD_ENET_MDIO__ENET_MDIO  | MUX_PAD_CTRL(ENET_PAD_CTRL)),
 	IOMUX_PADS(PAD_ENET_MDC__ENET_MDC    | MUX_PAD_CTRL(ENET_PAD_CTRL)),
@@ -145,73 +115,6 @@ static void setup_iomux_enet(void)
 	udelay(100);
 }
 
-static struct fsl_esdhc_cfg usdhc_cfg[2] = {
-	{USDHC3_BASE_ADDR},
-	{USDHC1_BASE_ADDR},
-};
-
-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 USDHC3_BASE_ADDR:
-		ret = !gpio_get_value(USDHC3_CD_GPIO);
-		break;
-	}
-
-	return ret;
-}
-
-int board_mmc_init(bd_t *bis)
-{
-	int ret;
-	u32 index = 0;
-
-#if !CONFIG_IS_ENABLED(DM_MMC)
-	gpio_request(USDHC1_CD_GPIO, "USDHC1_CD");
-	gpio_request(USDHC3_CD_GPIO, "USDHC3_CD");
-#endif
-
-	/*
-	 * Following map is done:
-	 * (U-Boot device node)    (Physical Port)
-	 * mmc0                    SOM MicroSD
-	 * mmc1                    Carrier board MicroSD
-	 */
-	for (index = 0; index < CONFIG_SYS_FSL_USDHC_NUM; ++index) {
-		switch (index) {
-		case 0:
-			SETUP_IOMUX_PADS(usdhc3_pads);
-			usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK);
-			usdhc_cfg[0].max_bus_width = 4;
-			gpio_direction_input(USDHC3_CD_GPIO);
-			break;
-		case 1:
-			SETUP_IOMUX_PADS(usdhc1_pads);
-			usdhc_cfg[1].sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK);
-			usdhc_cfg[1].max_bus_width = 4;
-			gpio_direction_input(USDHC1_CD_GPIO);
-			break;
-		default:
-			printf("Warning: you configured more USDHC controllers"
-			       "(%d) then supported by the board (%d)\n",
-			       index + 1, CONFIG_SYS_FSL_USDHC_NUM);
-			return -EINVAL;
-		}
-
-		ret = fsl_esdhc_initialize(bis, &usdhc_cfg[index]);
-		if (ret)
-			return ret;
-	}
-
-	return 0;
-}
-
 static int ar8031_phy_fixup(struct phy_device *phydev)
 {
 	unsigned short val;
diff --git a/configs/wandboard_defconfig b/configs/wandboard_defconfig
index 9d9fbffbbd..7f64ea65b1 100644
--- a/configs/wandboard_defconfig
+++ b/configs/wandboard_defconfig
@@ -44,6 +44,7 @@ CONFIG_SYS_I2C_MXC=y
 CONFIG_SYS_I2C_MXC_I2C1=y
 CONFIG_SYS_I2C_MXC_I2C2=y
 CONFIG_SYS_I2C_MXC_I2C3=y
+CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_PHYLIB=y
 CONFIG_MII=y
-- 
2.17.1

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

* [U-Boot] [PATCH 00/17] Convert some imx6 boards to DM_VIDEO
  2019-03-18 22:29 [U-Boot] [PATCH 00/17] Convert some imx6 boards to DM_VIDEO Anatolij Gustschin
                   ` (16 preceding siblings ...)
  2019-03-18 22:29 ` [U-Boot] [PATCH 17/17] imx6: wandboard: convert to DM_MMC Anatolij Gustschin
@ 2019-03-18 22:37 ` Anatolij Gustschin
  2019-03-20 13:25 ` Fabio Estevam
  18 siblings, 0 replies; 654+ messages in thread
From: Anatolij Gustschin @ 2019-03-18 22:37 UTC (permalink / raw)
  To: u-boot

On Mon, 18 Mar 2019 23:29:30 +0100
Anatolij Gustschin agust at denx.de wrote:

> This series starts conversion of ipuv3 driver to DM_VIDEO.

These patches are based on 'next' branch of git://git.denx.de/u-boot-imx.git.

--
Anatolij

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

* [U-Boot] [PATCH 00/17] Convert some imx6 boards to DM_VIDEO
  2019-03-18 22:29 [U-Boot] [PATCH 00/17] Convert some imx6 boards to DM_VIDEO Anatolij Gustschin
                   ` (17 preceding siblings ...)
  2019-03-18 22:37 ` [U-Boot] [PATCH 00/17] Convert some imx6 boards to DM_VIDEO Anatolij Gustschin
@ 2019-03-20 13:25 ` Fabio Estevam
  2019-03-20 13:38   ` Anatolij Gustschin
  18 siblings, 1 reply; 654+ messages in thread
From: Fabio Estevam @ 2019-03-20 13:25 UTC (permalink / raw)
  To: u-boot

Hi Anatolij,

On Mon, Mar 18, 2019 at 7:30 PM Anatolij Gustschin <agust@denx.de> wrote:
>
> This series starts conversion of ipuv3 driver to DM_VIDEO.
> It has been tested on apalis_imx6 module with LVDS display
> attached and on wandboard with HDMI display.
>
> With applied "[PATCH 17/17] imx6: wandboard: convert to DM_MMC"
> building wandboard target doesn't work. To fix this please
> apply patches [1], [2] and enable CONFIG_AHCI and CONFIG_DM_SCSI
> in wandboard_defconfig.
>
> [1] http://patchwork.ozlabs.org/patch/1050141
> [2] http://patchwork.ozlabs.org/patch/1050143
>
> Anatolij Gustschin (17):
>   video: ipuv3: add DM_VIDEO support
>   video: move ipuv3 files to subdirectory
>   imx: move CONFIG_VIDEO_IPUV3 to defconfigs
>   imx6: dts: add 'u-boot,dm-pre-reloc' to soc and ipu nodes
>   apalis_imx6: convert to DM_VIDEO
>   imx6: icore: convert to DM_VIDEO
>   imx6: ge_bx50v3: convert to DM_VIDEO
>   colibri_imx6: convert to DM_VIDEO
>   mx6sabresd: convert to DM_VIDEO
>   mx6sabreauto: convert to DM_VIDEO
>   imx6: wandboard: add device tree

Thanks for converting wandboard to DM.

I haven't had a chance to test this series yet, but I am wondering if
the SPL size can still fit in the 64k of the internal RAM available on
mx6solo.

Do you know?

Thanks

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

* [U-Boot] [PATCH 00/17] Convert some imx6 boards to DM_VIDEO
  2019-03-20 13:25 ` Fabio Estevam
@ 2019-03-20 13:38   ` Anatolij Gustschin
  2019-03-20 13:40     ` Fabio Estevam
  0 siblings, 1 reply; 654+ messages in thread
From: Anatolij Gustschin @ 2019-03-20 13:38 UTC (permalink / raw)
  To: u-boot

Hi Fabio,

On Wed, 20 Mar 2019 10:25:02 -0300
Fabio Estevam festevam at gmail.com wrote:
...
> Thanks for converting wandboard to DM.
> 
> I haven't had a chance to test this series yet, but I am wondering if
> the SPL size can still fit in the 64k of the internal RAM available on
> mx6solo.
> 
> Do you know?

I've tested on wandboard with MX6Solo, the SPL size was 47 KiB.

Thanks,
Anatolij

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

* [U-Boot] [PATCH 00/17] Convert some imx6 boards to DM_VIDEO
  2019-03-20 13:38   ` Anatolij Gustschin
@ 2019-03-20 13:40     ` Fabio Estevam
  0 siblings, 0 replies; 654+ messages in thread
From: Fabio Estevam @ 2019-03-20 13:40 UTC (permalink / raw)
  To: u-boot

Hi Anatolij,

On Wed, Mar 20, 2019 at 10:38 AM Anatolij Gustschin <agust@denx.de> wrote:

> I've tested on wandboard with MX6Solo, the SPL size was 47 KiB.

Excellent! That's great news, thanks :-)

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

* [U-Boot] [PATCH 3/3] logos: Add the TechNexion's logo
  2019-02-18 22:53   ` Fabio Estevam
@ 2019-03-20 17:39     ` Fabio Estevam
  0 siblings, 0 replies; 654+ messages in thread
From: Fabio Estevam @ 2019-03-20 17:39 UTC (permalink / raw)
  To: u-boot

Hi Stefano,

On Mon, Feb 18, 2019 at 7:53 PM Fabio Estevam <festevam@gmail.com> wrote:
>
> Hi Stefano,
>
> On Tue, Dec 11, 2018 at 4:41 PM Otavio Salvador <otavio@ossystems.com.br> wrote:
> >
> > From: Fabio Estevam <festevam@gmail.com>
> >
> > Add the TechNexion's logo from their internal U-Boot tree.
> >
> > Signed-off-by: Fabio Estevam <festevam@gmail.com>
> > Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
> > ---
> >
> >  tools/logos/technexion.bmp | Bin 0 -> 22390 bytes
> >  1 file changed, 0 insertions(+), 0 deletions(-)
> >  create mode 100644 tools/logos/technexion.bmp
>
> I noticed this patch has not been applied.
>
> Maybe a patchwork bug?
>
> Could you please consider applying it?

Would you like me to resend this one?

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

* [U-Boot] [U-Boot, v1, 26/26] board: colibri_imx6: check for and report ecc errors in fuses
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 26/26] board: colibri_imx6: check for and report ecc errors in fuses sbabic at denx.de
@ 2019-03-24 21:42           ` Marcel Ziswiler
  2019-03-25 12:14             ` Stefano Babic
  0 siblings, 1 reply; 654+ messages in thread
From: Marcel Ziswiler @ 2019-03-24 21:42 UTC (permalink / raw)
  To: u-boot

Hi Stefano

On Wed, 2019-03-13 at 09:38 +0000, sbabic at denx.de wrote:
> > From: Gerard Salvatella <gerard.salvatella@toradex.com>
> > The PMIC on the Colibri iMX6 may have ECC errors in fuses that will
> > prevent correct settings. Up to one bit error per fuse bank can be
> > reported and corrected by the ECC logic. Two bit errors can only be
> > reported.
> > Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com>
> > Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> 
> Applied to u-boot-imx, -next, thanks !

Unfortunately, I can't find that one anywhere on u-boot-imx.git/next.

I will resend it as a separate patch for you to pick up, OK?

BTW: I will also send a V2 of the Colibri Vybrid stuff, plus the
Colibri iMX6ULL overhaul and the initial add of the Colibri iMX8QXP.

> Best regards,
> Stefano Babic

Cheers

Marcel

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

* [U-Boot] [U-Boot, v1, 26/26] board: colibri_imx6: check for and report ecc errors in fuses
  2019-03-24 21:42           ` Marcel Ziswiler
@ 2019-03-25 12:14             ` Stefano Babic
  0 siblings, 0 replies; 654+ messages in thread
From: Stefano Babic @ 2019-03-25 12:14 UTC (permalink / raw)
  To: u-boot

On 24/03/19 22:42, Marcel Ziswiler wrote:
> Hi Stefano
> 
> On Wed, 2019-03-13 at 09:38 +0000, sbabic at denx.de wrote:
>>> From: Gerard Salvatella <gerard.salvatella@toradex.com>
>>> The PMIC on the Colibri iMX6 may have ECC errors in fuses that will
>>> prevent correct settings. Up to one bit error per fuse bank can be
>>> reported and corrected by the ECC logic. Two bit errors can only be
>>> reported.
>>> Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com>
>>> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>>
>> Applied to u-boot-imx, -next, thanks !
> 
> Unfortunately, I can't find that one anywhere on u-boot-imx.git/next.
> 
> I will resend it as a separate patch for you to pick up, OK?

mmhhh...I have applied them, I see in my local -next, I am sure I pushed
before. Let me see why they do not appear on git.denx.de, you do not
need to repush, they are alreay applied.

> 
> BTW: I will also send a V2 of the Colibri Vybrid stuff, plus the
> Colibri iMX6ULL overhaul and the initial add of the Colibri iMX8QXP.

Ok, thanks for info. I set V1 as obsolete in patchwork.

Regards,
Stefano

> 
>> Best regards,
>> Stefano Babic
> 
> Cheers
> 
> Marcel
> 


-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [PATCH v2 00/22] colibri vybrid fixes, device tree enablement and driver model conversion
@ 2019-03-25 16:24 Marcel Ziswiler
  2019-03-25 16:24 ` [U-Boot] [PATCH v2 01/22] Add missing space in comment Marcel Ziswiler
                   ` (21 more replies)
  0 siblings, 22 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-03-25 16:24 UTC (permalink / raw)
  To: u-boot


This series addresses some shortcomings, enables/introduces device tree
support and converts all except video to using the driver model. This is
fully tested both running our latest downstream BSP as well as the
mainline Linux kernel.

This series is based on Lukasz' previous work on Vybrid [1] and is
available together with his and my previous series addressing Apalis
and Colibri iMX6 on our git server [2].

[1] https://patchwork.ozlabs.org/cover/1041597/
[2] http://git.toradex.com/cgit/u-boot-toradex.git/log/?h=for-next

Changes in v2:
- Added various reviewed-bys.

Bhuvanchandra DV (1):
  colibri_vf: sync the board info message

Gerard Salvatella (1):
  colibri_vf: fix sdboot for vybrid modules

Marcel Ziswiler (12):
  Add missing space in comment
  vf610: ddrmc: add missing include
  imx: bootaux: add dependency on vf610
  configs: move CONFIG_USB_EHCI_VF to Kconfig
  configs: colibri_vf: remove obsolete mmc/sd card environment
  configs: colibri_vf: limit size of malloc() pool before relocation
  configs: move CONFIG_MXC_OCOTP to Kconfig
  ARM: dts: colibri_vf: update device trees
  configs: colibri_vf: disable obscure options
  colibri_vf: migrate pinctrl and regulators to dtb/dm
  colibri_vf: migrate fec, esdhc, nfc and usb to driver model
  config: colibri_vf: use macros from linux/sizes.h

Stefan Agner (8):
  colibri_vf: add distroboot support
  colibri_vf: set fdtfile for distroboot
  colibri_vf: enable user debug by default
  colibri_vf: disable undefined instruction events in user debug
  config: colibri_vf: enable mtd partitions via dt
  arm: vf610: add uart2 clock/pinmux support
  colibri_vf: adjust timing according to data sheet
  colibri_vf: use leveling evaluated by DDR validation tools

 arch/arm/dts/vf-colibri-u-boot.dtsi           |  23 ++
 arch/arm/dts/vf-colibri.dtsi                  | 198 ++++++++++++++-
 arch/arm/dts/vf500-colibri.dts                |   1 +
 arch/arm/dts/vf610-colibri.dts                |   1 +
 arch/arm/include/asm/arch-vf610/crm_regs.h    |   1 +
 arch/arm/include/asm/arch-vf610/ddrmc-vf610.h |   2 +
 arch/arm/include/asm/arch-vf610/iomux-vf610.h |   6 +-
 arch/arm/mach-imx/Kconfig                     |   2 +-
 board/freescale/imx8qxp_mek/imx8qxp_mek.c     |   2 +-
 board/toradex/colibri_vf/MAINTAINERS          |   4 +-
 board/toradex/colibri_vf/colibri_vf.c         | 240 ++----------------
 configs/bk4r1_defconfig                       |   1 -
 configs/colibri_vf_defconfig                  |  22 +-
 configs/pcm052_defconfig                      |   1 -
 drivers/misc/Kconfig                          |   2 +
 drivers/usb/host/Kconfig                      |   7 +
 drivers/video/videomodes.c                    |   2 +-
 include/configs/advantech_dms-ba16.h          |   2 -
 include/configs/apalis_imx6.h                 |   5 -
 include/configs/colibri_imx6.h                |   5 -
 include/configs/colibri_vf.h                  | 109 ++++----
 include/configs/dh_imx6.h                     |   5 -
 include/configs/ge_bx50v3.h                   |   2 -
 include/configs/imx8mq_evk.h                  |   1 -
 include/configs/kp_imx6q_tpc.h                |   5 -
 include/configs/mx6_common.h                  |   3 -
 include/configs/mx7_common.h                  |   3 -
 include/configs/vf610twr.h                    |   4 -
 scripts/config_whitelist.txt                  |   1 -
 29 files changed, 344 insertions(+), 316 deletions(-)
 create mode 100644 arch/arm/dts/vf-colibri-u-boot.dtsi

-- 
2.20.1

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

* [U-Boot] [PATCH v2 01/22] Add missing space in comment
  2019-03-25 16:24 [U-Boot] [PATCH v2 00/22] colibri vybrid fixes, device tree enablement and driver model conversion Marcel Ziswiler
@ 2019-03-25 16:24 ` Marcel Ziswiler
  2019-03-25 16:24 ` [U-Boot] [PATCH v2 02/22] vf610: ddrmc: add missing include Marcel Ziswiler
                   ` (20 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-03-25 16:24 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Spotted two missing spaces in comments.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v2: None

 board/freescale/imx8qxp_mek/imx8qxp_mek.c | 2 +-
 drivers/video/videomodes.c                | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/board/freescale/imx8qxp_mek/imx8qxp_mek.c b/board/freescale/imx8qxp_mek/imx8qxp_mek.c
index a4c587a390..63cd605b6a 100644
--- a/board/freescale/imx8qxp_mek/imx8qxp_mek.c
+++ b/board/freescale/imx8qxp_mek/imx8qxp_mek.c
@@ -112,7 +112,7 @@ void build_info(void)
 	sc_misc_build_info(-1, &sc_build, &sc_commit);
 	if (!sc_build) {
 		printf("SCFW does not support build info\n");
-		sc_commit = 0; /* Display 0 when the build info is not supported*/
+		sc_commit = 0; /* Display 0 when the build info is not supported */
 	}
 	printf("Build: SCFW %x\n", sc_commit);
 }
diff --git a/drivers/video/videomodes.c b/drivers/video/videomodes.c
index 1cfeaa980f..d7614329ff 100644
--- a/drivers/video/videomodes.c
+++ b/drivers/video/videomodes.c
@@ -397,7 +397,7 @@ int video_edid_dtd_to_ctfb_res_modes(struct edid_detailed_timing *t,
 	    EDID_DETAILED_TIMING_VERTICAL_BLANKING(*t) == 0 ||
 	    EDID_DETAILED_TIMING_HSYNC_OFFSET(*t) == 0 ||
 	    EDID_DETAILED_TIMING_VSYNC_OFFSET(*t) == 0 ||
-	    /* 3d formats are not supported*/
+	    /* 3d formats are not supported */
 	    EDID_DETAILED_TIMING_FLAG_STEREO(*t) != 0)
 		return -EINVAL;
 
-- 
2.20.1

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

* [U-Boot] [PATCH v2 02/22] vf610: ddrmc: add missing include
  2019-03-25 16:24 [U-Boot] [PATCH v2 00/22] colibri vybrid fixes, device tree enablement and driver model conversion Marcel Ziswiler
  2019-03-25 16:24 ` [U-Boot] [PATCH v2 01/22] Add missing space in comment Marcel Ziswiler
@ 2019-03-25 16:24 ` Marcel Ziswiler
  2019-04-01  8:18   ` Lukasz Majewski
  2019-03-25 16:24 ` [U-Boot] [PATCH v2 03/22] imx: bootaux: add dependency on vf610 Marcel Ziswiler
                   ` (19 subsequent siblings)
  21 siblings, 1 reply; 654+ messages in thread
From: Marcel Ziswiler @ 2019-03-25 16:24 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

The DDR memory controller include file for the Vybrid uses
iomux_v3_cfg_t without actually including iomux-vf610.h.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v2: None

 arch/arm/include/asm/arch-vf610/ddrmc-vf610.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm/include/asm/arch-vf610/ddrmc-vf610.h b/arch/arm/include/asm/arch-vf610/ddrmc-vf610.h
index c7da2b8a5e..03e3cecb95 100644
--- a/arch/arm/include/asm/arch-vf610/ddrmc-vf610.h
+++ b/arch/arm/include/asm/arch-vf610/ddrmc-vf610.h
@@ -10,6 +10,8 @@
 #ifndef __ASM_ARCH_VF610_DDRMC_H
 #define __ASM_ARCH_VF610_DDRMC_H
 
+#include <asm/arch/iomux-vf610.h>
+
 struct ddr3_jedec_timings {
 	u8 tinit;
 	u32 trst_pwron;
-- 
2.20.1

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

* [U-Boot] [PATCH v2 03/22] imx: bootaux: add dependency on vf610
  2019-03-25 16:24 [U-Boot] [PATCH v2 00/22] colibri vybrid fixes, device tree enablement and driver model conversion Marcel Ziswiler
  2019-03-25 16:24 ` [U-Boot] [PATCH v2 01/22] Add missing space in comment Marcel Ziswiler
  2019-03-25 16:24 ` [U-Boot] [PATCH v2 02/22] vf610: ddrmc: add missing include Marcel Ziswiler
@ 2019-03-25 16:24 ` Marcel Ziswiler
  2019-04-01  8:18   ` Lukasz Majewski
  2019-03-25 16:24 ` [U-Boot] [PATCH v2 04/22] configs: move CONFIG_USB_EHCI_VF to Kconfig Marcel Ziswiler
                   ` (18 subsequent siblings)
  21 siblings, 1 reply; 654+ messages in thread
From: Marcel Ziswiler @ 2019-03-25 16:24 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Allow using bootaux also on VF610 aka Vybrid.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v2: None

 arch/arm/mach-imx/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index 8631fbd481..ec09ef240f 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -23,7 +23,7 @@ config IMX_RDC
 
 config IMX_BOOTAUX
 	bool "Support boot auxiliary core"
-	depends on ARCH_MX7 || ARCH_MX6
+	depends on ARCH_MX7 || ARCH_MX6 || ARCH_VF610
 	help
 	  bootaux [addr] to boot auxiliary core.
 
-- 
2.20.1

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

* [U-Boot] [PATCH v2 04/22] configs: move CONFIG_USB_EHCI_VF to Kconfig
  2019-03-25 16:24 [U-Boot] [PATCH v2 00/22] colibri vybrid fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (2 preceding siblings ...)
  2019-03-25 16:24 ` [U-Boot] [PATCH v2 03/22] imx: bootaux: add dependency on vf610 Marcel Ziswiler
@ 2019-03-25 16:24 ` Marcel Ziswiler
       [not found]   ` <swarren@nvidia.com>
  2019-04-01  8:18   ` Lukasz Majewski
  2019-03-25 16:24 ` [U-Boot] [PATCH v2 05/22] configs: colibri_vf: remove obsolete mmc/sd card environment Marcel Ziswiler
                   ` (17 subsequent siblings)
  21 siblings, 2 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-03-25 16:24 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Move CONFIG_USB_EHCI_VF to drivers/usb/host/Kconfig and update the one
and only user thereof being colibri_vf.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v2: None

 drivers/usb/host/Kconfig     | 7 +++++++
 include/configs/colibri_vf.h | 1 -
 scripts/config_whitelist.txt | 1 -
 3 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
index ba1e6bfa43..0fbc115801 100644
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -154,6 +154,13 @@ config USB_EHCI_OMAP
 	  Enables support for the on-chip EHCI controller on OMAP3 and later
 	  SoCs.
 
+config USB_EHCI_VF
+	bool "Support for Vybrid on-chip EHCI USB controller"
+	depends on ARCH_VF610
+	default y
+	help
+	  Enables support for the on-chip EHCI controller on Vybrid SoCs.
+
 if USB_EHCI_MX7
 
 config MXC_USB_OTG_HACTIVE
diff --git a/include/configs/colibri_vf.h b/include/configs/colibri_vf.h
index 31ff8a00a6..2fe7f217fa 100644
--- a/include/configs/colibri_vf.h
+++ b/include/configs/colibri_vf.h
@@ -159,7 +159,6 @@
 #endif
 
 /* USB Host Support */
-#define CONFIG_USB_EHCI_VF
 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2
 #define CONFIG_EHCI_HCD_INIT_AFTER_RESET
 
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index db00376d92..7c14b24bc1 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -4522,7 +4522,6 @@ CONFIG_USB_EHCI_MXS
 CONFIG_USB_EHCI_SPEAR
 CONFIG_USB_EHCI_TXFIFO_THRESH
 CONFIG_USB_EHCI_VCT
-CONFIG_USB_EHCI_VF
 CONFIG_USB_ETH_QMULT
 CONFIG_USB_ETH_SUBSET
 CONFIG_USB_EXT2_BOOT
-- 
2.20.1

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

* [U-Boot] [PATCH v2 05/22] configs: colibri_vf: remove obsolete mmc/sd card environment
  2019-03-25 16:24 [U-Boot] [PATCH v2 00/22] colibri vybrid fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (3 preceding siblings ...)
  2019-03-25 16:24 ` [U-Boot] [PATCH v2 04/22] configs: move CONFIG_USB_EHCI_VF to Kconfig Marcel Ziswiler
@ 2019-03-25 16:24 ` Marcel Ziswiler
  2019-04-01  8:19   ` Lukasz Majewski
  2019-03-25 16:24 ` [U-Boot] [PATCH v2 06/22] configs: colibri_vf: limit size of malloc() pool before relocation Marcel Ziswiler
                   ` (16 subsequent siblings)
  21 siblings, 1 reply; 654+ messages in thread
From: Marcel Ziswiler @ 2019-03-25 16:24 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Remove obsolete MMC/SD card environment configuration dating back to
un-fused samples times.

While at it also remove meanwhile spurious "USB Storage" comment.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v2: None

 include/configs/colibri_vf.h | 9 ---------
 1 file changed, 9 deletions(-)

diff --git a/include/configs/colibri_vf.h b/include/configs/colibri_vf.h
index 2fe7f217fa..7b974d9e97 100644
--- a/include/configs/colibri_vf.h
+++ b/include/configs/colibri_vf.h
@@ -145,13 +145,6 @@
 	(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
 
 /* Environment organization */
-
-#ifdef CONFIG_ENV_IS_IN_MMC
-#define CONFIG_SYS_MMC_ENV_DEV		0
-#define CONFIG_ENV_OFFSET		(12 * 64 * 1024)
-#define CONFIG_ENV_SIZE			(8 * 1024)
-#endif
-
 #ifdef CONFIG_ENV_IS_IN_NAND
 #define CONFIG_ENV_SIZE			(64 * 2048)
 #define CONFIG_ENV_RANGE		(4 * 64 * 2048)
@@ -165,6 +158,4 @@
 /* USB DFU */
 #define CONFIG_SYS_DFU_DATA_BUF_SIZE (1024 * 1024)
 
-/* USB Storage */
-
 #endif /* __CONFIG_H */
-- 
2.20.1

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

* [U-Boot] [PATCH v2 06/22] configs: colibri_vf: limit size of malloc() pool before relocation
  2019-03-25 16:24 [U-Boot] [PATCH v2 00/22] colibri vybrid fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (4 preceding siblings ...)
  2019-03-25 16:24 ` [U-Boot] [PATCH v2 05/22] configs: colibri_vf: remove obsolete mmc/sd card environment Marcel Ziswiler
@ 2019-03-25 16:24 ` Marcel Ziswiler
  2019-04-01  8:19   ` Lukasz Majewski
  2019-03-25 16:24 ` [U-Boot] [PATCH v2 07/22] configs: move CONFIG_MXC_OCOTP to Kconfig Marcel Ziswiler
                   ` (15 subsequent siblings)
  21 siblings, 1 reply; 654+ messages in thread
From: Marcel Ziswiler @ 2019-03-25 16:24 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Limit the size of the malloc() pool before relocation
(SYS_MALLOC_F_LEN).

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v2: None

 configs/colibri_vf_defconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/configs/colibri_vf_defconfig b/configs/colibri_vf_defconfig
index 4192501257..8188582ed9 100644
--- a/configs/colibri_vf_defconfig
+++ b/configs/colibri_vf_defconfig
@@ -2,6 +2,7 @@ CONFIG_ARM=y
 CONFIG_SYS_THUMB_BUILD=y
 CONFIG_ARCH_VF610=y
 CONFIG_SYS_TEXT_BASE=0x3f401000
+CONFIG_SYS_MALLOC_F_LEN=0x800
 CONFIG_TARGET_COLIBRI_VF=y
 CONFIG_ENV_VARS_UBOOT_CONFIG=y
 CONFIG_NR_DRAM_BANKS=1
-- 
2.20.1

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

* [U-Boot] [PATCH v2 07/22] configs: move CONFIG_MXC_OCOTP to Kconfig
  2019-03-25 16:24 [U-Boot] [PATCH v2 00/22] colibri vybrid fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (5 preceding siblings ...)
  2019-03-25 16:24 ` [U-Boot] [PATCH v2 06/22] configs: colibri_vf: limit size of malloc() pool before relocation Marcel Ziswiler
@ 2019-03-25 16:24 ` Marcel Ziswiler
  2019-03-25 16:24 ` [U-Boot] [PATCH v2 08/22] ARM: dts: colibri_vf: update device trees Marcel Ziswiler
                   ` (14 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-03-25 16:24 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

While commit 3e020f03e94f ("driver: misc: add MXC_OCOTP Kconfig entry")
introduced a Kconfig entry it did not actually migrate all
configurations to using it.

As CONFIG_MXC_OCOTP was in mx{6/7}_common.h enable it by default on
those architectures. Additionally, also enable it on ARCH_IMX8M and
ARCH_VF610 where all current members enabled it through their legacy
configuration header files.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Lukasz Majewski <lukma@denx.de>

---

Changes in v2: None

 configs/bk4r1_defconfig              | 1 -
 configs/pcm052_defconfig             | 1 -
 drivers/misc/Kconfig                 | 2 ++
 include/configs/advantech_dms-ba16.h | 2 --
 include/configs/apalis_imx6.h        | 5 -----
 include/configs/colibri_imx6.h       | 5 -----
 include/configs/colibri_vf.h         | 4 ----
 include/configs/dh_imx6.h            | 5 -----
 include/configs/ge_bx50v3.h          | 2 --
 include/configs/imx8mq_evk.h         | 1 -
 include/configs/kp_imx6q_tpc.h       | 5 -----
 include/configs/mx6_common.h         | 3 ---
 include/configs/mx7_common.h         | 3 ---
 include/configs/vf610twr.h           | 4 ----
 14 files changed, 2 insertions(+), 41 deletions(-)

diff --git a/configs/bk4r1_defconfig b/configs/bk4r1_defconfig
index e3852f4856..439207fd39 100644
--- a/configs/bk4r1_defconfig
+++ b/configs/bk4r1_defconfig
@@ -49,7 +49,6 @@ CONFIG_SYS_I2C_MXC_I2C4=y
 CONFIG_LED=y
 CONFIG_LED_GPIO=y
 CONFIG_MISC=y
-CONFIG_MXC_OCOTP=y
 CONFIG_I2C_EEPROM=y
 CONFIG_SYS_I2C_EEPROM_ADDR=0x50
 CONFIG_SYS_I2C_EEPROM_BUS=2
diff --git a/configs/pcm052_defconfig b/configs/pcm052_defconfig
index 906abbfd69..fd093b35c2 100644
--- a/configs/pcm052_defconfig
+++ b/configs/pcm052_defconfig
@@ -36,7 +36,6 @@ CONFIG_SYS_I2C_MXC_I2C2=y
 CONFIG_SYS_I2C_MXC_I2C3=y
 CONFIG_SYS_I2C_MXC_I2C4=y
 CONFIG_MISC=y
-CONFIG_MXC_OCOTP=y
 CONFIG_I2C_EEPROM=y
 CONFIG_SYS_I2C_EEPROM_ADDR=0x50
 CONFIG_SYS_I2C_EEPROM_BUS=2
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
index d6e677fba8..0e645f58be 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -128,6 +128,8 @@ config JZ4780_EFUSE
 
 config MXC_OCOTP
 	bool "Enable MXC OCOTP Driver"
+	depends on ARCH_IMX8M || ARCH_MX6 || ARCH_MX7 || ARCH_VF610
+	default y
 	help
 	  If you say Y here, you will get support for the One Time
 	  Programmable memory pages that are stored on the some
diff --git a/include/configs/advantech_dms-ba16.h b/include/configs/advantech_dms-ba16.h
index 0c9de6125d..a22c6a7d45 100644
--- a/include/configs/advantech_dms-ba16.h
+++ b/include/configs/advantech_dms-ba16.h
@@ -34,8 +34,6 @@
 
 #define CONFIG_MXC_UART
 
-#define CONFIG_MXC_OCOTP
-
 /* SATA Configs */
 #define CONFIG_SYS_SATA_MAX_DEVICE	1
 #define CONFIG_DWC_AHSATA_PORT_ID	0
diff --git a/include/configs/apalis_imx6.h b/include/configs/apalis_imx6.h
index c8aa1bdddf..95dd6f9362 100644
--- a/include/configs/apalis_imx6.h
+++ b/include/configs/apalis_imx6.h
@@ -41,11 +41,6 @@
 #define CONFIG_SYS_I2C_SPEED		100000
 #define CONFIG_SYS_MXC_I2C3_SPEED	400000
 
-/* OCOTP Configs */
-#ifdef CONFIG_CMD_FUSE
-#define CONFIG_MXC_OCOTP
-#endif
-
 /* MMC Configs */
 #define CONFIG_FSL_USDHC
 #define CONFIG_SYS_FSL_ESDHC_ADDR	0
diff --git a/include/configs/colibri_imx6.h b/include/configs/colibri_imx6.h
index a6a823ee1f..d2f8a58e80 100644
--- a/include/configs/colibri_imx6.h
+++ b/include/configs/colibri_imx6.h
@@ -39,11 +39,6 @@
 #define CONFIG_SYS_I2C_SPEED		100000
 #define CONFIG_SYS_MXC_I2C3_SPEED	400000
 
-/* OCOTP Configs */
-#ifdef CONFIG_CMD_FUSE
-#define CONFIG_MXC_OCOTP
-#endif
-
 /* MMC Configs */
 #define CONFIG_FSL_USDHC
 #define CONFIG_SYS_FSL_ESDHC_ADDR	0
diff --git a/include/configs/colibri_vf.h b/include/configs/colibri_vf.h
index 7b974d9e97..e7b786e48b 100644
--- a/include/configs/colibri_vf.h
+++ b/include/configs/colibri_vf.h
@@ -17,10 +17,6 @@
 
 #define CONFIG_SKIP_LOWLEVEL_INIT
 
-#ifdef CONFIG_CMD_FUSE
-#define CONFIG_MXC_OCOTP
-#endif
-
 #ifdef CONFIG_VIDEO_FSL_DCU_FB
 #define CONFIG_SPLASH_SCREEN_ALIGN
 #define CONFIG_VIDEO_LOGO
diff --git a/include/configs/dh_imx6.h b/include/configs/dh_imx6.h
index 9231bd853f..4dc795c3f4 100644
--- a/include/configs/dh_imx6.h
+++ b/include/configs/dh_imx6.h
@@ -48,11 +48,6 @@
 #define CONFIG_FEC_MXC_PHYADDR		0
 #define CONFIG_ARP_TIMEOUT		200UL
 
-/* Fuses */
-#ifdef CONFIG_CMD_FUSE
-#define CONFIG_MXC_OCOTP
-#endif
-
 /* I2C Configs */
 #define CONFIG_SYS_I2C
 #define CONFIG_SYS_I2C_MXC
diff --git a/include/configs/ge_bx50v3.h b/include/configs/ge_bx50v3.h
index a5d7cb1be0..134145c473 100644
--- a/include/configs/ge_bx50v3.h
+++ b/include/configs/ge_bx50v3.h
@@ -35,8 +35,6 @@
 
 #define CONFIG_MXC_UART
 
-#define CONFIG_MXC_OCOTP
-
 /* SATA Configs */
 #ifdef CONFIG_CMD_SATA
 #define CONFIG_SYS_SATA_MAX_DEVICE	1
diff --git a/include/configs/imx8mq_evk.h b/include/configs/imx8mq_evk.h
index a9e38a70e6..6094d1bf18 100644
--- a/include/configs/imx8mq_evk.h
+++ b/include/configs/imx8mq_evk.h
@@ -230,7 +230,6 @@
 
 #define CONFIG_MXC_GPIO
 
-#define CONFIG_MXC_OCOTP
 #define CONFIG_CMD_FUSE
 
 /* I2C Configs */
diff --git a/include/configs/kp_imx6q_tpc.h b/include/configs/kp_imx6q_tpc.h
index b6b27ee1d5..d2ebf92953 100644
--- a/include/configs/kp_imx6q_tpc.h
+++ b/include/configs/kp_imx6q_tpc.h
@@ -31,11 +31,6 @@
 #define CONFIG_FEC_MXC_PHYADDR		0
 #define CONFIG_ARP_TIMEOUT		200UL
 
-/* Fuses */
-#ifdef CONFIG_CMD_FUSE
-#define CONFIG_MXC_OCOTP
-#endif
-
 /* I2C Configs */
 #define CONFIG_SYS_I2C
 #define CONFIG_SYS_I2C_MXC
diff --git a/include/configs/mx6_common.h b/include/configs/mx6_common.h
index cdc8833778..6b20c6db58 100644
--- a/include/configs/mx6_common.h
+++ b/include/configs/mx6_common.h
@@ -57,9 +57,6 @@
 /* MMC */
 #define CONFIG_FSL_USDHC
 
-/* Fuses */
-#define CONFIG_MXC_OCOTP
-
 /* Secure boot (HAB) support */
 #ifdef CONFIG_SECURE_BOOT
 #define CONFIG_CSF_SIZE			0x2000
diff --git a/include/configs/mx7_common.h b/include/configs/mx7_common.h
index a895c936aa..cc7e87269e 100644
--- a/include/configs/mx7_common.h
+++ b/include/configs/mx7_common.h
@@ -42,9 +42,6 @@
 /* MMC */
 #define CONFIG_FSL_USDHC
 
-/* Fuses */
-#define CONFIG_MXC_OCOTP
-
 #define CONFIG_ARMV7_SECURE_BASE	0x00900000
 
 #define CONFIG_ARMV7_PSCI_1_0
diff --git a/include/configs/vf610twr.h b/include/configs/vf610twr.h
index 686a383739..ba85bc91e7 100644
--- a/include/configs/vf610twr.h
+++ b/include/configs/vf610twr.h
@@ -19,10 +19,6 @@
 /* Enable passing of ATAGs */
 #define CONFIG_CMDLINE_TAG
 
-#ifdef CONFIG_CMD_FUSE
-#define CONFIG_MXC_OCOTP
-#endif
-
 /* Size of malloc() pool */
 #define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + 2 * 1024 * 1024)
 
-- 
2.20.1

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

* [U-Boot] [PATCH v2 08/22] ARM: dts: colibri_vf: update device trees
  2019-03-25 16:24 [U-Boot] [PATCH v2 00/22] colibri vybrid fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (6 preceding siblings ...)
  2019-03-25 16:24 ` [U-Boot] [PATCH v2 07/22] configs: move CONFIG_MXC_OCOTP to Kconfig Marcel Ziswiler
@ 2019-03-25 16:24 ` Marcel Ziswiler
  2019-03-25 16:24 ` [U-Boot] [PATCH v2 09/22] configs: colibri_vf: disable obscure options Marcel Ziswiler
                   ` (13 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-03-25 16:24 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Update device tree in preparation of further driver model migration:
Ethernet FEC, ESDHC aka MMC/SD card, I2C, NFC aka NAND flash controller,
USBH_PEN GPIO regulator.

Add iomux resp. pinctrl entries to be removed from proprietary platform
data: DSPI, ESDHC, FEC, I2C, NFC, UART, USBH_PEN GPIO.

Introduce a U-Boot specific device tree with some required
u-boot,dm-pre-reloc properties: soc, aips0, pinctrl_ddr and uart0 incl.
pinctrl.

While at it also update the MAINTAINERS file.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2: None

 arch/arm/dts/vf-colibri-u-boot.dtsi  |  23 ++++
 arch/arm/dts/vf-colibri.dtsi         | 198 ++++++++++++++++++++++++++-
 arch/arm/dts/vf500-colibri.dts       |   1 +
 arch/arm/dts/vf610-colibri.dts       |   1 +
 board/toradex/colibri_vf/MAINTAINERS |   4 +-
 5 files changed, 224 insertions(+), 3 deletions(-)
 create mode 100644 arch/arm/dts/vf-colibri-u-boot.dtsi

diff --git a/arch/arm/dts/vf-colibri-u-boot.dtsi b/arch/arm/dts/vf-colibri-u-boot.dtsi
new file mode 100644
index 0000000000..db86739805
--- /dev/null
+++ b/arch/arm/dts/vf-colibri-u-boot.dtsi
@@ -0,0 +1,23 @@
+// SPDX-License-Identifier: GPL-2.0+ OR X11
+
+/ {
+	soc {
+		u-boot,dm-pre-reloc;
+	};
+};
+
+&aips0 {
+	u-boot,dm-pre-reloc;
+};
+
+&pinctrl_ddr {
+	u-boot,dm-pre-reloc;
+};
+
+&pinctrl_uart0 {
+	u-boot,dm-pre-reloc;
+};
+
+&uart0 {
+	u-boot,dm-pre-reloc;
+};
diff --git a/arch/arm/dts/vf-colibri.dtsi b/arch/arm/dts/vf-colibri.dtsi
index 923dc2451c..5ce17076e9 100644
--- a/arch/arm/dts/vf-colibri.dtsi
+++ b/arch/arm/dts/vf-colibri.dtsi
@@ -1,18 +1,37 @@
 // SPDX-License-Identifier: GPL-2.0+ OR X11
 /*
- * Copyright 2014 Toradex AG
+ * Copyright 2014-2019 Toradex AG
  */
+
+/dts-v1/;
 #include "vf.dtsi"
+#include "vf610-pinfunc.h"
 
 / {
 	chosen {
 		stdout-path = &uart0;
 	};
+
+	aliases {
+		usb0 = &ehci0; /* required for ums */
+	};
+
+	reg_usbh_vbus: regulator-usbh-vbus {
+		compatible = "regulator-fixed";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_usbh1_reg>;
+		regulator-name = "VCC_USB[1-4]";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpio = <&gpio2 19 GPIO_ACTIVE_LOW>; /* USBH_PEN */
+	};
 };
 
 &dspi1 {
-	status = "okay";
 	bus-num = <1>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_dspi1>;
+	status = "okay";
 
 	spi_cmd: sspi at 0 {
 		reg = <0>;
@@ -29,8 +48,183 @@
 &ehci1 {
 	dr_mode = "host";
 	status = "okay";
+	vbus-supply = <&reg_usbh_vbus>;
+};
+
+&esdhc1 {
+	bus-width = <4>;
+	cd-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
+	disable-wp;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_esdhc1>;
+	status = "okay";
+};
+
+&fec1 {
+	phy-mode = "rmii";
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_fec1>;
+	status = "okay";
+};
+
+&i2c0 {
+	clock-frequency = <400000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c0>;
+	status = "okay";
+
+	/* M41T0M6 real time clock on carrier board */
+	rtc: m41t0m6 at 68 {
+		compatible = "st,m41t0";
+		reg = <0x68>;
+	};
+};
+
+&iomuxc {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_ddr>;
+
+	pinctrl_ddr: ddrgrp {
+		fsl,pins = <
+			VF610_PAD_DDR_A15__DDR_A_15             0x180
+			VF610_PAD_DDR_A14__DDR_A_14             0x180
+			VF610_PAD_DDR_A13__DDR_A_13             0x180
+			VF610_PAD_DDR_A12__DDR_A_12             0x180
+			VF610_PAD_DDR_A11__DDR_A_11             0x180
+			VF610_PAD_DDR_A10__DDR_A_10             0x180
+			VF610_PAD_DDR_A9__DDR_A_9               0x180
+			VF610_PAD_DDR_A8__DDR_A_8               0x180
+			VF610_PAD_DDR_A7__DDR_A_7               0x180
+			VF610_PAD_DDR_A6__DDR_A_6               0x180
+			VF610_PAD_DDR_A5__DDR_A_5               0x180
+			VF610_PAD_DDR_A4__DDR_A_4               0x180
+			VF610_PAD_DDR_A3__DDR_A_3               0x180
+			VF610_PAD_DDR_A2__DDR_A_2               0x180
+			VF610_PAD_DDR_A1__DDR_A_1               0x180
+			VF610_PAD_DDR_A0__DDR_A_0               0x180
+			VF610_PAD_DDR_BA2__DDR_BA_2             0x180
+			VF610_PAD_DDR_BA1__DDR_BA_1             0x180
+			VF610_PAD_DDR_BA0__DDR_BA_0             0x180
+			VF610_PAD_DDR_CAS__DDR_CAS_B            0x180
+			VF610_PAD_DDR_CKE__DDR_CKE_0            0x180
+			VF610_PAD_DDR_CLK__DDR_CLK_0            0x180
+			VF610_PAD_DDR_CS__DDR_CS_B_0            0x180
+			VF610_PAD_DDR_D15__DDR_D_15             0x10180
+			VF610_PAD_DDR_D14__DDR_D_14             0x10180
+			VF610_PAD_DDR_D13__DDR_D_13             0x10180
+			VF610_PAD_DDR_D12__DDR_D_12             0x10180
+			VF610_PAD_DDR_D11__DDR_D_11             0x10180
+			VF610_PAD_DDR_D10__DDR_D_10             0x10180
+			VF610_PAD_DDR_D9__DDR_D_9               0x10180
+			VF610_PAD_DDR_D8__DDR_D_8               0x10180
+			VF610_PAD_DDR_D7__DDR_D_7               0x10180
+			VF610_PAD_DDR_D6__DDR_D_6               0x10180
+			VF610_PAD_DDR_D5__DDR_D_5               0x10180
+			VF610_PAD_DDR_D4__DDR_D_4               0x10180
+			VF610_PAD_DDR_D3__DDR_D_3               0x10180
+			VF610_PAD_DDR_D2__DDR_D_2               0x10180
+			VF610_PAD_DDR_D1__DDR_D_1               0x10180
+			VF610_PAD_DDR_D0__DDR_D_0               0x10180
+			VF610_PAD_DDR_DQM1__DDR_DQM_1           0x10180
+			VF610_PAD_DDR_DQM0__DDR_DQM_0           0x10180
+			VF610_PAD_DDR_DQS1__DDR_DQS_1           0x10180
+			VF610_PAD_DDR_DQS0__DDR_DQS_0           0x10180
+			VF610_PAD_DDR_RAS__DDR_RAS_B            0x180
+			VF610_PAD_DDR_WE__DDR_WE_B              0x180
+			VF610_PAD_DDR_ODT1__DDR_ODT_0           0x180
+			VF610_PAD_DDR_ODT0__DDR_ODT_1           0x180
+			VF610_PAD_DDR_DDRBYTE1__DDR_DDRBYTE1    0x180
+			VF610_PAD_DDR_DDRBYTE2__DDR_DDRBYTE2    0x180
+			VF610_PAD_DDR_RESETB                    0x180
+		>;
+	};
+
+	pinctrl_dspi1: dspi1grp {
+		fsl,pins = <
+			VF610_PAD_PTD5__DSPI1_CS0		0x33e2
+			VF610_PAD_PTD6__DSPI1_SIN		0x33e1
+			VF610_PAD_PTD7__DSPI1_SOUT		0x33e2
+			VF610_PAD_PTD8__DSPI1_SCK		0x33e2
+		>;
+	};
+
+	pinctrl_esdhc1: esdhc1grp {
+		fsl,pins = <
+			VF610_PAD_PTA24__ESDHC1_CLK		0x31ef
+			VF610_PAD_PTA25__ESDHC1_CMD		0x31ef
+			VF610_PAD_PTA26__ESDHC1_DAT0		0x31ef
+			VF610_PAD_PTA27__ESDHC1_DAT1		0x31ef
+			VF610_PAD_PTA28__ESDHC1_DATA2		0x31ef
+			VF610_PAD_PTA29__ESDHC1_DAT3		0x31ef
+			VF610_PAD_PTB20__GPIO_42		0x219d
+		>;
+	};
+
+	pinctrl_fec1: fec1grp {
+		fsl,pins = <
+			VF610_PAD_PTA6__RMII_CLKOUT		0x30df
+			VF610_PAD_PTC9__ENET_RMII1_MDC		0x30df
+			VF610_PAD_PTC10__ENET_RMII1_MDIO	0x30df
+			VF610_PAD_PTC11__ENET_RMII1_CRS		0x30df
+			VF610_PAD_PTC12__ENET_RMII1_RXD1	0x30df
+			VF610_PAD_PTC13__ENET_RMII1_RXD0	0x30df
+			VF610_PAD_PTC14__ENET_RMII1_RXER	0x30df
+			VF610_PAD_PTC15__ENET_RMII1_TXD1	0x30df
+			VF610_PAD_PTC16__ENET_RMII1_TXD0	0x30df
+			VF610_PAD_PTC17__ENET_RMII1_TXEN	0x30df
+		>;
+	};
+
+	pinctrl_i2c0: i2c0grp {
+		fsl,pins = <
+			VF610_PAD_PTB14__I2C0_SCL		0x37ff
+			VF610_PAD_PTB15__I2C0_SDA		0x37ff
+		>;
+	};
+
+	pinctrl_nfc: nfcgrp {
+		fsl,pins = <
+			VF610_PAD_PTD23__NF_IO7			0x28df
+			VF610_PAD_PTD22__NF_IO6			0x28df
+			VF610_PAD_PTD21__NF_IO5			0x28df
+			VF610_PAD_PTD20__NF_IO4			0x28df
+			VF610_PAD_PTD19__NF_IO3			0x28df
+			VF610_PAD_PTD18__NF_IO2			0x28df
+			VF610_PAD_PTD17__NF_IO1			0x28df
+			VF610_PAD_PTD16__NF_IO0			0x28df
+			VF610_PAD_PTB24__NF_WE_B		0x28c2
+			VF610_PAD_PTB25__NF_CE0_B		0x28c2
+			VF610_PAD_PTB27__NF_RE_B		0x28c2
+			VF610_PAD_PTC26__NF_RB_B		0x283d
+			VF610_PAD_PTC27__NF_ALE			0x28c2
+			VF610_PAD_PTC28__NF_CLE			0x28c2
+		>;
+	};
+
+	pinctrl_uart0: uart0grp {
+		fsl,pins = <
+			VF610_PAD_PTB10__UART0_TX		0x11af
+			VF610_PAD_PTB11__UART0_RX		0x11af
+			VF610_PAD_PTB12__UART0_RTS		0x11af
+			VF610_PAD_PTB13__UART0_CTS		0x11af
+		>;
+	};
+
+	pinctrl_usbh1_reg: gpio_usb_vbus {
+		fsl,pins = <
+			VF610_PAD_PTD4__GPIO_83			0x22ed
+		>;
+	};
+};
+
+&nfc {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_nfc>;
+	status = "okay";
 };
 
 &uart0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart0>;
 	status = "okay";
 };
diff --git a/arch/arm/dts/vf500-colibri.dts b/arch/arm/dts/vf500-colibri.dts
index 3f33d970e0..c83a16fdcb 100644
--- a/arch/arm/dts/vf500-colibri.dts
+++ b/arch/arm/dts/vf500-colibri.dts
@@ -5,6 +5,7 @@
 
 /dts-v1/;
 #include "vf-colibri.dtsi"
+#include "vf-colibri-u-boot.dtsi"
 
 / {
 	model = "Toradex Colibri VF50";
diff --git a/arch/arm/dts/vf610-colibri.dts b/arch/arm/dts/vf610-colibri.dts
index 0a6b937fee..7275fec279 100644
--- a/arch/arm/dts/vf610-colibri.dts
+++ b/arch/arm/dts/vf610-colibri.dts
@@ -5,6 +5,7 @@
 
 /dts-v1/;
 #include "vf-colibri.dtsi"
+#include "vf-colibri-u-boot.dtsi"
 
 / {
 	model = "Toradex Colibri VF61";
diff --git a/board/toradex/colibri_vf/MAINTAINERS b/board/toradex/colibri_vf/MAINTAINERS
index a1217a47bd..3ee2b33152 100644
--- a/board/toradex/colibri_vf/MAINTAINERS
+++ b/board/toradex/colibri_vf/MAINTAINERS
@@ -1,10 +1,12 @@
 Colibri VFxx
 M:	Stefan Agner <stefan.agner@toradex.com>
+W:	http://developer.toradex.com/software/linux/linux-software
+W:      https://www.toradex.com/community
 S:	Maintained
 F:	board/toradex/colibri_vf/
 F:	include/configs/colibri_vf.h
 F:	configs/colibri_vf_defconfig
-F:	configs/colibri_vf_dtb_defconfig
 F:	arch/arm/dts/vf-colibri.dtsi
+F:	arch/arm/dts/vf-colibri-u-boot.dtsi
 F:	arch/arm/dts/vf500-colibri.dts
 F:	arch/arm/dts/vf610-colibri.dts
-- 
2.20.1

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

* [U-Boot] [PATCH v2 09/22] configs: colibri_vf: disable obscure options
  2019-03-25 16:24 [U-Boot] [PATCH v2 00/22] colibri vybrid fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (7 preceding siblings ...)
  2019-03-25 16:24 ` [U-Boot] [PATCH v2 08/22] ARM: dts: colibri_vf: update device trees Marcel Ziswiler
@ 2019-03-25 16:24 ` Marcel Ziswiler
  2019-03-28 16:58   ` Igor Opaniuk
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 10/22] colibri_vf: migrate pinctrl and regulators to dtb/dm Marcel Ziswiler
                   ` (12 subsequent siblings)
  21 siblings, 1 reply; 654+ messages in thread
From: Marcel Ziswiler @ 2019-03-25 16:24 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Disable more obscure options to save another 26 KB in preparation of
the upcoming driver model migration.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2: None

 configs/colibri_vf_defconfig | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/configs/colibri_vf_defconfig b/configs/colibri_vf_defconfig
index 8188582ed9..706d7ca634 100644
--- a/configs/colibri_vf_defconfig
+++ b/configs/colibri_vf_defconfig
@@ -17,11 +17,17 @@ CONFIG_BOARD_EARLY_INIT_F=y
 CONFIG_HUSH_PARSER=y
 # CONFIG_CMDLINE_EDITING is not set
 # CONFIG_AUTO_COMPLETE is not set
+# CONFIG_SYS_LONGHELP is not set
 CONFIG_SYS_PROMPT="Colibri VFxx # "
+# CONFIG_CMD_BOOTD is not set
+# CONFIG_CMD_BOOTM is not set
 CONFIG_CMD_BOOTZ=y
+# CONFIG_CMD_ELF is not set
+# CONFIG_CMD_IMI is not set
 CONFIG_CMD_ASKENV=y
 CONFIG_CMD_MEMTEST=y
 CONFIG_CMD_DFU=y
+# CONFIG_CMD_FLASH is not set
 CONFIG_CMD_FUSE=y
 CONFIG_CMD_GPIO=y
 # CONFIG_CMD_LOADB is not set
@@ -46,10 +52,10 @@ CONFIG_DEFAULT_DEVICE_TREE="vf610-colibri"
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
 CONFIG_DM=y
-CONFIG_DFU_MMC=y
 CONFIG_DFU_NAND=y
 CONFIG_DM_GPIO=y
 CONFIG_VYBRID_GPIO=y
+# CONFIG_MMC_HW_PARTITIONING is not set
 CONFIG_FSL_ESDHC=y
 CONFIG_NAND_VF610_NFC=y
 CONFIG_SYS_NAND_VF610_NFC_60_ECC_BYTES=y
@@ -57,6 +63,8 @@ CONFIG_MTD_UBI_FASTMAP=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_MICREL=y
 CONFIG_MII=y
+# CONFIG_SPL_SERIAL_PRESENT is not set
+# CONFIG_TPL_SERIAL_PRESENT is not set
 CONFIG_DM_SERIAL=y
 CONFIG_FSL_LPUART=y
 CONFIG_USB=y
-- 
2.20.1

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

* [U-Boot] [PATCH v2 10/22] colibri_vf: migrate pinctrl and regulators to dtb/dm
  2019-03-25 16:24 [U-Boot] [PATCH v2 00/22] colibri vybrid fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (8 preceding siblings ...)
  2019-03-25 16:24 ` [U-Boot] [PATCH v2 09/22] configs: colibri_vf: disable obscure options Marcel Ziswiler
@ 2019-03-25 16:25 ` Marcel Ziswiler
  2019-03-28 15:09   ` Igor Opaniuk
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 11/22] colibri_vf: migrate fec, esdhc, nfc and usb to driver model Marcel Ziswiler
                   ` (11 subsequent siblings)
  21 siblings, 1 reply; 654+ messages in thread
From: Marcel Ziswiler @ 2019-03-25 16:25 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Migrate pinctrl and regulators to device tree resp. driver model: DDR,
DSPI, ENET, ESDHC, I2C, NFC and UART.

Enable CMD_DM, PINCTRL and DM_REGULATOR.

While at it also update copyright period and sort include files.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2: None

 board/toradex/colibri_vf/colibri_vf.c | 139 ++------------------------
 configs/colibri_vf_defconfig          |   5 +
 2 files changed, 16 insertions(+), 128 deletions(-)

diff --git a/board/toradex/colibri_vf/colibri_vf.c b/board/toradex/colibri_vf/colibri_vf.c
index 79f702f2bf..8e0dea2dc2 100644
--- a/board/toradex/colibri_vf/colibri_vf.c
+++ b/board/toradex/colibri_vf/colibri_vf.c
@@ -1,43 +1,36 @@
 // SPDX-License-Identifier: GPL-2.0+
 /*
- * Copyright 2015 Toradex, Inc.
+ * Copyright 2015-2019 Toradex, Inc.
  *
  * Based on vf610twr.c:
  * Copyright 2013 Freescale Semiconductor, Inc.
  */
 
 #include <common.h>
-#include <asm/io.h>
+
+#include <asm/arch/clock.h>
+#include <asm/arch/crm_regs.h>
+#include <asm/arch/ddrmc-vf610.h>
 #include <asm/arch/imx-regs.h>
 #include <asm/arch/iomux-vf610.h>
-#include <asm/arch/ddrmc-vf610.h>
-#include <asm/arch/crm_regs.h>
-#include <asm/arch/clock.h>
-#include <mmc.h>
+#include <asm/gpio.h>
+#include <asm/io.h>
 #include <fdt_support.h>
 #include <fsl_esdhc.h>
 #include <fsl_dcu_fb.h>
+#include <g_dnl.h>
+#include <i2c.h>
 #include <jffs2/load_kernel.h>
 #include <miiphy.h>
+#include <mmc.h>
 #include <mtd_node.h>
 #include <netdev.h>
-#include <i2c.h>
-#include <g_dnl.h>
-#include <asm/gpio.h>
 #include <usb.h>
+
 #include "../common/tdx-common.h"
 
 DECLARE_GLOBAL_DATA_PTR;
 
-#define UART_PAD_CTRL	(PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \
-			PAD_CTL_DSE_25ohm | PAD_CTL_OBE_IBE_ENABLE)
-
-#define ESDHC_PAD_CTRL	(PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_HIGH | \
-			PAD_CTL_DSE_20ohm | PAD_CTL_OBE_IBE_ENABLE)
-
-#define ENET_PAD_CTRL	(PAD_CTL_PUS_47K_UP | PAD_CTL_SPEED_HIGH | \
-			PAD_CTL_DSE_50ohm | PAD_CTL_OBE_IBE_ENABLE)
-
 #define USB_PEN_GPIO		83
 #define USB_CDET_GPIO		102
 #define PTC0_GPIO_45		45
@@ -89,11 +82,6 @@ static struct ddrmc_cr_setting colibri_vf_cr_settings[] = {
 	{ 0, -1 }
 };
 
-static const iomux_v3_cfg_t usb_pads[] = {
-	VF610_PAD_PTD4__GPIO_83,
-	VF610_PAD_PTC29__GPIO_102,
-};
-
 int dram_init(void)
 {
 	static const struct ddr3_jedec_timings timings = {
@@ -147,92 +135,12 @@ int dram_init(void)
 		.wldqsen           = 25,
 	};
 
-	ddrmc_setup_iomux(NULL, 0);
-
 	ddrmc_ctrl_init_ddr3(&timings, colibri_vf_cr_settings, NULL, 1, 2);
 	gd->ram_size = get_ram_size((void *)PHYS_SDRAM, PHYS_SDRAM_SIZE);
 
 	return 0;
 }
 
-static void setup_iomux_uart(void)
-{
-	static const iomux_v3_cfg_t uart_pads[] = {
-		NEW_PAD_CTRL(VF610_PAD_PTB4__UART1_TX, UART_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTB5__UART1_RX, UART_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTB10__UART0_TX, UART_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTB11__UART0_RX, UART_PAD_CTRL),
-	};
-
-	imx_iomux_v3_setup_multiple_pads(uart_pads, ARRAY_SIZE(uart_pads));
-}
-
-static void setup_iomux_enet(void)
-{
-	static const iomux_v3_cfg_t enet0_pads[] = {
-		NEW_PAD_CTRL(VF610_PAD_PTA6__RMII0_CLKOUT, ENET_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTC10__RMII1_MDIO, ENET_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTC9__RMII1_MDC, ENET_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTC11__RMII1_CRS_DV, ENET_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTC12__RMII1_RD1, ENET_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTC13__RMII1_RD0, ENET_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTC14__RMII1_RXER, ENET_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTC15__RMII1_TD1, ENET_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTC16__RMII1_TD0, ENET_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTC17__RMII1_TXEN, ENET_PAD_CTRL),
-	};
-
-	imx_iomux_v3_setup_multiple_pads(enet0_pads, ARRAY_SIZE(enet0_pads));
-}
-
-static void setup_iomux_i2c(void)
-{
-	static const iomux_v3_cfg_t i2c0_pads[] = {
-		VF610_PAD_PTB14__I2C0_SCL,
-		VF610_PAD_PTB15__I2C0_SDA,
-	};
-
-	imx_iomux_v3_setup_multiple_pads(i2c0_pads, ARRAY_SIZE(i2c0_pads));
-}
-
-#ifdef CONFIG_NAND_VF610_NFC
-static void setup_iomux_nfc(void)
-{
-	static const iomux_v3_cfg_t nfc_pads[] = {
-		VF610_PAD_PTD23__NF_IO7,
-		VF610_PAD_PTD22__NF_IO6,
-		VF610_PAD_PTD21__NF_IO5,
-		VF610_PAD_PTD20__NF_IO4,
-		VF610_PAD_PTD19__NF_IO3,
-		VF610_PAD_PTD18__NF_IO2,
-		VF610_PAD_PTD17__NF_IO1,
-		VF610_PAD_PTD16__NF_IO0,
-		VF610_PAD_PTB24__NF_WE_B,
-		VF610_PAD_PTB25__NF_CE0_B,
-		VF610_PAD_PTB27__NF_RE_B,
-		VF610_PAD_PTC26__NF_RB_B,
-		VF610_PAD_PTC27__NF_ALE,
-		VF610_PAD_PTC28__NF_CLE
-	};
-
-	imx_iomux_v3_setup_multiple_pads(nfc_pads, ARRAY_SIZE(nfc_pads));
-}
-#endif
-
-#ifdef CONFIG_FSL_DSPI
-static void setup_iomux_dspi(void)
-{
-	static const iomux_v3_cfg_t dspi1_pads[] = {
-		VF610_PAD_PTD5__DSPI1_CS0,
-		VF610_PAD_PTD6__DSPI1_SIN,
-		VF610_PAD_PTD7__DSPI1_SOUT,
-		VF610_PAD_PTD8__DSPI1_SCK,
-	};
-
-	imx_iomux_v3_setup_multiple_pads(dspi1_pads, ARRAY_SIZE(dspi1_pads));
-}
-#endif
-
 #ifdef CONFIG_VYBRID_GPIO
 static void setup_iomux_gpio(void)
 {
@@ -344,20 +252,8 @@ int board_mmc_getcd(struct mmc *mmc)
 
 int board_mmc_init(bd_t *bis)
 {
-	static const iomux_v3_cfg_t esdhc1_pads[] = {
-		NEW_PAD_CTRL(VF610_PAD_PTA24__ESDHC1_CLK, ESDHC_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTA25__ESDHC1_CMD, ESDHC_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTA26__ESDHC1_DAT0, ESDHC_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTA27__ESDHC1_DAT1, ESDHC_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTA28__ESDHC1_DAT2, ESDHC_PAD_CTRL),
-		NEW_PAD_CTRL(VF610_PAD_PTA29__ESDHC1_DAT3, ESDHC_PAD_CTRL),
-	};
-
 	esdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK);
 
-	imx_iomux_v3_setup_multiple_pads(
-		esdhc1_pads, ARRAY_SIZE(esdhc1_pads));
-
 	return fsl_esdhc_initialize(bis, &esdhc_cfg[0]);
 }
 #endif
@@ -496,21 +392,10 @@ int board_early_init_f(void)
 	clock_init();
 	mscm_init();
 
-	setup_iomux_uart();
-	setup_iomux_enet();
-	setup_iomux_i2c();
-#ifdef CONFIG_NAND_VF610_NFC
-	setup_iomux_nfc();
-#endif
-
 #ifdef CONFIG_VYBRID_GPIO
 	setup_iomux_gpio();
 #endif
 
-#ifdef CONFIG_FSL_DSPI
-	setup_iomux_dspi();
-#endif
-
 #ifdef CONFIG_VIDEO_FSL_DCU_FB
 	setup_tcon();
 	setup_iomux_fsl_dcu();
@@ -594,8 +479,6 @@ int ft_board_setup(void *blob, bd_t *bd)
 #ifdef CONFIG_USB_EHCI_VF
 int board_ehci_hcd_init(int port)
 {
-	imx_iomux_v3_setup_multiple_pads(usb_pads, ARRAY_SIZE(usb_pads));
-
 	switch (port) {
 	case 0:
 		/* USBC does not have PEN, also configured as USB client only */
diff --git a/configs/colibri_vf_defconfig b/configs/colibri_vf_defconfig
index 706d7ca634..9a91cb4b82 100644
--- a/configs/colibri_vf_defconfig
+++ b/configs/colibri_vf_defconfig
@@ -27,6 +27,7 @@ CONFIG_CMD_BOOTZ=y
 CONFIG_CMD_ASKENV=y
 CONFIG_CMD_MEMTEST=y
 CONFIG_CMD_DFU=y
+CONFIG_CMD_DM=y
 # CONFIG_CMD_FLASH is not set
 CONFIG_CMD_FUSE=y
 CONFIG_CMD_GPIO=y
@@ -63,6 +64,10 @@ CONFIG_MTD_UBI_FASTMAP=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_MICREL=y
 CONFIG_MII=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_VYBRID=y
+CONFIG_DM_REGULATOR=y
+CONFIG_DM_REGULATOR_FIXED=y
 # CONFIG_SPL_SERIAL_PRESENT is not set
 # CONFIG_TPL_SERIAL_PRESENT is not set
 CONFIG_DM_SERIAL=y
-- 
2.20.1

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

* [U-Boot] [PATCH v2 11/22] colibri_vf: migrate fec, esdhc, nfc and usb to driver model
  2019-03-25 16:24 [U-Boot] [PATCH v2 00/22] colibri vybrid fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (9 preceding siblings ...)
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 10/22] colibri_vf: migrate pinctrl and regulators to dtb/dm Marcel Ziswiler
@ 2019-03-25 16:25 ` Marcel Ziswiler
  2019-03-28 14:43   ` Igor Opaniuk
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 12/22] config: colibri_vf: use macros from linux/sizes.h Marcel Ziswiler
                   ` (10 subsequent siblings)
  21 siblings, 1 reply; 654+ messages in thread
From: Marcel Ziswiler @ 2019-03-25 16:25 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Migrate FEC, ESDHC, NFC and USB to driver model.

While at it also do no longer enable optional I2C clock in board file as
the generic clock code now handles this. Note for space reason and as
it is not required just for booting we do not enable I2C in U-Boot by
default.

While at it also update copyright period.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2: None

 board/toradex/colibri_vf/colibri_vf.c | 82 +--------------------------
 configs/colibri_vf_defconfig          |  5 ++
 include/configs/colibri_vf.h          | 13 +----
 3 files changed, 7 insertions(+), 93 deletions(-)

diff --git a/board/toradex/colibri_vf/colibri_vf.c b/board/toradex/colibri_vf/colibri_vf.c
index 8e0dea2dc2..c4d05532fe 100644
--- a/board/toradex/colibri_vf/colibri_vf.c
+++ b/board/toradex/colibri_vf/colibri_vf.c
@@ -16,23 +16,16 @@
 #include <asm/gpio.h>
 #include <asm/io.h>
 #include <fdt_support.h>
-#include <fsl_esdhc.h>
 #include <fsl_dcu_fb.h>
 #include <g_dnl.h>
-#include <i2c.h>
 #include <jffs2/load_kernel.h>
-#include <miiphy.h>
-#include <mmc.h>
 #include <mtd_node.h>
-#include <netdev.h>
 #include <usb.h>
 
 #include "../common/tdx-common.h"
 
 DECLARE_GLOBAL_DATA_PTR;
 
-#define USB_PEN_GPIO		83
-#define USB_CDET_GPIO		102
 #define PTC0_GPIO_45		45
 
 static struct ddrmc_cr_setting colibri_vf_cr_settings[] = {
@@ -239,25 +232,6 @@ static void setup_tcon(void)
 }
 #endif
 
-#ifdef CONFIG_FSL_ESDHC
-struct fsl_esdhc_cfg esdhc_cfg[1] = {
-	{ESDHC1_BASE_ADDR},
-};
-
-int board_mmc_getcd(struct mmc *mmc)
-{
-	/* eSDHC1 is always present */
-	return 1;
-}
-
-int board_mmc_init(bd_t *bis)
-{
-	esdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK);
-
-	return fsl_esdhc_initialize(bis, &esdhc_cfg[0]);
-}
-#endif
-
 static inline int is_colibri_vf61(void)
 {
 	struct mscm *mscm = (struct mscm *)MSCM_BASE_ADDR;
@@ -290,7 +264,7 @@ static void clock_init(void)
 			CCM_CCGR3_ANADIG_CTRL_MASK | CCM_CCGR3_SCSC_CTRL_MASK);
 	clrsetbits_le32(&ccm->ccgr4, CCM_REG_CTRL_MASK,
 			CCM_CCGR4_WKUP_CTRL_MASK | CCM_CCGR4_CCM_CTRL_MASK |
-			CCM_CCGR4_GPC_CTRL_MASK | CCM_CCGR4_I2C0_CTRL_MASK);
+			CCM_CCGR4_GPC_CTRL_MASK);
 	clrsetbits_le32(&ccm->ccgr6, CCM_REG_CTRL_MASK,
 			CCM_CCGR6_OCOTP_CTRL_MASK | CCM_CCGR6_DDRMC_CTRL_MASK);
 	clrsetbits_le32(&ccm->ccgr7, CCM_REG_CTRL_MASK,
@@ -379,14 +353,6 @@ static void mscm_init(void)
 		writew(MSCM_IRSPRC_CP0_EN, &mscmir->irsprc[i]);
 }
 
-int board_phy_config(struct phy_device *phydev)
-{
-	if (phydev->drv->config)
-		phydev->drv->config(phydev);
-
-	return 0;
-}
-
 int board_early_init_f(void)
 {
 	clock_init();
@@ -433,13 +399,8 @@ int board_init(void)
 	 * so we must use the external oscillator in order
 	 * to maintain correct time in the hwclock
 	 */
-
 	setbits_le32(&scsc->sosc_ctr, SCSC_SOSC_CTR_SOSC_EN);
 
-#ifdef CONFIG_USB_EHCI_VF
-	gpio_request(USB_CDET_GPIO, "usb-cdet-gpio");
-#endif
-
 	return 0;
 }
 
@@ -476,47 +437,6 @@ int ft_board_setup(void *blob, bd_t *bd)
 }
 #endif
 
-#ifdef CONFIG_USB_EHCI_VF
-int board_ehci_hcd_init(int port)
-{
-	switch (port) {
-	case 0:
-		/* USBC does not have PEN, also configured as USB client only */
-		break;
-	case 1:
-		gpio_request(USB_PEN_GPIO, "usb-pen-gpio");
-		gpio_direction_output(USB_PEN_GPIO, 0);
-		break;
-	}
-	return 0;
-}
-
-int board_usb_phy_mode(int port)
-{
-	switch (port) {
-	case 0:
-		/*
-		 * Port 0 is used only in client mode on Colibri Vybrid modules
-		 * Check for state of USB client gpio pin and accordingly return
-		 * USB_INIT_DEVICE or USB_INIT_HOST.
-		 */
-		if (gpio_get_value(USB_CDET_GPIO))
-			return USB_INIT_DEVICE;
-		else
-			return USB_INIT_HOST;
-	case 1:
-		/* Port 1 is used only in host mode on Colibri Vybrid modules */
-		return USB_INIT_HOST;
-	default:
-		/*
-		 * There are only two USB controllers on Vybrid. Ideally we will
-		 * not reach here. However return USB_INIT_HOST if we do.
-		 */
-		return USB_INIT_HOST;
-	}
-}
-#endif
-
 /*
  * Backlight off before OS handover
  */
diff --git a/configs/colibri_vf_defconfig b/configs/colibri_vf_defconfig
index 9a91cb4b82..344fe77234 100644
--- a/configs/colibri_vf_defconfig
+++ b/configs/colibri_vf_defconfig
@@ -56,13 +56,18 @@ CONFIG_DM=y
 CONFIG_DFU_NAND=y
 CONFIG_DM_GPIO=y
 CONFIG_VYBRID_GPIO=y
+CONFIG_DM_MMC=y
 # CONFIG_MMC_HW_PARTITIONING is not set
 CONFIG_FSL_ESDHC=y
+CONFIG_MTD=y
 CONFIG_NAND_VF610_NFC=y
+CONFIG_NAND_VF610_NFC_DT=y
 CONFIG_SYS_NAND_VF610_NFC_60_ECC_BYTES=y
 CONFIG_MTD_UBI_FASTMAP=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_MICREL=y
+CONFIG_DM_ETH=y
+CONFIG_FEC_MXC=y
 CONFIG_MII=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_VYBRID=y
diff --git a/include/configs/colibri_vf.h b/include/configs/colibri_vf.h
index e7b786e48b..1acc6e5056 100644
--- a/include/configs/colibri_vf.h
+++ b/include/configs/colibri_vf.h
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0+ */
 /*
- * Copyright 2015-2016 Toradex, Inc.
+ * Copyright 2015-2019 Toradex, Inc.
  *
  * Configuration settings for the Toradex VF50/VF61 modules.
  *
@@ -36,17 +36,6 @@
 /* NAND support */
 #define CONFIG_SYS_NAND_ONFI_DETECTION
 #define CONFIG_SYS_MAX_NAND_DEVICE	1
-#define CONFIG_SYS_NAND_BASE		NFC_BASE_ADDR
-
-/* Dynamic MTD partition support */
-
-#define CONFIG_SYS_FSL_ESDHC_ADDR	0
-#define CONFIG_SYS_FSL_ESDHC_NUM	1
-
-#define CONFIG_FEC_MXC
-#define IMX_FEC_BASE			ENET1_BASE_ADDR
-#define CONFIG_FEC_XCV_TYPE		RMII
-#define CONFIG_FEC_MXC_PHYADDR          0
 
 #define CONFIG_IPADDR		192.168.10.2
 #define CONFIG_NETMASK		255.255.255.0
-- 
2.20.1

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

* [U-Boot] [PATCH v2 12/22] config: colibri_vf: use macros from linux/sizes.h
  2019-03-25 16:24 [U-Boot] [PATCH v2 00/22] colibri vybrid fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (10 preceding siblings ...)
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 11/22] colibri_vf: migrate fec, esdhc, nfc and usb to driver model Marcel Ziswiler
@ 2019-03-25 16:25 ` Marcel Ziswiler
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 13/22] colibri_vf: add distroboot support Marcel Ziswiler
                   ` (9 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-03-25 16:25 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Use SZ_X{MK} macros from linux/sizes.h for include/configs/colibri_vf.h.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v2: None

 include/configs/colibri_vf.h | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/include/configs/colibri_vf.h b/include/configs/colibri_vf.h
index 1acc6e5056..9effa56539 100644
--- a/include/configs/colibri_vf.h
+++ b/include/configs/colibri_vf.h
@@ -12,6 +12,7 @@
 #define __CONFIG_H
 
 #include <asm/arch/imx-regs.h>
+#include <linux/sizes.h>
 
 #define CONFIG_SYS_FSL_CLK
 
@@ -28,7 +29,7 @@
 #endif
 
 /* Size of malloc() pool */
-#define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + 2 * 1024 * 1024)
+#define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + 2 * SZ_1M)
 
 /* Allow to overwrite serial and ethaddr */
 #define CONFIG_ENV_OVERWRITE
@@ -118,7 +119,7 @@
 
 /* Physical memory map */
 #define PHYS_SDRAM			(0x80000000)
-#define PHYS_SDRAM_SIZE			(256 * 1024 * 1024)
+#define PHYS_SDRAM_SIZE			(256 * SZ_1M)
 
 #define CONFIG_SYS_SDRAM_BASE		PHYS_SDRAM
 #define CONFIG_SYS_INIT_RAM_ADDR	IRAM_BASE_ADDR
@@ -141,6 +142,6 @@
 #define CONFIG_EHCI_HCD_INIT_AFTER_RESET
 
 /* USB DFU */
-#define CONFIG_SYS_DFU_DATA_BUF_SIZE (1024 * 1024)
+#define CONFIG_SYS_DFU_DATA_BUF_SIZE (SZ_1M)
 
 #endif /* __CONFIG_H */
-- 
2.20.1

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

* [U-Boot] [PATCH v2 13/22] colibri_vf: add distroboot support
  2019-03-25 16:24 [U-Boot] [PATCH v2 00/22] colibri vybrid fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (11 preceding siblings ...)
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 12/22] config: colibri_vf: use macros from linux/sizes.h Marcel Ziswiler
@ 2019-03-25 16:25 ` Marcel Ziswiler
  2019-03-28 15:01   ` Igor Opaniuk
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 14/22] colibri_vf: set fdtfile for distroboot Marcel Ziswiler
                   ` (8 subsequent siblings)
  21 siblings, 1 reply; 654+ messages in thread
From: Marcel Ziswiler @ 2019-03-25 16:25 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

Add support for distro boot. This is especially helpful for external
devices. There is a global boot command which scans a predefined
list of boot targets:
  run distro_bootcmd

As well as direct boot commands such as:
  run bootcmd_mmc0
  run bootcmd_usb
  run bootcmd_dhcp
  ...

Refer to doc/README.distro fo details.

While at it also re-order boot command macros as well as the
CONFIG_EXTRA_ENV_SETTINGS.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2: None

 include/configs/colibri_vf.h | 75 ++++++++++++++++++++++--------------
 1 file changed, 46 insertions(+), 29 deletions(-)

diff --git a/include/configs/colibri_vf.h b/include/configs/colibri_vf.h
index 9effa56539..83a33ff786 100644
--- a/include/configs/colibri_vf.h
+++ b/include/configs/colibri_vf.h
@@ -48,13 +48,15 @@
 /* We boot from the gfxRAM area of the OCRAM. */
 #define CONFIG_BOARD_SIZE_LIMIT		520192
 
-#define SD_BOOTCMD \
-	"sdargs=root=/dev/mmcblk0p2 rw rootwait\0"	\
-	"sdboot=run setup; setenv bootargs ${defargs} ${sdargs} ${mtdparts} " \
-	"${setupargs} ${vidargs}; echo Booting from MMC/SD card...; " \
-	"load mmc 0:2 ${kernel_addr_r} /boot/${kernel_file} && " \
-	"load mmc 0:2 ${fdt_addr_r} /boot/${soc}-colibri-${fdt_board}.dtb && " \
-	"run fdt_fixup && bootz ${kernel_addr_r} - ${fdt_addr_r}\0" \
+#define MEM_LAYOUT_ENV_SETTINGS \
+	"bootm_size=0x10000000\0" \
+	"fdt_addr_r=0x82000000\0" \
+	"fdt_high=0xffffffff\0" \
+	"initrd_high=0xffffffff\0" \
+	"kernel_addr_r=0x81000000\0" \
+	"pxefile_addr_r=0x87100000\0" \
+	"ramdisk_addr_r=0x82100000\0" \
+	"scriptaddr=0x87000000\0"
 
 #define NFS_BOOTCMD \
 	"nfsargs=ip=:::::eth0: root=/dev/nfs\0"	\
@@ -65,7 +67,15 @@
 	"tftp ${fdt_addr_r} ${soc}-colibri-${fdt_board}.dtb && " \
 	"run fdt_fixup && bootz ${kernel_addr_r} - ${fdt_addr_r}\0" \
 
-#define UBI_BOOTCMD	\
+#define SD_BOOTCMD \
+	"sdargs=root=/dev/mmcblk0p2 rw rootwait\0"	\
+	"sdboot=run setup; setenv bootargs ${defargs} ${sdargs} ${mtdparts} " \
+	"${setupargs} ${vidargs}; echo Booting from MMC/SD card...; " \
+	"load mmc 0:2 ${kernel_addr_r} /boot/${kernel_file} && " \
+	"load mmc 0:2 ${fdt_addr_r} /boot/${soc}-colibri-${fdt_board}.dtb && " \
+	"run fdt_fixup && bootz ${kernel_addr_r} - ${fdt_addr_r}\0" \
+
+#define UBI_BOOTCMD \
 	"ubiargs=ubi.mtd=ubi root=ubi0:rootfs rootfstype=ubifs " \
 	"ubi.fm_autoconvert=1\0" \
 	"ubiboot=run setup; " \
@@ -76,36 +86,43 @@
 	"ubi read ${fdt_addr_r} dtb && " \
 	"run fdt_fixup && bootz ${kernel_addr_r} - ${fdt_addr_r}\0" \
 
-#define CONFIG_BOOTCOMMAND "run ubiboot; run sdboot; run nfsboot"
+#define CONFIG_BOOTCOMMAND "run ubiboot; run distro_bootcmd;"
+
+#define BOOT_TARGET_DEVICES(func) \
+	func(MMC, mmc, 0) \
+	func(USB, usb, 0) \
+	func(DHCP, dhcp, na)
+#include <config_distro_bootcmd.h>
+#undef BOOTENV_RUN_NET_USB_START
+#define BOOTENV_RUN_NET_USB_START ""
 
 #define DFU_ALT_NAND_INFO "vf-bcb part 0,1;u-boot part 0,2;ubi part 0,4"
 
 #define CONFIG_EXTRA_ENV_SETTINGS \
-	"kernel_addr_r=0x82000000\0" \
-	"fdt_addr_r=0x84000000\0" \
-	"kernel_file=zImage\0" \
-	"fdt_file=${soc}-colibri-${fdt_board}.dtb\0" \
+	BOOTENV \
+	MEM_LAYOUT_ENV_SETTINGS \
+	NFS_BOOTCMD \
+	SD_BOOTCMD \
+	UBI_BOOTCMD \
+	"console=ttyLP0\0" \
+	"defargs=\0" \
+	"dfu_alt_info=" DFU_ALT_NAND_INFO "\0" \
 	"fdt_board=eval-v3\0" \
+	"fdt_file=${soc}-colibri-${fdt_board}.dtb\0" \
 	"fdt_fixup=;\0" \
-	"defargs=\0" \
-	"console=ttyLP0\0" \
-	"setup=setenv setupargs " \
-	"console=tty1 console=${console}" \
-	",${baudrate}n8 ${memargs}\0" \
+	"kernel_file=zImage\0" \
+	"mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0" \
 	"setsdupdate=mmc rescan && set interface mmc && " \
-	"fatload ${interface} 0:1 ${loadaddr} flash_blk.img && " \
-	"source ${loadaddr}\0" \
-	"setusbupdate=usb start && set interface usb && " \
-	"fatload ${interface} 0:1 ${loadaddr} flash_blk.img && " \
-	"source ${loadaddr}\0" \
+		"fatload ${interface} 0:1 ${loadaddr} flash_blk.img && " \
+		"source ${loadaddr}\0" \
+	"setup=setenv setupargs console=tty1 console=${console}" \
+		",${baudrate}n8 ${memargs}\0" \
 	"setupdate=run setsdupdate || run setusbupdate\0" \
-	"mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0" \
-	"dfu_alt_info=" DFU_ALT_NAND_INFO "\0" \
-	"video-mode=dcufb:640x480-16 at 60,monitor=lcd\0" \
+	"setusbupdate=usb start && set interface usb && " \
+		"fatload ${interface} 0:1 ${loadaddr} flash_blk.img && " \
+		"source ${loadaddr}\0" \
 	"splashpos=m,m\0" \
-	SD_BOOTCMD \
-	NFS_BOOTCMD \
-	UBI_BOOTCMD
+	"video-mode=dcufb:640x480-16 at 60,monitor=lcd\0"
 
 /* Miscellaneous configurable options */
 #define CONFIG_SYS_CBSIZE		1024	/* Console I/O Buffer Size */
-- 
2.20.1

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

* [U-Boot] [PATCH v2 14/22] colibri_vf: set fdtfile for distroboot
  2019-03-25 16:24 [U-Boot] [PATCH v2 00/22] colibri vybrid fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (12 preceding siblings ...)
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 13/22] colibri_vf: add distroboot support Marcel Ziswiler
@ 2019-03-25 16:25 ` Marcel Ziswiler
  2019-03-28 15:06   ` Igor Opaniuk
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 15/22] colibri_vf: sync the board info message Marcel Ziswiler
                   ` (7 subsequent siblings)
  21 siblings, 1 reply; 654+ messages in thread
From: Marcel Ziswiler @ 2019-03-25 16:25 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

Set fdtfile to represent the current board. This allows distribution
to load the correct device tree, which in the module case often
deviates from the common fallback ${soc}-${board}${boardver}.dtb...

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2: None

 include/configs/colibri_vf.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/configs/colibri_vf.h b/include/configs/colibri_vf.h
index 83a33ff786..0bbeeb902e 100644
--- a/include/configs/colibri_vf.h
+++ b/include/configs/colibri_vf.h
@@ -86,7 +86,8 @@
 	"ubi read ${fdt_addr_r} dtb && " \
 	"run fdt_fixup && bootz ${kernel_addr_r} - ${fdt_addr_r}\0" \
 
-#define CONFIG_BOOTCOMMAND "run ubiboot; run distro_bootcmd;"
+#define CONFIG_BOOTCOMMAND "run ubiboot; " \
+	"setenv fdtfile ${soc}-colibri-${fdt_board}.dtb && run distro_bootcmd;"
 
 #define BOOT_TARGET_DEVICES(func) \
 	func(MMC, mmc, 0) \
@@ -108,7 +109,6 @@
 	"defargs=\0" \
 	"dfu_alt_info=" DFU_ALT_NAND_INFO "\0" \
 	"fdt_board=eval-v3\0" \
-	"fdt_file=${soc}-colibri-${fdt_board}.dtb\0" \
 	"fdt_fixup=;\0" \
 	"kernel_file=zImage\0" \
 	"mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0" \
-- 
2.20.1

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

* [U-Boot] [PATCH v2 15/22] colibri_vf: sync the board info message
  2019-03-25 16:24 [U-Boot] [PATCH v2 00/22] colibri vybrid fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (13 preceding siblings ...)
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 14/22] colibri_vf: set fdtfile for distroboot Marcel Ziswiler
@ 2019-03-25 16:25 ` Marcel Ziswiler
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 16/22] colibri_vf: enable user debug by default Marcel Ziswiler
                   ` (6 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-03-25 16:25 UTC (permalink / raw)
  To: u-boot

From: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>

Use similar info message as on other modules.

Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v2: None

 board/toradex/colibri_vf/colibri_vf.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/board/toradex/colibri_vf/colibri_vf.c b/board/toradex/colibri_vf/colibri_vf.c
index c4d05532fe..9c5bf4951b 100644
--- a/board/toradex/colibri_vf/colibri_vf.c
+++ b/board/toradex/colibri_vf/colibri_vf.c
@@ -407,9 +407,9 @@ int board_init(void)
 int checkboard(void)
 {
 	if (is_colibri_vf61())
-		puts("Board: Colibri VF61\n");
+		puts("Model: Toradex Colibri VF61\n");
 	else
-		puts("Board: Colibri VF50\n");
+		puts("Model: Toradex Colibri VF50\n");
 
 	return 0;
 }
-- 
2.20.1

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

* [U-Boot] [PATCH v2 16/22] colibri_vf: enable user debug by default
  2019-03-25 16:24 [U-Boot] [PATCH v2 00/22] colibri vybrid fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (14 preceding siblings ...)
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 15/22] colibri_vf: sync the board info message Marcel Ziswiler
@ 2019-03-25 16:25 ` Marcel Ziswiler
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 17/22] colibri_vf: disable undefined instruction events in user debug Marcel Ziswiler
                   ` (5 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-03-25 16:25 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

Let the kernel print some debug messages when a user program
crashes due to an exception.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v2: None

 include/configs/colibri_vf.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/configs/colibri_vf.h b/include/configs/colibri_vf.h
index 0bbeeb902e..030281bb67 100644
--- a/include/configs/colibri_vf.h
+++ b/include/configs/colibri_vf.h
@@ -106,7 +106,7 @@
 	SD_BOOTCMD \
 	UBI_BOOTCMD \
 	"console=ttyLP0\0" \
-	"defargs=\0" \
+	"defargs=user_debug=31\0" \
 	"dfu_alt_info=" DFU_ALT_NAND_INFO "\0" \
 	"fdt_board=eval-v3\0" \
 	"fdt_fixup=;\0" \
-- 
2.20.1

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

* [U-Boot] [PATCH v2 17/22] colibri_vf: disable undefined instruction events in user debug
  2019-03-25 16:24 [U-Boot] [PATCH v2 00/22] colibri vybrid fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (15 preceding siblings ...)
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 16/22] colibri_vf: enable user debug by default Marcel Ziswiler
@ 2019-03-25 16:25 ` Marcel Ziswiler
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 18/22] config: colibri_vf: enable mtd partitions via dt Marcel Ziswiler
                   ` (4 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-03-25 16:25 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

It turns out that OpenSSL calls undefined instructions to detect
ARM capabilities at runtime (via SIGILL handler). This leads to
stack traces e.g. when logging in using SSH:
  [  877.464442] sshd (613): undefined instruction: pc=76ee2da8
  ...

Disable undefined instruction events since it is used as an
autodetecion mechanism.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v2: None

 include/configs/colibri_vf.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/configs/colibri_vf.h b/include/configs/colibri_vf.h
index 030281bb67..b2f27c1977 100644
--- a/include/configs/colibri_vf.h
+++ b/include/configs/colibri_vf.h
@@ -106,7 +106,7 @@
 	SD_BOOTCMD \
 	UBI_BOOTCMD \
 	"console=ttyLP0\0" \
-	"defargs=user_debug=31\0" \
+	"defargs=user_debug=30\0" \
 	"dfu_alt_info=" DFU_ALT_NAND_INFO "\0" \
 	"fdt_board=eval-v3\0" \
 	"fdt_fixup=;\0" \
-- 
2.20.1

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

* [U-Boot] [PATCH v2 18/22] config: colibri_vf: enable mtd partitions via dt
  2019-03-25 16:24 [U-Boot] [PATCH v2 00/22] colibri vybrid fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (16 preceding siblings ...)
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 17/22] colibri_vf: disable undefined instruction events in user debug Marcel Ziswiler
@ 2019-03-25 16:25 ` Marcel Ziswiler
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 19/22] arm: vf610: add uart2 clock/pinmux support Marcel Ziswiler
                   ` (3 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-03-25 16:25 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

Use device tree to set MTD partitions of the NAND chip.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v2: None

 configs/colibri_vf_defconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/configs/colibri_vf_defconfig b/configs/colibri_vf_defconfig
index 344fe77234..8f6cceca7f 100644
--- a/configs/colibri_vf_defconfig
+++ b/configs/colibri_vf_defconfig
@@ -91,4 +91,5 @@ CONFIG_VIDEO_FSL_DCU_FB=y
 CONFIG_VIDEO=y
 CONFIG_SYS_CONSOLE_FG_COL=0x00
 CONFIG_OF_LIBFDT_OVERLAY=y
+CONFIG_FDT_FIXUP_PARTITIONS=y
 # CONFIG_EFI_UNICODE_CAPITALIZATION is not set
-- 
2.20.1

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

* [U-Boot] [PATCH v2 19/22] arm: vf610: add uart2 clock/pinmux support
  2019-03-25 16:24 [U-Boot] [PATCH v2 00/22] colibri vybrid fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (17 preceding siblings ...)
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 18/22] config: colibri_vf: enable mtd partitions via dt Marcel Ziswiler
@ 2019-03-25 16:25 ` Marcel Ziswiler
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 20/22] colibri_vf: adjust timing according to data sheet Marcel Ziswiler
                   ` (2 subsequent siblings)
  21 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-03-25 16:25 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

Add support for Vybrid's UART2 (Colibri UART_B).

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2: None

 arch/arm/include/asm/arch-vf610/crm_regs.h    | 1 +
 arch/arm/include/asm/arch-vf610/iomux-vf610.h | 6 +++++-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/arch/arm/include/asm/arch-vf610/crm_regs.h b/arch/arm/include/asm/arch-vf610/crm_regs.h
index 9fce49ddc6..0c9ed52933 100644
--- a/arch/arm/include/asm/arch-vf610/crm_regs.h
+++ b/arch/arm/include/asm/arch-vf610/crm_regs.h
@@ -200,6 +200,7 @@ struct anadig_reg {
 #define CCM_REG_CTRL_MASK			0xffffffff
 #define CCM_CCGR0_UART0_CTRL_MASK               (0x3 << 14)
 #define CCM_CCGR0_UART1_CTRL_MASK		(0x3 << 16)
+#define CCM_CCGR0_UART2_CTRL_MASK		(0x3 << 18)
 #define CCM_CCGR0_DSPI0_CTRL_MASK		(0x3 << 24)
 #define CCM_CCGR0_DSPI1_CTRL_MASK		(0x3 << 26)
 #define CCM_CCGR1_USBC0_CTRL_MASK       (0x3 << 8)
diff --git a/arch/arm/include/asm/arch-vf610/iomux-vf610.h b/arch/arm/include/asm/arch-vf610/iomux-vf610.h
index 01bc2998b8..8ba03e5a17 100644
--- a/arch/arm/include/asm/arch-vf610/iomux-vf610.h
+++ b/arch/arm/include/asm/arch-vf610/iomux-vf610.h
@@ -132,10 +132,14 @@ enum {
 	VF610_PAD_PTD24__GPIO_70		= IOMUX_PAD(0x0118, 0x0118, 0, __NA_, 0, VF610_GPIO_PAD_CTRL),
 	VF610_PAD_PTD23__NF_IO7			= IOMUX_PAD(0x011c, 0x011c, 2, __NA_, 0, VF610_NFC_IO_PAD_CTRL),
 	VF610_PAD_PTD0__QSPI0_A_QSCK		= IOMUX_PAD(0x013c, 0x013c, 1, __NA_, 0, VF610_QSPI_PAD_CTRL),
+	VF610_PAD_PTD0__UART2_TX		= IOMUX_PAD(0x013c, 0x013c, 2, 0x38c, 2, VF610_UART_PAD_CTRL),
 	VF610_PAD_PTD1__QSPI0_A_CS0		= IOMUX_PAD(0x0140, 0x0140, 1, __NA_, 0, VF610_QSPI_PAD_CTRL),
+	VF610_PAD_PTD1__UART2_RX		= IOMUX_PAD(0x0140, 0x0140, 2, 0x388, 2, VF610_UART_PAD_CTRL),
 	VF610_PAD_PTD2__QSPI0_A_DATA3		= IOMUX_PAD(0x0144, 0x0144, 1, __NA_, 0, VF610_QSPI_PAD_CTRL),
+	VF610_PAD_PTD2__GPIO_81			= IOMUX_PAD(0x0144, 0x0144, 0, __NA_, 0, VF610_GPIO_PAD_CTRL),
 	VF610_PAD_PTD3__QSPI0_A_DATA2		= IOMUX_PAD(0x0148, 0x0148, 1, __NA_, 0, VF610_QSPI_PAD_CTRL),
-	VF610_PAD_PTD4__GPIO_83         = IOMUX_PAD(0x014C, 0x014C, 0, __NA_, 0, VF610_GPIO_PAD_CTRL),
+	VF610_PAD_PTD3__GPIO_82			= IOMUX_PAD(0x0148, 0x0148, 0, __NA_, 0, VF610_GPIO_PAD_CTRL),
+	VF610_PAD_PTD4__GPIO_83			= IOMUX_PAD(0x014C, 0x014C, 0, __NA_, 0, VF610_GPIO_PAD_CTRL),
 	VF610_PAD_PTD4__QSPI0_A_DATA1		= IOMUX_PAD(0x014c, 0x014c, 1, __NA_, 0, VF610_QSPI_PAD_CTRL),
 	VF610_PAD_PTD5__QSPI0_A_DATA0		= IOMUX_PAD(0x0150, 0x0150, 1, __NA_, 0, VF610_QSPI_PAD_CTRL),
 	VF610_PAD_PTD7__QSPI0_B_QSCK		= IOMUX_PAD(0x0158, 0x0158, 1, __NA_, 0, VF610_QSPI_PAD_CTRL),
-- 
2.20.1

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

* [U-Boot] [PATCH v2 20/22] colibri_vf: adjust timing according to data sheet
  2019-03-25 16:24 [U-Boot] [PATCH v2 00/22] colibri vybrid fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (18 preceding siblings ...)
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 19/22] arm: vf610: add uart2 clock/pinmux support Marcel Ziswiler
@ 2019-03-25 16:25 ` Marcel Ziswiler
  2019-03-28 16:41   ` Igor Opaniuk
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 21/22] colibri_vf: use leveling evaluated by DDR validation tools Marcel Ziswiler
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 22/22] colibri_vf: fix sdboot for vybrid modules Marcel Ziswiler
  21 siblings, 1 reply; 654+ messages in thread
From: Marcel Ziswiler @ 2019-03-25 16:25 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

Using the DDR Validation tool in Processor Expert uncovered two
timing inconsistencies. Since those timings are related to the
suspend mode they do not affect or change regular memory behaviour.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2: None

 board/toradex/colibri_vf/colibri_vf.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/board/toradex/colibri_vf/colibri_vf.c b/board/toradex/colibri_vf/colibri_vf.c
index 9c5bf4951b..3e39912f91 100644
--- a/board/toradex/colibri_vf/colibri_vf.c
+++ b/board/toradex/colibri_vf/colibri_vf.c
@@ -101,15 +101,21 @@ int dram_init(void)
 		.tras_lockout      = 0,
 		.tdal              = 12,
 		.bstlen            = 3,
-		.tdll              = 512,
+		.tdll              = 512, /* not applicable since freq. scaling
+					   * is not used
+					   */
 		.trp_ab            = 6,
 		.tref              = 3120,
 		.trfc              = 64,
 		.tref_int          = 0,
 		.tpdex             = 3,
 		.txpdll            = 10,
-		.txsnr             = 48,
-		.txsr              = 468,
+		.txsnr             = 68,  /* changed to conform to JEDEC
+					   * specifications
+					   */
+		.txsr              = 506, /* changed to conform to JEDEC
+					   * specifications
+					   */
 		.cksrx             = 5,
 		.cksre             = 5,
 		.freq_chg_en       = 0,
-- 
2.20.1

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

* [U-Boot] [PATCH v2 21/22] colibri_vf: use leveling evaluated by DDR validation tools
  2019-03-25 16:24 [U-Boot] [PATCH v2 00/22] colibri vybrid fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (19 preceding siblings ...)
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 20/22] colibri_vf: adjust timing according to data sheet Marcel Ziswiler
@ 2019-03-25 16:25 ` Marcel Ziswiler
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 22/22] colibri_vf: fix sdboot for vybrid modules Marcel Ziswiler
  21 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-03-25 16:25 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

The DDR validation tool (which is part of Processor Expert) allows
to evaluate leveling parameters for CR105/CR106/CR110. Several
runs have been made with Colibri VF50 and VF61 and it seems to
evaluate very similar values. Use this values by default.

Note: The newly evaluated parameters seem to require CTLUPD_AREF
to be enabled!

Note 2: The tool also evaluated 6 as a new value for PHY02/18
GATE_CFG (Coarse adjust of gate open time). However, this seems
not to work in practise.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2: None

 board/toradex/colibri_vf/colibri_vf.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/board/toradex/colibri_vf/colibri_vf.c b/board/toradex/colibri_vf/colibri_vf.c
index 3e39912f91..9d63fbf3bd 100644
--- a/board/toradex/colibri_vf/colibri_vf.c
+++ b/board/toradex/colibri_vf/colibri_vf.c
@@ -29,6 +29,13 @@ DECLARE_GLOBAL_DATA_PTR;
 #define PTC0_GPIO_45		45
 
 static struct ddrmc_cr_setting colibri_vf_cr_settings[] = {
+	{ DDRMC_CR79_CTLUPD_AREF(1), 79 },
+	/* sets manual values for read lvl. (gate) delay of data slice 0/1 */
+	{ DDRMC_CR105_RDLVL_DL_0(28), 105 },
+	{ DDRMC_CR106_RDLVL_GTDL_0(24), 106 },
+	{ DDRMC_CR110_RDLVL_DL_1(28) | DDRMC_CR110_RDLVL_GTDL_1(24), 110 },
+	{ DDRMC_CR102_RDLVL_GT_REGEN | DDRMC_CR102_RDLVL_REG_EN, 102 },
+
 	/* AXI */
 	{ DDRMC_CR117_AXI0_W_PRI(0) | DDRMC_CR117_AXI0_R_PRI(0), 117 },
 	{ DDRMC_CR118_AXI1_W_PRI(1) | DDRMC_CR118_AXI1_R_PRI(1), 118 },
-- 
2.20.1

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

* [U-Boot] [PATCH v2 22/22] colibri_vf: fix sdboot for vybrid modules
  2019-03-25 16:24 [U-Boot] [PATCH v2 00/22] colibri vybrid fixes, device tree enablement and driver model conversion Marcel Ziswiler
                   ` (20 preceding siblings ...)
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 21/22] colibri_vf: use leveling evaluated by DDR validation tools Marcel Ziswiler
@ 2019-03-25 16:25 ` Marcel Ziswiler
  21 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-03-25 16:25 UTC (permalink / raw)
  To: u-boot

From: Gerard Salvatella <gerard.salvatella@toradex.com>

Currently, Vybrid's sdboot variable tries to load the kernel from /boot
of the root partition (typically second partition when using the sdcard
image). However, since we moved to flash the kernel in a separate UBI
volume, we no longer deploy the kernel/device tree to /boot, hence
sdboot does not work in its current state.

Load the kernel and device tree from the first (typically FAT) partition
as customary on all Toradex modules.

While at it also change from rw to ro as e.g. systemd will re-mount the
root file system rw anyway after checking it.

Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com>
Acked-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v2:
- Added various reviewed-bys.

 include/configs/colibri_vf.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/include/configs/colibri_vf.h b/include/configs/colibri_vf.h
index b2f27c1977..0d57e303a1 100644
--- a/include/configs/colibri_vf.h
+++ b/include/configs/colibri_vf.h
@@ -68,11 +68,11 @@
 	"run fdt_fixup && bootz ${kernel_addr_r} - ${fdt_addr_r}\0" \
 
 #define SD_BOOTCMD \
-	"sdargs=root=/dev/mmcblk0p2 rw rootwait\0"	\
+	"sdargs=root=/dev/mmcblk0p2 ro rootwait\0"	\
 	"sdboot=run setup; setenv bootargs ${defargs} ${sdargs} ${mtdparts} " \
 	"${setupargs} ${vidargs}; echo Booting from MMC/SD card...; " \
-	"load mmc 0:2 ${kernel_addr_r} /boot/${kernel_file} && " \
-	"load mmc 0:2 ${fdt_addr_r} /boot/${soc}-colibri-${fdt_board}.dtb && " \
+	"load mmc 0:1 ${kernel_addr_r} ${kernel_file} && " \
+	"load mmc 0:1 ${fdt_addr_r} ${soc}-colibri-${fdt_board}.dtb && " \
 	"run fdt_fixup && bootz ${kernel_addr_r} - ${fdt_addr_r}\0" \
 
 #define UBI_BOOTCMD \
-- 
2.20.1

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

* [U-Boot] [PATCH v2 11/22] colibri_vf: migrate fec, esdhc, nfc and usb to driver model
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 11/22] colibri_vf: migrate fec, esdhc, nfc and usb to driver model Marcel Ziswiler
@ 2019-03-28 14:43   ` Igor Opaniuk
  0 siblings, 0 replies; 654+ messages in thread
From: Igor Opaniuk @ 2019-03-28 14:43 UTC (permalink / raw)
  To: u-boot

Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

On Mon, Mar 25, 2019 at 6:30 PM Marcel Ziswiler <marcel@ziswiler.com> wrote:
>
> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>
> Migrate FEC, ESDHC, NFC and USB to driver model.
>
> While at it also do no longer enable optional I2C clock in board file as
> the generic clock code now handles this. Note for space reason and as
> it is not required just for booting we do not enable I2C in U-Boot by
> default.
>
> While at it also update copyright period.
>
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>
> ---
>
> Changes in v2: None
>
>  board/toradex/colibri_vf/colibri_vf.c | 82 +--------------------------
>  configs/colibri_vf_defconfig          |  5 ++
>  include/configs/colibri_vf.h          | 13 +----
>  3 files changed, 7 insertions(+), 93 deletions(-)
>
> diff --git a/board/toradex/colibri_vf/colibri_vf.c b/board/toradex/colibri_vf/colibri_vf.c
> index 8e0dea2dc2..c4d05532fe 100644
> --- a/board/toradex/colibri_vf/colibri_vf.c
> +++ b/board/toradex/colibri_vf/colibri_vf.c
> @@ -16,23 +16,16 @@
>  #include <asm/gpio.h>
>  #include <asm/io.h>
>  #include <fdt_support.h>
> -#include <fsl_esdhc.h>
>  #include <fsl_dcu_fb.h>
>  #include <g_dnl.h>
> -#include <i2c.h>
>  #include <jffs2/load_kernel.h>
> -#include <miiphy.h>
> -#include <mmc.h>
>  #include <mtd_node.h>
> -#include <netdev.h>
>  #include <usb.h>
>
>  #include "../common/tdx-common.h"
>
>  DECLARE_GLOBAL_DATA_PTR;
>
> -#define USB_PEN_GPIO           83
> -#define USB_CDET_GPIO          102
>  #define PTC0_GPIO_45           45
>
>  static struct ddrmc_cr_setting colibri_vf_cr_settings[] = {
> @@ -239,25 +232,6 @@ static void setup_tcon(void)
>  }
>  #endif
>
> -#ifdef CONFIG_FSL_ESDHC
> -struct fsl_esdhc_cfg esdhc_cfg[1] = {
> -       {ESDHC1_BASE_ADDR},
> -};
> -
> -int board_mmc_getcd(struct mmc *mmc)
> -{
> -       /* eSDHC1 is always present */
> -       return 1;
> -}
> -
> -int board_mmc_init(bd_t *bis)
> -{
> -       esdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK);
> -
> -       return fsl_esdhc_initialize(bis, &esdhc_cfg[0]);
> -}
> -#endif
> -
>  static inline int is_colibri_vf61(void)
>  {
>         struct mscm *mscm = (struct mscm *)MSCM_BASE_ADDR;
> @@ -290,7 +264,7 @@ static void clock_init(void)
>                         CCM_CCGR3_ANADIG_CTRL_MASK | CCM_CCGR3_SCSC_CTRL_MASK);
>         clrsetbits_le32(&ccm->ccgr4, CCM_REG_CTRL_MASK,
>                         CCM_CCGR4_WKUP_CTRL_MASK | CCM_CCGR4_CCM_CTRL_MASK |
> -                       CCM_CCGR4_GPC_CTRL_MASK | CCM_CCGR4_I2C0_CTRL_MASK);
> +                       CCM_CCGR4_GPC_CTRL_MASK);
>         clrsetbits_le32(&ccm->ccgr6, CCM_REG_CTRL_MASK,
>                         CCM_CCGR6_OCOTP_CTRL_MASK | CCM_CCGR6_DDRMC_CTRL_MASK);
>         clrsetbits_le32(&ccm->ccgr7, CCM_REG_CTRL_MASK,
> @@ -379,14 +353,6 @@ static void mscm_init(void)
>                 writew(MSCM_IRSPRC_CP0_EN, &mscmir->irsprc[i]);
>  }
>
> -int board_phy_config(struct phy_device *phydev)
> -{
> -       if (phydev->drv->config)
> -               phydev->drv->config(phydev);
> -
> -       return 0;
> -}
> -
>  int board_early_init_f(void)
>  {
>         clock_init();
> @@ -433,13 +399,8 @@ int board_init(void)
>          * so we must use the external oscillator in order
>          * to maintain correct time in the hwclock
>          */
> -
>         setbits_le32(&scsc->sosc_ctr, SCSC_SOSC_CTR_SOSC_EN);
>
> -#ifdef CONFIG_USB_EHCI_VF
> -       gpio_request(USB_CDET_GPIO, "usb-cdet-gpio");
> -#endif
> -
>         return 0;
>  }
>
> @@ -476,47 +437,6 @@ int ft_board_setup(void *blob, bd_t *bd)
>  }
>  #endif
>
> -#ifdef CONFIG_USB_EHCI_VF
> -int board_ehci_hcd_init(int port)
> -{
> -       switch (port) {
> -       case 0:
> -               /* USBC does not have PEN, also configured as USB client only */
> -               break;
> -       case 1:
> -               gpio_request(USB_PEN_GPIO, "usb-pen-gpio");
> -               gpio_direction_output(USB_PEN_GPIO, 0);
> -               break;
> -       }
> -       return 0;
> -}
> -
> -int board_usb_phy_mode(int port)
> -{
> -       switch (port) {
> -       case 0:
> -               /*
> -                * Port 0 is used only in client mode on Colibri Vybrid modules
> -                * Check for state of USB client gpio pin and accordingly return
> -                * USB_INIT_DEVICE or USB_INIT_HOST.
> -                */
> -               if (gpio_get_value(USB_CDET_GPIO))
> -                       return USB_INIT_DEVICE;
> -               else
> -                       return USB_INIT_HOST;
> -       case 1:
> -               /* Port 1 is used only in host mode on Colibri Vybrid modules */
> -               return USB_INIT_HOST;
> -       default:
> -               /*
> -                * There are only two USB controllers on Vybrid. Ideally we will
> -                * not reach here. However return USB_INIT_HOST if we do.
> -                */
> -               return USB_INIT_HOST;
> -       }
> -}
> -#endif
> -
>  /*
>   * Backlight off before OS handover
>   */
> diff --git a/configs/colibri_vf_defconfig b/configs/colibri_vf_defconfig
> index 9a91cb4b82..344fe77234 100644
> --- a/configs/colibri_vf_defconfig
> +++ b/configs/colibri_vf_defconfig
> @@ -56,13 +56,18 @@ CONFIG_DM=y
>  CONFIG_DFU_NAND=y
>  CONFIG_DM_GPIO=y
>  CONFIG_VYBRID_GPIO=y
> +CONFIG_DM_MMC=y
>  # CONFIG_MMC_HW_PARTITIONING is not set
>  CONFIG_FSL_ESDHC=y
> +CONFIG_MTD=y
>  CONFIG_NAND_VF610_NFC=y
> +CONFIG_NAND_VF610_NFC_DT=y
>  CONFIG_SYS_NAND_VF610_NFC_60_ECC_BYTES=y
>  CONFIG_MTD_UBI_FASTMAP=y
>  CONFIG_PHYLIB=y
>  CONFIG_PHY_MICREL=y
> +CONFIG_DM_ETH=y
> +CONFIG_FEC_MXC=y
>  CONFIG_MII=y
>  CONFIG_PINCTRL=y
>  CONFIG_PINCTRL_VYBRID=y
> diff --git a/include/configs/colibri_vf.h b/include/configs/colibri_vf.h
> index e7b786e48b..1acc6e5056 100644
> --- a/include/configs/colibri_vf.h
> +++ b/include/configs/colibri_vf.h
> @@ -1,6 +1,6 @@
>  /* SPDX-License-Identifier: GPL-2.0+ */
>  /*
> - * Copyright 2015-2016 Toradex, Inc.
> + * Copyright 2015-2019 Toradex, Inc.
>   *
>   * Configuration settings for the Toradex VF50/VF61 modules.
>   *
> @@ -36,17 +36,6 @@
>  /* NAND support */
>  #define CONFIG_SYS_NAND_ONFI_DETECTION
>  #define CONFIG_SYS_MAX_NAND_DEVICE     1
> -#define CONFIG_SYS_NAND_BASE           NFC_BASE_ADDR
> -
> -/* Dynamic MTD partition support */
> -
> -#define CONFIG_SYS_FSL_ESDHC_ADDR      0
> -#define CONFIG_SYS_FSL_ESDHC_NUM       1
> -
> -#define CONFIG_FEC_MXC
> -#define IMX_FEC_BASE                   ENET1_BASE_ADDR
> -#define CONFIG_FEC_XCV_TYPE            RMII
> -#define CONFIG_FEC_MXC_PHYADDR          0
>
>  #define CONFIG_IPADDR          192.168.10.2
>  #define CONFIG_NETMASK         255.255.255.0
> --
> 2.20.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

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

* [U-Boot] [PATCH v2 13/22] colibri_vf: add distroboot support
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 13/22] colibri_vf: add distroboot support Marcel Ziswiler
@ 2019-03-28 15:01   ` Igor Opaniuk
  2019-03-28 15:20     ` Marcel Ziswiler
  0 siblings, 1 reply; 654+ messages in thread
From: Igor Opaniuk @ 2019-03-28 15:01 UTC (permalink / raw)
  To: u-boot

Hi Marcel,

Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Please check some minor comments below (could be addressed in a
separate patchset):

On Mon, Mar 25, 2019 at 6:35 PM Marcel Ziswiler <marcel@ziswiler.com> wrote:
>
> From: Stefan Agner <stefan.agner@toradex.com>
>
> Add support for distro boot. This is especially helpful for external
> devices. There is a global boot command which scans a predefined
> list of boot targets:
>   run distro_bootcmd
>
> As well as direct boot commands such as:
>   run bootcmd_mmc0
>   run bootcmd_usb
>   run bootcmd_dhcp
>   ...
>
> Refer to doc/README.distro fo details.
>
> While at it also re-order boot command macros as well as the
> CONFIG_EXTRA_ENV_SETTINGS.
>
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>
> ---
>
> Changes in v2: None
>
>  include/configs/colibri_vf.h | 75 ++++++++++++++++++++++--------------
>  1 file changed, 46 insertions(+), 29 deletions(-)
>
> diff --git a/include/configs/colibri_vf.h b/include/configs/colibri_vf.h
> index 9effa56539..83a33ff786 100644
> --- a/include/configs/colibri_vf.h
> +++ b/include/configs/colibri_vf.h
> @@ -48,13 +48,15 @@
>  /* We boot from the gfxRAM area of the OCRAM. */
>  #define CONFIG_BOARD_SIZE_LIMIT                520192
>
> -#define SD_BOOTCMD \
> -       "sdargs=root=/dev/mmcblk0p2 rw rootwait\0"      \
minor: "mmcblk0p2" (it's used in multiple places) can also be put into
the separate variable in case if we decide to change the partition
layout in the future.

> -       "sdboot=run setup; setenv bootargs ${defargs} ${sdargs} ${mtdparts} " \
> -       "${setupargs} ${vidargs}; echo Booting from MMC/SD card...; " \
> -       "load mmc 0:2 ${kernel_addr_r} /boot/${kernel_file} && " \
> -       "load mmc 0:2 ${fdt_addr_r} /boot/${soc}-colibri-${fdt_board}.dtb && " \
minor: I think we should unify (can be addressed in another patchset)
the way how dtb names are concatenated (and for example use this
scheme for all Toradex SoMs; particularly for Colibri iMX6DL the
full-name is still hardcoded "imx6dl-colibri-eval-v3.dtb")

> -       "run fdt_fixup && bootz ${kernel_addr_r} - ${fdt_addr_r}\0" \
> +#define MEM_LAYOUT_ENV_SETTINGS \
> +       "bootm_size=0x10000000\0" \
> +       "fdt_addr_r=0x82000000\0" \
> +       "fdt_high=0xffffffff\0" \
> +       "initrd_high=0xffffffff\0" \
> +       "kernel_addr_r=0x81000000\0" \
> +       "pxefile_addr_r=0x87100000\0" \
> +       "ramdisk_addr_r=0x82100000\0" \
> +       "scriptaddr=0x87000000\0"
>
>  #define NFS_BOOTCMD \
>         "nfsargs=ip=:::::eth0: root=/dev/nfs\0" \
> @@ -65,7 +67,15 @@
>         "tftp ${fdt_addr_r} ${soc}-colibri-${fdt_board}.dtb && " \
>         "run fdt_fixup && bootz ${kernel_addr_r} - ${fdt_addr_r}\0" \
>
> -#define UBI_BOOTCMD    \
> +#define SD_BOOTCMD \
> +       "sdargs=root=/dev/mmcblk0p2 rw rootwait\0"      \
> +       "sdboot=run setup; setenv bootargs ${defargs} ${sdargs} ${mtdparts} " \
> +       "${setupargs} ${vidargs}; echo Booting from MMC/SD card...; " \
> +       "load mmc 0:2 ${kernel_addr_r} /boot/${kernel_file} && " \
> +       "load mmc 0:2 ${fdt_addr_r} /boot/${soc}-colibri-${fdt_board}.dtb && " \
> +       "run fdt_fixup && bootz ${kernel_addr_r} - ${fdt_addr_r}\0" \
> +
> +#define UBI_BOOTCMD \
>         "ubiargs=ubi.mtd=ubi root=ubi0:rootfs rootfstype=ubifs " \
>         "ubi.fm_autoconvert=1\0" \
>         "ubiboot=run setup; " \
> @@ -76,36 +86,43 @@
>         "ubi read ${fdt_addr_r} dtb && " \
>         "run fdt_fixup && bootz ${kernel_addr_r} - ${fdt_addr_r}\0" \
>
> -#define CONFIG_BOOTCOMMAND "run ubiboot; run sdboot; run nfsboot"
> +#define CONFIG_BOOTCOMMAND "run ubiboot; run distro_bootcmd;"
> +
> +#define BOOT_TARGET_DEVICES(func) \
> +       func(MMC, mmc, 0) \
> +       func(USB, usb, 0) \
> +       func(DHCP, dhcp, na)
> +#include <config_distro_bootcmd.h>
> +#undef BOOTENV_RUN_NET_USB_START
> +#define BOOTENV_RUN_NET_USB_START ""
>
>  #define DFU_ALT_NAND_INFO "vf-bcb part 0,1;u-boot part 0,2;ubi part 0,4"
>
>  #define CONFIG_EXTRA_ENV_SETTINGS \
> -       "kernel_addr_r=0x82000000\0" \
> -       "fdt_addr_r=0x84000000\0" \
> -       "kernel_file=zImage\0" \
> -       "fdt_file=${soc}-colibri-${fdt_board}.dtb\0" \
> +       BOOTENV \
> +       MEM_LAYOUT_ENV_SETTINGS \
> +       NFS_BOOTCMD \
> +       SD_BOOTCMD \
> +       UBI_BOOTCMD \
> +       "console=ttyLP0\0" \
> +       "defargs=\0" \
> +       "dfu_alt_info=" DFU_ALT_NAND_INFO "\0" \
>         "fdt_board=eval-v3\0" \
> +       "fdt_file=${soc}-colibri-${fdt_board}.dtb\0" \
>         "fdt_fixup=;\0" \
> -       "defargs=\0" \
> -       "console=ttyLP0\0" \
> -       "setup=setenv setupargs " \
> -       "console=tty1 console=${console}" \
> -       ",${baudrate}n8 ${memargs}\0" \
> +       "kernel_file=zImage\0" \
> +       "mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0" \
>         "setsdupdate=mmc rescan && set interface mmc && " \
> -       "fatload ${interface} 0:1 ${loadaddr} flash_blk.img && " \
> -       "source ${loadaddr}\0" \
> -       "setusbupdate=usb start && set interface usb && " \
> -       "fatload ${interface} 0:1 ${loadaddr} flash_blk.img && " \
> -       "source ${loadaddr}\0" \
> +               "fatload ${interface} 0:1 ${loadaddr} flash_blk.img && " \
> +               "source ${loadaddr}\0" \
> +       "setup=setenv setupargs console=tty1 console=${console}" \
what is the point providing console configuration two times?

> +               ",${baudrate}n8 ${memargs}\0" \
>         "setupdate=run setsdupdate || run setusbupdate\0" \
> -       "mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0" \
> -       "dfu_alt_info=" DFU_ALT_NAND_INFO "\0" \
> -       "video-mode=dcufb:640x480-16 at 60,monitor=lcd\0" \
> +       "setusbupdate=usb start && set interface usb && " \
> +               "fatload ${interface} 0:1 ${loadaddr} flash_blk.img && " \
> +               "source ${loadaddr}\0" \
>         "splashpos=m,m\0" \
> -       SD_BOOTCMD \
> -       NFS_BOOTCMD \
> -       UBI_BOOTCMD
> +       "video-mode=dcufb:640x480-16 at 60,monitor=lcd\0"
>
>  /* Miscellaneous configurable options */
>  #define CONFIG_SYS_CBSIZE              1024    /* Console I/O Buffer Size */
> --
> 2.20.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

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

* [U-Boot] [PATCH v2 14/22] colibri_vf: set fdtfile for distroboot
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 14/22] colibri_vf: set fdtfile for distroboot Marcel Ziswiler
@ 2019-03-28 15:06   ` Igor Opaniuk
  0 siblings, 0 replies; 654+ messages in thread
From: Igor Opaniuk @ 2019-03-28 15:06 UTC (permalink / raw)
  To: u-boot

Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

On Mon, Mar 25, 2019 at 6:32 PM Marcel Ziswiler <marcel@ziswiler.com> wrote:
>
> From: Stefan Agner <stefan.agner@toradex.com>
>
> Set fdtfile to represent the current board. This allows distribution
> to load the correct device tree, which in the module case often
> deviates from the common fallback ${soc}-${board}${boardver}.dtb...
>
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>
> ---
>
> Changes in v2: None
>
>  include/configs/colibri_vf.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/include/configs/colibri_vf.h b/include/configs/colibri_vf.h
> index 83a33ff786..0bbeeb902e 100644
> --- a/include/configs/colibri_vf.h
> +++ b/include/configs/colibri_vf.h
> @@ -86,7 +86,8 @@
>         "ubi read ${fdt_addr_r} dtb && " \
>         "run fdt_fixup && bootz ${kernel_addr_r} - ${fdt_addr_r}\0" \
>
> -#define CONFIG_BOOTCOMMAND "run ubiboot; run distro_bootcmd;"
> +#define CONFIG_BOOTCOMMAND "run ubiboot; " \
> +       "setenv fdtfile ${soc}-colibri-${fdt_board}.dtb && run distro_bootcmd;"
>
>  #define BOOT_TARGET_DEVICES(func) \
>         func(MMC, mmc, 0) \
> @@ -108,7 +109,6 @@
>         "defargs=\0" \
>         "dfu_alt_info=" DFU_ALT_NAND_INFO "\0" \
>         "fdt_board=eval-v3\0" \
> -       "fdt_file=${soc}-colibri-${fdt_board}.dtb\0" \
>         "fdt_fixup=;\0" \
>         "kernel_file=zImage\0" \
>         "mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0" \
> --
> 2.20.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

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

* [U-Boot] [PATCH v2 10/22] colibri_vf: migrate pinctrl and regulators to dtb/dm
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 10/22] colibri_vf: migrate pinctrl and regulators to dtb/dm Marcel Ziswiler
@ 2019-03-28 15:09   ` Igor Opaniuk
  0 siblings, 0 replies; 654+ messages in thread
From: Igor Opaniuk @ 2019-03-28 15:09 UTC (permalink / raw)
  To: u-boot

Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

On Mon, Mar 25, 2019 at 6:30 PM Marcel Ziswiler <marcel@ziswiler.com> wrote:
>
> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>
> Migrate pinctrl and regulators to device tree resp. driver model: DDR,
> DSPI, ENET, ESDHC, I2C, NFC and UART.
>
> Enable CMD_DM, PINCTRL and DM_REGULATOR.
>
> While at it also update copyright period and sort include files.
>
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>
> ---
>
> Changes in v2: None
>
>  board/toradex/colibri_vf/colibri_vf.c | 139 ++------------------------
>  configs/colibri_vf_defconfig          |   5 +
>  2 files changed, 16 insertions(+), 128 deletions(-)
>
> diff --git a/board/toradex/colibri_vf/colibri_vf.c b/board/toradex/colibri_vf/colibri_vf.c
> index 79f702f2bf..8e0dea2dc2 100644
> --- a/board/toradex/colibri_vf/colibri_vf.c
> +++ b/board/toradex/colibri_vf/colibri_vf.c
> @@ -1,43 +1,36 @@
>  // SPDX-License-Identifier: GPL-2.0+
>  /*
> - * Copyright 2015 Toradex, Inc.
> + * Copyright 2015-2019 Toradex, Inc.
>   *
>   * Based on vf610twr.c:
>   * Copyright 2013 Freescale Semiconductor, Inc.
>   */
>
>  #include <common.h>
> -#include <asm/io.h>
> +
> +#include <asm/arch/clock.h>
> +#include <asm/arch/crm_regs.h>
> +#include <asm/arch/ddrmc-vf610.h>
>  #include <asm/arch/imx-regs.h>
>  #include <asm/arch/iomux-vf610.h>
> -#include <asm/arch/ddrmc-vf610.h>
> -#include <asm/arch/crm_regs.h>
> -#include <asm/arch/clock.h>
> -#include <mmc.h>
> +#include <asm/gpio.h>
> +#include <asm/io.h>
>  #include <fdt_support.h>
>  #include <fsl_esdhc.h>
>  #include <fsl_dcu_fb.h>
> +#include <g_dnl.h>
> +#include <i2c.h>
>  #include <jffs2/load_kernel.h>
>  #include <miiphy.h>
> +#include <mmc.h>
>  #include <mtd_node.h>
>  #include <netdev.h>
> -#include <i2c.h>
> -#include <g_dnl.h>
> -#include <asm/gpio.h>
>  #include <usb.h>
> +
>  #include "../common/tdx-common.h"
>
>  DECLARE_GLOBAL_DATA_PTR;
>
> -#define UART_PAD_CTRL  (PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \
> -                       PAD_CTL_DSE_25ohm | PAD_CTL_OBE_IBE_ENABLE)
> -
> -#define ESDHC_PAD_CTRL (PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_HIGH | \
> -                       PAD_CTL_DSE_20ohm | PAD_CTL_OBE_IBE_ENABLE)
> -
> -#define ENET_PAD_CTRL  (PAD_CTL_PUS_47K_UP | PAD_CTL_SPEED_HIGH | \
> -                       PAD_CTL_DSE_50ohm | PAD_CTL_OBE_IBE_ENABLE)
> -
>  #define USB_PEN_GPIO           83
>  #define USB_CDET_GPIO          102
>  #define PTC0_GPIO_45           45
> @@ -89,11 +82,6 @@ static struct ddrmc_cr_setting colibri_vf_cr_settings[] = {
>         { 0, -1 }
>  };
>
> -static const iomux_v3_cfg_t usb_pads[] = {
> -       VF610_PAD_PTD4__GPIO_83,
> -       VF610_PAD_PTC29__GPIO_102,
> -};
> -
>  int dram_init(void)
>  {
>         static const struct ddr3_jedec_timings timings = {
> @@ -147,92 +135,12 @@ int dram_init(void)
>                 .wldqsen           = 25,
>         };
>
> -       ddrmc_setup_iomux(NULL, 0);
> -
>         ddrmc_ctrl_init_ddr3(&timings, colibri_vf_cr_settings, NULL, 1, 2);
>         gd->ram_size = get_ram_size((void *)PHYS_SDRAM, PHYS_SDRAM_SIZE);
>
>         return 0;
>  }
>
> -static void setup_iomux_uart(void)
> -{
> -       static const iomux_v3_cfg_t uart_pads[] = {
> -               NEW_PAD_CTRL(VF610_PAD_PTB4__UART1_TX, UART_PAD_CTRL),
> -               NEW_PAD_CTRL(VF610_PAD_PTB5__UART1_RX, UART_PAD_CTRL),
> -               NEW_PAD_CTRL(VF610_PAD_PTB10__UART0_TX, UART_PAD_CTRL),
> -               NEW_PAD_CTRL(VF610_PAD_PTB11__UART0_RX, UART_PAD_CTRL),
> -       };
> -
> -       imx_iomux_v3_setup_multiple_pads(uart_pads, ARRAY_SIZE(uart_pads));
> -}
> -
> -static void setup_iomux_enet(void)
> -{
> -       static const iomux_v3_cfg_t enet0_pads[] = {
> -               NEW_PAD_CTRL(VF610_PAD_PTA6__RMII0_CLKOUT, ENET_PAD_CTRL),
> -               NEW_PAD_CTRL(VF610_PAD_PTC10__RMII1_MDIO, ENET_PAD_CTRL),
> -               NEW_PAD_CTRL(VF610_PAD_PTC9__RMII1_MDC, ENET_PAD_CTRL),
> -               NEW_PAD_CTRL(VF610_PAD_PTC11__RMII1_CRS_DV, ENET_PAD_CTRL),
> -               NEW_PAD_CTRL(VF610_PAD_PTC12__RMII1_RD1, ENET_PAD_CTRL),
> -               NEW_PAD_CTRL(VF610_PAD_PTC13__RMII1_RD0, ENET_PAD_CTRL),
> -               NEW_PAD_CTRL(VF610_PAD_PTC14__RMII1_RXER, ENET_PAD_CTRL),
> -               NEW_PAD_CTRL(VF610_PAD_PTC15__RMII1_TD1, ENET_PAD_CTRL),
> -               NEW_PAD_CTRL(VF610_PAD_PTC16__RMII1_TD0, ENET_PAD_CTRL),
> -               NEW_PAD_CTRL(VF610_PAD_PTC17__RMII1_TXEN, ENET_PAD_CTRL),
> -       };
> -
> -       imx_iomux_v3_setup_multiple_pads(enet0_pads, ARRAY_SIZE(enet0_pads));
> -}
> -
> -static void setup_iomux_i2c(void)
> -{
> -       static const iomux_v3_cfg_t i2c0_pads[] = {
> -               VF610_PAD_PTB14__I2C0_SCL,
> -               VF610_PAD_PTB15__I2C0_SDA,
> -       };
> -
> -       imx_iomux_v3_setup_multiple_pads(i2c0_pads, ARRAY_SIZE(i2c0_pads));
> -}
> -
> -#ifdef CONFIG_NAND_VF610_NFC
> -static void setup_iomux_nfc(void)
> -{
> -       static const iomux_v3_cfg_t nfc_pads[] = {
> -               VF610_PAD_PTD23__NF_IO7,
> -               VF610_PAD_PTD22__NF_IO6,
> -               VF610_PAD_PTD21__NF_IO5,
> -               VF610_PAD_PTD20__NF_IO4,
> -               VF610_PAD_PTD19__NF_IO3,
> -               VF610_PAD_PTD18__NF_IO2,
> -               VF610_PAD_PTD17__NF_IO1,
> -               VF610_PAD_PTD16__NF_IO0,
> -               VF610_PAD_PTB24__NF_WE_B,
> -               VF610_PAD_PTB25__NF_CE0_B,
> -               VF610_PAD_PTB27__NF_RE_B,
> -               VF610_PAD_PTC26__NF_RB_B,
> -               VF610_PAD_PTC27__NF_ALE,
> -               VF610_PAD_PTC28__NF_CLE
> -       };
> -
> -       imx_iomux_v3_setup_multiple_pads(nfc_pads, ARRAY_SIZE(nfc_pads));
> -}
> -#endif
> -
> -#ifdef CONFIG_FSL_DSPI
> -static void setup_iomux_dspi(void)
> -{
> -       static const iomux_v3_cfg_t dspi1_pads[] = {
> -               VF610_PAD_PTD5__DSPI1_CS0,
> -               VF610_PAD_PTD6__DSPI1_SIN,
> -               VF610_PAD_PTD7__DSPI1_SOUT,
> -               VF610_PAD_PTD8__DSPI1_SCK,
> -       };
> -
> -       imx_iomux_v3_setup_multiple_pads(dspi1_pads, ARRAY_SIZE(dspi1_pads));
> -}
> -#endif
> -
>  #ifdef CONFIG_VYBRID_GPIO
>  static void setup_iomux_gpio(void)
>  {
> @@ -344,20 +252,8 @@ int board_mmc_getcd(struct mmc *mmc)
>
>  int board_mmc_init(bd_t *bis)
>  {
> -       static const iomux_v3_cfg_t esdhc1_pads[] = {
> -               NEW_PAD_CTRL(VF610_PAD_PTA24__ESDHC1_CLK, ESDHC_PAD_CTRL),
> -               NEW_PAD_CTRL(VF610_PAD_PTA25__ESDHC1_CMD, ESDHC_PAD_CTRL),
> -               NEW_PAD_CTRL(VF610_PAD_PTA26__ESDHC1_DAT0, ESDHC_PAD_CTRL),
> -               NEW_PAD_CTRL(VF610_PAD_PTA27__ESDHC1_DAT1, ESDHC_PAD_CTRL),
> -               NEW_PAD_CTRL(VF610_PAD_PTA28__ESDHC1_DAT2, ESDHC_PAD_CTRL),
> -               NEW_PAD_CTRL(VF610_PAD_PTA29__ESDHC1_DAT3, ESDHC_PAD_CTRL),
> -       };
> -
>         esdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK);
>
> -       imx_iomux_v3_setup_multiple_pads(
> -               esdhc1_pads, ARRAY_SIZE(esdhc1_pads));
> -
>         return fsl_esdhc_initialize(bis, &esdhc_cfg[0]);
>  }
>  #endif
> @@ -496,21 +392,10 @@ int board_early_init_f(void)
>         clock_init();
>         mscm_init();
>
> -       setup_iomux_uart();
> -       setup_iomux_enet();
> -       setup_iomux_i2c();
> -#ifdef CONFIG_NAND_VF610_NFC
> -       setup_iomux_nfc();
> -#endif
> -
>  #ifdef CONFIG_VYBRID_GPIO
>         setup_iomux_gpio();
>  #endif
>
> -#ifdef CONFIG_FSL_DSPI
> -       setup_iomux_dspi();
> -#endif
> -
>  #ifdef CONFIG_VIDEO_FSL_DCU_FB
>         setup_tcon();
>         setup_iomux_fsl_dcu();
> @@ -594,8 +479,6 @@ int ft_board_setup(void *blob, bd_t *bd)
>  #ifdef CONFIG_USB_EHCI_VF
>  int board_ehci_hcd_init(int port)
>  {
> -       imx_iomux_v3_setup_multiple_pads(usb_pads, ARRAY_SIZE(usb_pads));
> -
>         switch (port) {
>         case 0:
>                 /* USBC does not have PEN, also configured as USB client only */
> diff --git a/configs/colibri_vf_defconfig b/configs/colibri_vf_defconfig
> index 706d7ca634..9a91cb4b82 100644
> --- a/configs/colibri_vf_defconfig
> +++ b/configs/colibri_vf_defconfig
> @@ -27,6 +27,7 @@ CONFIG_CMD_BOOTZ=y
>  CONFIG_CMD_ASKENV=y
>  CONFIG_CMD_MEMTEST=y
>  CONFIG_CMD_DFU=y
> +CONFIG_CMD_DM=y
>  # CONFIG_CMD_FLASH is not set
>  CONFIG_CMD_FUSE=y
>  CONFIG_CMD_GPIO=y
> @@ -63,6 +64,10 @@ CONFIG_MTD_UBI_FASTMAP=y
>  CONFIG_PHYLIB=y
>  CONFIG_PHY_MICREL=y
>  CONFIG_MII=y
> +CONFIG_PINCTRL=y
> +CONFIG_PINCTRL_VYBRID=y
> +CONFIG_DM_REGULATOR=y
> +CONFIG_DM_REGULATOR_FIXED=y
>  # CONFIG_SPL_SERIAL_PRESENT is not set
>  # CONFIG_TPL_SERIAL_PRESENT is not set
>  CONFIG_DM_SERIAL=y
> --
> 2.20.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

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

* [U-Boot] [PATCH v2 13/22] colibri_vf: add distroboot support
  2019-03-28 15:01   ` Igor Opaniuk
@ 2019-03-28 15:20     ` Marcel Ziswiler
  0 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-03-28 15:20 UTC (permalink / raw)
  To: u-boot

Hi Igor

On Thu, 2019-03-28 at 15:01 +0000, Igor Opaniuk wrote:
> Hi Marcel,
> 
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>
> 
> Please check some minor comments below (could be addressed in a
> separate patchset):
> 
> On Mon, Mar 25, 2019 at 6:35 PM Marcel Ziswiler <marcel@ziswiler.com>
> wrote:
> > From: Stefan Agner <stefan.agner@toradex.com>
> > 
> > Add support for distro boot. This is especially helpful for
> > external
> > devices. There is a global boot command which scans a predefined
> > list of boot targets:
> >   run distro_bootcmd
> > 
> > As well as direct boot commands such as:
> >   run bootcmd_mmc0
> >   run bootcmd_usb
> >   run bootcmd_dhcp
> >   ...
> > 
> > Refer to doc/README.distro fo details.
> > 
> > While at it also re-order boot command macros as well as the
> > CONFIG_EXTRA_ENV_SETTINGS.
> > 
> > Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> > Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
> > Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> > 
> > ---
> > 
> > Changes in v2: None
> > 
> >  include/configs/colibri_vf.h | 75 ++++++++++++++++++++++--------
> > ------
> >  1 file changed, 46 insertions(+), 29 deletions(-)
> > 
> > diff --git a/include/configs/colibri_vf.h
> > b/include/configs/colibri_vf.h
> > index 9effa56539..83a33ff786 100644
> > --- a/include/configs/colibri_vf.h
> > +++ b/include/configs/colibri_vf.h
> > @@ -48,13 +48,15 @@
> >  /* We boot from the gfxRAM area of the OCRAM. */
> >  #define CONFIG_BOARD_SIZE_LIMIT                520192
> > 
> > -#define SD_BOOTCMD \
> > -       "sdargs=root=/dev/mmcblk0p2 rw rootwait\0"      \
> minor: "mmcblk0p2" (it's used in multiple places) can also be put
> into
> the separate variable in case if we decide to change the partition
> layout in the future.

With BSP 3.0 we anyway plan to transition to proper distroboot.

> > -       "sdboot=run setup; setenv bootargs ${defargs} ${sdargs}
> > ${mtdparts} " \
> > -       "${setupargs} ${vidargs}; echo Booting from MMC/SD card...;
> > " \
> > -       "load mmc 0:2 ${kernel_addr_r} /boot/${kernel_file} && " \
> > -       "load mmc 0:2 ${fdt_addr_r} /boot/${soc}-colibri-
> > ${fdt_board}.dtb && " \
> minor: I think we should unify (can be addressed in another patchset)
> the way how dtb names are concatenated (and for example use this
> scheme for all Toradex SoMs; particularly for Colibri iMX6DL the
> full-name is still hardcoded "imx6dl-colibri-eval-v3.dtb")

Yeah, that is another legacy in need of cleaning up.

> > -       "run fdt_fixup && bootz ${kernel_addr_r} - ${fdt_addr_r}\0"
> > \
> > +#define MEM_LAYOUT_ENV_SETTINGS \
> > +       "bootm_size=0x10000000\0" \
> > +       "fdt_addr_r=0x82000000\0" \
> > +       "fdt_high=0xffffffff\0" \
> > +       "initrd_high=0xffffffff\0" \
> > +       "kernel_addr_r=0x81000000\0" \
> > +       "pxefile_addr_r=0x87100000\0" \
> > +       "ramdisk_addr_r=0x82100000\0" \
> > +       "scriptaddr=0x87000000\0"
> > 
> >  #define NFS_BOOTCMD \
> >         "nfsargs=ip=:::::eth0: root=/dev/nfs\0" \
> > @@ -65,7 +67,15 @@
> >         "tftp ${fdt_addr_r} ${soc}-colibri-${fdt_board}.dtb && " \
> >         "run fdt_fixup && bootz ${kernel_addr_r} - ${fdt_addr_r}\0"
> > \
> > 
> > -#define UBI_BOOTCMD    \
> > +#define SD_BOOTCMD \
> > +       "sdargs=root=/dev/mmcblk0p2 rw rootwait\0"      \
> > +       "sdboot=run setup; setenv bootargs ${defargs} ${sdargs}
> > ${mtdparts} " \
> > +       "${setupargs} ${vidargs}; echo Booting from MMC/SD card...;
> > " \
> > +       "load mmc 0:2 ${kernel_addr_r} /boot/${kernel_file} && " \
> > +       "load mmc 0:2 ${fdt_addr_r} /boot/${soc}-colibri-
> > ${fdt_board}.dtb && " \
> > +       "run fdt_fixup && bootz ${kernel_addr_r} - ${fdt_addr_r}\0"
> > \
> > +
> > +#define UBI_BOOTCMD \
> >         "ubiargs=ubi.mtd=ubi root=ubi0:rootfs rootfstype=ubifs " \
> >         "ubi.fm_autoconvert=1\0" \
> >         "ubiboot=run setup; " \
> > @@ -76,36 +86,43 @@
> >         "ubi read ${fdt_addr_r} dtb && " \
> >         "run fdt_fixup && bootz ${kernel_addr_r} - ${fdt_addr_r}\0"
> > \
> > 
> > -#define CONFIG_BOOTCOMMAND "run ubiboot; run sdboot; run nfsboot"
> > +#define CONFIG_BOOTCOMMAND "run ubiboot; run distro_bootcmd;"
> > +
> > +#define BOOT_TARGET_DEVICES(func) \
> > +       func(MMC, mmc, 0) \
> > +       func(USB, usb, 0) \
> > +       func(DHCP, dhcp, na)
> > +#include <config_distro_bootcmd.h>
> > +#undef BOOTENV_RUN_NET_USB_START
> > +#define BOOTENV_RUN_NET_USB_START ""
> > 
> >  #define DFU_ALT_NAND_INFO "vf-bcb part 0,1;u-boot part 0,2;ubi
> > part 0,4"
> > 
> >  #define CONFIG_EXTRA_ENV_SETTINGS \
> > -       "kernel_addr_r=0x82000000\0" \
> > -       "fdt_addr_r=0x84000000\0" \
> > -       "kernel_file=zImage\0" \
> > -       "fdt_file=${soc}-colibri-${fdt_board}.dtb\0" \
> > +       BOOTENV \
> > +       MEM_LAYOUT_ENV_SETTINGS \
> > +       NFS_BOOTCMD \
> > +       SD_BOOTCMD \
> > +       UBI_BOOTCMD \
> > +       "console=ttyLP0\0" \
> > +       "defargs=\0" \
> > +       "dfu_alt_info=" DFU_ALT_NAND_INFO "\0" \
> >         "fdt_board=eval-v3\0" \
> > +       "fdt_file=${soc}-colibri-${fdt_board}.dtb\0" \
> >         "fdt_fixup=;\0" \
> > -       "defargs=\0" \
> > -       "console=ttyLP0\0" \
> > -       "setup=setenv setupargs " \
> > -       "console=tty1 console=${console}" \
> > -       ",${baudrate}n8 ${memargs}\0" \
> > +       "kernel_file=zImage\0" \
> > +       "mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0" \
> >         "setsdupdate=mmc rescan && set interface mmc && " \
> > -       "fatload ${interface} 0:1 ${loadaddr} flash_blk.img && " \
> > -       "source ${loadaddr}\0" \
> > -       "setusbupdate=usb start && set interface usb && " \
> > -       "fatload ${interface} 0:1 ${loadaddr} flash_blk.img && " \
> > -       "source ${loadaddr}\0" \
> > +               "fatload ${interface} 0:1 ${loadaddr} flash_blk.img
> > && " \
> > +               "source ${loadaddr}\0" \
> > +       "setup=setenv setupargs console=tty1 console=${console}" \
> what is the point providing console configuration two times?

That fist one is the frame buffer console vs. the later serial console.

> > +               ",${baudrate}n8 ${memargs}\0" \
> >         "setupdate=run setsdupdate || run setusbupdate\0" \
> > -       "mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0" \
> > -       "dfu_alt_info=" DFU_ALT_NAND_INFO "\0" \
> > -       "video-mode=dcufb:640x480-16 at 60,monitor=lcd\0" \
> > +       "setusbupdate=usb start && set interface usb && " \
> > +               "fatload ${interface} 0:1 ${loadaddr} flash_blk.img
> > && " \
> > +               "source ${loadaddr}\0" \
> >         "splashpos=m,m\0" \
> > -       SD_BOOTCMD \
> > -       NFS_BOOTCMD \
> > -       UBI_BOOTCMD
> > +       "video-mode=dcufb:640x480-16 at 60,monitor=lcd\0"
> > 
> >  /* Miscellaneous configurable options */
> >  #define CONFIG_SYS_CBSIZE              1024    /* Console I/O
> > Buffer Size */
> > --
> > 2.20.1
> > 
> > _______________________________________________
> > U-Boot mailing list
> > U-Boot at lists.denx.de
> > https://lists.denx.de/listinfo/u-boot

Cheers

Marcel

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

* [U-Boot] [PATCH v2 20/22] colibri_vf: adjust timing according to data sheet
  2019-03-25 16:25 ` [U-Boot] [PATCH v2 20/22] colibri_vf: adjust timing according to data sheet Marcel Ziswiler
@ 2019-03-28 16:41   ` Igor Opaniuk
  0 siblings, 0 replies; 654+ messages in thread
From: Igor Opaniuk @ 2019-03-28 16:41 UTC (permalink / raw)
  To: u-boot

Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

On Mon, Mar 25, 2019 at 6:32 PM Marcel Ziswiler <marcel@ziswiler.com> wrote:
>
> From: Stefan Agner <stefan.agner@toradex.com>
>
> Using the DDR Validation tool in Processor Expert uncovered two
> timing inconsistencies. Since those timings are related to the
> suspend mode they do not affect or change regular memory behaviour.
>
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>
> ---
>
> Changes in v2: None
>
>  board/toradex/colibri_vf/colibri_vf.c | 12 +++++++++---
>  1 file changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/board/toradex/colibri_vf/colibri_vf.c b/board/toradex/colibri_vf/colibri_vf.c
> index 9c5bf4951b..3e39912f91 100644
> --- a/board/toradex/colibri_vf/colibri_vf.c
> +++ b/board/toradex/colibri_vf/colibri_vf.c
> @@ -101,15 +101,21 @@ int dram_init(void)
>                 .tras_lockout      = 0,
>                 .tdal              = 12,
>                 .bstlen            = 3,
> -               .tdll              = 512,
> +               .tdll              = 512, /* not applicable since freq. scaling
> +                                          * is not used
> +                                          */
>                 .trp_ab            = 6,
>                 .tref              = 3120,
>                 .trfc              = 64,
>                 .tref_int          = 0,
>                 .tpdex             = 3,
>                 .txpdll            = 10,
> -               .txsnr             = 48,
> -               .txsr              = 468,
> +               .txsnr             = 68,  /* changed to conform to JEDEC
> +                                          * specifications
> +                                          */
> +               .txsr              = 506, /* changed to conform to JEDEC
> +                                          * specifications
> +                                          */
>                 .cksrx             = 5,
>                 .cksre             = 5,
>                 .freq_chg_en       = 0,
> --
> 2.20.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

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

* [U-Boot] [PATCH v2 09/22] configs: colibri_vf: disable obscure options
  2019-03-25 16:24 ` [U-Boot] [PATCH v2 09/22] configs: colibri_vf: disable obscure options Marcel Ziswiler
@ 2019-03-28 16:58   ` Igor Opaniuk
  2019-03-29  9:08     ` Marcel Ziswiler
  0 siblings, 1 reply; 654+ messages in thread
From: Igor Opaniuk @ 2019-03-28 16:58 UTC (permalink / raw)
  To: u-boot

Hi Marcel,

The actual line which does have impact is `CONFIG_DFU_MMC=y`.

Not sure I understand the reason of adding "# ... is not set" lines in
this defconfig. Could you please explain?

Regards,
Igor

On Mon, Mar 25, 2019 at 6:30 PM Marcel Ziswiler <marcel@ziswiler.com> wrote:
>
> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>
> Disable more obscure options to save another 26 KB in preparation of
> the upcoming driver model migration.
>
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>
> ---
>
> Changes in v2: None
>
>  configs/colibri_vf_defconfig | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/configs/colibri_vf_defconfig b/configs/colibri_vf_defconfig
> index 8188582ed9..706d7ca634 100644
> --- a/configs/colibri_vf_defconfig
> +++ b/configs/colibri_vf_defconfig
> @@ -17,11 +17,17 @@ CONFIG_BOARD_EARLY_INIT_F=y
>  CONFIG_HUSH_PARSER=y
>  # CONFIG_CMDLINE_EDITING is not set
>  # CONFIG_AUTO_COMPLETE is not set
> +# CONFIG_SYS_LONGHELP is not set
>  CONFIG_SYS_PROMPT="Colibri VFxx # "
> +# CONFIG_CMD_BOOTD is not set
> +# CONFIG_CMD_BOOTM is not set
>  CONFIG_CMD_BOOTZ=y
> +# CONFIG_CMD_ELF is not set
> +# CONFIG_CMD_IMI is not set
>  CONFIG_CMD_ASKENV=y
>  CONFIG_CMD_MEMTEST=y
>  CONFIG_CMD_DFU=y
> +# CONFIG_CMD_FLASH is not set
>  CONFIG_CMD_FUSE=y
>  CONFIG_CMD_GPIO=y
>  # CONFIG_CMD_LOADB is not set
> @@ -46,10 +52,10 @@ CONFIG_DEFAULT_DEVICE_TREE="vf610-colibri"
>  CONFIG_ENV_IS_IN_NAND=y
>  CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
>  CONFIG_DM=y
> -CONFIG_DFU_MMC=y
>  CONFIG_DFU_NAND=y
>  CONFIG_DM_GPIO=y
>  CONFIG_VYBRID_GPIO=y
> +# CONFIG_MMC_HW_PARTITIONING is not set
>  CONFIG_FSL_ESDHC=y
>  CONFIG_NAND_VF610_NFC=y
>  CONFIG_SYS_NAND_VF610_NFC_60_ECC_BYTES=y
> @@ -57,6 +63,8 @@ CONFIG_MTD_UBI_FASTMAP=y
>  CONFIG_PHYLIB=y
>  CONFIG_PHY_MICREL=y
>  CONFIG_MII=y
> +# CONFIG_SPL_SERIAL_PRESENT is not set
> +# CONFIG_TPL_SERIAL_PRESENT is not set
>  CONFIG_DM_SERIAL=y
>  CONFIG_FSL_LPUART=y
>  CONFIG_USB=y
> --
> 2.20.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

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

* [U-Boot] [PATCH v1] colibri_vf: fix ethernet by adding explicit phy node
@ 2019-03-28 22:24 Marcel Ziswiler
  2019-03-29  5:54 ` Hannes Schmelzer
  2019-03-29 11:25 ` Igor Opaniuk
  0 siblings, 2 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-03-28 22:24 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

The implicit fallback mechanism for searching the whole MDIO bus for at
least one PHY has been gone with the following commit b882005a18de
("drivers/net/fec: phy_init: remove redundant logic"). This lead to the
Ethernet driver erroring out as follows:

Net:   Could not get PHY for FEC0: addr -19
eth-1: fec at 400d1000
Colibri VFxx # dhcp
Could not get PHY for FEC0: addr -19
Could not get PHY for FEC0: addr -19
Could not get PHY for FEC0: addr -19
Could not get PHY for FEC0: addr -19
No ethernet found.
Could not get PHY for FEC0: addr -19
Colibri VFxx #

This commit adds an explicit PHY node which makes it work again.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 arch/arm/dts/vf-colibri.dtsi | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/arch/arm/dts/vf-colibri.dtsi b/arch/arm/dts/vf-colibri.dtsi
index 5ce17076e9..91ca4e4ddd 100644
--- a/arch/arm/dts/vf-colibri.dtsi
+++ b/arch/arm/dts/vf-colibri.dtsi
@@ -60,11 +60,24 @@
 	status = "okay";
 };
 
+/* Ethernet */
 &fec1 {
 	phy-mode = "rmii";
+	phy-handle = <&ethphy1>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_fec1>;
 	status = "okay";
+
+	mdio {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		ethphy1: ethernet-phy at 1 {
+			compatible = "ethernet-phy-ieee802.3-c22";
+			max-speed = <100>;
+			reg = <1>;
+		};
+	};
 };
 
 &i2c0 {
-- 
2.20.1

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

* [U-Boot] [PATCH v1] colibri_vf: fix tab vs. spaces
@ 2019-03-28 22:25 Marcel Ziswiler
  2019-03-29 11:27 ` Igor Opaniuk
  0 siblings, 1 reply; 654+ messages in thread
From: Marcel Ziswiler @ 2019-03-28 22:25 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Fix indentation using tab vs. spaces.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

 board/toradex/colibri_vf/MAINTAINERS | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/board/toradex/colibri_vf/MAINTAINERS b/board/toradex/colibri_vf/MAINTAINERS
index 3ee2b33152..66b2150986 100644
--- a/board/toradex/colibri_vf/MAINTAINERS
+++ b/board/toradex/colibri_vf/MAINTAINERS
@@ -1,7 +1,7 @@
 Colibri VFxx
 M:	Stefan Agner <stefan.agner@toradex.com>
 W:	http://developer.toradex.com/software/linux/linux-software
-W:      https://www.toradex.com/community
+W:	https://www.toradex.com/community
 S:	Maintained
 F:	board/toradex/colibri_vf/
 F:	include/configs/colibri_vf.h
-- 
2.20.1

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

* [U-Boot] [PATCH v1] colibri_vf: fix ethernet by adding explicit phy node
  2019-03-28 22:24 [U-Boot] [PATCH v1] colibri_vf: fix ethernet by adding explicit phy node Marcel Ziswiler
@ 2019-03-29  5:54 ` Hannes Schmelzer
  2019-03-29 11:25 ` Igor Opaniuk
  1 sibling, 0 replies; 654+ messages in thread
From: Hannes Schmelzer @ 2019-03-29  5:54 UTC (permalink / raw)
  To: u-boot

Marcel Ziswiler <marcel@ziswiler.com> schrieb am 28.03.2019 23:24:50:

> Von: Marcel Ziswiler <marcel@ziswiler.com>
> An: u-boot at lists.denx.de
> Kopie: Hannes Schmelzer <hannes.schmelzer@br-automation.com>, Marcel 
Ziswiler 
> <marcel.ziswiler@toradex.com>, Albert Aribaud 
<albert.u.boot@aribaud.net>, 
> Stefan Agner <stefan.agner@toradex.com>
> Datum: 28.03.2019 23:25
> Betreff: [PATCH v1] colibri_vf: fix ethernet by adding explicit phy node
> 
> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> 
> The implicit fallback mechanism for searching the whole MDIO bus for at
> least one PHY has been gone with the following commit b882005a18de
> ("drivers/net/fec: phy_init: remove redundant logic"). This lead to the
> Ethernet driver erroring out as follows:
> 
> Net:   Could not get PHY for FEC0: addr -19
> eth-1: fec at 400d1000
> Colibri VFxx # dhcp
> Could not get PHY for FEC0: addr -19
> Could not get PHY for FEC0: addr -19
> Could not get PHY for FEC0: addr -19
> Could not get PHY for FEC0: addr -19
> No ethernet found.
> Could not get PHY for FEC0: addr -19
> Colibri VFxx #
> 
> This commit adds an explicit PHY node which makes it work again.
> 
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> 
> ---

Looks good to me,
now the hardware is fully defined, which should be the normal case.

I will provide today a patch which "brings back" the fallback mechanism 
within the
"phy-subsystem". This should be the starting point for the disussion if we 
need such
fallback or if we want describe our hardware.

Reviewed-by: Hannes Schmelzer <hannes.schmelzer@br-automation.com>

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

* [U-Boot] [PATCH v2 09/22] configs: colibri_vf: disable obscure options
  2019-03-28 16:58   ` Igor Opaniuk
@ 2019-03-29  9:08     ` Marcel Ziswiler
  0 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-03-29  9:08 UTC (permalink / raw)
  To: u-boot

On Thu, 2019-03-28 at 16:58 +0000, Igor Opaniuk wrote:
> Hi Marcel,
> 
> The actual line which does have impact is `CONFIG_DFU_MMC=y`.

Vybrid is using raw NAND and not eMMC.

> Not sure I understand the reason of adding "# ... is not set" lines
> in
> this defconfig. Could you please explain?

That just explicitly disables stuff.

> Regards,
> Igor
> 
> On Mon, Mar 25, 2019 at 6:30 PM Marcel Ziswiler <marcel@ziswiler.com>
> wrote:
> > From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> > 
> > Disable more obscure options to save another 26 KB

That's the short explanation.

The long one involves understanding that the Vybrid currently runs U-
Boot in its SRAM (rather than DDR) which is limited in size.

> >  in preparation of
> > the upcoming driver model migration.
> > 
> > Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> > 
> > ---
> > 
> > Changes in v2: None
> > 
> >  configs/colibri_vf_defconfig | 10 +++++++++-
> >  1 file changed, 9 insertions(+), 1 deletion(-)
> > 
> > diff --git a/configs/colibri_vf_defconfig
> > b/configs/colibri_vf_defconfig
> > index 8188582ed9..706d7ca634 100644
> > --- a/configs/colibri_vf_defconfig
> > +++ b/configs/colibri_vf_defconfig
> > @@ -17,11 +17,17 @@ CONFIG_BOARD_EARLY_INIT_F=y
> >  CONFIG_HUSH_PARSER=y
> >  # CONFIG_CMDLINE_EDITING is not set
> >  # CONFIG_AUTO_COMPLETE is not set
> > +# CONFIG_SYS_LONGHELP is not set
> >  CONFIG_SYS_PROMPT="Colibri VFxx # "
> > +# CONFIG_CMD_BOOTD is not set
> > +# CONFIG_CMD_BOOTM is not set
> >  CONFIG_CMD_BOOTZ=y
> > +# CONFIG_CMD_ELF is not set
> > +# CONFIG_CMD_IMI is not set
> >  CONFIG_CMD_ASKENV=y
> >  CONFIG_CMD_MEMTEST=y
> >  CONFIG_CMD_DFU=y
> > +# CONFIG_CMD_FLASH is not set
> >  CONFIG_CMD_FUSE=y
> >  CONFIG_CMD_GPIO=y
> >  # CONFIG_CMD_LOADB is not set
> > @@ -46,10 +52,10 @@ CONFIG_DEFAULT_DEVICE_TREE="vf610-colibri"
> >  CONFIG_ENV_IS_IN_NAND=y
> >  CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
> >  CONFIG_DM=y
> > -CONFIG_DFU_MMC=y
> >  CONFIG_DFU_NAND=y
> >  CONFIG_DM_GPIO=y
> >  CONFIG_VYBRID_GPIO=y
> > +# CONFIG_MMC_HW_PARTITIONING is not set
> >  CONFIG_FSL_ESDHC=y
> >  CONFIG_NAND_VF610_NFC=y
> >  CONFIG_SYS_NAND_VF610_NFC_60_ECC_BYTES=y
> > @@ -57,6 +63,8 @@ CONFIG_MTD_UBI_FASTMAP=y
> >  CONFIG_PHYLIB=y
> >  CONFIG_PHY_MICREL=y
> >  CONFIG_MII=y
> > +# CONFIG_SPL_SERIAL_PRESENT is not set
> > +# CONFIG_TPL_SERIAL_PRESENT is not set
> >  CONFIG_DM_SERIAL=y
> >  CONFIG_FSL_LPUART=y
> >  CONFIG_USB=y
> > --
> > 2.20.1
> > 
> > _______________________________________________
> > U-Boot mailing list
> > U-Boot at lists.denx.de
> > https://lists.denx.de/listinfo/u-boot

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

* [U-Boot] [PATCH v1] colibri_vf: fix ethernet by adding explicit phy node
  2019-03-28 22:24 [U-Boot] [PATCH v1] colibri_vf: fix ethernet by adding explicit phy node Marcel Ziswiler
  2019-03-29  5:54 ` Hannes Schmelzer
@ 2019-03-29 11:25 ` Igor Opaniuk
  1 sibling, 0 replies; 654+ messages in thread
From: Igor Opaniuk @ 2019-03-29 11:25 UTC (permalink / raw)
  To: u-boot

Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

On Fri, Mar 29, 2019 at 12:25 AM Marcel Ziswiler <marcel@ziswiler.com> wrote:
>
> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>
> The implicit fallback mechanism for searching the whole MDIO bus for at
> least one PHY has been gone with the following commit b882005a18de
> ("drivers/net/fec: phy_init: remove redundant logic"). This lead to the
> Ethernet driver erroring out as follows:
>
> Net:   Could not get PHY for FEC0: addr -19
> eth-1: fec at 400d1000
> Colibri VFxx # dhcp
> Could not get PHY for FEC0: addr -19
> Could not get PHY for FEC0: addr -19
> Could not get PHY for FEC0: addr -19
> Could not get PHY for FEC0: addr -19
> No ethernet found.
> Could not get PHY for FEC0: addr -19
> Colibri VFxx #
>
> This commit adds an explicit PHY node which makes it work again.
>
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>
> ---
>
>  arch/arm/dts/vf-colibri.dtsi | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
>
> diff --git a/arch/arm/dts/vf-colibri.dtsi b/arch/arm/dts/vf-colibri.dtsi
> index 5ce17076e9..91ca4e4ddd 100644
> --- a/arch/arm/dts/vf-colibri.dtsi
> +++ b/arch/arm/dts/vf-colibri.dtsi
> @@ -60,11 +60,24 @@
>         status = "okay";
>  };
>
> +/* Ethernet */
>  &fec1 {
>         phy-mode = "rmii";
> +       phy-handle = <&ethphy1>;
>         pinctrl-names = "default";
>         pinctrl-0 = <&pinctrl_fec1>;
>         status = "okay";
> +
> +       mdio {
> +               #address-cells = <1>;
> +               #size-cells = <0>;
> +
> +               ethphy1: ethernet-phy at 1 {
> +                       compatible = "ethernet-phy-ieee802.3-c22";
> +                       max-speed = <100>;
> +                       reg = <1>;
> +               };
> +       };
>  };
>
>  &i2c0 {
> --
> 2.20.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

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

* [U-Boot] [PATCH v1] colibri_vf: fix tab vs. spaces
  2019-03-28 22:25 [U-Boot] [PATCH v1] colibri_vf: fix tab vs. spaces Marcel Ziswiler
@ 2019-03-29 11:27 ` Igor Opaniuk
  0 siblings, 0 replies; 654+ messages in thread
From: Igor Opaniuk @ 2019-03-29 11:27 UTC (permalink / raw)
  To: u-boot

Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

On Fri, Mar 29, 2019 at 12:25 AM Marcel Ziswiler <marcel@ziswiler.com> wrote:
>
> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>
> Fix indentation using tab vs. spaces.
>
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>
> ---
>
>  board/toradex/colibri_vf/MAINTAINERS | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/board/toradex/colibri_vf/MAINTAINERS b/board/toradex/colibri_vf/MAINTAINERS
> index 3ee2b33152..66b2150986 100644
> --- a/board/toradex/colibri_vf/MAINTAINERS
> +++ b/board/toradex/colibri_vf/MAINTAINERS
> @@ -1,7 +1,7 @@
>  Colibri VFxx
>  M:     Stefan Agner <stefan.agner@toradex.com>
>  W:     http://developer.toradex.com/software/linux/linux-software
> -W:      https://www.toradex.com/community
> +W:     https://www.toradex.com/community
>  S:     Maintained
>  F:     board/toradex/colibri_vf/
>  F:     include/configs/colibri_vf.h
> --
> 2.20.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

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

* [U-Boot] [PATCH v2 02/22] vf610: ddrmc: add missing include
  2019-03-25 16:24 ` [U-Boot] [PATCH v2 02/22] vf610: ddrmc: add missing include Marcel Ziswiler
@ 2019-04-01  8:18   ` Lukasz Majewski
  0 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-04-01  8:18 UTC (permalink / raw)
  To: u-boot

On Mon, 25 Mar 2019 17:24:52 +0100
Marcel Ziswiler <marcel@ziswiler.com> wrote:

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> 
> The DDR memory controller include file for the Vybrid uses
> iomux_v3_cfg_t without actually including iomux-vf610.h.
> 
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>
> 
> ---
> 
> Changes in v2: None
> 
>  arch/arm/include/asm/arch-vf610/ddrmc-vf610.h | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/arch/arm/include/asm/arch-vf610/ddrmc-vf610.h
> b/arch/arm/include/asm/arch-vf610/ddrmc-vf610.h index
> c7da2b8a5e..03e3cecb95 100644 ---
> a/arch/arm/include/asm/arch-vf610/ddrmc-vf610.h +++
> b/arch/arm/include/asm/arch-vf610/ddrmc-vf610.h @@ -10,6 +10,8 @@
>  #ifndef __ASM_ARCH_VF610_DDRMC_H
>  #define __ASM_ARCH_VF610_DDRMC_H
>  
> +#include <asm/arch/iomux-vf610.h>
> +
>  struct ddr3_jedec_timings {
>  	u8 tinit;
>  	u32 trst_pwron;

Reviewed-by: Lukasz Majewski <lukma@denx.de>


Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190401/f5ad76a7/attachment.sig>

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

* [U-Boot] [PATCH v2 03/22] imx: bootaux: add dependency on vf610
  2019-03-25 16:24 ` [U-Boot] [PATCH v2 03/22] imx: bootaux: add dependency on vf610 Marcel Ziswiler
@ 2019-04-01  8:18   ` Lukasz Majewski
  0 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-04-01  8:18 UTC (permalink / raw)
  To: u-boot

On Mon, 25 Mar 2019 17:24:53 +0100
Marcel Ziswiler <marcel@ziswiler.com> wrote:

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> 
> Allow using bootaux also on VF610 aka Vybrid.
> 
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>
> 
> ---
> 
> Changes in v2: None
> 
>  arch/arm/mach-imx/Kconfig | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
> index 8631fbd481..ec09ef240f 100644
> --- a/arch/arm/mach-imx/Kconfig
> +++ b/arch/arm/mach-imx/Kconfig
> @@ -23,7 +23,7 @@ config IMX_RDC
>  
>  config IMX_BOOTAUX
>  	bool "Support boot auxiliary core"
> -	depends on ARCH_MX7 || ARCH_MX6
> +	depends on ARCH_MX7 || ARCH_MX6 || ARCH_VF610
>  	help
>  	  bootaux [addr] to boot auxiliary core.
>  

Reviewed-by: Lukasz Majewski <lukma@denx.de>


Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190401/041d38c0/attachment.sig>

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

* [U-Boot] [PATCH v2 04/22] configs: move CONFIG_USB_EHCI_VF to Kconfig
  2019-03-25 16:24 ` [U-Boot] [PATCH v2 04/22] configs: move CONFIG_USB_EHCI_VF to Kconfig Marcel Ziswiler
       [not found]   ` <swarren@nvidia.com>
@ 2019-04-01  8:18   ` Lukasz Majewski
  1 sibling, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-04-01  8:18 UTC (permalink / raw)
  To: u-boot

On Mon, 25 Mar 2019 17:24:54 +0100
Marcel Ziswiler <marcel@ziswiler.com> wrote:

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> 
> Move CONFIG_USB_EHCI_VF to drivers/usb/host/Kconfig and update the one
> and only user thereof being colibri_vf.
> 
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>
> 
> ---
> 
> Changes in v2: None
> 
>  drivers/usb/host/Kconfig     | 7 +++++++
>  include/configs/colibri_vf.h | 1 -
>  scripts/config_whitelist.txt | 1 -
>  3 files changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
> index ba1e6bfa43..0fbc115801 100644
> --- a/drivers/usb/host/Kconfig
> +++ b/drivers/usb/host/Kconfig
> @@ -154,6 +154,13 @@ config USB_EHCI_OMAP
>  	  Enables support for the on-chip EHCI controller on OMAP3
> and later SoCs.
>  
> +config USB_EHCI_VF
> +	bool "Support for Vybrid on-chip EHCI USB controller"
> +	depends on ARCH_VF610
> +	default y
> +	help
> +	  Enables support for the on-chip EHCI controller on Vybrid
> SoCs. +
>  if USB_EHCI_MX7
>  
>  config MXC_USB_OTG_HACTIVE
> diff --git a/include/configs/colibri_vf.h
> b/include/configs/colibri_vf.h index 31ff8a00a6..2fe7f217fa 100644
> --- a/include/configs/colibri_vf.h
> +++ b/include/configs/colibri_vf.h
> @@ -159,7 +159,6 @@
>  #endif
>  
>  /* USB Host Support */
> -#define CONFIG_USB_EHCI_VF
>  #define CONFIG_USB_MAX_CONTROLLER_COUNT 2
>  #define CONFIG_EHCI_HCD_INIT_AFTER_RESET
>  
> diff --git a/scripts/config_whitelist.txt
> b/scripts/config_whitelist.txt index db00376d92..7c14b24bc1 100644
> --- a/scripts/config_whitelist.txt
> +++ b/scripts/config_whitelist.txt
> @@ -4522,7 +4522,6 @@ CONFIG_USB_EHCI_MXS
>  CONFIG_USB_EHCI_SPEAR
>  CONFIG_USB_EHCI_TXFIFO_THRESH
>  CONFIG_USB_EHCI_VCT
> -CONFIG_USB_EHCI_VF
>  CONFIG_USB_ETH_QMULT
>  CONFIG_USB_ETH_SUBSET
>  CONFIG_USB_EXT2_BOOT

Reviewed-by: Lukasz Majewski <lukma@denx.de>


Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190401/38abe258/attachment.sig>

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

* [U-Boot] [PATCH v2 05/22] configs: colibri_vf: remove obsolete mmc/sd card environment
  2019-03-25 16:24 ` [U-Boot] [PATCH v2 05/22] configs: colibri_vf: remove obsolete mmc/sd card environment Marcel Ziswiler
@ 2019-04-01  8:19   ` Lukasz Majewski
  0 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-04-01  8:19 UTC (permalink / raw)
  To: u-boot

On Mon, 25 Mar 2019 17:24:55 +0100
Marcel Ziswiler <marcel@ziswiler.com> wrote:

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> 
> Remove obsolete MMC/SD card environment configuration dating back to
> un-fused samples times.
> 
> While at it also remove meanwhile spurious "USB Storage" comment.
> 
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>
> 
> ---
> 
> Changes in v2: None
> 
>  include/configs/colibri_vf.h | 9 ---------
>  1 file changed, 9 deletions(-)
> 
> diff --git a/include/configs/colibri_vf.h
> b/include/configs/colibri_vf.h index 2fe7f217fa..7b974d9e97 100644
> --- a/include/configs/colibri_vf.h
> +++ b/include/configs/colibri_vf.h
> @@ -145,13 +145,6 @@
>  	(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
>  
>  /* Environment organization */
> -
> -#ifdef CONFIG_ENV_IS_IN_MMC
> -#define CONFIG_SYS_MMC_ENV_DEV		0
> -#define CONFIG_ENV_OFFSET		(12 * 64 * 1024)
> -#define CONFIG_ENV_SIZE			(8 * 1024)
> -#endif
> -
>  #ifdef CONFIG_ENV_IS_IN_NAND
>  #define CONFIG_ENV_SIZE			(64 * 2048)
>  #define CONFIG_ENV_RANGE		(4 * 64 * 2048)
> @@ -165,6 +158,4 @@
>  /* USB DFU */
>  #define CONFIG_SYS_DFU_DATA_BUF_SIZE (1024 * 1024)
>  
> -/* USB Storage */
> -
>  #endif /* __CONFIG_H */

Reviewed-by: Lukasz Majewski <lukma@denx.de>


Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190401/66931e5e/attachment.sig>

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

* [U-Boot] [PATCH v2 06/22] configs: colibri_vf: limit size of malloc() pool before relocation
  2019-03-25 16:24 ` [U-Boot] [PATCH v2 06/22] configs: colibri_vf: limit size of malloc() pool before relocation Marcel Ziswiler
@ 2019-04-01  8:19   ` Lukasz Majewski
  0 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-04-01  8:19 UTC (permalink / raw)
  To: u-boot

On Mon, 25 Mar 2019 17:24:56 +0100
Marcel Ziswiler <marcel@ziswiler.com> wrote:

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> 
> Limit the size of the malloc() pool before relocation
> (SYS_MALLOC_F_LEN).
> 
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>
> 
> ---
> 
> Changes in v2: None
> 
>  configs/colibri_vf_defconfig | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/configs/colibri_vf_defconfig
> b/configs/colibri_vf_defconfig index 4192501257..8188582ed9 100644
> --- a/configs/colibri_vf_defconfig
> +++ b/configs/colibri_vf_defconfig
> @@ -2,6 +2,7 @@ CONFIG_ARM=y
>  CONFIG_SYS_THUMB_BUILD=y
>  CONFIG_ARCH_VF610=y
>  CONFIG_SYS_TEXT_BASE=0x3f401000
> +CONFIG_SYS_MALLOC_F_LEN=0x800
>  CONFIG_TARGET_COLIBRI_VF=y
>  CONFIG_ENV_VARS_UBOOT_CONFIG=y
>  CONFIG_NR_DRAM_BANKS=1

Reviewed-by: Lukasz Majewski <lukma@denx.de>


Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190401/eaab60a5/attachment.sig>

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

* [U-Boot] [U-Boot,13/17] imx6: wandboard: convert to DM_USB
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (57 preceding siblings ...)
  2019-03-13  9:38         ` [U-Boot] [U-Boot, v2, 04/23] apalis_imx6: enable fit image, gpt, imx thermal, efi loader support sbabic at denx.de
@ 2019-04-01  8:52         ` sbabic at denx.de
  2019-04-01  8:52         ` [U-Boot] [U-Boot,11/17] imx6: wandboard: add device tree sbabic at denx.de
                           ` (17 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:52 UTC (permalink / raw)
  To: u-boot

> Drop CONFIG_USB_MAX_CONTROLLER_COUNT and enable DM_USB
> in defconfig.
> Signed-off-by: Anatolij Gustschin <agust@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 19/22] arm: vf610: add uart2 clock/pinmux support
       [not found] ` <uboot-imx@nxp.com>
                     ` (12 preceding siblings ...)
  2019-03-13  9:28   ` [U-Boot] [U-Boot, v4, 19/22] pcm052: bk4: sdcard: Add support for SD card booting/recovery sbabic at denx.de
@ 2019-04-01  8:52   ` sbabic at denx.de
  2019-04-01  8:52   ` [U-Boot] [U-Boot,v2,02/22] vf610: ddrmc: add missing include sbabic at denx.de
                     ` (25 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:52 UTC (permalink / raw)
  To: u-boot

> From: Stefan Agner <stefan.agner@toradex.com>
> Add support for Vybrid's UART2 (Colibri UART_B).
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,11/17] imx6: wandboard: add device tree
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (58 preceding siblings ...)
  2019-04-01  8:52         ` [U-Boot] [U-Boot,13/17] imx6: wandboard: convert to DM_USB sbabic at denx.de
@ 2019-04-01  8:52         ` sbabic at denx.de
  2019-04-01  8:52         ` [U-Boot] [U-Boot,17/17] imx6: wandboard: convert to DM_MMC sbabic at denx.de
                           ` (16 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:52 UTC (permalink / raw)
  To: u-boot

> Add device trees from Linux in preparation for driver model
> conversions.
> Signed-off-by: Anatolij Gustschin <agust@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,17/17] imx6: wandboard: convert to DM_MMC
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (59 preceding siblings ...)
  2019-04-01  8:52         ` [U-Boot] [U-Boot,11/17] imx6: wandboard: add device tree sbabic at denx.de
@ 2019-04-01  8:52         ` sbabic at denx.de
  2019-04-01  8:52         ` [U-Boot] [U-Boot,08/17] colibri_imx6: convert to DM_VIDEO sbabic at denx.de
                           ` (15 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:52 UTC (permalink / raw)
  To: u-boot

> Move SDHC init to SPL code since it is not required with
> DM_MMC. Enable DM_MMC support.
> Signed-off-by: Anatolij Gustschin <agust@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,08/17] colibri_imx6: convert to DM_VIDEO
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (60 preceding siblings ...)
  2019-04-01  8:52         ` [U-Boot] [U-Boot,17/17] imx6: wandboard: convert to DM_MMC sbabic at denx.de
@ 2019-04-01  8:52         ` sbabic at denx.de
  2019-04-01  8:52         ` [U-Boot] [U-Boot,10/17] mx6sabreauto: " sbabic at denx.de
                           ` (14 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:52 UTC (permalink / raw)
  To: u-boot

> Enable DM_VIDEO in defconfig.
> Signed-off-by: Anatolij Gustschin <agust@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 11/22] colibri_vf: migrate fec, esdhc, nfc and usb to driver model
       [not found]   ` <stefan.agner@toradex.com>
                       ` (5 preceding siblings ...)
  2019-03-13  9:38     ` [U-Boot] [U-Boot, v2, 21/23] apalis_imx6: use SDP if USB serial downloader has been used sbabic at denx.de
@ 2019-04-01  8:52     ` sbabic at denx.de
  2019-04-01  8:52     ` [U-Boot] [U-Boot, v2, 22/22] colibri_vf: fix sdboot for vybrid modules sbabic at denx.de
                       ` (35 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:52 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Migrate FEC, ESDHC, NFC and USB to driver model.
> While at it also do no longer enable optional I2C clock in board file as
> the generic clock code now handles this. Note for space reason and as
> it is not required just for booting we do not enable I2C in U-Boot by
> default.
> While at it also update copyright period.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, 04/10] board: tbs2910: Add pinctrl driver and convert gpio to driver model
  2019-03-01 12:10 ` [U-Boot] [PATCH 04/10] board: tbs2910: Add pinctrl driver and convert gpio to driver model Soeren Moch
@ 2019-04-01  8:52   ` sbabic at denx.de
  0 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:52 UTC (permalink / raw)
  To: u-boot

> We need this for additional driver model conversions.
> Signed-off-by: Soeren Moch <smoch@web.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 22/22] colibri_vf: fix sdboot for vybrid modules
       [not found]   ` <stefan.agner@toradex.com>
                       ` (6 preceding siblings ...)
  2019-04-01  8:52     ` [U-Boot] [U-Boot, v2, 11/22] colibri_vf: migrate fec, esdhc, nfc and usb to driver model sbabic at denx.de
@ 2019-04-01  8:52     ` sbabic at denx.de
  2019-04-01  8:52     ` [U-Boot] [U-Boot,v2,13/22] colibri_vf: add distroboot support sbabic at denx.de
                       ` (34 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:52 UTC (permalink / raw)
  To: u-boot

> From: Gerard Salvatella <gerard.salvatella@toradex.com>
> Currently, Vybrid's sdboot variable tries to load the kernel from /boot
> of the root partition (typically second partition when using the sdcard
> image). However, since we moved to flash the kernel in a separate UBI
> volume, we no longer deploy the kernel/device tree to /boot, hence
> sdboot does not work in its current state.
> Load the kernel and device tree from the first (typically FAT) partition
> as customary on all Toradex modules.
> While at it also change from rw to ro as e.g. systemd will re-mount the
> root file system rw anyway after checking it.
> Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com>
> Acked-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,10/17] mx6sabreauto: convert to DM_VIDEO
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (61 preceding siblings ...)
  2019-04-01  8:52         ` [U-Boot] [U-Boot,08/17] colibri_imx6: convert to DM_VIDEO sbabic at denx.de
@ 2019-04-01  8:52         ` sbabic at denx.de
  2019-04-01  8:52         ` [U-Boot] [U-Boot, 03/17] imx: move CONFIG_VIDEO_IPUV3 to defconfigs sbabic at denx.de
                           ` (13 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:52 UTC (permalink / raw)
  To: u-boot

> Enable DM_VIDEO in defconfig.
> Signed-off-by: Anatolij Gustschin <agust@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,v2,13/22] colibri_vf: add distroboot support
       [not found]   ` <stefan.agner@toradex.com>
                       ` (7 preceding siblings ...)
  2019-04-01  8:52     ` [U-Boot] [U-Boot, v2, 22/22] colibri_vf: fix sdboot for vybrid modules sbabic at denx.de
@ 2019-04-01  8:52     ` sbabic at denx.de
  2019-04-01  8:52     ` [U-Boot] [U-Boot, v2, 20/22] colibri_vf: adjust timing according to data sheet sbabic at denx.de
                       ` (33 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:52 UTC (permalink / raw)
  To: u-boot

> From: Stefan Agner <stefan.agner@toradex.com>
> Add support for distro boot. This is especially helpful for external
> devices. There is a global boot command which scans a predefined
> list of boot targets:
>   run distro_bootcmd
> As well as direct boot commands such as:
>   run bootcmd_mmc0
>   run bootcmd_usb
>   run bootcmd_dhcp
>   ...
> Refer to doc/README.distro fo details.
> While at it also re-order boot command macros as well as the
> CONFIG_EXTRA_ENV_SETTINGS.
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, 05/10] board: tbs2910: Convert usb to driver model
  2019-03-01 12:10 ` [U-Boot] [PATCH 05/10] board: tbs2910: Convert usb " Soeren Moch
@ 2019-04-01  8:52   ` sbabic at denx.de
  0 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:52 UTC (permalink / raw)
  To: u-boot

> So we don't need to duplicate settings from the device tree in the board file.
> Signed-off-by: Soeren Moch <smoch@web.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, 08/10] ata: dwc_ahsata: Add ahci driver model support
       [not found]           ` <sr@denx.de>
@ 2019-04-01  8:52             ` sbabic at denx.de
  0 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:52 UTC (permalink / raw)
  To: u-boot

> Disable this support for cm_fx6 to avoid breakage.
> Signed-off-by: Soeren Moch <smoch@web.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 04/22] configs: move CONFIG_USB_EHCI_VF to Kconfig
       [not found]       ` <michal.simek@xilinx.com>
                           ` (2 preceding siblings ...)
       [not found]         ` <albert.aribaud@3adev.fr>
@ 2019-04-01  8:52         ` sbabic at denx.de
  3 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:52 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Move CONFIG_USB_EHCI_VF to drivers/usb/host/Kconfig and update the one
> and only user thereof being colibri_vf.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>
> Reviewed-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, 03/17] imx: move CONFIG_VIDEO_IPUV3 to defconfigs
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (62 preceding siblings ...)
  2019-04-01  8:52         ` [U-Boot] [U-Boot,10/17] mx6sabreauto: " sbabic at denx.de
@ 2019-04-01  8:52         ` sbabic at denx.de
  2019-04-01  8:52         ` [U-Boot] [U-Boot, 12/17] imx6: wandboard: convert to DM_GPIO and enable pinctrl driver sbabic at denx.de
                           ` (12 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:52 UTC (permalink / raw)
  To: u-boot

> Signed-off-by: Anatolij Gustschin <agust@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  [U-Boot, 12/17] imx6: wandboard: convert to DM_GPIO and enable pinctrl driver
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (63 preceding siblings ...)
  2019-04-01  8:52         ` [U-Boot] [U-Boot, 03/17] imx: move CONFIG_VIDEO_IPUV3 to defconfigs sbabic at denx.de
@ 2019-04-01  8:52         ` sbabic at denx.de
  2019-04-01  8:52         ` [U-Boot] [U-Boot,16/17] imx6: wandboard: convert to DM_I2C sbabic at denx.de
                           ` (11 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:52 UTC (permalink / raw)
  To: u-boot

> Enable DM_GPIO and pinctrl in defconfig and add gpio_request()
> calls where required.
> Signed-off-by: Anatolij Gustschin <agust@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 15/22] colibri_vf: sync the board info message
       [not found]   ` <bhuvanchandra.dv@toradex.com>
@ 2019-04-01  8:52     ` sbabic at denx.de
  0 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:52 UTC (permalink / raw)
  To: u-boot

> From: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
> Use similar info message as on other modules.
> Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 20/22] colibri_vf: adjust timing according to data sheet
       [not found]   ` <stefan.agner@toradex.com>
                       ` (8 preceding siblings ...)
  2019-04-01  8:52     ` [U-Boot] [U-Boot,v2,13/22] colibri_vf: add distroboot support sbabic at denx.de
@ 2019-04-01  8:52     ` sbabic at denx.de
  2019-04-01  8:52     ` [U-Boot] [U-Boot, v2, 12/22] config: colibri_vf: use macros from linux/sizes.h sbabic at denx.de
                       ` (32 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:52 UTC (permalink / raw)
  To: u-boot

> From: Stefan Agner <stefan.agner@toradex.com>
> Using the DDR Validation tool in Processor Expert uncovered two
> timing inconsistencies. Since those timings are related to the
> suspend mode they do not affect or change regular memory behaviour.
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 12/22] config: colibri_vf: use macros from linux/sizes.h
       [not found]   ` <stefan.agner@toradex.com>
                       ` (9 preceding siblings ...)
  2019-04-01  8:52     ` [U-Boot] [U-Boot, v2, 20/22] colibri_vf: adjust timing according to data sheet sbabic at denx.de
@ 2019-04-01  8:52     ` sbabic at denx.de
  2019-04-01  8:52     ` [U-Boot] [U-Boot, v2, 10/22] colibri_vf: migrate pinctrl and regulators to dtb/dm sbabic at denx.de
                       ` (31 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:52 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Use SZ_X{MK} macros from linux/sizes.h for include/configs/colibri_vf.h.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, 07/10] ata: dwc_ahsata: Fix sector reports for large disks
  2019-03-01 12:10 ` [U-Boot] [PATCH 07/10] ata: dwc_ahsata: Fix sector reports for large disks Soeren Moch
@ 2019-04-01  8:52   ` sbabic at denx.de
  0 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:52 UTC (permalink / raw)
  To: u-boot

> Do not report negative sector numbers for disks > 1TB, do not limit
> sector numbers to 32 bit if CONFIG_SYS_64BIT_LBA is enabled.
> Signed-off-by: Soeren Moch <smoch@web.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  [U-Boot, v2, 10/22] colibri_vf: migrate pinctrl and regulators to dtb/dm
       [not found]   ` <stefan.agner@toradex.com>
                       ` (10 preceding siblings ...)
  2019-04-01  8:52     ` [U-Boot] [U-Boot, v2, 12/22] config: colibri_vf: use macros from linux/sizes.h sbabic at denx.de
@ 2019-04-01  8:52     ` sbabic at denx.de
  2019-04-01  8:52     ` [U-Boot] [U-Boot, v2, 21/22] colibri_vf: use leveling evaluated by DDR validation tools sbabic at denx.de
                       ` (30 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:52 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Migrate pinctrl and regulators to device tree resp. driver model: DDR,
> DSPI, ENET, ESDHC, I2C, NFC and UART.
> Enable CMD_DM, PINCTRL and DM_REGULATOR.
> While at it also update copyright period and sort include files.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,16/17] imx6: wandboard: convert to DM_I2C
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (64 preceding siblings ...)
  2019-04-01  8:52         ` [U-Boot] [U-Boot, 12/17] imx6: wandboard: convert to DM_GPIO and enable pinctrl driver sbabic at denx.de
@ 2019-04-01  8:52         ` sbabic at denx.de
  2019-04-01  8:52         ` [U-Boot] [U-Boot,14/17] imx6: wandboard: convert to DM_VIDEO sbabic at denx.de
                           ` (10 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:52 UTC (permalink / raw)
  To: u-boot

> Allow building with DM_I2C enabled.
> Signed-off-by: Anatolij Gustschin <agust@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,v2,02/22] vf610: ddrmc: add missing include
       [not found] ` <uboot-imx@nxp.com>
                     ` (13 preceding siblings ...)
  2019-04-01  8:52   ` [U-Boot] [U-Boot, v2, 19/22] arm: vf610: add uart2 clock/pinmux support sbabic at denx.de
@ 2019-04-01  8:52   ` sbabic at denx.de
  2019-04-01  8:59   ` [U-Boot] [U-Boot,v2,03/22] imx: bootaux: add dependency on vf610 sbabic at denx.de
                     ` (24 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:52 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> The DDR memory controller include file for the Vybrid uses
> iomux_v3_cfg_t without actually including iomux-vf610.h.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>
> Reviewed-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,14/17] imx6: wandboard: convert to DM_VIDEO
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (65 preceding siblings ...)
  2019-04-01  8:52         ` [U-Boot] [U-Boot,16/17] imx6: wandboard: convert to DM_I2C sbabic at denx.de
@ 2019-04-01  8:52         ` sbabic at denx.de
  2019-04-01  8:52         ` [U-Boot] [U-Boot,05/17] apalis_imx6: " sbabic at denx.de
                           ` (9 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:52 UTC (permalink / raw)
  To: u-boot

> Enable DM_VIDEO in defconfig.
> Signed-off-by: Anatolij Gustschin <agust@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,05/17] apalis_imx6: convert to DM_VIDEO
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (66 preceding siblings ...)
  2019-04-01  8:52         ` [U-Boot] [U-Boot,14/17] imx6: wandboard: convert to DM_VIDEO sbabic at denx.de
@ 2019-04-01  8:52         ` sbabic at denx.de
  2019-04-01  8:52         ` [U-Boot] [U-Boot,09/17] mx6sabresd: " sbabic at denx.de
                           ` (8 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:52 UTC (permalink / raw)
  To: u-boot

> Enable DM_VIDEO in defconfig.
> Signed-off-by: Anatolij Gustschin <agust@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 21/22] colibri_vf: use leveling evaluated by DDR validation tools
       [not found]   ` <stefan.agner@toradex.com>
                       ` (11 preceding siblings ...)
  2019-04-01  8:52     ` [U-Boot] [U-Boot, v2, 10/22] colibri_vf: migrate pinctrl and regulators to dtb/dm sbabic at denx.de
@ 2019-04-01  8:52     ` sbabic at denx.de
  2019-04-01  8:52     ` [U-Boot] [U-Boot, v2, 05/22] configs: colibri_vf: remove obsolete mmc/sd card environment sbabic at denx.de
                       ` (29 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:52 UTC (permalink / raw)
  To: u-boot

> From: Stefan Agner <stefan.agner@toradex.com>
> The DDR validation tool (which is part of Processor Expert) allows
> to evaluate leveling parameters for CR105/CR106/CR110. Several
> runs have been made with Colibri VF50 and VF61 and it seems to
> evaluate very similar values. Use this values by default.
> Note: The newly evaluated parameters seem to require CTLUPD_AREF
> to be enabled!
> Note 2: The tool also evaluated 6 as a new value for PHY02/18
> GATE_CFG (Coarse adjust of gate open time). However, this seems
> not to work in practise.
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,09/17] mx6sabresd: convert to DM_VIDEO
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (67 preceding siblings ...)
  2019-04-01  8:52         ` [U-Boot] [U-Boot,05/17] apalis_imx6: " sbabic at denx.de
@ 2019-04-01  8:52         ` sbabic at denx.de
  2019-04-01  8:52         ` [U-Boot] [U-Boot,06/17] imx6: icore: " sbabic at denx.de
                           ` (7 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:52 UTC (permalink / raw)
  To: u-boot

> Enable DM_VIDEO in defconfig.
> Signed-off-by: Anatolij Gustschin <agust@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 05/22] configs: colibri_vf: remove obsolete mmc/sd card environment
       [not found]   ` <stefan.agner@toradex.com>
                       ` (12 preceding siblings ...)
  2019-04-01  8:52     ` [U-Boot] [U-Boot, v2, 21/22] colibri_vf: use leveling evaluated by DDR validation tools sbabic at denx.de
@ 2019-04-01  8:52     ` sbabic at denx.de
  2019-04-01  8:52     ` [U-Boot] [U-Boot,v2,14/22] colibri_vf: set fdtfile for distroboot sbabic at denx.de
                       ` (28 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:52 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Remove obsolete MMC/SD card environment configuration dating back to
> un-fused samples times.
> While at it also remove meanwhile spurious "USB Storage" comment.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>
> Reviewed-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,v2,14/22] colibri_vf: set fdtfile for distroboot
       [not found]   ` <stefan.agner@toradex.com>
                       ` (13 preceding siblings ...)
  2019-04-01  8:52     ` [U-Boot] [U-Boot, v2, 05/22] configs: colibri_vf: remove obsolete mmc/sd card environment sbabic at denx.de
@ 2019-04-01  8:52     ` sbabic at denx.de
  2019-04-01  8:52     ` [U-Boot] [U-Boot, v2, 06/22] configs: colibri_vf: limit size of malloc() pool before relocation sbabic at denx.de
                       ` (27 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:52 UTC (permalink / raw)
  To: u-boot

> From: Stefan Agner <stefan.agner@toradex.com>
> Set fdtfile to represent the current board. This allows distribution
> to load the correct device tree, which in the module case often
> deviates from the common fallback ${soc}-${board}${boardver}.dtb...
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,06/17] imx6: icore: convert to DM_VIDEO
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (68 preceding siblings ...)
  2019-04-01  8:52         ` [U-Boot] [U-Boot,09/17] mx6sabresd: " sbabic at denx.de
@ 2019-04-01  8:52         ` sbabic at denx.de
  2019-04-01  8:59         ` [U-Boot] [U-Boot,02/17] video: move ipuv3 files to subdirectory sbabic at denx.de
                           ` (6 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:52 UTC (permalink / raw)
  To: u-boot

> Enable DM_VIDEO in defconfigs.
> Signed-off-by: Anatolij Gustschin <agust@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 06/22] configs: colibri_vf: limit size of malloc() pool before relocation
       [not found]   ` <stefan.agner@toradex.com>
                       ` (14 preceding siblings ...)
  2019-04-01  8:52     ` [U-Boot] [U-Boot,v2,14/22] colibri_vf: set fdtfile for distroboot sbabic at denx.de
@ 2019-04-01  8:52     ` sbabic at denx.de
  2019-04-01  8:59     ` [U-Boot] [U-Boot, v2, 17/22] colibri_vf: disable undefined instruction events in user debug sbabic at denx.de
                       ` (26 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:52 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Limit the size of the malloc() pool before relocation
> (SYS_MALLOC_F_LEN).
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>
> Reviewed-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 08/22] ARM: dts: colibri_vf: update device trees
       [not found]     ` <marcel.ziswiler@toradex.com>
                         ` (20 preceding siblings ...)
  2019-03-13  9:47       ` [U-Boot] [U-Boot, v4, 22/22] pcm052: bk4: Add board_phy_config() for BK4 to setup ksz8081 phy sbabic at denx.de
@ 2019-04-01  8:59       ` sbabic at denx.de
  21 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:59 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Update device tree in preparation of further driver model migration:
> Ethernet FEC, ESDHC aka MMC/SD card, I2C, NFC aka NAND flash controller,
> USBH_PEN GPIO regulator.
> Add iomux resp. pinctrl entries to be removed from proprietary platform
> data: DSPI, ESDHC, FEC, I2C, NFC, UART, USBH_PEN GPIO.
> Introduce a U-Boot specific device tree with some required
> u-boot,dm-pre-reloc properties: soc, aips0, pinctrl_ddr and uart0 incl.
> pinctrl.
> While at it also update the MAINTAINERS file.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,v2,03/22] imx: bootaux: add dependency on vf610
       [not found] ` <uboot-imx@nxp.com>
                     ` (14 preceding siblings ...)
  2019-04-01  8:52   ` [U-Boot] [U-Boot,v2,02/22] vf610: ddrmc: add missing include sbabic at denx.de
@ 2019-04-01  8:59   ` sbabic at denx.de
  2019-04-26  9:37   ` [U-Boot] [U-Boot,RESEND,07/10] clk: imx8: add i.MX8QM clk driver sbabic at denx.de
                     ` (23 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:59 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Allow using bootaux also on VF610 aka Vybrid.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>
> Reviewed-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,01/17] video: ipuv3: add DM_VIDEO support
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (70 preceding siblings ...)
  2019-04-01  8:59         ` [U-Boot] [U-Boot,02/17] video: move ipuv3 files to subdirectory sbabic at denx.de
@ 2019-04-01  8:59         ` sbabic at denx.de
  2019-04-01  8:59         ` [U-Boot] [U-Boot, 04/17] imx6: dts: add 'u-boot, dm-pre-reloc' to soc and ipu nodes sbabic at denx.de
                           ` (4 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:59 UTC (permalink / raw)
  To: u-boot

> Extend the driver to build with DM_VIDEO enabled. DTS files
> must additionally include 'u-boot,dm-pre-reloc' property in
> soc and ipu nodes to enable driver binding to ipu device.
> Signed-off-by: Anatolij Gustschin <agust@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, 06/10] board: tbs2910: Convert i2c and rtc to driver model
  2019-03-01 12:10 ` [U-Boot] [PATCH 06/10] board: tbs2910: Convert i2c and rtc " Soeren Moch
@ 2019-04-01  8:59   ` sbabic at denx.de
  0 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:59 UTC (permalink / raw)
  To: u-boot

> So we don't need to duplicate settings from the device tree in the board file.
> Signed-off-by: Soeren Moch <smoch@web.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 17/22] colibri_vf: disable undefined instruction events in user debug
       [not found]   ` <stefan.agner@toradex.com>
                       ` (15 preceding siblings ...)
  2019-04-01  8:52     ` [U-Boot] [U-Boot, v2, 06/22] configs: colibri_vf: limit size of malloc() pool before relocation sbabic at denx.de
@ 2019-04-01  8:59     ` sbabic at denx.de
  2019-04-01  8:59     ` [U-Boot] [U-Boot, v2, 18/22] config: colibri_vf: enable mtd partitions via dt sbabic at denx.de
                       ` (25 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:59 UTC (permalink / raw)
  To: u-boot

> From: Stefan Agner <stefan.agner@toradex.com>
> It turns out that OpenSSL calls undefined instructions to detect
> ARM capabilities at runtime (via SIGILL handler). This leads to
> stack traces e.g. when logging in using SSH:
>   [  877.464442] sshd (613): undefined instruction: pc=76ee2da8
>   ...
> Disable undefined instruction events since it is used as an
> autodetecion mechanism.
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,02/17] video: move ipuv3 files to subdirectory
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (69 preceding siblings ...)
  2019-04-01  8:52         ` [U-Boot] [U-Boot,06/17] imx6: icore: " sbabic at denx.de
@ 2019-04-01  8:59         ` sbabic at denx.de
  2019-04-01  8:59         ` [U-Boot] [U-Boot,01/17] video: ipuv3: add DM_VIDEO support sbabic at denx.de
                           ` (5 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:59 UTC (permalink / raw)
  To: u-boot

> Place ipuv3 files and headers in custom driver subdirectory.
> Signed-off-by: Anatolij Gustschin <agust@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  [U-Boot, 04/17] imx6: dts: add 'u-boot, dm-pre-reloc' to soc and ipu nodes
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (71 preceding siblings ...)
  2019-04-01  8:59         ` [U-Boot] [U-Boot,01/17] video: ipuv3: add DM_VIDEO support sbabic at denx.de
@ 2019-04-01  8:59         ` sbabic at denx.de
  2019-04-01  8:59         ` [U-Boot] [U-Boot,15/17] imx6: wandboard: convert to DM_PMIC sbabic at denx.de
                           ` (3 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:59 UTC (permalink / raw)
  To: u-boot

> u-boot,dm-pre-reloc is required for reserving video memory
> when binding DM_VIDEO driver.
> Signed-off-by: Anatolij Gustschin <agust@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, 09/10] board: tbs2910: Convert sata to ahci driver model
       [not found]     ` <marcel@ziswiler.com>
@ 2019-04-01  8:59       ` sbabic at denx.de
  0 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:59 UTC (permalink / raw)
  To: u-boot

> While at it, also configure 64-bit LBA support.
> Signed-off-by: Soeren Moch <smoch@web.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, 02/10] board: tbs2910: Remove efi loader support in defconfig to reduce u-boot size
  2019-03-01 12:10 ` [U-Boot] [PATCH 02/10] board: tbs2910: Remove efi loader support in defconfig to reduce u-boot size Soeren Moch
@ 2019-04-01  8:59   ` sbabic at denx.de
  0 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:59 UTC (permalink / raw)
  To: u-boot

> Signed-off-by: Soeren Moch <smoch@web.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 18/22] config: colibri_vf: enable mtd partitions via dt
       [not found]   ` <stefan.agner@toradex.com>
                       ` (16 preceding siblings ...)
  2019-04-01  8:59     ` [U-Boot] [U-Boot, v2, 17/22] colibri_vf: disable undefined instruction events in user debug sbabic at denx.de
@ 2019-04-01  8:59     ` sbabic at denx.de
  2019-04-01  8:59     ` [U-Boot] [U-Boot, v2, 09/22] configs: colibri_vf: disable obscure options sbabic at denx.de
                       ` (24 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:59 UTC (permalink / raw)
  To: u-boot

> From: Stefan Agner <stefan.agner@toradex.com>
> Use device tree to set MTD partitions of the NAND chip.
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,07/17] imx6: ge_bx50v3: convert to DM_VIDEO
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (73 preceding siblings ...)
  2019-04-01  8:59         ` [U-Boot] [U-Boot,15/17] imx6: wandboard: convert to DM_PMIC sbabic at denx.de
@ 2019-04-01  8:59         ` sbabic at denx.de
  2019-04-26  9:37         ` [U-Boot] [U-Boot, v2, 05/14] colibri-imx6ull: fix ethernet phy power on sbabic at denx.de
       [not found]         ` <dominik.sliwa@toradex.com>
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:59 UTC (permalink / raw)
  To: u-boot

> Enable DM_VIDEO in defconfig.
> Signed-off-by: Anatolij Gustschin <agust@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,15/17] imx6: wandboard: convert to DM_PMIC
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (72 preceding siblings ...)
  2019-04-01  8:59         ` [U-Boot] [U-Boot, 04/17] imx6: dts: add 'u-boot, dm-pre-reloc' to soc and ipu nodes sbabic at denx.de
@ 2019-04-01  8:59         ` sbabic at denx.de
  2019-04-01  8:59         ` [U-Boot] [U-Boot,07/17] imx6: ge_bx50v3: convert to DM_VIDEO sbabic at denx.de
                           ` (2 subsequent siblings)
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:59 UTC (permalink / raw)
  To: u-boot

> Enable DM_PMIC_PFUZE100 driver and add PMIC description to DTS.
> Rework power_init_board() code.
> Signed-off-by: Anatolij Gustschin <agust@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,03/10] board: tbs2910: Add device tree
  2019-03-01 12:10 ` [U-Boot] [PATCH 03/10] board: tbs2910: Add device tree Soeren Moch
@ 2019-04-01  8:59   ` sbabic at denx.de
  0 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:59 UTC (permalink / raw)
  To: u-boot

> ... as preparation for additional driver model coonversions.
> We use CONFIG_OF_EMBED here to keep u-boot.imx as final binary name. So we
> maintain compatibility with the original TBS u-boot and available HOWTOs
> for u-boot updates.
> Signed-off-by: Soeren Moch <smoch@web.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 09/22] configs: colibri_vf: disable obscure options
       [not found]   ` <stefan.agner@toradex.com>
                       ` (17 preceding siblings ...)
  2019-04-01  8:59     ` [U-Boot] [U-Boot, v2, 18/22] config: colibri_vf: enable mtd partitions via dt sbabic at denx.de
@ 2019-04-01  8:59     ` sbabic at denx.de
  2019-04-01  9:09     ` [U-Boot] [U-Boot, v2, 16/22] colibri_vf: enable user debug by default sbabic at denx.de
                       ` (23 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:59 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Disable more obscure options to save another 26 KB in preparation of
> the upcoming driver model migration.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, 10/10] board: tbs2910: Convert mmc to driver model
  2019-03-01 12:11 ` [U-Boot] [PATCH 10/10] board: tbs2910: Convert mmc to " Soeren Moch
@ 2019-04-01  8:59   ` sbabic at denx.de
  0 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  8:59 UTC (permalink / raw)
  To: u-boot

> So we don't need to duplicate settings from the device tree in the board file.
> Signed-off-by: Soeren Moch <smoch@web.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 07/22] configs: move CONFIG_MXC_OCOTP to Kconfig
       [not found]           ` <eran.m@variscite.com>
@ 2019-04-01  9:09             ` sbabic at denx.de
  0 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  9:09 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> While commit 3e020f03e94f ("driver: misc: add MXC_OCOTP Kconfig entry")
> introduced a Kconfig entry it did not actually migrate all
> configurations to using it.
> As CONFIG_MXC_OCOTP was in mx{6/7}_common.h enable it by default on
> those architectures. Additionally, also enable it on ARCH_IMX8M and
> ARCH_VF610 where all current members enabled it through their legacy
> configuration header files.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 16/22] colibri_vf: enable user debug by default
       [not found]   ` <stefan.agner@toradex.com>
                       ` (18 preceding siblings ...)
  2019-04-01  8:59     ` [U-Boot] [U-Boot, v2, 09/22] configs: colibri_vf: disable obscure options sbabic at denx.de
@ 2019-04-01  9:09     ` sbabic at denx.de
  2019-04-26  9:36     ` [U-Boot] [U-Boot, imx-next, v1, 01/14] ARM: Remove HSC|DDC ETH PHY reset code after switching to DM/DTS sbabic at denx.de
                       ` (22 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-01  9:09 UTC (permalink / raw)
  To: u-boot

> From: Stefan Agner <stefan.agner@toradex.com>
> Let the kernel print some debug messages when a user program
> crashes due to an exception.
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, -next, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [PATCH 1/2] tools/imx8m_image.sh: remove bashism
  2019-02-28  1:43 ` Fabio Estevam
  2019-02-28  4:23   ` Baruch Siach
@ 2019-04-01 13:20   ` Otavio Salvador
  2019-04-01 13:46     ` Stefano Babic
  1 sibling, 1 reply; 654+ messages in thread
From: Otavio Salvador @ 2019-04-01 13:20 UTC (permalink / raw)
  To: u-boot

Hello everyone,

On Wed, Feb 27, 2019 at 10:44 PM Fabio Estevam <festevam@gmail.com> wrote:
> On Wed, Jan 2, 2019 at 4:59 AM Baruch Siach <baruch@tkos.co.il> wrote:
> > Use a single '=' to test string equality for compatibility with non-bash
> > shells. Otherwise, if /bin/sh is dash, build fails:
> >
> > ./tools/imx8m_image.sh: 15: [: signed_hdmi_imx8m.bin: unexpected operator
> > ./tools/imx8m_image.sh: 15: [: signed_hdmi_imx8m.bin: unexpected operator
> > ./tools/imx8m_image.sh: 15: [: spl/u-boot-spl-ddr.bin: unexpected operator
> > ./tools/imx8m_image.sh: 15: [: spl/u-boot-spl-ddr.bin: unexpected operator
> > WARNING './spl/u-boot-spl-ddr.bin' not found, resulting binary is not-functional
> >
> > Signed-off-by: Baruch Siach <baruch@tkos.co.il>
>
> I don't see this patch applied yet.
>
> Do we have other solution?

This is still broken and the proposed patch does fix it. We should get
this merged for 2019.04 release.

Please Stefano, consider this for release (be it through your branch
for directly by Tom).

Best Regards,

-- 
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://code.ossystems.com.br
Mobile: +55 (53) 9 9981-7854          Mobile: +1 (347) 903-9750

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

* [U-Boot] [PATCH 1/2] tools/imx8m_image.sh: remove bashism
  2019-04-01 13:20   ` Otavio Salvador
@ 2019-04-01 13:46     ` Stefano Babic
  2019-04-01 13:49       ` Fabio Estevam
                         ` (2 more replies)
  0 siblings, 3 replies; 654+ messages in thread
From: Stefano Babic @ 2019-04-01 13:46 UTC (permalink / raw)
  To: u-boot

Hi Otavio,

On 01/04/19 15:20, Otavio Salvador wrote:
> Hello everyone,
> 
> On Wed, Feb 27, 2019 at 10:44 PM Fabio Estevam <festevam@gmail.com> wrote:
>> On Wed, Jan 2, 2019 at 4:59 AM Baruch Siach <baruch@tkos.co.il> wrote:
>>> Use a single '=' to test string equality for compatibility with non-bash
>>> shells. Otherwise, if /bin/sh is dash, build fails:
>>>
>>> ./tools/imx8m_image.sh: 15: [: signed_hdmi_imx8m.bin: unexpected operator
>>> ./tools/imx8m_image.sh: 15: [: signed_hdmi_imx8m.bin: unexpected operator
>>> ./tools/imx8m_image.sh: 15: [: spl/u-boot-spl-ddr.bin: unexpected operator
>>> ./tools/imx8m_image.sh: 15: [: spl/u-boot-spl-ddr.bin: unexpected operator
>>> WARNING './spl/u-boot-spl-ddr.bin' not found, resulting binary is not-functional
>>>
>>> Signed-off-by: Baruch Siach <baruch@tkos.co.il>
>>
>> I don't see this patch applied yet.
>>
>> Do we have other solution?
> 
> This is still broken and the proposed patch does fix it. We should get
> this merged for 2019.04 release.
> 
> Please Stefano, consider this for release (be it through your branch
> for directly by Tom).
> 

The thing is in which conditions this is broken and why it should be
fixed here and in this way. Yes, I admit, I have not pondered this as a
big issue - it could be also fixed replacing dash with bash on
Debian-like distros, and I guess also on not-debian. And I am quite sure
we cannot ensure compatibility with all possible shell that a customer
will try , from csh to some exotic variant. Why is this so important to
be rapidely fixed here ?

Best regards,
Stefano

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [PATCH 1/2] tools/imx8m_image.sh: remove bashism
  2019-04-01 13:46     ` Stefano Babic
@ 2019-04-01 13:49       ` Fabio Estevam
  2019-04-01 14:05         ` Stefano Babic
  2019-04-01 13:56       ` Otavio Salvador
  2019-04-01 14:08       ` Tom Rini
  2 siblings, 1 reply; 654+ messages in thread
From: Fabio Estevam @ 2019-04-01 13:49 UTC (permalink / raw)
  To: u-boot

Hi Stefano,

On Mon, Apr 1, 2019 at 10:46 AM Stefano Babic <sbabic@denx.de> wrote:

> The thing is in which conditions this is broken and why it should be
> fixed here and in this way. Yes, I admit, I have not pondered this as a
> big issue - it could be also fixed replacing dash with bash on
> Debian-like distros, and I guess also on not-debian. And I am quite sure
> we cannot ensure compatibility with all possible shell that a customer
> will try , from csh to some exotic variant. Why is this so important to
> be rapidely fixed here ?

On my Ubuntu 18.04 host I cannot build U-Boot for imx8mq-evk without
this patch, so it would be really nice if we could get Baruch's or any
other solution that fixes this issue.

Thanks

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

* [U-Boot] [PATCH 1/2] tools/imx8m_image.sh: remove bashism
  2019-04-01 13:46     ` Stefano Babic
  2019-04-01 13:49       ` Fabio Estevam
@ 2019-04-01 13:56       ` Otavio Salvador
  2019-04-01 14:08       ` Tom Rini
  2 siblings, 0 replies; 654+ messages in thread
From: Otavio Salvador @ 2019-04-01 13:56 UTC (permalink / raw)
  To: u-boot

On Mon, Apr 1, 2019 at 10:46 AM Stefano Babic <sbabic@denx.de> wrote:
> > This is still broken and the proposed patch does fix it. We should get
> > this merged for 2019.04 release.
> >
> > Please Stefano, consider this for release (be it through your branch
> > for directly by Tom).
> >
>
> The thing is in which conditions this is broken and why it should be
> fixed here and in this way. Yes, I admit, I have not pondered this as a
> big issue - it could be also fixed replacing dash with bash on
> Debian-like distros, and I guess also on not-debian. And I am quite sure
> we cannot ensure compatibility with all possible shell that a customer
> will try , from csh to some exotic variant. Why is this so important to
> be rapidely fixed here ?

The dash uses POSIX syntax and it failing on this is a bad signal.
Asking people to change the default system shell to build U-Boot is no
sense.

We cannot ensure compatibility, for sure, but using bashism makes it
worse and non POSIX compatible.

-- 
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://code.ossystems.com.br
Mobile: +55 (53) 9 9981-7854          Mobile: +1 (347) 903-9750

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

* [U-Boot] [PATCH 1/2] tools/imx8m_image.sh: remove bashism
  2019-04-01 13:49       ` Fabio Estevam
@ 2019-04-01 14:05         ` Stefano Babic
  2019-04-01 14:14           ` Fabio Estevam
  0 siblings, 1 reply; 654+ messages in thread
From: Stefano Babic @ 2019-04-01 14:05 UTC (permalink / raw)
  To: u-boot

Hi Fabio,

On 01/04/19 15:49, Fabio Estevam wrote:
> Hi Stefano,
> 
> On Mon, Apr 1, 2019 at 10:46 AM Stefano Babic <sbabic@denx.de> wrote:
> 
>> The thing is in which conditions this is broken and why it should be
>> fixed here and in this way. Yes, I admit, I have not pondered this as a
>> big issue - it could be also fixed replacing dash with bash on
>> Debian-like distros, and I guess also on not-debian. And I am quite sure
>> we cannot ensure compatibility with all possible shell that a customer
>> will try , from csh to some exotic variant. Why is this so important to
>> be rapidely fixed here ?
> 
> On my Ubuntu 18.04 host I cannot build U-Boot for imx8mq-evk without
> this patch, so it would be really nice if we could get Baruch's or any
> other solution that fixes this issue.

Well, it looks like too much because I have 18.04, too, and I can build.
I cannot say that Ubuntu users cannot build u-boot anymore.
I guess you have /bin/sh -> dash, and /bin/sh -> bash solves the
problem, too. Or using update-alternatives, as we are in Ubuntu. I can
imagine it is disturbing in docker because a further step in
docker-compose to set up the shell is required, too.
As far as I know, default is dash (but was not dash default a long of
time ago ? I wonder this has become an issue recently, I have missed
something in the between). Nevertheless, I am still missing why this is
so important to push here when the user can set the shell and build
without issues. And travis works, too, it is also based on Ubuntu :
trusty, quite old, but I was convinced that dash was the default in
Ubuntu since a long time.

Maybe I am missing the point here...(to be honest: I put the patch in
"Changes requested" a lot of time ago and I have forgotten about it..)

Stefano

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [PATCH 1/2] tools/imx8m_image.sh: remove bashism
  2019-04-01 13:46     ` Stefano Babic
  2019-04-01 13:49       ` Fabio Estevam
  2019-04-01 13:56       ` Otavio Salvador
@ 2019-04-01 14:08       ` Tom Rini
  2 siblings, 0 replies; 654+ messages in thread
From: Tom Rini @ 2019-04-01 14:08 UTC (permalink / raw)
  To: u-boot

On Mon, Apr 01, 2019 at 03:46:20PM +0200, Stefano Babic wrote:
> Hi Otavio,
> 
> On 01/04/19 15:20, Otavio Salvador wrote:
> > Hello everyone,
> > 
> > On Wed, Feb 27, 2019 at 10:44 PM Fabio Estevam <festevam@gmail.com> wrote:
> >> On Wed, Jan 2, 2019 at 4:59 AM Baruch Siach <baruch@tkos.co.il> wrote:
> >>> Use a single '=' to test string equality for compatibility with non-bash
> >>> shells. Otherwise, if /bin/sh is dash, build fails:
> >>>
> >>> ./tools/imx8m_image.sh: 15: [: signed_hdmi_imx8m.bin: unexpected operator
> >>> ./tools/imx8m_image.sh: 15: [: signed_hdmi_imx8m.bin: unexpected operator
> >>> ./tools/imx8m_image.sh: 15: [: spl/u-boot-spl-ddr.bin: unexpected operator
> >>> ./tools/imx8m_image.sh: 15: [: spl/u-boot-spl-ddr.bin: unexpected operator
> >>> WARNING './spl/u-boot-spl-ddr.bin' not found, resulting binary is not-functional
> >>>
> >>> Signed-off-by: Baruch Siach <baruch@tkos.co.il>
> >>
> >> I don't see this patch applied yet.
> >>
> >> Do we have other solution?
> > 
> > This is still broken and the proposed patch does fix it. We should get
> > this merged for 2019.04 release.
> > 
> > Please Stefano, consider this for release (be it through your branch
> > for directly by Tom).
> > 
> 
> The thing is in which conditions this is broken and why it should be
> fixed here and in this way. Yes, I admit, I have not pondered this as a
> big issue - it could be also fixed replacing dash with bash on
> Debian-like distros, and I guess also on not-debian. And I am quite sure
> we cannot ensure compatibility with all possible shell that a customer
> will try , from csh to some exotic variant. Why is this so important to
> be rapidely fixed here ?

The script says it uses /bin/sh and not /bin/bash, so you cannot do
bashism in there.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190401/cc0f4eec/attachment.sig>

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

* [U-Boot] [PATCH 1/2] tools/imx8m_image.sh: remove bashism
  2019-04-01 14:05         ` Stefano Babic
@ 2019-04-01 14:14           ` Fabio Estevam
  2019-04-01 15:51             ` Stefano Babic
  0 siblings, 1 reply; 654+ messages in thread
From: Fabio Estevam @ 2019-04-01 14:14 UTC (permalink / raw)
  To: u-boot

Hi Stefano,

On Mon, Apr 1, 2019 at 11:06 AM Stefano Babic <sbabic@denx.de> wrote:

> Well, it looks like too much because I have 18.04, too, and I can build.
> I cannot say that Ubuntu users cannot build u-boot anymore.
> I guess you have /bin/sh -> dash, and /bin/sh -> bash solves the
> problem, too. Or using update-alternatives, as we are in Ubuntu. I can
> imagine it is disturbing in docker because a further step in
> docker-compose to set up the shell is required, too.
> As far as I know, default is dash (but was not dash default a long of
> time ago ? I wonder this has become an issue recently, I have missed
> something in the between). Nevertheless, I am still missing why this is
> so important to push here when the user can set the shell and build
> without issues. And travis works, too, it is also based on Ubuntu :

Travis does not report an error, but Travis does not try to generate a
real 'flash.bin' with the required DDR, HDMI and ATF firmwares.

The error comes when we try to generate flash.bin with all these firmwares.

Without Baruch's patch I can not generate a flash.bin that can boot on
im8mq-evk, so that's why I see the lack of this patch as a big issue.

Thanks

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

* [U-Boot] [PATCH 1/2] tools/imx8m_image.sh: remove bashism
  2019-04-01 14:14           ` Fabio Estevam
@ 2019-04-01 15:51             ` Stefano Babic
  0 siblings, 0 replies; 654+ messages in thread
From: Stefano Babic @ 2019-04-01 15:51 UTC (permalink / raw)
  To: u-boot

Hi Fabio, Otavio,

On 01/04/19 16:14, Fabio Estevam wrote:
> Hi Stefano,
> 
> On Mon, Apr 1, 2019 at 11:06 AM Stefano Babic <sbabic@denx.de> wrote:
> 
>> Well, it looks like too much because I have 18.04, too, and I can build.
>> I cannot say that Ubuntu users cannot build u-boot anymore.
>> I guess you have /bin/sh -> dash, and /bin/sh -> bash solves the
>> problem, too. Or using update-alternatives, as we are in Ubuntu. I can
>> imagine it is disturbing in docker because a further step in
>> docker-compose to set up the shell is required, too.
>> As far as I know, default is dash (but was not dash default a long of
>> time ago ? I wonder this has become an issue recently, I have missed
>> something in the between). Nevertheless, I am still missing why this is
>> so important to push here when the user can set the shell and build
>> without issues. And travis works, too, it is also based on Ubuntu :
> 
> Travis does not report an error, but Travis does not try to generate a
> real 'flash.bin' with the required DDR, HDMI and ATF firmwares.
> 
> The error comes when we try to generate flash.bin with all these firmwares.
> 
> Without Baruch's patch I can not generate a flash.bin that can boot on
> im8mq-evk, so that's why I see the lack of this patch as a big issue.
> 

Ok - convinced. I pick it up.

Regards,
Stefano

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [imx-next PATCH v1 00/14] imx: Fully convert HSC|DDC K+P i.MX53 based boards to use DM/DTS
@ 2019-04-04 10:26 Lukasz Majewski
  2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 01/14] ARM: Remove HSC|DDC ETH PHY reset code after switching to DM/DTS Lukasz Majewski
                   ` (13 more replies)
  0 siblings, 14 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-04-04 10:26 UTC (permalink / raw)
  To: u-boot

This patch series converts HSC and DDC to solely use Driver Model and
Device Tree.
(As a side effect the "removal warnings" are not present anymore).

Some notable changes:
- Converting ehci-mx5 to DM
- CONFIG_USB_EHCI_MX5 to Kconfig
- Use of esdhc with DM
- Cleanup of config

This patch series applies on top of u-boot-imx -next branch
SHA1: 9648463488735e13328f8738c56251e1fb941e51


Lukasz Majewski (14):
  ARM: Remove HSC|DDC ETH PHY reset code after switching to DM/DTS
  DTS: Add esdhc3 device tree description tuning for HSC|DDC boards
  ARM: Enable CONFIG_DM_MMC and CONFIG_DM_BLK on HSC and DDC boards
  ARM: defconfig: Move CONFIG_FSL_ESDHC to Kconfig
  ARM: Remove non DM/DTS esdhc3 code from HSC|DDC board related files
  ARM: kp_imx53: config: Do not use ${boardtype} to setup update wic
    file
  DTS: Provide USB host DTS description for i.MX53 devices
  DTS: Enable USB host support (including regulators) on HSC|DDC boards
  ARM: Remove EHCI specific code from HSC|DDC board file
  USB: DM: Convert i.MX5 ehci code to driver model
  ARM: defconfig: kp_imx53: Enable DM_USB support on HSC|DDC boards
  ARM: config: Remove not needed CONFIG_MXC_USB_PORT define
  Convert CONFIG_USB_EHCI_MX5 to Kconfig
  boot.src: Provide dsa_core.blacklist bootarg when booting via NFS

 arch/arm/dts/imx53-kp.dts         |  59 +++++++++++++++++++++-
 arch/arm/dts/imx53.dtsi           |  10 ++++
 arch/arm/mach-imx/mx5/Kconfig     |   4 ++
 board/k+p/bootscripts/tpcboot.cmd |   7 +++
 board/k+p/kp_imx53/kp_imx53.c     |  70 --------------------------
 configs/kp_imx53_defconfig        |   3 ++
 configs/m53menlo_defconfig        |   1 +
 configs/mx51evk_defconfig         |   1 +
 configs/mx53loco_defconfig        |   1 +
 configs/mx53ppd_defconfig         |   1 +
 configs/usbarmory_defconfig       |   1 +
 drivers/usb/host/Kconfig          |   7 +++
 drivers/usb/host/ehci-mx5.c       | 103 ++++++++++++++++++++++++++++++++++++++
 include/configs/kp_imx53.h        |   9 +---
 include/configs/m53menlo.h        |   1 -
 include/configs/mx51evk.h         |   1 -
 include/configs/mx53cx9020.h      |   1 -
 include/configs/mx53loco.h        |   1 -
 include/configs/mx53ppd.h         |   1 -
 include/configs/usbarmory.h       |   1 -
 scripts/config_whitelist.txt      |   1 -
 21 files changed, 197 insertions(+), 87 deletions(-)

-- 
2.11.0

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

* [U-Boot] [imx-next PATCH v1 01/14] ARM: Remove HSC|DDC ETH PHY reset code after switching to DM/DTS
  2019-04-04 10:26 [U-Boot] [imx-next PATCH v1 00/14] imx: Fully convert HSC|DDC K+P i.MX53 based boards to use DM/DTS Lukasz Majewski
@ 2019-04-04 10:26 ` Lukasz Majewski
  2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 02/14] DTS: Add esdhc3 device tree description tuning for HSC|DDC boards Lukasz Majewski
                   ` (12 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-04-04 10:26 UTC (permalink / raw)
  To: u-boot

After commit efd0b791069a ("eth: dm: fec: Add gpio phy reset binding")
the in-board file definition of ETH PHY reset can be removed.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
---

 board/k+p/kp_imx53/kp_imx53.c | 14 --------------
 1 file changed, 14 deletions(-)

diff --git a/board/k+p/kp_imx53/kp_imx53.c b/board/k+p/kp_imx53/kp_imx53.c
index a12ab9107f..3f21d0b4af 100644
--- a/board/k+p/kp_imx53/kp_imx53.c
+++ b/board/k+p/kp_imx53/kp_imx53.c
@@ -20,7 +20,6 @@
 #include "kp_id_rev.h"
 
 #define VBUS_PWR_EN IMX_GPIO_NR(7, 8)
-#define PHY_nRST IMX_GPIO_NR(7, 6)
 #define BOOSTER_OFF IMX_GPIO_NR(2, 23)
 #define LCD_BACKLIGHT IMX_GPIO_NR(1, 1)
 #define KEY1 IMX_GPIO_NR(2, 26)
@@ -211,17 +210,6 @@ int board_init(void)
 	return 0;
 }
 
-void eth_phy_reset(void)
-{
-	gpio_request(PHY_nRST, "PHY_nRST");
-	gpio_direction_output(PHY_nRST, 1);
-	udelay(50);
-	gpio_set_value(PHY_nRST, 0);
-	udelay(400);
-	gpio_set_value(PHY_nRST, 1);
-	udelay(50);
-}
-
 void board_disable_display(void)
 {
 	gpio_request(LCD_BACKLIGHT, "LCD_BACKLIGHT");
@@ -258,8 +246,6 @@ int board_late_init(void)
 	if (ret)
 		printf("Error %d reading EEPROM content!\n", ret);
 
-	eth_phy_reset();
-
 	show_eeprom();
 	read_board_id();
 
-- 
2.11.0

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

* [U-Boot] [imx-next PATCH v1 02/14] DTS: Add esdhc3 device tree description tuning for HSC|DDC boards
  2019-04-04 10:26 [U-Boot] [imx-next PATCH v1 00/14] imx: Fully convert HSC|DDC K+P i.MX53 based boards to use DM/DTS Lukasz Majewski
  2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 01/14] ARM: Remove HSC|DDC ETH PHY reset code after switching to DM/DTS Lukasz Majewski
@ 2019-04-04 10:26 ` Lukasz Majewski
  2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 03/14] ARM: Enable CONFIG_DM_MMC and CONFIG_DM_BLK on HSC and DDC boards Lukasz Majewski
                   ` (11 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-04-04 10:26 UTC (permalink / raw)
  To: u-boot

In this commit the esdhc3 controller is enabled as well as it is remaped
to mmc0 to not break legacy code.

The pinctrl setup (e.g. 0x1e4) is the same as one from in-board file
definition.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
---

 arch/arm/dts/imx53-kp.dts | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/arch/arm/dts/imx53-kp.dts b/arch/arm/dts/imx53-kp.dts
index 3ce4445c18..a551fc945b 100644
--- a/arch/arm/dts/imx53-kp.dts
+++ b/arch/arm/dts/imx53-kp.dts
@@ -17,6 +17,18 @@
 	chosen {
 		stdout-path = &uart2;
 	};
+
+	aliases {
+		mmc0 = &esdhc3;
+	};
+};
+
+&esdhc3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_esdhc3>;
+	bus-width = <8>;
+	non-removable;
+	status = "okay";
 };
 
 &fec {
@@ -61,6 +73,21 @@
 	pinctrl-0 = <&pinctrl_hog>;
 
 	imx53-kp {
+		pinctrl_esdhc3: esdhc3grp {
+			fsl,pins = <
+				MX53_PAD_PATA_DATA8__ESDHC3_DAT0        0x1d4
+				MX53_PAD_PATA_DATA9__ESDHC3_DAT1        0x1d4
+				MX53_PAD_PATA_DATA10__ESDHC3_DAT2       0x1d4
+				MX53_PAD_PATA_DATA11__ESDHC3_DAT3       0x1d4
+				MX53_PAD_PATA_DATA0__ESDHC3_DAT4        0x1d4
+				MX53_PAD_PATA_DATA1__ESDHC3_DAT5        0x1d4
+				MX53_PAD_PATA_DATA2__ESDHC3_DAT6        0x1d4
+				MX53_PAD_PATA_DATA3__ESDHC3_DAT7        0x1d4
+				MX53_PAD_PATA_RESET_B__ESDHC3_CMD       0x1e4
+				MX53_PAD_PATA_IORDY__ESDHC3_CLK         0x1d4
+			>;
+		};
+
 		pinctrl_eth: ethgrp {
 			fsl,pins = <
 				MX53_PAD_FEC_MDIO__FEC_MDIO 0x1fc
-- 
2.11.0

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

* [U-Boot] [imx-next PATCH v1 03/14] ARM: Enable CONFIG_DM_MMC and CONFIG_DM_BLK on HSC and DDC boards
  2019-04-04 10:26 [U-Boot] [imx-next PATCH v1 00/14] imx: Fully convert HSC|DDC K+P i.MX53 based boards to use DM/DTS Lukasz Majewski
  2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 01/14] ARM: Remove HSC|DDC ETH PHY reset code after switching to DM/DTS Lukasz Majewski
  2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 02/14] DTS: Add esdhc3 device tree description tuning for HSC|DDC boards Lukasz Majewski
@ 2019-04-04 10:26 ` Lukasz Majewski
  2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 04/14] ARM: defconfig: Move CONFIG_FSL_ESDHC to Kconfig Lukasz Majewski
                   ` (10 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-04-04 10:26 UTC (permalink / raw)
  To: u-boot

This commit enables DM_MMC and DM_BLK on imx53 based HSC and DDC boards.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
---

 arch/arm/mach-imx/mx5/Kconfig | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm/mach-imx/mx5/Kconfig b/arch/arm/mach-imx/mx5/Kconfig
index 29051c40f3..cbffdaeed1 100644
--- a/arch/arm/mach-imx/mx5/Kconfig
+++ b/arch/arm/mach-imx/mx5/Kconfig
@@ -27,6 +27,8 @@ config TARGET_KP_IMX53
 	select DM_I2C
 	select DM_PMIC
 	select DM_SERIAL
+	select DM_MMC
+	select BLK
 	select MX53
 	imply CMD_DM
 
-- 
2.11.0

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

* [U-Boot] [imx-next PATCH v1 04/14] ARM: defconfig: Move CONFIG_FSL_ESDHC to Kconfig
  2019-04-04 10:26 [U-Boot] [imx-next PATCH v1 00/14] imx: Fully convert HSC|DDC K+P i.MX53 based boards to use DM/DTS Lukasz Majewski
                   ` (2 preceding siblings ...)
  2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 03/14] ARM: Enable CONFIG_DM_MMC and CONFIG_DM_BLK on HSC and DDC boards Lukasz Majewski
@ 2019-04-04 10:26 ` Lukasz Majewski
  2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 05/14] ARM: Remove non DM/DTS esdhc3 code from HSC|DDC board related files Lukasz Majewski
                   ` (9 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-04-04 10:26 UTC (permalink / raw)
  To: u-boot

The CONFIG_FSL_ESDHC is now enabled and defined in Kconfig, not in
include/configs/kp_imx53.h

Signed-off-by: Lukasz Majewski <lukma@denx.de>
---

 configs/kp_imx53_defconfig | 1 +
 include/configs/kp_imx53.h | 1 -
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/configs/kp_imx53_defconfig b/configs/kp_imx53_defconfig
index cfe96fcce5..4be67d1736 100644
--- a/configs/kp_imx53_defconfig
+++ b/configs/kp_imx53_defconfig
@@ -31,6 +31,7 @@ CONFIG_DEFAULT_DEVICE_TREE="imx53-kp"
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_I2C_SET_DEFAULT_BUS_NUM=y
 CONFIG_I2C_DEFAULT_BUS_NUMBER=0x1
+CONFIG_FSL_ESDHC=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_SMSC=y
 CONFIG_FEC_MXC=y
diff --git a/include/configs/kp_imx53.h b/include/configs/kp_imx53.h
index 3ea75fa120..f82dcd8426 100644
--- a/include/configs/kp_imx53.h
+++ b/include/configs/kp_imx53.h
@@ -16,7 +16,6 @@
 #define CONFIG_SYS_MALLOC_LEN		(32 * SZ_1M)
 
 /* MMC Configs */
-#define CONFIG_FSL_ESDHC
 #define CONFIG_SYS_FSL_ESDHC_ADDR	0
 #define CONFIG_SYS_FSL_ESDHC_NUM	1
 
-- 
2.11.0

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

* [U-Boot] [imx-next PATCH v1 05/14] ARM: Remove non DM/DTS esdhc3 code from HSC|DDC board related files
  2019-04-04 10:26 [U-Boot] [imx-next PATCH v1 00/14] imx: Fully convert HSC|DDC K+P i.MX53 based boards to use DM/DTS Lukasz Majewski
                   ` (3 preceding siblings ...)
  2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 04/14] ARM: defconfig: Move CONFIG_FSL_ESDHC to Kconfig Lukasz Majewski
@ 2019-04-04 10:26 ` Lukasz Majewski
  2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 06/14] ARM: kp_imx53: config: Do not use ${boardtype} to setup update wic file Lukasz Majewski
                   ` (8 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-04-04 10:26 UTC (permalink / raw)
  To: u-boot

After switching to DM/DTS support of esdhc3 - the code in this patch
can be removed.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
---

 board/k+p/kp_imx53/kp_imx53.c | 46 -------------------------------------------
 include/configs/kp_imx53.h    |  4 ----
 2 files changed, 50 deletions(-)

diff --git a/board/k+p/kp_imx53/kp_imx53.c b/board/k+p/kp_imx53/kp_imx53.c
index 3f21d0b4af..f4d0ad0ef6 100644
--- a/board/k+p/kp_imx53/kp_imx53.c
+++ b/board/k+p/kp_imx53/kp_imx53.c
@@ -13,8 +13,6 @@
 #include <asm/arch/iomux-mx53.h>
 #include <asm/arch/clock.h>
 #include <asm/gpio.h>
-#include <mmc.h>
-#include <fsl_esdhc.h>
 #include <power/pmic.h>
 #include <fsl_pmic.h>
 #include "kp_id_rev.h"
@@ -53,50 +51,6 @@ int board_ehci_hcd_init(int port)
 }
 #endif
 
-#ifdef CONFIG_FSL_ESDHC
-struct fsl_esdhc_cfg esdhc_cfg[] = {
-	{MMC_SDHC3_BASE_ADDR},
-};
-
-int board_mmc_getcd(struct mmc *mmc)
-{
-	return 1; /* eMMC is always present */
-}
-
-#define SD_CMD_PAD_CTRL		(PAD_CTL_HYS | PAD_CTL_DSE_HIGH | \
-				 PAD_CTL_PUS_100K_UP)
-#define SD_PAD_CTRL		(PAD_CTL_HYS | PAD_CTL_PUS_47K_UP | \
-				 PAD_CTL_DSE_HIGH)
-
-int board_mmc_init(bd_t *bis)
-{
-	int ret;
-
-	static const iomux_v3_cfg_t sd3_pads[] = {
-		NEW_PAD_CTRL(MX53_PAD_PATA_RESET_B__ESDHC3_CMD,
-			     SD_CMD_PAD_CTRL),
-		NEW_PAD_CTRL(MX53_PAD_PATA_IORDY__ESDHC3_CLK, SD_PAD_CTRL),
-		NEW_PAD_CTRL(MX53_PAD_PATA_DATA8__ESDHC3_DAT0, SD_PAD_CTRL),
-		NEW_PAD_CTRL(MX53_PAD_PATA_DATA9__ESDHC3_DAT1, SD_PAD_CTRL),
-		NEW_PAD_CTRL(MX53_PAD_PATA_DATA10__ESDHC3_DAT2, SD_PAD_CTRL),
-		NEW_PAD_CTRL(MX53_PAD_PATA_DATA11__ESDHC3_DAT3, SD_PAD_CTRL),
-		NEW_PAD_CTRL(MX53_PAD_PATA_DATA0__ESDHC3_DAT4, SD_PAD_CTRL),
-		NEW_PAD_CTRL(MX53_PAD_PATA_DATA1__ESDHC3_DAT5, SD_PAD_CTRL),
-		NEW_PAD_CTRL(MX53_PAD_PATA_DATA2__ESDHC3_DAT6, SD_PAD_CTRL),
-		NEW_PAD_CTRL(MX53_PAD_PATA_DATA3__ESDHC3_DAT7, SD_PAD_CTRL),
-	};
-
-	esdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK);
-	imx_iomux_v3_setup_multiple_pads(sd3_pads, ARRAY_SIZE(sd3_pads));
-
-	ret = fsl_esdhc_initialize(bis, &esdhc_cfg[0]);
-	if (ret)
-		return ret;
-
-	return 0;
-}
-#endif
-
 static int power_init(void)
 {
 	struct udevice *dev;
diff --git a/include/configs/kp_imx53.h b/include/configs/kp_imx53.h
index f82dcd8426..ca6ab0fabc 100644
--- a/include/configs/kp_imx53.h
+++ b/include/configs/kp_imx53.h
@@ -15,10 +15,6 @@
 /* Size of malloc() pool */
 #define CONFIG_SYS_MALLOC_LEN		(32 * SZ_1M)
 
-/* MMC Configs */
-#define CONFIG_SYS_FSL_ESDHC_ADDR	0
-#define CONFIG_SYS_FSL_ESDHC_NUM	1
-
 /* USB Configs */
 #define CONFIG_USB_EHCI_MX5
 #define CONFIG_MXC_USB_PORT	1
-- 
2.11.0

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

* [U-Boot] [imx-next PATCH v1 06/14] ARM: kp_imx53: config: Do not use ${boardtype} to setup update wic file
  2019-04-04 10:26 [U-Boot] [imx-next PATCH v1 00/14] imx: Fully convert HSC|DDC K+P i.MX53 based boards to use DM/DTS Lukasz Majewski
                   ` (4 preceding siblings ...)
  2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 05/14] ARM: Remove non DM/DTS esdhc3 code from HSC|DDC board related files Lukasz Majewski
@ 2019-04-04 10:26 ` Lukasz Majewski
  2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 07/14] DTS: Provide USB host DTS description for i.MX53 devices Lukasz Majewski
                   ` (7 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-04-04 10:26 UTC (permalink / raw)
  To: u-boot

After unification of the rootfs for both HSC and DDC devices, only one,
common wic file is necessary - without the distinction of specific board.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
---

 include/configs/kp_imx53.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/configs/kp_imx53.h b/include/configs/kp_imx53.h
index ca6ab0fabc..9bbf590b72 100644
--- a/include/configs/kp_imx53.h
+++ b/include/configs/kp_imx53.h
@@ -52,7 +52,7 @@
 	       "setexpr blkc ${blkc} + 1; " \
 	       "mmc write ${loadaddr} 0x2 ${blkc}" \
 	"; fi\0"	  \
-	"upwic=setenv wic_file kp-image-kp${boardsoc}${boardtype}.wic; "\
+	"upwic=setenv wic_file kp-image-kp${boardsoc}.wic; "\
 	       "if tftp ${loadaddr} ${wic_file}; then " \
 	       "setexpr blkc ${filesize} / 0x200; " \
 	       "setexpr blkc ${blkc} + 1; " \
-- 
2.11.0

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

* [U-Boot] [imx-next PATCH v1 07/14] DTS: Provide USB host DTS description for i.MX53 devices
  2019-04-04 10:26 [U-Boot] [imx-next PATCH v1 00/14] imx: Fully convert HSC|DDC K+P i.MX53 based boards to use DM/DTS Lukasz Majewski
                   ` (5 preceding siblings ...)
  2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 06/14] ARM: kp_imx53: config: Do not use ${boardtype} to setup update wic file Lukasz Majewski
@ 2019-04-04 10:26 ` Lukasz Majewski
  2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 08/14] DTS: Enable USB host support (including regulators) on HSC|DDC boards Lukasz Majewski
                   ` (6 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-04-04 10:26 UTC (permalink / raw)
  To: u-boot

This code has been ported from Linux kernel - tag v5.1-rc2.
The difference from the kernel is the removal of:
fsl,usbmisc = <&usbmisc 1>;
fsl,usbphy = <&usbphy1>;

properties, which are not needed for correct u-boot operation (as PHY
setup is done in ehci-mx5.c file itself).

Signed-off-by: Lukasz Majewski <lukma@denx.de>
---

 arch/arm/dts/imx53.dtsi | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/arch/arm/dts/imx53.dtsi b/arch/arm/dts/imx53.dtsi
index 0fd4acc6f5..5ba6174789 100644
--- a/arch/arm/dts/imx53.dtsi
+++ b/arch/arm/dts/imx53.dtsi
@@ -35,6 +35,7 @@
 		mmc1 = &esdhc2;
 		mmc2 = &esdhc3;
 		mmc3 = &esdhc4;
+		usb1 = &usbh1;
 	};
 
 	tzic: tz-interrupt-controller at fffc000 {
@@ -136,6 +137,15 @@
 				status = "disabled";
 			};
 
+			usbh1: usb at 53f80200 {
+				compatible = "fsl,imx53-usb", "fsl,imx27-usb";
+				reg = <0x53f80200 0x0200>;
+				interrupts = <14>;
+				clocks = <&clks IMX5_CLK_USBOH3_GATE>;
+				dr_mode = "host";
+				status = "disabled";
+			};
+
 			clks: ccm at 53fd4000{
 				compatible = "fsl,imx53-ccm";
 				reg = <0x53fd4000 0x4000>;
-- 
2.11.0

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

* [U-Boot] [imx-next PATCH v1 08/14] DTS: Enable USB host support (including regulators) on HSC|DDC boards
  2019-04-04 10:26 [U-Boot] [imx-next PATCH v1 00/14] imx: Fully convert HSC|DDC K+P i.MX53 based boards to use DM/DTS Lukasz Majewski
                   ` (6 preceding siblings ...)
  2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 07/14] DTS: Provide USB host DTS description for i.MX53 devices Lukasz Majewski
@ 2019-04-04 10:26 ` Lukasz Majewski
  2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 09/14] ARM: Remove EHCI specific code from HSC|DDC board file Lukasz Majewski
                   ` (5 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-04-04 10:26 UTC (permalink / raw)
  To: u-boot

This commit enables the support for K&P's HSC|DDC imx53 based boards.
It was also necessary to provide device tree description for regulators
to avoid board specific code definition.

The GPIO pin description responsible for VBUS control has been moved from
"hog" group to usbh1 dedicated one.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
---

 arch/arm/dts/imx53-kp.dts | 32 ++++++++++++++++++++++++++++++--
 1 file changed, 30 insertions(+), 2 deletions(-)

diff --git a/arch/arm/dts/imx53-kp.dts b/arch/arm/dts/imx53-kp.dts
index a551fc945b..af4ab5d9f8 100644
--- a/arch/arm/dts/imx53-kp.dts
+++ b/arch/arm/dts/imx53-kp.dts
@@ -21,6 +21,22 @@
 	aliases {
 		mmc0 = &esdhc3;
 	};
+
+	regulators {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		reg_usbh1_vbus: regulator-usbh1-vbus {
+			compatible = "regulator-fixed";
+			regulator-name = "usbh1_vbus";
+			regulator-min-microvolt = <5000000>;
+			regulator-max-microvolt = <5000000>;
+			gpio = <&gpio7 8 GPIO_ACTIVE_HIGH>;
+			enable-active-high;
+		};
+	};
+
 };
 
 &esdhc3 {
@@ -109,8 +125,6 @@
 			fsl,pins = <
 				/* PHY RESET */
 				MX53_PAD_PATA_DA_0__GPIO7_6 0x182
-				/* VBUS_PWR_EN */
-				MX53_PAD_PATA_DA_2__GPIO7_8 0x1e4
 				/* BOOSTER_OFF */
 				MX53_PAD_EIM_CS0__GPIO2_23 0x1e4
 				/* LCD BACKLIGHT */
@@ -158,6 +172,13 @@
 				MX53_PAD_PATA_DMARQ__UART2_TXD_MUX 0x1e4
 			>;
 		};
+
+		pinctrl_usbh1: usbh1grp {
+			fsl,pins = <
+				/* VBUS_PWR_EN */
+				MX53_PAD_PATA_DA_2__GPIO7_8 0x1e4
+			>;
+		};
 	};
 };
 
@@ -166,3 +187,10 @@
 	pinctrl-0 = <&pinctrl_uart2>;
 	status = "okay";
 };
+
+&usbh1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usbh1>;
+	vbus-supply = <&reg_usbh1_vbus>;
+	status = "okay";
+};
-- 
2.11.0

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

* [U-Boot] [imx-next PATCH v1 09/14] ARM: Remove EHCI specific code from HSC|DDC board file
  2019-04-04 10:26 [U-Boot] [imx-next PATCH v1 00/14] imx: Fully convert HSC|DDC K+P i.MX53 based boards to use DM/DTS Lukasz Majewski
                   ` (7 preceding siblings ...)
  2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 08/14] DTS: Enable USB host support (including regulators) on HSC|DDC boards Lukasz Majewski
@ 2019-04-04 10:26 ` Lukasz Majewski
  2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 10/14] USB: DM: Convert i.MX5 ehci code to driver model Lukasz Majewski
                   ` (4 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-04-04 10:26 UTC (permalink / raw)
  To: u-boot

As EHCI on i.MX5 has been converted to driver model, the board specific
code, necessary for VBUS USB power supply setup is not needed anymore.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
---

 board/k+p/kp_imx53/kp_imx53.c | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/board/k+p/kp_imx53/kp_imx53.c b/board/k+p/kp_imx53/kp_imx53.c
index f4d0ad0ef6..57d97153dd 100644
--- a/board/k+p/kp_imx53/kp_imx53.c
+++ b/board/k+p/kp_imx53/kp_imx53.c
@@ -17,7 +17,6 @@
 #include <fsl_pmic.h>
 #include "kp_id_rev.h"
 
-#define VBUS_PWR_EN IMX_GPIO_NR(7, 8)
 #define BOOSTER_OFF IMX_GPIO_NR(2, 23)
 #define LCD_BACKLIGHT IMX_GPIO_NR(1, 1)
 #define KEY1 IMX_GPIO_NR(2, 26)
@@ -42,15 +41,6 @@ int dram_init_banksize(void)
 	return 0;
 }
 
-#ifdef CONFIG_USB_EHCI_MX5
-int board_ehci_hcd_init(int port)
-{
-	gpio_request(VBUS_PWR_EN, "VBUS_PWR_EN");
-	gpio_direction_output(VBUS_PWR_EN, 1);
-	return 0;
-}
-#endif
-
 static int power_init(void)
 {
 	struct udevice *dev;
-- 
2.11.0

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

* [U-Boot] [imx-next PATCH v1 10/14] USB: DM: Convert i.MX5 ehci code to driver model
  2019-04-04 10:26 [U-Boot] [imx-next PATCH v1 00/14] imx: Fully convert HSC|DDC K+P i.MX53 based boards to use DM/DTS Lukasz Majewski
                   ` (8 preceding siblings ...)
  2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 09/14] ARM: Remove EHCI specific code from HSC|DDC board file Lukasz Majewski
@ 2019-04-04 10:26 ` Lukasz Majewski
  2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 11/14] ARM: defconfig: kp_imx53: Enable DM_USB support on HSC|DDC boards Lukasz Majewski
                   ` (3 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-04-04 10:26 UTC (permalink / raw)
  To: u-boot

This commit converts i.MX5's EHCI USB host driver to driver model (DM_USB).
It is a straightforward conversion (to reuse as much code as possible),
based on ehci-mx6.c code.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
---

 drivers/usb/host/ehci-mx5.c | 103 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 103 insertions(+)

diff --git a/drivers/usb/host/ehci-mx5.c b/drivers/usb/host/ehci-mx5.c
index 60f1470860..0b32728c57 100644
--- a/drivers/usb/host/ehci-mx5.c
+++ b/drivers/usb/host/ehci-mx5.c
@@ -12,6 +12,8 @@
 #include <asm/io.h>
 #include <asm/arch/imx-regs.h>
 #include <asm/arch/clock.h>
+#include <dm.h>
+#include <power/regulator.h>
 
 #include "ehci.h"
 
@@ -223,6 +225,7 @@ __weak void mx5_ehci_powerup_fixup(struct ehci_ctrl *ctrl, uint32_t *status_reg,
 	mdelay(50);
 }
 
+#if !CONFIG_IS_ENABLED(DM_USB)
 static const struct ehci_ops mx5_ehci_ops = {
 	.powerup_fixup		= mx5_ehci_powerup_fixup,
 };
@@ -267,3 +270,103 @@ int ehci_hcd_stop(int index)
 {
 	return 0;
 }
+#else /* CONFIG_IS_ENABLED(DM_USB) */
+struct ehci_mx5_priv_data {
+	struct ehci_ctrl ctrl;
+	struct usb_ehci *ehci;
+	struct udevice *vbus_supply;
+	enum usb_init_type init_type;
+	int portnr;
+};
+
+static const struct ehci_ops mx5_ehci_ops = {
+	.powerup_fixup		= mx5_ehci_powerup_fixup,
+};
+
+static int ehci_usb_ofdata_to_platdata(struct udevice *dev)
+{
+	struct usb_platdata *plat = dev_get_platdata(dev);
+	const char *mode;
+
+	mode = fdt_getprop(gd->fdt_blob, dev_of_offset(dev), "dr_mode", NULL);
+	if (mode) {
+		if (strcmp(mode, "peripheral") == 0)
+			plat->init_type = USB_INIT_DEVICE;
+		else if (strcmp(mode, "host") == 0)
+			plat->init_type = USB_INIT_HOST;
+		else
+			return -EINVAL;
+	}
+
+	return 0;
+}
+
+static int ehci_usb_probe(struct udevice *dev)
+{
+	struct usb_platdata *plat = dev_get_platdata(dev);
+	struct usb_ehci *ehci = (struct usb_ehci *)devfdt_get_addr(dev);
+	struct ehci_mx5_priv_data *priv = dev_get_priv(dev);
+	enum usb_init_type type = plat->init_type;
+	struct ehci_hccr *hccr;
+	struct ehci_hcor *hcor;
+	int ret;
+
+	set_usboh3_clk();
+	enable_usboh3_clk(true);
+	set_usb_phy_clk();
+	enable_usb_phy1_clk(true);
+	enable_usb_phy2_clk(true);
+	mdelay(1);
+
+	priv->ehci = ehci;
+	priv->portnr = dev->seq;
+	priv->init_type = type;
+
+	ret = device_get_supply_regulator(dev, "vbus-supply",
+					  &priv->vbus_supply);
+	if (ret)
+		debug("%s: No vbus supply\n", dev->name);
+
+	if (!ret && priv->vbus_supply) {
+		ret = regulator_set_enable(priv->vbus_supply,
+					   (type == USB_INIT_DEVICE) ?
+					   false : true);
+		if (ret) {
+			puts("Error enabling VBUS supply\n");
+			return ret;
+		}
+	}
+
+	hccr = (struct ehci_hccr *)((uint32_t)&ehci->caplength);
+	hcor = (struct ehci_hcor *)((uint32_t)hccr +
+			HC_LENGTH(ehci_readl(&(hccr)->cr_capbase)));
+	setbits_le32(&ehci->usbmode, CM_HOST);
+
+	__raw_writel(CONFIG_MXC_USB_PORTSC, &ehci->portsc);
+	setbits_le32(&ehci->portsc, USB_EN);
+
+	mxc_set_usbcontrol(priv->portnr, CONFIG_MXC_USB_FLAGS);
+	mdelay(10);
+
+	return ehci_register(dev, hccr, hcor, &mx5_ehci_ops, 0,
+			     priv->init_type);
+}
+
+static const struct udevice_id mx5_usb_ids[] = {
+	{ .compatible = "fsl,imx53-usb" },
+	{ }
+};
+
+U_BOOT_DRIVER(usb_mx5) = {
+	.name	= "ehci_mx5",
+	.id	= UCLASS_USB,
+	.of_match = mx5_usb_ids,
+	.ofdata_to_platdata = ehci_usb_ofdata_to_platdata,
+	.probe	= ehci_usb_probe,
+	.remove = ehci_deregister,
+	.ops	= &ehci_usb_ops,
+	.platdata_auto_alloc_size = sizeof(struct usb_platdata),
+	.priv_auto_alloc_size = sizeof(struct ehci_mx5_priv_data),
+	.flags	= DM_FLAG_ALLOC_PRIV_DMA,
+};
+#endif /* !CONFIG_IS_ENABLED(DM_USB) */
-- 
2.11.0

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

* [U-Boot] [imx-next PATCH v1 11/14] ARM: defconfig: kp_imx53: Enable DM_USB support on HSC|DDC boards
  2019-04-04 10:26 [U-Boot] [imx-next PATCH v1 00/14] imx: Fully convert HSC|DDC K+P i.MX53 based boards to use DM/DTS Lukasz Majewski
                   ` (9 preceding siblings ...)
  2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 10/14] USB: DM: Convert i.MX5 ehci code to driver model Lukasz Majewski
@ 2019-04-04 10:26 ` Lukasz Majewski
  2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 12/14] ARM: config: Remove not needed CONFIG_MXC_USB_PORT define Lukasz Majewski
                   ` (2 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-04-04 10:26 UTC (permalink / raw)
  To: u-boot

This commit enables the DM_USB on HSC|DDC i.MX53 based boards.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
---

 arch/arm/mach-imx/mx5/Kconfig | 2 ++
 configs/kp_imx53_defconfig    | 1 +
 2 files changed, 3 insertions(+)

diff --git a/arch/arm/mach-imx/mx5/Kconfig b/arch/arm/mach-imx/mx5/Kconfig
index cbffdaeed1..bde37bb97e 100644
--- a/arch/arm/mach-imx/mx5/Kconfig
+++ b/arch/arm/mach-imx/mx5/Kconfig
@@ -29,6 +29,8 @@ config TARGET_KP_IMX53
 	select DM_SERIAL
 	select DM_MMC
 	select BLK
+	select DM_USB
+	select DM_REGULATOR
 	select MX53
 	imply CMD_DM
 
diff --git a/configs/kp_imx53_defconfig b/configs/kp_imx53_defconfig
index 4be67d1736..45227c26d2 100644
--- a/configs/kp_imx53_defconfig
+++ b/configs/kp_imx53_defconfig
@@ -40,6 +40,7 @@ CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX5=y
 # CONFIG_SPL_PMIC_CHILDREN is not set
 CONFIG_DM_PMIC_MC34708=y
+CONFIG_DM_REGULATOR_FIXED=y
 CONFIG_SPECIFY_CONSOLE_INDEX=y
 CONFIG_CONS_INDEX=2
 CONFIG_MXC_UART=y
-- 
2.11.0

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

* [U-Boot] [imx-next PATCH v1 12/14] ARM: config: Remove not needed CONFIG_MXC_USB_PORT define
  2019-04-04 10:26 [U-Boot] [imx-next PATCH v1 00/14] imx: Fully convert HSC|DDC K+P i.MX53 based boards to use DM/DTS Lukasz Majewski
                   ` (10 preceding siblings ...)
  2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 11/14] ARM: defconfig: kp_imx53: Enable DM_USB support on HSC|DDC boards Lukasz Majewski
@ 2019-04-04 10:26 ` Lukasz Majewski
  2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 13/14] Convert CONFIG_USB_EHCI_MX5 to Kconfig Lukasz Majewski
  2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 14/14] boot.src: Provide dsa_core.blacklist bootarg when booting via NFS Lukasz Majewski
  13 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-04-04 10:26 UTC (permalink / raw)
  To: u-boot

After i.MX5's EHCI conversion to DM, the CONFIG_MXC_USB_PORT is not needed
anymore and should be removed.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
---

 include/configs/kp_imx53.h | 1 -
 1 file changed, 1 deletion(-)

diff --git a/include/configs/kp_imx53.h b/include/configs/kp_imx53.h
index 9bbf590b72..d09608df35 100644
--- a/include/configs/kp_imx53.h
+++ b/include/configs/kp_imx53.h
@@ -17,7 +17,6 @@
 
 /* USB Configs */
 #define CONFIG_USB_EHCI_MX5
-#define CONFIG_MXC_USB_PORT	1
 #define CONFIG_MXC_USB_PORTSC	(PORT_PTS_UTMI | PORT_PTS_PTW)
 #define CONFIG_MXC_USB_FLAGS	0
 
-- 
2.11.0

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

* [U-Boot] [imx-next PATCH v1 13/14] Convert CONFIG_USB_EHCI_MX5 to Kconfig
  2019-04-04 10:26 [U-Boot] [imx-next PATCH v1 00/14] imx: Fully convert HSC|DDC K+P i.MX53 based boards to use DM/DTS Lukasz Majewski
                   ` (11 preceding siblings ...)
  2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 12/14] ARM: config: Remove not needed CONFIG_MXC_USB_PORT define Lukasz Majewski
@ 2019-04-04 10:26 ` Lukasz Majewski
  2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 14/14] boot.src: Provide dsa_core.blacklist bootarg when booting via NFS Lukasz Majewski
  13 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-04-04 10:26 UTC (permalink / raw)
  To: u-boot

This converts the following to Kconfig:
   CONFIG_USB_EHCI_MX5

Signed-off-by: Lukasz Majewski <lukma@denx.de>
---

 configs/kp_imx53_defconfig   | 1 +
 configs/m53menlo_defconfig   | 1 +
 configs/mx51evk_defconfig    | 1 +
 configs/mx53loco_defconfig   | 1 +
 configs/mx53ppd_defconfig    | 1 +
 configs/usbarmory_defconfig  | 1 +
 drivers/usb/host/Kconfig     | 7 +++++++
 include/configs/kp_imx53.h   | 1 -
 include/configs/m53menlo.h   | 1 -
 include/configs/mx51evk.h    | 1 -
 include/configs/mx53cx9020.h | 1 -
 include/configs/mx53loco.h   | 1 -
 include/configs/mx53ppd.h    | 1 -
 include/configs/usbarmory.h  | 1 -
 scripts/config_whitelist.txt | 1 -
 15 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/configs/kp_imx53_defconfig b/configs/kp_imx53_defconfig
index 45227c26d2..225be66019 100644
--- a/configs/kp_imx53_defconfig
+++ b/configs/kp_imx53_defconfig
@@ -45,4 +45,5 @@ CONFIG_SPECIFY_CONSOLE_INDEX=y
 CONFIG_CONS_INDEX=2
 CONFIG_MXC_UART=y
 CONFIG_USB=y
+CONFIG_USB_EHCI_MX5=y
 CONFIG_USB_STORAGE=y
diff --git a/configs/m53menlo_defconfig b/configs/m53menlo_defconfig
index e830b2c92e..e10cb8ed8d 100644
--- a/configs/m53menlo_defconfig
+++ b/configs/m53menlo_defconfig
@@ -58,6 +58,7 @@ CONFIG_PHYLIB=y
 CONFIG_PHY_MICREL=y
 CONFIG_RTC_M41T62=y
 CONFIG_USB=y
+CONFIG_USB_EHCI_MX5=y
 CONFIG_USB_STORAGE=y
 CONFIG_USB_HOST_ETHER=y
 CONFIG_USB_ETHER_ASIX=y
diff --git a/configs/mx51evk_defconfig b/configs/mx51evk_defconfig
index dc0b3b3f77..78aa89d651 100644
--- a/configs/mx51evk_defconfig
+++ b/configs/mx51evk_defconfig
@@ -26,6 +26,7 @@ CONFIG_MII=y
 CONFIG_SPI=y
 CONFIG_MXC_SPI=y
 CONFIG_USB=y
+CONFIG_USB_EHCI_MX5=y
 CONFIG_USB_STORAGE=y
 CONFIG_USB_HOST_ETHER=y
 CONFIG_USB_ETHER_ASIX=y
diff --git a/configs/mx53loco_defconfig b/configs/mx53loco_defconfig
index 776fc8bab4..caf04ad894 100644
--- a/configs/mx53loco_defconfig
+++ b/configs/mx53loco_defconfig
@@ -26,6 +26,7 @@ CONFIG_DWC_AHSATA=y
 CONFIG_FSL_ESDHC=y
 CONFIG_MII=y
 CONFIG_USB=y
+CONFIG_USB_EHCI_MX5=y
 CONFIG_USB_STORAGE=y
 CONFIG_USB_HOST_ETHER=y
 CONFIG_USB_ETHER_ASIX=y
diff --git a/configs/mx53ppd_defconfig b/configs/mx53ppd_defconfig
index 2a6183b77b..2379ab8c66 100644
--- a/configs/mx53ppd_defconfig
+++ b/configs/mx53ppd_defconfig
@@ -37,6 +37,7 @@ CONFIG_FSL_ESDHC=y
 CONFIG_MII=y
 CONFIG_RTC_S35392A=y
 CONFIG_USB=y
+CONFIG_USB_EHCI_MX5=y
 CONFIG_USB_STORAGE=y
 CONFIG_VIDEO=y
 CONFIG_VIDEO_IPUV3=y
diff --git a/configs/usbarmory_defconfig b/configs/usbarmory_defconfig
index b1f872405b..46f9996e18 100644
--- a/configs/usbarmory_defconfig
+++ b/configs/usbarmory_defconfig
@@ -15,4 +15,5 @@ CONFIG_CMD_USB=y
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_USB=y
+CONFIG_USB_EHCI_MX5=y
 CONFIG_OF_LIBFDT=y
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
index 0fbc115801..1c2212f547 100644
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -132,6 +132,13 @@ config USB_EHCI_MARVELL
 	---help---
 	  Enables support for the on-chip EHCI controller on MVEBU SoCs.
 
+config USB_EHCI_MX5
+	bool "Support for i.MX5 on-chip EHCI USB controller"
+	depends on ARCH_MX5
+	default n
+	help
+	  Enables support for the on-chip EHCI controller on i.MX5 SoCs.
+
 config USB_EHCI_MX6
 	bool "Support for i.MX6 on-chip EHCI USB controller"
 	depends on ARCH_MX6
diff --git a/include/configs/kp_imx53.h b/include/configs/kp_imx53.h
index d09608df35..a252e9003d 100644
--- a/include/configs/kp_imx53.h
+++ b/include/configs/kp_imx53.h
@@ -16,7 +16,6 @@
 #define CONFIG_SYS_MALLOC_LEN		(32 * SZ_1M)
 
 /* USB Configs */
-#define CONFIG_USB_EHCI_MX5
 #define CONFIG_MXC_USB_PORTSC	(PORT_PTS_UTMI | PORT_PTS_PTW)
 #define CONFIG_MXC_USB_FLAGS	0
 
diff --git a/include/configs/m53menlo.h b/include/configs/m53menlo.h
index 84d061339e..82842d8426 100644
--- a/include/configs/m53menlo.h
+++ b/include/configs/m53menlo.h
@@ -118,7 +118,6 @@
  * USB
  */
 #ifdef CONFIG_CMD_USB
-#define CONFIG_USB_EHCI_MX5
 #define CONFIG_MXC_USB_PORT		1
 #define CONFIG_MXC_USB_PORTSC		(PORT_PTS_UTMI | PORT_PTS_PTW)
 #define CONFIG_MXC_USB_FLAGS		0
diff --git a/include/configs/mx51evk.h b/include/configs/mx51evk.h
index 9bf9773c69..f5fd01de22 100644
--- a/include/configs/mx51evk.h
+++ b/include/configs/mx51evk.h
@@ -61,7 +61,6 @@
 #define CONFIG_FEC_MXC_PHYADDR	0x1F
 
 /* USB Configs */
-#define CONFIG_USB_EHCI_MX5
 #define CONFIG_MXC_USB_PORT	1
 #define CONFIG_MXC_USB_PORTSC	PORT_PTS_ULPI
 #define CONFIG_MXC_USB_FLAGS	MXC_EHCI_POWER_PINS_ENABLED
diff --git a/include/configs/mx53cx9020.h b/include/configs/mx53cx9020.h
index 1e3ea88b77..9bf5d9169b 100644
--- a/include/configs/mx53cx9020.h
+++ b/include/configs/mx53cx9020.h
@@ -41,7 +41,6 @@
 #define CONFIG_FEC_MXC_PHYADDR	0x1F
 
 /* USB Configs */
-#define CONFIG_USB_EHCI_MX5
 #define CONFIG_MXC_USB_PORT	1
 #define CONFIG_MXC_USB_PORTSC	(PORT_PTS_UTMI | PORT_PTS_PTW)
 #define CONFIG_MXC_USB_FLAGS	0
diff --git a/include/configs/mx53loco.h b/include/configs/mx53loco.h
index 2d18f05423..4f179081a8 100644
--- a/include/configs/mx53loco.h
+++ b/include/configs/mx53loco.h
@@ -38,7 +38,6 @@
 #define CONFIG_FEC_MXC_PHYADDR	0x1F
 
 /* USB Configs */
-#define CONFIG_USB_EHCI_MX5
 #define CONFIG_MXC_USB_PORT	1
 #define CONFIG_MXC_USB_PORTSC	(PORT_PTS_UTMI | PORT_PTS_PTW)
 #define CONFIG_MXC_USB_FLAGS	0
diff --git a/include/configs/mx53ppd.h b/include/configs/mx53ppd.h
index f002324fdd..2d6715cba2 100644
--- a/include/configs/mx53ppd.h
+++ b/include/configs/mx53ppd.h
@@ -37,7 +37,6 @@
 #define CONFIG_FEC_MXC_PHYADDR	0x1F
 
 /* USB Configs */
-#define CONFIG_USB_EHCI_MX5
 #define CONFIG_USB_HOST_ETHER
 #define CONFIG_USB_ETHER_ASIX
 #define CONFIG_USB_ETHER_MCS7830
diff --git a/include/configs/usbarmory.h b/include/configs/usbarmory.h
index 270f325a55..128f02db66 100644
--- a/include/configs/usbarmory.h
+++ b/include/configs/usbarmory.h
@@ -31,7 +31,6 @@
 #define CONFIG_SYS_FSL_ESDHC_NUM	1
 
 /* USB */
-#define CONFIG_USB_EHCI_MX5
 #define CONFIG_MXC_USB_PORT	1
 #define CONFIG_MXC_USB_PORTSC	(PORT_PTS_UTMI | PORT_PTS_PTW)
 #define CONFIG_MXC_USB_FLAGS	0
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index f1fc131f53..5d39191027 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -4509,7 +4509,6 @@ CONFIG_USB_EHCI_BASE_LIST
 CONFIG_USB_EHCI_EXYNOS
 CONFIG_USB_EHCI_FARADAY
 CONFIG_USB_EHCI_KIRKWOOD
-CONFIG_USB_EHCI_MX5
 CONFIG_USB_EHCI_MXC
 CONFIG_USB_EHCI_MXS
 CONFIG_USB_EHCI_SPEAR
-- 
2.11.0

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

* [U-Boot] [imx-next PATCH v1 14/14] boot.src: Provide dsa_core.blacklist bootarg when booting via NFS
  2019-04-04 10:26 [U-Boot] [imx-next PATCH v1 00/14] imx: Fully convert HSC|DDC K+P i.MX53 based boards to use DM/DTS Lukasz Majewski
                   ` (12 preceding siblings ...)
  2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 13/14] Convert CONFIG_USB_EHCI_MX5 to Kconfig Lukasz Majewski
@ 2019-04-04 10:26 ` Lukasz Majewski
  13 siblings, 0 replies; 654+ messages in thread
From: Lukasz Majewski @ 2019-04-04 10:26 UTC (permalink / raw)
  To: u-boot

This setup is a bit special as Linux kernel (4.19) is not supporting
in-kernel NFS rootfs mount and Distributed Switch Architecture (DSA)
operation.

For that reason it was necessary to provide a bootarg to allow userspace
enable it afterwards if needed.

Signed-off-by: Lukasz Majewski <lukma@denx.de>

---

 board/k+p/bootscripts/tpcboot.cmd | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/board/k+p/bootscripts/tpcboot.cmd b/board/k+p/bootscripts/tpcboot.cmd
index 0576e81140..b81494dd1b 100644
--- a/board/k+p/bootscripts/tpcboot.cmd
+++ b/board/k+p/bootscripts/tpcboot.cmd
@@ -27,6 +27,12 @@ setenv miscadj "
 if test '${boardsoc}' = 'imx53'; then
        setenv bootargs '${bootargs} di=${dig_in} key1=${key1}';
 fi;"
+setenv nfsadj "
+if test '${boardsoc}' = 'imx53'; then
+   if test '${boardtype}' = 'hsc'; then
+       setenv bootargs '${bootargs} dsa_core.blacklist=yes';
+   fi;
+fi;"
 setenv boot_fitImage "
 	setenv fdt_conf 'conf@${boardsoc}-${boardname}.dtb';
 	setenv itbcfg "\"#\${fdt_conf}\"";
@@ -72,6 +78,7 @@ setenv boot_nfs "
 if run download_kernel; then
 	run nfsargs;
 	run addip;
+	run nfsadj;
 	setenv bootargs '${bootargs}' console=${console};
 
 	run boot_fitImage;
-- 
2.11.0

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

* [U-Boot] [PATCH] imx8qxp: mek: enable dm-spl for pm
  2019-03-18  8:43 ` Peng Fan
@ 2019-04-09 12:47   ` Peng Fan
  0 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2019-04-09 12:47 UTC (permalink / raw)
  To: u-boot

Ping..

Thanks,
Peng

> Hi Stefano,
> 
> Are you fine with this patch?
> 
> Thanks,
> Peng.
> 
> > -----Original Message-----
> > From: Peng Fan
> > Sent: 2019年3月7日 20:44
> > To: sbabic at denx.de; festevam at gmail.com
> > Cc: dl-uboot-imx <uboot-imx@nxp.com>; u-boot at lists.denx.de; Peng Fan
> > <peng.fan@nxp.com>
> > Subject: [PATCH] imx8qxp: mek: enable dm-spl for pm
> >
> > with u-boot,dm-spl added for imx8qx-pm node, and SPL_SIMPLE_BUS
> > enabled, the bind and probe code in board file could be removed.
> >
> > Also we need to enlarge SYS_MALLOC_F_LEN to avoid calloc fail.
> >
> > Signed-off-by: Peng Fan <peng.fan@nxp.com>
> > ---
> >  arch/arm/dts/fsl-imx8qxp-mek-u-boot.dtsi |  5 +++++
> >  board/freescale/imx8qxp_mek/spl.c        | 15 ---------------
> >  configs/imx8qxp_mek_defconfig            |  2 +-
> >  3 files changed, 6 insertions(+), 16 deletions(-)
> >
> > diff --git a/arch/arm/dts/fsl-imx8qxp-mek-u-boot.dtsi
> > b/arch/arm/dts/fsl-imx8qxp-mek-u-boot.dtsi
> > index 5d50eb028e..201559008c 100644
> > --- a/arch/arm/dts/fsl-imx8qxp-mek-u-boot.dtsi
> > +++ b/arch/arm/dts/fsl-imx8qxp-mek-u-boot.dtsi
> > @@ -3,6 +3,11 @@
> >   * Copyright 2018 NXP
> >   */
> >
> > +&{/imx8qx-pm} {
> > +
> > +	u-boot,dm-spl;
> > +};
> > +
> >  &mu {
> >  	u-boot,dm-spl;
> >  };
> > diff --git a/board/freescale/imx8qxp_mek/spl.c
> > b/board/freescale/imx8qxp_mek/spl.c
> > index 95ce9f37e8..51f323811a 100644
> > --- a/board/freescale/imx8qxp_mek/spl.c
> > +++ b/board/freescale/imx8qxp_mek/spl.c
> > @@ -27,21 +27,6 @@ void spl_board_init(void)
> >  			continue;
> >  	}
> >
> > -	offset = fdt_node_offset_by_compatible(gd->fdt_blob, -1,
> > "nxp,imx8-pd");
> > -	while (offset != -FDT_ERR_NOTFOUND) {
> > -		lists_bind_fdt(gd->dm_root, offset_to_ofnode(offset),
> > -			       NULL, true);
> > -		offset = fdt_node_offset_by_compatible(gd->fdt_blob, offset,
> > -						       "nxp,imx8-pd");
> > -	}
> > -
> > -	uclass_find_first_device(UCLASS_POWER_DOMAIN, &dev);
> > -
> > -	for (; dev; uclass_find_next_device(&dev)) {
> > -		if (device_probe(dev))
> > -			continue;
> > -	}
> > -
> >  	arch_cpu_init();
> >
> >  	board_early_init_f();
> > diff --git a/configs/imx8qxp_mek_defconfig
> > b/configs/imx8qxp_mek_defconfig index a94998b8b5..915d8812ad 100644
> > --- a/configs/imx8qxp_mek_defconfig
> > +++ b/configs/imx8qxp_mek_defconfig
> > @@ -4,7 +4,7 @@ CONFIG_SYS_TEXT_BASE=0x80020000
> > CONFIG_SPL_GPIO_SUPPORT=y  CONFIG_SPL_LIBCOMMON_SUPPORT=y
> > CONFIG_SPL_LIBGENERIC_SUPPORT=y
> > -CONFIG_SYS_MALLOC_F_LEN=0x2000
> > +CONFIG_SYS_MALLOC_F_LEN=0x4000
> >  CONFIG_TARGET_IMX8QXP_MEK=y
> >  CONFIG_SPL_MMC_SUPPORT=y
> >  CONFIG_SPL_SERIAL_SUPPORT=y
> > --
> > 2.16.4

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

* [U-Boot] [PATCH RESEND 10/10] imx: support i.MX8QM MEK board
  2019-03-05  2:32 ` [U-Boot] [PATCH RESEND 10/10] imx: support i.MX8QM MEK board Peng Fan
@ 2019-04-09 12:48   ` Peng Fan
  0 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2019-04-09 12:48 UTC (permalink / raw)
  To: u-boot

Hi Stefano, Fabio

Any comments on this patchset?

Thanks,
Peng.

> -----Original Message-----
> From: Peng Fan [mailto:peng.fan at nxp.com]
> Sent: 2019年3月5日 10:33
> To: sbabic at denx.de; Fabio Estevam <fabio.estevam@nxp.com>
> Cc: u-boot at lists.denx.de; van.freenix at gmail.com; dl-uboot-imx
> <uboot-imx@nxp.com>; Peng Fan <peng.fan@nxp.com>
> Subject: [PATCH RESEND 10/10] imx: support i.MX8QM MEK board
> 
> Add i.MX8QM MEK board support.
> Included a basic dts, enabled SPL FIT
> 
> Boot log as below:
> U-Boot SPL 2019.01-rc1-00029-gf002213219 (Dec 24 2018 - 10:28:30 +0800)
> Normal Boot Trying to boot from MMC2_2
> 
> U-Boot 2019.01-rc1-00029-gf002213219 (Dec 24 2018 - 10:28:30 +0800)
> 
> CPU:   NXP i.MX8QM RevB A53 at 142933 MHz
> 
> Model: Freescale i.MX8QM MEK
> Board: iMX8QM MEK
> Build: SCFW 9330215b
> Boot:  SD1
> DRAM:  6 GiB
> MMC:   FSL_SDHC: 0, FSL_SDHC: 1
> Loading Environment from MMC... *** Warning - bad CRC, using default
> environment
> 
> In:    serial at 5a060000
> Out:   serial at 5a060000
> Err:   serial at 5a060000
> Net:
> Error: ethernet at 5b040000 address not set.
> eth-1: ethernet at 5b040000
> Hit any key to stop autoboot:  0
> 
> Signed-off-by: Peng Fan <peng.fan@nxp.com>
> ---
>  arch/arm/dts/Makefile                   |   4 +-
>  arch/arm/dts/fsl-imx8qm-mek-u-boot.dtsi | 112 +++++++++++++++++++
>  arch/arm/dts/fsl-imx8qm-mek.dts         | 184
> ++++++++++++++++++++++++++++++++
>  arch/arm/mach-imx/imx8/Kconfig          |   6 ++
>  board/freescale/imx8qm_mek/Kconfig      |  14 +++
>  board/freescale/imx8qm_mek/MAINTAINERS  |   6 ++
>  board/freescale/imx8qm_mek/Makefile     |   8 ++
>  board/freescale/imx8qm_mek/README       |  57 ++++++++++
>  board/freescale/imx8qm_mek/imx8qm_mek.c | 157
> +++++++++++++++++++++++++++
> board/freescale/imx8qm_mek/imximage.cfg |  19 ++++
>  board/freescale/imx8qm_mek/spl.c        |  75 +++++++++++++
>  configs/imx8qm_mek_defconfig            |  75 +++++++++++++
>  include/configs/imx8qm_mek.h            | 176
> ++++++++++++++++++++++++++++++
>  13 files changed, 892 insertions(+), 1 deletion(-)  create mode 100644
> arch/arm/dts/fsl-imx8qm-mek-u-boot.dtsi
>  create mode 100644 arch/arm/dts/fsl-imx8qm-mek.dts  create mode
> 100644 board/freescale/imx8qm_mek/Kconfig
>  create mode 100644 board/freescale/imx8qm_mek/MAINTAINERS
>  create mode 100644 board/freescale/imx8qm_mek/Makefile
>  create mode 100644 board/freescale/imx8qm_mek/README  create mode
> 100644 board/freescale/imx8qm_mek/imx8qm_mek.c
>  create mode 100644 board/freescale/imx8qm_mek/imximage.cfg
>  create mode 100644 board/freescale/imx8qm_mek/spl.c  create mode
> 100644 configs/imx8qm_mek_defconfig  create mode 100644
> include/configs/imx8qm_mek.h
> 
> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index
> 2a040b20a5..954d595391 100644
> --- a/arch/arm/dts/Makefile
> +++ b/arch/arm/dts/Makefile
> @@ -486,7 +486,9 @@ dtb-$(CONFIG_MX7) += imx7d-sdb.dtb \
> 
>  dtb-$(CONFIG_ARCH_MX7ULP) += imx7ulp-evk.dtb
> 
> -dtb-$(CONFIG_ARCH_IMX8) += fsl-imx8qxp-mek.dtb
> +dtb-$(CONFIG_ARCH_IMX8) += \
> +	fsl-imx8qxp-mek.dtb \
> +	fsl-imx8qm-mek.dtb \
> 
>  dtb-$(CONFIG_ARCH_IMX8M) += fsl-imx8mq-evk.dtb
> 
> diff --git a/arch/arm/dts/fsl-imx8qm-mek-u-boot.dtsi
> b/arch/arm/dts/fsl-imx8qm-mek-u-boot.dtsi
> new file mode 100644
> index 0000000000..5d50eb028e
> --- /dev/null
> +++ b/arch/arm/dts/fsl-imx8qm-mek-u-boot.dtsi
> @@ -0,0 +1,112 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright 2018 NXP
> + */
> +
> +&mu {
> +	u-boot,dm-spl;
> +};
> +
> +&clk {
> +	u-boot,dm-spl;
> +};
> +
> +&iomuxc {
> +	u-boot,dm-spl;
> +};
> +
> +&pd_lsio {
> +	u-boot,dm-spl;
> +};
> +
> +&pd_lsio_gpio0 {
> +	u-boot,dm-spl;
> +};
> +
> +&pd_lsio_gpio1 {
> +	u-boot,dm-spl;
> +};
> +
> +&pd_lsio_gpio2 {
> +	u-boot,dm-spl;
> +};
> +
> +&pd_lsio_gpio3 {
> +	u-boot,dm-spl;
> +};
> +
> +&pd_lsio_gpio4 {
> +	u-boot,dm-spl;
> +};
> +
> +&pd_lsio_gpio5 {
> +	u-boot,dm-spl;
> +};
> +
> +&pd_lsio_gpio6 {
> +	u-boot,dm-spl;
> +};
> +
> +&pd_lsio_gpio7 {
> +	u-boot,dm-spl;
> +};
> +
> +&pd_conn {
> +	u-boot,dm-spl;
> +};
> +
> +&pd_conn_sdch0 {
> +	u-boot,dm-spl;
> +};
> +
> +&pd_conn_sdch1 {
> +	u-boot,dm-spl;
> +};
> +
> +&pd_conn_sdch2 {
> +	u-boot,dm-spl;
> +};
> +
> +&gpio0 {
> +	u-boot,dm-spl;
> +};
> +
> +&gpio1 {
> +	u-boot,dm-spl;
> +};
> +
> +&gpio2 {
> +	u-boot,dm-spl;
> +};
> +
> +&gpio3 {
> +	u-boot,dm-spl;
> +};
> +
> +&gpio4 {
> +	u-boot,dm-spl;
> +};
> +
> +&gpio5 {
> +	u-boot,dm-spl;
> +};
> +
> +&gpio6 {
> +	u-boot,dm-spl;
> +};
> +
> +&gpio7 {
> +	u-boot,dm-spl;
> +};
> +
> +&lpuart0 {
> +	u-boot,dm-spl;
> +};
> +
> +&usdhc1 {
> +	u-boot,dm-spl;
> +};
> +
> +&usdhc2 {
> +	u-boot,dm-spl;
> +};
> diff --git a/arch/arm/dts/fsl-imx8qm-mek.dts
> b/arch/arm/dts/fsl-imx8qm-mek.dts new file mode 100644 index
> 0000000000..63908ba6bf
> --- /dev/null
> +++ b/arch/arm/dts/fsl-imx8qm-mek.dts
> @@ -0,0 +1,184 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright 2017-2018 NXP
> + */
> +
> +/dts-v1/;
> +
> +#include "fsl-imx8qm.dtsi"
> +#include "fsl-imx8qm-mek-u-boot.dtsi"
> +
> +/ {
> +	model = "Freescale i.MX8QM MEK";
> +	compatible = "fsl,imx8qm-mek", "fsl,imx8qm";
> +
> +	chosen {
> +		bootargs = "console=ttyLP0,115200
> earlycon=lpuart32,0x5a060000,115200";
> +		stdout-path = &lpuart0;
> +	};
> +
> +	reg_usdhc2_vmmc: usdhc2_vmmc {
> +		compatible = "regulator-fixed";
> +		regulator-name = "sw-3p3-sd1";
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +		gpio = <&gpio4 7 GPIO_ACTIVE_HIGH>;
> +		off-on-delay = <4800>;
> +		enable-active-high;
> +	};
> +};
> +
> +&iomuxc {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_hog>;
> +
> +	imx8qm-mek {
> +		pinctrl_hog: hoggrp {
> +			fsl,pins = <
> +				SC_P_MCLK_OUT0_AUD_ACM_MCLK_OUT0
> 	0x0600004c
> +				SC_P_QSPI1A_DATA1_LSIO_GPIO4_IO25	0x0600004c
> +				SC_P_SCU_GPIO0_03_LSIO_GPIO0_IO31	0x0600004c
> +			>;
> +		};
> +
> +		pinctrl_fec1: fec1grp {
> +			fsl,pins = <
> +				SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENETB_PAD
> 	0x000014a0
> +				SC_P_ENET0_MDC_CONN_ENET0_MDC
> 	0x06000020
> +				SC_P_ENET0_MDIO_CONN_ENET0_MDIO
> 	0x06000020
> +
> 	SC_P_ENET0_RGMII_TX_CTL_CONN_ENET0_RGMII_TX_CTL
> 	0x00000061
> +				SC_P_ENET0_RGMII_TXC_CONN_ENET0_RGMII_TXC
> 	0x00000061
> +				SC_P_ENET0_RGMII_TXD0_CONN_ENET0_RGMII_TXD0
> 	0x00000061
> +				SC_P_ENET0_RGMII_TXD1_CONN_ENET0_RGMII_TXD1
> 	0x00000061
> +				SC_P_ENET0_RGMII_TXD2_CONN_ENET0_RGMII_TXD2
> 	0x00000061
> +				SC_P_ENET0_RGMII_TXD3_CONN_ENET0_RGMII_TXD3
> 	0x00000061
> +				SC_P_ENET0_RGMII_RXC_CONN_ENET0_RGMII_RXC
> 	0x00000061
> +
> 	SC_P_ENET0_RGMII_RX_CTL_CONN_ENET0_RGMII_RX_CTL
> 	0x00000061
> +				SC_P_ENET0_RGMII_RXD0_CONN_ENET0_RGMII_RXD0
> 	0x00000061
> +				SC_P_ENET0_RGMII_RXD1_CONN_ENET0_RGMII_RXD1
> 	0x00000061
> +				SC_P_ENET0_RGMII_RXD2_CONN_ENET0_RGMII_RXD2
> 	0x00000061
> +				SC_P_ENET0_RGMII_RXD3_CONN_ENET0_RGMII_RXD3
> 	0x00000061
> +			>;
> +		};
> +
> +		pinctrl_fec2: fec2grp {
> +			fsl,pins = <
> +				SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENETA_PAD
> 	0x000014a0
> +
> 	SC_P_ENET1_RGMII_TX_CTL_CONN_ENET1_RGMII_TX_CTL
> 	0x00000060
> +				SC_P_ENET1_RGMII_TXC_CONN_ENET1_RGMII_TXC
> 	0x00000060
> +				SC_P_ENET1_RGMII_TXD0_CONN_ENET1_RGMII_TXD0
> 	0x00000060
> +				SC_P_ENET1_RGMII_TXD1_CONN_ENET1_RGMII_TXD1
> 	0x00000060
> +				SC_P_ENET1_RGMII_TXD2_CONN_ENET1_RGMII_TXD2
> 	0x00000060
> +				SC_P_ENET1_RGMII_TXD3_CONN_ENET1_RGMII_TXD3
> 	0x00000060
> +				SC_P_ENET1_RGMII_RXC_CONN_ENET1_RGMII_RXC
> 	0x00000060
> +
> 	SC_P_ENET1_RGMII_RX_CTL_CONN_ENET1_RGMII_RX_CTL
> 	0x00000060
> +				SC_P_ENET1_RGMII_RXD0_CONN_ENET1_RGMII_RXD0
> 	0x00000060
> +				SC_P_ENET1_RGMII_RXD1_CONN_ENET1_RGMII_RXD1
> 	0x00000060
> +				SC_P_ENET1_RGMII_RXD2_CONN_ENET1_RGMII_RXD2
> 	0x00000060
> +				SC_P_ENET1_RGMII_RXD3_CONN_ENET1_RGMII_RXD3
> 	0x00000060
> +			>;
> +		};
> +
> +		pinctrl_lpuart0: lpuart0grp {
> +			fsl,pins = <
> +				SC_P_UART0_RX_DMA_UART0_RX		0x06000020
> +				SC_P_UART0_TX_DMA_UART0_TX		0x06000020
> +			>;
> +		};
> +
> +		pinctrl_usdhc1: usdhc1grp {
> +			fsl,pins = <
> +				SC_P_EMMC0_CLK_CONN_EMMC0_CLK
> 	0x06000041
> +				SC_P_EMMC0_CMD_CONN_EMMC0_CMD
> 	0x00000021
> +				SC_P_EMMC0_DATA0_CONN_EMMC0_DATA0
> 	0x00000021
> +				SC_P_EMMC0_DATA1_CONN_EMMC0_DATA1
> 	0x00000021
> +				SC_P_EMMC0_DATA2_CONN_EMMC0_DATA2
> 	0x00000021
> +				SC_P_EMMC0_DATA3_CONN_EMMC0_DATA3
> 	0x00000021
> +				SC_P_EMMC0_DATA4_CONN_EMMC0_DATA4
> 	0x00000021
> +				SC_P_EMMC0_DATA5_CONN_EMMC0_DATA5
> 	0x00000021
> +				SC_P_EMMC0_DATA6_CONN_EMMC0_DATA6
> 	0x00000021
> +				SC_P_EMMC0_DATA7_CONN_EMMC0_DATA7
> 	0x00000021
> +				SC_P_EMMC0_STROBE_CONN_EMMC0_STROBE
> 	0x00000041
> +				SC_P_EMMC0_RESET_B_CONN_EMMC0_RESET_B
> 	0x00000021
> +			>;
> +		};
> +
> +		pinctrl_usdhc2_gpio: usdhc2grpgpio {
> +			fsl,pins = <
> +				SC_P_USDHC1_DATA6_LSIO_GPIO5_IO21	0x00000021
> +				SC_P_USDHC1_DATA7_LSIO_GPIO5_IO22	0x00000021
> +				SC_P_USDHC1_RESET_B_LSIO_GPIO4_IO07
> 	0x00000021
> +			>;
> +		};
> +
> +		pinctrl_usdhc2: usdhc2grp {
> +			fsl,pins = <
> +				SC_P_USDHC1_CLK_CONN_USDHC1_CLK
> 	0x06000041
> +				SC_P_USDHC1_CMD_CONN_USDHC1_CMD
> 	0x00000021
> +				SC_P_USDHC1_DATA0_CONN_USDHC1_DATA0
> 	0x00000021
> +				SC_P_USDHC1_DATA1_CONN_USDHC1_DATA1
> 	0x00000021
> +				SC_P_USDHC1_DATA2_CONN_USDHC1_DATA2
> 	0x00000021
> +				SC_P_USDHC1_DATA3_CONN_USDHC1_DATA3
> 	0x00000021
> +				SC_P_USDHC1_VSELECT_CONN_USDHC1_VSELECT
> 	0x00000021
> +			>;
> +		};
> +	};
> +};
> +
> +&usdhc1 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_usdhc1>;
> +	bus-width = <8>;
> +	non-removable;
> +	status = "okay";
> +};
> +
> +&usdhc2 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
> +	bus-width = <4>;
> +	cd-gpios = <&gpio5 22 GPIO_ACTIVE_LOW>;
> +	wp-gpios = <&gpio5 21 GPIO_ACTIVE_HIGH>;
> +	vmmc-supply = <&reg_usdhc2_vmmc>;
> +	status = "okay";
> +};
> +
> +&fec1 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_fec1>;
> +	phy-mode = "rgmii-txid";
> +	phy-handle = <&ethphy0>;
> +	fsl,magic-packet;
> +	fsl,rgmii_rxc_dly;
> +	status = "okay";
> +
> +	mdio {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		ethphy0: ethernet-phy at 0 {
> +			compatible = "ethernet-phy-ieee802.3-c22";
> +			reg = <0>;
> +			at803x,eee-disabled;
> +			at803x,vddio-1p8v;
> +		};
> +
> +		ethphy1: ethernet-phy at 1 {
> +			compatible = "ethernet-phy-ieee802.3-c22";
> +			reg = <1>;
> +			at803x,eee-disabled;
> +			at803x,vddio-1p8v;
> +			status = "disabled";
> +		};
> +	};
> +};
> +
> +&lpuart0 { /* console */
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_lpuart0>;
> +	status = "okay";
> +};
> +
> +&gpio1 {
> +	status = "okay";
> +};
> diff --git a/arch/arm/mach-imx/imx8/Kconfig
> b/arch/arm/mach-imx/imx8/Kconfig index 4336a8c236..c32f7dbb61 100644
> --- a/arch/arm/mach-imx/imx8/Kconfig
> +++ b/arch/arm/mach-imx/imx8/Kconfig
> @@ -32,8 +32,14 @@ config TARGET_IMX8QXP_MEK
>  	select BOARD_LATE_INIT
>  	select IMX8QXP
> 
> +config TARGET_IMX8QM_MEK
> +	bool "Support i.MX8QM MEK board"
> +	select BOARD_LATE_INIT
> +	select IMX8QM
> +
>  endchoice
> 
>  source "board/freescale/imx8qxp_mek/Kconfig"
> +source "board/freescale/imx8qm_mek/Kconfig"
> 
>  endif
> diff --git a/board/freescale/imx8qm_mek/Kconfig
> b/board/freescale/imx8qm_mek/Kconfig
> new file mode 100644
> index 0000000000..93d7d5f9c5
> --- /dev/null
> +++ b/board/freescale/imx8qm_mek/Kconfig
> @@ -0,0 +1,14 @@
> +if TARGET_IMX8QM_MEK
> +
> +config SYS_BOARD
> +	default "imx8qm_mek"
> +
> +config SYS_VENDOR
> +	default "freescale"
> +
> +config SYS_CONFIG_NAME
> +	default "imx8qm_mek"
> +
> +source "board/freescale/common/Kconfig"
> +
> +endif
> diff --git a/board/freescale/imx8qm_mek/MAINTAINERS
> b/board/freescale/imx8qm_mek/MAINTAINERS
> new file mode 100644
> index 0000000000..115830df19
> --- /dev/null
> +++ b/board/freescale/imx8qm_mek/MAINTAINERS
> @@ -0,0 +1,6 @@
> +i.MX8QM MEK BOARD
> +M:	Peng Fan <peng.fan@nxp.com>
> +S:	Maintained
> +F:	board/freescale/imx8qm_mek/
> +F:	include/configs/imx8qm_mek.h
> +F:	configs/imx8qm_mek_defconfig
> diff --git a/board/freescale/imx8qm_mek/Makefile
> b/board/freescale/imx8qm_mek/Makefile
> new file mode 100644
> index 0000000000..bc9a1260bd
> --- /dev/null
> +++ b/board/freescale/imx8qm_mek/Makefile
> @@ -0,0 +1,8 @@
> +#
> +# Copyright 2018 NXP
> +#
> +# SPDX-License-Identifier:	GPL-2.0+
> +#
> +
> +obj-y += imx8qm_mek.o
> +obj-$(CONFIG_SPL_BUILD) += spl.o
> diff --git a/board/freescale/imx8qm_mek/README
> b/board/freescale/imx8qm_mek/README
> new file mode 100644
> index 0000000000..c3523801ae
> --- /dev/null
> +++ b/board/freescale/imx8qm_mek/README
> @@ -0,0 +1,57 @@
> +U-Boot for the NXP i.MX8QM EVK board
> +
> +Quick Start
> +===========
> +
> +- Build the ARM Trusted firmware binary
> +- Get scfw_tcm.bin and ahab-container.img
> +- Build U-Boot
> +- Flash the binary into the SD card
> +- Boot
> +
> +Get and Build the ARM Trusted firmware
> +======================================
> +
> +$ git clone https://source.codeaurora.org/external/imx/imx-atf
> +$ cd imx-atf/
> +$ git checkout origin/imx_4.14.78_1.0.0_ga -b imx_4.14.78_1.0.0_ga $
> +make PLAT=imx8qm bl31
> +
> +Get scfw_tcm.bin and ahab-container.img
> ==============================
> +
> +$ wget
> +https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/imx-sc-firmware-1.1.bin
> +$ chmod +x imx-sc-firmware-1.1.bin
> +$ ./imx-sc-firmware-1.1.bin
> +$ wget
> https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.0.bin
> +$ chmod +x firmware-imx-8.0.bin
> +$ ./firmware-imx-8.0.bin
> +
> +Copy the following binaries to U-Boot folder:
> +
> +$ cp imx-atf/build/imx8qm/release/bl31.bin .
> +$ cp u-boot/u-boot.bin .
> +
> +Copy the following firmwares U-Boot folder :
> +
> +$ cp firmware-imx-7.6/firmware/seco/ahab-container.img .
> +$ cp imx-sc-firmware-0.7/mx8qm-mek-scfw-tcm.bin	.
> +
> +Build U-Boot
> +============
> +$ export ATF_LOAD_ADDR=0x80000000
> +$ export BL33_LOAD_ADDR=0x80020000
> +$ make imx8qm_mek_defconfig
> +$ make flash.bin
> +$ dd if=u-boot.itb of=flash.bin bs=512 seek=1984
> +
> +Flash the binary into the SD card
> +=================================
> +
> +Burn the flash.bin binary to SD card offset 32KB:
> +
> +$ sudo dd if=flash.bin of=/dev/sd[x] bs=1024 seek=32
> +
> +Boot
> +====
> +Set Boot switch SW2: 1100.
> diff --git a/board/freescale/imx8qm_mek/imx8qm_mek.c
> b/board/freescale/imx8qm_mek/imx8qm_mek.c
> new file mode 100644
> index 0000000000..e69efc4dd6
> --- /dev/null
> +++ b/board/freescale/imx8qm_mek/imx8qm_mek.c
> @@ -0,0 +1,157 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright 2018 NXP
> + */
> +
> +#include <common.h>
> +#include <errno.h>
> +#include <linux/libfdt.h>
> +#include <environment.h>
> +#include <asm/io.h>
> +#include <asm/gpio.h>
> +#include <asm/arch/clock.h>
> +#include <asm/arch/sci/sci.h>
> +#include <asm/arch/imx8-pins.h>
> +#include <asm/arch/iomux.h>
> +#include <asm/arch/sys_proto.h>
> +
> +DECLARE_GLOBAL_DATA_PTR;
> +
> +#define UART_PAD_CTRL	((SC_PAD_CONFIG_OUT_IN <<
> PADRING_CONFIG_SHIFT) | \
> +			 (SC_PAD_ISO_OFF << PADRING_LPCONFIG_SHIFT) | \
> +			 (SC_PAD_28FDSOI_DSE_DV_HIGH << PADRING_DSE_SHIFT) |
> \
> +			 (SC_PAD_28FDSOI_PS_PU << PADRING_PULL_SHIFT))
> +
> +static iomux_cfg_t uart0_pads[] = {
> +	SC_P_UART0_RX | MUX_PAD_CTRL(UART_PAD_CTRL),
> +	SC_P_UART0_TX | MUX_PAD_CTRL(UART_PAD_CTRL), };
> +
> +static void setup_iomux_uart(void)
> +{
> +	imx8_iomux_setup_multiple_pads(uart0_pads,
> ARRAY_SIZE(uart0_pads)); }
> +
> +int board_early_init_f(void)
> +{
> +	int ret;
> +	/* Set UART0 clock root to 80 MHz */
> +	sc_pm_clock_rate_t rate = 80000000;
> +
> +	/* Power up UART0 */
> +	ret = sc_pm_set_resource_power_mode(-1, SC_R_UART_0,
> SC_PM_PW_MODE_ON);
> +	if (ret)
> +		return ret;
> +
> +	ret = sc_pm_set_clock_rate(-1, SC_R_UART_0, 2, &rate);
> +	if (ret)
> +		return ret;
> +
> +	/* Enable UART0 clock root */
> +	ret = sc_pm_clock_enable(-1, SC_R_UART_0, 2, true, false);
> +	if (ret)
> +		return ret;
> +
> +	setup_iomux_uart();
> +
> +	sc_pm_set_resource_power_mode(-1, SC_R_GPIO_5,
> SC_PM_PW_MODE_ON);
> +
> +	return 0;
> +}
> +
> +#if IS_ENABLED(CONFIG_DM_GPIO)
> +static void board_gpio_init(void)
> +{
> +	/* TODO */
> +}
> +#else
> +static inline void board_gpio_init(void) {} #endif
> +
> +#if IS_ENABLED(CONFIG_FEC_MXC)
> +#include <miiphy.h>
> +
> +int board_phy_config(struct phy_device *phydev) {
> +	phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x1f);
> +	phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x8);
> +
> +	phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x00);
> +	phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x82ee);
> +	phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x05);
> +	phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x100);
> +
> +	if (phydev->drv->config)
> +		phydev->drv->config(phydev);
> +
> +	return 0;
> +}
> +#endif
> +
> +void build_info(void)
> +{
> +	u32 sc_build = 0, sc_commit = 0;
> +
> +	/* Get SCFW build and commit id */
> +	sc_misc_build_info(-1, &sc_build, &sc_commit);
> +	if (!sc_build) {
> +		printf("SCFW does not support build info\n");
> +		sc_commit = 0; /* Display 0 when the build info is not supported*/
> +	}
> +	printf("Build: SCFW %x\n", sc_commit); }
> +
> +int checkboard(void)
> +{
> +	puts("Board: iMX8QM MEK\n");
> +
> +	build_info();
> +	print_bootinfo();
> +
> +	return 0;
> +}
> +
> +int board_init(void)
> +{
> +	/* Power up base board */
> +	sc_pm_set_resource_power_mode(-1, SC_R_BOARD_R1,
> SC_PM_PW_MODE_ON);
> +
> +	board_gpio_init();
> +
> +	return 0;
> +}
> +
> +void detail_board_ddr_info(void)
> +{
> +	puts("\nDDR    ");
> +}
> +
> +/*
> + * Board specific reset that is system reset.
> + */
> +void reset_cpu(ulong addr)
> +{
> +	/* TODO */
> +}
> +
> +#ifdef CONFIG_OF_BOARD_SETUP
> +int ft_board_setup(void *blob, bd_t *bd) {
> +	return 0;
> +}
> +#endif
> +
> +int board_mmc_get_env_dev(int devno)
> +{
> +	return devno;
> +}
> +
> +int board_late_init(void)
> +{
> +#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
> +	env_set("board_name", "MEK");
> +	env_set("board_rev", "iMX8QM");
> +#endif
> +
> +	return 0;
> +}
> diff --git a/board/freescale/imx8qm_mek/imximage.cfg
> b/board/freescale/imx8qm_mek/imximage.cfg
> new file mode 100644
> index 0000000000..7dc6b93eb5
> --- /dev/null
> +++ b/board/freescale/imx8qm_mek/imximage.cfg
> @@ -0,0 +1,19 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +/*
> + * Copyright 2018 NXP
> + */
> +
> +#define __ASSEMBLY__
> +
> +/* Boot from SD, sector size 0x400 */
> +BOOT_FROM SD 0x400
> +/* SoC type IMX8QM */
> +SOC_TYPE IMX8QM
> +/* Append seco container image */
> +APPEND mx8qm-ahab-container.img
> +/* Create the 2nd container */
> +CONTAINER
> +/* Add scfw image with exec attribute */ IMAGE SCU
> +mx8qm-mek-scfw-tcm.bin
> +/* Add ATF image with exec attribute */ IMAGE A35 spl/u-boot-spl.bin
> +0x00100000
> diff --git a/board/freescale/imx8qm_mek/spl.c
> b/board/freescale/imx8qm_mek/spl.c
> new file mode 100644
> index 0000000000..95ce9f37e8
> --- /dev/null
> +++ b/board/freescale/imx8qm_mek/spl.c
> @@ -0,0 +1,75 @@
> +/*
> + * Copyright 2018 NXP
> + *
> + * SPDX-License-Identifier:	GPL-2.0+
> + */
> +
> +#include <common.h>
> +#include <dm.h>
> +#include <spl.h>
> +#include <dm/uclass.h>
> +#include <dm/device.h>
> +#include <dm/uclass-internal.h>
> +#include <dm/device-internal.h>
> +#include <dm/lists.h>
> +
> +DECLARE_GLOBAL_DATA_PTR;
> +
> +void spl_board_init(void)
> +{
> +	struct udevice *dev;
> +	int offset;
> +
> +	uclass_find_first_device(UCLASS_MISC, &dev);
> +
> +	for (; dev; uclass_find_next_device(&dev)) {
> +		if (device_probe(dev))
> +			continue;
> +	}
> +
> +	offset = fdt_node_offset_by_compatible(gd->fdt_blob, -1,
> "nxp,imx8-pd");
> +	while (offset != -FDT_ERR_NOTFOUND) {
> +		lists_bind_fdt(gd->dm_root, offset_to_ofnode(offset),
> +			       NULL, true);
> +		offset = fdt_node_offset_by_compatible(gd->fdt_blob, offset,
> +						       "nxp,imx8-pd");
> +	}
> +
> +	uclass_find_first_device(UCLASS_POWER_DOMAIN, &dev);
> +
> +	for (; dev; uclass_find_next_device(&dev)) {
> +		if (device_probe(dev))
> +			continue;
> +	}
> +
> +	arch_cpu_init();
> +
> +	board_early_init_f();
> +
> +	timer_init();
> +
> +	preloader_console_init();
> +
> +	puts("Normal Boot\n");
> +}
> +
> +#ifdef CONFIG_SPL_LOAD_FIT
> +int board_fit_config_name_match(const char *name) {
> +	/* Just empty function now - can't decide what to choose */
> +	debug("%s: %s\n", __func__, name);
> +
> +	return 0;
> +}
> +#endif
> +
> +void board_init_f(ulong dummy)
> +{
> +	/* Clear global data */
> +	memset((void *)gd, 0, sizeof(gd_t));
> +
> +	/* Clear the BSS. */
> +	memset(__bss_start, 0, __bss_end - __bss_start);
> +
> +	board_init_r(NULL, 0);
> +}
> diff --git a/configs/imx8qm_mek_defconfig b/configs/imx8qm_mek_defconfig
> new file mode 100644 index 0000000000..238d44d1f5
> --- /dev/null
> +++ b/configs/imx8qm_mek_defconfig
> @@ -0,0 +1,75 @@
> +CONFIG_ARM=y
> +CONFIG_ARCH_IMX8=y
> +CONFIG_SYS_TEXT_BASE=0x80020000
> +CONFIG_SPL_GPIO_SUPPORT=y
> +CONFIG_SPL_LIBCOMMON_SUPPORT=y
> +CONFIG_SPL_LIBGENERIC_SUPPORT=y
> +CONFIG_SYS_MALLOC_F_LEN=0x2000
> +CONFIG_TARGET_IMX8QM_MEK=y
> +CONFIG_SPL_MMC_SUPPORT=y
> +CONFIG_SPL_SERIAL_SUPPORT=y
> +CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
> +CONFIG_SPL=y
> +CONFIG_NR_DRAM_BANKS=3
> +CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-imx/mkimage_fit_atf.sh"
> +CONFIG_FIT=y
> +CONFIG_SPL_LOAD_FIT=y
> +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/imx8qm_m
> ek/imximage.cfg"
> +CONFIG_BOOTDELAY=3
> +CONFIG_LOG=y
> +CONFIG_SPL_BOARD_INIT=y
> +CONFIG_SPL_SEPARATE_BSS=y
> +CONFIG_SPL_POWER_SUPPORT=y
> +CONFIG_SPL_POWER_DOMAIN=y
> +CONFIG_SPL_WATCHDOG_SUPPORT=y
> +CONFIG_CMD_CPU=y
> +# CONFIG_CMD_IMPORTENV is not set
> +CONFIG_CMD_CLK=y
> +CONFIG_CMD_DM=y
> +CONFIG_CMD_GPIO=y
> +CONFIG_CMD_I2C=y
> +CONFIG_CMD_MMC=y
> +CONFIG_CMD_DHCP=y
> +CONFIG_CMD_MII=y
> +CONFIG_CMD_PING=y
> +CONFIG_CMD_CACHE=y
> +CONFIG_CMD_FAT=y
> +CONFIG_SPL_OF_CONTROL=y
> +CONFIG_DEFAULT_DEVICE_TREE="fsl-imx8qm-mek"
> +CONFIG_ENV_IS_IN_MMC=y
> +CONFIG_SPL_DM=y
> +CONFIG_SPL_CLK=y
> +CONFIG_CLK_IMX8=y
> +CONFIG_CPU=y
> +CONFIG_DM_GPIO=y
> +CONFIG_MXC_GPIO=y
> +CONFIG_DM_PCA953X=y
> +CONFIG_DM_I2C=y
> +CONFIG_SYS_I2C_IMX_LPI2C=y
> +CONFIG_I2C_MUX=y
> +CONFIG_I2C_MUX_PCA954x=y
> +CONFIG_MISC=y
> +CONFIG_DM_MMC=y
> +CONFIG_PHYLIB=y
> +CONFIG_PHY_ADDR_ENABLE=y
> +CONFIG_PHY_ATHEROS=y
> +CONFIG_DM_ETH=y
> +CONFIG_PHY_GIGE=y
> +CONFIG_FEC_MXC_SHARE_MDIO=y
> +CONFIG_FEC_MXC_MDIO_BASE=0x5B040000
> +CONFIG_FEC_MXC=y
> +CONFIG_MII=y
> +CONFIG_PINCTRL=y
> +CONFIG_SPL_PINCTRL=y
> +CONFIG_PINCTRL_IMX8=y
> +CONFIG_POWER_DOMAIN=y
> +CONFIG_IMX8_POWER_DOMAIN=y
> +CONFIG_DM_REGULATOR=y
> +CONFIG_SPL_DM_REGULATOR=y
> +CONFIG_DM_REGULATOR_FIXED=y
> +CONFIG_DM_REGULATOR_GPIO=y
> +CONFIG_SPL_DM_REGULATOR_GPIO=y
> +CONFIG_DM_SERIAL=y
> +CONFIG_FSL_LPUART=y
> +CONFIG_SPL_TINY_MEMSET=y
> +# CONFIG_EFI_LOADER is not set
> diff --git a/include/configs/imx8qm_mek.h b/include/configs/imx8qm_mek.h
> new file mode 100644 index 0000000000..02c5d1c054
> --- /dev/null
> +++ b/include/configs/imx8qm_mek.h
> @@ -0,0 +1,176 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +/*
> + * Copyright 2018 NXP
> + */
> +
> +#ifndef __IMX8QM_MEK_H
> +#define __IMX8QM_MEK_H
> +
> +#include <linux/sizes.h>
> +#include <asm/arch/imx-regs.h>
> +
> +#ifdef CONFIG_SPL_BUILD
> +#define CONFIG_SPL_TEXT_BASE				0x0
> +#define CONFIG_SPL_MAX_SIZE				(124 * 1024)
> +#define CONFIG_SYS_MONITOR_LEN				(1024 * 1024)
> +#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR
> +#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR
> 	0x800
> +#define CONFIG_SYS_MMCSD_FS_BOOT_PARTITION		0
> +
> +#define CONFIG_SPL_LDSCRIPT		"arch/arm/cpu/armv8/u-boot-spl.lds"
> +#define CONFIG_SPL_STACK		0x013E000
> +#define CONFIG_SPL_BSS_START_ADDR	0x00128000
> +#define CONFIG_SPL_BSS_MAX_SIZE		0x1000	/* 4 KB */
> +#define CONFIG_SYS_SPL_MALLOC_START	0x00120000
> +#define CONFIG_SYS_SPL_MALLOC_SIZE	0x3000	/* 12 KB */
> +#define CONFIG_SERIAL_LPUART_BASE	0x5a060000
> +#define CONFIG_SYS_ICACHE_OFF
> +#define CONFIG_SYS_DCACHE_OFF
> +#define CONFIG_MALLOC_F_ADDR		0x00120000
> +
> +#define CONFIG_SPL_RAW_IMAGE_ARM_TRUSTED_FIRMWARE
> +
> +#define CONFIG_SPL_ABORT_ON_RAW_IMAGE
> +
> +#define CONFIG_OF_EMBED
> +#endif
> +
> +#define CONFIG_REMAKE_ELF
> +
> +#define CONFIG_BOARD_EARLY_INIT_F
> +
> +/* Flat Device Tree Definitions */
> +#define CONFIG_OF_BOARD_SETUP
> +
> +#undef CONFIG_CMD_EXPORTENV
> +#undef CONFIG_CMD_IMPORTENV
> +#undef CONFIG_CMD_IMLS
> +
> +#undef CONFIG_CMD_CRC32
> +#undef CONFIG_BOOTM_NETBSD
> +
> +#define CONFIG_FSL_ESDHC
> +#define CONFIG_FSL_USDHC
> +#define CONFIG_SYS_FSL_ESDHC_ADDR       0
> +#define USDHC1_BASE_ADDR                0x5B010000
> +#define USDHC2_BASE_ADDR                0x5B020000
> +#define CONFIG_SUPPORT_EMMC_BOOT	/* eMMC specific */
> +
> +#define CONFIG_ENV_OVERWRITE
> +
> +#define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
> +
> +/* Initial environment variables */
> +#define CONFIG_EXTRA_ENV_SETTINGS		\
> +	"script=boot.scr\0" \
> +	"image=Image\0" \
> +	"panel=NULL\0" \
> +	"console=ttyLP0,${baudrate}
> earlycon=lpuart32,0x5a060000,${baudrate}\0" \
> +	"fdt_addr=0x83000000\0"			\
> +	"fdt_high=0xffffffffffffffff\0"		\
> +	"boot_fdt=try\0" \
> +	"fdt_file=fsl-imx8qxp-mek.dtb\0" \
> +	"initrd_addr=0x83800000\0"		\
> +	"initrd_high=0xffffffffffffffff\0" \
> +	"mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \
> +	"mmcpart=" __stringify(CONFIG_SYS_MMC_IMG_LOAD_PART) "\0" \
> +	"mmcroot=" CONFIG_MMCROOT " rootwait rw\0" \
> +	"mmcautodetect=yes\0" \
> +	"mmcargs=setenv bootargs console=${console} root=${mmcroot}\0 " \
> +	"loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr}
> ${script};\0" \
> +	"bootscript=echo Running bootscript from mmc ...; " \
> +		"source\0" \
> +	"loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr}
> ${image}\0" \
> +	"loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0"
> \
> +	"mmcboot=echo Booting from mmc ...; " \
> +		"run mmcargs; " \
> +		"if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
> +			"if run loadfdt; then " \
> +				"booti ${loadaddr} - ${fdt_addr}; " \
> +			"else " \
> +				"echo WARN: Cannot load the DT; " \
> +			"fi; " \
> +		"else " \
> +			"echo wait for boot; " \
> +		"fi;\0" \
> +	"netargs=setenv bootargs console=${console} " \
> +		"root=/dev/nfs " \
> +		"ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \
> +	"netboot=echo Booting from net ...; " \
> +		"run netargs;  " \
> +		"if test ${ip_dyn} = yes; then " \
> +			"setenv get_cmd dhcp; " \
> +		"else " \
> +			"setenv get_cmd tftp; " \
> +		"fi; " \
> +		"${get_cmd} ${loadaddr} ${image}; " \
> +		"if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
> +			"if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \
> +				"booti ${loadaddr} - ${fdt_addr}; " \
> +			"else " \
> +				"echo WARN: Cannot load the DT; " \
> +			"fi; " \
> +		"else " \
> +			"booti; " \
> +		"fi;\0"
> +
> +#define CONFIG_BOOTCOMMAND \
> +	   "mmc dev ${mmcdev}; if mmc rescan; then " \
> +		   "if run loadbootscript; then " \
> +			   "run bootscript; " \
> +		   "else " \
> +			   "if run loadimage; then " \
> +				   "run mmcboot; " \
> +			   "else run netboot; " \
> +			   "fi; " \
> +		   "fi; " \
> +	   "else booti ${loadaddr} - ${fdt_addr}; fi"
> +
> +/* Link Definitions */
> +#define CONFIG_LOADADDR			0x80280000
> +
> +#define CONFIG_SYS_LOAD_ADDR           CONFIG_LOADADDR
> +
> +#define CONFIG_SYS_INIT_SP_ADDR         0x80200000
> +
> +/* Default environment is in SD */
> +#define CONFIG_ENV_SIZE			0x1000
> +#define CONFIG_ENV_OFFSET		(64 * SZ_64K)
> +#define CONFIG_SYS_MMC_ENV_PART		0	/* user area */
> +
> +#define CONFIG_SYS_MMC_IMG_LOAD_PART	1
> +
> +/* On LPDDR4 board, USDHC1 is for eMMC, USDHC2 is for SD on CPU board
> */
> +#define CONFIG_SYS_MMC_ENV_DEV		1   /* USDHC2 */
> +#define CONFIG_MMCROOT			"/dev/mmcblk1p2"  /* USDHC2
> */
> +#define CONFIG_SYS_FSL_USDHC_NUM	2
> +
> +/* Size of malloc() pool */
> +#define CONFIG_SYS_MALLOC_LEN		((CONFIG_ENV_SIZE + (32 * 1024))
> * 1024)
> +
> +#define CONFIG_SYS_SDRAM_BASE		0x80000000
> +#define PHYS_SDRAM_1			0x80000000
> +#define PHYS_SDRAM_2			0x880000000
> +#define PHYS_SDRAM_1_SIZE		0x80000000	/* 2 GB */
> +#define PHYS_SDRAM_2_SIZE		0x100000000	/* 4 GB */
> +
> +/* Serial */
> +#define CONFIG_BAUDRATE			115200
> +
> +/* Monitor Command Prompt */
> +#define CONFIG_HUSH_PARSER
> +#define CONFIG_SYS_PROMPT_HUSH_PS2     "> "
> +#define CONFIG_SYS_CBSIZE              2048
> +#define CONFIG_SYS_MAXARGS             64
> +#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE
> +#define CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE + \
> +					sizeof(CONFIG_SYS_PROMPT) + 16)
> +
> +/* Generic Timer Definitions */
> +#define COUNTER_FREQUENCY		8000000	/* 8MHz */
> +
> +/* Networking */
> +#define CONFIG_FEC_XCV_TYPE		RGMII
> +#define FEC_QUIRK_ENET_MAC
> +
> +#endif /* __IMX8QM_MEK_H */
> --
> 2.16.4

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

* [U-Boot] [PATCH v2 00/14] colibri-imx6ull device tree enablement and driver model conversion
@ 2019-04-09 15:24 Marcel Ziswiler
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 01/14] tdx-cfg-block: add support for new colibri iMX6ull skus Marcel Ziswiler
                   ` (13 more replies)
  0 siblings, 14 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-09 15:24 UTC (permalink / raw)
  To: u-boot


This series addresses some shortcomings, enables/introduces device tree
support and converts all except video to using the driver model. This is
fully tested both running our latest downstream BSP as well as the
mainline Linux kernel.

This series is available together with my previous series addressing
Apalis and Colibri iMX6 as well as Colibri Vybrid aka VF50/VF61 on our
git server [1].

[1] http://git.toradex.com/cgit/u-boot-toradex.git/log/?h=for-next

Changes in v2:
- Added Igor's reviewed-by.
- Added Igor's reviewed-by.
- Added Igor's reviewed-by.
- Added Igor's reviewed-by.
- Added Igor's reviewed-by.
- Added Igor's reviewed-by.
- Added Igor's reviewed-by.
- Added Igor's reviewed-by.
- Added Igor's reviewed-by.
- Added Igor's reviewed-by.
- Added Igor's reviewed-by.
- Added Igor's reviewed-by.
- Added Igor's reviewed-by.

Gerard Salvatella (1):
  tdx-cfg-block: add support for new colibri iMX6ull skus

Marcel Ziswiler (9):
  colibri-imx6ull: fix ethernet phy power on
  colibri-imx6ull: configuration clean-up
  colibri-imx6ull: migrate pinctrl and regulators to dtb/dm
  colibri-imx6ull: migrate mmc to using driver model
  colibri-imx6ull: migrate usb to using driver model
  colibri-imx6ull: migrate fec to using driver model
  ARM: dts: colibri-imx6ull: fix uart-has-rtscts property
  ARM: dts: colibri-imx6ull: add osc32k_32k_out pinctrl
  ARM: dts: colibri-imx6ull: update device tree

Philippe Schenker (1):
  board: imx6ull: Add disable PMIC_STBY_REQ

Stefan Agner (3):
  tdx-cfg-block: simplify i.MX 6 module detection
  colibri-imx6ull: set module variant depending on config block
  apalis/colibri_imx6/imx6ull: make sure loadaddr does not collide

 arch/arm/dts/imx6ull-colibri.dts              | 170 ++++++++-----
 arch/arm/dts/imx6ull-pinfunc.h                |  26 +-
 .../toradex/colibri-imx6ull/colibri-imx6ull.c | 225 +++---------------
 board/toradex/common/tdx-cfg-block.c          |  70 ++++--
 board/toradex/common/tdx-cfg-block.h          |   3 +
 configs/colibri-imx6ull_defconfig             |  18 +-
 include/configs/apalis_imx6.h                 |   4 +-
 include/configs/colibri-imx6ull.h             |  14 +-
 include/configs/colibri_imx6.h                |   4 +-
 9 files changed, 227 insertions(+), 307 deletions(-)

-- 
2.20.1

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

* [U-Boot] [PATCH v2 01/14] tdx-cfg-block: add support for new colibri iMX6ull skus
  2019-04-09 15:24 [U-Boot] [PATCH v2 00/14] colibri-imx6ull device tree enablement and driver model conversion Marcel Ziswiler
@ 2019-04-09 15:24 ` Marcel Ziswiler
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 02/14] tdx-cfg-block: simplify i.MX 6 module detection Marcel Ziswiler
                   ` (12 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-09 15:24 UTC (permalink / raw)
  To: u-boot

From: Gerard Salvatella <gerard.salvatella@toradex.com>

Add support for new Colibri iMX6ULL SKUs.

While at it also checkpatch fix the whole files.

Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v2:
- Added Igor's reviewed-by.

 board/toradex/common/tdx-cfg-block.c | 62 +++++++++++++++++++++-------
 board/toradex/common/tdx-cfg-block.h |  3 ++
 2 files changed, 50 insertions(+), 15 deletions(-)

diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c
index b90077bedc..3b73421243 100644
--- a/board/toradex/common/tdx-cfg-block.c
+++ b/board/toradex/common/tdx-cfg-block.c
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0+
 /*
- * Copyright (c) 2016 Toradex, Inc.
+ * Copyright (c) 2016-2019 Toradex, Inc.
  */
 
 #include <common.h>
@@ -98,6 +98,9 @@ const char * const toradex_modules[] = {
 	[40] = "Colibri iMX6ULL 512MB Wi-Fi / Bluetooth IT",
 	[41] = "Colibri iMX7 Dual 512MB EPDC",
 	[42] = "Apalis TK1 4GB",
+	[43] = "Colibri T20 512MB IT SETEK",
+	[44] = "Colibri iMX6ULL 512MB IT",
+	[45] = "Colibri iMX6ULL 512MB Wi-Fi / Bluetooth",
 };
 
 #ifdef CONFIG_TDX_CFG_BLOCK_IS_IN_MMC
@@ -299,22 +302,47 @@ static int get_cfgblock_interactive(void)
 			else
 				tdx_hw_tag.prodid = APALIS_IMX6D;
 #else
-		if (it == 'y' || it == 'Y')
-			if (is_cpu_type(MXC_CPU_MX6DL))
+		char wb = 'n';
+
+		if (it == 'y' || it == 'Y') {
+			if (is_cpu_type(MXC_CPU_MX6DL)) {
 				tdx_hw_tag.prodid = COLIBRI_IMX6DL_IT;
-			else
+			} else if (is_cpu_type(MXC_CPU_MX6SOLO)) {
 				tdx_hw_tag.prodid = COLIBRI_IMX6S_IT;
-		else
-			if (is_cpu_type(MXC_CPU_MX6DL))
+			} else {
+				sprintf(message, "Does the module have WiFi /" \
+						 " Bluetooth? [y/N] ");
+				len = cli_readline(message);
+				wb = console_buffer[0];
+				if (wb == 'y' || wb == 'Y')
+					tdx_hw_tag.prodid =
+						COLIBRI_IMX6ULL_WIFI_BT_IT;
+				else
+					tdx_hw_tag.prodid = COLIBRI_IMX6ULL_IT;
+			}
+		} else {
+			if (is_cpu_type(MXC_CPU_MX6DL)) {
 				tdx_hw_tag.prodid = COLIBRI_IMX6DL;
-			else
+			} else if (is_cpu_type(MXC_CPU_MX6SOLO)) {
 				tdx_hw_tag.prodid = COLIBRI_IMX6S;
+			} else {
+				sprintf(message, "Does the module have WiFi /" \
+						 " Bluetooth? [y/N] ");
+				len = cli_readline(message);
+				wb = console_buffer[0];
+				if (wb == 'y' || wb == 'Y')
+					tdx_hw_tag.prodid =
+						COLIBRI_IMX6ULL_WIFI_BT;
+				else
+					tdx_hw_tag.prodid = COLIBRI_IMX6ULL;
+			}
+		}
 #endif /* CONFIG_MACH_TYPE */
-	} else if (!strcmp("imx7d", soc)) {
+	} else if (!strcmp("imx7d", soc))
 		tdx_hw_tag.prodid = COLIBRI_IMX7D;
-	} else if (!strcmp("imx7s", soc)) {
+	else if (!strcmp("imx7s", soc))
 		tdx_hw_tag.prodid = COLIBRI_IMX7S;
-	} else if (!strcmp("tegra20", soc)) {
+	else if (!strcmp("tegra20", soc)) {
 		if (it == 'y' || it == 'Y')
 			if (gd->ram_size == 0x10000000)
 				tdx_hw_tag.prodid = COLIBRI_T20_256MB_IT;
@@ -330,8 +358,9 @@ static int get_cfgblock_interactive(void)
 			tdx_hw_tag.prodid = COLIBRI_PXA270_312MHZ;
 		else
 			tdx_hw_tag.prodid = COLIBRI_PXA270_520MHZ;
+	}
 #ifdef CONFIG_MACH_TYPE
-	} else if (!strcmp("tegra30", soc)) {
+	else if (!strcmp("tegra30", soc)) {
 		if (CONFIG_MACH_TYPE == MACH_TYPE_APALIS_T30) {
 			if (it == 'y' || it == 'Y')
 				tdx_hw_tag.prodid = APALIS_T30_IT;
@@ -346,8 +375,9 @@ static int get_cfgblock_interactive(void)
 			else
 				tdx_hw_tag.prodid = COLIBRI_T30;
 		}
+	}
 #endif /* CONFIG_MACH_TYPE */
-	} else if (!strcmp("tegra124", soc)) {
+	else if (!strcmp("tegra124", soc)) {
 		tdx_hw_tag.prodid = APALIS_TK1_2GB;
 	} else if (!strcmp("vf500", soc)) {
 		if (it == 'y' || it == 'Y')
@@ -373,7 +403,7 @@ static int get_cfgblock_interactive(void)
 	tdx_hw_tag.ver_minor = console_buffer[2] - '0';
 	tdx_hw_tag.ver_assembly = console_buffer[3] - 'A';
 
-	if (cpu_is_pxa27x() && (tdx_hw_tag.ver_major == 1))
+	if (cpu_is_pxa27x() && tdx_hw_tag.ver_major == 1)
 		tdx_hw_tag.prodid -= (COLIBRI_PXA270_312MHZ -
 				       COLIBRI_PXA270_V1_312MHZ);
 
@@ -441,7 +471,8 @@ static int do_cfgblock_create(cmd_tbl_t *cmdtp, int flag, int argc,
 		 * On NAND devices, recreation is only allowed if the page is
 		 * empty (config block invalid...)
 		 */
-		printf("NAND erase block %d need to be erased before creating a Toradex config block\n",
+		printf("NAND erase block %d need to be erased before creating" \
+		       " a Toradex config block\n",
 		       CONFIG_TDX_CFG_BLOCK_OFFSET /
 		       get_nand_dev_by_index(0)->erasesize);
 		goto out;
@@ -450,7 +481,8 @@ static int do_cfgblock_create(cmd_tbl_t *cmdtp, int flag, int argc,
 		 * On NOR devices, recreation is only allowed if the sector is
 		 * empty and write protection is off (config block invalid...)
 		 */
-		printf("NOR sector at offset 0x%02x need to be erased and unprotected before creating a Toradex config block\n",
+		printf("NOR sector at offset 0x%02x need to be erased and " \
+		       "unprotected before creating a Toradex config block\n",
 		       CONFIG_TDX_CFG_BLOCK_OFFSET);
 		goto out;
 #else
diff --git a/board/toradex/common/tdx-cfg-block.h b/board/toradex/common/tdx-cfg-block.h
index da60e789a7..961bb4394f 100644
--- a/board/toradex/common/tdx-cfg-block.h
+++ b/board/toradex/common/tdx-cfg-block.h
@@ -61,6 +61,9 @@ enum {
 	COLIBRI_IMX6ULL_WIFI_BT_IT, /* 40 */
 	COLIBRI_IMX7D_EPDC,
 	APALIS_TK1_4GB,
+	COLIBRI_T20_512MB_IT_SETEK,
+	COLIBRI_IMX6ULL_IT,
+	COLIBRI_IMX6ULL_WIFI_BT, /* 45 */
 };
 
 extern const char * const toradex_modules[];
-- 
2.20.1

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

* [U-Boot] [PATCH v2 02/14] tdx-cfg-block: simplify i.MX 6 module detection
  2019-04-09 15:24 [U-Boot] [PATCH v2 00/14] colibri-imx6ull device tree enablement and driver model conversion Marcel Ziswiler
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 01/14] tdx-cfg-block: add support for new colibri iMX6ull skus Marcel Ziswiler
@ 2019-04-09 15:24 ` Marcel Ziswiler
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 03/14] colibri-imx6ull: set module variant depending on config block Marcel Ziswiler
                   ` (11 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-09 15:24 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

Use CONFIG_TARGET_... at compile time to differentiate between
Apalis iMX6, Colibri iMX6 and Colibri iMX6ULL. Avoid code
duplication by moving question about Wi-Fi / Bluetooth before
IT/non-IT decision.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v2:
- Added Igor's reviewed-by.

 board/toradex/common/tdx-cfg-block.c | 68 ++++++++++++++--------------
 1 file changed, 34 insertions(+), 34 deletions(-)

diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c
index 3b73421243..71ff40cfad 100644
--- a/board/toradex/common/tdx-cfg-block.c
+++ b/board/toradex/common/tdx-cfg-block.c
@@ -280,6 +280,9 @@ static int get_cfgblock_interactive(void)
 	char it = 'n';
 	int len;
 
+	/* Unknown module by default */
+	tdx_hw_tag.prodid = 0;
+
 	if (cpu_is_pxa27x())
 		sprintf(message, "Is the module the 312 MHz version? [y/N] ");
 	else
@@ -290,54 +293,49 @@ static int get_cfgblock_interactive(void)
 
 	soc = env_get("soc");
 	if (!strcmp("mx6", soc)) {
-#ifdef CONFIG_MACH_TYPE
-		if (it == 'y' || it == 'Y')
+#ifdef CONFIG_TARGET_APALIS_IMX6
+		if (it == 'y' || it == 'Y') {
 			if (is_cpu_type(MXC_CPU_MX6Q))
 				tdx_hw_tag.prodid = APALIS_IMX6Q_IT;
 			else
 				tdx_hw_tag.prodid = APALIS_IMX6D_IT;
-		else
+		} else {
 			if (is_cpu_type(MXC_CPU_MX6Q))
 				tdx_hw_tag.prodid = APALIS_IMX6Q;
 			else
 				tdx_hw_tag.prodid = APALIS_IMX6D;
-#else
-		char wb = 'n';
-
+		}
+#elif CONFIG_TARGET_COLIBRI_IMX6
 		if (it == 'y' || it == 'Y') {
-			if (is_cpu_type(MXC_CPU_MX6DL)) {
+			if (is_cpu_type(MXC_CPU_MX6DL))
 				tdx_hw_tag.prodid = COLIBRI_IMX6DL_IT;
-			} else if (is_cpu_type(MXC_CPU_MX6SOLO)) {
+			else if (is_cpu_type(MXC_CPU_MX6SOLO))
 				tdx_hw_tag.prodid = COLIBRI_IMX6S_IT;
-			} else {
-				sprintf(message, "Does the module have WiFi /" \
-						 " Bluetooth? [y/N] ");
-				len = cli_readline(message);
-				wb = console_buffer[0];
-				if (wb == 'y' || wb == 'Y')
-					tdx_hw_tag.prodid =
-						COLIBRI_IMX6ULL_WIFI_BT_IT;
-				else
-					tdx_hw_tag.prodid = COLIBRI_IMX6ULL_IT;
-			}
 		} else {
-			if (is_cpu_type(MXC_CPU_MX6DL)) {
+			if (is_cpu_type(MXC_CPU_MX6DL))
 				tdx_hw_tag.prodid = COLIBRI_IMX6DL;
-			} else if (is_cpu_type(MXC_CPU_MX6SOLO)) {
+			else if (is_cpu_type(MXC_CPU_MX6SOLO))
 				tdx_hw_tag.prodid = COLIBRI_IMX6S;
-			} else {
-				sprintf(message, "Does the module have WiFi /" \
-						 " Bluetooth? [y/N] ");
-				len = cli_readline(message);
-				wb = console_buffer[0];
-				if (wb == 'y' || wb == 'Y')
-					tdx_hw_tag.prodid =
-						COLIBRI_IMX6ULL_WIFI_BT;
-				else
-					tdx_hw_tag.prodid = COLIBRI_IMX6ULL;
-			}
 		}
-#endif /* CONFIG_MACH_TYPE */
+#elif CONFIG_TARGET_COLIBRI_IMX6ULL
+		char wb = 'n';
+
+		sprintf(message, "Does the module have Wi-Fi / Bluetooth? " \
+				 "[y/N] ");
+		len = cli_readline(message);
+		wb = console_buffer[0];
+		if (it == 'y' || it == 'Y') {
+			if (wb == 'y' || wb == 'Y')
+				tdx_hw_tag.prodid = COLIBRI_IMX6ULL_WIFI_BT_IT;
+			else
+				tdx_hw_tag.prodid = COLIBRI_IMX6ULL_IT;
+		} else {
+			if (wb == 'y' || wb == 'Y')
+				tdx_hw_tag.prodid = COLIBRI_IMX6ULL_WIFI_BT;
+			else
+				tdx_hw_tag.prodid = COLIBRI_IMX6ULL;
+		}
+#endif
 	} else if (!strcmp("imx7d", soc))
 		tdx_hw_tag.prodid = COLIBRI_IMX7D;
 	else if (!strcmp("imx7s", soc))
@@ -389,7 +387,9 @@ static int get_cfgblock_interactive(void)
 			tdx_hw_tag.prodid = COLIBRI_VF61_IT;
 		else
 			tdx_hw_tag.prodid = COLIBRI_VF61;
-	} else {
+	}
+
+	if (!tdx_hw_tag.prodid) {
 		printf("Module type not detectable due to unknown SoC\n");
 		return -1;
 	}
-- 
2.20.1

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

* [U-Boot] [PATCH v2 03/14] colibri-imx6ull: set module variant depending on config block
  2019-04-09 15:24 [U-Boot] [PATCH v2 00/14] colibri-imx6ull device tree enablement and driver model conversion Marcel Ziswiler
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 01/14] tdx-cfg-block: add support for new colibri iMX6ull skus Marcel Ziswiler
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 02/14] tdx-cfg-block: simplify i.MX 6 module detection Marcel Ziswiler
@ 2019-04-09 15:24 ` Marcel Ziswiler
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 04/14] apalis/colibri_imx6/imx6ull: make sure loadaddr does not collide Marcel Ziswiler
                   ` (10 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-09 15:24 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

Using CPU temperature grading as a discriminator if the Wi-Fi /
Bluetooth chip is populated is no longer possible due to upcoming
SKUs. Set variant to -wifi only if a valid config block is present
and the product id mentions a SKU with Wi-Fi / Bluetooth.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v2:
- Added Igor's reviewed-by.

 board/toradex/colibri-imx6ull/colibri-imx6ull.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/board/toradex/colibri-imx6ull/colibri-imx6ull.c b/board/toradex/colibri-imx6ull/colibri-imx6ull.c
index fcb49a0718..fe60b8e870 100644
--- a/board/toradex/colibri-imx6ull/colibri-imx6ull.c
+++ b/board/toradex/colibri-imx6ull/colibri-imx6ull.c
@@ -29,6 +29,7 @@
 #include <usb.h>
 #include <usb/ehci-ci.h>
 #include "../common/tdx-common.h"
+#include "../common/tdx-cfg-block.h"
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -317,10 +318,15 @@ static const struct boot_mode board_boot_modes[] = {
 
 int board_late_init(void)
 {
-	int minc, maxc;
-
-	if (get_cpu_temp_grade(&minc, &maxc) != TEMP_COMMERCIAL)
+#ifdef CONFIG_TDX_CFG_BLOCK
+	/*
+	 * If we have a valid config block and it says we are a module with
+	 * Wi-Fi/Bluetooth make sure we use the -wifi device tree.
+	 */
+	if (tdx_hw_tag.prodid == COLIBRI_IMX6ULL_WIFI_BT_IT ||
+	    tdx_hw_tag.prodid == COLIBRI_IMX6ULL_WIFI_BT)
 		env_set("variant", "-wifi");
+#endif
 
 #ifdef CONFIG_CMD_BMODE
 	add_board_boot_modes(board_boot_modes);
-- 
2.20.1

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

* [U-Boot] [PATCH v2 04/14] apalis/colibri_imx6/imx6ull: make sure loadaddr does not collide
  2019-04-09 15:24 [U-Boot] [PATCH v2 00/14] colibri-imx6ull device tree enablement and driver model conversion Marcel Ziswiler
                   ` (2 preceding siblings ...)
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 03/14] colibri-imx6ull: set module variant depending on config block Marcel Ziswiler
@ 2019-04-09 15:24 ` Marcel Ziswiler
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 05/14] colibri-imx6ull: fix ethernet phy power on Marcel Ziswiler
                   ` (9 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-09 15:24 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

Currently $loadaddr and $fdt_addr_r point to the same address. This
might be not ideal for some distro boot scripts which make use of
$loadaddr after loading the device tree.

Make sure the two variables point to two different addresses. Moving
$loadaddr is not entirly trivial since it is defined in mx6_common.h.
Move $fdt_addr_r and $ramdisk_addr_r by 1MiB, which should be enough
for scripts.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v2:
- Added Igor's reviewed-by.

 include/configs/apalis_imx6.h     | 4 ++--
 include/configs/colibri-imx6ull.h | 4 ++--
 include/configs/colibri_imx6.h    | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/include/configs/apalis_imx6.h b/include/configs/apalis_imx6.h
index 96169f55f0..91054d8c05 100644
--- a/include/configs/apalis_imx6.h
+++ b/include/configs/apalis_imx6.h
@@ -138,12 +138,12 @@
 
 #define MEM_LAYOUT_ENV_SETTINGS \
 	"bootm_size=0x20000000\0" \
-	"fdt_addr_r=0x12000000\0" \
+	"fdt_addr_r=0x12100000\0" \
 	"fdt_high=0xffffffff\0" \
 	"initrd_high=0xffffffff\0" \
 	"kernel_addr_r=0x11000000\0" \
 	"pxefile_addr_r=0x17100000\0" \
-	"ramdisk_addr_r=0x12100000\0" \
+	"ramdisk_addr_r=0x12200000\0" \
 	"scriptaddr=0x17000000\0"
 
 #define NFS_BOOTCMD \
diff --git a/include/configs/colibri-imx6ull.h b/include/configs/colibri-imx6ull.h
index 7cf550cf9e..31248b14a1 100644
--- a/include/configs/colibri-imx6ull.h
+++ b/include/configs/colibri-imx6ull.h
@@ -48,12 +48,12 @@
 
 #define MEM_LAYOUT_ENV_SETTINGS \
 	"bootm_size=0x10000000\0" \
-	"fdt_addr_r=0x82000000\0" \
+	"fdt_addr_r=0x82100000\0" \
 	"fdt_high=0xffffffff\0" \
 	"initrd_high=0xffffffff\0" \
 	"kernel_addr_r=0x81000000\0" \
 	"pxefile_addr_r=0x87100000\0" \
-	"ramdisk_addr_r=0x82100000\0" \
+	"ramdisk_addr_r=0x82200000\0" \
 	"scriptaddr=0x87000000\0"
 
 #define NFS_BOOTCMD \
diff --git a/include/configs/colibri_imx6.h b/include/configs/colibri_imx6.h
index 803c9be064..fecea95d32 100644
--- a/include/configs/colibri_imx6.h
+++ b/include/configs/colibri_imx6.h
@@ -128,12 +128,12 @@
 
 #define MEM_LAYOUT_ENV_SETTINGS \
 	"bootm_size=0x10000000\0" \
-	"fdt_addr_r=0x12000000\0" \
+	"fdt_addr_r=0x12100000\0" \
 	"fdt_high=0xffffffff\0" \
 	"initrd_high=0xffffffff\0" \
 	"kernel_addr_r=0x11000000\0" \
 	"pxefile_addr_r=0x17100000\0" \
-	"ramdisk_addr_r=0x12100000\0" \
+	"ramdisk_addr_r=0x12200000\0" \
 	"scriptaddr=0x17000000\0"
 
 #define NFS_BOOTCMD \
-- 
2.20.1

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

* [U-Boot] [PATCH v2 05/14] colibri-imx6ull: fix ethernet phy power on
  2019-04-09 15:24 [U-Boot] [PATCH v2 00/14] colibri-imx6ull device tree enablement and driver model conversion Marcel Ziswiler
                   ` (3 preceding siblings ...)
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 04/14] apalis/colibri_imx6/imx6ull: make sure loadaddr does not collide Marcel Ziswiler
@ 2019-04-09 15:24 ` Marcel Ziswiler
  2019-04-11  8:05   ` Igor Opaniuk
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 06/14] board: imx6ull: Add disable PMIC_STBY_REQ Marcel Ziswiler
                   ` (8 subsequent siblings)
  13 siblings, 1 reply; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-09 15:24 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Just give the new Ethernet PHY power save mode circuitry time to settle.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>

---

Changes in v2: None

 board/toradex/colibri-imx6ull/colibri-imx6ull.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/board/toradex/colibri-imx6ull/colibri-imx6ull.c b/board/toradex/colibri-imx6ull/colibri-imx6ull.c
index fe60b8e870..b6f45edb86 100644
--- a/board/toradex/colibri-imx6ull/colibri-imx6ull.c
+++ b/board/toradex/colibri-imx6ull/colibri-imx6ull.c
@@ -263,6 +263,9 @@ static int setup_fec(void)
 			IOMUX_GPR1_FEC2_CLOCK_MUX2_SEL_MASK,
 			IOMUX_GPR1_FEC2_CLOCK_MUX1_SEL_MASK);
 
+	/* give new Ethernet PHY power save mode circuitry time to settle */
+	mdelay(300);
+
 	return 0;
 }
 
-- 
2.20.1

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

* [U-Boot] [PATCH v2 06/14] board: imx6ull: Add disable PMIC_STBY_REQ
  2019-04-09 15:24 [U-Boot] [PATCH v2 00/14] colibri-imx6ull device tree enablement and driver model conversion Marcel Ziswiler
                   ` (4 preceding siblings ...)
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 05/14] colibri-imx6ull: fix ethernet phy power on Marcel Ziswiler
@ 2019-04-09 15:24 ` Marcel Ziswiler
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 07/14] colibri-imx6ull: configuration clean-up Marcel Ziswiler
                   ` (7 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-09 15:24 UTC (permalink / raw)
  To: u-boot

From: Philippe Schenker <philippe.schenker@toradex.com>

Disable output driver of PAD CCM_PMIC_STBY_REQ. This prevents the
SOC to request for a lower voltage during sleep. This is necessary
because the voltage is changing too slow for the SOC to wake up
properly.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v2:
- Added Igor's reviewed-by.

 board/toradex/colibri-imx6ull/colibri-imx6ull.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/board/toradex/colibri-imx6ull/colibri-imx6ull.c b/board/toradex/colibri-imx6ull/colibri-imx6ull.c
index b6f45edb86..f1d5cc6655 100644
--- a/board/toradex/colibri-imx6ull/colibri-imx6ull.c
+++ b/board/toradex/colibri-imx6ull/colibri-imx6ull.c
@@ -50,6 +50,8 @@ DECLARE_GLOBAL_DATA_PTR;
 #define LCD_PAD_CTRL    (PAD_CTL_HYS | PAD_CTL_PUS_100K_UP | \
 		PAD_CTL_DSE_48ohm)
 
+#define MX6_PAD_SNVS_PMIC_STBY_REQ_ADDR 0x2290040
+
 #define NAND_PAD_CTRL (PAD_CTL_DSE_48ohm | PAD_CTL_SRE_SLOW | PAD_CTL_HYS)
 
 #define NAND_PAD_READY0_CTRL (PAD_CTL_DSE_48ohm | PAD_CTL_PUS_22K_UP)
@@ -331,6 +333,14 @@ int board_late_init(void)
 		env_set("variant", "-wifi");
 #endif
 
+	/*
+	 * Disable output driver of PAD CCM_PMIC_STBY_REQ. This prevents the
+	 * SOC to request for a lower voltage during sleep. This is necessary
+	 * because the voltage is changing too slow for the SOC to wake up
+	 * properly.
+	 */
+	__raw_writel(0x8080, MX6_PAD_SNVS_PMIC_STBY_REQ_ADDR);
+
 #ifdef CONFIG_CMD_BMODE
 	add_board_boot_modes(board_boot_modes);
 #endif
-- 
2.20.1

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

* [U-Boot] [PATCH v2 07/14] colibri-imx6ull: configuration clean-up
  2019-04-09 15:24 [U-Boot] [PATCH v2 00/14] colibri-imx6ull device tree enablement and driver model conversion Marcel Ziswiler
                   ` (5 preceding siblings ...)
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 06/14] board: imx6ull: Add disable PMIC_STBY_REQ Marcel Ziswiler
@ 2019-04-09 15:24 ` Marcel Ziswiler
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 08/14] colibri-imx6ull: migrate pinctrl and regulators to dtb/dm Marcel Ziswiler
                   ` (6 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-09 15:24 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Drop disabling SPL_SYS_THUMB_BUILD as we anyway do not use SPL.
Enbale CRC32 verify, USB SDP and EFI loader support.
Drop CMD_GPT and disabling RANDOM_UUID.
Do savedefconfig which drops USB_FUNCTION_SDP.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v2:
- Added Igor's reviewed-by.

 configs/colibri-imx6ull_defconfig | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/configs/colibri-imx6ull_defconfig b/configs/colibri-imx6ull_defconfig
index dfe6ec1ce7..b19b3b7fb2 100644
--- a/configs/colibri-imx6ull_defconfig
+++ b/configs/colibri-imx6ull_defconfig
@@ -1,6 +1,5 @@
 CONFIG_ARM=y
 CONFIG_SYS_THUMB_BUILD=y
-# CONFIG_SPL_SYS_THUMB_BUILD is not set
 CONFIG_ARCH_MX6=y
 CONFIG_SYS_TEXT_BASE=0x87800000
 CONFIG_TARGET_COLIBRI_IMX6ULL=y
@@ -18,19 +17,20 @@ CONFIG_DISPLAY_BOARDINFO_LATE=y
 CONFIG_BOUNCE_BUFFER=y
 CONFIG_BOARD_EARLY_INIT_F=y
 CONFIG_SYS_PROMPT="Colibri iMX6ULL # "
+# CONFIG_CMD_ELF is not set
 # CONFIG_CMD_IMI is not set
 # CONFIG_CMD_XIMG is not set
 CONFIG_CMD_ASKENV=y
+CONFIG_CRC32_VERIFY=y
 CONFIG_CMD_MEMTEST=y
 CONFIG_CMD_DFU=y
 CONFIG_CMD_GPIO=y
-CONFIG_CMD_GPT=y
-# CONFIG_RANDOM_UUID is not set
 CONFIG_CMD_I2C=y
 CONFIG_CMD_MMC=y
 CONFIG_CMD_NAND_TRIMFFS=y
 CONFIG_CMD_NAND_TORTURE=y
 CONFIG_CMD_USB=y
+CONFIG_CMD_USB_SDP=y
 CONFIG_CMD_USB_MASS_STORAGE=y
 CONFIG_CMD_BMP=y
 CONFIG_CMD_CACHE=y
@@ -73,8 +73,6 @@ CONFIG_USB_GADGET_VENDOR_NUM=0x1b67
 CONFIG_USB_GADGET_PRODUCT_NUM=0x4000
 CONFIG_CI_UDC=y
 CONFIG_USB_GADGET_DOWNLOAD=y
-CONFIG_USB_FUNCTION_SDP=y
 CONFIG_VIDEO=y
 CONFIG_OF_LIBFDT_OVERLAY=y
 CONFIG_FDT_FIXUP_PARTITIONS=y
-# CONFIG_EFI_LOADER is not set
-- 
2.20.1

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

* [U-Boot] [PATCH v2 08/14] colibri-imx6ull: migrate pinctrl and regulators to dtb/dm
  2019-04-09 15:24 [U-Boot] [PATCH v2 00/14] colibri-imx6ull device tree enablement and driver model conversion Marcel Ziswiler
                   ` (6 preceding siblings ...)
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 07/14] colibri-imx6ull: configuration clean-up Marcel Ziswiler
@ 2019-04-09 15:24 ` Marcel Ziswiler
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 09/14] colibri-imx6ull: migrate mmc to using driver model Marcel Ziswiler
                   ` (5 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-09 15:24 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Migrate pinctrl and regulators to device tree resp. driver model:
Ethernet, NAND and UART.
Drop BOARD_EARLY_INIT_F as it is anyway no longer used.
Enable CMD_DM, CMD_MTD, CMD_REGULATOR and DM_REGULATOR_FIXED.
While at it also update copyright period.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v2:
- Added Igor's reviewed-by.

 .../toradex/colibri-imx6ull/colibri-imx6ull.c | 82 ++-----------------
 configs/colibri-imx6ull_defconfig             |  5 +-
 2 files changed, 10 insertions(+), 77 deletions(-)

diff --git a/board/toradex/colibri-imx6ull/colibri-imx6ull.c b/board/toradex/colibri-imx6ull/colibri-imx6ull.c
index f1d5cc6655..8493b1dfdd 100644
--- a/board/toradex/colibri-imx6ull/colibri-imx6ull.c
+++ b/board/toradex/colibri-imx6ull/colibri-imx6ull.c
@@ -1,8 +1,9 @@
 // SPDX-License-Identifier: GPL-2.0+
 /*
- * Copyright (C) 2018 Toradex AG
+ * Copyright (C) 2018-2019 Toradex AG
  */
 #include <common.h>
+
 #include <asm/arch/clock.h>
 #include <asm/arch/crm_regs.h>
 #include <asm/arch/imx-regs.h>
@@ -14,7 +15,6 @@
 #include <asm/mach-imx/boot_mode.h>
 #include <asm/mach-imx/iomux-v3.h>
 #include <asm/io.h>
-#include <common.h>
 #include <dm.h>
 #include <dm/platform_data/serial_mxc.h>
 #include <fdt_support.h>
@@ -28,25 +28,16 @@
 #include <netdev.h>
 #include <usb.h>
 #include <usb/ehci-ci.h>
+
 #include "../common/tdx-common.h"
 #include "../common/tdx-cfg-block.h"
 
 DECLARE_GLOBAL_DATA_PTR;
 
-#define UART_PAD_CTRL  (PAD_CTL_PUS_100K_UP |			\
-	PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm |			\
-	PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
-
 #define USDHC_PAD_CTRL (PAD_CTL_PUS_47K_UP |			\
 	PAD_CTL_SPEED_LOW | PAD_CTL_DSE_40ohm |			\
 	PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
 
-#define ENET_PAD_CTRL  (PAD_CTL_PUS_100K_UP |			\
-	PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
-#define ENET_PAD_CTRL_MII  (PAD_CTL_DSE_40ohm)
-
-#define ENET_RX_PAD_CTRL  (PAD_CTL_PUS_100K_UP | PAD_CTL_DSE_48ohm)
-
 #define LCD_PAD_CTRL    (PAD_CTL_HYS | PAD_CTL_PUS_100K_UP | \
 		PAD_CTL_DSE_48ohm)
 
@@ -65,13 +56,6 @@ int dram_init(void)
 	return 0;
 }
 
-static iomux_v3_cfg_t const uart1_pads[] = {
-	MX6_PAD_UART1_TX_DATA__UART1_DTE_RX	| MUX_PAD_CTRL(UART_PAD_CTRL),
-	MX6_PAD_UART1_RX_DATA__UART1_DTE_TX	| MUX_PAD_CTRL(UART_PAD_CTRL),
-	MX6_PAD_UART1_RTS_B__UART1_DTE_CTS	| MUX_PAD_CTRL(UART_PAD_CTRL),
-	MX6_PAD_UART1_CTS_B__UART1_DTE_RTS	| MUX_PAD_CTRL(UART_PAD_CTRL),
-};
-
 #ifdef CONFIG_FSL_ESDHC
 static iomux_v3_cfg_t const usdhc1_pads[] = {
 	MX6_PAD_SD1_CLK__USDHC1_CLK	| MUX_PAD_CTRL(USDHC_PAD_CTRL),
@@ -90,31 +74,12 @@ static iomux_v3_cfg_t const usb_cdet_pads[] = {
 };
 
 #ifdef CONFIG_NAND_MXS
-static iomux_v3_cfg_t const gpmi_pads[] = {
-	MX6_PAD_NAND_DATA00__RAWNAND_DATA00	| MUX_PAD_CTRL(NAND_PAD_CTRL),
-	MX6_PAD_NAND_DATA01__RAWNAND_DATA01	| MUX_PAD_CTRL(NAND_PAD_CTRL),
-	MX6_PAD_NAND_DATA02__RAWNAND_DATA02	| MUX_PAD_CTRL(NAND_PAD_CTRL),
-	MX6_PAD_NAND_DATA03__RAWNAND_DATA03	| MUX_PAD_CTRL(NAND_PAD_CTRL),
-	MX6_PAD_NAND_DATA04__RAWNAND_DATA04	| MUX_PAD_CTRL(NAND_PAD_CTRL),
-	MX6_PAD_NAND_DATA05__RAWNAND_DATA05	| MUX_PAD_CTRL(NAND_PAD_CTRL),
-	MX6_PAD_NAND_DATA06__RAWNAND_DATA06	| MUX_PAD_CTRL(NAND_PAD_CTRL),
-	MX6_PAD_NAND_DATA07__RAWNAND_DATA07	| MUX_PAD_CTRL(NAND_PAD_CTRL),
-	MX6_PAD_NAND_CLE__RAWNAND_CLE		| MUX_PAD_CTRL(NAND_PAD_CTRL),
-	MX6_PAD_NAND_ALE__RAWNAND_ALE		| MUX_PAD_CTRL(NAND_PAD_CTRL),
-	MX6_PAD_NAND_RE_B__RAWNAND_RE_B		| MUX_PAD_CTRL(NAND_PAD_CTRL),
-	MX6_PAD_NAND_WE_B__RAWNAND_WE_B		| MUX_PAD_CTRL(NAND_PAD_CTRL),
-	MX6_PAD_NAND_CE0_B__RAWNAND_CE0_B	| MUX_PAD_CTRL(NAND_PAD_CTRL),
-	MX6_PAD_NAND_READY_B__RAWNAND_READY_B	| MUX_PAD_CTRL(NAND_PAD_READY0_CTRL),
-};
-
 static void setup_gpmi_nand(void)
 {
-	imx_iomux_v3_setup_multiple_pads(gpmi_pads, ARRAY_SIZE(gpmi_pads));
-
 	setup_gpmi_io_clk((3 << MXC_CCM_CSCDR1_BCH_PODF_OFFSET) |
 			  (3 << MXC_CCM_CSCDR1_GPMI_PODF_OFFSET));
 }
-#endif
+#endif /* CONFIG_NAND_MXS */
 
 #ifdef CONFIG_VIDEO_MXS
 static iomux_v3_cfg_t const lcd_pads[] = {
@@ -170,31 +135,6 @@ static int setup_lcd(void)
 }
 #endif
 
-#ifdef CONFIG_FEC_MXC
-static iomux_v3_cfg_t const fec2_pads[] = {
-	MX6_PAD_ENET2_TX_CLK__ENET2_REF_CLK2		| MUX_PAD_CTRL(ENET_PAD_CTRL) | MUX_MODE_SION,
-	MX6_PAD_GPIO1_IO06__ENET2_MDIO			| MUX_PAD_CTRL(ENET_PAD_CTRL_MII),
-	MX6_PAD_GPIO1_IO07__ENET2_MDC			| MUX_PAD_CTRL(ENET_PAD_CTRL_MII),
-	MX6_PAD_ENET2_RX_DATA0__ENET2_RDATA00		| MUX_PAD_CTRL(ENET_RX_PAD_CTRL),
-	MX6_PAD_ENET2_RX_DATA1__ENET2_RDATA01		| MUX_PAD_CTRL(ENET_RX_PAD_CTRL),
-	MX6_PAD_ENET2_RX_ER__ENET2_RX_ER		| MUX_PAD_CTRL(ENET_RX_PAD_CTRL),
-	MX6_PAD_ENET2_RX_EN__ENET2_RX_EN		| MUX_PAD_CTRL(ENET_RX_PAD_CTRL),
-	MX6_PAD_ENET2_TX_DATA0__ENET2_TDATA00		| MUX_PAD_CTRL(ENET_PAD_CTRL),
-	MX6_PAD_ENET2_TX_DATA1__ENET2_TDATA01		| MUX_PAD_CTRL(ENET_PAD_CTRL),
-	MX6_PAD_ENET2_TX_EN__ENET2_TX_EN		| MUX_PAD_CTRL(ENET_PAD_CTRL),
-};
-
-static void setup_iomux_fec(void)
-{
-	imx_iomux_v3_setup_multiple_pads(fec2_pads, ARRAY_SIZE(fec2_pads));
-}
-#endif
-
-static void setup_iomux_uart(void)
-{
-	imx_iomux_v3_setup_multiple_pads(uart1_pads, ARRAY_SIZE(uart1_pads));
-}
-
 #ifdef CONFIG_FSL_ESDHC
 
 #define USDHC1_CD_GPIO	IMX_GPIO_NR(5, 0)
@@ -247,20 +187,17 @@ int board_mmc_init(bd_t *bis)
 #endif
 
 #ifdef CONFIG_FEC_MXC
-
 static int setup_fec(void)
 {
 	struct iomuxc *iomuxc_regs = (struct iomuxc *)IOMUXC_BASE_ADDR;
 	int ret;
 
-	setup_iomux_fec();
-
 	/* provide the PHY clock from the i.MX 6 */
 	ret = enable_fec_anatop_clock(1, ENET_50MHZ);
 	if (ret)
 		return ret;
 
-	/* Use 50M anatop REF_CLK and output it on the ENET2_TX_CLK */
+	/* Use 50M anatop REF_CLK and output it on ENET2_TX_CLK */
 	clrsetbits_le32(&iomuxc_regs->gpr[1],
 			IOMUX_GPR1_FEC2_CLOCK_MUX2_SEL_MASK,
 			IOMUX_GPR1_FEC2_CLOCK_MUX1_SEL_MASK);
@@ -277,14 +214,7 @@ int board_phy_config(struct phy_device *phydev)
 		phydev->drv->config(phydev);
 	return 0;
 }
-#endif
-
-int board_early_init_f(void)
-{
-	setup_iomux_uart();
-
-	return 0;
-}
+#endif /* CONFIG_FEC_MXC */
 
 int board_init(void)
 {
diff --git a/configs/colibri-imx6ull_defconfig b/configs/colibri-imx6ull_defconfig
index b19b3b7fb2..ce2c09338d 100644
--- a/configs/colibri-imx6ull_defconfig
+++ b/configs/colibri-imx6ull_defconfig
@@ -15,7 +15,6 @@ CONFIG_VERSION_VARIABLE=y
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_DISPLAY_BOARDINFO_LATE=y
 CONFIG_BOUNCE_BUFFER=y
-CONFIG_BOARD_EARLY_INIT_F=y
 CONFIG_SYS_PROMPT="Colibri iMX6ULL # "
 # CONFIG_CMD_ELF is not set
 # CONFIG_CMD_IMI is not set
@@ -24,9 +23,11 @@ CONFIG_CMD_ASKENV=y
 CONFIG_CRC32_VERIFY=y
 CONFIG_CMD_MEMTEST=y
 CONFIG_CMD_DFU=y
+CONFIG_CMD_DM=y
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_MMC=y
+CONFIG_CMD_MTD=y
 CONFIG_CMD_NAND_TRIMFFS=y
 CONFIG_CMD_NAND_TORTURE=y
 CONFIG_CMD_USB=y
@@ -34,6 +35,7 @@ CONFIG_CMD_USB_SDP=y
 CONFIG_CMD_USB_MASS_STORAGE=y
 CONFIG_CMD_BMP=y
 CONFIG_CMD_CACHE=y
+CONFIG_CMD_REGULATOR=y
 CONFIG_CMD_MTDPARTS=y
 CONFIG_MTDIDS_DEFAULT="nand0=gpmi-nand"
 CONFIG_MTDPARTS_DEFAULT="mtdparts=gpmi-nand:512k(mx6ull-bcb),1536k(u-boot1)ro,1536k(u-boot2)ro,512k(u-boot-env),-(ubi)"
@@ -63,6 +65,7 @@ CONFIG_MII=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX6=y
 CONFIG_DM_REGULATOR=y
+CONFIG_DM_REGULATOR_FIXED=y
 # CONFIG_SPL_SERIAL_PRESENT is not set
 CONFIG_DM_SERIAL=y
 CONFIG_MXC_UART=y
-- 
2.20.1

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

* [U-Boot] [PATCH v2 09/14] colibri-imx6ull: migrate mmc to using driver model
  2019-04-09 15:24 [U-Boot] [PATCH v2 00/14] colibri-imx6ull device tree enablement and driver model conversion Marcel Ziswiler
                   ` (7 preceding siblings ...)
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 08/14] colibri-imx6ull: migrate pinctrl and regulators to dtb/dm Marcel Ziswiler
@ 2019-04-09 15:24 ` Marcel Ziswiler
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 10/14] colibri-imx6ull: migrate usb " Marcel Ziswiler
                   ` (4 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-09 15:24 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Migrate MMC to using driver model.
Migrate USDHC to using pinctrl.
While at it also add GPIO1_IO03__OSC32K_32K_OUT pin muxing.
While at it also update copyright period.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v2:
- Added Igor's reviewed-by.

 arch/arm/dts/imx6ull-colibri.dts              | 15 +++-
 .../toradex/colibri-imx6ull/colibri-imx6ull.c | 70 -------------------
 configs/colibri-imx6ull_defconfig             |  1 +
 include/configs/colibri-imx6ull.h             |  6 +-
 4 files changed, 17 insertions(+), 75 deletions(-)

diff --git a/arch/arm/dts/imx6ull-colibri.dts b/arch/arm/dts/imx6ull-colibri.dts
index 95c67be438..0d416ebd10 100644
--- a/arch/arm/dts/imx6ull-colibri.dts
+++ b/arch/arm/dts/imx6ull-colibri.dts
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 /*
- * Copyright 2018 Toradex AG
+ * Copyright 2018-2019 Toradex AG
  */
 
 /dts-v1/;
@@ -11,6 +11,10 @@
 	model = "Toradex Colibri iMX6ULL";
 	compatible = "toradex,imx6ull-colibri", "fsl,imx6ull";
 
+	aliases {
+		mmc0 = &usdhc1;
+	};
+
 	chosen {
 		stdout-path = &uart1;
 	};
@@ -190,10 +194,18 @@
 	dr_mode = "host";
 };
 
+/* Colibri MMC */
 &usdhc1 {
 	assigned-clocks = <&clks IMX6UL_CLK_USDHC1_SEL>, <&clks IMX6UL_CLK_USDHC1>;
 	assigned-clock-parents = <&clks IMX6UL_CLK_PLL2_PFD2>;
 	assigned-clock-rates = <0>, <198000000>;
+	cd-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>; /* MMC_CD */
+	pinctrl-names = "default", "state_100mhz", "state_200mhz";
+	pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_snvs_usdhc1_cd>;
+	pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
+	pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
+	vmmc-supply = <&reg_sd1_vmmc>;
+	status = "okay";
 };
 
 &iomuxc {
@@ -547,4 +559,3 @@
 		>;
 	};
 };
-
diff --git a/board/toradex/colibri-imx6ull/colibri-imx6ull.c b/board/toradex/colibri-imx6ull/colibri-imx6ull.c
index 8493b1dfdd..c9af44e30e 100644
--- a/board/toradex/colibri-imx6ull/colibri-imx6ull.c
+++ b/board/toradex/colibri-imx6ull/colibri-imx6ull.c
@@ -18,11 +18,9 @@
 #include <dm.h>
 #include <dm/platform_data/serial_mxc.h>
 #include <fdt_support.h>
-#include <fsl_esdhc.h>
 #include <imx_thermal.h>
 #include <jffs2/load_kernel.h>
 #include <linux/sizes.h>
-#include <mmc.h>
 #include <miiphy.h>
 #include <mtd_node.h>
 #include <netdev.h>
@@ -34,10 +32,6 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
-#define USDHC_PAD_CTRL (PAD_CTL_PUS_47K_UP |			\
-	PAD_CTL_SPEED_LOW | PAD_CTL_DSE_40ohm |			\
-	PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
-
 #define LCD_PAD_CTRL    (PAD_CTL_HYS | PAD_CTL_PUS_100K_UP | \
 		PAD_CTL_DSE_48ohm)
 
@@ -56,19 +50,6 @@ int dram_init(void)
 	return 0;
 }
 
-#ifdef CONFIG_FSL_ESDHC
-static iomux_v3_cfg_t const usdhc1_pads[] = {
-	MX6_PAD_SD1_CLK__USDHC1_CLK	| MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD1_CMD__USDHC1_CMD	| MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD1_DATA0__USDHC1_DATA0	| MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD1_DATA1__USDHC1_DATA1	| MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD1_DATA2__USDHC1_DATA2	| MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD1_DATA3__USDHC1_DATA3	| MUX_PAD_CTRL(USDHC_PAD_CTRL),
-
-	MX6_PAD_SNVS_TAMPER0__GPIO5_IO00 | MUX_PAD_CTRL(NO_PAD_CTRL),
-};
-#endif
-
 static iomux_v3_cfg_t const usb_cdet_pads[] = {
 	MX6_PAD_SNVS_TAMPER2__GPIO5_IO02 | MUX_PAD_CTRL(NO_PAD_CTRL),
 };
@@ -135,57 +116,6 @@ static int setup_lcd(void)
 }
 #endif
 
-#ifdef CONFIG_FSL_ESDHC
-
-#define USDHC1_CD_GPIO	IMX_GPIO_NR(5, 0)
-
-static struct fsl_esdhc_cfg usdhc_cfg[] = {
-	{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;
-
-	/* USDHC1 is mmc0 */
-	for (i = 0; i < CONFIG_SYS_FSL_USDHC_NUM; i++) {
-		switch (i) {
-		case 0:
-			imx_iomux_v3_setup_multiple_pads(usdhc1_pads,
-							 ARRAY_SIZE(usdhc1_pads));
-			gpio_request(USDHC1_CD_GPIO, "usdhc1_cd");
-			gpio_direction_input(USDHC1_CD_GPIO);
-			usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK);
-			break;
-		default:
-			printf("Warning: you configured more USDHC controllers"
-				"(%d) than supported by the board\n", i + 1);
-			return -EINVAL;
-		}
-
-		ret = fsl_esdhc_initialize(bis, &usdhc_cfg[i]);
-		if (ret)
-			return ret;
-	}
-
-	return 0;
-}
-#endif
-
 #ifdef CONFIG_FEC_MXC
 static int setup_fec(void)
 {
diff --git a/configs/colibri-imx6ull_defconfig b/configs/colibri-imx6ull_defconfig
index ce2c09338d..69305323f2 100644
--- a/configs/colibri-imx6ull_defconfig
+++ b/configs/colibri-imx6ull_defconfig
@@ -50,6 +50,7 @@ CONFIG_DFU_NAND=y
 CONFIG_DM_GPIO=y
 CONFIG_DM_I2C=y
 CONFIG_SYS_I2C_MXC=y
+CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_MTD=y
 CONFIG_NAND=y
diff --git a/include/configs/colibri-imx6ull.h b/include/configs/colibri-imx6ull.h
index 31248b14a1..7a7a70e457 100644
--- a/include/configs/colibri-imx6ull.h
+++ b/include/configs/colibri-imx6ull.h
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0+ */
 /*
- * Copyright 2018 Toradex AG
+ * Copyright 2018-2019 Toradex AG
  *
  * Configuration settings for the Colibri iMX6ULL module.
  *
@@ -30,7 +30,7 @@
 /* ENET1 */
 #define IMX_FEC_BASE			ENET2_BASE_ADDR
 
-/* MMC Config*/
+/* MMC Config */
 #define CONFIG_SYS_FSL_ESDHC_ADDR	0
 #define CONFIG_SYS_FSL_USDHC_NUM	1
 
@@ -182,4 +182,4 @@
 #define CONFIG_VIDEO_BMP_LOGO
 #endif
 
-#endif
+#endif /* __COLIBRI_IMX6ULL_CONFIG_H */
-- 
2.20.1

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

* [U-Boot] [PATCH v2 10/14] colibri-imx6ull: migrate usb to using driver model
  2019-04-09 15:24 [U-Boot] [PATCH v2 00/14] colibri-imx6ull device tree enablement and driver model conversion Marcel Ziswiler
                   ` (8 preceding siblings ...)
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 09/14] colibri-imx6ull: migrate mmc to using driver model Marcel Ziswiler
@ 2019-04-09 15:24 ` Marcel Ziswiler
  2019-04-17  7:58   ` Igor Opaniuk
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 11/14] colibri-imx6ull: migrate fec " Marcel Ziswiler
                   ` (3 subsequent siblings)
  13 siblings, 1 reply; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-09 15:24 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Migrate USB to using driver model.
Add USBH_PEN GPIO regulator.
While at it also add alias e.g. as required for UMS.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v2:
- Added Igor's reviewed-by.

 arch/arm/dts/imx6ull-colibri.dts              | 24 ++++++++++
 .../toradex/colibri-imx6ull/colibri-imx6ull.c | 48 -------------------
 configs/colibri-imx6ull_defconfig             |  1 +
 3 files changed, 25 insertions(+), 48 deletions(-)

diff --git a/arch/arm/dts/imx6ull-colibri.dts b/arch/arm/dts/imx6ull-colibri.dts
index 0d416ebd10..91e48aab61 100644
--- a/arch/arm/dts/imx6ull-colibri.dts
+++ b/arch/arm/dts/imx6ull-colibri.dts
@@ -13,6 +13,7 @@
 
 	aliases {
 		mmc0 = &usdhc1;
+		usb0 = &usbotg1; /* required for ums */
 	};
 
 	chosen {
@@ -35,6 +36,13 @@
 		regulator-max-microvolt = <3300000>;
 	};
 
+	reg_5v0: regulator-5v0 {
+		compatible = "regulator-fixed";
+		regulator-name = "5V";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+	};
+
 	reg_sd1_vmmc: regulator-sd1-vmmc {
 		compatible = "regulator-gpio";
 		gpio = <&gpio5 9 GPIO_ACTIVE_HIGH>;
@@ -47,6 +55,17 @@
 		states = <1800000 0x1 3300000 0x0>;
 		vin-supply = <&reg_module_3v3>;
 	};
+
+	reg_usbh_vbus: regulator-usbh-vbus {
+		compatible = "regulator-fixed";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_usbh_reg>;
+		regulator-name = "VCC_USB[1-4]";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpio = <&gpio1 2 GPIO_ACTIVE_LOW>; /* USBH_PEN */
+		vin-supply = <&reg_5v0>;
+	};
 };
 
 &adc1 {
@@ -183,15 +202,20 @@
 	fsl,dte-mode;
 };
 
+/* Colibri USBC */
 &usbotg1 {
 	dr_mode = "otg";
 	srp-disable;
 	hnp-disable;
 	adp-disable;
+	status = "okay";
 };
 
+/* Colibri USBH */
 &usbotg2 {
 	dr_mode = "host";
+	vbus-supply = <&reg_usbh_vbus>;
+	status = "okay";
 };
 
 /* Colibri MMC */
diff --git a/board/toradex/colibri-imx6ull/colibri-imx6ull.c b/board/toradex/colibri-imx6ull/colibri-imx6ull.c
index c9af44e30e..21addaf6ed 100644
--- a/board/toradex/colibri-imx6ull/colibri-imx6ull.c
+++ b/board/toradex/colibri-imx6ull/colibri-imx6ull.c
@@ -24,8 +24,6 @@
 #include <miiphy.h>
 #include <mtd_node.h>
 #include <netdev.h>
-#include <usb.h>
-#include <usb/ehci-ci.h>
 
 #include "../common/tdx-common.h"
 #include "../common/tdx-cfg-block.h"
@@ -41,8 +39,6 @@ DECLARE_GLOBAL_DATA_PTR;
 
 #define NAND_PAD_READY0_CTRL (PAD_CTL_DSE_48ohm | PAD_CTL_PUS_22K_UP)
 
-#define USB_CDET_GPIO	IMX_GPIO_NR(7, 14)
-
 int dram_init(void)
 {
 	gd->ram_size = get_ram_size((void *)PHYS_SDRAM, PHYS_SDRAM_SIZE);
@@ -50,10 +46,6 @@ int dram_init(void)
 	return 0;
 }
 
-static iomux_v3_cfg_t const usb_cdet_pads[] = {
-	MX6_PAD_SNVS_TAMPER2__GPIO5_IO02 | MUX_PAD_CTRL(NO_PAD_CTRL),
-};
-
 #ifdef CONFIG_NAND_MXS
 static void setup_gpmi_nand(void)
 {
@@ -163,11 +155,6 @@ int board_init(void)
 	setup_lcd();
 #endif
 
-#ifdef CONFIG_USB_EHCI_MX6
-	imx_iomux_v3_setup_multiple_pads(usb_cdet_pads, ARRAY_SIZE(usb_cdet_pads));
-	gpio_request(USB_CDET_GPIO, "usb-cdet-gpio");
-#endif
-
 	return 0;
 }
 
@@ -241,41 +228,6 @@ int ft_board_setup(void *blob, bd_t *bd)
 }
 #endif
 
-#ifdef CONFIG_USB_EHCI_MX6
-static iomux_v3_cfg_t const usb_otg2_pads[] = {
-		MX6_PAD_GPIO1_IO02__GPIO1_IO02 | MUX_PAD_CTRL(NO_PAD_CTRL),
-};
-
-int board_ehci_hcd_init(int port)
-{
-	switch (port) {
-	case 0:
-		break;
-	case 1:
-		imx_iomux_v3_setup_multiple_pads(usb_otg2_pads,
-						 ARRAY_SIZE(usb_otg2_pads));
-		break;
-	default:
-		return -EINVAL;
-	}
-	return 0;
-}
-
-int board_usb_phy_mode(int port)
-{
-	switch (port) {
-	case 0:
-		if (gpio_get_value(USB_CDET_GPIO))
-			return USB_INIT_DEVICE;
-		else
-			return USB_INIT_HOST;
-	case 1:
-	default:
-		return USB_INIT_HOST;
-	}
-}
-#endif
-
 static struct mxc_serial_platdata mxc_serial_plat = {
 	.reg = (struct mxc_uart *)UART1_BASE,
 	.use_dte = 1,
diff --git a/configs/colibri-imx6ull_defconfig b/configs/colibri-imx6ull_defconfig
index 69305323f2..0440b4ed94 100644
--- a/configs/colibri-imx6ull_defconfig
+++ b/configs/colibri-imx6ull_defconfig
@@ -71,6 +71,7 @@ CONFIG_DM_REGULATOR_FIXED=y
 CONFIG_DM_SERIAL=y
 CONFIG_MXC_UART=y
 CONFIG_USB=y
+CONFIG_DM_USB=y
 CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_MANUFACTURER="Toradex"
 CONFIG_USB_GADGET_VENDOR_NUM=0x1b67
-- 
2.20.1

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

* [U-Boot] [PATCH v2 11/14] colibri-imx6ull: migrate fec to using driver model
  2019-04-09 15:24 [U-Boot] [PATCH v2 00/14] colibri-imx6ull device tree enablement and driver model conversion Marcel Ziswiler
                   ` (9 preceding siblings ...)
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 10/14] colibri-imx6ull: migrate usb " Marcel Ziswiler
@ 2019-04-09 15:24 ` Marcel Ziswiler
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 12/14] ARM: dts: colibri-imx6ull: fix uart-has-rtscts property Marcel Ziswiler
                   ` (2 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-09 15:24 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Migrate Ethernet FEC to using driver model.
Drop PHY_MICREL_KSZ90X1 which slipped in from Apalis iMX6.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v2:
- Added Igor's reviewed-by.

 arch/arm/dts/imx6ull-colibri.dts  | 31 ++++++++++++++++---------------
 configs/colibri-imx6ull_defconfig |  3 +--
 include/configs/colibri-imx6ull.h |  4 ----
 3 files changed, 17 insertions(+), 21 deletions(-)

diff --git a/arch/arm/dts/imx6ull-colibri.dts b/arch/arm/dts/imx6ull-colibri.dts
index 91e48aab61..2f8865c29c 100644
--- a/arch/arm/dts/imx6ull-colibri.dts
+++ b/arch/arm/dts/imx6ull-colibri.dts
@@ -80,6 +80,7 @@
 	pinctrl-0 = <&pinctrl_ecspi1 &pinctrl_ecspi1_cs>;
 };
 
+/* Ethernet */
 &fec2 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_enet2>;
@@ -233,6 +234,21 @@
 };
 
 &iomuxc {
+	pinctrl_enet2: enet2-grp {
+		fsl,pins = <
+			MX6UL_PAD_GPIO1_IO06__ENET2_MDIO	0x1b0b0
+			MX6UL_PAD_GPIO1_IO07__ENET2_MDC		0x1b0b0
+			MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00	0x1b0b0
+			MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01	0x1b0b0
+			MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN	0x1b0b0
+			MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER	0x1b0b0
+			MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2	0x4001b031
+			MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00	0x1b0b0
+			MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01	0x1b0b0
+			MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN	0x1b0b0
+		>;
+	};
+
 	pinctrl_gpio1: gpio1-grp {
 		fsl,pins = <
 			MX6UL_PAD_ENET1_RX_DATA0__GPIO2_IO00	0x74 /* SODIMM 55 */
@@ -295,21 +311,6 @@
 		>;
 	};
 
-	pinctrl_enet2: enet2-grp {
-		fsl,pins = <
-			MX6UL_PAD_GPIO1_IO06__ENET2_MDIO	0x1b0b0
-			MX6UL_PAD_GPIO1_IO07__ENET2_MDC		0x1b0b0
-			MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00	0x1b0b0
-			MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01	0x1b0b0
-			MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN	0x1b0b0
-			MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER	0x1b0b0
-			MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2	0x4001b031
-			MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00	0x1b0b0
-			MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01	0x1b0b0
-			MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN	0x1b0b0
-		>;
-	};
-
 	pinctrl_ecspi1_cs: ecspi1-cs-grp {
 		fsl,pins = <
 			MX6UL_PAD_LCD_DATA21__GPIO3_IO26	0x000a0
diff --git a/configs/colibri-imx6ull_defconfig b/configs/colibri-imx6ull_defconfig
index 0440b4ed94..a24c87f321 100644
--- a/configs/colibri-imx6ull_defconfig
+++ b/configs/colibri-imx6ull_defconfig
@@ -58,9 +58,8 @@ CONFIG_NAND_MXS=y
 CONFIG_NAND_MXS_DT=y
 CONFIG_MTD_UBI_FASTMAP=y
 CONFIG_PHYLIB=y
-CONFIG_PHY_ADDR_ENABLE=y
 CONFIG_PHY_MICREL=y
-CONFIG_PHY_MICREL_KSZ90X1=y
+CONFIG_DM_ETH=y
 CONFIG_FEC_MXC=y
 CONFIG_MII=y
 CONFIG_PINCTRL=y
diff --git a/include/configs/colibri-imx6ull.h b/include/configs/colibri-imx6ull.h
index 7a7a70e457..fc39e807b6 100644
--- a/include/configs/colibri-imx6ull.h
+++ b/include/configs/colibri-imx6ull.h
@@ -19,10 +19,6 @@
 #define CONFIG_SYS_MALLOC_LEN		(32 * SZ_1M)
 
 /* Network */
-#define CONFIG_FEC_XCV_TYPE             RMII
-#define CONFIG_ETHPRIME                 "FEC"
-#define CONFIG_FEC_MXC_PHYADDR		0
-
 #define CONFIG_IP_DEFRAG
 #define CONFIG_TFTP_BLOCKSIZE		16352
 #define CONFIG_TFTP_TSIZE
-- 
2.20.1

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

* [U-Boot] [PATCH v2 12/14] ARM: dts: colibri-imx6ull: fix uart-has-rtscts property
  2019-04-09 15:24 [U-Boot] [PATCH v2 00/14] colibri-imx6ull device tree enablement and driver model conversion Marcel Ziswiler
                   ` (10 preceding siblings ...)
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 11/14] colibri-imx6ull: migrate fec " Marcel Ziswiler
@ 2019-04-09 15:24 ` Marcel Ziswiler
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 13/14] ARM: dts: colibri-imx6ull: add osc32k_32k_out pinctrl Marcel Ziswiler
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 14/14] ARM: dts: colibri-imx6ull: update device tree Marcel Ziswiler
  13 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-09 15:24 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Remove vendor pre-fix fsl, from uart-has-rtscts property.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v2:
- Added Igor's reviewed-by.

 arch/arm/dts/imx6ull-colibri.dts | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/arch/arm/dts/imx6ull-colibri.dts b/arch/arm/dts/imx6ull-colibri.dts
index 2f8865c29c..f05c72eb2c 100644
--- a/arch/arm/dts/imx6ull-colibri.dts
+++ b/arch/arm/dts/imx6ull-colibri.dts
@@ -182,21 +182,24 @@
 	status = "disabled";
 };
 
+/* Colibri UART_A */
 &uart1 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_uart1 &pinctrl_uart1_ctrl1>;
-	fsl,uart-has-rtscts;
+	uart-has-rtscts;
 	fsl,dte-mode;
 	status = "okay";
 };
 
+/* Colibri UART_B */
 &uart2 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_uart2>;
-	fsl,uart-has-rtscts;
+	uart-has-rtscts;
 	fsl,dte-mode;
 };
 
+/* Colibri UART_C */
 &uart5 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_uart5>;
-- 
2.20.1

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

* [U-Boot] [PATCH v2 13/14] ARM: dts: colibri-imx6ull: add osc32k_32k_out pinctrl
  2019-04-09 15:24 [U-Boot] [PATCH v2 00/14] colibri-imx6ull device tree enablement and driver model conversion Marcel Ziswiler
                   ` (11 preceding siblings ...)
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 12/14] ARM: dts: colibri-imx6ull: fix uart-has-rtscts property Marcel Ziswiler
@ 2019-04-09 15:24 ` Marcel Ziswiler
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 14/14] ARM: dts: colibri-imx6ull: update device tree Marcel Ziswiler
  13 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-09 15:24 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Add GPIO1_IO03__OSC32K_32K_OUT pin muxing.
While at it also fix indentation of pinfunc header file.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v2:
- Added Igor's reviewed-by.

 arch/arm/dts/imx6ull-colibri.dts |  2 ++
 arch/arm/dts/imx6ull-pinfunc.h   | 26 ++++++++++++++------------
 2 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/arch/arm/dts/imx6ull-colibri.dts b/arch/arm/dts/imx6ull-colibri.dts
index f05c72eb2c..84f70deaa1 100644
--- a/arch/arm/dts/imx6ull-colibri.dts
+++ b/arch/arm/dts/imx6ull-colibri.dts
@@ -524,6 +524,8 @@
 			MX6UL_PAD_CSI_DATA03__USDHC2_DATA3	0x17059
 			MX6UL_PAD_CSI_HSYNC__USDHC2_CMD		0x17059
 			MX6UL_PAD_CSI_VSYNC__USDHC2_CLK		0x17059
+
+			MX6UL_PAD_GPIO1_IO03__OSC32K_32K_OUT	0x14
 		>;
 	};
 };
diff --git a/arch/arm/dts/imx6ull-pinfunc.h b/arch/arm/dts/imx6ull-pinfunc.h
index fca003680b..7770ed39f6 100644
--- a/arch/arm/dts/imx6ull-pinfunc.h
+++ b/arch/arm/dts/imx6ull-pinfunc.h
@@ -14,6 +14,8 @@
  * The pin function ID is a tuple of
  * <mux_reg conf_reg input_reg mux_mode input_val>
  */
+#define MX6UL_PAD_GPIO1_IO03__OSC32K_32K_OUT                     0x0068 0x02f4 0x0000 0x3 0x0
+
 #define MX6UL_PAD_ENET2_RX_DATA0__EPDC_SDDO08                    0x00E4 0x0370 0x0000 0x9 0x0
 #define MX6UL_PAD_ENET2_RX_DATA1__EPDC_SDDO09                    0x00E8 0x0374 0x0000 0x9 0x0
 #define MX6UL_PAD_ENET2_RX_EN__EPDC_SDDO10                       0x00EC 0x0378 0x0000 0x9 0x0
@@ -41,17 +43,17 @@
 #define MX6UL_PAD_LCD_DATA17__EPDC_GDSP                          0x015C 0x03E8 0x0000 0x9 0x0
 #define MX6UL_PAD_LCD_DATA21__EPDC_SDCE1                         0x016C 0x03F8 0x0000 0x9 0x0
 
-#define MX6UL_PAD_CSI_MCLK__ESAI_TX3_RX2                          0x01D4 0x0460 0x0000 0x9 0x0
-#define MX6UL_PAD_CSI_PIXCLK__ESAI_TX2_RX3                        0x01D8 0x0464 0x0000 0x9 0x0
-#define MX6UL_PAD_CSI_VSYNC__ESAI_TX4_RX1                         0x01DC 0x0468 0x0000 0x9 0x0
-#define MX6UL_PAD_CSI_HSYNC__ESAI_TX1                             0x01E0 0x046C 0x0000 0x9 0x0
-#define MX6UL_PAD_CSI_DATA00__ESAI_TX_HF_CLK                      0x01E4 0x0470 0x0000 0x9 0x0
-#define MX6UL_PAD_CSI_DATA01__ESAI_RX_HF_CLK                      0x01E8 0x0474 0x0000 0x9 0x0
-#define MX6UL_PAD_CSI_DATA02__ESAI_RX_FS                          0x01EC 0x0478 0x0000 0x9 0x0
-#define MX6UL_PAD_CSI_DATA03__ESAI_RX_CLK                         0x01F0 0x047C 0x0000 0x9 0x0
-#define MX6UL_PAD_CSI_DATA04__ESAI_TX_FS                          0x01F4 0x0480 0x0000 0x9 0x0
-#define MX6UL_PAD_CSI_DATA05__ESAI_TX_CLK                         0x01F8 0x0484 0x0000 0x9 0x0
-#define MX6UL_PAD_CSI_DATA06__ESAI_TX5_RX0                        0x01FC 0x0488 0x0000 0x9 0x0
-#define MX6UL_PAD_CSI_DATA07__ESAI_T0                             0x0200 0x048C 0x0000 0x9 0x0
+#define MX6UL_PAD_CSI_MCLK__ESAI_TX3_RX2                         0x01D4 0x0460 0x0000 0x9 0x0
+#define MX6UL_PAD_CSI_PIXCLK__ESAI_TX2_RX3                       0x01D8 0x0464 0x0000 0x9 0x0
+#define MX6UL_PAD_CSI_VSYNC__ESAI_TX4_RX1                        0x01DC 0x0468 0x0000 0x9 0x0
+#define MX6UL_PAD_CSI_HSYNC__ESAI_TX1                            0x01E0 0x046C 0x0000 0x9 0x0
+#define MX6UL_PAD_CSI_DATA00__ESAI_TX_HF_CLK                     0x01E4 0x0470 0x0000 0x9 0x0
+#define MX6UL_PAD_CSI_DATA01__ESAI_RX_HF_CLK                     0x01E8 0x0474 0x0000 0x9 0x0
+#define MX6UL_PAD_CSI_DATA02__ESAI_RX_FS                         0x01EC 0x0478 0x0000 0x9 0x0
+#define MX6UL_PAD_CSI_DATA03__ESAI_RX_CLK                        0x01F0 0x047C 0x0000 0x9 0x0
+#define MX6UL_PAD_CSI_DATA04__ESAI_TX_FS                         0x01F4 0x0480 0x0000 0x9 0x0
+#define MX6UL_PAD_CSI_DATA05__ESAI_TX_CLK                        0x01F8 0x0484 0x0000 0x9 0x0
+#define MX6UL_PAD_CSI_DATA06__ESAI_TX5_RX0                       0x01FC 0x0488 0x0000 0x9 0x0
+#define MX6UL_PAD_CSI_DATA07__ESAI_T0                            0x0200 0x048C 0x0000 0x9 0x0
 
 #endif /* __DTS_IMX6ULL_PINFUNC_H */
-- 
2.20.1

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

* [U-Boot] [PATCH v2 14/14] ARM: dts: colibri-imx6ull: update device tree
  2019-04-09 15:24 [U-Boot] [PATCH v2 00/14] colibri-imx6ull device tree enablement and driver model conversion Marcel Ziswiler
                   ` (12 preceding siblings ...)
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 13/14] ARM: dts: colibri-imx6ull: add osc32k_32k_out pinctrl Marcel Ziswiler
@ 2019-04-09 15:24 ` Marcel Ziswiler
  13 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-09 15:24 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Fix compatible node to use regular Toradex notation.
Annotate device tree with standard Colibri pin muxing comments.
Use open-drain I2C pin muxings.
Alphabetically re-order iomuxc nodes.
Rename 	snvs-ad7879-int-grp touch interrupt node as per Linux device tree.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v2:
- Added Igor's reviewed-by.

 arch/arm/dts/imx6ull-colibri.dts | 91 ++++++++++++++++++--------------
 1 file changed, 52 insertions(+), 39 deletions(-)

diff --git a/arch/arm/dts/imx6ull-colibri.dts b/arch/arm/dts/imx6ull-colibri.dts
index 84f70deaa1..4196cbdf22 100644
--- a/arch/arm/dts/imx6ull-colibri.dts
+++ b/arch/arm/dts/imx6ull-colibri.dts
@@ -9,7 +9,7 @@
 
 / {
 	model = "Toradex Colibri iMX6ULL";
-	compatible = "toradex,imx6ull-colibri", "fsl,imx6ull";
+	compatible = "toradex,colibri-imx6ull", "fsl,imx6ull";
 
 	aliases {
 		mmc0 = &usdhc1;
@@ -100,6 +100,7 @@
 	};
 };
 
+/* NAND */
 &gpmi {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_gpmi_nand>;
@@ -110,21 +111,28 @@
 	status = "okay";
 };
 
+/*
+ * I2C3_SDA/SCL on SODIMM 194/196 (e.g. RTC on carrier board)
+ */
 &i2c1 {
 	pinctrl-names = "default", "gpio";
 	pinctrl-0 = <&pinctrl_i2c1>;
 	pinctrl-1 = <&pinctrl_i2c1_gpio>;
-	sda-gpios = <&gpio1 29 GPIO_ACTIVE_LOW>;
-	scl-gpios = <&gpio1 28 GPIO_ACTIVE_LOW>;
+	sda-gpios = <&gpio1 29 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+	scl-gpios = <&gpio1 28 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
 	status = "okay";
 };
 
+/*
+ * PWR_I2C: power I2C to audio codec, PMIC, temperature sensor and
+ * touch screen controller
+ */
 &i2c2 {
 	pinctrl-names = "default", "gpio";
 	pinctrl-0 = <&pinctrl_i2c2>;
 	pinctrl-1 = <&pinctrl_i2c2_gpio>;
-	sda-gpios = <&gpio1 31 GPIO_ACTIVE_LOW>;
-	scl-gpios = <&gpio1 30 GPIO_ACTIVE_LOW>;
+	sda-gpios = <&gpio1 31 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+	scl-gpios = <&gpio1 30 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
 	status = "okay";
 
 	ad7879 at 2c {
@@ -150,24 +158,28 @@
 		     &pinctrl_lcdif_ctrl>;
 };
 
+/* PWM <A> */
 &pwm4 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm4>;
 	#pwm-cells = <3>;
 };
 
+/* PWM <B> */
 &pwm5 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm5>;
 	#pwm-cells = <3>;
 };
 
+/* PWM <C> */
 &pwm6 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm6>;
 	#pwm-cells = <3>;
 };
 
+/* PWM <D> */
 &pwm7 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm7>;
@@ -237,6 +249,13 @@
 };
 
 &iomuxc {
+	pinctrl_can_int: canint-grp {
+		fsl,pins = <
+			/* SODIMM 73 */
+			MX6UL_PAD_ENET1_TX_DATA1__GPIO2_IO04	0X14
+		>;
+	};
+
 	pinctrl_enet2: enet2-grp {
 		fsl,pins = <
 			MX6UL_PAD_GPIO1_IO06__ENET2_MDIO	0x1b0b0
@@ -252,6 +271,33 @@
 		>;
 	};
 
+	pinctrl_ecspi1_cs: ecspi1-cs-grp {
+		fsl,pins = <
+			MX6UL_PAD_LCD_DATA21__GPIO3_IO26	0x000a0
+		>;
+	};
+
+	pinctrl_ecspi1: ecspi1-grp {
+		fsl,pins = <
+			MX6UL_PAD_LCD_DATA20__ECSPI1_SCLK	0x000a0
+			MX6UL_PAD_LCD_DATA22__ECSPI1_MOSI	0x000a0
+			MX6UL_PAD_LCD_DATA23__ECSPI1_MISO	0x100a0
+		>;
+	};
+
+	pinctrl_flexcan2: flexcan2-grp {
+		fsl,pins = <
+			MX6UL_PAD_ENET1_TX_DATA0__FLEXCAN2_RX	0x1b020
+			MX6UL_PAD_ENET1_RX_EN__FLEXCAN2_TX	0x1b020
+		>;
+	};
+
+	pinctrl_gpio_bl_on: gpio-bl-on-grp {
+		fsl,pins = <
+			MX6UL_PAD_JTAG_TMS__GPIO1_IO11		0x000a0
+		>;
+	};
+
 	pinctrl_gpio1: gpio1-grp {
 		fsl,pins = <
 			MX6UL_PAD_ENET1_RX_DATA0__GPIO2_IO00	0x74 /* SODIMM 55 */
@@ -308,39 +354,6 @@
 		>;
 	};
 
-	pinctrl_can_int: canint-grp {
-		fsl,pins = <
-			MX6UL_PAD_ENET1_TX_DATA1__GPIO2_IO04	0X14 /* SODIMM 73 */
-		>;
-	};
-
-	pinctrl_ecspi1_cs: ecspi1-cs-grp {
-		fsl,pins = <
-			MX6UL_PAD_LCD_DATA21__GPIO3_IO26	0x000a0
-		>;
-	};
-
-	pinctrl_ecspi1: ecspi1-grp {
-		fsl,pins = <
-			MX6UL_PAD_LCD_DATA20__ECSPI1_SCLK	0x000a0
-			MX6UL_PAD_LCD_DATA22__ECSPI1_MOSI	0x000a0
-			MX6UL_PAD_LCD_DATA23__ECSPI1_MISO	0x100a0
-		>;
-	};
-
-	pinctrl_flexcan2: flexcan2-grp {
-		fsl,pins = <
-			MX6UL_PAD_ENET1_TX_DATA0__FLEXCAN2_RX	0x1b020
-			MX6UL_PAD_ENET1_RX_EN__FLEXCAN2_TX	0x1b020
-		>;
-	};
-
-	pinctrl_gpio_bl_on: gpio-bl-on-grp {
-		fsl,pins = <
-			MX6UL_PAD_JTAG_TMS__GPIO1_IO11		0x000a0
-		>;
-	};
-
 	pinctrl_gpmi_nand: gpmi-nand-grp {
 		fsl,pins = <
 			MX6UL_PAD_NAND_DATA00__RAWNAND_DATA00	0x100a9
@@ -553,7 +566,7 @@
 		>;
 	};
 
-	pinctrl_snvs_ad7879_int: snvs-ad7879-int { /* TOUCH Interrupt */
+	pinctrl_snvs_ad7879_int: snvs-ad7879-int-grp { /* TOUCH Interrupt */
 		fsl,pins = <
 			MX6ULL_PAD_SNVS_TAMPER7__GPIO5_IO07	0x1b0b0
 		>;
-- 
2.20.1

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

* [U-Boot] [PATCH v2 0/5] colibri imx8qxp 2gb wb it v1.0b module support
@ 2019-04-09 15:25 Marcel Ziswiler
  2019-04-09 15:25 ` [U-Boot] [PATCH v2 1/5] misc: imx8: remove duplicates from scfw api Marcel Ziswiler
                   ` (4 more replies)
  0 siblings, 5 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-09 15:25 UTC (permalink / raw)
  To: u-boot


This series fixes the i.MX 8QXP SCFW API header file, adds support for
more lpuart instances, cleans-up and extends the Toradex SKU handling
and last but not least introduces support for the Toradex Colibri
iMX8QXP 2GB WB IT V1.0B module.

This series is available together with my previous series addressing
Apalis and Colibri iMX6 as well as Colibri Vybrid aka VF50/VF61 and
Colibri iMX6ULL on our git server [1].

[1] http://git.toradex.com/cgit/u-boot-toradex.git/log/?h=for-next

Changes in v2:
- Added Peng and Igor's reviewed-by.
- Added Peng and Igor's reviewed-by.
- Added Igor's reviewed-by.
- Added Igor's reviewed-by.
- Changed imx-atf git clone command to include initial branch
  information as suggested by Igor.
- Sorted board file includes alphabetically as suggested by Igor.
- Got rid of SPL configuration in legacy header file as suggested by
  Igor and the whole use of SPL on i.MX 8X anyway neither works well
  nor makes any much sense at all.

Marcel Ziswiler (5):
  misc: imx8: remove duplicates from scfw api
  arm: dts: imx8dx: add lpuart1, lpuart2, lpuart3
  board: toradex: tdx-cfg-block: clean-up sku handling
  board: toradex: tdx-cfg-block: add new skus
  board: toradex: add colibri imx8qxp 2gb wb it v1.0b module support

 arch/arm/dts/Makefile                         |   4 +-
 arch/arm/dts/fsl-imx8dx.dtsi                  |  54 +++
 arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi  | 112 ++++++
 arch/arm/dts/fsl-imx8qxp-colibri.dts          | 328 ++++++++++++++++++
 arch/arm/include/asm/arch-imx8/sci/sci.h      |   4 -
 arch/arm/mach-imx/imx8/Kconfig                |   6 +
 board/toradex/colibri-imx8qxp/Kconfig         |  30 ++
 board/toradex/colibri-imx8qxp/MAINTAINERS     |   9 +
 board/toradex/colibri-imx8qxp/Makefile        |   7 +
 board/toradex/colibri-imx8qxp/README          |  66 ++++
 .../toradex/colibri-imx8qxp/colibri-imx8qxp.c | 212 +++++++++++
 board/toradex/colibri-imx8qxp/imximage.cfg    |  24 ++
 board/toradex/common/tdx-cfg-block.c          |  19 +-
 board/toradex/common/tdx-cfg-block.h          |  29 +-
 configs/colibri-imx8qxp_defconfig             |  53 +++
 include/configs/colibri-imx8qxp.h             | 214 ++++++++++++
 16 files changed, 1152 insertions(+), 19 deletions(-)
 create mode 100644 arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi
 create mode 100644 arch/arm/dts/fsl-imx8qxp-colibri.dts
 create mode 100644 board/toradex/colibri-imx8qxp/Kconfig
 create mode 100644 board/toradex/colibri-imx8qxp/MAINTAINERS
 create mode 100644 board/toradex/colibri-imx8qxp/Makefile
 create mode 100644 board/toradex/colibri-imx8qxp/README
 create mode 100644 board/toradex/colibri-imx8qxp/colibri-imx8qxp.c
 create mode 100644 board/toradex/colibri-imx8qxp/imximage.cfg
 create mode 100644 configs/colibri-imx8qxp_defconfig
 create mode 100644 include/configs/colibri-imx8qxp.h

-- 
2.20.1

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

* [U-Boot] [PATCH v2 1/5] misc: imx8: remove duplicates from scfw api
  2019-04-09 15:25 [U-Boot] [PATCH v2 0/5] colibri imx8qxp 2gb wb it v1.0b module support Marcel Ziswiler
@ 2019-04-09 15:25 ` Marcel Ziswiler
  2019-04-09 15:25 ` [U-Boot] [PATCH v2 2/5] arm: dts: imx8dx: add lpuart1, lpuart2, lpuart3 Marcel Ziswiler
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-09 15:25 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Remove duplicate function declarations from the SCFW API header file.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v2:
- Added Peng and Igor's reviewed-by.

 arch/arm/include/asm/arch-imx8/sci/sci.h | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/arch/arm/include/asm/arch-imx8/sci/sci.h b/arch/arm/include/asm/arch-imx8/sci/sci.h
index d1621669e2..97377697f0 100644
--- a/arch/arm/include/asm/arch-imx8/sci/sci.h
+++ b/arch/arm/include/asm/arch-imx8/sci/sci.h
@@ -62,10 +62,6 @@ int sc_pm_set_clock_rate(sc_ipc_t ipc, sc_rsrc_t resource, sc_pm_clk_t clk,
 			 sc_pm_clock_rate_t *rate);
 int sc_pm_get_clock_rate(sc_ipc_t ipc, sc_rsrc_t resource, sc_pm_clk_t clk,
 			 sc_pm_clock_rate_t *rate);
-int sc_pm_set_clock_rate(sc_ipc_t ipc, sc_rsrc_t resource, sc_pm_clk_t clk,
-			 sc_pm_clock_rate_t *rate);
-int sc_pm_get_clock_rate(sc_ipc_t ipc, sc_rsrc_t resource, sc_pm_clk_t clk,
-			 sc_pm_clock_rate_t *rate);
 int sc_pm_clock_enable(sc_ipc_t ipc, sc_rsrc_t resource, sc_pm_clk_t clk,
 		       sc_bool_t enable, sc_bool_t autog);
 
-- 
2.20.1

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

* [U-Boot] [PATCH v2 2/5] arm: dts: imx8dx: add lpuart1, lpuart2, lpuart3
  2019-04-09 15:25 [U-Boot] [PATCH v2 0/5] colibri imx8qxp 2gb wb it v1.0b module support Marcel Ziswiler
  2019-04-09 15:25 ` [U-Boot] [PATCH v2 1/5] misc: imx8: remove duplicates from scfw api Marcel Ziswiler
@ 2019-04-09 15:25 ` Marcel Ziswiler
  2019-04-09 15:25 ` [U-Boot] [PATCH v2 3/5] board: toradex: tdx-cfg-block: clean-up sku handling Marcel Ziswiler
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-09 15:25 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Add support for lpuart1, lpuart2 and lpuart3.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v2:
- Added Peng and Igor's reviewed-by.

 arch/arm/dts/fsl-imx8dx.dtsi | 54 ++++++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)

diff --git a/arch/arm/dts/fsl-imx8dx.dtsi b/arch/arm/dts/fsl-imx8dx.dtsi
index 3b1a2a20e3..715abb413d 100644
--- a/arch/arm/dts/fsl-imx8dx.dtsi
+++ b/arch/arm/dts/fsl-imx8dx.dtsi
@@ -236,6 +236,21 @@
 				power-domains = <&pd_dma>;
 				wakeup-irq = <225>;
 			};
+			pd_dma_lpuart1: PD_DMA_UART1 {
+				reg = <SC_R_UART_1>;
+				#power-domain-cells = <0>;
+				power-domains = <&pd_dma>;
+			};
+			pd_dma_lpuart2: PD_DMA_UART2 {
+				reg = <SC_R_UART_2>;
+				#power-domain-cells = <0>;
+				power-domains = <&pd_dma>;
+			};
+			pd_dma_lpuart3: PD_DMA_UART3 {
+				reg = <SC_R_UART_3>;
+				#power-domain-cells = <0>;
+				power-domains = <&pd_dma>;
+			};
 		};
 	};
 
@@ -402,6 +417,45 @@
 		status = "disabled";
 	};
 
+	lpuart1: serial at 5a070000 {
+		compatible = "fsl,imx8qm-lpuart";
+		reg = <0x0 0x5a070000 0x0 0x1000>;
+		interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>;
+		clocks = <&clk IMX8QXP_UART1_CLK>,
+			 <&clk IMX8QXP_UART1_IPG_CLK>;
+		clock-names = "per", "ipg";
+		assigned-clocks = <&clk IMX8QXP_UART1_CLK>;
+		assigned-clock-rates = <80000000>;
+		power-domains = <&pd_dma_lpuart1>;
+		status = "disabled";
+	};
+
+	lpuart2: serial at 5a080000 {
+		compatible = "fsl,imx8qm-lpuart";
+		reg = <0x0 0x5a080000 0x0 0x1000>;
+		interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>;
+		clocks = <&clk IMX8QXP_UART2_CLK>,
+			 <&clk IMX8QXP_UART2_IPG_CLK>;
+		clock-names = "per", "ipg";
+		assigned-clocks = <&clk IMX8QXP_UART2_CLK>;
+		assigned-clock-rates = <80000000>;
+		power-domains = <&pd_dma_lpuart2>;
+		status = "disabled";
+	};
+
+	lpuart3: serial at 5a090000 {
+		compatible = "fsl,imx8qm-lpuart";
+		reg = <0x0 0x5a090000 0x0 0x1000>;
+		interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_HIGH>;
+		clocks = <&clk IMX8QXP_UART3_CLK>,
+			 <&clk IMX8QXP_UART3_IPG_CLK>;
+		clock-names = "per", "ipg";
+		assigned-clocks = <&clk IMX8QXP_UART3_CLK>;
+		assigned-clock-rates = <80000000>;
+		power-domains = <&pd_dma_lpuart3>;
+		status = "disabled";
+	};
+
 	usdhc1: usdhc at 5b010000 {
 		compatible = "fsl,imx8qm-usdhc", "fsl,imx6sl-usdhc";
 		interrupt-parent = <&gic>;
-- 
2.20.1

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

* [U-Boot] [PATCH v2 3/5] board: toradex: tdx-cfg-block: clean-up sku handling
  2019-04-09 15:25 [U-Boot] [PATCH v2 0/5] colibri imx8qxp 2gb wb it v1.0b module support Marcel Ziswiler
  2019-04-09 15:25 ` [U-Boot] [PATCH v2 1/5] misc: imx8: remove duplicates from scfw api Marcel Ziswiler
  2019-04-09 15:25 ` [U-Boot] [PATCH v2 2/5] arm: dts: imx8dx: add lpuart1, lpuart2, lpuart3 Marcel Ziswiler
@ 2019-04-09 15:25 ` Marcel Ziswiler
  2019-04-09 15:25 ` [U-Boot] [PATCH v2 4/5] board: toradex: tdx-cfg-block: add new skus Marcel Ziswiler
  2019-04-09 15:25 ` [U-Boot] [PATCH v2 5/5] board: toradex: add colibri imx8qxp 2gb wb it v1.0b module support Marcel Ziswiler
  4 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-09 15:25 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Clean-up handling of several SKUs.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v2:
- Added Igor's reviewed-by.

 board/toradex/common/tdx-cfg-block.c | 12 ++++++++----
 board/toradex/common/tdx-cfg-block.h | 22 ++++++++++++----------
 2 files changed, 20 insertions(+), 14 deletions(-)

diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c
index 71ff40cfad..7e529afc7f 100644
--- a/board/toradex/common/tdx-cfg-block.c
+++ b/board/toradex/common/tdx-cfg-block.c
@@ -6,7 +6,9 @@
 #include <common.h>
 #include "tdx-cfg-block.h"
 
-#if defined(CONFIG_TARGET_APALIS_IMX6) || defined(CONFIG_TARGET_COLIBRI_IMX6)
+#if defined(CONFIG_TARGET_APALIS_IMX6) || \
+	defined(CONFIG_TARGET_COLIBRI_IMX6) || \
+	defined(CONFIG_TARGET_COLIBRI_IMX8QXP)
 #include <asm/arch/sys_proto.h>
 #else
 #define is_cpu_type(cpu) (0)
@@ -92,10 +94,10 @@ const char * const toradex_modules[] = {
 	[34] = "Apalis TK1 2GB",
 	[35] = "Apalis iMX6 Dual 1GB IT",
 	[36] = "Colibri iMX6ULL 256MB",
-	[37] = "Apalis iMX8 QuadMax 4GB Wi-Fi / Bluetooth",
-	[38] = "Colibri iMX8X",
+	[37] = "Apalis iMX8 QuadMax 4GB Wi-Fi / BT IT",
+	[38] = "Colibri iMX8 QuadXPlus 2GB Wi-Fi / BT IT",
 	[39] = "Colibri iMX7 Dual 1GB (eMMC)",
-	[40] = "Colibri iMX6ULL 512MB Wi-Fi / Bluetooth IT",
+	[40] = "Colibri iMX6ULL 512MB Wi-Fi / BT IT",
 	[41] = "Colibri iMX7 Dual 512MB EPDC",
 	[42] = "Apalis TK1 4GB",
 	[43] = "Colibri T20 512MB IT SETEK",
@@ -340,6 +342,8 @@ static int get_cfgblock_interactive(void)
 		tdx_hw_tag.prodid = COLIBRI_IMX7D;
 	else if (!strcmp("imx7s", soc))
 		tdx_hw_tag.prodid = COLIBRI_IMX7S;
+	else if (is_cpu_type(MXC_CPU_IMX8QXP))
+		tdx_hw_tag.prodid = COLIBRI_IMX8QXP_WIFI_BT_IT;
 	else if (!strcmp("tegra20", soc)) {
 		if (it == 'y' || it == 'Y')
 			if (gd->ram_size == 0x10000000)
diff --git a/board/toradex/common/tdx-cfg-block.h b/board/toradex/common/tdx-cfg-block.h
index 961bb4394f..b20b522e1d 100644
--- a/board/toradex/common/tdx-cfg-block.h
+++ b/board/toradex/common/tdx-cfg-block.h
@@ -25,42 +25,44 @@ enum {
 	COLIBRI_PXA270_V1_520MHZ,
 	COLIBRI_PXA320,
 	COLIBRI_PXA300,
-	COLIBRI_PXA310,
+	COLIBRI_PXA310, /* 5 */
 	COLIBRI_PXA320_IT,
 	COLIBRI_PXA300_XT,
 	COLIBRI_PXA270_312MHZ,
 	COLIBRI_PXA270_520MHZ,
-	COLIBRI_VF50, /* not currently on sale */
-	COLIBRI_VF61,
+	COLIBRI_VF50, /* 10 */
+	COLIBRI_VF61, /* not currently on sale */
 	COLIBRI_VF61_IT,
 	COLIBRI_VF50_IT,
 	COLIBRI_IMX6S,
-	COLIBRI_IMX6DL,
+	COLIBRI_IMX6DL, /* 15 */
 	COLIBRI_IMX6S_IT,
 	COLIBRI_IMX6DL_IT,
+	/* 18 */
+	/* 19 */
 	COLIBRI_T20_256MB = 20,
 	COLIBRI_T20_512MB,
 	COLIBRI_T20_512MB_IT,
 	COLIBRI_T30,
 	COLIBRI_T20_256MB_IT,
-	APALIS_T30_2GB,
+	APALIS_T30_2GB, /* 25 */
 	APALIS_T30_1GB,
 	APALIS_IMX6Q,
 	APALIS_IMX6Q_IT,
 	APALIS_IMX6D,
-	COLIBRI_T30_IT,
+	COLIBRI_T30_IT, /* 30 */
 	APALIS_T30_IT,
 	COLIBRI_IMX7S,
 	COLIBRI_IMX7D,
 	APALIS_TK1_2GB,
-	APALIS_IMX6D_IT,
+	APALIS_IMX6D_IT, /* 35 */
 	COLIBRI_IMX6ULL,
-	APALIS_IMX8QM, /* 37 */
-	COLIBRI_IMX8X,
+	APALIS_IMX8QM_WIFI_BT_IT,
+	COLIBRI_IMX8QXP_WIFI_BT_IT,
 	COLIBRI_IMX7D_EMMC,
 	COLIBRI_IMX6ULL_WIFI_BT_IT, /* 40 */
 	COLIBRI_IMX7D_EPDC,
-	APALIS_TK1_4GB,
+	APALIS_TK1_4GB, /* not currently on sale */
 	COLIBRI_T20_512MB_IT_SETEK,
 	COLIBRI_IMX6ULL_IT,
 	COLIBRI_IMX6ULL_WIFI_BT, /* 45 */
-- 
2.20.1

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

* [U-Boot] [PATCH v2 4/5] board: toradex: tdx-cfg-block: add new skus
  2019-04-09 15:25 [U-Boot] [PATCH v2 0/5] colibri imx8qxp 2gb wb it v1.0b module support Marcel Ziswiler
                   ` (2 preceding siblings ...)
  2019-04-09 15:25 ` [U-Boot] [PATCH v2 3/5] board: toradex: tdx-cfg-block: clean-up sku handling Marcel Ziswiler
@ 2019-04-09 15:25 ` Marcel Ziswiler
  2019-04-09 15:25 ` [U-Boot] [PATCH v2 5/5] board: toradex: add colibri imx8qxp 2gb wb it v1.0b module support Marcel Ziswiler
  4 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-09 15:25 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Add all the latest new SKUs:
- Apalis iMX8 QuadXPlus 2GB Wi-Fi / BT IT
- Apalis iMX8 QuadMax 4GB IT
- Apalis iMX8 QuadPlus 2GB Wi-Fi / BT
- Apalis iMX8 QuadPlus 2GB",
- Colibri iMX8 QuadXPlus 2GB IT
- Colibri iMX8 DualX 1GB Wi-Fi / Bluetooth
- Colibri iMX8 DualX 1GB

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v2:
- Added Igor's reviewed-by.

 board/toradex/common/tdx-cfg-block.c | 7 +++++++
 board/toradex/common/tdx-cfg-block.h | 7 +++++++
 2 files changed, 14 insertions(+)

diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c
index 7e529afc7f..f69c4433b2 100644
--- a/board/toradex/common/tdx-cfg-block.c
+++ b/board/toradex/common/tdx-cfg-block.c
@@ -103,6 +103,13 @@ const char * const toradex_modules[] = {
 	[43] = "Colibri T20 512MB IT SETEK",
 	[44] = "Colibri iMX6ULL 512MB IT",
 	[45] = "Colibri iMX6ULL 512MB Wi-Fi / Bluetooth",
+	[46] = "Apalis iMX8 QuadXPlus 2GB Wi-Fi / BT IT",
+	[47] = "Apalis iMX8 QuadMax 4GB IT",
+	[48] = "Apalis iMX8 QuadPlus 2GB Wi-Fi / BT",
+	[49] = "Apalis iMX8 QuadPlus 2GB",
+	[50] = "Colibri iMX8 QuadXPlus 2GB IT",
+	[51] = "Colibri iMX8 DualX 1GB Wi-Fi / Bluetooth",
+	[52] = "Colibri iMX8 DualX 1GB",
 };
 
 #ifdef CONFIG_TDX_CFG_BLOCK_IS_IN_MMC
diff --git a/board/toradex/common/tdx-cfg-block.h b/board/toradex/common/tdx-cfg-block.h
index b20b522e1d..bfdc8b7f70 100644
--- a/board/toradex/common/tdx-cfg-block.h
+++ b/board/toradex/common/tdx-cfg-block.h
@@ -66,6 +66,13 @@ enum {
 	COLIBRI_T20_512MB_IT_SETEK,
 	COLIBRI_IMX6ULL_IT,
 	COLIBRI_IMX6ULL_WIFI_BT, /* 45 */
+	APALIS_IMX8QXP_WIFI_BT_IT,
+	APALIS_IMX8QM_IT,
+	APALIS_IMX8QP_WIFI_BT,
+	APALIS_IMX8QP,
+	COLIBRI_IMX8QXP_IT, /* 50 */
+	COLIBRI_IMX8DX_WIFI_BT,
+	COLIBRI_IMX8DX,
 };
 
 extern const char * const toradex_modules[];
-- 
2.20.1

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

* [U-Boot] [PATCH v2 5/5] board: toradex: add colibri imx8qxp 2gb wb it v1.0b module support
  2019-04-09 15:25 [U-Boot] [PATCH v2 0/5] colibri imx8qxp 2gb wb it v1.0b module support Marcel Ziswiler
                   ` (3 preceding siblings ...)
  2019-04-09 15:25 ` [U-Boot] [PATCH v2 4/5] board: toradex: tdx-cfg-block: add new skus Marcel Ziswiler
@ 2019-04-09 15:25 ` Marcel Ziswiler
  2019-04-11 10:47   ` Igor Opaniuk
  2019-04-25 10:48   ` Stefano Babic
  4 siblings, 2 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-09 15:25 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

This commit adds initial support for the Toradex Colibri iMX8QXP 2GB WB
IT V1.0B module. Unlike the V1.0A early access samples exclusively
booting from SD card, they are now strapped to boot from eFuses which
are factory fused to properly boot from their on-module eMMC. U-Boot
supports either booting from the on-module eMMC or may be used for
recovery purpose using the universal update utility (uuu) aka mfgtools
3.0.

Functionality wise the following is known to be working:
- eMMC and MMC/SD card
- Ethernet
- GPIOs
- I2C

Unfortunately, there is no USB functionality for the i.MX 8QXP as of
yet.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

---

Changes in v2:
- Changed imx-atf git clone command to include initial branch
  information as suggested by Igor.
- Sorted board file includes alphabetically as suggested by Igor.
- Got rid of SPL configuration in legacy header file as suggested by
  Igor and the whole use of SPL on i.MX 8X anyway neither works well
  nor makes any much sense at all.

 arch/arm/dts/Makefile                         |   4 +-
 arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi  | 112 ++++++
 arch/arm/dts/fsl-imx8qxp-colibri.dts          | 328 ++++++++++++++++++
 arch/arm/mach-imx/imx8/Kconfig                |   6 +
 board/toradex/colibri-imx8qxp/Kconfig         |  30 ++
 board/toradex/colibri-imx8qxp/MAINTAINERS     |   9 +
 board/toradex/colibri-imx8qxp/Makefile        |   7 +
 board/toradex/colibri-imx8qxp/README          |  66 ++++
 .../toradex/colibri-imx8qxp/colibri-imx8qxp.c | 212 +++++++++++
 board/toradex/colibri-imx8qxp/imximage.cfg    |  24 ++
 configs/colibri-imx8qxp_defconfig             |  53 +++
 include/configs/colibri-imx8qxp.h             | 214 ++++++++++++
 12 files changed, 1064 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi
 create mode 100644 arch/arm/dts/fsl-imx8qxp-colibri.dts
 create mode 100644 board/toradex/colibri-imx8qxp/Kconfig
 create mode 100644 board/toradex/colibri-imx8qxp/MAINTAINERS
 create mode 100644 board/toradex/colibri-imx8qxp/Makefile
 create mode 100644 board/toradex/colibri-imx8qxp/README
 create mode 100644 board/toradex/colibri-imx8qxp/colibri-imx8qxp.c
 create mode 100644 board/toradex/colibri-imx8qxp/imximage.cfg
 create mode 100644 configs/colibri-imx8qxp_defconfig
 create mode 100644 include/configs/colibri-imx8qxp.h

diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 13d1d67624..2a551d42a4 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -559,7 +559,9 @@ dtb-$(CONFIG_MX7) += imx7d-sdb.dtb \
 
 dtb-$(CONFIG_ARCH_MX7ULP) += imx7ulp-evk.dtb
 
-dtb-$(CONFIG_ARCH_IMX8) += fsl-imx8qxp-mek.dtb
+dtb-$(CONFIG_ARCH_IMX8) += \
+	fsl-imx8qxp-colibri.dtb \
+	fsl-imx8qxp-mek.dtb
 
 dtb-$(CONFIG_ARCH_IMX8M) += fsl-imx8mq-evk.dtb
 
diff --git a/arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi b/arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi
new file mode 100644
index 0000000000..f8686befdf
--- /dev/null
+++ b/arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi
@@ -0,0 +1,112 @@
+// SPDX-License-Identifier: GPL-2.0+ OR X11
+/*
+ * Copyright 2019 Toradex AG
+ */
+
+&mu {
+	u-boot,dm-spl;
+};
+
+&clk {
+	u-boot,dm-spl;
+};
+
+&iomuxc {
+	u-boot,dm-spl;
+};
+
+&pd_lsio {
+	u-boot,dm-spl;
+};
+
+&pd_lsio_gpio0 {
+	u-boot,dm-spl;
+};
+
+&pd_lsio_gpio1 {
+	u-boot,dm-spl;
+};
+
+&pd_lsio_gpio2 {
+	u-boot,dm-spl;
+};
+
+&pd_lsio_gpio3 {
+	u-boot,dm-spl;
+};
+
+&pd_lsio_gpio4 {
+	u-boot,dm-spl;
+};
+
+&pd_lsio_gpio5 {
+	u-boot,dm-spl;
+};
+
+&pd_lsio_gpio6 {
+	u-boot,dm-spl;
+};
+
+&pd_lsio_gpio7 {
+	u-boot,dm-spl;
+};
+
+&pd_conn {
+	u-boot,dm-spl;
+};
+
+&pd_conn_sdch0 {
+	u-boot,dm-spl;
+};
+
+&pd_conn_sdch1 {
+	u-boot,dm-spl;
+};
+
+&pd_conn_sdch2 {
+	u-boot,dm-spl;
+};
+
+&gpio0 {
+	u-boot,dm-spl;
+};
+
+&gpio1 {
+	u-boot,dm-spl;
+};
+
+&gpio2 {
+	u-boot,dm-spl;
+};
+
+&gpio3 {
+	u-boot,dm-spl;
+};
+
+&gpio4 {
+	u-boot,dm-spl;
+};
+
+&gpio5 {
+	u-boot,dm-spl;
+};
+
+&gpio6 {
+	u-boot,dm-spl;
+};
+
+&gpio7 {
+	u-boot,dm-spl;
+};
+
+&lpuart3 {
+	u-boot,dm-spl;
+};
+
+&usdhc1 {
+	u-boot,dm-spl;
+};
+
+&usdhc2 {
+	u-boot,dm-spl;
+};
diff --git a/arch/arm/dts/fsl-imx8qxp-colibri.dts b/arch/arm/dts/fsl-imx8qxp-colibri.dts
new file mode 100644
index 0000000000..0c20edf2cf
--- /dev/null
+++ b/arch/arm/dts/fsl-imx8qxp-colibri.dts
@@ -0,0 +1,328 @@
+// SPDX-License-Identifier: GPL-2.0+ OR X11
+/*
+ * Copyright 2019 Toradex AG
+ */
+
+/dts-v1/;
+
+#include "fsl-imx8qxp.dtsi"
+#include "fsl-imx8qxp-colibri-u-boot.dtsi"
+
+/ {
+	model = "Toradex Colibri iMX8QXP";
+	compatible = "toradex,colibri-imx8qxp", "fsl,imx8qxp";
+
+	chosen {
+		bootargs = "console=ttyLP3,115200 earlycon=lpuart32,0x5a090000,115200";
+		stdout-path = &lpuart3;
+	};
+
+	reg_usbh_vbus: regulator-usbh-vbus {
+		compatible = "regulator-fixed";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_usbh1_reg>;
+		regulator-name = "usbh_vbus";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpio = <&gpio4 3 GPIO_ACTIVE_LOW>;
+	};
+};
+
+&iomuxc {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_hog0>, <&pinctrl_hog1>, <&pinctrl_hog2>;
+
+	colibri-imx8qxp {
+		pinctrl_lpuart0: lpuart0grp {
+			fsl,pins = <
+				SC_P_UART0_RX_ADMA_UART0_RX	0x06000020
+				SC_P_UART0_TX_ADMA_UART0_TX	0x06000020
+			>;
+		};
+
+		pinctrl_lpuart3: lpuart3grp {
+			fsl,pins = <
+				SC_P_FLEXCAN2_RX_ADMA_UART3_RX	0x06000020
+				SC_P_FLEXCAN2_TX_ADMA_UART3_TX	0x06000020
+			>;
+		};
+
+		pinctrl_lpuart3_ctrl: lpuart3ctrlgrp {
+			fsl,pins = <
+				SC_P_MIPI_DSI1_GPIO0_01_LSIO_GPIO2_IO00 0x00000020 /* DTR */
+				SC_P_SAI1_RXD_LSIO_GPIO0_IO29		0x00000020 /* CTS */
+				SC_P_SAI1_RXC_LSIO_GPIO0_IO30		0x00000020 /* RTS */
+				SC_P_CSI_RESET_LSIO_GPIO3_IO03		0x00000020 /* DSR */
+				SC_P_USDHC1_CD_B_LSIO_GPIO4_IO22	0x00000020 /* DCD */
+				SC_P_CSI_EN_LSIO_GPIO3_IO02		0x00000020 /* RI */
+			>;
+		};
+
+		pinctrl_fec1: fec1grp {
+			fsl,pins = <
+				SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENETB0_PAD	0x000014a0 /* Use pads in 3.3V mode */
+				SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENETB1_PAD	0x000014a0 /* Use pads in 3.3V mode */
+				SC_P_ENET0_MDC_CONN_ENET0_MDC			0x06000020
+				SC_P_ENET0_MDIO_CONN_ENET0_MDIO			0x06000020
+				SC_P_ENET0_RGMII_TX_CTL_CONN_ENET0_RGMII_TX_CTL	0x00000061
+				SC_P_ENET0_RGMII_TXC_CONN_ENET0_RCLK50M_OUT	0x06000061
+				SC_P_ENET0_RGMII_TXD0_CONN_ENET0_RGMII_TXD0	0x00000061
+				SC_P_ENET0_RGMII_TXD1_CONN_ENET0_RGMII_TXD1	0x00000061
+				SC_P_ENET0_RGMII_RX_CTL_CONN_ENET0_RGMII_RX_CTL	0x00000061
+				SC_P_ENET0_RGMII_RXD0_CONN_ENET0_RGMII_RXD0	0x00000061
+				SC_P_ENET0_RGMII_RXD1_CONN_ENET0_RGMII_RXD1	0x00000061
+				SC_P_ENET0_RGMII_RXD2_CONN_ENET0_RMII_RX_ER	0x00000061
+			>;
+		};
+
+		pinctrl_gpio_bl_on: gpio-bl-on {
+			fsl,pins = <
+				SC_P_QSPI0A_DATA3_LSIO_GPIO3_IO12	0x00000040
+			>;
+		};
+
+		pinctrl_hog0: hog0grp {
+			fsl,pins = <
+				SC_P_COMP_CTL_GPIO_1V8_3V3_GPIORHB_PAD	0x000514a0 /* Use pads in 3.3V mode */
+			>;
+		};
+
+		pinctrl_hog1: hog1grp {
+			fsl,pins = <
+				SC_P_QSPI0A_DATA1_LSIO_GPIO3_IO10	0x00000020 /*  45 */
+				SC_P_ENET0_RGMII_TXD3_LSIO_GPIO5_IO02	0x06000020 /*  65 */
+					SC_P_CSI_D07_CI_PI_D09		0x00000061
+				SC_P_QSPI0A_DATA2_LSIO_GPIO3_IO11	0x00000020 /*  69 */
+				SC_P_QSPI0A_DQS_LSIO_GPIO3_IO13		0x00000020 /*  73 */
+				SC_P_SAI0_TXC_LSIO_GPIO0_IO26		0x00000020 /*  79 */
+					SC_P_CSI_D02_CI_PI_D04		0x00000061
+				SC_P_ENET0_RGMII_RXC_LSIO_GPIO5_IO03	0x06000020 /*  85 */
+					SC_P_CSI_D06_CI_PI_D08		0x00000061
+				SC_P_QSPI0B_SCLK_LSIO_GPIO3_IO17	0x00000020 /*  95 */
+				SC_P_SAI0_RXD_LSIO_GPIO0_IO27		0x00000020 /*  97 */
+					SC_P_CSI_D03_CI_PI_D05		0x00000061
+				SC_P_QSPI0B_DATA0_LSIO_GPIO3_IO18	0x00000020 /*  99 */
+				SC_P_SAI0_TXFS_LSIO_GPIO0_IO28		0x00000020 /* 101 */
+					SC_P_CSI_D00_CI_PI_D02		0x00000061
+				SC_P_SAI0_TXD_LSIO_GPIO0_IO25		0x00000020 /* 103 */
+					SC_P_CSI_D01_CI_PI_D03		0x00000061
+				SC_P_QSPI0B_DATA1_LSIO_GPIO3_IO19	0x00000020 /* 105 */
+				SC_P_QSPI0B_DATA2_LSIO_GPIO3_IO20	0x00000020 /* 107 */
+				SC_P_USB_SS3_TC2_LSIO_GPIO4_IO05	0x00000020 /* 127 */
+				SC_P_USB_SS3_TC3_LSIO_GPIO4_IO06	0x00000020 /* 131 */
+				SC_P_USB_SS3_TC1_LSIO_GPIO4_IO04	0x00000020 /* 133 */
+				SC_P_CSI_PCLK_LSIO_GPIO3_IO00		0x00000020 /*  96 */
+				SC_P_QSPI0B_DATA3_LSIO_GPIO3_IO21	0x00000020 /*  98 */
+				SC_P_SAI1_RXFS_LSIO_GPIO0_IO31		0x00000020 /* 100 */
+				SC_P_QSPI0B_DQS_LSIO_GPIO3_IO22		0x00000020 /* 102 */
+				SC_P_QSPI0B_SS0_B_LSIO_GPIO3_IO23	0x00000020 /* 104 */
+				SC_P_QSPI0B_SS1_B_LSIO_GPIO3_IO24	0x00000020 /* 106 */
+			>;
+		};
+
+		pinctrl_hog2: hog2grp {
+			fsl,pins = <
+				SC_P_CSI_MCLK_LSIO_GPIO3_IO01		0x00000020 /*  75 */
+				SC_P_QSPI0A_SS0_B_LSIO_GPIO3_IO14	0x00000020 /*  77 */
+				SC_P_QSPI0A_SS1_B_LSIO_GPIO3_IO15	0x00000020 /*  89 */
+				SC_P_QSPI0A_SCLK_LSIO_GPIO3_IO16	0x00000020 /*  93 */
+			>;
+		};
+
+		/* Off Module I2C */
+		pinctrl_i2c1: i2c1grp {
+			fsl,pins = <
+				SC_P_MIPI_DSI0_GPIO0_00_ADMA_I2C1_SCL	0x06000021
+				SC_P_MIPI_DSI0_GPIO0_01_ADMA_I2C1_SDA	0x06000021
+			>;
+		};
+
+		/*INT*/
+		pinctrl_usb3503a: usb3503a-grp {
+			fsl,pins = <
+				SC_P_MIPI_CSI0_MCLK_OUT_LSIO_GPIO3_IO04 0x00000061
+			>;
+		};
+
+		pinctrl_usbc_det: usbc-det {
+			fsl,pins = <
+				SC_P_ENET0_REFCLK_125M_25M_LSIO_GPIO5_IO09	0x06000040
+			>;
+		};
+
+		pinctrl_usbh1_reg: usbh1-reg {
+			fsl,pins = <
+				SC_P_USB_SS3_TC0_LSIO_GPIO4_IO03	0x06000040
+			>;
+		};
+
+		pinctrl_usdhc1: usdhc1grp {
+			fsl,pins = <
+				SC_P_EMMC0_CLK_CONN_EMMC0_CLK		0x06000041
+				SC_P_EMMC0_CMD_CONN_EMMC0_CMD		0x00000021
+				SC_P_EMMC0_DATA0_CONN_EMMC0_DATA0	0x00000021
+				SC_P_EMMC0_DATA1_CONN_EMMC0_DATA1	0x00000021
+				SC_P_EMMC0_DATA2_CONN_EMMC0_DATA2	0x00000021
+				SC_P_EMMC0_DATA3_CONN_EMMC0_DATA3	0x00000021
+				SC_P_EMMC0_DATA4_CONN_EMMC0_DATA4	0x00000021
+				SC_P_EMMC0_DATA5_CONN_EMMC0_DATA5	0x00000021
+				SC_P_EMMC0_DATA6_CONN_EMMC0_DATA6	0x00000021
+				SC_P_EMMC0_DATA7_CONN_EMMC0_DATA7	0x00000021
+				SC_P_EMMC0_STROBE_CONN_EMMC0_STROBE	0x00000041
+				SC_P_EMMC0_RESET_B_CONN_EMMC0_RESET_B	0x00000021
+			>;
+		};
+
+		pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
+			fsl,pins = <
+				SC_P_EMMC0_CLK_CONN_EMMC0_CLK		0x06000041
+				SC_P_EMMC0_CMD_CONN_EMMC0_CMD		0x00000021
+				SC_P_EMMC0_DATA0_CONN_EMMC0_DATA0	0x00000021
+				SC_P_EMMC0_DATA1_CONN_EMMC0_DATA1	0x00000021
+				SC_P_EMMC0_DATA2_CONN_EMMC0_DATA2	0x00000021
+				SC_P_EMMC0_DATA3_CONN_EMMC0_DATA3	0x00000021
+				SC_P_EMMC0_DATA4_CONN_EMMC0_DATA4	0x00000021
+				SC_P_EMMC0_DATA5_CONN_EMMC0_DATA5	0x00000021
+				SC_P_EMMC0_DATA6_CONN_EMMC0_DATA6	0x00000021
+				SC_P_EMMC0_DATA7_CONN_EMMC0_DATA7	0x00000021
+				SC_P_EMMC0_STROBE_CONN_EMMC0_STROBE	0x00000041
+				SC_P_EMMC0_RESET_B_CONN_EMMC0_RESET_B	0x00000021
+			>;
+		};
+
+		pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
+			fsl,pins = <
+				SC_P_EMMC0_CLK_CONN_EMMC0_CLK		0x06000041
+				SC_P_EMMC0_CMD_CONN_EMMC0_CMD		0x00000021
+				SC_P_EMMC0_DATA0_CONN_EMMC0_DATA0	0x00000021
+				SC_P_EMMC0_DATA1_CONN_EMMC0_DATA1	0x00000021
+				SC_P_EMMC0_DATA2_CONN_EMMC0_DATA2	0x00000021
+				SC_P_EMMC0_DATA3_CONN_EMMC0_DATA3	0x00000021
+				SC_P_EMMC0_DATA4_CONN_EMMC0_DATA4	0x00000021
+				SC_P_EMMC0_DATA5_CONN_EMMC0_DATA5	0x00000021
+				SC_P_EMMC0_DATA6_CONN_EMMC0_DATA6	0x00000021
+				SC_P_EMMC0_DATA7_CONN_EMMC0_DATA7	0x00000021
+				SC_P_EMMC0_STROBE_CONN_EMMC0_STROBE	0x00000041
+				SC_P_EMMC0_RESET_B_CONN_EMMC0_RESET_B	0x00000021
+			>;
+		};
+
+		pinctrl_usdhc2_gpio: usdhc2gpiogrp {
+			fsl,pins = <
+				SC_P_QSPI0A_DATA0_LSIO_GPIO3_IO09	0x06000021
+			>;
+		};
+
+		pinctrl_usdhc2: usdhc2grp {
+			fsl,pins = <
+				SC_P_USDHC1_CLK_CONN_USDHC1_CLK		0x06000041
+				SC_P_USDHC1_CMD_CONN_USDHC1_CMD		0x00000021
+				SC_P_USDHC1_DATA0_CONN_USDHC1_DATA0	0x00000021
+				SC_P_USDHC1_DATA1_CONN_USDHC1_DATA1	0x00000021
+				SC_P_USDHC1_DATA2_CONN_USDHC1_DATA2	0x00000021
+				SC_P_USDHC1_DATA3_CONN_USDHC1_DATA3	0x00000021
+				SC_P_USDHC1_VSELECT_CONN_USDHC1_VSELECT	0x00000021
+			>;
+		};
+
+		pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
+			fsl,pins = <
+				SC_P_USDHC1_CLK_CONN_USDHC1_CLK		0x06000041
+				SC_P_USDHC1_CMD_CONN_USDHC1_CMD		0x00000021
+				SC_P_USDHC1_DATA0_CONN_USDHC1_DATA0	0x00000021
+				SC_P_USDHC1_DATA1_CONN_USDHC1_DATA1	0x00000021
+				SC_P_USDHC1_DATA2_CONN_USDHC1_DATA2	0x00000021
+				SC_P_USDHC1_DATA3_CONN_USDHC1_DATA3	0x00000021
+				SC_P_USDHC1_VSELECT_CONN_USDHC1_VSELECT	0x00000021
+			>;
+		};
+
+		pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
+			fsl,pins = <
+				SC_P_USDHC1_CLK_CONN_USDHC1_CLK		0x06000041
+				SC_P_USDHC1_CMD_CONN_USDHC1_CMD		0x00000021
+				SC_P_USDHC1_DATA0_CONN_USDHC1_DATA0	0x00000021
+				SC_P_USDHC1_DATA1_CONN_USDHC1_DATA1	0x00000021
+				SC_P_USDHC1_DATA2_CONN_USDHC1_DATA2	0x00000021
+				SC_P_USDHC1_DATA3_CONN_USDHC1_DATA3	0x00000021
+				SC_P_USDHC1_VSELECT_CONN_USDHC1_VSELECT	0x00000021
+			>;
+		};
+	};
+};
+
+&lpuart0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_lpuart0>;
+	status = "okay";
+};
+
+&lpuart3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_lpuart3>, <&pinctrl_lpuart3_ctrl>;
+	status = "okay";
+};
+
+&gpio0 {
+	status = "okay";
+};
+
+&gpio1 {
+	status = "okay";
+};
+
+&gpio3 {
+	status = "okay";
+};
+
+&gpio4 {
+	status = "okay";
+};
+
+&fec1 {
+	phy-handle = <&ethphy0>;
+	phy-mode = "rmii";
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_fec1>;
+	status = "okay";
+
+	mdio {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		ethphy0: ethernet-phy at 2 {
+			compatible = "ethernet-phy-ieee802.3-c22";
+			max-speed = <100>;
+			reg = <2>;
+		};
+	};
+};
+
+&i2c1 {
+	#address-cells = <1>;
+	#size-cells = <0>;
+	clock-frequency = <100000>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_i2c1>;
+	status = "okay";
+};
+
+&usdhc1 {
+	bus-width = <8>;
+	non-removable;
+	pinctrl-names = "default", "state_100mhz", "state_200mhz";
+	pinctrl-0 = <&pinctrl_usdhc1>;
+	pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
+	pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
+	status = "okay";
+};
+
+&usdhc2 {
+	bus-width = <4>;
+	cd-gpios = <&gpio3 9 GPIO_ACTIVE_LOW>;
+	pinctrl-names = "default", "state_100mhz", "state_200mhz";
+	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+	pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
+	pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
+	status = "okay";
+};
diff --git a/arch/arm/mach-imx/imx8/Kconfig b/arch/arm/mach-imx/imx8/Kconfig
index f76a139684..feea07f135 100644
--- a/arch/arm/mach-imx/imx8/Kconfig
+++ b/arch/arm/mach-imx/imx8/Kconfig
@@ -22,6 +22,11 @@ choice
 	prompt "i.MX8 board select"
 	optional
 
+config TARGET_COLIBRI_IMX8QXP
+	bool "Support Colibri iMX8QXP module"
+	select BOARD_LATE_INIT
+	select IMX8QXP
+
 config TARGET_IMX8QXP_MEK
 	bool "Support i.MX8QXP MEK board"
 	select BOARD_LATE_INIT
@@ -30,5 +35,6 @@ config TARGET_IMX8QXP_MEK
 endchoice
 
 source "board/freescale/imx8qxp_mek/Kconfig"
+source "board/toradex/colibri-imx8qxp/Kconfig"
 
 endif
diff --git a/board/toradex/colibri-imx8qxp/Kconfig b/board/toradex/colibri-imx8qxp/Kconfig
new file mode 100644
index 0000000000..340fe72816
--- /dev/null
+++ b/board/toradex/colibri-imx8qxp/Kconfig
@@ -0,0 +1,30 @@
+if TARGET_COLIBRI_IMX8QXP
+
+config SYS_BOARD
+	default "colibri-imx8qxp"
+
+config SYS_VENDOR
+	default "toradex"
+
+config SYS_CONFIG_NAME
+	default "colibri-imx8qxp"
+
+config TDX_CFG_BLOCK
+	default y
+
+config TDX_HAVE_MMC
+	default y
+
+config TDX_CFG_BLOCK_DEV
+	default "0"
+
+config TDX_CFG_BLOCK_PART
+	default "1"
+
+# Toradex config block in eMMC, at the end of 1st "boot sector"
+config TDX_CFG_BLOCK_OFFSET
+	default "-512"
+
+source "board/toradex/common/Kconfig"
+
+endif
diff --git a/board/toradex/colibri-imx8qxp/MAINTAINERS b/board/toradex/colibri-imx8qxp/MAINTAINERS
new file mode 100644
index 0000000000..39a9eb79b7
--- /dev/null
+++ b/board/toradex/colibri-imx8qxp/MAINTAINERS
@@ -0,0 +1,9 @@
+Colibri iMX8QXP
+M:	Marcel Ziswiler <marcel.ziswiler@toradex.com>
+W:	http://developer.toradex.com/software/linux/linux-software
+S:	Maintained
+F:	arch/arm/dts/fsl-imx8qxp-colibri.dts
+F:	arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi
+F:	board/toradex/colibri-imx8qxp/
+F:	configs/colibri-imx8qxp_defconfig
+F:	include/configs/colibri-imx8qxp.h
diff --git a/board/toradex/colibri-imx8qxp/Makefile b/board/toradex/colibri-imx8qxp/Makefile
new file mode 100644
index 0000000000..f6342e1dca
--- /dev/null
+++ b/board/toradex/colibri-imx8qxp/Makefile
@@ -0,0 +1,7 @@
+#
+# Copyright 2019 Toradex
+#
+# SPDX-License-Identifier:	GPL-2.0+
+#
+
+obj-y += colibri-imx8qxp.o
diff --git a/board/toradex/colibri-imx8qxp/README b/board/toradex/colibri-imx8qxp/README
new file mode 100644
index 0000000000..e68d183fe6
--- /dev/null
+++ b/board/toradex/colibri-imx8qxp/README
@@ -0,0 +1,66 @@
+U-Boot for the Toradex Colibri iMX8QXP V1.0B module
+
+Quick Start
+===========
+
+- Build the ARM trusted firmware binary
+- Get scfw_tcm.bin and ahab-container.img
+- Build U-Boot
+- Load U-Boot binary using uuu
+- Flash U-Boot binary into the eMMC
+- Boot
+
+Get and Build the ARM Trusted Firmware
+======================================
+
+$ git clone -b imx_4.14.78_1.0.0_ga https://source.codeaurora.org/external/imx/imx-atf
+$ cd imx-atf/
+$ make PLAT=imx8qxp bl31
+
+Get scfw_tcm.bin and ahab-container.img
+=======================================
+
+$ wget https://github.com/toradex/meta-fsl-bsp-release/blob/toradex-sumo-4.14.78-1.0.0_ga-bringup/imx/meta-bsp/recipes-bsp/imx-sc-firmware/files/mx8qx-colibri-scfw-tcm.bin?raw=true
+$ mv mx8qx-colibri-scfw-tcm.bin\?raw\=true mx8qx-colibri-scfw-tcm.bin
+$ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-7.6.bin
+$ chmod +x firmware-imx-7.6.bin
+$ ./firmware-imx-7.6.bin
+
+Copy the following binaries to the U-Boot folder:
+
+$ cp imx-atf/build/imx8qxp/release/bl31.bin .
+$ cp u-boot/u-boot.bin .
+
+Copy the following firmware to the U-Boot folder:
+
+$ cp firmware-imx-7.6/firmware/seco/ahab-container.img .
+
+Build U-Boot
+============
+
+$ make colibri-imx8qxp_defconfig
+$ make u-boot-dtb.imx
+
+Load the U-Boot Binary Using UUU
+================================
+
+Get the latest version of the universal update utility (uuu) aka mfgtools 3.0:
+
+https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fgithub.com%2FNXPmicro%2Fmfgtools%2Freleases
+
+Put the module into USB recovery aka serial downloader mode, connect USB device
+to your host and execute uuu:
+
+sudo ./uuu u-boot/u-boot-dtb.imx
+
+Flash the U-Boot Binary into the eMMC
+=====================================
+
+Burn the u-boot-dtb.imx binary to the primary eMMC hardware boot area partition:
+
+load mmc 1:1 $loadaddr u-boot-dtb.imx
+setexpr blkcnt ${filesize} + 0x1ff && setexpr blkcnt ${blkcnt} / 0x200
+mmc dev 0 1
+mmc write ${loadaddr} 0x0 ${blkcnt}
+
+Boot
diff --git a/board/toradex/colibri-imx8qxp/colibri-imx8qxp.c b/board/toradex/colibri-imx8qxp/colibri-imx8qxp.c
new file mode 100644
index 0000000000..9aa0f096d2
--- /dev/null
+++ b/board/toradex/colibri-imx8qxp/colibri-imx8qxp.c
@@ -0,0 +1,212 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2019 Toradex
+ */
+
+#include <common.h>
+
+#include <asm/arch/clock.h>
+#include <asm/arch/imx8-pins.h>
+#include <asm/arch/iomux.h>
+#include <asm/arch/sci/sci.h>
+#include <asm/arch/sys_proto.h>
+#include <asm/gpio.h>
+#include <asm/io.h>
+#include <asm/mach-imx/video.h>
+#include <dm.h>
+#include <environment.h>
+#include <errno.h>
+#include <fdt_support.h>
+#include <fsl_esdhc.h>
+#include <fsl_ifc.h>
+#include <i2c.h>
+#include <linux/libfdt.h>
+#include <malloc.h>
+#include <netdev.h>
+#include <power-domain.h>
+#include <usb.h>
+
+#include "../common/tdx-cfg-block.h"
+
+DECLARE_GLOBAL_DATA_PTR;
+
+#define GPIO_PAD_CTRL	((SC_PAD_CONFIG_NORMAL << PADRING_CONFIG_SHIFT) | \
+			 (SC_PAD_ISO_OFF << PADRING_LPCONFIG_SHIFT) | \
+			 (SC_PAD_28FDSOI_DSE_DV_HIGH << PADRING_DSE_SHIFT) | \
+			 (SC_PAD_28FDSOI_PS_PU << PADRING_PULL_SHIFT))
+
+#define UART_PAD_CTRL	((SC_PAD_CONFIG_OUT_IN << PADRING_CONFIG_SHIFT) | \
+			 (SC_PAD_ISO_OFF << PADRING_LPCONFIG_SHIFT) | \
+			 (SC_PAD_28FDSOI_DSE_DV_HIGH << PADRING_DSE_SHIFT) | \
+			 (SC_PAD_28FDSOI_PS_PU << PADRING_PULL_SHIFT))
+
+static iomux_cfg_t uart3_pads[] = {
+	SC_P_FLEXCAN2_RX | MUX_MODE_ALT(2) | MUX_PAD_CTRL(UART_PAD_CTRL),
+	SC_P_FLEXCAN2_TX | MUX_MODE_ALT(2) | MUX_PAD_CTRL(UART_PAD_CTRL),
+	/* Transceiver FORCEOFF# signal, mux to use pullup */
+	SC_P_QSPI0B_DQS | MUX_MODE_ALT(4) | MUX_PAD_CTRL(UART_PAD_CTRL),
+};
+
+static void setup_iomux_uart(void)
+{
+	imx8_iomux_setup_multiple_pads(uart3_pads, ARRAY_SIZE(uart3_pads));
+}
+
+int board_early_init_f(void)
+{
+	sc_pm_clock_rate_t rate;
+	sc_err_t err = 0;
+
+	/*
+	 * This works around that having only UART3 up the baudrate is 1.2M
+	 * instead of 115.2k. Set UART0 clock root to 80 MHz
+	 */
+	rate = 80000000;
+	err = sc_pm_set_clock_rate(-1, SC_R_UART_0, SC_PM_CLK_PER, &rate);
+	if (err != SC_ERR_NONE)
+		return 0;
+
+	/* Power up UART3 */
+	err = sc_pm_set_resource_power_mode(-1, SC_R_UART_3, SC_PM_PW_MODE_ON);
+	if (err != SC_ERR_NONE)
+		return 0;
+
+	/* Set UART3 clock root to 80 MHz */
+	rate = 80000000;
+	err = sc_pm_set_clock_rate(-1, SC_R_UART_3, SC_PM_CLK_PER, &rate);
+	if (err != SC_ERR_NONE)
+		return 0;
+
+	/* Enable UART3 clock root */
+	err = sc_pm_clock_enable(-1, SC_R_UART_3, SC_PM_CLK_PER, true, false);
+	if (err != SC_ERR_NONE)
+		return 0;
+
+	setup_iomux_uart();
+
+	return 0;
+}
+
+#undef CONFIG_MXC_GPIO /* TODO */
+#ifdef CONFIG_MXC_GPIO
+#define IOEXP_RESET IMX_GPIO_NR(1, 1)
+
+static iomux_cfg_t board_gpios[] = {
+	SC_P_SPI2_SDO | MUX_MODE_ALT(4) | MUX_PAD_CTRL(GPIO_PAD_CTRL),
+	SC_P_ENET0_REFCLK_125M_25M | MUX_MODE_ALT(4) | \
+		MUX_PAD_CTRL(GPIO_PAD_CTRL),
+};
+
+static void board_gpio_init(void)
+{
+	struct gpio_desc desc;
+	int ret;
+
+	ret = dm_gpio_lookup_name("gpio@1a_3", &desc);
+	if (ret)
+		return;
+
+	ret = dm_gpio_request(&desc, "bb_per_rst_b");
+	if (ret)
+		return;
+
+	dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT);
+	dm_gpio_set_value(&desc, 0);
+	udelay(50);
+	dm_gpio_set_value(&desc, 1);
+
+	imx8_iomux_setup_multiple_pads(board_gpios, ARRAY_SIZE(board_gpios));
+
+	/* enable i2c port expander assert reset line */
+	gpio_request(IOEXP_RESET, "ioexp_rst");
+	gpio_direction_output(IOEXP_RESET, 1);
+}
+#else
+static inline void board_gpio_init(void) {}
+#endif
+
+#if IS_ENABLED(CONFIG_FEC_MXC)
+#include <miiphy.h>
+
+int board_phy_config(struct phy_device *phydev)
+{
+	phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x1f);
+	phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x8);
+
+	phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x00);
+	phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x82ee);
+	phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x05);
+	phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x100);
+
+	if (phydev->drv->config)
+		phydev->drv->config(phydev);
+
+	return 0;
+}
+#endif
+
+void build_info(void)
+{
+	u32 sc_build = 0, sc_commit = 0;
+
+	/* Get SCFW build and commit id */
+	sc_misc_build_info(-1, &sc_build, &sc_commit);
+	if (!sc_build) {
+		printf("SCFW does not support build info\n");
+		sc_commit = 0; /* Display 0 if build info not supported */
+	}
+	printf("Build: SCFW %x\n", sc_commit);
+}
+
+int checkboard(void)
+{
+	puts("Model: Toradex Colibri iMX8X\n");
+
+	build_info();
+	print_bootinfo();
+
+	return 0;
+}
+
+int board_init(void)
+{
+	board_gpio_init();
+
+	return 0;
+}
+
+void detail_board_ddr_info(void)
+{
+	puts("\nDDR    ");
+}
+
+/*
+ * Board specific reset that is system reset.
+ */
+void reset_cpu(ulong addr)
+{
+	/* TODO */
+}
+
+#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
+int ft_board_setup(void *blob, bd_t *bd)
+{
+	return ft_common_board_setup(blob, bd);
+}
+#endif
+
+int board_mmc_get_env_dev(int devno)
+{
+	return devno;
+}
+
+int board_late_init(void)
+{
+#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
+/* TODO move to common */
+	env_set("board_name", "Colibri iMX8QXP");
+	env_set("board_rev", "v1.0");
+#endif
+
+	return 0;
+}
diff --git a/board/toradex/colibri-imx8qxp/imximage.cfg b/board/toradex/colibri-imx8qxp/imximage.cfg
new file mode 100644
index 0000000000..ce9e66c64d
--- /dev/null
+++ b/board/toradex/colibri-imx8qxp/imximage.cfg
@@ -0,0 +1,24 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright 2019 Toradex
+ *
+ * Refer doc/README.imx8image for more details about how-to configure
+ * and create imx8image boot image
+ */
+
+#define __ASSEMBLY__
+
+/* Boot from SD, sector size 0x400 */
+BOOT_FROM EMMC_FASTBOOT 0x400
+/* SoC type IMX8QX */
+SOC_TYPE IMX8QX
+/* Append seco container image */
+APPEND ahab-container.img
+/* Create the 2nd container */
+CONTAINER
+/* Add scfw image with exec attribute */
+IMAGE SCU mx8qx-colibri-scfw-tcm.bin
+/* Add ATF image with exec attribute */
+IMAGE A35 bl31.bin 0x80000000
+/* Add U-Boot image with load attribute */
+DATA A35 u-boot-dtb.bin 0x80020000
diff --git a/configs/colibri-imx8qxp_defconfig b/configs/colibri-imx8qxp_defconfig
new file mode 100644
index 0000000000..d697546ed7
--- /dev/null
+++ b/configs/colibri-imx8qxp_defconfig
@@ -0,0 +1,53 @@
+CONFIG_ARM=y
+CONFIG_ARCH_IMX8=y
+CONFIG_SYS_TEXT_BASE=0x80020000
+CONFIG_SYS_MALLOC_F_LEN=0x2000
+CONFIG_TARGET_COLIBRI_IMX8QXP=y
+CONFIG_DISTRO_DEFAULTS=y
+CONFIG_NR_DRAM_BANKS=3
+CONFIG_FIT=y
+CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/colibri-imx8qxp/imximage.cfg"
+CONFIG_LOG=y
+CONFIG_VERSION_VARIABLE=y
+# CONFIG_DISPLAY_BOARDINFO is not set
+CONFIG_BOARD_EARLY_INIT_F=y
+CONFIG_CMD_CPU=y
+# CONFIG_CMD_IMPORTENV is not set
+CONFIG_CMD_MEMTEST=y
+CONFIG_CMD_CLK=y
+CONFIG_CMD_DM=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_I2C=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_UUID=y
+CONFIG_CMD_EXT4_WRITE=y
+CONFIG_DEFAULT_DEVICE_TREE="fsl-imx8qxp-colibri"
+CONFIG_ENV_IS_IN_MMC=y
+CONFIG_CLK_IMX8=y
+CONFIG_CPU=y
+CONFIG_DM_GPIO=y
+CONFIG_MXC_GPIO=y
+CONFIG_DM_I2C=y
+CONFIG_SYS_I2C_IMX_LPI2C=y
+CONFIG_MISC=y
+CONFIG_DM_MMC=y
+CONFIG_PHYLIB=y
+CONFIG_PHY_ADDR_ENABLE=y
+CONFIG_PHY_MICREL=y
+CONFIG_DM_ETH=y
+CONFIG_FEC_MXC_SHARE_MDIO=y
+CONFIG_FEC_MXC_MDIO_BASE=0x5B040000
+CONFIG_FEC_MXC=y
+CONFIG_MII=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_IMX8=y
+CONFIG_POWER_DOMAIN=y
+CONFIG_IMX8_POWER_DOMAIN=y
+CONFIG_DM_REGULATOR=y
+CONFIG_DM_REGULATOR_FIXED=y
+CONFIG_DM_REGULATOR_GPIO=y
+CONFIG_DM_SERIAL=y
+CONFIG_FSL_LPUART=y
+CONFIG_DM_THERMAL=y
+# CONFIG_EFI_LOADER is not set
diff --git a/include/configs/colibri-imx8qxp.h b/include/configs/colibri-imx8qxp.h
new file mode 100644
index 0000000000..33cbcb44a9
--- /dev/null
+++ b/include/configs/colibri-imx8qxp.h
@@ -0,0 +1,214 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright 2019 Toradex
+ */
+
+#ifndef __COLIBRI_IMX8QXP_H
+#define __COLIBRI_IMX8QXP_H
+
+#include <asm/arch/imx-regs.h>
+#include <linux/sizes.h>
+
+#define CONFIG_REMAKE_ELF
+
+#define CONFIG_DISPLAY_BOARDINFO_LATE
+
+#undef CONFIG_CMD_EXPORTENV
+#undef CONFIG_CMD_IMPORTENV
+#undef CONFIG_CMD_IMLS
+
+#undef CONFIG_CMD_CRC32
+#undef CONFIG_BOOTM_NETBSD
+
+#define CONFIG_FSL_ESDHC
+#define CONFIG_FSL_USDHC
+#define CONFIG_SYS_FSL_ESDHC_ADDR	0
+#define USDHC1_BASE_ADDR		0x5B010000
+#define USDHC2_BASE_ADDR		0x5B020000
+#define CONFIG_SUPPORT_EMMC_BOOT	/* eMMC specific */
+
+#define CONFIG_ENV_OVERWRITE
+
+#define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
+
+#define FEC_QUIRK_ENET_MAC
+
+#define CONFIG_IP_DEFRAG
+#define CONFIG_TFTP_BLOCKSIZE		4096
+#define CONFIG_TFTP_TSIZE
+
+#define CONFIG_IPADDR			192.168.10.2
+#define CONFIG_NETMASK			255.255.255.0
+#define CONFIG_SERVERIP			192.168.10.1
+
+#define MEM_LAYOUT_ENV_SETTINGS \
+	"fdt_addr_r=0x84000000\0" \
+	"kernel_addr_r=0x82000000\0" \
+	"ramdisk_addr_r=0x84100000\0"
+
+#ifdef CONFIG_AHAB_BOOT
+#define AHAB_ENV "sec_boot=yes\0"
+#else
+#define AHAB_ENV "sec_boot=no\0"
+#endif
+
+/* Boot M4 */
+#define M4_BOOT_ENV \
+	"m4_0_image=m4_0.bin\0" \
+	"loadm4image_0=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} " \
+		"${m4_0_image}\0" \
+	"m4boot_0=run loadm4image_0; dcache flush; bootaux ${loadaddr} 0\0" \
+
+#define MFG_NAND_PARTITION ""
+
+#define BOOT_TARGET_DEVICES(func) \
+	func(MMC, mmc, 0) \
+	func(MMC, mmc, 1) \
+	func(DHCP, dhcp, na)
+#include <config_distro_bootcmd.h>
+#undef BOOTENV_RUN_NET_USB_START
+#define BOOTENV_RUN_NET_USB_START ""
+
+#define CONFIG_MFG_ENV_SETTINGS \
+	"mfgtool_args=setenv bootargs console=${console},${baudrate} " \
+		"rdinit=/linuxrc g_mass_storage.stall=0 " \
+		"g_mass_storage.removable=1 g_mass_storage.idVendor=0x066F " \
+		"g_mass_storage.idProduct=0x37FF " \
+		"g_mass_storage.iSerialNumber=\"\" "\
+		MFG_NAND_PARTITION \
+		"video=imxdpufb5:off video=imxdpufb6:off video=imxdpufb7:off " \
+		"clk_ignore_unused "\
+		"\0" \
+	"initrd_addr=0x83800000\0" \
+	"initrd_high=0xffffffff\0" \
+	"bootcmd_mfg=run mfgtool_args;booti ${loadaddr} ${initrd_addr} " \
+		"${fdt_addr};\0" \
+
+/* Initial environment variables */
+#define CONFIG_EXTRA_ENV_SETTINGS \
+	AHAB_ENV \
+	BOOTENV \
+	CONFIG_MFG_ENV_SETTINGS \
+	M4_BOOT_ENV \
+	MEM_LAYOUT_ENV_SETTINGS \
+	"boot_fdt=try\0" \
+	"bootscript=echo Running bootscript from mmc ...; source\0" \
+	"console=ttyLP3,115200 earlycon=lpuart32,0x5a090000,115200\0" \
+	"fdt_addr=0x83000000\0"			\
+	"fdt_file=fsl-imx8qxp-colibri-eval-v3.dtb\0" \
+	"fdt_high=0xffffffffffffffff\0"		\
+	"finduuid=part uuid mmc ${mmcdev}:2 uuid\0" \
+	"image=Image\0" \
+	"initrd_addr=0x83800000\0"		\
+	"initrd_high=0xffffffffffffffff\0" \
+	"loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} " \
+		"${script};\0" \
+	"loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
+	"loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
+	"mmcargs=setenv bootargs console=${console},${baudrate} " \
+		"root=PARTUUID=${uuid} rootwait " \
+	"mmcautodetect=yes\0" \
+	"mmcboot=echo Booting from mmc ...; " \
+		"run finduuid; run mmcargs; " \
+		"if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
+			"if run loadfdt; then " \
+				"booti ${loadaddr} - ${fdt_addr}; " \
+			"else " \
+				"echo WARN: Cannot load the DT; " \
+			"fi; " \
+		"else " \
+			"echo wait for boot; " \
+		"fi;\0" \
+	"mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \
+	"mmcpart=" __stringify(CONFIG_SYS_MMC_IMG_LOAD_PART) "\0" \
+	"netargs=setenv bootargs console=${console} root=/dev/nfs ip=dhcp " \
+		"nfsroot=${serverip}:${nfsroot},v3,tcp video=imxdpufb5:off " \
+		"video=imxdpufb6:off video=imxdpufb7:off\0" \
+	"netboot=echo Booting from net ...; " \
+		"run netargs; " \
+		"if test ${ip_dyn} = yes; then " \
+			"setenv get_cmd dhcp; " \
+		"else " \
+			"setenv get_cmd tftp; " \
+		"fi; " \
+		"${get_cmd} ${loadaddr} ${image}; " \
+		"if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
+			"if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \
+				"booti ${loadaddr} - ${fdt_addr}; " \
+			"else " \
+				"echo WARN: Cannot load the DT; " \
+			"fi; " \
+		"else " \
+			"booti; " \
+		"fi;\0" \
+	"nfsboot=run netargs; dhcp ${loadaddr} ${image}; tftp ${fdt_addr} " \
+		"colibri-imx8qxp/${fdt_file}; booti ${loadaddr} - " \
+		"${fdt_addr}\0" \
+	"panel=NULL\0" \
+	"script=boot.scr\0" \
+	"video=imxdpufb5:off video=imxdpufb6:off video=imxdpufb7:off\0"
+
+#undef CONFIG_BOOTCOMMAND
+#define CONFIG_BOOTCOMMAND \
+	   "mmc dev ${mmcdev}; if mmc rescan; then " \
+		   "if run loadbootscript; then " \
+			   "run bootscript; " \
+		   "else " \
+			   "if run loadimage; then " \
+				   "run mmcboot; " \
+			   "else run netboot; " \
+			   "fi; " \
+		   "fi; " \
+	   "else booti ${loadaddr} - ${fdt_addr}; fi"
+
+/* Link Definitions */
+#define CONFIG_LOADADDR			0x80280000
+
+#define CONFIG_SYS_LOAD_ADDR		CONFIG_LOADADDR
+
+#define CONFIG_SYS_INIT_SP_ADDR		0x80200000
+
+#define CONFIG_SYS_MEMTEST_START	0x88000000
+#define CONFIG_SYS_MEMTEST_END		0x89000000
+
+/* Environment in eMMC, before config block at the end of 1st "boot sector" */
+#define CONFIG_ENV_SIZE			(8 * 1024)
+#define CONFIG_ENV_OFFSET		(-CONFIG_ENV_SIZE + \
+					 CONFIG_TDX_CFG_BLOCK_OFFSET)
+#define CONFIG_SYS_MMC_ENV_DEV		0
+#define CONFIG_SYS_MMC_ENV_PART		1
+
+#define CONFIG_SYS_MMC_IMG_LOAD_PART	1
+
+/* On Colibri iMX8 USDHC1 is eMMC, USDHC2 is 4-bit SD */
+#define CONFIG_SYS_MMC_ENV_DEV		0		 /* USDHC1 eMMC */
+#define CONFIG_SYS_FSL_USDHC_NUM	2
+
+/* Size of malloc() pool */
+#define CONFIG_SYS_MALLOC_LEN		((CONFIG_ENV_SIZE + (32 * 1024)) * 1024)
+
+#define CONFIG_SYS_SDRAM_BASE		0x80000000
+#define CONFIG_NR_DRAM_BANKS		3
+#define PHYS_SDRAM_1			0x80000000
+#define PHYS_SDRAM_2			0x880000000
+#define PHYS_SDRAM_1_SIZE		0x80000000	/* 2 GB */
+#define PHYS_SDRAM_2_SIZE		0x00000000	/* 0 GB */
+
+/* Serial */
+#define CONFIG_BAUDRATE			115200
+
+/* Monitor Command Prompt */
+#define CONFIG_SYS_PROMPT_HUSH_PS2	"> "
+#define CONFIG_SYS_CBSIZE		2048
+#define CONFIG_SYS_MAXARGS		64
+#define CONFIG_SYS_BARGSIZE		CONFIG_SYS_CBSIZE
+#define CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE + \
+					sizeof(CONFIG_SYS_PROMPT) + 16)
+
+/* Generic Timer Definitions */
+#define COUNTER_FREQUENCY		8000000	/* 8MHz */
+
+#define BOOTAUX_RESERVED_MEM_BASE 0x88000000
+#define BOOTAUX_RESERVED_MEM_SIZE 0x08000000 /* Reserve from second 128MB */
+
+#endif /* __COLIBRI_IMX8QXP_H */
-- 
2.20.1

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

* [U-Boot] [PATCH v2 05/14] colibri-imx6ull: fix ethernet phy power on
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 05/14] colibri-imx6ull: fix ethernet phy power on Marcel Ziswiler
@ 2019-04-11  8:05   ` Igor Opaniuk
  0 siblings, 0 replies; 654+ messages in thread
From: Igor Opaniuk @ 2019-04-11  8:05 UTC (permalink / raw)
  To: u-boot

Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

On Tue, Apr 9, 2019 at 5:28 PM Marcel Ziswiler <marcel@ziswiler.com> wrote:
>
> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>
> Just give the new Ethernet PHY power save mode circuitry time to settle.
>
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
>
> ---
>
> Changes in v2: None
>
>  board/toradex/colibri-imx6ull/colibri-imx6ull.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/board/toradex/colibri-imx6ull/colibri-imx6ull.c b/board/toradex/colibri-imx6ull/colibri-imx6ull.c
> index fe60b8e870..b6f45edb86 100644
> --- a/board/toradex/colibri-imx6ull/colibri-imx6ull.c
> +++ b/board/toradex/colibri-imx6ull/colibri-imx6ull.c
> @@ -263,6 +263,9 @@ static int setup_fec(void)
>                         IOMUX_GPR1_FEC2_CLOCK_MUX2_SEL_MASK,
>                         IOMUX_GPR1_FEC2_CLOCK_MUX1_SEL_MASK);
>
> +       /* give new Ethernet PHY power save mode circuitry time to settle */
> +       mdelay(300);
> +
>         return 0;
>  }
>
> --
> 2.20.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot



-- 
Best regards - Freundliche Grüsse - Meilleures salutations

Senior Development Engineer,
Igor Opaniuk

Toradex AG
Altsagenstrasse 5 | 6048 Horw/Luzern | Switzerland | T: +41 41 500 48
00 (main line)

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

* [U-Boot] [PATCH v2 5/5] board: toradex: add colibri imx8qxp 2gb wb it v1.0b module support
  2019-04-09 15:25 ` [U-Boot] [PATCH v2 5/5] board: toradex: add colibri imx8qxp 2gb wb it v1.0b module support Marcel Ziswiler
@ 2019-04-11 10:47   ` Igor Opaniuk
  2019-04-26  9:20     ` Marcel Ziswiler
  2019-04-25 10:48   ` Stefano Babic
  1 sibling, 1 reply; 654+ messages in thread
From: Igor Opaniuk @ 2019-04-11 10:47 UTC (permalink / raw)
  To: u-boot

Hi Marcel,

Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Some minor comments below (can be addressed in different patch):

On Tue, Apr 9, 2019 at 5:34 PM Marcel Ziswiler <marcel@ziswiler.com> wrote:
>
> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>
> This commit adds initial support for the Toradex Colibri iMX8QXP 2GB WB
> IT V1.0B module. Unlike the V1.0A early access samples exclusively
> booting from SD card, they are now strapped to boot from eFuses which
> are factory fused to properly boot from their on-module eMMC. U-Boot
> supports either booting from the on-module eMMC or may be used for
> recovery purpose using the universal update utility (uuu) aka mfgtools
> 3.0.
>
> Functionality wise the following is known to be working:
> - eMMC and MMC/SD card
> - Ethernet
> - GPIOs
> - I2C
>
> Unfortunately, there is no USB functionality for the i.MX 8QXP as of
> yet.
>
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>
> ---
>
> Changes in v2:
> - Changed imx-atf git clone command to include initial branch
>   information as suggested by Igor.
> - Sorted board file includes alphabetically as suggested by Igor.
> - Got rid of SPL configuration in legacy header file as suggested by
>   Igor and the whole use of SPL on i.MX 8X anyway neither works well
>   nor makes any much sense at all.
>
>  arch/arm/dts/Makefile                         |   4 +-
>  arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi  | 112 ++++++
>  arch/arm/dts/fsl-imx8qxp-colibri.dts          | 328 ++++++++++++++++++
>  arch/arm/mach-imx/imx8/Kconfig                |   6 +
>  board/toradex/colibri-imx8qxp/Kconfig         |  30 ++
>  board/toradex/colibri-imx8qxp/MAINTAINERS     |   9 +
>  board/toradex/colibri-imx8qxp/Makefile        |   7 +
>  board/toradex/colibri-imx8qxp/README          |  66 ++++
>  .../toradex/colibri-imx8qxp/colibri-imx8qxp.c | 212 +++++++++++
>  board/toradex/colibri-imx8qxp/imximage.cfg    |  24 ++
>  configs/colibri-imx8qxp_defconfig             |  53 +++
>  include/configs/colibri-imx8qxp.h             | 214 ++++++++++++
>  12 files changed, 1064 insertions(+), 1 deletion(-)
>  create mode 100644 arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi
>  create mode 100644 arch/arm/dts/fsl-imx8qxp-colibri.dts
>  create mode 100644 board/toradex/colibri-imx8qxp/Kconfig
>  create mode 100644 board/toradex/colibri-imx8qxp/MAINTAINERS
>  create mode 100644 board/toradex/colibri-imx8qxp/Makefile
>  create mode 100644 board/toradex/colibri-imx8qxp/README
>  create mode 100644 board/toradex/colibri-imx8qxp/colibri-imx8qxp.c
>  create mode 100644 board/toradex/colibri-imx8qxp/imximage.cfg
>  create mode 100644 configs/colibri-imx8qxp_defconfig
>  create mode 100644 include/configs/colibri-imx8qxp.h
>
> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
> index 13d1d67624..2a551d42a4 100644
> --- a/arch/arm/dts/Makefile
> +++ b/arch/arm/dts/Makefile
> @@ -559,7 +559,9 @@ dtb-$(CONFIG_MX7) += imx7d-sdb.dtb \
>
>  dtb-$(CONFIG_ARCH_MX7ULP) += imx7ulp-evk.dtb
>
> -dtb-$(CONFIG_ARCH_IMX8) += fsl-imx8qxp-mek.dtb
> +dtb-$(CONFIG_ARCH_IMX8) += \
> +       fsl-imx8qxp-colibri.dtb \
> +       fsl-imx8qxp-mek.dtb
>
>  dtb-$(CONFIG_ARCH_IMX8M) += fsl-imx8mq-evk.dtb
>
> diff --git a/arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi b/arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi
> new file mode 100644
> index 0000000000..f8686befdf
> --- /dev/null
> +++ b/arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi
> @@ -0,0 +1,112 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR X11
> +/*
> + * Copyright 2019 Toradex AG
> + */
> +
> +&mu {
> +       u-boot,dm-spl;
> +};
> +
> +&clk {
> +       u-boot,dm-spl;
> +};
> +
> +&iomuxc {
> +       u-boot,dm-spl;
> +};
> +
> +&pd_lsio {
> +       u-boot,dm-spl;
> +};
> +
> +&pd_lsio_gpio0 {
> +       u-boot,dm-spl;
> +};
> +
> +&pd_lsio_gpio1 {
> +       u-boot,dm-spl;
> +};
> +
> +&pd_lsio_gpio2 {
> +       u-boot,dm-spl;
> +};
> +
> +&pd_lsio_gpio3 {
> +       u-boot,dm-spl;
> +};
> +
> +&pd_lsio_gpio4 {
> +       u-boot,dm-spl;
> +};
> +
> +&pd_lsio_gpio5 {
> +       u-boot,dm-spl;
> +};
> +
> +&pd_lsio_gpio6 {
> +       u-boot,dm-spl;
> +};
> +
> +&pd_lsio_gpio7 {
> +       u-boot,dm-spl;
> +};
> +
> +&pd_conn {
> +       u-boot,dm-spl;
> +};
> +
> +&pd_conn_sdch0 {
> +       u-boot,dm-spl;
> +};
> +
> +&pd_conn_sdch1 {
> +       u-boot,dm-spl;
> +};
> +
> +&pd_conn_sdch2 {
> +       u-boot,dm-spl;
> +};
> +
> +&gpio0 {
> +       u-boot,dm-spl;
> +};
> +
> +&gpio1 {
> +       u-boot,dm-spl;
> +};
> +
> +&gpio2 {
> +       u-boot,dm-spl;
> +};
> +
> +&gpio3 {
> +       u-boot,dm-spl;
> +};
> +
> +&gpio4 {
> +       u-boot,dm-spl;
> +};
> +
> +&gpio5 {
> +       u-boot,dm-spl;
> +};
> +
> +&gpio6 {
> +       u-boot,dm-spl;
> +};
> +
> +&gpio7 {
> +       u-boot,dm-spl;
> +};
> +
> +&lpuart3 {
> +       u-boot,dm-spl;
> +};
> +
> +&usdhc1 {
> +       u-boot,dm-spl;
> +};
> +
> +&usdhc2 {
> +       u-boot,dm-spl;
> +};
> diff --git a/arch/arm/dts/fsl-imx8qxp-colibri.dts b/arch/arm/dts/fsl-imx8qxp-colibri.dts
> new file mode 100644
> index 0000000000..0c20edf2cf
> --- /dev/null
> +++ b/arch/arm/dts/fsl-imx8qxp-colibri.dts
> @@ -0,0 +1,328 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR X11
> +/*
> + * Copyright 2019 Toradex AG
> + */
> +
> +/dts-v1/;
> +
> +#include "fsl-imx8qxp.dtsi"
> +#include "fsl-imx8qxp-colibri-u-boot.dtsi"
> +
> +/ {
> +       model = "Toradex Colibri iMX8QXP";
> +       compatible = "toradex,colibri-imx8qxp", "fsl,imx8qxp";
> +
> +       chosen {
> +               bootargs = "console=ttyLP3,115200 earlycon=lpuart32,0x5a090000,115200";
> +               stdout-path = &lpuart3;
> +       };
> +
> +       reg_usbh_vbus: regulator-usbh-vbus {
> +               compatible = "regulator-fixed";
> +               pinctrl-names = "default";
> +               pinctrl-0 = <&pinctrl_usbh1_reg>;
> +               regulator-name = "usbh_vbus";
> +               regulator-min-microvolt = <5000000>;
> +               regulator-max-microvolt = <5000000>;
> +               gpio = <&gpio4 3 GPIO_ACTIVE_LOW>;
> +       };
> +};
> +
> +&iomuxc {
> +       pinctrl-names = "default";
> +       pinctrl-0 = <&pinctrl_hog0>, <&pinctrl_hog1>, <&pinctrl_hog2>;
> +
> +       colibri-imx8qxp {
> +               pinctrl_lpuart0: lpuart0grp {
> +                       fsl,pins = <
> +                               SC_P_UART0_RX_ADMA_UART0_RX     0x06000020
> +                               SC_P_UART0_TX_ADMA_UART0_TX     0x06000020
> +                       >;
> +               };
> +
> +               pinctrl_lpuart3: lpuart3grp {
> +                       fsl,pins = <
> +                               SC_P_FLEXCAN2_RX_ADMA_UART3_RX  0x06000020
> +                               SC_P_FLEXCAN2_TX_ADMA_UART3_TX  0x06000020
> +                       >;
> +               };
> +
> +               pinctrl_lpuart3_ctrl: lpuart3ctrlgrp {
> +                       fsl,pins = <
> +                               SC_P_MIPI_DSI1_GPIO0_01_LSIO_GPIO2_IO00 0x00000020 /* DTR */
> +                               SC_P_SAI1_RXD_LSIO_GPIO0_IO29           0x00000020 /* CTS */
> +                               SC_P_SAI1_RXC_LSIO_GPIO0_IO30           0x00000020 /* RTS */
> +                               SC_P_CSI_RESET_LSIO_GPIO3_IO03          0x00000020 /* DSR */
> +                               SC_P_USDHC1_CD_B_LSIO_GPIO4_IO22        0x00000020 /* DCD */
> +                               SC_P_CSI_EN_LSIO_GPIO3_IO02             0x00000020 /* RI */
> +                       >;
> +               };
> +
> +               pinctrl_fec1: fec1grp {
> +                       fsl,pins = <
> +                               SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENETB0_PAD      0x000014a0 /* Use pads in 3.3V mode */
> +                               SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENETB1_PAD      0x000014a0 /* Use pads in 3.3V mode */
> +                               SC_P_ENET0_MDC_CONN_ENET0_MDC                   0x06000020
> +                               SC_P_ENET0_MDIO_CONN_ENET0_MDIO                 0x06000020
> +                               SC_P_ENET0_RGMII_TX_CTL_CONN_ENET0_RGMII_TX_CTL 0x00000061
> +                               SC_P_ENET0_RGMII_TXC_CONN_ENET0_RCLK50M_OUT     0x06000061
> +                               SC_P_ENET0_RGMII_TXD0_CONN_ENET0_RGMII_TXD0     0x00000061
> +                               SC_P_ENET0_RGMII_TXD1_CONN_ENET0_RGMII_TXD1     0x00000061
> +                               SC_P_ENET0_RGMII_RX_CTL_CONN_ENET0_RGMII_RX_CTL 0x00000061
> +                               SC_P_ENET0_RGMII_RXD0_CONN_ENET0_RGMII_RXD0     0x00000061
> +                               SC_P_ENET0_RGMII_RXD1_CONN_ENET0_RGMII_RXD1     0x00000061
> +                               SC_P_ENET0_RGMII_RXD2_CONN_ENET0_RMII_RX_ER     0x00000061
> +                       >;
> +               };
> +
> +               pinctrl_gpio_bl_on: gpio-bl-on {
> +                       fsl,pins = <
> +                               SC_P_QSPI0A_DATA3_LSIO_GPIO3_IO12       0x00000040
> +                       >;
> +               };
> +
> +               pinctrl_hog0: hog0grp {
> +                       fsl,pins = <
> +                               SC_P_COMP_CTL_GPIO_1V8_3V3_GPIORHB_PAD  0x000514a0 /* Use pads in 3.3V mode */
> +                       >;
> +               };
> +
> +               pinctrl_hog1: hog1grp {
> +                       fsl,pins = <
> +                               SC_P_QSPI0A_DATA1_LSIO_GPIO3_IO10       0x00000020 /*  45 */
> +                               SC_P_ENET0_RGMII_TXD3_LSIO_GPIO5_IO02   0x06000020 /*  65 */
> +                                       SC_P_CSI_D07_CI_PI_D09          0x00000061
> +                               SC_P_QSPI0A_DATA2_LSIO_GPIO3_IO11       0x00000020 /*  69 */
> +                               SC_P_QSPI0A_DQS_LSIO_GPIO3_IO13         0x00000020 /*  73 */
> +                               SC_P_SAI0_TXC_LSIO_GPIO0_IO26           0x00000020 /*  79 */
> +                                       SC_P_CSI_D02_CI_PI_D04          0x00000061
> +                               SC_P_ENET0_RGMII_RXC_LSIO_GPIO5_IO03    0x06000020 /*  85 */
> +                                       SC_P_CSI_D06_CI_PI_D08          0x00000061
> +                               SC_P_QSPI0B_SCLK_LSIO_GPIO3_IO17        0x00000020 /*  95 */
> +                               SC_P_SAI0_RXD_LSIO_GPIO0_IO27           0x00000020 /*  97 */
> +                                       SC_P_CSI_D03_CI_PI_D05          0x00000061
> +                               SC_P_QSPI0B_DATA0_LSIO_GPIO3_IO18       0x00000020 /*  99 */
> +                               SC_P_SAI0_TXFS_LSIO_GPIO0_IO28          0x00000020 /* 101 */
> +                                       SC_P_CSI_D00_CI_PI_D02          0x00000061
> +                               SC_P_SAI0_TXD_LSIO_GPIO0_IO25           0x00000020 /* 103 */
> +                                       SC_P_CSI_D01_CI_PI_D03          0x00000061

I seems that in 20 lines above alignment is broken a bit.

> +                               SC_P_QSPI0B_DATA1_LSIO_GPIO3_IO19       0x00000020 /* 105 */
> +                               SC_P_QSPI0B_DATA2_LSIO_GPIO3_IO20       0x00000020 /* 107 */
> +                               SC_P_USB_SS3_TC2_LSIO_GPIO4_IO05        0x00000020 /* 127 */
> +                               SC_P_USB_SS3_TC3_LSIO_GPIO4_IO06        0x00000020 /* 131 */
> +                               SC_P_USB_SS3_TC1_LSIO_GPIO4_IO04        0x00000020 /* 133 */
> +                               SC_P_CSI_PCLK_LSIO_GPIO3_IO00           0x00000020 /*  96 */
> +                               SC_P_QSPI0B_DATA3_LSIO_GPIO3_IO21       0x00000020 /*  98 */
> +                               SC_P_SAI1_RXFS_LSIO_GPIO0_IO31          0x00000020 /* 100 */
> +                               SC_P_QSPI0B_DQS_LSIO_GPIO3_IO22         0x00000020 /* 102 */
> +                               SC_P_QSPI0B_SS0_B_LSIO_GPIO3_IO23       0x00000020 /* 104 */
> +                               SC_P_QSPI0B_SS1_B_LSIO_GPIO3_IO24       0x00000020 /* 106 */
> +                       >;
> +               };
> +
> +               pinctrl_hog2: hog2grp {
> +                       fsl,pins = <
> +                               SC_P_CSI_MCLK_LSIO_GPIO3_IO01           0x00000020 /*  75 */
> +                               SC_P_QSPI0A_SS0_B_LSIO_GPIO3_IO14       0x00000020 /*  77 */
> +                               SC_P_QSPI0A_SS1_B_LSIO_GPIO3_IO15       0x00000020 /*  89 */
> +                               SC_P_QSPI0A_SCLK_LSIO_GPIO3_IO16        0x00000020 /*  93 */
> +                       >;
> +               };
> +
> +               /* Off Module I2C */
> +               pinctrl_i2c1: i2c1grp {
> +                       fsl,pins = <
> +                               SC_P_MIPI_DSI0_GPIO0_00_ADMA_I2C1_SCL   0x06000021
> +                               SC_P_MIPI_DSI0_GPIO0_01_ADMA_I2C1_SDA   0x06000021
> +                       >;
> +               };
> +
> +               /*INT*/
> +               pinctrl_usb3503a: usb3503a-grp {
> +                       fsl,pins = <
> +                               SC_P_MIPI_CSI0_MCLK_OUT_LSIO_GPIO3_IO04 0x00000061
> +                       >;
> +               };
> +
> +               pinctrl_usbc_det: usbc-det {
> +                       fsl,pins = <
> +                               SC_P_ENET0_REFCLK_125M_25M_LSIO_GPIO5_IO09      0x06000040
> +                       >;
> +               };
> +
> +               pinctrl_usbh1_reg: usbh1-reg {
> +                       fsl,pins = <
> +                               SC_P_USB_SS3_TC0_LSIO_GPIO4_IO03        0x06000040
> +                       >;
> +               };
> +
> +               pinctrl_usdhc1: usdhc1grp {
> +                       fsl,pins = <
> +                               SC_P_EMMC0_CLK_CONN_EMMC0_CLK           0x06000041
> +                               SC_P_EMMC0_CMD_CONN_EMMC0_CMD           0x00000021
> +                               SC_P_EMMC0_DATA0_CONN_EMMC0_DATA0       0x00000021
> +                               SC_P_EMMC0_DATA1_CONN_EMMC0_DATA1       0x00000021
> +                               SC_P_EMMC0_DATA2_CONN_EMMC0_DATA2       0x00000021
> +                               SC_P_EMMC0_DATA3_CONN_EMMC0_DATA3       0x00000021
> +                               SC_P_EMMC0_DATA4_CONN_EMMC0_DATA4       0x00000021
> +                               SC_P_EMMC0_DATA5_CONN_EMMC0_DATA5       0x00000021
> +                               SC_P_EMMC0_DATA6_CONN_EMMC0_DATA6       0x00000021
> +                               SC_P_EMMC0_DATA7_CONN_EMMC0_DATA7       0x00000021
> +                               SC_P_EMMC0_STROBE_CONN_EMMC0_STROBE     0x00000041
> +                               SC_P_EMMC0_RESET_B_CONN_EMMC0_RESET_B   0x00000021
> +                       >;
> +               };
> +
> +               pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
> +                       fsl,pins = <
> +                               SC_P_EMMC0_CLK_CONN_EMMC0_CLK           0x06000041
> +                               SC_P_EMMC0_CMD_CONN_EMMC0_CMD           0x00000021
> +                               SC_P_EMMC0_DATA0_CONN_EMMC0_DATA0       0x00000021
> +                               SC_P_EMMC0_DATA1_CONN_EMMC0_DATA1       0x00000021
> +                               SC_P_EMMC0_DATA2_CONN_EMMC0_DATA2       0x00000021
> +                               SC_P_EMMC0_DATA3_CONN_EMMC0_DATA3       0x00000021
> +                               SC_P_EMMC0_DATA4_CONN_EMMC0_DATA4       0x00000021
> +                               SC_P_EMMC0_DATA5_CONN_EMMC0_DATA5       0x00000021
> +                               SC_P_EMMC0_DATA6_CONN_EMMC0_DATA6       0x00000021
> +                               SC_P_EMMC0_DATA7_CONN_EMMC0_DATA7       0x00000021
> +                               SC_P_EMMC0_STROBE_CONN_EMMC0_STROBE     0x00000041
> +                               SC_P_EMMC0_RESET_B_CONN_EMMC0_RESET_B   0x00000021
> +                       >;
> +               };
> +
> +               pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
> +                       fsl,pins = <
> +                               SC_P_EMMC0_CLK_CONN_EMMC0_CLK           0x06000041
> +                               SC_P_EMMC0_CMD_CONN_EMMC0_CMD           0x00000021
> +                               SC_P_EMMC0_DATA0_CONN_EMMC0_DATA0       0x00000021
> +                               SC_P_EMMC0_DATA1_CONN_EMMC0_DATA1       0x00000021
> +                               SC_P_EMMC0_DATA2_CONN_EMMC0_DATA2       0x00000021
> +                               SC_P_EMMC0_DATA3_CONN_EMMC0_DATA3       0x00000021
> +                               SC_P_EMMC0_DATA4_CONN_EMMC0_DATA4       0x00000021
> +                               SC_P_EMMC0_DATA5_CONN_EMMC0_DATA5       0x00000021
> +                               SC_P_EMMC0_DATA6_CONN_EMMC0_DATA6       0x00000021
> +                               SC_P_EMMC0_DATA7_CONN_EMMC0_DATA7       0x00000021
> +                               SC_P_EMMC0_STROBE_CONN_EMMC0_STROBE     0x00000041
> +                               SC_P_EMMC0_RESET_B_CONN_EMMC0_RESET_B   0x00000021
> +                       >;
> +               };
> +
> +               pinctrl_usdhc2_gpio: usdhc2gpiogrp {
> +                       fsl,pins = <
> +                               SC_P_QSPI0A_DATA0_LSIO_GPIO3_IO09       0x06000021
> +                       >;
> +               };
> +
> +               pinctrl_usdhc2: usdhc2grp {
> +                       fsl,pins = <
> +                               SC_P_USDHC1_CLK_CONN_USDHC1_CLK         0x06000041
> +                               SC_P_USDHC1_CMD_CONN_USDHC1_CMD         0x00000021
> +                               SC_P_USDHC1_DATA0_CONN_USDHC1_DATA0     0x00000021
> +                               SC_P_USDHC1_DATA1_CONN_USDHC1_DATA1     0x00000021
> +                               SC_P_USDHC1_DATA2_CONN_USDHC1_DATA2     0x00000021
> +                               SC_P_USDHC1_DATA3_CONN_USDHC1_DATA3     0x00000021
> +                               SC_P_USDHC1_VSELECT_CONN_USDHC1_VSELECT 0x00000021
> +                       >;
> +               };
> +
> +               pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
> +                       fsl,pins = <
> +                               SC_P_USDHC1_CLK_CONN_USDHC1_CLK         0x06000041
> +                               SC_P_USDHC1_CMD_CONN_USDHC1_CMD         0x00000021
> +                               SC_P_USDHC1_DATA0_CONN_USDHC1_DATA0     0x00000021
> +                               SC_P_USDHC1_DATA1_CONN_USDHC1_DATA1     0x00000021
> +                               SC_P_USDHC1_DATA2_CONN_USDHC1_DATA2     0x00000021
> +                               SC_P_USDHC1_DATA3_CONN_USDHC1_DATA3     0x00000021
> +                               SC_P_USDHC1_VSELECT_CONN_USDHC1_VSELECT 0x00000021
> +                       >;
> +               };
> +
> +               pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
> +                       fsl,pins = <
> +                               SC_P_USDHC1_CLK_CONN_USDHC1_CLK         0x06000041
> +                               SC_P_USDHC1_CMD_CONN_USDHC1_CMD         0x00000021
> +                               SC_P_USDHC1_DATA0_CONN_USDHC1_DATA0     0x00000021
> +                               SC_P_USDHC1_DATA1_CONN_USDHC1_DATA1     0x00000021
> +                               SC_P_USDHC1_DATA2_CONN_USDHC1_DATA2     0x00000021
> +                               SC_P_USDHC1_DATA3_CONN_USDHC1_DATA3     0x00000021
> +                               SC_P_USDHC1_VSELECT_CONN_USDHC1_VSELECT 0x00000021
> +                       >;
> +               };
> +       };
> +};
> +
> +&lpuart0 {
> +       pinctrl-names = "default";
> +       pinctrl-0 = <&pinctrl_lpuart0>;
> +       status = "okay";
> +};
> +
> +&lpuart3 {
> +       pinctrl-names = "default";
> +       pinctrl-0 = <&pinctrl_lpuart3>, <&pinctrl_lpuart3_ctrl>;
> +       status = "okay";
> +};
> +
> +&gpio0 {
> +       status = "okay";
> +};
> +
> +&gpio1 {
> +       status = "okay";
> +};
> +
> +&gpio3 {
> +       status = "okay";
> +};
> +
> +&gpio4 {
> +       status = "okay";
> +};
> +
> +&fec1 {
> +       phy-handle = <&ethphy0>;
> +       phy-mode = "rmii";
> +       pinctrl-names = "default";
> +       pinctrl-0 = <&pinctrl_fec1>;
> +       status = "okay";
> +
> +       mdio {
> +               #address-cells = <1>;
> +               #size-cells = <0>;
> +
> +               ethphy0: ethernet-phy at 2 {
> +                       compatible = "ethernet-phy-ieee802.3-c22";
> +                       max-speed = <100>;
> +                       reg = <2>;
> +               };
> +       };
> +};
> +
> +&i2c1 {
> +       #address-cells = <1>;
> +       #size-cells = <0>;
> +       clock-frequency = <100000>;
> +       pinctrl-names = "default";
> +       pinctrl-0 = <&pinctrl_i2c1>;
> +       status = "okay";
> +};
> +
> +&usdhc1 {
> +       bus-width = <8>;
> +       non-removable;
> +       pinctrl-names = "default", "state_100mhz", "state_200mhz";
> +       pinctrl-0 = <&pinctrl_usdhc1>;
> +       pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
> +       pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
> +       status = "okay";
> +};
> +
> +&usdhc2 {
> +       bus-width = <4>;
> +       cd-gpios = <&gpio3 9 GPIO_ACTIVE_LOW>;
> +       pinctrl-names = "default", "state_100mhz", "state_200mhz";
> +       pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
> +       pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
> +       pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
> +       status = "okay";
> +};
> diff --git a/arch/arm/mach-imx/imx8/Kconfig b/arch/arm/mach-imx/imx8/Kconfig
> index f76a139684..feea07f135 100644
> --- a/arch/arm/mach-imx/imx8/Kconfig
> +++ b/arch/arm/mach-imx/imx8/Kconfig
> @@ -22,6 +22,11 @@ choice
>         prompt "i.MX8 board select"
>         optional
>
> +config TARGET_COLIBRI_IMX8QXP
> +       bool "Support Colibri iMX8QXP module"
> +       select BOARD_LATE_INIT
> +       select IMX8QXP
> +
>  config TARGET_IMX8QXP_MEK
>         bool "Support i.MX8QXP MEK board"
>         select BOARD_LATE_INIT
> @@ -30,5 +35,6 @@ config TARGET_IMX8QXP_MEK
>  endchoice
>
>  source "board/freescale/imx8qxp_mek/Kconfig"
> +source "board/toradex/colibri-imx8qxp/Kconfig"
>
>  endif
> diff --git a/board/toradex/colibri-imx8qxp/Kconfig b/board/toradex/colibri-imx8qxp/Kconfig
> new file mode 100644
> index 0000000000..340fe72816
> --- /dev/null
> +++ b/board/toradex/colibri-imx8qxp/Kconfig
> @@ -0,0 +1,30 @@
> +if TARGET_COLIBRI_IMX8QXP
> +
> +config SYS_BOARD
> +       default "colibri-imx8qxp"
> +
> +config SYS_VENDOR
> +       default "toradex"
> +
> +config SYS_CONFIG_NAME
> +       default "colibri-imx8qxp"
> +
> +config TDX_CFG_BLOCK
> +       default y
> +
> +config TDX_HAVE_MMC
> +       default y
> +
> +config TDX_CFG_BLOCK_DEV
> +       default "0"
> +
> +config TDX_CFG_BLOCK_PART
> +       default "1"
> +
> +# Toradex config block in eMMC, at the end of 1st "boot sector"
> +config TDX_CFG_BLOCK_OFFSET
> +       default "-512"
> +
> +source "board/toradex/common/Kconfig"
> +
> +endif
> diff --git a/board/toradex/colibri-imx8qxp/MAINTAINERS b/board/toradex/colibri-imx8qxp/MAINTAINERS
> new file mode 100644
> index 0000000000..39a9eb79b7
> --- /dev/null
> +++ b/board/toradex/colibri-imx8qxp/MAINTAINERS
> @@ -0,0 +1,9 @@
> +Colibri iMX8QXP
> +M:     Marcel Ziswiler <marcel.ziswiler@toradex.com>
> +W:     http://developer.toradex.com/software/linux/linux-software
> +S:     Maintained
> +F:     arch/arm/dts/fsl-imx8qxp-colibri.dts
> +F:     arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi
> +F:     board/toradex/colibri-imx8qxp/
> +F:     configs/colibri-imx8qxp_defconfig
> +F:     include/configs/colibri-imx8qxp.h
> diff --git a/board/toradex/colibri-imx8qxp/Makefile b/board/toradex/colibri-imx8qxp/Makefile
> new file mode 100644
> index 0000000000..f6342e1dca
> --- /dev/null
> +++ b/board/toradex/colibri-imx8qxp/Makefile
> @@ -0,0 +1,7 @@
> +#
> +# Copyright 2019 Toradex
> +#
> +# SPDX-License-Identifier:     GPL-2.0+

SPDX line should be in the beginning of the file.

> +#
> +
> +obj-y += colibri-imx8qxp.o
> diff --git a/board/toradex/colibri-imx8qxp/README b/board/toradex/colibri-imx8qxp/README
> new file mode 100644
> index 0000000000..e68d183fe6
> --- /dev/null
> +++ b/board/toradex/colibri-imx8qxp/README
> @@ -0,0 +1,66 @@
> +U-Boot for the Toradex Colibri iMX8QXP V1.0B module
> +
> +Quick Start
> +===========
> +
> +- Build the ARM trusted firmware binary
> +- Get scfw_tcm.bin and ahab-container.img
> +- Build U-Boot
> +- Load U-Boot binary using uuu
> +- Flash U-Boot binary into the eMMC
> +- Boot
> +
> +Get and Build the ARM Trusted Firmware
> +======================================
> +
> +$ git clone -b imx_4.14.78_1.0.0_ga https://source.codeaurora.org/external/imx/imx-atf
> +$ cd imx-atf/
> +$ make PLAT=imx8qxp bl31
> +
> +Get scfw_tcm.bin and ahab-container.img
> +=======================================
> +
> +$ wget https://github.com/toradex/meta-fsl-bsp-release/blob/toradex-sumo-4.14.78-1.0.0_ga-bringup/imx/meta-bsp/recipes-bsp/imx-sc-firmware/files/mx8qx-colibri-scfw-tcm.bin?raw=true
> +$ mv mx8qx-colibri-scfw-tcm.bin\?raw\=true mx8qx-colibri-scfw-tcm.bin
> +$ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-7.6.bin
> +$ chmod +x firmware-imx-7.6.bin
> +$ ./firmware-imx-7.6.bin
> +
> +Copy the following binaries to the U-Boot folder:
> +
> +$ cp imx-atf/build/imx8qxp/release/bl31.bin .
> +$ cp u-boot/u-boot.bin .
> +
> +Copy the following firmware to the U-Boot folder:
> +
> +$ cp firmware-imx-7.6/firmware/seco/ahab-container.img .
> +
> +Build U-Boot
> +============
> +
> +$ make colibri-imx8qxp_defconfig
> +$ make u-boot-dtb.imx
> +
> +Load the U-Boot Binary Using UUU
> +================================
> +
> +Get the latest version of the universal update utility (uuu) aka mfgtools 3.0:
> +
> +https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fgithub.com%2FNXPmicro%2Fmfgtools%2Freleases
> +
> +Put the module into USB recovery aka serial downloader mode, connect USB device
> +to your host and execute uuu:
> +
> +sudo ./uuu u-boot/u-boot-dtb.imx
> +
> +Flash the U-Boot Binary into the eMMC
> +=====================================
> +
> +Burn the u-boot-dtb.imx binary to the primary eMMC hardware boot area partition:
> +
> +load mmc 1:1 $loadaddr u-boot-dtb.imx
> +setexpr blkcnt ${filesize} + 0x1ff && setexpr blkcnt ${blkcnt} / 0x200
> +mmc dev 0 1
> +mmc write ${loadaddr} 0x0 ${blkcnt}
> +
> +Boot
> diff --git a/board/toradex/colibri-imx8qxp/colibri-imx8qxp.c b/board/toradex/colibri-imx8qxp/colibri-imx8qxp.c
> new file mode 100644
> index 0000000000..9aa0f096d2
> --- /dev/null
> +++ b/board/toradex/colibri-imx8qxp/colibri-imx8qxp.c
> @@ -0,0 +1,212 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright 2019 Toradex
> + */
> +
> +#include <common.h>
> +
> +#include <asm/arch/clock.h>
> +#include <asm/arch/imx8-pins.h>
> +#include <asm/arch/iomux.h>
> +#include <asm/arch/sci/sci.h>
> +#include <asm/arch/sys_proto.h>
> +#include <asm/gpio.h>
> +#include <asm/io.h>
> +#include <asm/mach-imx/video.h>
> +#include <dm.h>
> +#include <environment.h>
> +#include <errno.h>
> +#include <fdt_support.h>
> +#include <fsl_esdhc.h>
> +#include <fsl_ifc.h>
> +#include <i2c.h>
> +#include <linux/libfdt.h>
> +#include <malloc.h>
> +#include <netdev.h>
> +#include <power-domain.h>
> +#include <usb.h>
> +
> +#include "../common/tdx-cfg-block.h"
> +
> +DECLARE_GLOBAL_DATA_PTR;
> +
> +#define GPIO_PAD_CTRL  ((SC_PAD_CONFIG_NORMAL << PADRING_CONFIG_SHIFT) | \
> +                        (SC_PAD_ISO_OFF << PADRING_LPCONFIG_SHIFT) | \
> +                        (SC_PAD_28FDSOI_DSE_DV_HIGH << PADRING_DSE_SHIFT) | \
> +                        (SC_PAD_28FDSOI_PS_PU << PADRING_PULL_SHIFT))
> +
> +#define UART_PAD_CTRL  ((SC_PAD_CONFIG_OUT_IN << PADRING_CONFIG_SHIFT) | \
> +                        (SC_PAD_ISO_OFF << PADRING_LPCONFIG_SHIFT) | \
> +                        (SC_PAD_28FDSOI_DSE_DV_HIGH << PADRING_DSE_SHIFT) | \
> +                        (SC_PAD_28FDSOI_PS_PU << PADRING_PULL_SHIFT))
> +
> +static iomux_cfg_t uart3_pads[] = {
> +       SC_P_FLEXCAN2_RX | MUX_MODE_ALT(2) | MUX_PAD_CTRL(UART_PAD_CTRL),
> +       SC_P_FLEXCAN2_TX | MUX_MODE_ALT(2) | MUX_PAD_CTRL(UART_PAD_CTRL),
> +       /* Transceiver FORCEOFF# signal, mux to use pullup */
> +       SC_P_QSPI0B_DQS | MUX_MODE_ALT(4) | MUX_PAD_CTRL(UART_PAD_CTRL),
> +};
> +
> +static void setup_iomux_uart(void)
> +{
> +       imx8_iomux_setup_multiple_pads(uart3_pads, ARRAY_SIZE(uart3_pads));
> +}
> +
> +int board_early_init_f(void)
> +{
> +       sc_pm_clock_rate_t rate;
> +       sc_err_t err = 0;
> +
> +       /*
> +        * This works around that having only UART3 up the baudrate is 1.2M
> +        * instead of 115.2k. Set UART0 clock root to 80 MHz
> +        */
> +       rate = 80000000;
> +       err = sc_pm_set_clock_rate(-1, SC_R_UART_0, SC_PM_CLK_PER, &rate);
> +       if (err != SC_ERR_NONE)
> +               return 0;
> +
> +       /* Power up UART3 */
> +       err = sc_pm_set_resource_power_mode(-1, SC_R_UART_3, SC_PM_PW_MODE_ON);
> +       if (err != SC_ERR_NONE)
> +               return 0;
> +
> +       /* Set UART3 clock root to 80 MHz */
> +       rate = 80000000;
> +       err = sc_pm_set_clock_rate(-1, SC_R_UART_3, SC_PM_CLK_PER, &rate);
> +       if (err != SC_ERR_NONE)
> +               return 0;
> +
> +       /* Enable UART3 clock root */
> +       err = sc_pm_clock_enable(-1, SC_R_UART_3, SC_PM_CLK_PER, true, false);
> +       if (err != SC_ERR_NONE)
> +               return 0;
> +
> +       setup_iomux_uart();
> +
> +       return 0;
> +}
> +
> +#undef CONFIG_MXC_GPIO /* TODO */
> +#ifdef CONFIG_MXC_GPIO
> +#define IOEXP_RESET IMX_GPIO_NR(1, 1)
> +
> +static iomux_cfg_t board_gpios[] = {
> +       SC_P_SPI2_SDO | MUX_MODE_ALT(4) | MUX_PAD_CTRL(GPIO_PAD_CTRL),
> +       SC_P_ENET0_REFCLK_125M_25M | MUX_MODE_ALT(4) | \
> +               MUX_PAD_CTRL(GPIO_PAD_CTRL),
> +};
> +
> +static void board_gpio_init(void)
> +{
> +       struct gpio_desc desc;
> +       int ret;
> +
> +       ret = dm_gpio_lookup_name("gpio at 1a_3", &desc);
> +       if (ret)
> +               return;
> +
> +       ret = dm_gpio_request(&desc, "bb_per_rst_b");
> +       if (ret)
> +               return;
> +
> +       dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT);
> +       dm_gpio_set_value(&desc, 0);
> +       udelay(50);
> +       dm_gpio_set_value(&desc, 1);
> +
> +       imx8_iomux_setup_multiple_pads(board_gpios, ARRAY_SIZE(board_gpios));
> +
> +       /* enable i2c port expander assert reset line */
> +       gpio_request(IOEXP_RESET, "ioexp_rst");
> +       gpio_direction_output(IOEXP_RESET, 1);
> +}
> +#else
> +static inline void board_gpio_init(void) {}
> +#endif
> +
> +#if IS_ENABLED(CONFIG_FEC_MXC)
> +#include <miiphy.h>
> +
> +int board_phy_config(struct phy_device *phydev)
> +{
> +       phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x1f);
> +       phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x8);
> +
> +       phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x00);
> +       phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x82ee);
> +       phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x05);
> +       phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x100);
> +
> +       if (phydev->drv->config)
> +               phydev->drv->config(phydev);
> +
> +       return 0;
> +}
> +#endif
> +
> +void build_info(void)
> +{
> +       u32 sc_build = 0, sc_commit = 0;
> +
> +       /* Get SCFW build and commit id */
> +       sc_misc_build_info(-1, &sc_build, &sc_commit);
> +       if (!sc_build) {
> +               printf("SCFW does not support build info\n");
> +               sc_commit = 0; /* Display 0 if build info not supported */
> +       }
> +       printf("Build: SCFW %x\n", sc_commit);
> +}
> +
> +int checkboard(void)
> +{
> +       puts("Model: Toradex Colibri iMX8X\n");
> +
> +       build_info();
> +       print_bootinfo();
> +
> +       return 0;
> +}
> +
> +int board_init(void)
> +{
> +       board_gpio_init();
> +
> +       return 0;
> +}
> +
> +void detail_board_ddr_info(void)
> +{
> +       puts("\nDDR    ");
> +}
> +
> +/*
> + * Board specific reset that is system reset.
> + */
> +void reset_cpu(ulong addr)
> +{
> +       /* TODO */
> +}
> +
> +#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
> +int ft_board_setup(void *blob, bd_t *bd)
> +{
> +       return ft_common_board_setup(blob, bd);
> +}
> +#endif
> +
> +int board_mmc_get_env_dev(int devno)
> +{
> +       return devno;
> +}
> +
> +int board_late_init(void)
> +{
> +#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
> +/* TODO move to common */
> +       env_set("board_name", "Colibri iMX8QXP");
> +       env_set("board_rev", "v1.0");
> +#endif
> +
> +       return 0;
> +}
> diff --git a/board/toradex/colibri-imx8qxp/imximage.cfg b/board/toradex/colibri-imx8qxp/imximage.cfg
> new file mode 100644
> index 0000000000..ce9e66c64d
> --- /dev/null
> +++ b/board/toradex/colibri-imx8qxp/imximage.cfg
> @@ -0,0 +1,24 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +/*
> + * Copyright 2019 Toradex
> + *
> + * Refer doc/README.imx8image for more details about how-to configure
> + * and create imx8image boot image
> + */
> +
> +#define __ASSEMBLY__
> +
> +/* Boot from SD, sector size 0x400 */
> +BOOT_FROM EMMC_FASTBOOT 0x400
> +/* SoC type IMX8QX */
> +SOC_TYPE IMX8QX
> +/* Append seco container image */
> +APPEND ahab-container.img
> +/* Create the 2nd container */
> +CONTAINER
> +/* Add scfw image with exec attribute */
> +IMAGE SCU mx8qx-colibri-scfw-tcm.bin
> +/* Add ATF image with exec attribute */
> +IMAGE A35 bl31.bin 0x80000000
> +/* Add U-Boot image with load attribute */
> +DATA A35 u-boot-dtb.bin 0x80020000
> diff --git a/configs/colibri-imx8qxp_defconfig b/configs/colibri-imx8qxp_defconfig
> new file mode 100644
> index 0000000000..d697546ed7
> --- /dev/null
> +++ b/configs/colibri-imx8qxp_defconfig
> @@ -0,0 +1,53 @@
> +CONFIG_ARM=y
> +CONFIG_ARCH_IMX8=y
> +CONFIG_SYS_TEXT_BASE=0x80020000
> +CONFIG_SYS_MALLOC_F_LEN=0x2000
> +CONFIG_TARGET_COLIBRI_IMX8QXP=y
> +CONFIG_DISTRO_DEFAULTS=y
> +CONFIG_NR_DRAM_BANKS=3
> +CONFIG_FIT=y
> +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/colibri-imx8qxp/imximage.cfg"
> +CONFIG_LOG=y
> +CONFIG_VERSION_VARIABLE=y
> +# CONFIG_DISPLAY_BOARDINFO is not set
> +CONFIG_BOARD_EARLY_INIT_F=y
> +CONFIG_CMD_CPU=y
> +# CONFIG_CMD_IMPORTENV is not set
> +CONFIG_CMD_MEMTEST=y
> +CONFIG_CMD_CLK=y
> +CONFIG_CMD_DM=y
> +CONFIG_CMD_GPIO=y
> +CONFIG_CMD_I2C=y
> +CONFIG_CMD_MMC=y
> +CONFIG_CMD_CACHE=y
> +CONFIG_CMD_UUID=y
> +CONFIG_CMD_EXT4_WRITE=y
> +CONFIG_DEFAULT_DEVICE_TREE="fsl-imx8qxp-colibri"
> +CONFIG_ENV_IS_IN_MMC=y
> +CONFIG_CLK_IMX8=y
> +CONFIG_CPU=y
> +CONFIG_DM_GPIO=y
> +CONFIG_MXC_GPIO=y
> +CONFIG_DM_I2C=y
> +CONFIG_SYS_I2C_IMX_LPI2C=y
> +CONFIG_MISC=y
> +CONFIG_DM_MMC=y
> +CONFIG_PHYLIB=y
> +CONFIG_PHY_ADDR_ENABLE=y
> +CONFIG_PHY_MICREL=y
> +CONFIG_DM_ETH=y
> +CONFIG_FEC_MXC_SHARE_MDIO=y
> +CONFIG_FEC_MXC_MDIO_BASE=0x5B040000
> +CONFIG_FEC_MXC=y
> +CONFIG_MII=y
> +CONFIG_PINCTRL=y
> +CONFIG_PINCTRL_IMX8=y
> +CONFIG_POWER_DOMAIN=y
> +CONFIG_IMX8_POWER_DOMAIN=y
> +CONFIG_DM_REGULATOR=y
> +CONFIG_DM_REGULATOR_FIXED=y
> +CONFIG_DM_REGULATOR_GPIO=y
> +CONFIG_DM_SERIAL=y
> +CONFIG_FSL_LPUART=y
> +CONFIG_DM_THERMAL=y
> +# CONFIG_EFI_LOADER is not set
> diff --git a/include/configs/colibri-imx8qxp.h b/include/configs/colibri-imx8qxp.h
> new file mode 100644
> index 0000000000..33cbcb44a9
> --- /dev/null
> +++ b/include/configs/colibri-imx8qxp.h
> @@ -0,0 +1,214 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +/*
> + * Copyright 2019 Toradex
> + */
> +
> +#ifndef __COLIBRI_IMX8QXP_H
> +#define __COLIBRI_IMX8QXP_H
> +
> +#include <asm/arch/imx-regs.h>
> +#include <linux/sizes.h>
> +
> +#define CONFIG_REMAKE_ELF
> +
> +#define CONFIG_DISPLAY_BOARDINFO_LATE
> +
> +#undef CONFIG_CMD_EXPORTENV
> +#undef CONFIG_CMD_IMPORTENV
> +#undef CONFIG_CMD_IMLS
> +
> +#undef CONFIG_CMD_CRC32
> +#undef CONFIG_BOOTM_NETBSD
> +
> +#define CONFIG_FSL_ESDHC
> +#define CONFIG_FSL_USDHC
> +#define CONFIG_SYS_FSL_ESDHC_ADDR      0
> +#define USDHC1_BASE_ADDR               0x5B010000
> +#define USDHC2_BASE_ADDR               0x5B020000
> +#define CONFIG_SUPPORT_EMMC_BOOT       /* eMMC specific */
> +
> +#define CONFIG_ENV_OVERWRITE
> +
> +#define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
> +
> +#define FEC_QUIRK_ENET_MAC
> +
> +#define CONFIG_IP_DEFRAG
> +#define CONFIG_TFTP_BLOCKSIZE          4096

4096 can be replaced with SZ_4K (from include/linux/sizes.h)

> +#define CONFIG_TFTP_TSIZE
> +
> +#define CONFIG_IPADDR                  192.168.10.2
> +#define CONFIG_NETMASK                 255.255.255.0
> +#define CONFIG_SERVERIP                        192.168.10.1
> +
> +#define MEM_LAYOUT_ENV_SETTINGS \
> +       "fdt_addr_r=0x84000000\0" \
> +       "kernel_addr_r=0x82000000\0" \
> +       "ramdisk_addr_r=0x84100000\0"
> +
> +#ifdef CONFIG_AHAB_BOOT
> +#define AHAB_ENV "sec_boot=yes\0"
> +#else
> +#define AHAB_ENV "sec_boot=no\0"
> +#endif
> +
> +/* Boot M4 */
> +#define M4_BOOT_ENV \
> +       "m4_0_image=m4_0.bin\0" \
> +       "loadm4image_0=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} " \
> +               "${m4_0_image}\0" \
> +       "m4boot_0=run loadm4image_0; dcache flush; bootaux ${loadaddr} 0\0" \
> +
> +#define MFG_NAND_PARTITION ""
> +
> +#define BOOT_TARGET_DEVICES(func) \
> +       func(MMC, mmc, 0) \
> +       func(MMC, mmc, 1) \
> +       func(DHCP, dhcp, na)
> +#include <config_distro_bootcmd.h>
> +#undef BOOTENV_RUN_NET_USB_START
> +#define BOOTENV_RUN_NET_USB_START ""
> +
> +#define CONFIG_MFG_ENV_SETTINGS \
> +       "mfgtool_args=setenv bootargs console=${console},${baudrate} " \
> +               "rdinit=/linuxrc g_mass_storage.stall=0 " \
> +               "g_mass_storage.removable=1 g_mass_storage.idVendor=0x066F " \
> +               "g_mass_storage.idProduct=0x37FF " \
> +               "g_mass_storage.iSerialNumber=\"\" "\
> +               MFG_NAND_PARTITION \
> +               "video=imxdpufb5:off video=imxdpufb6:off video=imxdpufb7:off " \
> +               "clk_ignore_unused "\
> +               "\0" \
> +       "initrd_addr=0x83800000\0" \
> +       "initrd_high=0xffffffff\0" \
> +       "bootcmd_mfg=run mfgtool_args;booti ${loadaddr} ${initrd_addr} " \
> +               "${fdt_addr};\0" \
> +
> +/* Initial environment variables */
> +#define CONFIG_EXTRA_ENV_SETTINGS \
> +       AHAB_ENV \
> +       BOOTENV \
> +       CONFIG_MFG_ENV_SETTINGS \
> +       M4_BOOT_ENV \
> +       MEM_LAYOUT_ENV_SETTINGS \
> +       "boot_fdt=try\0" \
> +       "bootscript=echo Running bootscript from mmc ...; source\0" \
> +       "console=ttyLP3,115200 earlycon=lpuart32,0x5a090000,115200\0" \
> +       "fdt_addr=0x83000000\0"                 \
> +       "fdt_file=fsl-imx8qxp-colibri-eval-v3.dtb\0" \
> +       "fdt_high=0xffffffffffffffff\0"         \
> +       "finduuid=part uuid mmc ${mmcdev}:2 uuid\0" \
> +       "image=Image\0" \
> +       "initrd_addr=0x83800000\0"              \
> +       "initrd_high=0xffffffffffffffff\0" \
> +       "loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} " \
> +               "${script};\0" \
> +       "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
> +       "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
> +       "mmcargs=setenv bootargs console=${console},${baudrate} " \
> +               "root=PARTUUID=${uuid} rootwait " \
> +       "mmcautodetect=yes\0" \
> +       "mmcboot=echo Booting from mmc ...; " \
> +               "run finduuid; run mmcargs; " \
> +               "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
> +                       "if run loadfdt; then " \
> +                               "booti ${loadaddr} - ${fdt_addr}; " \
> +                       "else " \
> +                               "echo WARN: Cannot load the DT; " \
> +                       "fi; " \
> +               "else " \
> +                       "echo wait for boot; " \
> +               "fi;\0" \
> +       "mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \
> +       "mmcpart=" __stringify(CONFIG_SYS_MMC_IMG_LOAD_PART) "\0" \
> +       "netargs=setenv bootargs console=${console} root=/dev/nfs ip=dhcp " \
> +               "nfsroot=${serverip}:${nfsroot},v3,tcp video=imxdpufb5:off " \
> +               "video=imxdpufb6:off video=imxdpufb7:off\0" \
> +       "netboot=echo Booting from net ...; " \
> +               "run netargs; " \
> +               "if test ${ip_dyn} = yes; then " \
> +                       "setenv get_cmd dhcp; " \
> +               "else " \
> +                       "setenv get_cmd tftp; " \
> +               "fi; " \
> +               "${get_cmd} ${loadaddr} ${image}; " \
> +               "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
> +                       "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \
> +                               "booti ${loadaddr} - ${fdt_addr}; " \
> +                       "else " \
> +                               "echo WARN: Cannot load the DT; " \
> +                       "fi; " \
> +               "else " \
> +                       "booti; " \
> +               "fi;\0" \
> +       "nfsboot=run netargs; dhcp ${loadaddr} ${image}; tftp ${fdt_addr} " \
> +               "colibri-imx8qxp/${fdt_file}; booti ${loadaddr} - " \
> +               "${fdt_addr}\0" \
> +       "panel=NULL\0" \
> +       "script=boot.scr\0" \
> +       "video=imxdpufb5:off video=imxdpufb6:off video=imxdpufb7:off\0"
> +
> +#undef CONFIG_BOOTCOMMAND
> +#define CONFIG_BOOTCOMMAND \
> +          "mmc dev ${mmcdev}; if mmc rescan; then " \
> +                  "if run loadbootscript; then " \
> +                          "run bootscript; " \
> +                  "else " \
> +                          "if run loadimage; then " \
> +                                  "run mmcboot; " \
> +                          "else run netboot; " \
> +                          "fi; " \
> +                  "fi; " \
> +          "else booti ${loadaddr} - ${fdt_addr}; fi"
> +
> +/* Link Definitions */
> +#define CONFIG_LOADADDR                        0x80280000
> +
> +#define CONFIG_SYS_LOAD_ADDR           CONFIG_LOADADDR
> +
> +#define CONFIG_SYS_INIT_SP_ADDR                0x80200000
> +
> +#define CONFIG_SYS_MEMTEST_START       0x88000000
> +#define CONFIG_SYS_MEMTEST_END         0x89000000
> +
> +/* Environment in eMMC, before config block at the end of 1st "boot sector" */
> +#define CONFIG_ENV_SIZE                        (8 * 1024)

 (8 * 1024) can be replaced with SZ_8K (from include/linux/sizes.h)

> +#define CONFIG_ENV_OFFSET              (-CONFIG_ENV_SIZE + \
> +                                        CONFIG_TDX_CFG_BLOCK_OFFSET)
> +#define CONFIG_SYS_MMC_ENV_DEV         0
> +#define CONFIG_SYS_MMC_ENV_PART                1
> +
> +#define CONFIG_SYS_MMC_IMG_LOAD_PART   1
> +
> +/* On Colibri iMX8 USDHC1 is eMMC, USDHC2 is 4-bit SD */
> +#define CONFIG_SYS_MMC_ENV_DEV         0                /* USDHC1 eMMC */
> +#define CONFIG_SYS_FSL_USDHC_NUM       2
> +
> +/* Size of malloc() pool */
> +#define CONFIG_SYS_MALLOC_LEN          ((CONFIG_ENV_SIZE + (32 * 1024)) * 1024)
> +
> +#define CONFIG_SYS_SDRAM_BASE          0x80000000
> +#define CONFIG_NR_DRAM_BANKS           3
> +#define PHYS_SDRAM_1                   0x80000000
> +#define PHYS_SDRAM_2                   0x880000000
> +#define PHYS_SDRAM_1_SIZE              0x80000000      /* 2 GB */
0x80000000 can be replaced with SZ_2G (from include/linux/sizes.h)
> +#define PHYS_SDRAM_2_SIZE              0x00000000      /* 0 GB */
> +
> +/* Serial */
> +#define CONFIG_BAUDRATE                        115200
> +
> +/* Monitor Command Prompt */
> +#define CONFIG_SYS_PROMPT_HUSH_PS2     "> "
> +#define CONFIG_SYS_CBSIZE              2048

Same as above

> +#define CONFIG_SYS_MAXARGS             64
> +#define CONFIG_SYS_BARGSIZE            CONFIG_SYS_CBSIZE
> +#define CONFIG_SYS_PBSIZE              (CONFIG_SYS_CBSIZE + \
> +                                       sizeof(CONFIG_SYS_PROMPT) + 16)
> +
> +/* Generic Timer Definitions */
> +#define COUNTER_FREQUENCY              8000000 /* 8MHz */
> +
> +#define BOOTAUX_RESERVED_MEM_BASE 0x88000000
> +#define BOOTAUX_RESERVED_MEM_SIZE 0x08000000 /* Reserve from second 128MB */
Same as above
> +
> +#endif /* __COLIBRI_IMX8QXP_H */
> --
> 2.20.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot



-- 
Best regards - Freundliche Grüsse - Meilleures salutations

Igor Opaniuk

mailto: igor.opaniuk at gmail.com
skype: igor.opanyuk
+380 (93) 836 40 67
http://ua.linkedin.com/in/iopaniuk

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

* [U-Boot] [PATCH 1/8] imx: sip: add call_imx_sip_ret2
@ 2019-04-12  7:54 Peng Fan
  2019-04-12  7:54 ` [U-Boot] [PATCH 2/8] imx8: fuse: add fuse driver Peng Fan
                   ` (6 more replies)
  0 siblings, 7 replies; 654+ messages in thread
From: Peng Fan @ 2019-04-12  7:54 UTC (permalink / raw)
  To: u-boot

This function will be used by i.MX8 fuse driver.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 arch/arm/include/asm/mach-imx/sys_proto.h |  3 +++
 arch/arm/mach-imx/sip.c                   | 22 ++++++++++++++++++++++
 2 files changed, 25 insertions(+)

diff --git a/arch/arm/include/asm/mach-imx/sys_proto.h b/arch/arm/include/asm/mach-imx/sys_proto.h
index d0f866b630..4925dd7894 100644
--- a/arch/arm/include/asm/mach-imx/sys_proto.h
+++ b/arch/arm/include/asm/mach-imx/sys_proto.h
@@ -134,4 +134,7 @@ int mxs_wait_mask_clr(struct mxs_register_32 *reg, u32 mask, u32 timeout);
 
 unsigned long call_imx_sip(unsigned long id, unsigned long reg0,
 			   unsigned long reg1, unsigned long reg2);
+unsigned long call_imx_sip_ret2(unsigned long id, unsigned long reg0,
+				unsigned long *reg1, unsigned long reg2,
+				unsigned long reg3);
 #endif
diff --git a/arch/arm/mach-imx/sip.c b/arch/arm/mach-imx/sip.c
index 813c2ae5e1..968e7cf309 100644
--- a/arch/arm/mach-imx/sip.c
+++ b/arch/arm/mach-imx/sip.c
@@ -20,3 +20,25 @@ unsigned long call_imx_sip(unsigned long id, unsigned long reg0,
 
 	return regs.regs[0];
 }
+
+/*
+ * Do an SMC call to return 2 registers by having reg1 passed in by reference
+ */
+unsigned long call_imx_sip_ret2(unsigned long id, unsigned long reg0,
+				unsigned long *reg1, unsigned long reg2,
+				unsigned long reg3)
+{
+	struct pt_regs regs;
+
+	regs.regs[0] = id;
+	regs.regs[1] = reg0;
+	regs.regs[2] = *reg1;
+	regs.regs[3] = reg2;
+	regs.regs[4] = reg3;
+
+	smc_call(&regs);
+
+	*reg1 = regs.regs[1];
+
+	return regs.regs[0];
+}
-- 
2.16.4

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

* [U-Boot] [PATCH 2/8] imx8: fuse: add fuse driver
  2019-04-12  7:54 [U-Boot] [PATCH 1/8] imx: sip: add call_imx_sip_ret2 Peng Fan
@ 2019-04-12  7:54 ` Peng Fan
  2019-04-12  7:54 ` [U-Boot] [PATCH 3/8] imx8qxp: mek: Enable CMD_FUSE Peng Fan
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2019-04-12  7:54 UTC (permalink / raw)
  To: u-boot

Add fuse write for i.MX8

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 drivers/misc/imx8/Makefile |  1 +
 drivers/misc/imx8/fuse.c   | 86 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 87 insertions(+)
 create mode 100644 drivers/misc/imx8/fuse.c

diff --git a/drivers/misc/imx8/Makefile b/drivers/misc/imx8/Makefile
index ee05893cbb..48fdb5b61c 100644
--- a/drivers/misc/imx8/Makefile
+++ b/drivers/misc/imx8/Makefile
@@ -1,3 +1,4 @@
 # SPDX-License-Identifier: GPL-2.0+
 
 obj-y += scu_api.o scu.o
+obj-$(CONFIG_CMD_FUSE) += fuse.o
diff --git a/drivers/misc/imx8/fuse.c b/drivers/misc/imx8/fuse.c
new file mode 100644
index 0000000000..29d2256a22
--- /dev/null
+++ b/drivers/misc/imx8/fuse.c
@@ -0,0 +1,86 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2019 NXP
+ */
+
+#include <common.h>
+#include <console.h>
+#include <errno.h>
+#include <fuse.h>
+#include <asm/arch/sci/sci.h>
+#include <asm/arch/sys_proto.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+#define FSL_ECC_WORD_START_1	 0x10
+#define FSL_ECC_WORD_END_1	 0x10F
+
+#ifdef CONFIG_IMX8QXP
+#define FSL_ECC_WORD_START_2	 0x220
+#define FSL_ECC_WORD_END_2	 0x31F
+
+#define FSL_QXP_FUSE_GAP_START	 0x110
+#define FSL_QXP_FUSE_GAP_END	 0x21F
+#endif
+
+#define FSL_SIP_OTP_READ             0xc200000A
+#define FSL_SIP_OTP_WRITE            0xc200000B
+
+int fuse_read(u32 bank, u32 word, u32 *val)
+{
+	return fuse_sense(bank, word, val);
+}
+
+int fuse_sense(u32 bank, u32 word, u32 *val)
+{
+	unsigned long ret = 0, value = 0;
+
+	if (bank != 0) {
+		printf("Invalid bank argument, ONLY bank 0 is supported\n");
+		return -EINVAL;
+	}
+
+	ret = call_imx_sip_ret2(FSL_SIP_OTP_READ, (unsigned long)word, &value,
+				0, 0);
+	*val = (u32)value;
+
+	return ret;
+}
+
+int fuse_prog(u32 bank, u32 word, u32 val)
+{
+	if (bank != 0) {
+		printf("Invalid bank argument, ONLY bank 0 is supported\n");
+		return -EINVAL;
+	}
+
+	if (IS_ENABLED(CONFIG_IMX8QXP)) {
+		if (word >= FSL_QXP_FUSE_GAP_START &&
+		    word <= FSL_QXP_FUSE_GAP_END) {
+			printf("Invalid word argument for this SoC\n");
+			return -EINVAL;
+		}
+	}
+
+	if ((word >= FSL_ECC_WORD_START_1 && word <= FSL_ECC_WORD_END_1) ||
+	    (word >= FSL_ECC_WORD_START_2 && word <= FSL_ECC_WORD_END_2)) {
+		puts("Warning: Words in this index range have ECC protection\n"
+		     "and can only be programmed once per word. Individual bit\n"
+		     "operations will be rejected after the first one.\n"
+		     "\n\n Really program this word? <y/N>\n");
+
+		if (!confirm_yesno()) {
+			puts("Word programming aborted\n");
+			return -EPERM;
+		}
+	}
+
+	return call_imx_sip(FSL_SIP_OTP_WRITE, (unsigned long)word,
+			    (unsigned long)val, 0);
+}
+
+int fuse_override(u32 bank, u32 word, u32 val)
+{
+	printf("Override fuse to i.MX8 in u-boot is forbidden\n");
+	return -EPERM;
+}
-- 
2.16.4

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

* [U-Boot] [PATCH 3/8] imx8qxp: mek: Enable CMD_FUSE
  2019-04-12  7:54 [U-Boot] [PATCH 1/8] imx: sip: add call_imx_sip_ret2 Peng Fan
  2019-04-12  7:54 ` [U-Boot] [PATCH 2/8] imx8: fuse: add fuse driver Peng Fan
@ 2019-04-12  7:54 ` Peng Fan
  2019-04-12  7:55 ` [U-Boot] [PATCH 4/8] misc: imx8: add sc_misc_get_temp Peng Fan
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2019-04-12  7:54 UTC (permalink / raw)
  To: u-boot

Enable CMD_FUSE for i.MX8QXP MEK

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 configs/imx8qxp_mek_defconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/configs/imx8qxp_mek_defconfig b/configs/imx8qxp_mek_defconfig
index a94998b8b5..14e9da386a 100644
--- a/configs/imx8qxp_mek_defconfig
+++ b/configs/imx8qxp_mek_defconfig
@@ -27,6 +27,7 @@ CONFIG_CMD_CPU=y
 # CONFIG_CMD_IMPORTENV is not set
 CONFIG_CMD_CLK=y
 CONFIG_CMD_DM=y
+CONFIG_CMD_FUSE=y
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_MMC=y
-- 
2.16.4

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

* [U-Boot] [PATCH 4/8] misc: imx8: add sc_misc_get_temp
  2019-04-12  7:54 [U-Boot] [PATCH 1/8] imx: sip: add call_imx_sip_ret2 Peng Fan
  2019-04-12  7:54 ` [U-Boot] [PATCH 2/8] imx8: fuse: add fuse driver Peng Fan
  2019-04-12  7:54 ` [U-Boot] [PATCH 3/8] imx8qxp: mek: Enable CMD_FUSE Peng Fan
@ 2019-04-12  7:55 ` Peng Fan
  2019-04-12  7:55 ` [U-Boot] [PATCH 5/8] thermal: add i.MX8 thermal driver Peng Fan
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2019-04-12  7:55 UTC (permalink / raw)
  To: u-boot

Add sc_misc_get_temp to support get temperature

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 arch/arm/include/asm/arch-imx8/sci/sci.h          |  2 ++
 arch/arm/include/asm/arch-imx8/sci/svc/misc/api.h |  1 +
 drivers/misc/imx8/scu_api.c                       | 28 +++++++++++++++++++++++
 3 files changed, 31 insertions(+)

diff --git a/arch/arm/include/asm/arch-imx8/sci/sci.h b/arch/arm/include/asm/arch-imx8/sci/sci.h
index d1621669e2..ccf45d71f7 100644
--- a/arch/arm/include/asm/arch-imx8/sci/sci.h
+++ b/arch/arm/include/asm/arch-imx8/sci/sci.h
@@ -76,6 +76,8 @@ void sc_misc_get_boot_dev(sc_ipc_t ipc, sc_rsrc_t *boot_dev);
 void sc_misc_boot_status(sc_ipc_t ipc, sc_misc_boot_status_t status);
 void sc_misc_build_info(sc_ipc_t ipc, u32 *build, u32 *commit);
 int sc_misc_otp_fuse_read(sc_ipc_t ipc, u32 word, u32 *val);
+int sc_misc_get_temp(sc_ipc_t ipc, sc_rsrc_t resource, sc_misc_temp_t temp,
+		     s16 *celsius, s8 *tenths);
 
 /* RM API */
 sc_bool_t sc_rm_is_memreg_owned(sc_ipc_t ipc, sc_rm_mr_t mr);
diff --git a/arch/arm/include/asm/arch-imx8/sci/svc/misc/api.h b/arch/arm/include/asm/arch-imx8/sci/svc/misc/api.h
index 5d17b553d7..3629eb68d7 100644
--- a/arch/arm/include/asm/arch-imx8/sci/svc/misc/api.h
+++ b/arch/arm/include/asm/arch-imx8/sci/svc/misc/api.h
@@ -26,5 +26,6 @@
 #define SC_MISC_REL_CONTAINER	2U	/* Release container */
 
 typedef u8 sc_misc_boot_status_t;
+typedef u8 sc_misc_temp_t;
 
 #endif /* SC_MISC_API_H */
diff --git a/drivers/misc/imx8/scu_api.c b/drivers/misc/imx8/scu_api.c
index d9c4d5d784..031bc0048b 100644
--- a/drivers/misc/imx8/scu_api.c
+++ b/drivers/misc/imx8/scu_api.c
@@ -273,6 +273,34 @@ int sc_misc_otp_fuse_read(sc_ipc_t ipc, u32 word, u32 *val)
 	return 0;
 }
 
+int sc_misc_get_temp(sc_ipc_t ipc, sc_rsrc_t resource, sc_misc_temp_t temp,
+		     s16 *celsius, s8 *tenths)
+{
+	struct udevice *dev = gd->arch.scu_dev;
+	int size = sizeof(struct sc_rpc_msg_s);
+	struct sc_rpc_msg_s msg;
+	int ret;
+
+	RPC_VER(&msg) = SC_RPC_VERSION;
+	RPC_SVC(&msg) = (u8)SC_RPC_SVC_MISC;
+	RPC_FUNC(&msg) = (u8)MISC_FUNC_GET_TEMP;
+	RPC_U16(&msg, 0U) = (u16)resource;
+	RPC_U8(&msg, 2U) = (u8)temp;
+	RPC_SIZE(&msg) = 2U;
+
+	ret = misc_call(dev, SC_FALSE, &msg, size, &msg, size);
+	if (ret < 0)
+		return ret;
+
+	if (celsius)
+		*celsius = RPC_I16(&msg, 0U);
+
+	if (tenths)
+		*tenths = RPC_I8(&msg, 2U);
+
+	return 0;
+}
+
 /* RM */
 sc_bool_t sc_rm_is_memreg_owned(sc_ipc_t ipc, sc_rm_mr_t mr)
 {
-- 
2.16.4

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

* [U-Boot] [PATCH 5/8] thermal: add i.MX8 thermal driver
  2019-04-12  7:54 [U-Boot] [PATCH 1/8] imx: sip: add call_imx_sip_ret2 Peng Fan
                   ` (2 preceding siblings ...)
  2019-04-12  7:55 ` [U-Boot] [PATCH 4/8] misc: imx8: add sc_misc_get_temp Peng Fan
@ 2019-04-12  7:55 ` Peng Fan
  2019-04-12  7:55 ` [U-Boot] [PATCH 6/8] imx8: cpu: get temperature when print cpu desc Peng Fan
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2019-04-12  7:55 UTC (permalink / raw)
  To: u-boot

Add i.MX8 thermal driver to support get temperature from SCU.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 drivers/thermal/Kconfig           |   9 ++
 drivers/thermal/Makefile          |   1 +
 drivers/thermal/imx_scu_thermal.c | 203 ++++++++++++++++++++++++++++++++++++++
 3 files changed, 213 insertions(+)
 create mode 100644 drivers/thermal/imx_scu_thermal.c

diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig
index a71b9be5fb..bdf8dc6fef 100644
--- a/drivers/thermal/Kconfig
+++ b/drivers/thermal/Kconfig
@@ -17,6 +17,15 @@ config IMX_THERMAL
           cpufreq is used as the cooling device to throttle CPUs when the
           passive trip is crossed.
 
+config IMX_SCU_THERMAL
+	bool "Temperature sensor driver for NXP i.MX8"
+	depends on ARCH_IMX8
+	help
+	  Support for Temperature sensors on NXP i.MX8.
+	  It supports one critical trip point and one passive trip point. The
+	  boot is hold to the cool device to throttle CPUs when the passive
+	  trip is crossed
+
 config TI_DRA7_THERMAL
         bool "Temperature sensor driver for TI dra7xx SOCs"
         help
diff --git a/drivers/thermal/Makefile b/drivers/thermal/Makefile
index cc75e387e4..ef2929d180 100644
--- a/drivers/thermal/Makefile
+++ b/drivers/thermal/Makefile
@@ -5,4 +5,5 @@
 
 obj-$(CONFIG_DM_THERMAL) += thermal-uclass.o
 obj-$(CONFIG_IMX_THERMAL) += imx_thermal.o
+obj-$(CONFIG_IMX_SCU_THERMAL) += imx_scu_thermal.o
 obj-$(CONFIG_TI_DRA7_THERMAL) += ti-bandgap.o
diff --git a/drivers/thermal/imx_scu_thermal.c b/drivers/thermal/imx_scu_thermal.c
new file mode 100644
index 0000000000..7e17377b69
--- /dev/null
+++ b/drivers/thermal/imx_scu_thermal.c
@@ -0,0 +1,203 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2019 NXP
+ */
+
+#include <config.h>
+#include <common.h>
+#include <dm.h>
+#include <errno.h>
+#include <thermal.h>
+#include <dm/device-internal.h>
+#include <dm/device.h>
+#include <asm/arch/sci/sci.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+struct imx_sc_thermal_plat {
+	int critical;
+	int alert;
+	int polling_delay;
+	int id;
+	bool zone_node;
+};
+
+static int read_temperature(struct udevice *dev, int *temp)
+{
+	s16 celsius;
+	s8 tenths;
+	int ret;
+
+	sc_rsrc_t *sensor_rsrc = (sc_rsrc_t *)dev_get_driver_data(dev);
+
+	struct imx_sc_thermal_plat *pdata = dev_get_platdata(dev);
+
+	if (!temp)
+		return -EINVAL;
+
+	ret = sc_misc_get_temp(-1, sensor_rsrc[pdata->id], SC_C_TEMP,
+			       &celsius, &tenths);
+	if (ret) {
+		printf("Error: get temperature failed! (error = %d)\n", ret);
+		return ret;
+	}
+
+	*temp = celsius * 1000 + tenths * 100;
+
+	return 0;
+}
+
+int imx_sc_thermal_get_temp(struct udevice *dev, int *temp)
+{
+	struct imx_sc_thermal_plat *pdata = dev_get_platdata(dev);
+	int cpu_temp = 0;
+	int ret;
+
+	ret = read_temperature(dev, &cpu_temp);
+	if (ret)
+		return ret;
+
+	while (cpu_temp >= pdata->alert) {
+		printf("CPU Temperature (%dC) has beyond alert (%dC), close to critical (%dC)",
+		       cpu_temp, pdata->alert, pdata->critical);
+		puts(" waiting...\n");
+		mdelay(pdata->polling_delay);
+		ret = read_temperature(dev, &cpu_temp);
+		if (ret)
+			return ret;
+	}
+
+	*temp = cpu_temp / 1000;
+
+	return 0;
+}
+
+static const struct dm_thermal_ops imx_sc_thermal_ops = {
+	.get_temp	= imx_sc_thermal_get_temp,
+};
+
+static int imx_sc_thermal_probe(struct udevice *dev)
+{
+	debug("%s dev name %s\n", __func__, dev->name);
+	return 0;
+}
+
+static int imx_sc_thermal_bind(struct udevice *dev)
+{
+	struct imx_sc_thermal_plat *pdata = dev_get_platdata(dev);
+	int reg, ret;
+	int offset;
+	const char *name;
+	const void *prop;
+
+	debug("%s dev name %s\n", __func__, dev->name);
+
+	prop = fdt_getprop(gd->fdt_blob, dev_of_offset(dev), "compatible",
+			   NULL);
+	if (!prop)
+		return 0;
+
+	pdata->zone_node = 1;
+
+	reg = fdtdec_get_int(gd->fdt_blob, dev_of_offset(dev), "tsens-num", 0);
+	if (reg == 0) {
+		printf("%s: no temp sensor number provided!\n", __func__);
+		return -EINVAL;
+	}
+
+	offset = fdt_subnode_offset(gd->fdt_blob, 0, "thermal-zones");
+	fdt_for_each_subnode(offset, gd->fdt_blob, offset) {
+		/* Bind the subnode to this driver */
+		name = fdt_get_name(gd->fdt_blob, offset, NULL);
+
+		ret = device_bind_with_driver_data(dev, dev->driver, name,
+						   dev->driver_data,
+						   offset_to_ofnode(offset),
+						   NULL);
+		if (ret)
+			printf("Error binding driver '%s': %d\n",
+			       dev->driver->name, ret);
+	}
+	return 0;
+}
+
+static int imx_sc_thermal_ofdata_to_platdata(struct udevice *dev)
+{
+	struct imx_sc_thermal_plat *pdata = dev_get_platdata(dev);
+	struct fdtdec_phandle_args args;
+	const char *type;
+	int ret;
+	int trips_np;
+
+	debug("%s dev name %s\n", __func__, dev->name);
+
+	if (pdata->zone_node)
+		return 0;
+
+	ret = fdtdec_parse_phandle_with_args(gd->fdt_blob, dev_of_offset(dev),
+					     "thermal-sensors",
+					     "#thermal-sensor-cells",
+					     0, 0, &args);
+	if (ret)
+		return ret;
+
+	if (args.node != dev_of_offset(dev->parent))
+		return -EFAULT;
+
+	if (args.args_count >= 1)
+		pdata->id = args.args[0];
+	else
+		pdata->id = 0;
+
+	debug("args.args_count %d, id %d\n", args.args_count, pdata->id);
+
+	pdata->polling_delay = fdtdec_get_int(gd->fdt_blob, dev_of_offset(dev),
+					      "polling-delay", 1000);
+
+	trips_np = fdt_subnode_offset(gd->fdt_blob, dev_of_offset(dev),
+				      "trips");
+	fdt_for_each_subnode(trips_np, gd->fdt_blob, trips_np) {
+		type = fdt_getprop(gd->fdt_blob, trips_np, "type", NULL);
+		if (type) {
+			if (strcmp(type, "critical") == 0) {
+				pdata->critical = fdtdec_get_int(gd->fdt_blob,
+								 trips_np,
+								 "temperature",
+								 85);
+			} else if (strcmp(type, "passive") == 0) {
+				pdata->alert = fdtdec_get_int(gd->fdt_blob,
+							      trips_np,
+							      "temperature",
+							      80);
+			}
+		}
+	}
+
+	debug("id %d polling_delay %d, critical %d, alert %d\n", pdata->id,
+	      pdata->polling_delay, pdata->critical, pdata->alert);
+
+	return 0;
+}
+
+static const sc_rsrc_t imx8qxp_sensor_rsrc[] = {
+	SC_R_SYSTEM, SC_R_DRC_0, SC_R_PMIC_0,
+	SC_R_PMIC_1, SC_R_PMIC_2,
+};
+
+static const struct udevice_id imx_sc_thermal_ids[] = {
+	{ .compatible = "nxp,imx8qxp-sc-tsens", .data =
+		(ulong)&imx8qxp_sensor_rsrc, },
+	{ }
+};
+
+U_BOOT_DRIVER(imx_sc_thermal) = {
+	.name	= "imx_sc_thermal",
+	.id	= UCLASS_THERMAL,
+	.ops	= &imx_sc_thermal_ops,
+	.of_match = imx_sc_thermal_ids,
+	.bind = imx_sc_thermal_bind,
+	.probe	= imx_sc_thermal_probe,
+	.ofdata_to_platdata = imx_sc_thermal_ofdata_to_platdata,
+	.platdata_auto_alloc_size = sizeof(struct imx_sc_thermal_plat),
+	.flags  = DM_FLAG_PRE_RELOC,
+};
-- 
2.16.4

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

* [U-Boot] [PATCH 6/8] imx8: cpu: get temperature when print cpu desc
  2019-04-12  7:54 [U-Boot] [PATCH 1/8] imx: sip: add call_imx_sip_ret2 Peng Fan
                   ` (3 preceding siblings ...)
  2019-04-12  7:55 ` [U-Boot] [PATCH 5/8] thermal: add i.MX8 thermal driver Peng Fan
@ 2019-04-12  7:55 ` Peng Fan
  2019-04-25 10:35   ` Stefano Babic
  2019-04-12  7:55 ` [U-Boot] [PATCH 7/8] imx: imx8dx/qxp: enable thermal Peng Fan
  2019-04-12  7:55 ` [U-Boot] [PATCH 8/8] imx8: mek: move HUSH_PARSER to defconfig Peng Fan
  6 siblings, 1 reply; 654+ messages in thread
From: Peng Fan @ 2019-04-12  7:55 UTC (permalink / raw)
  To: u-boot

Read the temperature when print cpu inforation.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 arch/arm/mach-imx/imx8/cpu.c | 35 +++++++++++++++++++++++++++++++++--
 1 file changed, 33 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-imx/imx8/cpu.c b/arch/arm/mach-imx/imx8/cpu.c
index 4bbc956f9d..25b010489b 100644
--- a/arch/arm/mach-imx/imx8/cpu.c
+++ b/arch/arm/mach-imx/imx8/cpu.c
@@ -11,6 +11,7 @@
 #include <dm/lists.h>
 #include <dm/uclass.h>
 #include <errno.h>
+#include <thermal.h>
 #include <asm/arch/sci/sci.h>
 #include <asm/arch/sys_proto.h>
 #include <asm/arch-imx/cpu.h>
@@ -571,15 +572,45 @@ const char *get_core_name(void)
 		return "?";
 }
 
+#if defined(CONFIG_IMX_SCU_THERMAL)
+static int cpu_imx_get_temp(void)
+{
+	struct udevice *thermal_dev;
+	int cpu_tmp, ret;
+
+	ret = uclass_get_device_by_name(UCLASS_THERMAL, "cpu-thermal0",
+					&thermal_dev);
+
+	if (!ret) {
+		ret = thermal_get_temp(thermal_dev, &cpu_tmp);
+		if (ret)
+			return 0xdeadbeef;
+	} else {
+		return 0xdeadbeef;
+	}
+
+	return cpu_tmp;
+}
+#endif
+
 int cpu_imx_get_desc(struct udevice *dev, char *buf, int size)
 {
 	struct cpu_imx_platdata *plat = dev_get_platdata(dev);
+	int ret;
 
 	if (size < 100)
 		return -ENOSPC;
 
-	snprintf(buf, size, "NXP i.MX8%s Rev%s %s@%u MHz\n",
-		 plat->type, plat->rev, plat->name, plat->freq_mhz);
+	ret = snprintf(buf, size, "NXP i.MX8%s Rev%s %s at %u MHz",
+		       plat->type, plat->rev, plat->name, plat->freq_mhz);
+
+	if (IS_ENABLED(CONFIG_IMX_SCU_THERMAL)) {
+		buf = buf + ret;
+		size = size - ret;
+		ret = snprintf(buf, size, " at %dC", cpu_imx_get_temp());
+	}
+
+	snprintf(buf + ret, size - ret, "\n");
 
 	return 0;
 }
-- 
2.16.4

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

* [U-Boot] [PATCH 7/8] imx: imx8dx/qxp: enable thermal
  2019-04-12  7:54 [U-Boot] [PATCH 1/8] imx: sip: add call_imx_sip_ret2 Peng Fan
                   ` (4 preceding siblings ...)
  2019-04-12  7:55 ` [U-Boot] [PATCH 6/8] imx8: cpu: get temperature when print cpu desc Peng Fan
@ 2019-04-12  7:55 ` Peng Fan
  2019-04-12  7:55 ` [U-Boot] [PATCH 8/8] imx8: mek: move HUSH_PARSER to defconfig Peng Fan
  6 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2019-04-12  7:55 UTC (permalink / raw)
  To: u-boot

Add thermal dts node
Enable thermal in defconfig

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 arch/arm/dts/fsl-imx8dx.dtsi  | 56 +++++++++++++++++++++++++++++++++++++++++++
 configs/imx8qxp_mek_defconfig |  2 ++
 2 files changed, 58 insertions(+)

diff --git a/arch/arm/dts/fsl-imx8dx.dtsi b/arch/arm/dts/fsl-imx8dx.dtsi
index 3b1a2a20e3..1c163afdcd 100644
--- a/arch/arm/dts/fsl-imx8dx.dtsi
+++ b/arch/arm/dts/fsl-imx8dx.dtsi
@@ -11,6 +11,7 @@
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/pinctrl/pads-imx8qxp.h>
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/thermal/thermal.h>
 
 / {
 	model = "Freescale i.MX8DX";
@@ -489,6 +490,61 @@
 		power-domains = <&pd_conn_enet1>;
 		status = "disabled";
 	};
+
+	tsens: thermal-sensor {
+		compatible = "nxp,imx8qxp-sc-tsens";
+		/* number of the temp sensor on the chip */
+		tsens-num = <2>;
+		#thermal-sensor-cells = <1>;
+	};
+
+	thermal_zones: thermal-zones {
+		/* cpu thermal */
+		cpu-thermal0 {
+			polling-delay-passive = <250>;
+			polling-delay = <2000>;
+			/*the slope and offset of the temp sensor */
+			thermal-sensors = <&tsens 0>;
+			trips {
+				cpu_alert0: trip0 {
+					temperature = <107000>;
+					hysteresis = <2000>;
+					type = "passive";
+				};
+				cpu_crit0: trip1 {
+					temperature = <127000>;
+					hysteresis = <2000>;
+					type = "critical";
+				};
+			};
+			cooling-maps {
+				map0 {
+					trip = <&cpu_alert0>;
+					cooling-device =
+					<&A35_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+				};
+			};
+		};
+
+		drc-thermal0 {
+			polling-delay-passive = <250>;
+			polling-delay = <2000>;
+			thermal-sensors = <&tsens 1>;
+			status = "disabled";
+			trips {
+				drc_alert0: trip0 {
+					temperature = <107000>;
+					hysteresis = <2000>;
+					type = "passive";
+				};
+				drc_crit0: trip1 {
+					temperature = <127000>;
+					hysteresis = <2000>;
+					type = "critical";
+				};
+			};
+		};
+	};
 };
 
 &A35_0 {
diff --git a/configs/imx8qxp_mek_defconfig b/configs/imx8qxp_mek_defconfig
index 14e9da386a..f0da489645 100644
--- a/configs/imx8qxp_mek_defconfig
+++ b/configs/imx8qxp_mek_defconfig
@@ -73,5 +73,7 @@ CONFIG_DM_REGULATOR_GPIO=y
 CONFIG_SPL_DM_REGULATOR_GPIO=y
 CONFIG_DM_SERIAL=y
 CONFIG_FSL_LPUART=y
+CONFIG_DM_THERMAL=y
+CONFIG_IMX_SCU_THERMAL=y
 CONFIG_SPL_TINY_MEMSET=y
 # CONFIG_EFI_LOADER is not set
-- 
2.16.4

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

* [U-Boot] [PATCH 8/8] imx8: mek: move HUSH_PARSER to defconfig
  2019-04-12  7:54 [U-Boot] [PATCH 1/8] imx: sip: add call_imx_sip_ret2 Peng Fan
                   ` (5 preceding siblings ...)
  2019-04-12  7:55 ` [U-Boot] [PATCH 7/8] imx: imx8dx/qxp: enable thermal Peng Fan
@ 2019-04-12  7:55 ` Peng Fan
  6 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2019-04-12  7:55 UTC (permalink / raw)
  To: u-boot

Move HUSH_PARSER to defconfig, otherwise meet
"
=> run netboot
Booting from net ...
Unknown command 'if' - try 'help'
Unknown command 'then' - try 'help'
Unknown command 'else' - try 'help'
Unknown command 'fi' - try 'help'
Unknown command '0x80280000' - try 'help'
Unknown command 'if' - try 'help'
Unknown command 'then' - try 'help'
Unknown command 'then' - try 'help'
Unknown command 'else' - try 'help'
Unknown command 'fi' - try 'help'
Unknown command 'else' - try 'help'
Unknown command 'fi' - try 'help'
"

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 configs/imx8qxp_mek_defconfig | 1 +
 include/configs/imx8qxp_mek.h | 1 -
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/configs/imx8qxp_mek_defconfig b/configs/imx8qxp_mek_defconfig
index f0da489645..38f0ff0bf3 100644
--- a/configs/imx8qxp_mek_defconfig
+++ b/configs/imx8qxp_mek_defconfig
@@ -23,6 +23,7 @@ CONFIG_SPL_SEPARATE_BSS=y
 CONFIG_SPL_POWER_SUPPORT=y
 CONFIG_SPL_POWER_DOMAIN=y
 CONFIG_SPL_WATCHDOG_SUPPORT=y
+CONFIG_HUSH_PARSER=y
 CONFIG_CMD_CPU=y
 # CONFIG_CMD_IMPORTENV is not set
 CONFIG_CMD_CLK=y
diff --git a/include/configs/imx8qxp_mek.h b/include/configs/imx8qxp_mek.h
index 312e30dc6c..1cff18e05e 100644
--- a/include/configs/imx8qxp_mek.h
+++ b/include/configs/imx8qxp_mek.h
@@ -159,7 +159,6 @@
 #define CONFIG_BAUDRATE			115200
 
 /* Monitor Command Prompt */
-#define CONFIG_HUSH_PARSER
 #define CONFIG_SYS_PROMPT_HUSH_PS2     "> "
 #define CONFIG_SYS_CBSIZE              2048
 #define CONFIG_SYS_MAXARGS             64
-- 
2.16.4

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

* [U-Boot] [PATCH] ARM: imx: Fix typo in select option for ZMX25
@ 2019-04-13  8:21 Chris Packham
  2019-04-15 16:32 ` Fabio Estevam
  2019-04-15 16:50 ` Stefano Babic
  0 siblings, 2 replies; 654+ messages in thread
From: Chris Packham @ 2019-04-13  8:21 UTC (permalink / raw)
  To: u-boot

Correct CPU_ARM926EJS1 to CPU_ARM926EJS.

Reported-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Chris Packham <judge.packham@gmail.com>
---

 arch/arm/mach-imx/mx2/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/mach-imx/mx2/Kconfig b/arch/arm/mach-imx/mx2/Kconfig
index ea308fccab02..30a331ae43b7 100644
--- a/arch/arm/mach-imx/mx2/Kconfig
+++ b/arch/arm/mach-imx/mx2/Kconfig
@@ -17,7 +17,7 @@ config TARGET_MX25PDK
 config TARGET_ZMX25
 	bool "Support zmx25"
 	select BOARD_LATE_INIT
-	select CPU_ARM926EJS1
+	select CPU_ARM926EJS
 
 endchoice
 
-- 
2.21.0

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

* [U-Boot] [PATCH] imx: add lowlevel init for ARM64
@ 2019-04-15  5:20 Peng Fan
  2019-04-26 18:38 ` [U-Boot] [REGRESSION] " Marcel Ziswiler
  0 siblings, 1 reply; 654+ messages in thread
From: Peng Fan @ 2019-04-15  5:20 UTC (permalink / raw)
  To: u-boot

Sometimes we met SERROR, but only to catch it when Linux boots up.
Let's enable catching in U-Boot to catch it ealier and ease debug.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 arch/arm/mach-imx/Makefile   |  2 +-
 arch/arm/mach-imx/lowlevel.S | 22 ++++++++++++++++++++++
 2 files changed, 23 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/mach-imx/lowlevel.S

diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile
index c3ed62aed6..37675d0558 100644
--- a/arch/arm/mach-imx/Makefile
+++ b/arch/arm/mach-imx/Makefile
@@ -204,7 +204,7 @@ endif
 
 targets += $(addprefix ../../../,SPL spl/u-boot-spl.cfgout u-boot-dtb.cfgout u-boot.cfgout u-boot.uim spl/u-boot-nand-spl.imx)
 
-obj-$(CONFIG_ARM64) += sip.o
+obj-$(CONFIG_ARM64) += lowlevel.o sip.o
 
 obj-$(CONFIG_MX5) += mx5/
 obj-$(CONFIG_MX6) += mx6/
diff --git a/arch/arm/mach-imx/lowlevel.S b/arch/arm/mach-imx/lowlevel.S
new file mode 100644
index 0000000000..158fdb7d87
--- /dev/null
+++ b/arch/arm/mach-imx/lowlevel.S
@@ -0,0 +1,22 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright 2019 NXP
+ */
+
+#include <linux/linkage.h>
+
+ENTRY(lowlevel_init)
+	mrs	x0, CurrentEL
+	cmp	x0, #8
+	b.eq	1f
+	ret
+1:
+	msr daifclr, #4
+
+	/* set HCR_EL2.AMO to catch SERROR */
+	mrs	x0, hcr_el2
+	orr	x0, x0, #0x20
+	msr	hcr_el2, x0
+	isb
+	ret
+ENDPROC(lowlevel_init)
-- 
2.16.4

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

* [U-Boot] [PATCH v2 1/2] ARM: imx6: DHCOM i.MX6 PDK: use Kconfig for inclusion of DDR calibration
@ 2019-04-15  9:13 Ludwig Zenz
  0 siblings, 0 replies; 654+ messages in thread
From: Ludwig Zenz @ 2019-04-15  9:13 UTC (permalink / raw)
  To: u-boot

From: Ludwig Zenz <lzenz@dh-electronics.de>

The four x16 DDR3 are wired in T-topology. From NXP AN4467:
'Although not required, T-Topologies may also benefit from performing
Write Leveling as there are package delays on both the processor and DDR
devices that can be de-skewed by performing Write Leveling. Therefore,
Freescale recommends determining Write Leveling calibration parameters
for all boards, regardless of topology used.'
That is why write level calibration is also done.

Signed-off-by: Ludwig Zenz <lzenz@dh-electronics.com>
---
 board/dhelectronics/dh_imx6/dh_imx6_spl.c | 32 +++++++++++++++++++++++++------
 1 file changed, 26 insertions(+), 6 deletions(-)

diff --git a/board/dhelectronics/dh_imx6/dh_imx6_spl.c b/board/dhelectronics/dh_imx6/dh_imx6_spl.c
index 04e9eab272a..bbd2dc26828 100644
--- a/board/dhelectronics/dh_imx6/dh_imx6_spl.c
+++ b/board/dhelectronics/dh_imx6/dh_imx6_spl.c
@@ -482,6 +482,29 @@ static void setup_iomux_usb(void)
 	SETUP_IOMUX_PADS(usb_pads);
 }
 
+/* Perform DDR DRAM calibration */
+static int spl_dram_perform_cal(struct mx6_ddr_sysinfo const *sysinfo)
+{
+	int ret = 0;
+
+#ifdef CONFIG_MX6_DDRCAL
+	udelay(100);
+	ret = mmdc_do_write_level_calibration(sysinfo);
+	if (ret) {
+		printf("DDR3: Write level calibration error [%d]\n", ret);
+		return ret;
+	}
+
+	ret = mmdc_do_dqs_calibration(sysinfo);
+	if (ret) {
+		printf("DDR3: DQS calibration error [%d]\n", ret);
+		return ret;
+	}
+#endif /* CONFIG_MX6_DDRCAL */
+
+	return ret;
+}
+
 
 /* DRAM */
 static void dhcom_spl_dram_init(void)
@@ -509,8 +532,7 @@ static void dhcom_spl_dram_init(void)
 		}
 
 		/* Perform DDR DRAM calibration */
-		udelay(100);
-		mmdc_do_dqs_calibration(&dhcom_ddr_64bit);
+		spl_dram_perform_cal(&dhcom_ddr_64bit);
 
 	} else if (is_cpu_type(MXC_CPU_MX6DL)) {
 		mx6sdl_dram_iocfg(64, &dhcom6sdl_ddr_ioregs,
@@ -528,8 +550,7 @@ static void dhcom_spl_dram_init(void)
 		}
 
 		/* Perform DDR DRAM calibration */
-		udelay(100);
-		mmdc_do_dqs_calibration(&dhcom_ddr_64bit);
+		spl_dram_perform_cal(&dhcom_ddr_64bit);
 
 	} else if (is_cpu_type(MXC_CPU_MX6SOLO)) {
 		mx6sdl_dram_iocfg(32, &dhcom6sdl_ddr_ioregs,
@@ -552,8 +573,7 @@ static void dhcom_spl_dram_init(void)
 		}
 
 		/* Perform DDR DRAM calibration */
-		udelay(100);
-		mmdc_do_dqs_calibration(&dhcom_ddr_32bit);
+		spl_dram_perform_cal(&dhcom_ddr_32bit);
 	}
 }
 
-- 
2.11.0

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

* [U-Boot] [PATCH] imx: 8qxp_mek: fix fdt_file and console
@ 2019-04-15 12:00 Peng Fan
  2019-04-15 13:31 ` Fabio Estevam
  2019-04-26 18:42 ` [U-Boot] [REGRESSION] " Marcel Ziswiler
  0 siblings, 2 replies; 654+ messages in thread
From: Peng Fan @ 2019-04-15 12:00 UTC (permalink / raw)
  To: u-boot

Fix fdt_file and console to boot upstream Linux Kernel.

Upstream linux use imx8qxp-mek.dtb, and pass lpuart32 to earlycon
will not work for i.MX8QXP, only need to pass earlycon,
check drivers/tty/serial/earlycon.c,
" /* Just 'earlycon' is a valid param for devicetree and ACPI SPCR. */ "

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 include/configs/imx8qxp_mek.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/configs/imx8qxp_mek.h b/include/configs/imx8qxp_mek.h
index 1cff18e05e..5c83505ff0 100644
--- a/include/configs/imx8qxp_mek.h
+++ b/include/configs/imx8qxp_mek.h
@@ -65,11 +65,11 @@
 	"script=boot.scr\0" \
 	"image=Image\0" \
 	"panel=NULL\0" \
-	"console=ttyLP0,${baudrate} earlycon=lpuart32,0x5a060000,${baudrate}\0" \
+	"console=ttyLP0,${baudrate} earlycon\0" \
 	"fdt_addr=0x83000000\0"			\
 	"fdt_high=0xffffffffffffffff\0"		\
 	"boot_fdt=try\0" \
-	"fdt_file=fsl-imx8qxp-mek.dtb\0" \
+	"fdt_file=imx8qxp-mek.dtb\0" \
 	"initrd_addr=0x83800000\0"		\
 	"initrd_high=0xffffffffffffffff\0" \
 	"mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \
-- 
2.16.4

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

* [U-Boot] [PATCH] imx: 8qxp_mek: fix fdt_file and console
  2019-04-15 12:00 [U-Boot] [PATCH] imx: 8qxp_mek: fix fdt_file and console Peng Fan
@ 2019-04-15 13:31 ` Fabio Estevam
  2019-04-26 18:42 ` [U-Boot] [REGRESSION] " Marcel Ziswiler
  1 sibling, 0 replies; 654+ messages in thread
From: Fabio Estevam @ 2019-04-15 13:31 UTC (permalink / raw)
  To: u-boot

On Mon, Apr 15, 2019 at 9:01 AM Peng Fan <peng.fan@nxp.com> wrote:
>
> Fix fdt_file and console to boot upstream Linux Kernel.
>
> Upstream linux use imx8qxp-mek.dtb, and pass lpuart32 to earlycon
> will not work for i.MX8QXP, only need to pass earlycon,
> check drivers/tty/serial/earlycon.c,
> " /* Just 'earlycon' is a valid param for devicetree and ACPI SPCR. */ "
>
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Reviewed-by: Fabio Estevam <festevam@gmail.com>

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

* [U-Boot] [PATCH] ARM: imx: Fix typo in select option for ZMX25
  2019-04-13  8:21 [U-Boot] [PATCH] ARM: imx: Fix typo in select option for ZMX25 Chris Packham
@ 2019-04-15 16:32 ` Fabio Estevam
  2019-04-15 16:50 ` Stefano Babic
  1 sibling, 0 replies; 654+ messages in thread
From: Fabio Estevam @ 2019-04-15 16:32 UTC (permalink / raw)
  To: u-boot

On Sat, Apr 13, 2019 at 5:22 AM Chris Packham <judge.packham@gmail.com> wrote:
>
> Correct CPU_ARM926EJS1 to CPU_ARM926EJS.
>
> Reported-by: Robert P. J. Day <rpjday@crashcourse.ca>
> Signed-off-by: Chris Packham <judge.packham@gmail.com>

Reviewed-by: Fabio Estevam <festevam@gmail.com>

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

* [U-Boot] [PATCH] ARM: imx: Fix typo in select option for ZMX25
  2019-04-13  8:21 [U-Boot] [PATCH] ARM: imx: Fix typo in select option for ZMX25 Chris Packham
  2019-04-15 16:32 ` Fabio Estevam
@ 2019-04-15 16:50 ` Stefano Babic
  1 sibling, 0 replies; 654+ messages in thread
From: Stefano Babic @ 2019-04-15 16:50 UTC (permalink / raw)
  To: u-boot

On 13/04/19 10:21, Chris Packham wrote:
> Correct CPU_ARM926EJS1 to CPU_ARM926EJS.
> 
> Reported-by: Robert P. J. Day <rpjday@crashcourse.ca>
> Signed-off-by: Chris Packham <judge.packham@gmail.com>
> ---
> 
>  arch/arm/mach-imx/mx2/Kconfig | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm/mach-imx/mx2/Kconfig b/arch/arm/mach-imx/mx2/Kconfig
> index ea308fccab02..30a331ae43b7 100644
> --- a/arch/arm/mach-imx/mx2/Kconfig
> +++ b/arch/arm/mach-imx/mx2/Kconfig
> @@ -17,7 +17,7 @@ config TARGET_MX25PDK
>  config TARGET_ZMX25
>  	bool "Support zmx25"
>  	select BOARD_LATE_INIT
> -	select CPU_ARM926EJS1
> +	select CPU_ARM926EJS
>  
>  endchoice
>  
> 

Reviewed-by : Stefano Babiy <sbabic@denx.de>

Best regards,
Stefano Babic


-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [PATCH v2 10/14] colibri-imx6ull: migrate usb to using driver model
  2019-04-09 15:24 ` [U-Boot] [PATCH v2 10/14] colibri-imx6ull: migrate usb " Marcel Ziswiler
@ 2019-04-17  7:58   ` Igor Opaniuk
  0 siblings, 0 replies; 654+ messages in thread
From: Igor Opaniuk @ 2019-04-17  7:58 UTC (permalink / raw)
  To: u-boot

Hi Marcel,

Just found out that to be able to use usbotg1 also in host mode this
change should be introduced:
--- a/arch/arm/dts/imx6ull-colibri.dts
+++ b/arch/arm/dts/imx6ull-colibri.dts
@@ -220,7 +220,7 @@

 /* Colibri USBC */
 &usbotg1 {
-       dr_mode = "otg";
+       dr_mode = "host";
        srp-disable;
        hnp-disable;
        adp-disable;

Without (tested with USB pendrive):
Colibri iMX6ULL # usb start
starting USB...
USB0:   USB1:   USB EHCI 1.00
scanning bus 0 for devices... 1 USB Device(s) found
scanning bus 1 for devices... 2 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found


With (tested with USB pendrive):
Colibri iMX6ULL # usb start
starting USB...
USB0:   USB EHCI 1.00
USB1:   USB EHCI 1.00
scanning bus 0 for devices... 2 USB Device(s) found
scanning bus 1 for devices... 2 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found

On Tue, Apr 9, 2019 at 5:31 PM Marcel Ziswiler <marcel@ziswiler.com> wrote:
>
> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>
> Migrate USB to using driver model.
> Add USBH_PEN GPIO regulator.
> While at it also add alias e.g. as required for UMS.
>
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>
>
> ---
>
> Changes in v2:
> - Added Igor's reviewed-by.
>
>  arch/arm/dts/imx6ull-colibri.dts              | 24 ++++++++++
>  .../toradex/colibri-imx6ull/colibri-imx6ull.c | 48 -------------------
>  configs/colibri-imx6ull_defconfig             |  1 +
>  3 files changed, 25 insertions(+), 48 deletions(-)
>
> diff --git a/arch/arm/dts/imx6ull-colibri.dts b/arch/arm/dts/imx6ull-colibri.dts
> index 0d416ebd10..91e48aab61 100644
> --- a/arch/arm/dts/imx6ull-colibri.dts
> +++ b/arch/arm/dts/imx6ull-colibri.dts
> @@ -13,6 +13,7 @@
>
>         aliases {
>                 mmc0 = &usdhc1;
> +               usb0 = &usbotg1; /* required for ums */
>         };
>
>         chosen {
> @@ -35,6 +36,13 @@
>                 regulator-max-microvolt = <3300000>;
>         };
>
> +       reg_5v0: regulator-5v0 {
> +               compatible = "regulator-fixed";
> +               regulator-name = "5V";
> +               regulator-min-microvolt = <5000000>;
> +               regulator-max-microvolt = <5000000>;
> +       };
> +
>         reg_sd1_vmmc: regulator-sd1-vmmc {
>                 compatible = "regulator-gpio";
>                 gpio = <&gpio5 9 GPIO_ACTIVE_HIGH>;
> @@ -47,6 +55,17 @@
>                 states = <1800000 0x1 3300000 0x0>;
>                 vin-supply = <&reg_module_3v3>;
>         };
> +
> +       reg_usbh_vbus: regulator-usbh-vbus {
> +               compatible = "regulator-fixed";
> +               pinctrl-names = "default";
> +               pinctrl-0 = <&pinctrl_usbh_reg>;
> +               regulator-name = "VCC_USB[1-4]";
> +               regulator-min-microvolt = <5000000>;
> +               regulator-max-microvolt = <5000000>;
> +               gpio = <&gpio1 2 GPIO_ACTIVE_LOW>; /* USBH_PEN */
> +               vin-supply = <&reg_5v0>;
> +       };
>  };
>
>  &adc1 {
> @@ -183,15 +202,20 @@
>         fsl,dte-mode;
>  };
>
> +/* Colibri USBC */
>  &usbotg1 {
>         dr_mode = "otg";
>         srp-disable;
>         hnp-disable;
>         adp-disable;
> +       status = "okay";
>  };
>
> +/* Colibri USBH */
>  &usbotg2 {
>         dr_mode = "host";
> +       vbus-supply = <&reg_usbh_vbus>;
> +       status = "okay";
>  };
>
>  /* Colibri MMC */
> diff --git a/board/toradex/colibri-imx6ull/colibri-imx6ull.c b/board/toradex/colibri-imx6ull/colibri-imx6ull.c
> index c9af44e30e..21addaf6ed 100644
> --- a/board/toradex/colibri-imx6ull/colibri-imx6ull.c
> +++ b/board/toradex/colibri-imx6ull/colibri-imx6ull.c
> @@ -24,8 +24,6 @@
>  #include <miiphy.h>
>  #include <mtd_node.h>
>  #include <netdev.h>
> -#include <usb.h>
> -#include <usb/ehci-ci.h>
>
>  #include "../common/tdx-common.h"
>  #include "../common/tdx-cfg-block.h"
> @@ -41,8 +39,6 @@ DECLARE_GLOBAL_DATA_PTR;
>
>  #define NAND_PAD_READY0_CTRL (PAD_CTL_DSE_48ohm | PAD_CTL_PUS_22K_UP)
>
> -#define USB_CDET_GPIO  IMX_GPIO_NR(7, 14)
> -
>  int dram_init(void)
>  {
>         gd->ram_size = get_ram_size((void *)PHYS_SDRAM, PHYS_SDRAM_SIZE);
> @@ -50,10 +46,6 @@ int dram_init(void)
>         return 0;
>  }
>
> -static iomux_v3_cfg_t const usb_cdet_pads[] = {
> -       MX6_PAD_SNVS_TAMPER2__GPIO5_IO02 | MUX_PAD_CTRL(NO_PAD_CTRL),
> -};
> -
>  #ifdef CONFIG_NAND_MXS
>  static void setup_gpmi_nand(void)
>  {
> @@ -163,11 +155,6 @@ int board_init(void)
>         setup_lcd();
>  #endif
>
> -#ifdef CONFIG_USB_EHCI_MX6
> -       imx_iomux_v3_setup_multiple_pads(usb_cdet_pads, ARRAY_SIZE(usb_cdet_pads));
> -       gpio_request(USB_CDET_GPIO, "usb-cdet-gpio");
> -#endif
> -
>         return 0;
>  }
>
> @@ -241,41 +228,6 @@ int ft_board_setup(void *blob, bd_t *bd)
>  }
>  #endif
>
> -#ifdef CONFIG_USB_EHCI_MX6
> -static iomux_v3_cfg_t const usb_otg2_pads[] = {
> -               MX6_PAD_GPIO1_IO02__GPIO1_IO02 | MUX_PAD_CTRL(NO_PAD_CTRL),
> -};
> -
> -int board_ehci_hcd_init(int port)
> -{
> -       switch (port) {
> -       case 0:
> -               break;
> -       case 1:
> -               imx_iomux_v3_setup_multiple_pads(usb_otg2_pads,
> -                                                ARRAY_SIZE(usb_otg2_pads));
> -               break;
> -       default:
> -               return -EINVAL;
> -       }
> -       return 0;
> -}
> -
> -int board_usb_phy_mode(int port)
> -{
> -       switch (port) {
> -       case 0:
> -               if (gpio_get_value(USB_CDET_GPIO))
> -                       return USB_INIT_DEVICE;
> -               else
> -                       return USB_INIT_HOST;
> -       case 1:
> -       default:
> -               return USB_INIT_HOST;
> -       }
> -}
> -#endif
> -
>  static struct mxc_serial_platdata mxc_serial_plat = {
>         .reg = (struct mxc_uart *)UART1_BASE,
>         .use_dte = 1,
> diff --git a/configs/colibri-imx6ull_defconfig b/configs/colibri-imx6ull_defconfig
> index 69305323f2..0440b4ed94 100644
> --- a/configs/colibri-imx6ull_defconfig
> +++ b/configs/colibri-imx6ull_defconfig
> @@ -71,6 +71,7 @@ CONFIG_DM_REGULATOR_FIXED=y
>  CONFIG_DM_SERIAL=y
>  CONFIG_MXC_UART=y
>  CONFIG_USB=y
> +CONFIG_DM_USB=y
>  CONFIG_USB_GADGET=y
>  CONFIG_USB_GADGET_MANUFACTURER="Toradex"
>  CONFIG_USB_GADGET_VENDOR_NUM=0x1b67
> --
> 2.20.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot



-- 
Best regards - Freundliche Grüsse - Meilleures salutations

Senior Development Engineer,
Igor Opaniuk

Toradex AG
Altsagenstrasse 5 | 6048 Horw/Luzern | Switzerland | T: +41 41 500 48
00 (main line)

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

* [U-Boot] [PATCH] imx: i.MX8MQ: clear ocotp error bit
@ 2019-04-17  9:41 Peng Fan
  2019-04-17  9:41 ` [U-Boot] [PATCH 1/2] mxc_ocotp: Update redundancy banks for mx7ulp B0 Peng Fan
  2019-04-17  9:41 ` [U-Boot] [PATCH 2/2] mxc_ocotp: Disable fuse sense for imx8mq B1 Peng Fan
  0 siblings, 2 replies; 654+ messages in thread
From: Peng Fan @ 2019-04-17  9:41 UTC (permalink / raw)
  To: u-boot

In case ocotp error bit is set, clear it.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 arch/arm/mach-imx/imx8m/soc.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/arch/arm/mach-imx/imx8m/soc.c b/arch/arm/mach-imx/imx8m/soc.c
index 11251c5f9a..7ec39b3e47 100644
--- a/arch/arm/mach-imx/imx8m/soc.c
+++ b/arch/arm/mach-imx/imx8m/soc.c
@@ -169,6 +169,7 @@ static void imx_set_wdog_powerdown(bool enable)
 
 int arch_cpu_init(void)
 {
+	struct ocotp_regs *ocotp = (struct ocotp_regs *)OCOTP_BASE_ADDR;
 	/*
 	 * Init timer at very early state, because sscg pll setting
 	 * will use it
@@ -180,6 +181,12 @@ int arch_cpu_init(void)
 		imx_set_wdog_powerdown(false);
 	}
 
+	if (is_imx8mq()) {
+		clock_enable(CCGR_OCOTP, 1);
+		if (readl(&ocotp->ctrl) & 0x200)
+			writel(0x200, &ocotp->ctrl_clr);
+	}
+
 	return 0;
 }
 
-- 
2.16.4

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

* [U-Boot] [PATCH 1/2] mxc_ocotp: Update redundancy banks for mx7ulp B0
  2019-04-17  9:41 [U-Boot] [PATCH] imx: i.MX8MQ: clear ocotp error bit Peng Fan
@ 2019-04-17  9:41 ` Peng Fan
  2019-04-17  9:41 ` [U-Boot] [PATCH 2/2] mxc_ocotp: Disable fuse sense for imx8mq B1 Peng Fan
  1 sibling, 0 replies; 654+ messages in thread
From: Peng Fan @ 2019-04-17  9:41 UTC (permalink / raw)
  To: u-boot

From: Ye Li <ye.li@nxp.com>

On mx7ulp B0, beside bank 0 and 1, the fuse bank 9, 10, 28 are changed to
Redundancy mode not ECC, so they can support to program different bits of
a word in multiple times.

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 drivers/misc/mxc_ocotp.c | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/drivers/misc/mxc_ocotp.c b/drivers/misc/mxc_ocotp.c
index f84fe88db1..33ea31135c 100644
--- a/drivers/misc/mxc_ocotp.c
+++ b/drivers/misc/mxc_ocotp.c
@@ -354,13 +354,17 @@ static int prepare_write(struct ocotp_regs **regs, u32 bank, u32 word,
 
 	/* Only bank 0 and 1 are redundancy mode, others are ECC mode */
 	if (bank != 0 && bank != 1) {
-		ret = fuse_sense(bank, word, &val);
-		if (ret)
-			return ret;
-
-		if (val != 0) {
-			printf("mxc_ocotp: The word has been programmed, no more write\n");
-			return -EPERM;
+		if ((soc_rev() < CHIP_REV_2_0) ||
+		    ((soc_rev() >= CHIP_REV_2_0) &&
+		    bank != 9 && bank != 10 && bank != 28)) {
+			ret = fuse_sense(bank, word, &val);
+			if (ret)
+				return ret;
+
+			if (val != 0) {
+				printf("mxc_ocotp: The word has been programmed, no more write\n");
+				return -EPERM;
+			}
 		}
 	}
 #endif
-- 
2.16.4

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

* [U-Boot] [PATCH 2/2] mxc_ocotp: Disable fuse sense for imx8mq B1
  2019-04-17  9:41 [U-Boot] [PATCH] imx: i.MX8MQ: clear ocotp error bit Peng Fan
  2019-04-17  9:41 ` [U-Boot] [PATCH 1/2] mxc_ocotp: Update redundancy banks for mx7ulp B0 Peng Fan
@ 2019-04-17  9:41 ` Peng Fan
  1 sibling, 0 replies; 654+ messages in thread
From: Peng Fan @ 2019-04-17  9:41 UTC (permalink / raw)
  To: u-boot

From: Ye Li <ye.li@nxp.com>

On iMX8MQ Rev B1, reading from fuse box is not allowed. The
OCOTP_READ_FUSE_DATA register is tied to magic number 0xff0055aa
for chip rev. So u-boot has to disable the fuse sense function for it.

Signed-off-by: Ye Li <ye.li@nxp.com>
Tested-by: Anson Huang <Anson.Huang@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 drivers/misc/mxc_ocotp.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/misc/mxc_ocotp.c b/drivers/misc/mxc_ocotp.c
index 33ea31135c..1b945e9727 100644
--- a/drivers/misc/mxc_ocotp.c
+++ b/drivers/misc/mxc_ocotp.c
@@ -321,6 +321,11 @@ int fuse_sense(u32 bank, u32 word, u32 *val)
 	struct ocotp_regs *regs;
 	int ret;
 
+	if (is_imx8mq() && is_soc_rev(CHIP_REV_2_1)) {
+		printf("mxc_ocotp %s(): fuse sense is disabled\n", __func__);
+		return -EPERM;
+	}
+
 	ret = prepare_read(&regs, bank, word, val, __func__);
 	if (ret)
 		return ret;
-- 
2.16.4

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

* [U-Boot] [PATCH v3] ARM: dts: i.MX6Q: fix avoid_unnecessary_addr_size warnings
@ 2019-04-17 23:47 Marcel Ziswiler
  0 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-17 23:47 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Re-synced the device tree with Linux 5.0.

This fixes the following warnings:

w+arch/arm/dts/imx6-apalis.dtb: Warning (reg_format): /soc/ipu at 2800000/
 port at 2/endpoint at 0:reg: property has invalid length (4 bytes)
 (#address-cells == 2, #size-cells == 1)
w+arch/arm/dts/imx6-apalis.dtb: Warning (reg_format): /soc/ipu at 2800000/
 port at 2/endpoint at 1:reg: property has invalid length (4 bytes)
 (#address-cells == 2, #size-cells == 1)
w+arch/arm/dts/imx6-apalis.dtb: Warning (reg_format): /soc/ipu at 2800000/
 port at 2/endpoint at 2:reg: property has invalid length (4 bytes)
 (#address-cells == 2, #size-cells == 1)
w+arch/arm/dts/imx6-apalis.dtb: Warning (reg_format): /soc/ipu at 2800000/
 port at 2/endpoint at 3:reg: property has invalid length (4 bytes)
 (#address-cells == 2, #size-cells == 1)
w+arch/arm/dts/imx6-apalis.dtb: Warning (reg_format): /soc/ipu at 2800000/
 port at 2/endpoint at 4:reg: property has invalid length (4 bytes)
 (#address-cells == 2, #size-cells == 1)
w+arch/arm/dts/imx6-apalis.dtb: Warning (reg_format): /soc/ipu at 2800000/
 port at 3/endpoint at 1:reg: property has invalid length (4 bytes)
 (#address-cells == 2, #size-cells == 1)
w+arch/arm/dts/imx6-apalis.dtb: Warning (reg_format): /soc/ipu at 2800000/
 port at 3/endpoint at 2:reg: property has invalid length (4 bytes)
 (#address-cells == 2, #size-cells == 1)
w+arch/arm/dts/imx6-apalis.dtb: Warning (reg_format): /soc/ipu at 2800000/
 port at 3/endpoint at 3:reg: property has invalid length (4 bytes)
 (#address-cells == 2, #size-cells == 1)
w+arch/arm/dts/imx6-apalis.dtb: Warning (reg_format): /soc/ipu at 2800000/
 port at 3/endpoint at 4:reg: property has invalid length (4 bytes)
 (#address-cells == 2, #size-cells == 1)
w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
 /soc/ipu at 2800000/port at 2/endpoint at 0: Relying on default #address-cells
 value
w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
 /soc/ipu at 2800000/port at 2/endpoint at 0: Relying on default #size-cells
 value
w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
 /soc/ipu at 2800000/port at 2/endpoint at 1: Relying on default #address-cells
 value
w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
 /soc/ipu at 2800000/port at 2/endpoint at 1: Relying on default #size-cells
 value
w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
 /soc/ipu at 2800000/port at 2/endpoint at 2: Relying on default #address-cells
 value
w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
 /soc/ipu at 2800000/port at 2/endpoint at 2: Relying on default #size-cells
 value
w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
 /soc/ipu at 2800000/port at 2/endpoint at 3: Relying on default #address-cells
 value
w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
 /soc/ipu at 2800000/port at 2/endpoint at 3: Relying on default #size-cells
 value
w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
 /soc/ipu at 2800000/port at 2/endpoint at 4: Relying on default #address-cells
 value
w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
 /soc/ipu at 2800000/port at 2/endpoint at 4: Relying on default #size-cells
 value
w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
 /soc/ipu at 2800000/port at 3/endpoint at 1: Relying on default #address-cells
 value
w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
 /soc/ipu at 2800000/port at 3/endpoint at 1: Relying on default #size-cells
 value
w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
 /soc/ipu at 2800000/port at 3/endpoint at 2: Relying on default #address-cells
 value
w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
 /soc/ipu at 2800000/port at 3/endpoint at 2: Relying on default #size-cells
 value
w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
 /soc/ipu at 2800000/port at 3/endpoint at 3: Relying on default #address-cells
 value
w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
 /soc/ipu at 2800000/port at 3/endpoint at 3: Relying on default #size-cells
 value
w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
 /soc/ipu at 2800000/port at 3/endpoint at 4: Relying on default #address-cells
 value
w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
 /soc/ipu at 2800000/port at 3/endpoint at 4: Relying on default #size-cells
 value
w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_unnecessary_addr_size):
 Failed prerequisite 'avoid_default_addr_size'

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Lukasz Majewski <lukma@denx.de>

---

Changes in v3:
- Added Fabio and Lukasz' reviewed-by tags.

Changes in v2:
- Re-synced the device tree with Linux 5.0 as suggested by Fabio.

 arch/arm/dts/imx6q.dtsi | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm/dts/imx6q.dtsi b/arch/arm/dts/imx6q.dtsi
index ab1716b6b0..d038f41170 100644
--- a/arch/arm/dts/imx6q.dtsi
+++ b/arch/arm/dts/imx6q.dtsi
@@ -202,6 +202,7 @@
 				 <&clks IMX6QDL_CLK_GPU2D_CORE>;
 			clock-names = "bus", "core";
 			power-domains = <&pd_pu>;
+			#cooling-cells = <2>;
 		};
 
 		ipu2: ipu at 2800000 {
@@ -234,6 +235,8 @@
 			};
 
 			ipu2_di0: port at 2 {
+				#address-cells = <1>;
+				#size-cells = <0>;
 				reg = <2>;
 
 				ipu2_di0_disp0: endpoint at 0 {
@@ -262,6 +265,8 @@
 			};
 
 			ipu2_di1: port at 3 {
+				#address-cells = <1>;
+				#size-cells = <0>;
 				reg = <3>;
 
 				ipu2_di1_hdmi: endpoint at 1 {
-- 
2.20.1

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

* [U-Boot] [PATCH v3 00/14] colibri-imx6ull device tree enablement and driver model conversion
@ 2019-04-17 23:57 Marcel Ziswiler
  2019-04-17 23:57 ` [U-Boot] [PATCH v3 01/14] tdx-cfg-block: add support for new colibri iMX6ull skus Marcel Ziswiler
                   ` (13 more replies)
  0 siblings, 14 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-17 23:57 UTC (permalink / raw)
  To: u-boot


This series addresses some shortcomings, enables/introduces device tree
support and converts all except video to using the driver model. This is
fully tested both running our latest downstream BSP as well as the
mainline Linux kernel.

This series is available together with my previous series addressing
Apalis and Colibri iMX6 as well as Colibri Vybrid aka VF50/VF61 on our
git server [1].

[1] http://git.toradex.com/cgit/u-boot-toradex.git/log/?h=for-next

Changes in v3:
- Fixed issue with host mode as pointed out by Igor.

Changes in v2:
- Added Igor's reviewed-by tag.

Gerard Salvatella (1):
  tdx-cfg-block: add support for new colibri iMX6ull skus

Marcel Ziswiler (9):
  colibri-imx6ull: fix ethernet phy power on
  colibri-imx6ull: configuration clean-up
  colibri-imx6ull: migrate pinctrl and regulators to dtb/dm
  colibri-imx6ull: migrate mmc to using driver model
  colibri-imx6ull: migrate usb to using driver model
  colibri-imx6ull: migrate fec to using driver model
  ARM: dts: colibri-imx6ull: fix uart-has-rtscts property
  ARM: dts: colibri-imx6ull: add osc32k_32k_out pinctrl
  ARM: dts: colibri-imx6ull: update device tree

Philippe Schenker (1):
  board: imx6ull: Add disable PMIC_STBY_REQ

Stefan Agner (3):
  tdx-cfg-block: simplify i.MX 6 module detection
  colibri-imx6ull: set module variant depending on config block
  apalis/colibri_imx6/imx6ull: make sure loadaddr does not collide

 arch/arm/dts/imx6ull-colibri.dts              | 172 ++++++++-----
 arch/arm/dts/imx6ull-pinfunc.h                |  26 +-
 .../toradex/colibri-imx6ull/colibri-imx6ull.c | 225 +++---------------
 board/toradex/common/tdx-cfg-block.c          |  70 ++++--
 board/toradex/common/tdx-cfg-block.h          |   3 +
 configs/colibri-imx6ull_defconfig             |  18 +-
 include/configs/apalis_imx6.h                 |   4 +-
 include/configs/colibri-imx6ull.h             |  14 +-
 include/configs/colibri_imx6.h                |   4 +-
 9 files changed, 228 insertions(+), 308 deletions(-)

-- 
2.20.1

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

* [U-Boot] [PATCH v3 01/14] tdx-cfg-block: add support for new colibri iMX6ull skus
  2019-04-17 23:57 [U-Boot] [PATCH v3 00/14] colibri-imx6ull device tree enablement and driver model conversion Marcel Ziswiler
@ 2019-04-17 23:57 ` Marcel Ziswiler
  2019-04-17 23:57 ` [U-Boot] [PATCH v3 02/14] tdx-cfg-block: simplify i.MX 6 module detection Marcel Ziswiler
                   ` (12 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-17 23:57 UTC (permalink / raw)
  To: u-boot

From: Gerard Salvatella <gerard.salvatella@toradex.com>

Add support for new Colibri iMX6ULL SKUs.

While at it also checkpatch fix the whole files.

Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v3: None
Changes in v2:
- Added Igor's reviewed-by.

 board/toradex/common/tdx-cfg-block.c | 62 +++++++++++++++++++++-------
 board/toradex/common/tdx-cfg-block.h |  3 ++
 2 files changed, 50 insertions(+), 15 deletions(-)

diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c
index b90077bedc..3b73421243 100644
--- a/board/toradex/common/tdx-cfg-block.c
+++ b/board/toradex/common/tdx-cfg-block.c
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0+
 /*
- * Copyright (c) 2016 Toradex, Inc.
+ * Copyright (c) 2016-2019 Toradex, Inc.
  */
 
 #include <common.h>
@@ -98,6 +98,9 @@ const char * const toradex_modules[] = {
 	[40] = "Colibri iMX6ULL 512MB Wi-Fi / Bluetooth IT",
 	[41] = "Colibri iMX7 Dual 512MB EPDC",
 	[42] = "Apalis TK1 4GB",
+	[43] = "Colibri T20 512MB IT SETEK",
+	[44] = "Colibri iMX6ULL 512MB IT",
+	[45] = "Colibri iMX6ULL 512MB Wi-Fi / Bluetooth",
 };
 
 #ifdef CONFIG_TDX_CFG_BLOCK_IS_IN_MMC
@@ -299,22 +302,47 @@ static int get_cfgblock_interactive(void)
 			else
 				tdx_hw_tag.prodid = APALIS_IMX6D;
 #else
-		if (it == 'y' || it == 'Y')
-			if (is_cpu_type(MXC_CPU_MX6DL))
+		char wb = 'n';
+
+		if (it == 'y' || it == 'Y') {
+			if (is_cpu_type(MXC_CPU_MX6DL)) {
 				tdx_hw_tag.prodid = COLIBRI_IMX6DL_IT;
-			else
+			} else if (is_cpu_type(MXC_CPU_MX6SOLO)) {
 				tdx_hw_tag.prodid = COLIBRI_IMX6S_IT;
-		else
-			if (is_cpu_type(MXC_CPU_MX6DL))
+			} else {
+				sprintf(message, "Does the module have WiFi /" \
+						 " Bluetooth? [y/N] ");
+				len = cli_readline(message);
+				wb = console_buffer[0];
+				if (wb == 'y' || wb == 'Y')
+					tdx_hw_tag.prodid =
+						COLIBRI_IMX6ULL_WIFI_BT_IT;
+				else
+					tdx_hw_tag.prodid = COLIBRI_IMX6ULL_IT;
+			}
+		} else {
+			if (is_cpu_type(MXC_CPU_MX6DL)) {
 				tdx_hw_tag.prodid = COLIBRI_IMX6DL;
-			else
+			} else if (is_cpu_type(MXC_CPU_MX6SOLO)) {
 				tdx_hw_tag.prodid = COLIBRI_IMX6S;
+			} else {
+				sprintf(message, "Does the module have WiFi /" \
+						 " Bluetooth? [y/N] ");
+				len = cli_readline(message);
+				wb = console_buffer[0];
+				if (wb == 'y' || wb == 'Y')
+					tdx_hw_tag.prodid =
+						COLIBRI_IMX6ULL_WIFI_BT;
+				else
+					tdx_hw_tag.prodid = COLIBRI_IMX6ULL;
+			}
+		}
 #endif /* CONFIG_MACH_TYPE */
-	} else if (!strcmp("imx7d", soc)) {
+	} else if (!strcmp("imx7d", soc))
 		tdx_hw_tag.prodid = COLIBRI_IMX7D;
-	} else if (!strcmp("imx7s", soc)) {
+	else if (!strcmp("imx7s", soc))
 		tdx_hw_tag.prodid = COLIBRI_IMX7S;
-	} else if (!strcmp("tegra20", soc)) {
+	else if (!strcmp("tegra20", soc)) {
 		if (it == 'y' || it == 'Y')
 			if (gd->ram_size == 0x10000000)
 				tdx_hw_tag.prodid = COLIBRI_T20_256MB_IT;
@@ -330,8 +358,9 @@ static int get_cfgblock_interactive(void)
 			tdx_hw_tag.prodid = COLIBRI_PXA270_312MHZ;
 		else
 			tdx_hw_tag.prodid = COLIBRI_PXA270_520MHZ;
+	}
 #ifdef CONFIG_MACH_TYPE
-	} else if (!strcmp("tegra30", soc)) {
+	else if (!strcmp("tegra30", soc)) {
 		if (CONFIG_MACH_TYPE == MACH_TYPE_APALIS_T30) {
 			if (it == 'y' || it == 'Y')
 				tdx_hw_tag.prodid = APALIS_T30_IT;
@@ -346,8 +375,9 @@ static int get_cfgblock_interactive(void)
 			else
 				tdx_hw_tag.prodid = COLIBRI_T30;
 		}
+	}
 #endif /* CONFIG_MACH_TYPE */
-	} else if (!strcmp("tegra124", soc)) {
+	else if (!strcmp("tegra124", soc)) {
 		tdx_hw_tag.prodid = APALIS_TK1_2GB;
 	} else if (!strcmp("vf500", soc)) {
 		if (it == 'y' || it == 'Y')
@@ -373,7 +403,7 @@ static int get_cfgblock_interactive(void)
 	tdx_hw_tag.ver_minor = console_buffer[2] - '0';
 	tdx_hw_tag.ver_assembly = console_buffer[3] - 'A';
 
-	if (cpu_is_pxa27x() && (tdx_hw_tag.ver_major == 1))
+	if (cpu_is_pxa27x() && tdx_hw_tag.ver_major == 1)
 		tdx_hw_tag.prodid -= (COLIBRI_PXA270_312MHZ -
 				       COLIBRI_PXA270_V1_312MHZ);
 
@@ -441,7 +471,8 @@ static int do_cfgblock_create(cmd_tbl_t *cmdtp, int flag, int argc,
 		 * On NAND devices, recreation is only allowed if the page is
 		 * empty (config block invalid...)
 		 */
-		printf("NAND erase block %d need to be erased before creating a Toradex config block\n",
+		printf("NAND erase block %d need to be erased before creating" \
+		       " a Toradex config block\n",
 		       CONFIG_TDX_CFG_BLOCK_OFFSET /
 		       get_nand_dev_by_index(0)->erasesize);
 		goto out;
@@ -450,7 +481,8 @@ static int do_cfgblock_create(cmd_tbl_t *cmdtp, int flag, int argc,
 		 * On NOR devices, recreation is only allowed if the sector is
 		 * empty and write protection is off (config block invalid...)
 		 */
-		printf("NOR sector at offset 0x%02x need to be erased and unprotected before creating a Toradex config block\n",
+		printf("NOR sector at offset 0x%02x need to be erased and " \
+		       "unprotected before creating a Toradex config block\n",
 		       CONFIG_TDX_CFG_BLOCK_OFFSET);
 		goto out;
 #else
diff --git a/board/toradex/common/tdx-cfg-block.h b/board/toradex/common/tdx-cfg-block.h
index da60e789a7..961bb4394f 100644
--- a/board/toradex/common/tdx-cfg-block.h
+++ b/board/toradex/common/tdx-cfg-block.h
@@ -61,6 +61,9 @@ enum {
 	COLIBRI_IMX6ULL_WIFI_BT_IT, /* 40 */
 	COLIBRI_IMX7D_EPDC,
 	APALIS_TK1_4GB,
+	COLIBRI_T20_512MB_IT_SETEK,
+	COLIBRI_IMX6ULL_IT,
+	COLIBRI_IMX6ULL_WIFI_BT, /* 45 */
 };
 
 extern const char * const toradex_modules[];
-- 
2.20.1

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

* [U-Boot] [PATCH v3 02/14] tdx-cfg-block: simplify i.MX 6 module detection
  2019-04-17 23:57 [U-Boot] [PATCH v3 00/14] colibri-imx6ull device tree enablement and driver model conversion Marcel Ziswiler
  2019-04-17 23:57 ` [U-Boot] [PATCH v3 01/14] tdx-cfg-block: add support for new colibri iMX6ull skus Marcel Ziswiler
@ 2019-04-17 23:57 ` Marcel Ziswiler
  2019-04-17 23:57 ` [U-Boot] [PATCH v3 03/14] colibri-imx6ull: set module variant depending on config block Marcel Ziswiler
                   ` (11 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-17 23:57 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

Use CONFIG_TARGET_... at compile time to differentiate between
Apalis iMX6, Colibri iMX6 and Colibri iMX6ULL. Avoid code
duplication by moving question about Wi-Fi / Bluetooth before
IT/non-IT decision.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v3: None
Changes in v2:
- Added Igor's reviewed-by.

 board/toradex/common/tdx-cfg-block.c | 68 ++++++++++++++--------------
 1 file changed, 34 insertions(+), 34 deletions(-)

diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c
index 3b73421243..71ff40cfad 100644
--- a/board/toradex/common/tdx-cfg-block.c
+++ b/board/toradex/common/tdx-cfg-block.c
@@ -280,6 +280,9 @@ static int get_cfgblock_interactive(void)
 	char it = 'n';
 	int len;
 
+	/* Unknown module by default */
+	tdx_hw_tag.prodid = 0;
+
 	if (cpu_is_pxa27x())
 		sprintf(message, "Is the module the 312 MHz version? [y/N] ");
 	else
@@ -290,54 +293,49 @@ static int get_cfgblock_interactive(void)
 
 	soc = env_get("soc");
 	if (!strcmp("mx6", soc)) {
-#ifdef CONFIG_MACH_TYPE
-		if (it == 'y' || it == 'Y')
+#ifdef CONFIG_TARGET_APALIS_IMX6
+		if (it == 'y' || it == 'Y') {
 			if (is_cpu_type(MXC_CPU_MX6Q))
 				tdx_hw_tag.prodid = APALIS_IMX6Q_IT;
 			else
 				tdx_hw_tag.prodid = APALIS_IMX6D_IT;
-		else
+		} else {
 			if (is_cpu_type(MXC_CPU_MX6Q))
 				tdx_hw_tag.prodid = APALIS_IMX6Q;
 			else
 				tdx_hw_tag.prodid = APALIS_IMX6D;
-#else
-		char wb = 'n';
-
+		}
+#elif CONFIG_TARGET_COLIBRI_IMX6
 		if (it == 'y' || it == 'Y') {
-			if (is_cpu_type(MXC_CPU_MX6DL)) {
+			if (is_cpu_type(MXC_CPU_MX6DL))
 				tdx_hw_tag.prodid = COLIBRI_IMX6DL_IT;
-			} else if (is_cpu_type(MXC_CPU_MX6SOLO)) {
+			else if (is_cpu_type(MXC_CPU_MX6SOLO))
 				tdx_hw_tag.prodid = COLIBRI_IMX6S_IT;
-			} else {
-				sprintf(message, "Does the module have WiFi /" \
-						 " Bluetooth? [y/N] ");
-				len = cli_readline(message);
-				wb = console_buffer[0];
-				if (wb == 'y' || wb == 'Y')
-					tdx_hw_tag.prodid =
-						COLIBRI_IMX6ULL_WIFI_BT_IT;
-				else
-					tdx_hw_tag.prodid = COLIBRI_IMX6ULL_IT;
-			}
 		} else {
-			if (is_cpu_type(MXC_CPU_MX6DL)) {
+			if (is_cpu_type(MXC_CPU_MX6DL))
 				tdx_hw_tag.prodid = COLIBRI_IMX6DL;
-			} else if (is_cpu_type(MXC_CPU_MX6SOLO)) {
+			else if (is_cpu_type(MXC_CPU_MX6SOLO))
 				tdx_hw_tag.prodid = COLIBRI_IMX6S;
-			} else {
-				sprintf(message, "Does the module have WiFi /" \
-						 " Bluetooth? [y/N] ");
-				len = cli_readline(message);
-				wb = console_buffer[0];
-				if (wb == 'y' || wb == 'Y')
-					tdx_hw_tag.prodid =
-						COLIBRI_IMX6ULL_WIFI_BT;
-				else
-					tdx_hw_tag.prodid = COLIBRI_IMX6ULL;
-			}
 		}
-#endif /* CONFIG_MACH_TYPE */
+#elif CONFIG_TARGET_COLIBRI_IMX6ULL
+		char wb = 'n';
+
+		sprintf(message, "Does the module have Wi-Fi / Bluetooth? " \
+				 "[y/N] ");
+		len = cli_readline(message);
+		wb = console_buffer[0];
+		if (it == 'y' || it == 'Y') {
+			if (wb == 'y' || wb == 'Y')
+				tdx_hw_tag.prodid = COLIBRI_IMX6ULL_WIFI_BT_IT;
+			else
+				tdx_hw_tag.prodid = COLIBRI_IMX6ULL_IT;
+		} else {
+			if (wb == 'y' || wb == 'Y')
+				tdx_hw_tag.prodid = COLIBRI_IMX6ULL_WIFI_BT;
+			else
+				tdx_hw_tag.prodid = COLIBRI_IMX6ULL;
+		}
+#endif
 	} else if (!strcmp("imx7d", soc))
 		tdx_hw_tag.prodid = COLIBRI_IMX7D;
 	else if (!strcmp("imx7s", soc))
@@ -389,7 +387,9 @@ static int get_cfgblock_interactive(void)
 			tdx_hw_tag.prodid = COLIBRI_VF61_IT;
 		else
 			tdx_hw_tag.prodid = COLIBRI_VF61;
-	} else {
+	}
+
+	if (!tdx_hw_tag.prodid) {
 		printf("Module type not detectable due to unknown SoC\n");
 		return -1;
 	}
-- 
2.20.1

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

* [U-Boot] [PATCH v3 03/14] colibri-imx6ull: set module variant depending on config block
  2019-04-17 23:57 [U-Boot] [PATCH v3 00/14] colibri-imx6ull device tree enablement and driver model conversion Marcel Ziswiler
  2019-04-17 23:57 ` [U-Boot] [PATCH v3 01/14] tdx-cfg-block: add support for new colibri iMX6ull skus Marcel Ziswiler
  2019-04-17 23:57 ` [U-Boot] [PATCH v3 02/14] tdx-cfg-block: simplify i.MX 6 module detection Marcel Ziswiler
@ 2019-04-17 23:57 ` Marcel Ziswiler
  2019-04-17 23:57 ` [U-Boot] [PATCH v3 04/14] apalis/colibri_imx6/imx6ull: make sure loadaddr does not collide Marcel Ziswiler
                   ` (10 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-17 23:57 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

Using CPU temperature grading as a discriminator if the Wi-Fi /
Bluetooth chip is populated is no longer possible due to upcoming
SKUs. Set variant to -wifi only if a valid config block is present
and the product id mentions a SKU with Wi-Fi / Bluetooth.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v3: None
Changes in v2:
- Added Igor's reviewed-by.

 board/toradex/colibri-imx6ull/colibri-imx6ull.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/board/toradex/colibri-imx6ull/colibri-imx6ull.c b/board/toradex/colibri-imx6ull/colibri-imx6ull.c
index fcb49a0718..fe60b8e870 100644
--- a/board/toradex/colibri-imx6ull/colibri-imx6ull.c
+++ b/board/toradex/colibri-imx6ull/colibri-imx6ull.c
@@ -29,6 +29,7 @@
 #include <usb.h>
 #include <usb/ehci-ci.h>
 #include "../common/tdx-common.h"
+#include "../common/tdx-cfg-block.h"
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -317,10 +318,15 @@ static const struct boot_mode board_boot_modes[] = {
 
 int board_late_init(void)
 {
-	int minc, maxc;
-
-	if (get_cpu_temp_grade(&minc, &maxc) != TEMP_COMMERCIAL)
+#ifdef CONFIG_TDX_CFG_BLOCK
+	/*
+	 * If we have a valid config block and it says we are a module with
+	 * Wi-Fi/Bluetooth make sure we use the -wifi device tree.
+	 */
+	if (tdx_hw_tag.prodid == COLIBRI_IMX6ULL_WIFI_BT_IT ||
+	    tdx_hw_tag.prodid == COLIBRI_IMX6ULL_WIFI_BT)
 		env_set("variant", "-wifi");
+#endif
 
 #ifdef CONFIG_CMD_BMODE
 	add_board_boot_modes(board_boot_modes);
-- 
2.20.1

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

* [U-Boot] [PATCH v3 04/14] apalis/colibri_imx6/imx6ull: make sure loadaddr does not collide
  2019-04-17 23:57 [U-Boot] [PATCH v3 00/14] colibri-imx6ull device tree enablement and driver model conversion Marcel Ziswiler
                   ` (2 preceding siblings ...)
  2019-04-17 23:57 ` [U-Boot] [PATCH v3 03/14] colibri-imx6ull: set module variant depending on config block Marcel Ziswiler
@ 2019-04-17 23:57 ` Marcel Ziswiler
  2019-04-17 23:57 ` [U-Boot] [PATCH v3 05/14] colibri-imx6ull: fix ethernet phy power on Marcel Ziswiler
                   ` (9 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-17 23:57 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

Currently $loadaddr and $fdt_addr_r point to the same address. This
might be not ideal for some distro boot scripts which make use of
$loadaddr after loading the device tree.

Make sure the two variables point to two different addresses. Moving
$loadaddr is not entirly trivial since it is defined in mx6_common.h.
Move $fdt_addr_r and $ramdisk_addr_r by 1MiB, which should be enough
for scripts.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v3: None
Changes in v2:
- Added Igor's reviewed-by.

 include/configs/apalis_imx6.h     | 4 ++--
 include/configs/colibri-imx6ull.h | 4 ++--
 include/configs/colibri_imx6.h    | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/include/configs/apalis_imx6.h b/include/configs/apalis_imx6.h
index 96169f55f0..91054d8c05 100644
--- a/include/configs/apalis_imx6.h
+++ b/include/configs/apalis_imx6.h
@@ -138,12 +138,12 @@
 
 #define MEM_LAYOUT_ENV_SETTINGS \
 	"bootm_size=0x20000000\0" \
-	"fdt_addr_r=0x12000000\0" \
+	"fdt_addr_r=0x12100000\0" \
 	"fdt_high=0xffffffff\0" \
 	"initrd_high=0xffffffff\0" \
 	"kernel_addr_r=0x11000000\0" \
 	"pxefile_addr_r=0x17100000\0" \
-	"ramdisk_addr_r=0x12100000\0" \
+	"ramdisk_addr_r=0x12200000\0" \
 	"scriptaddr=0x17000000\0"
 
 #define NFS_BOOTCMD \
diff --git a/include/configs/colibri-imx6ull.h b/include/configs/colibri-imx6ull.h
index 7cf550cf9e..31248b14a1 100644
--- a/include/configs/colibri-imx6ull.h
+++ b/include/configs/colibri-imx6ull.h
@@ -48,12 +48,12 @@
 
 #define MEM_LAYOUT_ENV_SETTINGS \
 	"bootm_size=0x10000000\0" \
-	"fdt_addr_r=0x82000000\0" \
+	"fdt_addr_r=0x82100000\0" \
 	"fdt_high=0xffffffff\0" \
 	"initrd_high=0xffffffff\0" \
 	"kernel_addr_r=0x81000000\0" \
 	"pxefile_addr_r=0x87100000\0" \
-	"ramdisk_addr_r=0x82100000\0" \
+	"ramdisk_addr_r=0x82200000\0" \
 	"scriptaddr=0x87000000\0"
 
 #define NFS_BOOTCMD \
diff --git a/include/configs/colibri_imx6.h b/include/configs/colibri_imx6.h
index 803c9be064..fecea95d32 100644
--- a/include/configs/colibri_imx6.h
+++ b/include/configs/colibri_imx6.h
@@ -128,12 +128,12 @@
 
 #define MEM_LAYOUT_ENV_SETTINGS \
 	"bootm_size=0x10000000\0" \
-	"fdt_addr_r=0x12000000\0" \
+	"fdt_addr_r=0x12100000\0" \
 	"fdt_high=0xffffffff\0" \
 	"initrd_high=0xffffffff\0" \
 	"kernel_addr_r=0x11000000\0" \
 	"pxefile_addr_r=0x17100000\0" \
-	"ramdisk_addr_r=0x12100000\0" \
+	"ramdisk_addr_r=0x12200000\0" \
 	"scriptaddr=0x17000000\0"
 
 #define NFS_BOOTCMD \
-- 
2.20.1

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

* [U-Boot] [PATCH v3 05/14] colibri-imx6ull: fix ethernet phy power on
  2019-04-17 23:57 [U-Boot] [PATCH v3 00/14] colibri-imx6ull device tree enablement and driver model conversion Marcel Ziswiler
                   ` (3 preceding siblings ...)
  2019-04-17 23:57 ` [U-Boot] [PATCH v3 04/14] apalis/colibri_imx6/imx6ull: make sure loadaddr does not collide Marcel Ziswiler
@ 2019-04-17 23:57 ` Marcel Ziswiler
  2019-04-17 23:57 ` [U-Boot] [PATCH v3 06/14] board: imx6ull: Add disable PMIC_STBY_REQ Marcel Ziswiler
                   ` (8 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-17 23:57 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Just give the new Ethernet PHY power save mode circuitry time to settle.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v3: None
Changes in v2:
- Added Igor's reviewed-by tag.

 board/toradex/colibri-imx6ull/colibri-imx6ull.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/board/toradex/colibri-imx6ull/colibri-imx6ull.c b/board/toradex/colibri-imx6ull/colibri-imx6ull.c
index fe60b8e870..b6f45edb86 100644
--- a/board/toradex/colibri-imx6ull/colibri-imx6ull.c
+++ b/board/toradex/colibri-imx6ull/colibri-imx6ull.c
@@ -263,6 +263,9 @@ static int setup_fec(void)
 			IOMUX_GPR1_FEC2_CLOCK_MUX2_SEL_MASK,
 			IOMUX_GPR1_FEC2_CLOCK_MUX1_SEL_MASK);
 
+	/* give new Ethernet PHY power save mode circuitry time to settle */
+	mdelay(300);
+
 	return 0;
 }
 
-- 
2.20.1

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

* [U-Boot] [PATCH v3 06/14] board: imx6ull: Add disable PMIC_STBY_REQ
  2019-04-17 23:57 [U-Boot] [PATCH v3 00/14] colibri-imx6ull device tree enablement and driver model conversion Marcel Ziswiler
                   ` (4 preceding siblings ...)
  2019-04-17 23:57 ` [U-Boot] [PATCH v3 05/14] colibri-imx6ull: fix ethernet phy power on Marcel Ziswiler
@ 2019-04-17 23:57 ` Marcel Ziswiler
  2019-04-17 23:57 ` [U-Boot] [PATCH v3 07/14] colibri-imx6ull: configuration clean-up Marcel Ziswiler
                   ` (7 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-17 23:57 UTC (permalink / raw)
  To: u-boot

From: Philippe Schenker <philippe.schenker@toradex.com>

Disable output driver of PAD CCM_PMIC_STBY_REQ. This prevents the
SOC to request for a lower voltage during sleep. This is necessary
because the voltage is changing too slow for the SOC to wake up
properly.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v3: None
Changes in v2:
- Added Igor's reviewed-by.

 board/toradex/colibri-imx6ull/colibri-imx6ull.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/board/toradex/colibri-imx6ull/colibri-imx6ull.c b/board/toradex/colibri-imx6ull/colibri-imx6ull.c
index b6f45edb86..f1d5cc6655 100644
--- a/board/toradex/colibri-imx6ull/colibri-imx6ull.c
+++ b/board/toradex/colibri-imx6ull/colibri-imx6ull.c
@@ -50,6 +50,8 @@ DECLARE_GLOBAL_DATA_PTR;
 #define LCD_PAD_CTRL    (PAD_CTL_HYS | PAD_CTL_PUS_100K_UP | \
 		PAD_CTL_DSE_48ohm)
 
+#define MX6_PAD_SNVS_PMIC_STBY_REQ_ADDR 0x2290040
+
 #define NAND_PAD_CTRL (PAD_CTL_DSE_48ohm | PAD_CTL_SRE_SLOW | PAD_CTL_HYS)
 
 #define NAND_PAD_READY0_CTRL (PAD_CTL_DSE_48ohm | PAD_CTL_PUS_22K_UP)
@@ -331,6 +333,14 @@ int board_late_init(void)
 		env_set("variant", "-wifi");
 #endif
 
+	/*
+	 * Disable output driver of PAD CCM_PMIC_STBY_REQ. This prevents the
+	 * SOC to request for a lower voltage during sleep. This is necessary
+	 * because the voltage is changing too slow for the SOC to wake up
+	 * properly.
+	 */
+	__raw_writel(0x8080, MX6_PAD_SNVS_PMIC_STBY_REQ_ADDR);
+
 #ifdef CONFIG_CMD_BMODE
 	add_board_boot_modes(board_boot_modes);
 #endif
-- 
2.20.1

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

* [U-Boot] [PATCH v3 07/14] colibri-imx6ull: configuration clean-up
  2019-04-17 23:57 [U-Boot] [PATCH v3 00/14] colibri-imx6ull device tree enablement and driver model conversion Marcel Ziswiler
                   ` (5 preceding siblings ...)
  2019-04-17 23:57 ` [U-Boot] [PATCH v3 06/14] board: imx6ull: Add disable PMIC_STBY_REQ Marcel Ziswiler
@ 2019-04-17 23:57 ` Marcel Ziswiler
  2019-04-17 23:57 ` [U-Boot] [PATCH v3 08/14] colibri-imx6ull: migrate pinctrl and regulators to dtb/dm Marcel Ziswiler
                   ` (6 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-17 23:57 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Drop disabling SPL_SYS_THUMB_BUILD as we anyway do not use SPL.
Enbale CRC32 verify, USB SDP and EFI loader support.
Drop CMD_GPT and disabling RANDOM_UUID.
Do savedefconfig which drops USB_FUNCTION_SDP.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v3: None
Changes in v2:
- Added Igor's reviewed-by.

 configs/colibri-imx6ull_defconfig | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/configs/colibri-imx6ull_defconfig b/configs/colibri-imx6ull_defconfig
index dfe6ec1ce7..b19b3b7fb2 100644
--- a/configs/colibri-imx6ull_defconfig
+++ b/configs/colibri-imx6ull_defconfig
@@ -1,6 +1,5 @@
 CONFIG_ARM=y
 CONFIG_SYS_THUMB_BUILD=y
-# CONFIG_SPL_SYS_THUMB_BUILD is not set
 CONFIG_ARCH_MX6=y
 CONFIG_SYS_TEXT_BASE=0x87800000
 CONFIG_TARGET_COLIBRI_IMX6ULL=y
@@ -18,19 +17,20 @@ CONFIG_DISPLAY_BOARDINFO_LATE=y
 CONFIG_BOUNCE_BUFFER=y
 CONFIG_BOARD_EARLY_INIT_F=y
 CONFIG_SYS_PROMPT="Colibri iMX6ULL # "
+# CONFIG_CMD_ELF is not set
 # CONFIG_CMD_IMI is not set
 # CONFIG_CMD_XIMG is not set
 CONFIG_CMD_ASKENV=y
+CONFIG_CRC32_VERIFY=y
 CONFIG_CMD_MEMTEST=y
 CONFIG_CMD_DFU=y
 CONFIG_CMD_GPIO=y
-CONFIG_CMD_GPT=y
-# CONFIG_RANDOM_UUID is not set
 CONFIG_CMD_I2C=y
 CONFIG_CMD_MMC=y
 CONFIG_CMD_NAND_TRIMFFS=y
 CONFIG_CMD_NAND_TORTURE=y
 CONFIG_CMD_USB=y
+CONFIG_CMD_USB_SDP=y
 CONFIG_CMD_USB_MASS_STORAGE=y
 CONFIG_CMD_BMP=y
 CONFIG_CMD_CACHE=y
@@ -73,8 +73,6 @@ CONFIG_USB_GADGET_VENDOR_NUM=0x1b67
 CONFIG_USB_GADGET_PRODUCT_NUM=0x4000
 CONFIG_CI_UDC=y
 CONFIG_USB_GADGET_DOWNLOAD=y
-CONFIG_USB_FUNCTION_SDP=y
 CONFIG_VIDEO=y
 CONFIG_OF_LIBFDT_OVERLAY=y
 CONFIG_FDT_FIXUP_PARTITIONS=y
-# CONFIG_EFI_LOADER is not set
-- 
2.20.1

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

* [U-Boot] [PATCH v3 08/14] colibri-imx6ull: migrate pinctrl and regulators to dtb/dm
  2019-04-17 23:57 [U-Boot] [PATCH v3 00/14] colibri-imx6ull device tree enablement and driver model conversion Marcel Ziswiler
                   ` (6 preceding siblings ...)
  2019-04-17 23:57 ` [U-Boot] [PATCH v3 07/14] colibri-imx6ull: configuration clean-up Marcel Ziswiler
@ 2019-04-17 23:57 ` Marcel Ziswiler
  2019-04-17 23:57 ` [U-Boot] [PATCH v3 09/14] colibri-imx6ull: migrate mmc to using driver model Marcel Ziswiler
                   ` (5 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-17 23:57 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Migrate pinctrl and regulators to device tree resp. driver model:
Ethernet, NAND and UART.
Drop BOARD_EARLY_INIT_F as it is anyway no longer used.
Enable CMD_DM, CMD_MTD, CMD_REGULATOR and DM_REGULATOR_FIXED.
While at it also update copyright period.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v3: None
Changes in v2:
- Added Igor's reviewed-by.

 .../toradex/colibri-imx6ull/colibri-imx6ull.c | 82 ++-----------------
 configs/colibri-imx6ull_defconfig             |  5 +-
 2 files changed, 10 insertions(+), 77 deletions(-)

diff --git a/board/toradex/colibri-imx6ull/colibri-imx6ull.c b/board/toradex/colibri-imx6ull/colibri-imx6ull.c
index f1d5cc6655..8493b1dfdd 100644
--- a/board/toradex/colibri-imx6ull/colibri-imx6ull.c
+++ b/board/toradex/colibri-imx6ull/colibri-imx6ull.c
@@ -1,8 +1,9 @@
 // SPDX-License-Identifier: GPL-2.0+
 /*
- * Copyright (C) 2018 Toradex AG
+ * Copyright (C) 2018-2019 Toradex AG
  */
 #include <common.h>
+
 #include <asm/arch/clock.h>
 #include <asm/arch/crm_regs.h>
 #include <asm/arch/imx-regs.h>
@@ -14,7 +15,6 @@
 #include <asm/mach-imx/boot_mode.h>
 #include <asm/mach-imx/iomux-v3.h>
 #include <asm/io.h>
-#include <common.h>
 #include <dm.h>
 #include <dm/platform_data/serial_mxc.h>
 #include <fdt_support.h>
@@ -28,25 +28,16 @@
 #include <netdev.h>
 #include <usb.h>
 #include <usb/ehci-ci.h>
+
 #include "../common/tdx-common.h"
 #include "../common/tdx-cfg-block.h"
 
 DECLARE_GLOBAL_DATA_PTR;
 
-#define UART_PAD_CTRL  (PAD_CTL_PUS_100K_UP |			\
-	PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm |			\
-	PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
-
 #define USDHC_PAD_CTRL (PAD_CTL_PUS_47K_UP |			\
 	PAD_CTL_SPEED_LOW | PAD_CTL_DSE_40ohm |			\
 	PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
 
-#define ENET_PAD_CTRL  (PAD_CTL_PUS_100K_UP |			\
-	PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
-#define ENET_PAD_CTRL_MII  (PAD_CTL_DSE_40ohm)
-
-#define ENET_RX_PAD_CTRL  (PAD_CTL_PUS_100K_UP | PAD_CTL_DSE_48ohm)
-
 #define LCD_PAD_CTRL    (PAD_CTL_HYS | PAD_CTL_PUS_100K_UP | \
 		PAD_CTL_DSE_48ohm)
 
@@ -65,13 +56,6 @@ int dram_init(void)
 	return 0;
 }
 
-static iomux_v3_cfg_t const uart1_pads[] = {
-	MX6_PAD_UART1_TX_DATA__UART1_DTE_RX	| MUX_PAD_CTRL(UART_PAD_CTRL),
-	MX6_PAD_UART1_RX_DATA__UART1_DTE_TX	| MUX_PAD_CTRL(UART_PAD_CTRL),
-	MX6_PAD_UART1_RTS_B__UART1_DTE_CTS	| MUX_PAD_CTRL(UART_PAD_CTRL),
-	MX6_PAD_UART1_CTS_B__UART1_DTE_RTS	| MUX_PAD_CTRL(UART_PAD_CTRL),
-};
-
 #ifdef CONFIG_FSL_ESDHC
 static iomux_v3_cfg_t const usdhc1_pads[] = {
 	MX6_PAD_SD1_CLK__USDHC1_CLK	| MUX_PAD_CTRL(USDHC_PAD_CTRL),
@@ -90,31 +74,12 @@ static iomux_v3_cfg_t const usb_cdet_pads[] = {
 };
 
 #ifdef CONFIG_NAND_MXS
-static iomux_v3_cfg_t const gpmi_pads[] = {
-	MX6_PAD_NAND_DATA00__RAWNAND_DATA00	| MUX_PAD_CTRL(NAND_PAD_CTRL),
-	MX6_PAD_NAND_DATA01__RAWNAND_DATA01	| MUX_PAD_CTRL(NAND_PAD_CTRL),
-	MX6_PAD_NAND_DATA02__RAWNAND_DATA02	| MUX_PAD_CTRL(NAND_PAD_CTRL),
-	MX6_PAD_NAND_DATA03__RAWNAND_DATA03	| MUX_PAD_CTRL(NAND_PAD_CTRL),
-	MX6_PAD_NAND_DATA04__RAWNAND_DATA04	| MUX_PAD_CTRL(NAND_PAD_CTRL),
-	MX6_PAD_NAND_DATA05__RAWNAND_DATA05	| MUX_PAD_CTRL(NAND_PAD_CTRL),
-	MX6_PAD_NAND_DATA06__RAWNAND_DATA06	| MUX_PAD_CTRL(NAND_PAD_CTRL),
-	MX6_PAD_NAND_DATA07__RAWNAND_DATA07	| MUX_PAD_CTRL(NAND_PAD_CTRL),
-	MX6_PAD_NAND_CLE__RAWNAND_CLE		| MUX_PAD_CTRL(NAND_PAD_CTRL),
-	MX6_PAD_NAND_ALE__RAWNAND_ALE		| MUX_PAD_CTRL(NAND_PAD_CTRL),
-	MX6_PAD_NAND_RE_B__RAWNAND_RE_B		| MUX_PAD_CTRL(NAND_PAD_CTRL),
-	MX6_PAD_NAND_WE_B__RAWNAND_WE_B		| MUX_PAD_CTRL(NAND_PAD_CTRL),
-	MX6_PAD_NAND_CE0_B__RAWNAND_CE0_B	| MUX_PAD_CTRL(NAND_PAD_CTRL),
-	MX6_PAD_NAND_READY_B__RAWNAND_READY_B	| MUX_PAD_CTRL(NAND_PAD_READY0_CTRL),
-};
-
 static void setup_gpmi_nand(void)
 {
-	imx_iomux_v3_setup_multiple_pads(gpmi_pads, ARRAY_SIZE(gpmi_pads));
-
 	setup_gpmi_io_clk((3 << MXC_CCM_CSCDR1_BCH_PODF_OFFSET) |
 			  (3 << MXC_CCM_CSCDR1_GPMI_PODF_OFFSET));
 }
-#endif
+#endif /* CONFIG_NAND_MXS */
 
 #ifdef CONFIG_VIDEO_MXS
 static iomux_v3_cfg_t const lcd_pads[] = {
@@ -170,31 +135,6 @@ static int setup_lcd(void)
 }
 #endif
 
-#ifdef CONFIG_FEC_MXC
-static iomux_v3_cfg_t const fec2_pads[] = {
-	MX6_PAD_ENET2_TX_CLK__ENET2_REF_CLK2		| MUX_PAD_CTRL(ENET_PAD_CTRL) | MUX_MODE_SION,
-	MX6_PAD_GPIO1_IO06__ENET2_MDIO			| MUX_PAD_CTRL(ENET_PAD_CTRL_MII),
-	MX6_PAD_GPIO1_IO07__ENET2_MDC			| MUX_PAD_CTRL(ENET_PAD_CTRL_MII),
-	MX6_PAD_ENET2_RX_DATA0__ENET2_RDATA00		| MUX_PAD_CTRL(ENET_RX_PAD_CTRL),
-	MX6_PAD_ENET2_RX_DATA1__ENET2_RDATA01		| MUX_PAD_CTRL(ENET_RX_PAD_CTRL),
-	MX6_PAD_ENET2_RX_ER__ENET2_RX_ER		| MUX_PAD_CTRL(ENET_RX_PAD_CTRL),
-	MX6_PAD_ENET2_RX_EN__ENET2_RX_EN		| MUX_PAD_CTRL(ENET_RX_PAD_CTRL),
-	MX6_PAD_ENET2_TX_DATA0__ENET2_TDATA00		| MUX_PAD_CTRL(ENET_PAD_CTRL),
-	MX6_PAD_ENET2_TX_DATA1__ENET2_TDATA01		| MUX_PAD_CTRL(ENET_PAD_CTRL),
-	MX6_PAD_ENET2_TX_EN__ENET2_TX_EN		| MUX_PAD_CTRL(ENET_PAD_CTRL),
-};
-
-static void setup_iomux_fec(void)
-{
-	imx_iomux_v3_setup_multiple_pads(fec2_pads, ARRAY_SIZE(fec2_pads));
-}
-#endif
-
-static void setup_iomux_uart(void)
-{
-	imx_iomux_v3_setup_multiple_pads(uart1_pads, ARRAY_SIZE(uart1_pads));
-}
-
 #ifdef CONFIG_FSL_ESDHC
 
 #define USDHC1_CD_GPIO	IMX_GPIO_NR(5, 0)
@@ -247,20 +187,17 @@ int board_mmc_init(bd_t *bis)
 #endif
 
 #ifdef CONFIG_FEC_MXC
-
 static int setup_fec(void)
 {
 	struct iomuxc *iomuxc_regs = (struct iomuxc *)IOMUXC_BASE_ADDR;
 	int ret;
 
-	setup_iomux_fec();
-
 	/* provide the PHY clock from the i.MX 6 */
 	ret = enable_fec_anatop_clock(1, ENET_50MHZ);
 	if (ret)
 		return ret;
 
-	/* Use 50M anatop REF_CLK and output it on the ENET2_TX_CLK */
+	/* Use 50M anatop REF_CLK and output it on ENET2_TX_CLK */
 	clrsetbits_le32(&iomuxc_regs->gpr[1],
 			IOMUX_GPR1_FEC2_CLOCK_MUX2_SEL_MASK,
 			IOMUX_GPR1_FEC2_CLOCK_MUX1_SEL_MASK);
@@ -277,14 +214,7 @@ int board_phy_config(struct phy_device *phydev)
 		phydev->drv->config(phydev);
 	return 0;
 }
-#endif
-
-int board_early_init_f(void)
-{
-	setup_iomux_uart();
-
-	return 0;
-}
+#endif /* CONFIG_FEC_MXC */
 
 int board_init(void)
 {
diff --git a/configs/colibri-imx6ull_defconfig b/configs/colibri-imx6ull_defconfig
index b19b3b7fb2..ce2c09338d 100644
--- a/configs/colibri-imx6ull_defconfig
+++ b/configs/colibri-imx6ull_defconfig
@@ -15,7 +15,6 @@ CONFIG_VERSION_VARIABLE=y
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_DISPLAY_BOARDINFO_LATE=y
 CONFIG_BOUNCE_BUFFER=y
-CONFIG_BOARD_EARLY_INIT_F=y
 CONFIG_SYS_PROMPT="Colibri iMX6ULL # "
 # CONFIG_CMD_ELF is not set
 # CONFIG_CMD_IMI is not set
@@ -24,9 +23,11 @@ CONFIG_CMD_ASKENV=y
 CONFIG_CRC32_VERIFY=y
 CONFIG_CMD_MEMTEST=y
 CONFIG_CMD_DFU=y
+CONFIG_CMD_DM=y
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_MMC=y
+CONFIG_CMD_MTD=y
 CONFIG_CMD_NAND_TRIMFFS=y
 CONFIG_CMD_NAND_TORTURE=y
 CONFIG_CMD_USB=y
@@ -34,6 +35,7 @@ CONFIG_CMD_USB_SDP=y
 CONFIG_CMD_USB_MASS_STORAGE=y
 CONFIG_CMD_BMP=y
 CONFIG_CMD_CACHE=y
+CONFIG_CMD_REGULATOR=y
 CONFIG_CMD_MTDPARTS=y
 CONFIG_MTDIDS_DEFAULT="nand0=gpmi-nand"
 CONFIG_MTDPARTS_DEFAULT="mtdparts=gpmi-nand:512k(mx6ull-bcb),1536k(u-boot1)ro,1536k(u-boot2)ro,512k(u-boot-env),-(ubi)"
@@ -63,6 +65,7 @@ CONFIG_MII=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX6=y
 CONFIG_DM_REGULATOR=y
+CONFIG_DM_REGULATOR_FIXED=y
 # CONFIG_SPL_SERIAL_PRESENT is not set
 CONFIG_DM_SERIAL=y
 CONFIG_MXC_UART=y
-- 
2.20.1

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

* [U-Boot] [PATCH v3 09/14] colibri-imx6ull: migrate mmc to using driver model
  2019-04-17 23:57 [U-Boot] [PATCH v3 00/14] colibri-imx6ull device tree enablement and driver model conversion Marcel Ziswiler
                   ` (7 preceding siblings ...)
  2019-04-17 23:57 ` [U-Boot] [PATCH v3 08/14] colibri-imx6ull: migrate pinctrl and regulators to dtb/dm Marcel Ziswiler
@ 2019-04-17 23:57 ` Marcel Ziswiler
  2019-04-17 23:57 ` [U-Boot] [PATCH v3 10/14] colibri-imx6ull: migrate usb " Marcel Ziswiler
                   ` (4 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-17 23:57 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Migrate MMC to using driver model.
Migrate USDHC to using pinctrl.
While at it also add GPIO1_IO03__OSC32K_32K_OUT pin muxing.
While at it also update copyright period.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v3: None
Changes in v2:
- Added Igor's reviewed-by.

 arch/arm/dts/imx6ull-colibri.dts              | 15 +++-
 .../toradex/colibri-imx6ull/colibri-imx6ull.c | 70 -------------------
 configs/colibri-imx6ull_defconfig             |  1 +
 include/configs/colibri-imx6ull.h             |  6 +-
 4 files changed, 17 insertions(+), 75 deletions(-)

diff --git a/arch/arm/dts/imx6ull-colibri.dts b/arch/arm/dts/imx6ull-colibri.dts
index 95c67be438..0d416ebd10 100644
--- a/arch/arm/dts/imx6ull-colibri.dts
+++ b/arch/arm/dts/imx6ull-colibri.dts
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 /*
- * Copyright 2018 Toradex AG
+ * Copyright 2018-2019 Toradex AG
  */
 
 /dts-v1/;
@@ -11,6 +11,10 @@
 	model = "Toradex Colibri iMX6ULL";
 	compatible = "toradex,imx6ull-colibri", "fsl,imx6ull";
 
+	aliases {
+		mmc0 = &usdhc1;
+	};
+
 	chosen {
 		stdout-path = &uart1;
 	};
@@ -190,10 +194,18 @@
 	dr_mode = "host";
 };
 
+/* Colibri MMC */
 &usdhc1 {
 	assigned-clocks = <&clks IMX6UL_CLK_USDHC1_SEL>, <&clks IMX6UL_CLK_USDHC1>;
 	assigned-clock-parents = <&clks IMX6UL_CLK_PLL2_PFD2>;
 	assigned-clock-rates = <0>, <198000000>;
+	cd-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>; /* MMC_CD */
+	pinctrl-names = "default", "state_100mhz", "state_200mhz";
+	pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_snvs_usdhc1_cd>;
+	pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
+	pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
+	vmmc-supply = <&reg_sd1_vmmc>;
+	status = "okay";
 };
 
 &iomuxc {
@@ -547,4 +559,3 @@
 		>;
 	};
 };
-
diff --git a/board/toradex/colibri-imx6ull/colibri-imx6ull.c b/board/toradex/colibri-imx6ull/colibri-imx6ull.c
index 8493b1dfdd..c9af44e30e 100644
--- a/board/toradex/colibri-imx6ull/colibri-imx6ull.c
+++ b/board/toradex/colibri-imx6ull/colibri-imx6ull.c
@@ -18,11 +18,9 @@
 #include <dm.h>
 #include <dm/platform_data/serial_mxc.h>
 #include <fdt_support.h>
-#include <fsl_esdhc.h>
 #include <imx_thermal.h>
 #include <jffs2/load_kernel.h>
 #include <linux/sizes.h>
-#include <mmc.h>
 #include <miiphy.h>
 #include <mtd_node.h>
 #include <netdev.h>
@@ -34,10 +32,6 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
-#define USDHC_PAD_CTRL (PAD_CTL_PUS_47K_UP |			\
-	PAD_CTL_SPEED_LOW | PAD_CTL_DSE_40ohm |			\
-	PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
-
 #define LCD_PAD_CTRL    (PAD_CTL_HYS | PAD_CTL_PUS_100K_UP | \
 		PAD_CTL_DSE_48ohm)
 
@@ -56,19 +50,6 @@ int dram_init(void)
 	return 0;
 }
 
-#ifdef CONFIG_FSL_ESDHC
-static iomux_v3_cfg_t const usdhc1_pads[] = {
-	MX6_PAD_SD1_CLK__USDHC1_CLK	| MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD1_CMD__USDHC1_CMD	| MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD1_DATA0__USDHC1_DATA0	| MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD1_DATA1__USDHC1_DATA1	| MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD1_DATA2__USDHC1_DATA2	| MUX_PAD_CTRL(USDHC_PAD_CTRL),
-	MX6_PAD_SD1_DATA3__USDHC1_DATA3	| MUX_PAD_CTRL(USDHC_PAD_CTRL),
-
-	MX6_PAD_SNVS_TAMPER0__GPIO5_IO00 | MUX_PAD_CTRL(NO_PAD_CTRL),
-};
-#endif
-
 static iomux_v3_cfg_t const usb_cdet_pads[] = {
 	MX6_PAD_SNVS_TAMPER2__GPIO5_IO02 | MUX_PAD_CTRL(NO_PAD_CTRL),
 };
@@ -135,57 +116,6 @@ static int setup_lcd(void)
 }
 #endif
 
-#ifdef CONFIG_FSL_ESDHC
-
-#define USDHC1_CD_GPIO	IMX_GPIO_NR(5, 0)
-
-static struct fsl_esdhc_cfg usdhc_cfg[] = {
-	{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;
-
-	/* USDHC1 is mmc0 */
-	for (i = 0; i < CONFIG_SYS_FSL_USDHC_NUM; i++) {
-		switch (i) {
-		case 0:
-			imx_iomux_v3_setup_multiple_pads(usdhc1_pads,
-							 ARRAY_SIZE(usdhc1_pads));
-			gpio_request(USDHC1_CD_GPIO, "usdhc1_cd");
-			gpio_direction_input(USDHC1_CD_GPIO);
-			usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK);
-			break;
-		default:
-			printf("Warning: you configured more USDHC controllers"
-				"(%d) than supported by the board\n", i + 1);
-			return -EINVAL;
-		}
-
-		ret = fsl_esdhc_initialize(bis, &usdhc_cfg[i]);
-		if (ret)
-			return ret;
-	}
-
-	return 0;
-}
-#endif
-
 #ifdef CONFIG_FEC_MXC
 static int setup_fec(void)
 {
diff --git a/configs/colibri-imx6ull_defconfig b/configs/colibri-imx6ull_defconfig
index ce2c09338d..69305323f2 100644
--- a/configs/colibri-imx6ull_defconfig
+++ b/configs/colibri-imx6ull_defconfig
@@ -50,6 +50,7 @@ CONFIG_DFU_NAND=y
 CONFIG_DM_GPIO=y
 CONFIG_DM_I2C=y
 CONFIG_SYS_I2C_MXC=y
+CONFIG_DM_MMC=y
 CONFIG_FSL_ESDHC=y
 CONFIG_MTD=y
 CONFIG_NAND=y
diff --git a/include/configs/colibri-imx6ull.h b/include/configs/colibri-imx6ull.h
index 31248b14a1..7a7a70e457 100644
--- a/include/configs/colibri-imx6ull.h
+++ b/include/configs/colibri-imx6ull.h
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0+ */
 /*
- * Copyright 2018 Toradex AG
+ * Copyright 2018-2019 Toradex AG
  *
  * Configuration settings for the Colibri iMX6ULL module.
  *
@@ -30,7 +30,7 @@
 /* ENET1 */
 #define IMX_FEC_BASE			ENET2_BASE_ADDR
 
-/* MMC Config*/
+/* MMC Config */
 #define CONFIG_SYS_FSL_ESDHC_ADDR	0
 #define CONFIG_SYS_FSL_USDHC_NUM	1
 
@@ -182,4 +182,4 @@
 #define CONFIG_VIDEO_BMP_LOGO
 #endif
 
-#endif
+#endif /* __COLIBRI_IMX6ULL_CONFIG_H */
-- 
2.20.1

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

* [U-Boot] [PATCH v3 10/14] colibri-imx6ull: migrate usb to using driver model
  2019-04-17 23:57 [U-Boot] [PATCH v3 00/14] colibri-imx6ull device tree enablement and driver model conversion Marcel Ziswiler
                   ` (8 preceding siblings ...)
  2019-04-17 23:57 ` [U-Boot] [PATCH v3 09/14] colibri-imx6ull: migrate mmc to using driver model Marcel Ziswiler
@ 2019-04-17 23:57 ` Marcel Ziswiler
  2019-04-17 23:57 ` [U-Boot] [PATCH v3 11/14] colibri-imx6ull: migrate fec " Marcel Ziswiler
                   ` (3 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-17 23:57 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Migrate USB to using driver model.
Add USBH_PEN GPIO regulator.
While at it also add alias e.g. as required for UMS.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v3:
- Fixed issue with host mode as pointed out by Igor.

Changes in v2:
- Added Igor's reviewed-by.

 arch/arm/dts/imx6ull-colibri.dts              | 26 +++++++++-
 .../toradex/colibri-imx6ull/colibri-imx6ull.c | 48 -------------------
 configs/colibri-imx6ull_defconfig             |  1 +
 3 files changed, 26 insertions(+), 49 deletions(-)

diff --git a/arch/arm/dts/imx6ull-colibri.dts b/arch/arm/dts/imx6ull-colibri.dts
index 0d416ebd10..42ae70deff 100644
--- a/arch/arm/dts/imx6ull-colibri.dts
+++ b/arch/arm/dts/imx6ull-colibri.dts
@@ -13,6 +13,7 @@
 
 	aliases {
 		mmc0 = &usdhc1;
+		usb0 = &usbotg1; /* required for ums */
 	};
 
 	chosen {
@@ -35,6 +36,13 @@
 		regulator-max-microvolt = <3300000>;
 	};
 
+	reg_5v0: regulator-5v0 {
+		compatible = "regulator-fixed";
+		regulator-name = "5V";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+	};
+
 	reg_sd1_vmmc: regulator-sd1-vmmc {
 		compatible = "regulator-gpio";
 		gpio = <&gpio5 9 GPIO_ACTIVE_HIGH>;
@@ -47,6 +55,17 @@
 		states = <1800000 0x1 3300000 0x0>;
 		vin-supply = <&reg_module_3v3>;
 	};
+
+	reg_usbh_vbus: regulator-usbh-vbus {
+		compatible = "regulator-fixed";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_usbh_reg>;
+		regulator-name = "VCC_USB[1-4]";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		gpio = <&gpio1 2 GPIO_ACTIVE_LOW>; /* USBH_PEN */
+		vin-supply = <&reg_5v0>;
+	};
 };
 
 &adc1 {
@@ -183,15 +202,20 @@
 	fsl,dte-mode;
 };
 
+/* Colibri USBC */
 &usbotg1 {
-	dr_mode = "otg";
+	dr_mode = "host";
 	srp-disable;
 	hnp-disable;
 	adp-disable;
+	status = "okay";
 };
 
+/* Colibri USBH */
 &usbotg2 {
 	dr_mode = "host";
+	vbus-supply = <&reg_usbh_vbus>;
+	status = "okay";
 };
 
 /* Colibri MMC */
diff --git a/board/toradex/colibri-imx6ull/colibri-imx6ull.c b/board/toradex/colibri-imx6ull/colibri-imx6ull.c
index c9af44e30e..21addaf6ed 100644
--- a/board/toradex/colibri-imx6ull/colibri-imx6ull.c
+++ b/board/toradex/colibri-imx6ull/colibri-imx6ull.c
@@ -24,8 +24,6 @@
 #include <miiphy.h>
 #include <mtd_node.h>
 #include <netdev.h>
-#include <usb.h>
-#include <usb/ehci-ci.h>
 
 #include "../common/tdx-common.h"
 #include "../common/tdx-cfg-block.h"
@@ -41,8 +39,6 @@ DECLARE_GLOBAL_DATA_PTR;
 
 #define NAND_PAD_READY0_CTRL (PAD_CTL_DSE_48ohm | PAD_CTL_PUS_22K_UP)
 
-#define USB_CDET_GPIO	IMX_GPIO_NR(7, 14)
-
 int dram_init(void)
 {
 	gd->ram_size = get_ram_size((void *)PHYS_SDRAM, PHYS_SDRAM_SIZE);
@@ -50,10 +46,6 @@ int dram_init(void)
 	return 0;
 }
 
-static iomux_v3_cfg_t const usb_cdet_pads[] = {
-	MX6_PAD_SNVS_TAMPER2__GPIO5_IO02 | MUX_PAD_CTRL(NO_PAD_CTRL),
-};
-
 #ifdef CONFIG_NAND_MXS
 static void setup_gpmi_nand(void)
 {
@@ -163,11 +155,6 @@ int board_init(void)
 	setup_lcd();
 #endif
 
-#ifdef CONFIG_USB_EHCI_MX6
-	imx_iomux_v3_setup_multiple_pads(usb_cdet_pads, ARRAY_SIZE(usb_cdet_pads));
-	gpio_request(USB_CDET_GPIO, "usb-cdet-gpio");
-#endif
-
 	return 0;
 }
 
@@ -241,41 +228,6 @@ int ft_board_setup(void *blob, bd_t *bd)
 }
 #endif
 
-#ifdef CONFIG_USB_EHCI_MX6
-static iomux_v3_cfg_t const usb_otg2_pads[] = {
-		MX6_PAD_GPIO1_IO02__GPIO1_IO02 | MUX_PAD_CTRL(NO_PAD_CTRL),
-};
-
-int board_ehci_hcd_init(int port)
-{
-	switch (port) {
-	case 0:
-		break;
-	case 1:
-		imx_iomux_v3_setup_multiple_pads(usb_otg2_pads,
-						 ARRAY_SIZE(usb_otg2_pads));
-		break;
-	default:
-		return -EINVAL;
-	}
-	return 0;
-}
-
-int board_usb_phy_mode(int port)
-{
-	switch (port) {
-	case 0:
-		if (gpio_get_value(USB_CDET_GPIO))
-			return USB_INIT_DEVICE;
-		else
-			return USB_INIT_HOST;
-	case 1:
-	default:
-		return USB_INIT_HOST;
-	}
-}
-#endif
-
 static struct mxc_serial_platdata mxc_serial_plat = {
 	.reg = (struct mxc_uart *)UART1_BASE,
 	.use_dte = 1,
diff --git a/configs/colibri-imx6ull_defconfig b/configs/colibri-imx6ull_defconfig
index 69305323f2..0440b4ed94 100644
--- a/configs/colibri-imx6ull_defconfig
+++ b/configs/colibri-imx6ull_defconfig
@@ -71,6 +71,7 @@ CONFIG_DM_REGULATOR_FIXED=y
 CONFIG_DM_SERIAL=y
 CONFIG_MXC_UART=y
 CONFIG_USB=y
+CONFIG_DM_USB=y
 CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_MANUFACTURER="Toradex"
 CONFIG_USB_GADGET_VENDOR_NUM=0x1b67
-- 
2.20.1

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

* [U-Boot] [PATCH v3 11/14] colibri-imx6ull: migrate fec to using driver model
  2019-04-17 23:57 [U-Boot] [PATCH v3 00/14] colibri-imx6ull device tree enablement and driver model conversion Marcel Ziswiler
                   ` (9 preceding siblings ...)
  2019-04-17 23:57 ` [U-Boot] [PATCH v3 10/14] colibri-imx6ull: migrate usb " Marcel Ziswiler
@ 2019-04-17 23:57 ` Marcel Ziswiler
  2019-04-17 23:57 ` [U-Boot] [PATCH v3 12/14] ARM: dts: colibri-imx6ull: fix uart-has-rtscts property Marcel Ziswiler
                   ` (2 subsequent siblings)
  13 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-17 23:57 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Migrate Ethernet FEC to using driver model.
Drop PHY_MICREL_KSZ90X1 which slipped in from Apalis iMX6.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v3: None
Changes in v2:
- Added Igor's reviewed-by.

 arch/arm/dts/imx6ull-colibri.dts  | 31 ++++++++++++++++---------------
 configs/colibri-imx6ull_defconfig |  3 +--
 include/configs/colibri-imx6ull.h |  4 ----
 3 files changed, 17 insertions(+), 21 deletions(-)

diff --git a/arch/arm/dts/imx6ull-colibri.dts b/arch/arm/dts/imx6ull-colibri.dts
index 42ae70deff..adb10ac8ca 100644
--- a/arch/arm/dts/imx6ull-colibri.dts
+++ b/arch/arm/dts/imx6ull-colibri.dts
@@ -80,6 +80,7 @@
 	pinctrl-0 = <&pinctrl_ecspi1 &pinctrl_ecspi1_cs>;
 };
 
+/* Ethernet */
 &fec2 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_enet2>;
@@ -233,6 +234,21 @@
 };
 
 &iomuxc {
+	pinctrl_enet2: enet2-grp {
+		fsl,pins = <
+			MX6UL_PAD_GPIO1_IO06__ENET2_MDIO	0x1b0b0
+			MX6UL_PAD_GPIO1_IO07__ENET2_MDC		0x1b0b0
+			MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00	0x1b0b0
+			MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01	0x1b0b0
+			MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN	0x1b0b0
+			MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER	0x1b0b0
+			MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2	0x4001b031
+			MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00	0x1b0b0
+			MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01	0x1b0b0
+			MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN	0x1b0b0
+		>;
+	};
+
 	pinctrl_gpio1: gpio1-grp {
 		fsl,pins = <
 			MX6UL_PAD_ENET1_RX_DATA0__GPIO2_IO00	0x74 /* SODIMM 55 */
@@ -295,21 +311,6 @@
 		>;
 	};
 
-	pinctrl_enet2: enet2-grp {
-		fsl,pins = <
-			MX6UL_PAD_GPIO1_IO06__ENET2_MDIO	0x1b0b0
-			MX6UL_PAD_GPIO1_IO07__ENET2_MDC		0x1b0b0
-			MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00	0x1b0b0
-			MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01	0x1b0b0
-			MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN	0x1b0b0
-			MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER	0x1b0b0
-			MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2	0x4001b031
-			MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00	0x1b0b0
-			MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01	0x1b0b0
-			MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN	0x1b0b0
-		>;
-	};
-
 	pinctrl_ecspi1_cs: ecspi1-cs-grp {
 		fsl,pins = <
 			MX6UL_PAD_LCD_DATA21__GPIO3_IO26	0x000a0
diff --git a/configs/colibri-imx6ull_defconfig b/configs/colibri-imx6ull_defconfig
index 0440b4ed94..a24c87f321 100644
--- a/configs/colibri-imx6ull_defconfig
+++ b/configs/colibri-imx6ull_defconfig
@@ -58,9 +58,8 @@ CONFIG_NAND_MXS=y
 CONFIG_NAND_MXS_DT=y
 CONFIG_MTD_UBI_FASTMAP=y
 CONFIG_PHYLIB=y
-CONFIG_PHY_ADDR_ENABLE=y
 CONFIG_PHY_MICREL=y
-CONFIG_PHY_MICREL_KSZ90X1=y
+CONFIG_DM_ETH=y
 CONFIG_FEC_MXC=y
 CONFIG_MII=y
 CONFIG_PINCTRL=y
diff --git a/include/configs/colibri-imx6ull.h b/include/configs/colibri-imx6ull.h
index 7a7a70e457..fc39e807b6 100644
--- a/include/configs/colibri-imx6ull.h
+++ b/include/configs/colibri-imx6ull.h
@@ -19,10 +19,6 @@
 #define CONFIG_SYS_MALLOC_LEN		(32 * SZ_1M)
 
 /* Network */
-#define CONFIG_FEC_XCV_TYPE             RMII
-#define CONFIG_ETHPRIME                 "FEC"
-#define CONFIG_FEC_MXC_PHYADDR		0
-
 #define CONFIG_IP_DEFRAG
 #define CONFIG_TFTP_BLOCKSIZE		16352
 #define CONFIG_TFTP_TSIZE
-- 
2.20.1

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

* [U-Boot] [PATCH v3 12/14] ARM: dts: colibri-imx6ull: fix uart-has-rtscts property
  2019-04-17 23:57 [U-Boot] [PATCH v3 00/14] colibri-imx6ull device tree enablement and driver model conversion Marcel Ziswiler
                   ` (10 preceding siblings ...)
  2019-04-17 23:57 ` [U-Boot] [PATCH v3 11/14] colibri-imx6ull: migrate fec " Marcel Ziswiler
@ 2019-04-17 23:57 ` Marcel Ziswiler
  2019-04-17 23:57 ` [U-Boot] [PATCH v3 13/14] ARM: dts: colibri-imx6ull: add osc32k_32k_out pinctrl Marcel Ziswiler
  2019-04-17 23:57 ` [U-Boot] [PATCH v3 14/14] ARM: dts: colibri-imx6ull: update device tree Marcel Ziswiler
  13 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-17 23:57 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Remove vendor pre-fix fsl, from uart-has-rtscts property.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v3: None
Changes in v2:
- Added Igor's reviewed-by.

 arch/arm/dts/imx6ull-colibri.dts | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/arch/arm/dts/imx6ull-colibri.dts b/arch/arm/dts/imx6ull-colibri.dts
index adb10ac8ca..6a2a934dff 100644
--- a/arch/arm/dts/imx6ull-colibri.dts
+++ b/arch/arm/dts/imx6ull-colibri.dts
@@ -182,21 +182,24 @@
 	status = "disabled";
 };
 
+/* Colibri UART_A */
 &uart1 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_uart1 &pinctrl_uart1_ctrl1>;
-	fsl,uart-has-rtscts;
+	uart-has-rtscts;
 	fsl,dte-mode;
 	status = "okay";
 };
 
+/* Colibri UART_B */
 &uart2 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_uart2>;
-	fsl,uart-has-rtscts;
+	uart-has-rtscts;
 	fsl,dte-mode;
 };
 
+/* Colibri UART_C */
 &uart5 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_uart5>;
-- 
2.20.1

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

* [U-Boot] [PATCH v3 13/14] ARM: dts: colibri-imx6ull: add osc32k_32k_out pinctrl
  2019-04-17 23:57 [U-Boot] [PATCH v3 00/14] colibri-imx6ull device tree enablement and driver model conversion Marcel Ziswiler
                   ` (11 preceding siblings ...)
  2019-04-17 23:57 ` [U-Boot] [PATCH v3 12/14] ARM: dts: colibri-imx6ull: fix uart-has-rtscts property Marcel Ziswiler
@ 2019-04-17 23:57 ` Marcel Ziswiler
  2019-04-17 23:57 ` [U-Boot] [PATCH v3 14/14] ARM: dts: colibri-imx6ull: update device tree Marcel Ziswiler
  13 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-17 23:57 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Add GPIO1_IO03__OSC32K_32K_OUT pin muxing.
While at it also fix indentation of pinfunc header file.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v3: None
Changes in v2:
- Added Igor's reviewed-by.

 arch/arm/dts/imx6ull-colibri.dts |  2 ++
 arch/arm/dts/imx6ull-pinfunc.h   | 26 ++++++++++++++------------
 2 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/arch/arm/dts/imx6ull-colibri.dts b/arch/arm/dts/imx6ull-colibri.dts
index 6a2a934dff..a827e9ceeb 100644
--- a/arch/arm/dts/imx6ull-colibri.dts
+++ b/arch/arm/dts/imx6ull-colibri.dts
@@ -524,6 +524,8 @@
 			MX6UL_PAD_CSI_DATA03__USDHC2_DATA3	0x17059
 			MX6UL_PAD_CSI_HSYNC__USDHC2_CMD		0x17059
 			MX6UL_PAD_CSI_VSYNC__USDHC2_CLK		0x17059
+
+			MX6UL_PAD_GPIO1_IO03__OSC32K_32K_OUT	0x14
 		>;
 	};
 };
diff --git a/arch/arm/dts/imx6ull-pinfunc.h b/arch/arm/dts/imx6ull-pinfunc.h
index fca003680b..7770ed39f6 100644
--- a/arch/arm/dts/imx6ull-pinfunc.h
+++ b/arch/arm/dts/imx6ull-pinfunc.h
@@ -14,6 +14,8 @@
  * The pin function ID is a tuple of
  * <mux_reg conf_reg input_reg mux_mode input_val>
  */
+#define MX6UL_PAD_GPIO1_IO03__OSC32K_32K_OUT                     0x0068 0x02f4 0x0000 0x3 0x0
+
 #define MX6UL_PAD_ENET2_RX_DATA0__EPDC_SDDO08                    0x00E4 0x0370 0x0000 0x9 0x0
 #define MX6UL_PAD_ENET2_RX_DATA1__EPDC_SDDO09                    0x00E8 0x0374 0x0000 0x9 0x0
 #define MX6UL_PAD_ENET2_RX_EN__EPDC_SDDO10                       0x00EC 0x0378 0x0000 0x9 0x0
@@ -41,17 +43,17 @@
 #define MX6UL_PAD_LCD_DATA17__EPDC_GDSP                          0x015C 0x03E8 0x0000 0x9 0x0
 #define MX6UL_PAD_LCD_DATA21__EPDC_SDCE1                         0x016C 0x03F8 0x0000 0x9 0x0
 
-#define MX6UL_PAD_CSI_MCLK__ESAI_TX3_RX2                          0x01D4 0x0460 0x0000 0x9 0x0
-#define MX6UL_PAD_CSI_PIXCLK__ESAI_TX2_RX3                        0x01D8 0x0464 0x0000 0x9 0x0
-#define MX6UL_PAD_CSI_VSYNC__ESAI_TX4_RX1                         0x01DC 0x0468 0x0000 0x9 0x0
-#define MX6UL_PAD_CSI_HSYNC__ESAI_TX1                             0x01E0 0x046C 0x0000 0x9 0x0
-#define MX6UL_PAD_CSI_DATA00__ESAI_TX_HF_CLK                      0x01E4 0x0470 0x0000 0x9 0x0
-#define MX6UL_PAD_CSI_DATA01__ESAI_RX_HF_CLK                      0x01E8 0x0474 0x0000 0x9 0x0
-#define MX6UL_PAD_CSI_DATA02__ESAI_RX_FS                          0x01EC 0x0478 0x0000 0x9 0x0
-#define MX6UL_PAD_CSI_DATA03__ESAI_RX_CLK                         0x01F0 0x047C 0x0000 0x9 0x0
-#define MX6UL_PAD_CSI_DATA04__ESAI_TX_FS                          0x01F4 0x0480 0x0000 0x9 0x0
-#define MX6UL_PAD_CSI_DATA05__ESAI_TX_CLK                         0x01F8 0x0484 0x0000 0x9 0x0
-#define MX6UL_PAD_CSI_DATA06__ESAI_TX5_RX0                        0x01FC 0x0488 0x0000 0x9 0x0
-#define MX6UL_PAD_CSI_DATA07__ESAI_T0                             0x0200 0x048C 0x0000 0x9 0x0
+#define MX6UL_PAD_CSI_MCLK__ESAI_TX3_RX2                         0x01D4 0x0460 0x0000 0x9 0x0
+#define MX6UL_PAD_CSI_PIXCLK__ESAI_TX2_RX3                       0x01D8 0x0464 0x0000 0x9 0x0
+#define MX6UL_PAD_CSI_VSYNC__ESAI_TX4_RX1                        0x01DC 0x0468 0x0000 0x9 0x0
+#define MX6UL_PAD_CSI_HSYNC__ESAI_TX1                            0x01E0 0x046C 0x0000 0x9 0x0
+#define MX6UL_PAD_CSI_DATA00__ESAI_TX_HF_CLK                     0x01E4 0x0470 0x0000 0x9 0x0
+#define MX6UL_PAD_CSI_DATA01__ESAI_RX_HF_CLK                     0x01E8 0x0474 0x0000 0x9 0x0
+#define MX6UL_PAD_CSI_DATA02__ESAI_RX_FS                         0x01EC 0x0478 0x0000 0x9 0x0
+#define MX6UL_PAD_CSI_DATA03__ESAI_RX_CLK                        0x01F0 0x047C 0x0000 0x9 0x0
+#define MX6UL_PAD_CSI_DATA04__ESAI_TX_FS                         0x01F4 0x0480 0x0000 0x9 0x0
+#define MX6UL_PAD_CSI_DATA05__ESAI_TX_CLK                        0x01F8 0x0484 0x0000 0x9 0x0
+#define MX6UL_PAD_CSI_DATA06__ESAI_TX5_RX0                       0x01FC 0x0488 0x0000 0x9 0x0
+#define MX6UL_PAD_CSI_DATA07__ESAI_T0                            0x0200 0x048C 0x0000 0x9 0x0
 
 #endif /* __DTS_IMX6ULL_PINFUNC_H */
-- 
2.20.1

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

* [U-Boot] [PATCH v3 14/14] ARM: dts: colibri-imx6ull: update device tree
  2019-04-17 23:57 [U-Boot] [PATCH v3 00/14] colibri-imx6ull device tree enablement and driver model conversion Marcel Ziswiler
                   ` (12 preceding siblings ...)
  2019-04-17 23:57 ` [U-Boot] [PATCH v3 13/14] ARM: dts: colibri-imx6ull: add osc32k_32k_out pinctrl Marcel Ziswiler
@ 2019-04-17 23:57 ` Marcel Ziswiler
  13 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-17 23:57 UTC (permalink / raw)
  To: u-boot

From: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Fix compatible node to use regular Toradex notation.
Annotate device tree with standard Colibri pin muxing comments.
Use open-drain I2C pin muxings.
Alphabetically re-order iomuxc nodes.
Rename snvs-ad7879-int-grp touch interrupt node as per Linux device tree.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

---

Changes in v3: None
Changes in v2:
- Added Igor's reviewed-by.

 arch/arm/dts/imx6ull-colibri.dts | 91 ++++++++++++++++++--------------
 1 file changed, 52 insertions(+), 39 deletions(-)

diff --git a/arch/arm/dts/imx6ull-colibri.dts b/arch/arm/dts/imx6ull-colibri.dts
index a827e9ceeb..6c847ab792 100644
--- a/arch/arm/dts/imx6ull-colibri.dts
+++ b/arch/arm/dts/imx6ull-colibri.dts
@@ -9,7 +9,7 @@
 
 / {
 	model = "Toradex Colibri iMX6ULL";
-	compatible = "toradex,imx6ull-colibri", "fsl,imx6ull";
+	compatible = "toradex,colibri-imx6ull", "fsl,imx6ull";
 
 	aliases {
 		mmc0 = &usdhc1;
@@ -100,6 +100,7 @@
 	};
 };
 
+/* NAND */
 &gpmi {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_gpmi_nand>;
@@ -110,21 +111,28 @@
 	status = "okay";
 };
 
+/*
+ * I2C3_SDA/SCL on SODIMM 194/196 (e.g. RTC on carrier board)
+ */
 &i2c1 {
 	pinctrl-names = "default", "gpio";
 	pinctrl-0 = <&pinctrl_i2c1>;
 	pinctrl-1 = <&pinctrl_i2c1_gpio>;
-	sda-gpios = <&gpio1 29 GPIO_ACTIVE_LOW>;
-	scl-gpios = <&gpio1 28 GPIO_ACTIVE_LOW>;
+	sda-gpios = <&gpio1 29 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+	scl-gpios = <&gpio1 28 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
 	status = "okay";
 };
 
+/*
+ * PWR_I2C: power I2C to audio codec, PMIC, temperature sensor and
+ * touch screen controller
+ */
 &i2c2 {
 	pinctrl-names = "default", "gpio";
 	pinctrl-0 = <&pinctrl_i2c2>;
 	pinctrl-1 = <&pinctrl_i2c2_gpio>;
-	sda-gpios = <&gpio1 31 GPIO_ACTIVE_LOW>;
-	scl-gpios = <&gpio1 30 GPIO_ACTIVE_LOW>;
+	sda-gpios = <&gpio1 31 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+	scl-gpios = <&gpio1 30 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
 	status = "okay";
 
 	ad7879 at 2c {
@@ -150,24 +158,28 @@
 		     &pinctrl_lcdif_ctrl>;
 };
 
+/* PWM <A> */
 &pwm4 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm4>;
 	#pwm-cells = <3>;
 };
 
+/* PWM <B> */
 &pwm5 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm5>;
 	#pwm-cells = <3>;
 };
 
+/* PWM <C> */
 &pwm6 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm6>;
 	#pwm-cells = <3>;
 };
 
+/* PWM <D> */
 &pwm7 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm7>;
@@ -237,6 +249,13 @@
 };
 
 &iomuxc {
+	pinctrl_can_int: canint-grp {
+		fsl,pins = <
+			/* SODIMM 73 */
+			MX6UL_PAD_ENET1_TX_DATA1__GPIO2_IO04	0X14
+		>;
+	};
+
 	pinctrl_enet2: enet2-grp {
 		fsl,pins = <
 			MX6UL_PAD_GPIO1_IO06__ENET2_MDIO	0x1b0b0
@@ -252,6 +271,33 @@
 		>;
 	};
 
+	pinctrl_ecspi1_cs: ecspi1-cs-grp {
+		fsl,pins = <
+			MX6UL_PAD_LCD_DATA21__GPIO3_IO26	0x000a0
+		>;
+	};
+
+	pinctrl_ecspi1: ecspi1-grp {
+		fsl,pins = <
+			MX6UL_PAD_LCD_DATA20__ECSPI1_SCLK	0x000a0
+			MX6UL_PAD_LCD_DATA22__ECSPI1_MOSI	0x000a0
+			MX6UL_PAD_LCD_DATA23__ECSPI1_MISO	0x100a0
+		>;
+	};
+
+	pinctrl_flexcan2: flexcan2-grp {
+		fsl,pins = <
+			MX6UL_PAD_ENET1_TX_DATA0__FLEXCAN2_RX	0x1b020
+			MX6UL_PAD_ENET1_RX_EN__FLEXCAN2_TX	0x1b020
+		>;
+	};
+
+	pinctrl_gpio_bl_on: gpio-bl-on-grp {
+		fsl,pins = <
+			MX6UL_PAD_JTAG_TMS__GPIO1_IO11		0x000a0
+		>;
+	};
+
 	pinctrl_gpio1: gpio1-grp {
 		fsl,pins = <
 			MX6UL_PAD_ENET1_RX_DATA0__GPIO2_IO00	0x74 /* SODIMM 55 */
@@ -308,39 +354,6 @@
 		>;
 	};
 
-	pinctrl_can_int: canint-grp {
-		fsl,pins = <
-			MX6UL_PAD_ENET1_TX_DATA1__GPIO2_IO04	0X14 /* SODIMM 73 */
-		>;
-	};
-
-	pinctrl_ecspi1_cs: ecspi1-cs-grp {
-		fsl,pins = <
-			MX6UL_PAD_LCD_DATA21__GPIO3_IO26	0x000a0
-		>;
-	};
-
-	pinctrl_ecspi1: ecspi1-grp {
-		fsl,pins = <
-			MX6UL_PAD_LCD_DATA20__ECSPI1_SCLK	0x000a0
-			MX6UL_PAD_LCD_DATA22__ECSPI1_MOSI	0x000a0
-			MX6UL_PAD_LCD_DATA23__ECSPI1_MISO	0x100a0
-		>;
-	};
-
-	pinctrl_flexcan2: flexcan2-grp {
-		fsl,pins = <
-			MX6UL_PAD_ENET1_TX_DATA0__FLEXCAN2_RX	0x1b020
-			MX6UL_PAD_ENET1_RX_EN__FLEXCAN2_TX	0x1b020
-		>;
-	};
-
-	pinctrl_gpio_bl_on: gpio-bl-on-grp {
-		fsl,pins = <
-			MX6UL_PAD_JTAG_TMS__GPIO1_IO11		0x000a0
-		>;
-	};
-
 	pinctrl_gpmi_nand: gpmi-nand-grp {
 		fsl,pins = <
 			MX6UL_PAD_NAND_DATA00__RAWNAND_DATA00	0x100a9
@@ -553,7 +566,7 @@
 		>;
 	};
 
-	pinctrl_snvs_ad7879_int: snvs-ad7879-int { /* TOUCH Interrupt */
+	pinctrl_snvs_ad7879_int: snvs-ad7879-int-grp { /* TOUCH Interrupt */
 		fsl,pins = <
 			MX6ULL_PAD_SNVS_TAMPER7__GPIO5_IO07	0x1b0b0
 		>;
-- 
2.20.1

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

* [U-Boot] [PATCH] ddr: imx8m: hide i.MX8M DDR options from device driver entry
@ 2019-04-22 10:41 Peng Fan
  0 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2019-04-22 10:41 UTC (permalink / raw)
  To: u-boot

Use one menu to hide the several i.MX8M DDR options from device
driver entry.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 drivers/ddr/imx/imx8m/Kconfig | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/ddr/imx/imx8m/Kconfig b/drivers/ddr/imx/imx8m/Kconfig
index 71f466f5ec..a83b0f43d7 100644
--- a/drivers/ddr/imx/imx8m/Kconfig
+++ b/drivers/ddr/imx/imx8m/Kconfig
@@ -1,3 +1,6 @@
+menu "i.MX8M DDR controllers"
+	depends on ARCH_IMX8M
+
 config IMX8M_DRAM
 	bool "imx8m dram"
 
@@ -20,3 +23,4 @@ config SAVED_DRAM_TIMING_BASE
 	  info into memory for low power use. OCRAM_S is used for this
 	  purpose on i.MX8MM.
 	default 0x180000
+endmenu
-- 
2.16.4

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

* [U-Boot] [PATCH 6/8] imx8: cpu: get temperature when print cpu desc
  2019-04-12  7:55 ` [U-Boot] [PATCH 6/8] imx8: cpu: get temperature when print cpu desc Peng Fan
@ 2019-04-25 10:35   ` Stefano Babic
  2019-04-25 13:46     ` Peng Fan
  0 siblings, 1 reply; 654+ messages in thread
From: Stefano Babic @ 2019-04-25 10:35 UTC (permalink / raw)
  To: u-boot

Hi Peng,

On 12/04/19 09:55, Peng Fan wrote:
> Read the temperature when print cpu inforation.
> 
> Signed-off-by: Peng Fan <peng.fan@nxp.com>
> ---
>  arch/arm/mach-imx/imx8/cpu.c | 35 +++++++++++++++++++++++++++++++++--
>  1 file changed, 33 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/mach-imx/imx8/cpu.c b/arch/arm/mach-imx/imx8/cpu.c
> index 4bbc956f9d..25b010489b 100644
> --- a/arch/arm/mach-imx/imx8/cpu.c
> +++ b/arch/arm/mach-imx/imx8/cpu.c
> @@ -11,6 +11,7 @@
>  #include <dm/lists.h>
>  #include <dm/uclass.h>
>  #include <errno.h>
> +#include <thermal.h>
>  #include <asm/arch/sci/sci.h>
>  #include <asm/arch/sys_proto.h>
>  #include <asm/arch-imx/cpu.h>
> @@ -571,15 +572,45 @@ const char *get_core_name(void)
>  		return "?";
>  }
>  
> +#if defined(CONFIG_IMX_SCU_THERMAL)
> +static int cpu_imx_get_temp(void)
> +{

This generates a warning when CONFIG_IMX_SCU_THERMAL is not set, because
it is called later:

> +	struct udevice *thermal_dev;
> +	int cpu_tmp, ret;
> +
> +	ret = uclass_get_device_by_name(UCLASS_THERMAL, "cpu-thermal0",
> +					&thermal_dev);
> +
> +	if (!ret) {
> +		ret = thermal_get_temp(thermal_dev, &cpu_tmp);
> +		if (ret)
> +			return 0xdeadbeef;
> +	} else {
> +		return 0xdeadbeef;
> +	}
> +
> +	return cpu_tmp;
> +}
> +#endif
> +
>  int cpu_imx_get_desc(struct udevice *dev, char *buf, int size)
>  {
>  	struct cpu_imx_platdata *plat = dev_get_platdata(dev);
> +	int ret;
>  
>  	if (size < 100)
>  		return -ENOSPC;
>  
> -	snprintf(buf, size, "NXP i.MX8%s Rev%s %s at %u MHz\n",
> -		 plat->type, plat->rev, plat->name, plat->freq_mhz);
> +	ret = snprintf(buf, size, "NXP i.MX8%s Rev%s %s at %u MHz",
> +		       plat->type, plat->rev, plat->name, plat->freq_mhz);
> +
> +	if (IS_ENABLED(CONFIG_IMX_SCU_THERMAL)) {
> +		buf = buf + ret;
> +		size = size - ret;
> +		ret = snprintf(buf, size, " at %dC", cpu_imx_get_temp());
                                                        ^--- here it is
referenced.

Regards,
Stefano

> +	}
> +
> +	snprintf(buf + ret, size - ret, "\n");
>  
>  	return 0;
>  }
> 


-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [PATCH v2 5/5] board: toradex: add colibri imx8qxp 2gb wb it v1.0b module support
  2019-04-09 15:25 ` [U-Boot] [PATCH v2 5/5] board: toradex: add colibri imx8qxp 2gb wb it v1.0b module support Marcel Ziswiler
  2019-04-11 10:47   ` Igor Opaniuk
@ 2019-04-25 10:48   ` Stefano Babic
  2019-04-25 12:35     ` Marcel Ziswiler
  1 sibling, 1 reply; 654+ messages in thread
From: Stefano Babic @ 2019-04-25 10:48 UTC (permalink / raw)
  To: u-boot

Hi Marcel,

On 09/04/19 17:25, Marcel Ziswiler wrote:
> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> 
> This commit adds initial support for the Toradex Colibri iMX8QXP 2GB WB
> IT V1.0B module. Unlike the V1.0A early access samples exclusively
> booting from SD card, they are now strapped to boot from eFuses which
> are factory fused to properly boot from their on-module eMMC. U-Boot
> supports either booting from the on-module eMMC or may be used for
> recovery purpose using the universal update utility (uuu) aka mfgtools
> 3.0.
> 
> Functionality wise the following is known to be working:
> - eMMC and MMC/SD card
> - Ethernet
> - GPIOs
> - I2C
> 
> Unfortunately, there is no USB functionality for the i.MX 8QXP as of
> yet.
> 
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> 
> ---
> 

I merged the series and build locally (fine), but Travis complains and
stops with error:

+cc1: fatal error: opening output file spl/u-boot-spl.cfgout: No such
file or directory
+compilation terminated.

Can you take a look at it ?

Regards,
Stefano

> Changes in v2:
> - Changed imx-atf git clone command to include initial branch
>   information as suggested by Igor.
> - Sorted board file includes alphabetically as suggested by Igor.
> - Got rid of SPL configuration in legacy header file as suggested by
>   Igor and the whole use of SPL on i.MX 8X anyway neither works well
>   nor makes any much sense at all.
> 
>  arch/arm/dts/Makefile                         |   4 +-
>  arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi  | 112 ++++++
>  arch/arm/dts/fsl-imx8qxp-colibri.dts          | 328 ++++++++++++++++++
>  arch/arm/mach-imx/imx8/Kconfig                |   6 +
>  board/toradex/colibri-imx8qxp/Kconfig         |  30 ++
>  board/toradex/colibri-imx8qxp/MAINTAINERS     |   9 +
>  board/toradex/colibri-imx8qxp/Makefile        |   7 +
>  board/toradex/colibri-imx8qxp/README          |  66 ++++
>  .../toradex/colibri-imx8qxp/colibri-imx8qxp.c | 212 +++++++++++
>  board/toradex/colibri-imx8qxp/imximage.cfg    |  24 ++
>  configs/colibri-imx8qxp_defconfig             |  53 +++
>  include/configs/colibri-imx8qxp.h             | 214 ++++++++++++
>  12 files changed, 1064 insertions(+), 1 deletion(-)
>  create mode 100644 arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi
>  create mode 100644 arch/arm/dts/fsl-imx8qxp-colibri.dts
>  create mode 100644 board/toradex/colibri-imx8qxp/Kconfig
>  create mode 100644 board/toradex/colibri-imx8qxp/MAINTAINERS
>  create mode 100644 board/toradex/colibri-imx8qxp/Makefile
>  create mode 100644 board/toradex/colibri-imx8qxp/README
>  create mode 100644 board/toradex/colibri-imx8qxp/colibri-imx8qxp.c
>  create mode 100644 board/toradex/colibri-imx8qxp/imximage.cfg
>  create mode 100644 configs/colibri-imx8qxp_defconfig
>  create mode 100644 include/configs/colibri-imx8qxp.h
> 
> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
> index 13d1d67624..2a551d42a4 100644
> --- a/arch/arm/dts/Makefile
> +++ b/arch/arm/dts/Makefile
> @@ -559,7 +559,9 @@ dtb-$(CONFIG_MX7) += imx7d-sdb.dtb \
>  
>  dtb-$(CONFIG_ARCH_MX7ULP) += imx7ulp-evk.dtb
>  
> -dtb-$(CONFIG_ARCH_IMX8) += fsl-imx8qxp-mek.dtb
> +dtb-$(CONFIG_ARCH_IMX8) += \
> +	fsl-imx8qxp-colibri.dtb \
> +	fsl-imx8qxp-mek.dtb
>  
>  dtb-$(CONFIG_ARCH_IMX8M) += fsl-imx8mq-evk.dtb
>  
> diff --git a/arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi b/arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi
> new file mode 100644
> index 0000000000..f8686befdf
> --- /dev/null
> +++ b/arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi
> @@ -0,0 +1,112 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR X11
> +/*
> + * Copyright 2019 Toradex AG
> + */
> +
> +&mu {
> +	u-boot,dm-spl;
> +};
> +
> +&clk {
> +	u-boot,dm-spl;
> +};
> +
> +&iomuxc {
> +	u-boot,dm-spl;
> +};
> +
> +&pd_lsio {
> +	u-boot,dm-spl;
> +};
> +
> +&pd_lsio_gpio0 {
> +	u-boot,dm-spl;
> +};
> +
> +&pd_lsio_gpio1 {
> +	u-boot,dm-spl;
> +};
> +
> +&pd_lsio_gpio2 {
> +	u-boot,dm-spl;
> +};
> +
> +&pd_lsio_gpio3 {
> +	u-boot,dm-spl;
> +};
> +
> +&pd_lsio_gpio4 {
> +	u-boot,dm-spl;
> +};
> +
> +&pd_lsio_gpio5 {
> +	u-boot,dm-spl;
> +};
> +
> +&pd_lsio_gpio6 {
> +	u-boot,dm-spl;
> +};
> +
> +&pd_lsio_gpio7 {
> +	u-boot,dm-spl;
> +};
> +
> +&pd_conn {
> +	u-boot,dm-spl;
> +};
> +
> +&pd_conn_sdch0 {
> +	u-boot,dm-spl;
> +};
> +
> +&pd_conn_sdch1 {
> +	u-boot,dm-spl;
> +};
> +
> +&pd_conn_sdch2 {
> +	u-boot,dm-spl;
> +};
> +
> +&gpio0 {
> +	u-boot,dm-spl;
> +};
> +
> +&gpio1 {
> +	u-boot,dm-spl;
> +};
> +
> +&gpio2 {
> +	u-boot,dm-spl;
> +};
> +
> +&gpio3 {
> +	u-boot,dm-spl;
> +};
> +
> +&gpio4 {
> +	u-boot,dm-spl;
> +};
> +
> +&gpio5 {
> +	u-boot,dm-spl;
> +};
> +
> +&gpio6 {
> +	u-boot,dm-spl;
> +};
> +
> +&gpio7 {
> +	u-boot,dm-spl;
> +};
> +
> +&lpuart3 {
> +	u-boot,dm-spl;
> +};
> +
> +&usdhc1 {
> +	u-boot,dm-spl;
> +};
> +
> +&usdhc2 {
> +	u-boot,dm-spl;
> +};
> diff --git a/arch/arm/dts/fsl-imx8qxp-colibri.dts b/arch/arm/dts/fsl-imx8qxp-colibri.dts
> new file mode 100644
> index 0000000000..0c20edf2cf
> --- /dev/null
> +++ b/arch/arm/dts/fsl-imx8qxp-colibri.dts
> @@ -0,0 +1,328 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR X11
> +/*
> + * Copyright 2019 Toradex AG
> + */
> +
> +/dts-v1/;
> +
> +#include "fsl-imx8qxp.dtsi"
> +#include "fsl-imx8qxp-colibri-u-boot.dtsi"
> +
> +/ {
> +	model = "Toradex Colibri iMX8QXP";
> +	compatible = "toradex,colibri-imx8qxp", "fsl,imx8qxp";
> +
> +	chosen {
> +		bootargs = "console=ttyLP3,115200 earlycon=lpuart32,0x5a090000,115200";
> +		stdout-path = &lpuart3;
> +	};
> +
> +	reg_usbh_vbus: regulator-usbh-vbus {
> +		compatible = "regulator-fixed";
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&pinctrl_usbh1_reg>;
> +		regulator-name = "usbh_vbus";
> +		regulator-min-microvolt = <5000000>;
> +		regulator-max-microvolt = <5000000>;
> +		gpio = <&gpio4 3 GPIO_ACTIVE_LOW>;
> +	};
> +};
> +
> +&iomuxc {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_hog0>, <&pinctrl_hog1>, <&pinctrl_hog2>;
> +
> +	colibri-imx8qxp {
> +		pinctrl_lpuart0: lpuart0grp {
> +			fsl,pins = <
> +				SC_P_UART0_RX_ADMA_UART0_RX	0x06000020
> +				SC_P_UART0_TX_ADMA_UART0_TX	0x06000020
> +			>;
> +		};
> +
> +		pinctrl_lpuart3: lpuart3grp {
> +			fsl,pins = <
> +				SC_P_FLEXCAN2_RX_ADMA_UART3_RX	0x06000020
> +				SC_P_FLEXCAN2_TX_ADMA_UART3_TX	0x06000020
> +			>;
> +		};
> +
> +		pinctrl_lpuart3_ctrl: lpuart3ctrlgrp {
> +			fsl,pins = <
> +				SC_P_MIPI_DSI1_GPIO0_01_LSIO_GPIO2_IO00 0x00000020 /* DTR */
> +				SC_P_SAI1_RXD_LSIO_GPIO0_IO29		0x00000020 /* CTS */
> +				SC_P_SAI1_RXC_LSIO_GPIO0_IO30		0x00000020 /* RTS */
> +				SC_P_CSI_RESET_LSIO_GPIO3_IO03		0x00000020 /* DSR */
> +				SC_P_USDHC1_CD_B_LSIO_GPIO4_IO22	0x00000020 /* DCD */
> +				SC_P_CSI_EN_LSIO_GPIO3_IO02		0x00000020 /* RI */
> +			>;
> +		};
> +
> +		pinctrl_fec1: fec1grp {
> +			fsl,pins = <
> +				SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENETB0_PAD	0x000014a0 /* Use pads in 3.3V mode */
> +				SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENETB1_PAD	0x000014a0 /* Use pads in 3.3V mode */
> +				SC_P_ENET0_MDC_CONN_ENET0_MDC			0x06000020
> +				SC_P_ENET0_MDIO_CONN_ENET0_MDIO			0x06000020
> +				SC_P_ENET0_RGMII_TX_CTL_CONN_ENET0_RGMII_TX_CTL	0x00000061
> +				SC_P_ENET0_RGMII_TXC_CONN_ENET0_RCLK50M_OUT	0x06000061
> +				SC_P_ENET0_RGMII_TXD0_CONN_ENET0_RGMII_TXD0	0x00000061
> +				SC_P_ENET0_RGMII_TXD1_CONN_ENET0_RGMII_TXD1	0x00000061
> +				SC_P_ENET0_RGMII_RX_CTL_CONN_ENET0_RGMII_RX_CTL	0x00000061
> +				SC_P_ENET0_RGMII_RXD0_CONN_ENET0_RGMII_RXD0	0x00000061
> +				SC_P_ENET0_RGMII_RXD1_CONN_ENET0_RGMII_RXD1	0x00000061
> +				SC_P_ENET0_RGMII_RXD2_CONN_ENET0_RMII_RX_ER	0x00000061
> +			>;
> +		};
> +
> +		pinctrl_gpio_bl_on: gpio-bl-on {
> +			fsl,pins = <
> +				SC_P_QSPI0A_DATA3_LSIO_GPIO3_IO12	0x00000040
> +			>;
> +		};
> +
> +		pinctrl_hog0: hog0grp {
> +			fsl,pins = <
> +				SC_P_COMP_CTL_GPIO_1V8_3V3_GPIORHB_PAD	0x000514a0 /* Use pads in 3.3V mode */
> +			>;
> +		};
> +
> +		pinctrl_hog1: hog1grp {
> +			fsl,pins = <
> +				SC_P_QSPI0A_DATA1_LSIO_GPIO3_IO10	0x00000020 /*  45 */
> +				SC_P_ENET0_RGMII_TXD3_LSIO_GPIO5_IO02	0x06000020 /*  65 */
> +					SC_P_CSI_D07_CI_PI_D09		0x00000061
> +				SC_P_QSPI0A_DATA2_LSIO_GPIO3_IO11	0x00000020 /*  69 */
> +				SC_P_QSPI0A_DQS_LSIO_GPIO3_IO13		0x00000020 /*  73 */
> +				SC_P_SAI0_TXC_LSIO_GPIO0_IO26		0x00000020 /*  79 */
> +					SC_P_CSI_D02_CI_PI_D04		0x00000061
> +				SC_P_ENET0_RGMII_RXC_LSIO_GPIO5_IO03	0x06000020 /*  85 */
> +					SC_P_CSI_D06_CI_PI_D08		0x00000061
> +				SC_P_QSPI0B_SCLK_LSIO_GPIO3_IO17	0x00000020 /*  95 */
> +				SC_P_SAI0_RXD_LSIO_GPIO0_IO27		0x00000020 /*  97 */
> +					SC_P_CSI_D03_CI_PI_D05		0x00000061
> +				SC_P_QSPI0B_DATA0_LSIO_GPIO3_IO18	0x00000020 /*  99 */
> +				SC_P_SAI0_TXFS_LSIO_GPIO0_IO28		0x00000020 /* 101 */
> +					SC_P_CSI_D00_CI_PI_D02		0x00000061
> +				SC_P_SAI0_TXD_LSIO_GPIO0_IO25		0x00000020 /* 103 */
> +					SC_P_CSI_D01_CI_PI_D03		0x00000061
> +				SC_P_QSPI0B_DATA1_LSIO_GPIO3_IO19	0x00000020 /* 105 */
> +				SC_P_QSPI0B_DATA2_LSIO_GPIO3_IO20	0x00000020 /* 107 */
> +				SC_P_USB_SS3_TC2_LSIO_GPIO4_IO05	0x00000020 /* 127 */
> +				SC_P_USB_SS3_TC3_LSIO_GPIO4_IO06	0x00000020 /* 131 */
> +				SC_P_USB_SS3_TC1_LSIO_GPIO4_IO04	0x00000020 /* 133 */
> +				SC_P_CSI_PCLK_LSIO_GPIO3_IO00		0x00000020 /*  96 */
> +				SC_P_QSPI0B_DATA3_LSIO_GPIO3_IO21	0x00000020 /*  98 */
> +				SC_P_SAI1_RXFS_LSIO_GPIO0_IO31		0x00000020 /* 100 */
> +				SC_P_QSPI0B_DQS_LSIO_GPIO3_IO22		0x00000020 /* 102 */
> +				SC_P_QSPI0B_SS0_B_LSIO_GPIO3_IO23	0x00000020 /* 104 */
> +				SC_P_QSPI0B_SS1_B_LSIO_GPIO3_IO24	0x00000020 /* 106 */
> +			>;
> +		};
> +
> +		pinctrl_hog2: hog2grp {
> +			fsl,pins = <
> +				SC_P_CSI_MCLK_LSIO_GPIO3_IO01		0x00000020 /*  75 */
> +				SC_P_QSPI0A_SS0_B_LSIO_GPIO3_IO14	0x00000020 /*  77 */
> +				SC_P_QSPI0A_SS1_B_LSIO_GPIO3_IO15	0x00000020 /*  89 */
> +				SC_P_QSPI0A_SCLK_LSIO_GPIO3_IO16	0x00000020 /*  93 */
> +			>;
> +		};
> +
> +		/* Off Module I2C */
> +		pinctrl_i2c1: i2c1grp {
> +			fsl,pins = <
> +				SC_P_MIPI_DSI0_GPIO0_00_ADMA_I2C1_SCL	0x06000021
> +				SC_P_MIPI_DSI0_GPIO0_01_ADMA_I2C1_SDA	0x06000021
> +			>;
> +		};
> +
> +		/*INT*/
> +		pinctrl_usb3503a: usb3503a-grp {
> +			fsl,pins = <
> +				SC_P_MIPI_CSI0_MCLK_OUT_LSIO_GPIO3_IO04 0x00000061
> +			>;
> +		};
> +
> +		pinctrl_usbc_det: usbc-det {
> +			fsl,pins = <
> +				SC_P_ENET0_REFCLK_125M_25M_LSIO_GPIO5_IO09	0x06000040
> +			>;
> +		};
> +
> +		pinctrl_usbh1_reg: usbh1-reg {
> +			fsl,pins = <
> +				SC_P_USB_SS3_TC0_LSIO_GPIO4_IO03	0x06000040
> +			>;
> +		};
> +
> +		pinctrl_usdhc1: usdhc1grp {
> +			fsl,pins = <
> +				SC_P_EMMC0_CLK_CONN_EMMC0_CLK		0x06000041
> +				SC_P_EMMC0_CMD_CONN_EMMC0_CMD		0x00000021
> +				SC_P_EMMC0_DATA0_CONN_EMMC0_DATA0	0x00000021
> +				SC_P_EMMC0_DATA1_CONN_EMMC0_DATA1	0x00000021
> +				SC_P_EMMC0_DATA2_CONN_EMMC0_DATA2	0x00000021
> +				SC_P_EMMC0_DATA3_CONN_EMMC0_DATA3	0x00000021
> +				SC_P_EMMC0_DATA4_CONN_EMMC0_DATA4	0x00000021
> +				SC_P_EMMC0_DATA5_CONN_EMMC0_DATA5	0x00000021
> +				SC_P_EMMC0_DATA6_CONN_EMMC0_DATA6	0x00000021
> +				SC_P_EMMC0_DATA7_CONN_EMMC0_DATA7	0x00000021
> +				SC_P_EMMC0_STROBE_CONN_EMMC0_STROBE	0x00000041
> +				SC_P_EMMC0_RESET_B_CONN_EMMC0_RESET_B	0x00000021
> +			>;
> +		};
> +
> +		pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
> +			fsl,pins = <
> +				SC_P_EMMC0_CLK_CONN_EMMC0_CLK		0x06000041
> +				SC_P_EMMC0_CMD_CONN_EMMC0_CMD		0x00000021
> +				SC_P_EMMC0_DATA0_CONN_EMMC0_DATA0	0x00000021
> +				SC_P_EMMC0_DATA1_CONN_EMMC0_DATA1	0x00000021
> +				SC_P_EMMC0_DATA2_CONN_EMMC0_DATA2	0x00000021
> +				SC_P_EMMC0_DATA3_CONN_EMMC0_DATA3	0x00000021
> +				SC_P_EMMC0_DATA4_CONN_EMMC0_DATA4	0x00000021
> +				SC_P_EMMC0_DATA5_CONN_EMMC0_DATA5	0x00000021
> +				SC_P_EMMC0_DATA6_CONN_EMMC0_DATA6	0x00000021
> +				SC_P_EMMC0_DATA7_CONN_EMMC0_DATA7	0x00000021
> +				SC_P_EMMC0_STROBE_CONN_EMMC0_STROBE	0x00000041
> +				SC_P_EMMC0_RESET_B_CONN_EMMC0_RESET_B	0x00000021
> +			>;
> +		};
> +
> +		pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
> +			fsl,pins = <
> +				SC_P_EMMC0_CLK_CONN_EMMC0_CLK		0x06000041
> +				SC_P_EMMC0_CMD_CONN_EMMC0_CMD		0x00000021
> +				SC_P_EMMC0_DATA0_CONN_EMMC0_DATA0	0x00000021
> +				SC_P_EMMC0_DATA1_CONN_EMMC0_DATA1	0x00000021
> +				SC_P_EMMC0_DATA2_CONN_EMMC0_DATA2	0x00000021
> +				SC_P_EMMC0_DATA3_CONN_EMMC0_DATA3	0x00000021
> +				SC_P_EMMC0_DATA4_CONN_EMMC0_DATA4	0x00000021
> +				SC_P_EMMC0_DATA5_CONN_EMMC0_DATA5	0x00000021
> +				SC_P_EMMC0_DATA6_CONN_EMMC0_DATA6	0x00000021
> +				SC_P_EMMC0_DATA7_CONN_EMMC0_DATA7	0x00000021
> +				SC_P_EMMC0_STROBE_CONN_EMMC0_STROBE	0x00000041
> +				SC_P_EMMC0_RESET_B_CONN_EMMC0_RESET_B	0x00000021
> +			>;
> +		};
> +
> +		pinctrl_usdhc2_gpio: usdhc2gpiogrp {
> +			fsl,pins = <
> +				SC_P_QSPI0A_DATA0_LSIO_GPIO3_IO09	0x06000021
> +			>;
> +		};
> +
> +		pinctrl_usdhc2: usdhc2grp {
> +			fsl,pins = <
> +				SC_P_USDHC1_CLK_CONN_USDHC1_CLK		0x06000041
> +				SC_P_USDHC1_CMD_CONN_USDHC1_CMD		0x00000021
> +				SC_P_USDHC1_DATA0_CONN_USDHC1_DATA0	0x00000021
> +				SC_P_USDHC1_DATA1_CONN_USDHC1_DATA1	0x00000021
> +				SC_P_USDHC1_DATA2_CONN_USDHC1_DATA2	0x00000021
> +				SC_P_USDHC1_DATA3_CONN_USDHC1_DATA3	0x00000021
> +				SC_P_USDHC1_VSELECT_CONN_USDHC1_VSELECT	0x00000021
> +			>;
> +		};
> +
> +		pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
> +			fsl,pins = <
> +				SC_P_USDHC1_CLK_CONN_USDHC1_CLK		0x06000041
> +				SC_P_USDHC1_CMD_CONN_USDHC1_CMD		0x00000021
> +				SC_P_USDHC1_DATA0_CONN_USDHC1_DATA0	0x00000021
> +				SC_P_USDHC1_DATA1_CONN_USDHC1_DATA1	0x00000021
> +				SC_P_USDHC1_DATA2_CONN_USDHC1_DATA2	0x00000021
> +				SC_P_USDHC1_DATA3_CONN_USDHC1_DATA3	0x00000021
> +				SC_P_USDHC1_VSELECT_CONN_USDHC1_VSELECT	0x00000021
> +			>;
> +		};
> +
> +		pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
> +			fsl,pins = <
> +				SC_P_USDHC1_CLK_CONN_USDHC1_CLK		0x06000041
> +				SC_P_USDHC1_CMD_CONN_USDHC1_CMD		0x00000021
> +				SC_P_USDHC1_DATA0_CONN_USDHC1_DATA0	0x00000021
> +				SC_P_USDHC1_DATA1_CONN_USDHC1_DATA1	0x00000021
> +				SC_P_USDHC1_DATA2_CONN_USDHC1_DATA2	0x00000021
> +				SC_P_USDHC1_DATA3_CONN_USDHC1_DATA3	0x00000021
> +				SC_P_USDHC1_VSELECT_CONN_USDHC1_VSELECT	0x00000021
> +			>;
> +		};
> +	};
> +};
> +
> +&lpuart0 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_lpuart0>;
> +	status = "okay";
> +};
> +
> +&lpuart3 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_lpuart3>, <&pinctrl_lpuart3_ctrl>;
> +	status = "okay";
> +};
> +
> +&gpio0 {
> +	status = "okay";
> +};
> +
> +&gpio1 {
> +	status = "okay";
> +};
> +
> +&gpio3 {
> +	status = "okay";
> +};
> +
> +&gpio4 {
> +	status = "okay";
> +};
> +
> +&fec1 {
> +	phy-handle = <&ethphy0>;
> +	phy-mode = "rmii";
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_fec1>;
> +	status = "okay";
> +
> +	mdio {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		ethphy0: ethernet-phy at 2 {
> +			compatible = "ethernet-phy-ieee802.3-c22";
> +			max-speed = <100>;
> +			reg = <2>;
> +		};
> +	};
> +};
> +
> +&i2c1 {
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +	clock-frequency = <100000>;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_i2c1>;
> +	status = "okay";
> +};
> +
> +&usdhc1 {
> +	bus-width = <8>;
> +	non-removable;
> +	pinctrl-names = "default", "state_100mhz", "state_200mhz";
> +	pinctrl-0 = <&pinctrl_usdhc1>;
> +	pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
> +	pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
> +	status = "okay";
> +};
> +
> +&usdhc2 {
> +	bus-width = <4>;
> +	cd-gpios = <&gpio3 9 GPIO_ACTIVE_LOW>;
> +	pinctrl-names = "default", "state_100mhz", "state_200mhz";
> +	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
> +	pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
> +	pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
> +	status = "okay";
> +};
> diff --git a/arch/arm/mach-imx/imx8/Kconfig b/arch/arm/mach-imx/imx8/Kconfig
> index f76a139684..feea07f135 100644
> --- a/arch/arm/mach-imx/imx8/Kconfig
> +++ b/arch/arm/mach-imx/imx8/Kconfig
> @@ -22,6 +22,11 @@ choice
>  	prompt "i.MX8 board select"
>  	optional
>  
> +config TARGET_COLIBRI_IMX8QXP
> +	bool "Support Colibri iMX8QXP module"
> +	select BOARD_LATE_INIT
> +	select IMX8QXP
> +
>  config TARGET_IMX8QXP_MEK
>  	bool "Support i.MX8QXP MEK board"
>  	select BOARD_LATE_INIT
> @@ -30,5 +35,6 @@ config TARGET_IMX8QXP_MEK
>  endchoice
>  
>  source "board/freescale/imx8qxp_mek/Kconfig"
> +source "board/toradex/colibri-imx8qxp/Kconfig"
>  
>  endif
> diff --git a/board/toradex/colibri-imx8qxp/Kconfig b/board/toradex/colibri-imx8qxp/Kconfig
> new file mode 100644
> index 0000000000..340fe72816
> --- /dev/null
> +++ b/board/toradex/colibri-imx8qxp/Kconfig
> @@ -0,0 +1,30 @@
> +if TARGET_COLIBRI_IMX8QXP
> +
> +config SYS_BOARD
> +	default "colibri-imx8qxp"
> +
> +config SYS_VENDOR
> +	default "toradex"
> +
> +config SYS_CONFIG_NAME
> +	default "colibri-imx8qxp"
> +
> +config TDX_CFG_BLOCK
> +	default y
> +
> +config TDX_HAVE_MMC
> +	default y
> +
> +config TDX_CFG_BLOCK_DEV
> +	default "0"
> +
> +config TDX_CFG_BLOCK_PART
> +	default "1"
> +
> +# Toradex config block in eMMC, at the end of 1st "boot sector"
> +config TDX_CFG_BLOCK_OFFSET
> +	default "-512"
> +
> +source "board/toradex/common/Kconfig"
> +
> +endif
> diff --git a/board/toradex/colibri-imx8qxp/MAINTAINERS b/board/toradex/colibri-imx8qxp/MAINTAINERS
> new file mode 100644
> index 0000000000..39a9eb79b7
> --- /dev/null
> +++ b/board/toradex/colibri-imx8qxp/MAINTAINERS
> @@ -0,0 +1,9 @@
> +Colibri iMX8QXP
> +M:	Marcel Ziswiler <marcel.ziswiler@toradex.com>
> +W:	http://developer.toradex.com/software/linux/linux-software
> +S:	Maintained
> +F:	arch/arm/dts/fsl-imx8qxp-colibri.dts
> +F:	arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi
> +F:	board/toradex/colibri-imx8qxp/
> +F:	configs/colibri-imx8qxp_defconfig
> +F:	include/configs/colibri-imx8qxp.h
> diff --git a/board/toradex/colibri-imx8qxp/Makefile b/board/toradex/colibri-imx8qxp/Makefile
> new file mode 100644
> index 0000000000..f6342e1dca
> --- /dev/null
> +++ b/board/toradex/colibri-imx8qxp/Makefile
> @@ -0,0 +1,7 @@
> +#
> +# Copyright 2019 Toradex
> +#
> +# SPDX-License-Identifier:	GPL-2.0+
> +#
> +
> +obj-y += colibri-imx8qxp.o
> diff --git a/board/toradex/colibri-imx8qxp/README b/board/toradex/colibri-imx8qxp/README
> new file mode 100644
> index 0000000000..e68d183fe6
> --- /dev/null
> +++ b/board/toradex/colibri-imx8qxp/README
> @@ -0,0 +1,66 @@
> +U-Boot for the Toradex Colibri iMX8QXP V1.0B module
> +
> +Quick Start
> +===========
> +
> +- Build the ARM trusted firmware binary
> +- Get scfw_tcm.bin and ahab-container.img
> +- Build U-Boot
> +- Load U-Boot binary using uuu
> +- Flash U-Boot binary into the eMMC
> +- Boot
> +
> +Get and Build the ARM Trusted Firmware
> +======================================
> +
> +$ git clone -b imx_4.14.78_1.0.0_ga https://source.codeaurora.org/external/imx/imx-atf
> +$ cd imx-atf/
> +$ make PLAT=imx8qxp bl31
> +
> +Get scfw_tcm.bin and ahab-container.img
> +=======================================
> +
> +$ wget https://github.com/toradex/meta-fsl-bsp-release/blob/toradex-sumo-4.14.78-1.0.0_ga-bringup/imx/meta-bsp/recipes-bsp/imx-sc-firmware/files/mx8qx-colibri-scfw-tcm.bin?raw=true
> +$ mv mx8qx-colibri-scfw-tcm.bin\?raw\=true mx8qx-colibri-scfw-tcm.bin
> +$ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-7.6.bin
> +$ chmod +x firmware-imx-7.6.bin
> +$ ./firmware-imx-7.6.bin
> +
> +Copy the following binaries to the U-Boot folder:
> +
> +$ cp imx-atf/build/imx8qxp/release/bl31.bin .
> +$ cp u-boot/u-boot.bin .
> +
> +Copy the following firmware to the U-Boot folder:
> +
> +$ cp firmware-imx-7.6/firmware/seco/ahab-container.img .
> +
> +Build U-Boot
> +============
> +
> +$ make colibri-imx8qxp_defconfig
> +$ make u-boot-dtb.imx
> +
> +Load the U-Boot Binary Using UUU
> +================================
> +
> +Get the latest version of the universal update utility (uuu) aka mfgtools 3.0:
> +
> +https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fgithub.com%2FNXPmicro%2Fmfgtools%2Freleases
> +
> +Put the module into USB recovery aka serial downloader mode, connect USB device
> +to your host and execute uuu:
> +
> +sudo ./uuu u-boot/u-boot-dtb.imx
> +
> +Flash the U-Boot Binary into the eMMC
> +=====================================
> +
> +Burn the u-boot-dtb.imx binary to the primary eMMC hardware boot area partition:
> +
> +load mmc 1:1 $loadaddr u-boot-dtb.imx
> +setexpr blkcnt ${filesize} + 0x1ff && setexpr blkcnt ${blkcnt} / 0x200
> +mmc dev 0 1
> +mmc write ${loadaddr} 0x0 ${blkcnt}
> +
> +Boot
> diff --git a/board/toradex/colibri-imx8qxp/colibri-imx8qxp.c b/board/toradex/colibri-imx8qxp/colibri-imx8qxp.c
> new file mode 100644
> index 0000000000..9aa0f096d2
> --- /dev/null
> +++ b/board/toradex/colibri-imx8qxp/colibri-imx8qxp.c
> @@ -0,0 +1,212 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright 2019 Toradex
> + */
> +
> +#include <common.h>
> +
> +#include <asm/arch/clock.h>
> +#include <asm/arch/imx8-pins.h>
> +#include <asm/arch/iomux.h>
> +#include <asm/arch/sci/sci.h>
> +#include <asm/arch/sys_proto.h>
> +#include <asm/gpio.h>
> +#include <asm/io.h>
> +#include <asm/mach-imx/video.h>
> +#include <dm.h>
> +#include <environment.h>
> +#include <errno.h>
> +#include <fdt_support.h>
> +#include <fsl_esdhc.h>
> +#include <fsl_ifc.h>
> +#include <i2c.h>
> +#include <linux/libfdt.h>
> +#include <malloc.h>
> +#include <netdev.h>
> +#include <power-domain.h>
> +#include <usb.h>
> +
> +#include "../common/tdx-cfg-block.h"
> +
> +DECLARE_GLOBAL_DATA_PTR;
> +
> +#define GPIO_PAD_CTRL	((SC_PAD_CONFIG_NORMAL << PADRING_CONFIG_SHIFT) | \
> +			 (SC_PAD_ISO_OFF << PADRING_LPCONFIG_SHIFT) | \
> +			 (SC_PAD_28FDSOI_DSE_DV_HIGH << PADRING_DSE_SHIFT) | \
> +			 (SC_PAD_28FDSOI_PS_PU << PADRING_PULL_SHIFT))
> +
> +#define UART_PAD_CTRL	((SC_PAD_CONFIG_OUT_IN << PADRING_CONFIG_SHIFT) | \
> +			 (SC_PAD_ISO_OFF << PADRING_LPCONFIG_SHIFT) | \
> +			 (SC_PAD_28FDSOI_DSE_DV_HIGH << PADRING_DSE_SHIFT) | \
> +			 (SC_PAD_28FDSOI_PS_PU << PADRING_PULL_SHIFT))
> +
> +static iomux_cfg_t uart3_pads[] = {
> +	SC_P_FLEXCAN2_RX | MUX_MODE_ALT(2) | MUX_PAD_CTRL(UART_PAD_CTRL),
> +	SC_P_FLEXCAN2_TX | MUX_MODE_ALT(2) | MUX_PAD_CTRL(UART_PAD_CTRL),
> +	/* Transceiver FORCEOFF# signal, mux to use pullup */
> +	SC_P_QSPI0B_DQS | MUX_MODE_ALT(4) | MUX_PAD_CTRL(UART_PAD_CTRL),
> +};
> +
> +static void setup_iomux_uart(void)
> +{
> +	imx8_iomux_setup_multiple_pads(uart3_pads, ARRAY_SIZE(uart3_pads));
> +}
> +
> +int board_early_init_f(void)
> +{
> +	sc_pm_clock_rate_t rate;
> +	sc_err_t err = 0;
> +
> +	/*
> +	 * This works around that having only UART3 up the baudrate is 1.2M
> +	 * instead of 115.2k. Set UART0 clock root to 80 MHz
> +	 */
> +	rate = 80000000;
> +	err = sc_pm_set_clock_rate(-1, SC_R_UART_0, SC_PM_CLK_PER, &rate);
> +	if (err != SC_ERR_NONE)
> +		return 0;
> +
> +	/* Power up UART3 */
> +	err = sc_pm_set_resource_power_mode(-1, SC_R_UART_3, SC_PM_PW_MODE_ON);
> +	if (err != SC_ERR_NONE)
> +		return 0;
> +
> +	/* Set UART3 clock root to 80 MHz */
> +	rate = 80000000;
> +	err = sc_pm_set_clock_rate(-1, SC_R_UART_3, SC_PM_CLK_PER, &rate);
> +	if (err != SC_ERR_NONE)
> +		return 0;
> +
> +	/* Enable UART3 clock root */
> +	err = sc_pm_clock_enable(-1, SC_R_UART_3, SC_PM_CLK_PER, true, false);
> +	if (err != SC_ERR_NONE)
> +		return 0;
> +
> +	setup_iomux_uart();
> +
> +	return 0;
> +}
> +
> +#undef CONFIG_MXC_GPIO /* TODO */
> +#ifdef CONFIG_MXC_GPIO
> +#define IOEXP_RESET IMX_GPIO_NR(1, 1)
> +
> +static iomux_cfg_t board_gpios[] = {
> +	SC_P_SPI2_SDO | MUX_MODE_ALT(4) | MUX_PAD_CTRL(GPIO_PAD_CTRL),
> +	SC_P_ENET0_REFCLK_125M_25M | MUX_MODE_ALT(4) | \
> +		MUX_PAD_CTRL(GPIO_PAD_CTRL),
> +};
> +
> +static void board_gpio_init(void)
> +{
> +	struct gpio_desc desc;
> +	int ret;
> +
> +	ret = dm_gpio_lookup_name("gpio at 1a_3", &desc);
> +	if (ret)
> +		return;
> +
> +	ret = dm_gpio_request(&desc, "bb_per_rst_b");
> +	if (ret)
> +		return;
> +
> +	dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT);
> +	dm_gpio_set_value(&desc, 0);
> +	udelay(50);
> +	dm_gpio_set_value(&desc, 1);
> +
> +	imx8_iomux_setup_multiple_pads(board_gpios, ARRAY_SIZE(board_gpios));
> +
> +	/* enable i2c port expander assert reset line */
> +	gpio_request(IOEXP_RESET, "ioexp_rst");
> +	gpio_direction_output(IOEXP_RESET, 1);
> +}
> +#else
> +static inline void board_gpio_init(void) {}
> +#endif
> +
> +#if IS_ENABLED(CONFIG_FEC_MXC)
> +#include <miiphy.h>
> +
> +int board_phy_config(struct phy_device *phydev)
> +{
> +	phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x1f);
> +	phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x8);
> +
> +	phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x00);
> +	phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x82ee);
> +	phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x05);
> +	phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x100);
> +
> +	if (phydev->drv->config)
> +		phydev->drv->config(phydev);
> +
> +	return 0;
> +}
> +#endif
> +
> +void build_info(void)
> +{
> +	u32 sc_build = 0, sc_commit = 0;
> +
> +	/* Get SCFW build and commit id */
> +	sc_misc_build_info(-1, &sc_build, &sc_commit);
> +	if (!sc_build) {
> +		printf("SCFW does not support build info\n");
> +		sc_commit = 0; /* Display 0 if build info not supported */
> +	}
> +	printf("Build: SCFW %x\n", sc_commit);
> +}
> +
> +int checkboard(void)
> +{
> +	puts("Model: Toradex Colibri iMX8X\n");
> +
> +	build_info();
> +	print_bootinfo();
> +
> +	return 0;
> +}
> +
> +int board_init(void)
> +{
> +	board_gpio_init();
> +
> +	return 0;
> +}
> +
> +void detail_board_ddr_info(void)
> +{
> +	puts("\nDDR    ");
> +}
> +
> +/*
> + * Board specific reset that is system reset.
> + */
> +void reset_cpu(ulong addr)
> +{
> +	/* TODO */
> +}
> +
> +#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
> +int ft_board_setup(void *blob, bd_t *bd)
> +{
> +	return ft_common_board_setup(blob, bd);
> +}
> +#endif
> +
> +int board_mmc_get_env_dev(int devno)
> +{
> +	return devno;
> +}
> +
> +int board_late_init(void)
> +{
> +#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
> +/* TODO move to common */
> +	env_set("board_name", "Colibri iMX8QXP");
> +	env_set("board_rev", "v1.0");
> +#endif
> +
> +	return 0;
> +}
> diff --git a/board/toradex/colibri-imx8qxp/imximage.cfg b/board/toradex/colibri-imx8qxp/imximage.cfg
> new file mode 100644
> index 0000000000..ce9e66c64d
> --- /dev/null
> +++ b/board/toradex/colibri-imx8qxp/imximage.cfg
> @@ -0,0 +1,24 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +/*
> + * Copyright 2019 Toradex
> + *
> + * Refer doc/README.imx8image for more details about how-to configure
> + * and create imx8image boot image
> + */
> +
> +#define __ASSEMBLY__
> +
> +/* Boot from SD, sector size 0x400 */
> +BOOT_FROM EMMC_FASTBOOT 0x400
> +/* SoC type IMX8QX */
> +SOC_TYPE IMX8QX
> +/* Append seco container image */
> +APPEND ahab-container.img
> +/* Create the 2nd container */
> +CONTAINER
> +/* Add scfw image with exec attribute */
> +IMAGE SCU mx8qx-colibri-scfw-tcm.bin
> +/* Add ATF image with exec attribute */
> +IMAGE A35 bl31.bin 0x80000000
> +/* Add U-Boot image with load attribute */
> +DATA A35 u-boot-dtb.bin 0x80020000
> diff --git a/configs/colibri-imx8qxp_defconfig b/configs/colibri-imx8qxp_defconfig
> new file mode 100644
> index 0000000000..d697546ed7
> --- /dev/null
> +++ b/configs/colibri-imx8qxp_defconfig
> @@ -0,0 +1,53 @@
> +CONFIG_ARM=y
> +CONFIG_ARCH_IMX8=y
> +CONFIG_SYS_TEXT_BASE=0x80020000
> +CONFIG_SYS_MALLOC_F_LEN=0x2000
> +CONFIG_TARGET_COLIBRI_IMX8QXP=y
> +CONFIG_DISTRO_DEFAULTS=y
> +CONFIG_NR_DRAM_BANKS=3
> +CONFIG_FIT=y
> +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/colibri-imx8qxp/imximage.cfg"
> +CONFIG_LOG=y
> +CONFIG_VERSION_VARIABLE=y
> +# CONFIG_DISPLAY_BOARDINFO is not set
> +CONFIG_BOARD_EARLY_INIT_F=y
> +CONFIG_CMD_CPU=y
> +# CONFIG_CMD_IMPORTENV is not set
> +CONFIG_CMD_MEMTEST=y
> +CONFIG_CMD_CLK=y
> +CONFIG_CMD_DM=y
> +CONFIG_CMD_GPIO=y
> +CONFIG_CMD_I2C=y
> +CONFIG_CMD_MMC=y
> +CONFIG_CMD_CACHE=y
> +CONFIG_CMD_UUID=y
> +CONFIG_CMD_EXT4_WRITE=y
> +CONFIG_DEFAULT_DEVICE_TREE="fsl-imx8qxp-colibri"
> +CONFIG_ENV_IS_IN_MMC=y
> +CONFIG_CLK_IMX8=y
> +CONFIG_CPU=y
> +CONFIG_DM_GPIO=y
> +CONFIG_MXC_GPIO=y
> +CONFIG_DM_I2C=y
> +CONFIG_SYS_I2C_IMX_LPI2C=y
> +CONFIG_MISC=y
> +CONFIG_DM_MMC=y
> +CONFIG_PHYLIB=y
> +CONFIG_PHY_ADDR_ENABLE=y
> +CONFIG_PHY_MICREL=y
> +CONFIG_DM_ETH=y
> +CONFIG_FEC_MXC_SHARE_MDIO=y
> +CONFIG_FEC_MXC_MDIO_BASE=0x5B040000
> +CONFIG_FEC_MXC=y
> +CONFIG_MII=y
> +CONFIG_PINCTRL=y
> +CONFIG_PINCTRL_IMX8=y
> +CONFIG_POWER_DOMAIN=y
> +CONFIG_IMX8_POWER_DOMAIN=y
> +CONFIG_DM_REGULATOR=y
> +CONFIG_DM_REGULATOR_FIXED=y
> +CONFIG_DM_REGULATOR_GPIO=y
> +CONFIG_DM_SERIAL=y
> +CONFIG_FSL_LPUART=y
> +CONFIG_DM_THERMAL=y
> +# CONFIG_EFI_LOADER is not set
> diff --git a/include/configs/colibri-imx8qxp.h b/include/configs/colibri-imx8qxp.h
> new file mode 100644
> index 0000000000..33cbcb44a9
> --- /dev/null
> +++ b/include/configs/colibri-imx8qxp.h
> @@ -0,0 +1,214 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +/*
> + * Copyright 2019 Toradex
> + */
> +
> +#ifndef __COLIBRI_IMX8QXP_H
> +#define __COLIBRI_IMX8QXP_H
> +
> +#include <asm/arch/imx-regs.h>
> +#include <linux/sizes.h>
> +
> +#define CONFIG_REMAKE_ELF
> +
> +#define CONFIG_DISPLAY_BOARDINFO_LATE
> +
> +#undef CONFIG_CMD_EXPORTENV
> +#undef CONFIG_CMD_IMPORTENV
> +#undef CONFIG_CMD_IMLS
> +
> +#undef CONFIG_CMD_CRC32
> +#undef CONFIG_BOOTM_NETBSD
> +
> +#define CONFIG_FSL_ESDHC
> +#define CONFIG_FSL_USDHC
> +#define CONFIG_SYS_FSL_ESDHC_ADDR	0
> +#define USDHC1_BASE_ADDR		0x5B010000
> +#define USDHC2_BASE_ADDR		0x5B020000
> +#define CONFIG_SUPPORT_EMMC_BOOT	/* eMMC specific */
> +
> +#define CONFIG_ENV_OVERWRITE
> +
> +#define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
> +
> +#define FEC_QUIRK_ENET_MAC
> +
> +#define CONFIG_IP_DEFRAG
> +#define CONFIG_TFTP_BLOCKSIZE		4096
> +#define CONFIG_TFTP_TSIZE
> +
> +#define CONFIG_IPADDR			192.168.10.2
> +#define CONFIG_NETMASK			255.255.255.0
> +#define CONFIG_SERVERIP			192.168.10.1
> +
> +#define MEM_LAYOUT_ENV_SETTINGS \
> +	"fdt_addr_r=0x84000000\0" \
> +	"kernel_addr_r=0x82000000\0" \
> +	"ramdisk_addr_r=0x84100000\0"
> +
> +#ifdef CONFIG_AHAB_BOOT
> +#define AHAB_ENV "sec_boot=yes\0"
> +#else
> +#define AHAB_ENV "sec_boot=no\0"
> +#endif
> +
> +/* Boot M4 */
> +#define M4_BOOT_ENV \
> +	"m4_0_image=m4_0.bin\0" \
> +	"loadm4image_0=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} " \
> +		"${m4_0_image}\0" \
> +	"m4boot_0=run loadm4image_0; dcache flush; bootaux ${loadaddr} 0\0" \
> +
> +#define MFG_NAND_PARTITION ""
> +
> +#define BOOT_TARGET_DEVICES(func) \
> +	func(MMC, mmc, 0) \
> +	func(MMC, mmc, 1) \
> +	func(DHCP, dhcp, na)
> +#include <config_distro_bootcmd.h>
> +#undef BOOTENV_RUN_NET_USB_START
> +#define BOOTENV_RUN_NET_USB_START ""
> +
> +#define CONFIG_MFG_ENV_SETTINGS \
> +	"mfgtool_args=setenv bootargs console=${console},${baudrate} " \
> +		"rdinit=/linuxrc g_mass_storage.stall=0 " \
> +		"g_mass_storage.removable=1 g_mass_storage.idVendor=0x066F " \
> +		"g_mass_storage.idProduct=0x37FF " \
> +		"g_mass_storage.iSerialNumber=\"\" "\
> +		MFG_NAND_PARTITION \
> +		"video=imxdpufb5:off video=imxdpufb6:off video=imxdpufb7:off " \
> +		"clk_ignore_unused "\
> +		"\0" \
> +	"initrd_addr=0x83800000\0" \
> +	"initrd_high=0xffffffff\0" \
> +	"bootcmd_mfg=run mfgtool_args;booti ${loadaddr} ${initrd_addr} " \
> +		"${fdt_addr};\0" \
> +
> +/* Initial environment variables */
> +#define CONFIG_EXTRA_ENV_SETTINGS \
> +	AHAB_ENV \
> +	BOOTENV \
> +	CONFIG_MFG_ENV_SETTINGS \
> +	M4_BOOT_ENV \
> +	MEM_LAYOUT_ENV_SETTINGS \
> +	"boot_fdt=try\0" \
> +	"bootscript=echo Running bootscript from mmc ...; source\0" \
> +	"console=ttyLP3,115200 earlycon=lpuart32,0x5a090000,115200\0" \
> +	"fdt_addr=0x83000000\0"			\
> +	"fdt_file=fsl-imx8qxp-colibri-eval-v3.dtb\0" \
> +	"fdt_high=0xffffffffffffffff\0"		\
> +	"finduuid=part uuid mmc ${mmcdev}:2 uuid\0" \
> +	"image=Image\0" \
> +	"initrd_addr=0x83800000\0"		\
> +	"initrd_high=0xffffffffffffffff\0" \
> +	"loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} " \
> +		"${script};\0" \
> +	"loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
> +	"loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
> +	"mmcargs=setenv bootargs console=${console},${baudrate} " \
> +		"root=PARTUUID=${uuid} rootwait " \
> +	"mmcautodetect=yes\0" \
> +	"mmcboot=echo Booting from mmc ...; " \
> +		"run finduuid; run mmcargs; " \
> +		"if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
> +			"if run loadfdt; then " \
> +				"booti ${loadaddr} - ${fdt_addr}; " \
> +			"else " \
> +				"echo WARN: Cannot load the DT; " \
> +			"fi; " \
> +		"else " \
> +			"echo wait for boot; " \
> +		"fi;\0" \
> +	"mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \
> +	"mmcpart=" __stringify(CONFIG_SYS_MMC_IMG_LOAD_PART) "\0" \
> +	"netargs=setenv bootargs console=${console} root=/dev/nfs ip=dhcp " \
> +		"nfsroot=${serverip}:${nfsroot},v3,tcp video=imxdpufb5:off " \
> +		"video=imxdpufb6:off video=imxdpufb7:off\0" \
> +	"netboot=echo Booting from net ...; " \
> +		"run netargs; " \
> +		"if test ${ip_dyn} = yes; then " \
> +			"setenv get_cmd dhcp; " \
> +		"else " \
> +			"setenv get_cmd tftp; " \
> +		"fi; " \
> +		"${get_cmd} ${loadaddr} ${image}; " \
> +		"if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
> +			"if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \
> +				"booti ${loadaddr} - ${fdt_addr}; " \
> +			"else " \
> +				"echo WARN: Cannot load the DT; " \
> +			"fi; " \
> +		"else " \
> +			"booti; " \
> +		"fi;\0" \
> +	"nfsboot=run netargs; dhcp ${loadaddr} ${image}; tftp ${fdt_addr} " \
> +		"colibri-imx8qxp/${fdt_file}; booti ${loadaddr} - " \
> +		"${fdt_addr}\0" \
> +	"panel=NULL\0" \
> +	"script=boot.scr\0" \
> +	"video=imxdpufb5:off video=imxdpufb6:off video=imxdpufb7:off\0"
> +
> +#undef CONFIG_BOOTCOMMAND
> +#define CONFIG_BOOTCOMMAND \
> +	   "mmc dev ${mmcdev}; if mmc rescan; then " \
> +		   "if run loadbootscript; then " \
> +			   "run bootscript; " \
> +		   "else " \
> +			   "if run loadimage; then " \
> +				   "run mmcboot; " \
> +			   "else run netboot; " \
> +			   "fi; " \
> +		   "fi; " \
> +	   "else booti ${loadaddr} - ${fdt_addr}; fi"
> +
> +/* Link Definitions */
> +#define CONFIG_LOADADDR			0x80280000
> +
> +#define CONFIG_SYS_LOAD_ADDR		CONFIG_LOADADDR
> +
> +#define CONFIG_SYS_INIT_SP_ADDR		0x80200000
> +
> +#define CONFIG_SYS_MEMTEST_START	0x88000000
> +#define CONFIG_SYS_MEMTEST_END		0x89000000
> +
> +/* Environment in eMMC, before config block at the end of 1st "boot sector" */
> +#define CONFIG_ENV_SIZE			(8 * 1024)
> +#define CONFIG_ENV_OFFSET		(-CONFIG_ENV_SIZE + \
> +					 CONFIG_TDX_CFG_BLOCK_OFFSET)
> +#define CONFIG_SYS_MMC_ENV_DEV		0
> +#define CONFIG_SYS_MMC_ENV_PART		1
> +
> +#define CONFIG_SYS_MMC_IMG_LOAD_PART	1
> +
> +/* On Colibri iMX8 USDHC1 is eMMC, USDHC2 is 4-bit SD */
> +#define CONFIG_SYS_MMC_ENV_DEV		0		 /* USDHC1 eMMC */
> +#define CONFIG_SYS_FSL_USDHC_NUM	2
> +
> +/* Size of malloc() pool */
> +#define CONFIG_SYS_MALLOC_LEN		((CONFIG_ENV_SIZE + (32 * 1024)) * 1024)
> +
> +#define CONFIG_SYS_SDRAM_BASE		0x80000000
> +#define CONFIG_NR_DRAM_BANKS		3
> +#define PHYS_SDRAM_1			0x80000000
> +#define PHYS_SDRAM_2			0x880000000
> +#define PHYS_SDRAM_1_SIZE		0x80000000	/* 2 GB */
> +#define PHYS_SDRAM_2_SIZE		0x00000000	/* 0 GB */
> +
> +/* Serial */
> +#define CONFIG_BAUDRATE			115200
> +
> +/* Monitor Command Prompt */
> +#define CONFIG_SYS_PROMPT_HUSH_PS2	"> "
> +#define CONFIG_SYS_CBSIZE		2048
> +#define CONFIG_SYS_MAXARGS		64
> +#define CONFIG_SYS_BARGSIZE		CONFIG_SYS_CBSIZE
> +#define CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE + \
> +					sizeof(CONFIG_SYS_PROMPT) + 16)
> +
> +/* Generic Timer Definitions */
> +#define COUNTER_FREQUENCY		8000000	/* 8MHz */
> +
> +#define BOOTAUX_RESERVED_MEM_BASE 0x88000000
> +#define BOOTAUX_RESERVED_MEM_SIZE 0x08000000 /* Reserve from second 128MB */
> +
> +#endif /* __COLIBRI_IMX8QXP_H */
> 


-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [PATCH v2 5/5] board: toradex: add colibri imx8qxp 2gb wb it v1.0b module support
  2019-04-25 10:48   ` Stefano Babic
@ 2019-04-25 12:35     ` Marcel Ziswiler
  2019-04-25 14:52       ` Stefano Babic
  0 siblings, 1 reply; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-25 12:35 UTC (permalink / raw)
  To: u-boot

Hi Stefano

On Thu, 2019-04-25 at 12:48 +0200, Stefano Babic wrote:
> Hi Marcel,
> 
> On 09/04/19 17:25, Marcel Ziswiler wrote:
> > From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> > 
> > This commit adds initial support for the Toradex Colibri iMX8QXP
> > 2GB WB
> > IT V1.0B module. Unlike the V1.0A early access samples exclusively
> > booting from SD card, they are now strapped to boot from eFuses
> > which
> > are factory fused to properly boot from their on-module eMMC. U-
> > Boot
> > supports either booting from the on-module eMMC or may be used for
> > recovery purpose using the universal update utility (uuu) aka
> > mfgtools
> > 3.0.
> > 
> > Functionality wise the following is known to be working:
> > - eMMC and MMC/SD card
> > - Ethernet
> > - GPIOs
> > - I2C
> > 
> > Unfortunately, there is no USB functionality for the i.MX 8QXP as
> > of
> > yet.
> > 
> > Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> > 
> > ---
> > 
> 
> I merged the series and build locally (fine), but Travis complains
> and
> stops with error:
> 
> +cc1: fatal error: opening output file spl/u-boot-spl.cfgout: No such
> file or directory
> +compilation terminated.
> 
> Can you take a look at it ?

Sure, looks like Peng's commit caceb739ea07 ("imx: build flash.bin for
i.MX8") takes SPL for granted while my patchset currently avoids it.

BTW: I still don't believe SPL makes much sense on i.MX 8X given all
the other proprietary parts involved in booting. Plus currently SPL
actually breaks the USB serial downloader aka recovery mode using the
universal update utility (uuu) aka mfgtools 3.0.

> Regards,
> Stefano

Cheers

Marcel

> > Changes in v2:
> > - Changed imx-atf git clone command to include initial branch
> >   information as suggested by Igor.
> > - Sorted board file includes alphabetically as suggested by Igor.
> > - Got rid of SPL configuration in legacy header file as suggested
> > by
> >   Igor and the whole use of SPL on i.MX 8X anyway neither works
> > well
> >   nor makes any much sense at all.
> > 
> >  arch/arm/dts/Makefile                         |   4 +-
> >  arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi  | 112 ++++++
> >  arch/arm/dts/fsl-imx8qxp-colibri.dts          | 328
> > ++++++++++++++++++
> >  arch/arm/mach-imx/imx8/Kconfig                |   6 +
> >  board/toradex/colibri-imx8qxp/Kconfig         |  30 ++
> >  board/toradex/colibri-imx8qxp/MAINTAINERS     |   9 +
> >  board/toradex/colibri-imx8qxp/Makefile        |   7 +
> >  board/toradex/colibri-imx8qxp/README          |  66 ++++
> >  .../toradex/colibri-imx8qxp/colibri-imx8qxp.c | 212 +++++++++++
> >  board/toradex/colibri-imx8qxp/imximage.cfg    |  24 ++
> >  configs/colibri-imx8qxp_defconfig             |  53 +++
> >  include/configs/colibri-imx8qxp.h             | 214 ++++++++++++
> >  12 files changed, 1064 insertions(+), 1 deletion(-)
> >  create mode 100644 arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi
> >  create mode 100644 arch/arm/dts/fsl-imx8qxp-colibri.dts
> >  create mode 100644 board/toradex/colibri-imx8qxp/Kconfig
> >  create mode 100644 board/toradex/colibri-imx8qxp/MAINTAINERS
> >  create mode 100644 board/toradex/colibri-imx8qxp/Makefile
> >  create mode 100644 board/toradex/colibri-imx8qxp/README
> >  create mode 100644 board/toradex/colibri-imx8qxp/colibri-imx8qxp.c
> >  create mode 100644 board/toradex/colibri-imx8qxp/imximage.cfg
> >  create mode 100644 configs/colibri-imx8qxp_defconfig
> >  create mode 100644 include/configs/colibri-imx8qxp.h
> > 
> > diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
> > index 13d1d67624..2a551d42a4 100644
> > --- a/arch/arm/dts/Makefile
> > +++ b/arch/arm/dts/Makefile
> > @@ -559,7 +559,9 @@ dtb-$(CONFIG_MX7) += imx7d-sdb.dtb \
> >  
> >  dtb-$(CONFIG_ARCH_MX7ULP) += imx7ulp-evk.dtb
> >  
> > -dtb-$(CONFIG_ARCH_IMX8) += fsl-imx8qxp-mek.dtb
> > +dtb-$(CONFIG_ARCH_IMX8) += \
> > +	fsl-imx8qxp-colibri.dtb \
> > +	fsl-imx8qxp-mek.dtb
> >  
> >  dtb-$(CONFIG_ARCH_IMX8M) += fsl-imx8mq-evk.dtb
> >  
> > diff --git a/arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi
> > b/arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi
> > new file mode 100644
> > index 0000000000..f8686befdf
> > --- /dev/null
> > +++ b/arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi
> > @@ -0,0 +1,112 @@
> > +// SPDX-License-Identifier: GPL-2.0+ OR X11
> > +/*
> > + * Copyright 2019 Toradex AG
> > + */
> > +
> > +&mu {
> > +	u-boot,dm-spl;
> > +};
> > +
> > +&clk {
> > +	u-boot,dm-spl;
> > +};
> > +
> > +&iomuxc {
> > +	u-boot,dm-spl;
> > +};
> > +
> > +&pd_lsio {
> > +	u-boot,dm-spl;
> > +};
> > +
> > +&pd_lsio_gpio0 {
> > +	u-boot,dm-spl;
> > +};
> > +
> > +&pd_lsio_gpio1 {
> > +	u-boot,dm-spl;
> > +};
> > +
> > +&pd_lsio_gpio2 {
> > +	u-boot,dm-spl;
> > +};
> > +
> > +&pd_lsio_gpio3 {
> > +	u-boot,dm-spl;
> > +};
> > +
> > +&pd_lsio_gpio4 {
> > +	u-boot,dm-spl;
> > +};
> > +
> > +&pd_lsio_gpio5 {
> > +	u-boot,dm-spl;
> > +};
> > +
> > +&pd_lsio_gpio6 {
> > +	u-boot,dm-spl;
> > +};
> > +
> > +&pd_lsio_gpio7 {
> > +	u-boot,dm-spl;
> > +};
> > +
> > +&pd_conn {
> > +	u-boot,dm-spl;
> > +};
> > +
> > +&pd_conn_sdch0 {
> > +	u-boot,dm-spl;
> > +};
> > +
> > +&pd_conn_sdch1 {
> > +	u-boot,dm-spl;
> > +};
> > +
> > +&pd_conn_sdch2 {
> > +	u-boot,dm-spl;
> > +};
> > +
> > +&gpio0 {
> > +	u-boot,dm-spl;
> > +};
> > +
> > +&gpio1 {
> > +	u-boot,dm-spl;
> > +};
> > +
> > +&gpio2 {
> > +	u-boot,dm-spl;
> > +};
> > +
> > +&gpio3 {
> > +	u-boot,dm-spl;
> > +};
> > +
> > +&gpio4 {
> > +	u-boot,dm-spl;
> > +};
> > +
> > +&gpio5 {
> > +	u-boot,dm-spl;
> > +};
> > +
> > +&gpio6 {
> > +	u-boot,dm-spl;
> > +};
> > +
> > +&gpio7 {
> > +	u-boot,dm-spl;
> > +};
> > +
> > +&lpuart3 {
> > +	u-boot,dm-spl;
> > +};
> > +
> > +&usdhc1 {
> > +	u-boot,dm-spl;
> > +};
> > +
> > +&usdhc2 {
> > +	u-boot,dm-spl;
> > +};
> > diff --git a/arch/arm/dts/fsl-imx8qxp-colibri.dts
> > b/arch/arm/dts/fsl-imx8qxp-colibri.dts
> > new file mode 100644
> > index 0000000000..0c20edf2cf
> > --- /dev/null
> > +++ b/arch/arm/dts/fsl-imx8qxp-colibri.dts
> > @@ -0,0 +1,328 @@
> > +// SPDX-License-Identifier: GPL-2.0+ OR X11
> > +/*
> > + * Copyright 2019 Toradex AG
> > + */
> > +
> > +/dts-v1/;
> > +
> > +#include "fsl-imx8qxp.dtsi"
> > +#include "fsl-imx8qxp-colibri-u-boot.dtsi"
> > +
> > +/ {
> > +	model = "Toradex Colibri iMX8QXP";
> > +	compatible = "toradex,colibri-imx8qxp", "fsl,imx8qxp";
> > +
> > +	chosen {
> > +		bootargs = "console=ttyLP3,115200
> > earlycon=lpuart32,0x5a090000,115200";
> > +		stdout-path = &lpuart3;
> > +	};
> > +
> > +	reg_usbh_vbus: regulator-usbh-vbus {
> > +		compatible = "regulator-fixed";
> > +		pinctrl-names = "default";
> > +		pinctrl-0 = <&pinctrl_usbh1_reg>;
> > +		regulator-name = "usbh_vbus";
> > +		regulator-min-microvolt = <5000000>;
> > +		regulator-max-microvolt = <5000000>;
> > +		gpio = <&gpio4 3 GPIO_ACTIVE_LOW>;
> > +	};
> > +};
> > +
> > +&iomuxc {
> > +	pinctrl-names = "default";
> > +	pinctrl-0 = <&pinctrl_hog0>, <&pinctrl_hog1>, <&pinctrl_hog2>;
> > +
> > +	colibri-imx8qxp {
> > +		pinctrl_lpuart0: lpuart0grp {
> > +			fsl,pins = <
> > +				SC_P_UART0_RX_ADMA_UART0_RX	0x06000020
> > +				SC_P_UART0_TX_ADMA_UART0_TX	0x06000020
> > +			>;
> > +		};
> > +
> > +		pinctrl_lpuart3: lpuart3grp {
> > +			fsl,pins = <
> > +				SC_P_FLEXCAN2_RX_ADMA_UART3_RX	0x0
> > 6000020
> > +				SC_P_FLEXCAN2_TX_ADMA_UART3_TX	0x0
> > 6000020
> > +			>;
> > +		};
> > +
> > +		pinctrl_lpuart3_ctrl: lpuart3ctrlgrp {
> > +			fsl,pins = <
> > +				SC_P_MIPI_DSI1_GPIO0_01_LSIO_GPIO2_IO00
> > 0x00000020 /* DTR */
> > +				SC_P_SAI1_RXD_LSIO_GPIO0_IO29		
> > 0x00000020 /* CTS */
> > +				SC_P_SAI1_RXC_LSIO_GPIO0_IO30		
> > 0x00000020 /* RTS */
> > +				SC_P_CSI_RESET_LSIO_GPIO3_IO03		
> > 0x00000020 /* DSR */
> > +				SC_P_USDHC1_CD_B_LSIO_GPIO4_IO22	0x0
> > 0000020 /* DCD */
> > +				SC_P_CSI_EN_LSIO_GPIO3_IO02		0x0
> > 0000020 /* RI */
> > +			>;
> > +		};
> > +
> > +		pinctrl_fec1: fec1grp {
> > +			fsl,pins = <
> > +				SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENETB0_
> > PAD	0x000014a0 /* Use pads in 3.3V mode */
> > +				SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENETB1_
> > PAD	0x000014a0 /* Use pads in 3.3V mode */
> > +				SC_P_ENET0_MDC_CONN_ENET0_MDC		
> > 	0x06000020
> > +				SC_P_ENET0_MDIO_CONN_ENET0_MDIO		
> > 	0x06000020
> > +				SC_P_ENET0_RGMII_TX_CTL_CONN_ENET0_RGMI
> > I_TX_CTL	0x00000061
> > +				SC_P_ENET0_RGMII_TXC_CONN_ENET0_RCLK50M
> > _OUT	0x06000061
> > +				SC_P_ENET0_RGMII_TXD0_CONN_ENET0_RGMII_
> > TXD0	0x00000061
> > +				SC_P_ENET0_RGMII_TXD1_CONN_ENET0_RGMII_
> > TXD1	0x00000061
> > +				SC_P_ENET0_RGMII_RX_CTL_CONN_ENET0_RGMI
> > I_RX_CTL	0x00000061
> > +				SC_P_ENET0_RGMII_RXD0_CONN_ENET0_RGMII_
> > RXD0	0x00000061
> > +				SC_P_ENET0_RGMII_RXD1_CONN_ENET0_RGMII_
> > RXD1	0x00000061
> > +				SC_P_ENET0_RGMII_RXD2_CONN_ENET0_RMII_R
> > X_ER	0x00000061
> > +			>;
> > +		};
> > +
> > +		pinctrl_gpio_bl_on: gpio-bl-on {
> > +			fsl,pins = <
> > +				SC_P_QSPI0A_DATA3_LSIO_GPIO3_IO12	0x0
> > 0000040
> > +			>;
> > +		};
> > +
> > +		pinctrl_hog0: hog0grp {
> > +			fsl,pins = <
> > +				SC_P_COMP_CTL_GPIO_1V8_3V3_GPIORHB_PAD	
> > 0x000514a0 /* Use pads in 3.3V mode */
> > +			>;
> > +		};
> > +
> > +		pinctrl_hog1: hog1grp {
> > +			fsl,pins = <
> > +				SC_P_QSPI0A_DATA1_LSIO_GPIO3_IO10	0x0
> > 0000020 /*  45 */
> > +				SC_P_ENET0_RGMII_TXD3_LSIO_GPIO5_IO02	
> > 0x06000020 /*  65 */
> > +					SC_P_CSI_D07_CI_PI_D09		
> > 0x00000061
> > +				SC_P_QSPI0A_DATA2_LSIO_GPIO3_IO11	0x0
> > 0000020 /*  69 */
> > +				SC_P_QSPI0A_DQS_LSIO_GPIO3_IO13		
> > 0x00000020 /*  73 */
> > +				SC_P_SAI0_TXC_LSIO_GPIO0_IO26		
> > 0x00000020 /*  79 */
> > +					SC_P_CSI_D02_CI_PI_D04		
> > 0x00000061
> > +				SC_P_ENET0_RGMII_RXC_LSIO_GPIO5_IO03	
> > 0x06000020 /*  85 */
> > +					SC_P_CSI_D06_CI_PI_D08		
> > 0x00000061
> > +				SC_P_QSPI0B_SCLK_LSIO_GPIO3_IO17	0x0
> > 0000020 /*  95 */
> > +				SC_P_SAI0_RXD_LSIO_GPIO0_IO27		
> > 0x00000020 /*  97 */
> > +					SC_P_CSI_D03_CI_PI_D05		
> > 0x00000061
> > +				SC_P_QSPI0B_DATA0_LSIO_GPIO3_IO18	0x0
> > 0000020 /*  99 */
> > +				SC_P_SAI0_TXFS_LSIO_GPIO0_IO28		
> > 0x00000020 /* 101 */
> > +					SC_P_CSI_D00_CI_PI_D02		
> > 0x00000061
> > +				SC_P_SAI0_TXD_LSIO_GPIO0_IO25		
> > 0x00000020 /* 103 */
> > +					SC_P_CSI_D01_CI_PI_D03		
> > 0x00000061
> > +				SC_P_QSPI0B_DATA1_LSIO_GPIO3_IO19	0x0
> > 0000020 /* 105 */
> > +				SC_P_QSPI0B_DATA2_LSIO_GPIO3_IO20	0x0
> > 0000020 /* 107 */
> > +				SC_P_USB_SS3_TC2_LSIO_GPIO4_IO05	0x0
> > 0000020 /* 127 */
> > +				SC_P_USB_SS3_TC3_LSIO_GPIO4_IO06	0x0
> > 0000020 /* 131 */
> > +				SC_P_USB_SS3_TC1_LSIO_GPIO4_IO04	0x0
> > 0000020 /* 133 */
> > +				SC_P_CSI_PCLK_LSIO_GPIO3_IO00		
> > 0x00000020 /*  96 */
> > +				SC_P_QSPI0B_DATA3_LSIO_GPIO3_IO21	0x0
> > 0000020 /*  98 */
> > +				SC_P_SAI1_RXFS_LSIO_GPIO0_IO31		
> > 0x00000020 /* 100 */
> > +				SC_P_QSPI0B_DQS_LSIO_GPIO3_IO22		
> > 0x00000020 /* 102 */
> > +				SC_P_QSPI0B_SS0_B_LSIO_GPIO3_IO23	0x0
> > 0000020 /* 104 */
> > +				SC_P_QSPI0B_SS1_B_LSIO_GPIO3_IO24	0x0
> > 0000020 /* 106 */
> > +			>;
> > +		};
> > +
> > +		pinctrl_hog2: hog2grp {
> > +			fsl,pins = <
> > +				SC_P_CSI_MCLK_LSIO_GPIO3_IO01		
> > 0x00000020 /*  75 */
> > +				SC_P_QSPI0A_SS0_B_LSIO_GPIO3_IO14	0x0
> > 0000020 /*  77 */
> > +				SC_P_QSPI0A_SS1_B_LSIO_GPIO3_IO15	0x0
> > 0000020 /*  89 */
> > +				SC_P_QSPI0A_SCLK_LSIO_GPIO3_IO16	0x0
> > 0000020 /*  93 */
> > +			>;
> > +		};
> > +
> > +		/* Off Module I2C */
> > +		pinctrl_i2c1: i2c1grp {
> > +			fsl,pins = <
> > +				SC_P_MIPI_DSI0_GPIO0_00_ADMA_I2C1_SCL	
> > 0x06000021
> > +				SC_P_MIPI_DSI0_GPIO0_01_ADMA_I2C1_SDA	
> > 0x06000021
> > +			>;
> > +		};
> > +
> > +		/*INT*/
> > +		pinctrl_usb3503a: usb3503a-grp {
> > +			fsl,pins = <
> > +				SC_P_MIPI_CSI0_MCLK_OUT_LSIO_GPIO3_IO04
> > 0x00000061
> > +			>;
> > +		};
> > +
> > +		pinctrl_usbc_det: usbc-det {
> > +			fsl,pins = <
> > +				SC_P_ENET0_REFCLK_125M_25M_LSIO_GPIO5_I
> > O09	0x06000040
> > +			>;
> > +		};
> > +
> > +		pinctrl_usbh1_reg: usbh1-reg {
> > +			fsl,pins = <
> > +				SC_P_USB_SS3_TC0_LSIO_GPIO4_IO03	0x0
> > 6000040
> > +			>;
> > +		};
> > +
> > +		pinctrl_usdhc1: usdhc1grp {
> > +			fsl,pins = <
> > +				SC_P_EMMC0_CLK_CONN_EMMC0_CLK		
> > 0x06000041
> > +				SC_P_EMMC0_CMD_CONN_EMMC0_CMD		
> > 0x00000021
> > +				SC_P_EMMC0_DATA0_CONN_EMMC0_DATA0	0x0
> > 0000021
> > +				SC_P_EMMC0_DATA1_CONN_EMMC0_DATA1	0x0
> > 0000021
> > +				SC_P_EMMC0_DATA2_CONN_EMMC0_DATA2	0x0
> > 0000021
> > +				SC_P_EMMC0_DATA3_CONN_EMMC0_DATA3	0x0
> > 0000021
> > +				SC_P_EMMC0_DATA4_CONN_EMMC0_DATA4	0x0
> > 0000021
> > +				SC_P_EMMC0_DATA5_CONN_EMMC0_DATA5	0x0
> > 0000021
> > +				SC_P_EMMC0_DATA6_CONN_EMMC0_DATA6	0x0
> > 0000021
> > +				SC_P_EMMC0_DATA7_CONN_EMMC0_DATA7	0x0
> > 0000021
> > +				SC_P_EMMC0_STROBE_CONN_EMMC0_STROBE	0x0
> > 0000041
> > +				SC_P_EMMC0_RESET_B_CONN_EMMC0_RESET_B	
> > 0x00000021
> > +			>;
> > +		};
> > +
> > +		pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
> > +			fsl,pins = <
> > +				SC_P_EMMC0_CLK_CONN_EMMC0_CLK		
> > 0x06000041
> > +				SC_P_EMMC0_CMD_CONN_EMMC0_CMD		
> > 0x00000021
> > +				SC_P_EMMC0_DATA0_CONN_EMMC0_DATA0	0x0
> > 0000021
> > +				SC_P_EMMC0_DATA1_CONN_EMMC0_DATA1	0x0
> > 0000021
> > +				SC_P_EMMC0_DATA2_CONN_EMMC0_DATA2	0x0
> > 0000021
> > +				SC_P_EMMC0_DATA3_CONN_EMMC0_DATA3	0x0
> > 0000021
> > +				SC_P_EMMC0_DATA4_CONN_EMMC0_DATA4	0x0
> > 0000021
> > +				SC_P_EMMC0_DATA5_CONN_EMMC0_DATA5	0x0
> > 0000021
> > +				SC_P_EMMC0_DATA6_CONN_EMMC0_DATA6	0x0
> > 0000021
> > +				SC_P_EMMC0_DATA7_CONN_EMMC0_DATA7	0x0
> > 0000021
> > +				SC_P_EMMC0_STROBE_CONN_EMMC0_STROBE	0x0
> > 0000041
> > +				SC_P_EMMC0_RESET_B_CONN_EMMC0_RESET_B	
> > 0x00000021
> > +			>;
> > +		};
> > +
> > +		pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
> > +			fsl,pins = <
> > +				SC_P_EMMC0_CLK_CONN_EMMC0_CLK		
> > 0x06000041
> > +				SC_P_EMMC0_CMD_CONN_EMMC0_CMD		
> > 0x00000021
> > +				SC_P_EMMC0_DATA0_CONN_EMMC0_DATA0	0x0
> > 0000021
> > +				SC_P_EMMC0_DATA1_CONN_EMMC0_DATA1	0x0
> > 0000021
> > +				SC_P_EMMC0_DATA2_CONN_EMMC0_DATA2	0x0
> > 0000021
> > +				SC_P_EMMC0_DATA3_CONN_EMMC0_DATA3	0x0
> > 0000021
> > +				SC_P_EMMC0_DATA4_CONN_EMMC0_DATA4	0x0
> > 0000021
> > +				SC_P_EMMC0_DATA5_CONN_EMMC0_DATA5	0x0
> > 0000021
> > +				SC_P_EMMC0_DATA6_CONN_EMMC0_DATA6	0x0
> > 0000021
> > +				SC_P_EMMC0_DATA7_CONN_EMMC0_DATA7	0x0
> > 0000021
> > +				SC_P_EMMC0_STROBE_CONN_EMMC0_STROBE	0x0
> > 0000041
> > +				SC_P_EMMC0_RESET_B_CONN_EMMC0_RESET_B	
> > 0x00000021
> > +			>;
> > +		};
> > +
> > +		pinctrl_usdhc2_gpio: usdhc2gpiogrp {
> > +			fsl,pins = <
> > +				SC_P_QSPI0A_DATA0_LSIO_GPIO3_IO09	0x0
> > 6000021
> > +			>;
> > +		};
> > +
> > +		pinctrl_usdhc2: usdhc2grp {
> > +			fsl,pins = <
> > +				SC_P_USDHC1_CLK_CONN_USDHC1_CLK		
> > 0x06000041
> > +				SC_P_USDHC1_CMD_CONN_USDHC1_CMD		
> > 0x00000021
> > +				SC_P_USDHC1_DATA0_CONN_USDHC1_DATA0	0x0
> > 0000021
> > +				SC_P_USDHC1_DATA1_CONN_USDHC1_DATA1	0x0
> > 0000021
> > +				SC_P_USDHC1_DATA2_CONN_USDHC1_DATA2	0x0
> > 0000021
> > +				SC_P_USDHC1_DATA3_CONN_USDHC1_DATA3	0x0
> > 0000021
> > +				SC_P_USDHC1_VSELECT_CONN_USDHC1_VSELECT
> > 	0x00000021
> > +			>;
> > +		};
> > +
> > +		pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
> > +			fsl,pins = <
> > +				SC_P_USDHC1_CLK_CONN_USDHC1_CLK		
> > 0x06000041
> > +				SC_P_USDHC1_CMD_CONN_USDHC1_CMD		
> > 0x00000021
> > +				SC_P_USDHC1_DATA0_CONN_USDHC1_DATA0	0x0
> > 0000021
> > +				SC_P_USDHC1_DATA1_CONN_USDHC1_DATA1	0x0
> > 0000021
> > +				SC_P_USDHC1_DATA2_CONN_USDHC1_DATA2	0x0
> > 0000021
> > +				SC_P_USDHC1_DATA3_CONN_USDHC1_DATA3	0x0
> > 0000021
> > +				SC_P_USDHC1_VSELECT_CONN_USDHC1_VSELECT
> > 	0x00000021
> > +			>;
> > +		};
> > +
> > +		pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
> > +			fsl,pins = <
> > +				SC_P_USDHC1_CLK_CONN_USDHC1_CLK		
> > 0x06000041
> > +				SC_P_USDHC1_CMD_CONN_USDHC1_CMD		
> > 0x00000021
> > +				SC_P_USDHC1_DATA0_CONN_USDHC1_DATA0	0x0
> > 0000021
> > +				SC_P_USDHC1_DATA1_CONN_USDHC1_DATA1	0x0
> > 0000021
> > +				SC_P_USDHC1_DATA2_CONN_USDHC1_DATA2	0x0
> > 0000021
> > +				SC_P_USDHC1_DATA3_CONN_USDHC1_DATA3	0x0
> > 0000021
> > +				SC_P_USDHC1_VSELECT_CONN_USDHC1_VSELECT
> > 	0x00000021
> > +			>;
> > +		};
> > +	};
> > +};
> > +
> > +&lpuart0 {
> > +	pinctrl-names = "default";
> > +	pinctrl-0 = <&pinctrl_lpuart0>;
> > +	status = "okay";
> > +};
> > +
> > +&lpuart3 {
> > +	pinctrl-names = "default";
> > +	pinctrl-0 = <&pinctrl_lpuart3>, <&pinctrl_lpuart3_ctrl>;
> > +	status = "okay";
> > +};
> > +
> > +&gpio0 {
> > +	status = "okay";
> > +};
> > +
> > +&gpio1 {
> > +	status = "okay";
> > +};
> > +
> > +&gpio3 {
> > +	status = "okay";
> > +};
> > +
> > +&gpio4 {
> > +	status = "okay";
> > +};
> > +
> > +&fec1 {
> > +	phy-handle = <&ethphy0>;
> > +	phy-mode = "rmii";
> > +	pinctrl-names = "default";
> > +	pinctrl-0 = <&pinctrl_fec1>;
> > +	status = "okay";
> > +
> > +	mdio {
> > +		#address-cells = <1>;
> > +		#size-cells = <0>;
> > +
> > +		ethphy0: ethernet-phy at 2 {
> > +			compatible = "ethernet-phy-ieee802.3-c22";
> > +			max-speed = <100>;
> > +			reg = <2>;
> > +		};
> > +	};
> > +};
> > +
> > +&i2c1 {
> > +	#address-cells = <1>;
> > +	#size-cells = <0>;
> > +	clock-frequency = <100000>;
> > +	pinctrl-names = "default";
> > +	pinctrl-0 = <&pinctrl_i2c1>;
> > +	status = "okay";
> > +};
> > +
> > +&usdhc1 {
> > +	bus-width = <8>;
> > +	non-removable;
> > +	pinctrl-names = "default", "state_100mhz", "state_200mhz";
> > +	pinctrl-0 = <&pinctrl_usdhc1>;
> > +	pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
> > +	pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
> > +	status = "okay";
> > +};
> > +
> > +&usdhc2 {
> > +	bus-width = <4>;
> > +	cd-gpios = <&gpio3 9 GPIO_ACTIVE_LOW>;
> > +	pinctrl-names = "default", "state_100mhz", "state_200mhz";
> > +	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
> > +	pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
> > +	pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
> > +	status = "okay";
> > +};
> > diff --git a/arch/arm/mach-imx/imx8/Kconfig b/arch/arm/mach-
> > imx/imx8/Kconfig
> > index f76a139684..feea07f135 100644
> > --- a/arch/arm/mach-imx/imx8/Kconfig
> > +++ b/arch/arm/mach-imx/imx8/Kconfig
> > @@ -22,6 +22,11 @@ choice
> >  	prompt "i.MX8 board select"
> >  	optional
> >  
> > +config TARGET_COLIBRI_IMX8QXP
> > +	bool "Support Colibri iMX8QXP module"
> > +	select BOARD_LATE_INIT
> > +	select IMX8QXP
> > +
> >  config TARGET_IMX8QXP_MEK
> >  	bool "Support i.MX8QXP MEK board"
> >  	select BOARD_LATE_INIT
> > @@ -30,5 +35,6 @@ config TARGET_IMX8QXP_MEK
> >  endchoice
> >  
> >  source "board/freescale/imx8qxp_mek/Kconfig"
> > +source "board/toradex/colibri-imx8qxp/Kconfig"
> >  
> >  endif
> > diff --git a/board/toradex/colibri-imx8qxp/Kconfig
> > b/board/toradex/colibri-imx8qxp/Kconfig
> > new file mode 100644
> > index 0000000000..340fe72816
> > --- /dev/null
> > +++ b/board/toradex/colibri-imx8qxp/Kconfig
> > @@ -0,0 +1,30 @@
> > +if TARGET_COLIBRI_IMX8QXP
> > +
> > +config SYS_BOARD
> > +	default "colibri-imx8qxp"
> > +
> > +config SYS_VENDOR
> > +	default "toradex"
> > +
> > +config SYS_CONFIG_NAME
> > +	default "colibri-imx8qxp"
> > +
> > +config TDX_CFG_BLOCK
> > +	default y
> > +
> > +config TDX_HAVE_MMC
> > +	default y
> > +
> > +config TDX_CFG_BLOCK_DEV
> > +	default "0"
> > +
> > +config TDX_CFG_BLOCK_PART
> > +	default "1"
> > +
> > +# Toradex config block in eMMC, at the end of 1st "boot sector"
> > +config TDX_CFG_BLOCK_OFFSET
> > +	default "-512"
> > +
> > +source "board/toradex/common/Kconfig"
> > +
> > +endif
> > diff --git a/board/toradex/colibri-imx8qxp/MAINTAINERS
> > b/board/toradex/colibri-imx8qxp/MAINTAINERS
> > new file mode 100644
> > index 0000000000..39a9eb79b7
> > --- /dev/null
> > +++ b/board/toradex/colibri-imx8qxp/MAINTAINERS
> > @@ -0,0 +1,9 @@
> > +Colibri iMX8QXP
> > +M:	Marcel Ziswiler <marcel.ziswiler@toradex.com>
> > +W:	http://developer.toradex.com/software/linux/linux-software
> > +S:	Maintained
> > +F:	arch/arm/dts/fsl-imx8qxp-colibri.dts
> > +F:	arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi
> > +F:	board/toradex/colibri-imx8qxp/
> > +F:	configs/colibri-imx8qxp_defconfig
> > +F:	include/configs/colibri-imx8qxp.h
> > diff --git a/board/toradex/colibri-imx8qxp/Makefile
> > b/board/toradex/colibri-imx8qxp/Makefile
> > new file mode 100644
> > index 0000000000..f6342e1dca
> > --- /dev/null
> > +++ b/board/toradex/colibri-imx8qxp/Makefile
> > @@ -0,0 +1,7 @@
> > +#
> > +# Copyright 2019 Toradex
> > +#
> > +# SPDX-License-Identifier:	GPL-2.0+
> > +#
> > +
> > +obj-y += colibri-imx8qxp.o
> > diff --git a/board/toradex/colibri-imx8qxp/README
> > b/board/toradex/colibri-imx8qxp/README
> > new file mode 100644
> > index 0000000000..e68d183fe6
> > --- /dev/null
> > +++ b/board/toradex/colibri-imx8qxp/README
> > @@ -0,0 +1,66 @@
> > +U-Boot for the Toradex Colibri iMX8QXP V1.0B module
> > +
> > +Quick Start
> > +===========
> > +
> > +- Build the ARM trusted firmware binary
> > +- Get scfw_tcm.bin and ahab-container.img
> > +- Build U-Boot
> > +- Load U-Boot binary using uuu
> > +- Flash U-Boot binary into the eMMC
> > +- Boot
> > +
> > +Get and Build the ARM Trusted Firmware
> > +======================================
> > +
> > +$ git clone -b imx_4.14.78_1.0.0_ga 
> > https://source.codeaurora.org/external/imx/imx-atf
> > +$ cd imx-atf/
> > +$ make PLAT=imx8qxp bl31
> > +
> > +Get scfw_tcm.bin and ahab-container.img
> > +=======================================
> > +
> > +$ wget 
> > https://github.com/toradex/meta-fsl-bsp-release/blob/toradex-sumo-4.14.78-1.0.0_ga-bringup/imx/meta-bsp/recipes-bsp/imx-sc-firmware/files/mx8qx-colibri-scfw-tcm.bin?raw=true
> > +$ mv mx8qx-colibri-scfw-tcm.bin\?raw\=true mx8qx-colibri-scfw-
> > tcm.bin
> > +$ wget 
> > https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-7.6.bin
> > +$ chmod +x firmware-imx-7.6.bin
> > +$ ./firmware-imx-7.6.bin
> > +
> > +Copy the following binaries to the U-Boot folder:
> > +
> > +$ cp imx-atf/build/imx8qxp/release/bl31.bin .
> > +$ cp u-boot/u-boot.bin .
> > +
> > +Copy the following firmware to the U-Boot folder:
> > +
> > +$ cp firmware-imx-7.6/firmware/seco/ahab-container.img .
> > +
> > +Build U-Boot
> > +============
> > +
> > +$ make colibri-imx8qxp_defconfig
> > +$ make u-boot-dtb.imx
> > +
> > +Load the U-Boot Binary Using UUU
> > +================================
> > +
> > +Get the latest version of the universal update utility (uuu) aka
> > mfgtools 3.0:
> > +
> > +
> > https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fgithub.com%2FNXPmicro%2Fmfgtools%2Freleases
> > +
> > +Put the module into USB recovery aka serial downloader mode,
> > connect USB device
> > +to your host and execute uuu:
> > +
> > +sudo ./uuu u-boot/u-boot-dtb.imx
> > +
> > +Flash the U-Boot Binary into the eMMC
> > +=====================================
> > +
> > +Burn the u-boot-dtb.imx binary to the primary eMMC hardware boot
> > area partition:
> > +
> > +load mmc 1:1 $loadaddr u-boot-dtb.imx
> > +setexpr blkcnt ${filesize} + 0x1ff && setexpr blkcnt ${blkcnt} /
> > 0x200
> > +mmc dev 0 1
> > +mmc write ${loadaddr} 0x0 ${blkcnt}
> > +
> > +Boot
> > diff --git a/board/toradex/colibri-imx8qxp/colibri-imx8qxp.c
> > b/board/toradex/colibri-imx8qxp/colibri-imx8qxp.c
> > new file mode 100644
> > index 0000000000..9aa0f096d2
> > --- /dev/null
> > +++ b/board/toradex/colibri-imx8qxp/colibri-imx8qxp.c
> > @@ -0,0 +1,212 @@
> > +// SPDX-License-Identifier: GPL-2.0+
> > +/*
> > + * Copyright 2019 Toradex
> > + */
> > +
> > +#include <common.h>
> > +
> > +#include <asm/arch/clock.h>
> > +#include <asm/arch/imx8-pins.h>
> > +#include <asm/arch/iomux.h>
> > +#include <asm/arch/sci/sci.h>
> > +#include <asm/arch/sys_proto.h>
> > +#include <asm/gpio.h>
> > +#include <asm/io.h>
> > +#include <asm/mach-imx/video.h>
> > +#include <dm.h>
> > +#include <environment.h>
> > +#include <errno.h>
> > +#include <fdt_support.h>
> > +#include <fsl_esdhc.h>
> > +#include <fsl_ifc.h>
> > +#include <i2c.h>
> > +#include <linux/libfdt.h>
> > +#include <malloc.h>
> > +#include <netdev.h>
> > +#include <power-domain.h>
> > +#include <usb.h>
> > +
> > +#include "../common/tdx-cfg-block.h"
> > +
> > +DECLARE_GLOBAL_DATA_PTR;
> > +
> > +#define GPIO_PAD_CTRL	((SC_PAD_CONFIG_NORMAL <<
> > PADRING_CONFIG_SHIFT) | \
> > +			 (SC_PAD_ISO_OFF << PADRING_LPCONFIG_SHIFT) | \
> > +			 (SC_PAD_28FDSOI_DSE_DV_HIGH <<
> > PADRING_DSE_SHIFT) | \
> > +			 (SC_PAD_28FDSOI_PS_PU << PADRING_PULL_SHIFT))
> > +
> > +#define UART_PAD_CTRL	((SC_PAD_CONFIG_OUT_IN <<
> > PADRING_CONFIG_SHIFT) | \
> > +			 (SC_PAD_ISO_OFF << PADRING_LPCONFIG_SHIFT) | \
> > +			 (SC_PAD_28FDSOI_DSE_DV_HIGH <<
> > PADRING_DSE_SHIFT) | \
> > +			 (SC_PAD_28FDSOI_PS_PU << PADRING_PULL_SHIFT))
> > +
> > +static iomux_cfg_t uart3_pads[] = {
> > +	SC_P_FLEXCAN2_RX | MUX_MODE_ALT(2) |
> > MUX_PAD_CTRL(UART_PAD_CTRL),
> > +	SC_P_FLEXCAN2_TX | MUX_MODE_ALT(2) |
> > MUX_PAD_CTRL(UART_PAD_CTRL),
> > +	/* Transceiver FORCEOFF# signal, mux to use pullup */
> > +	SC_P_QSPI0B_DQS | MUX_MODE_ALT(4) |
> > MUX_PAD_CTRL(UART_PAD_CTRL),
> > +};
> > +
> > +static void setup_iomux_uart(void)
> > +{
> > +	imx8_iomux_setup_multiple_pads(uart3_pads,
> > ARRAY_SIZE(uart3_pads));
> > +}
> > +
> > +int board_early_init_f(void)
> > +{
> > +	sc_pm_clock_rate_t rate;
> > +	sc_err_t err = 0;
> > +
> > +	/*
> > +	 * This works around that having only UART3 up the baudrate is
> > 1.2M
> > +	 * instead of 115.2k. Set UART0 clock root to 80 MHz
> > +	 */
> > +	rate = 80000000;
> > +	err = sc_pm_set_clock_rate(-1, SC_R_UART_0, SC_PM_CLK_PER,
> > &rate);
> > +	if (err != SC_ERR_NONE)
> > +		return 0;
> > +
> > +	/* Power up UART3 */
> > +	err = sc_pm_set_resource_power_mode(-1, SC_R_UART_3,
> > SC_PM_PW_MODE_ON);
> > +	if (err != SC_ERR_NONE)
> > +		return 0;
> > +
> > +	/* Set UART3 clock root to 80 MHz */
> > +	rate = 80000000;
> > +	err = sc_pm_set_clock_rate(-1, SC_R_UART_3, SC_PM_CLK_PER,
> > &rate);
> > +	if (err != SC_ERR_NONE)
> > +		return 0;
> > +
> > +	/* Enable UART3 clock root */
> > +	err = sc_pm_clock_enable(-1, SC_R_UART_3, SC_PM_CLK_PER, true,
> > false);
> > +	if (err != SC_ERR_NONE)
> > +		return 0;
> > +
> > +	setup_iomux_uart();
> > +
> > +	return 0;
> > +}
> > +
> > +#undef CONFIG_MXC_GPIO /* TODO */
> > +#ifdef CONFIG_MXC_GPIO
> > +#define IOEXP_RESET IMX_GPIO_NR(1, 1)
> > +
> > +static iomux_cfg_t board_gpios[] = {
> > +	SC_P_SPI2_SDO | MUX_MODE_ALT(4) | MUX_PAD_CTRL(GPIO_PAD_CTRL),
> > +	SC_P_ENET0_REFCLK_125M_25M | MUX_MODE_ALT(4) | \
> > +		MUX_PAD_CTRL(GPIO_PAD_CTRL),
> > +};
> > +
> > +static void board_gpio_init(void)
> > +{
> > +	struct gpio_desc desc;
> > +	int ret;
> > +
> > +	ret = dm_gpio_lookup_name("gpio at 1a_3", &desc);
> > +	if (ret)
> > +		return;
> > +
> > +	ret = dm_gpio_request(&desc, "bb_per_rst_b");
> > +	if (ret)
> > +		return;
> > +
> > +	dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT);
> > +	dm_gpio_set_value(&desc, 0);
> > +	udelay(50);
> > +	dm_gpio_set_value(&desc, 1);
> > +
> > +	imx8_iomux_setup_multiple_pads(board_gpios,
> > ARRAY_SIZE(board_gpios));
> > +
> > +	/* enable i2c port expander assert reset line */
> > +	gpio_request(IOEXP_RESET, "ioexp_rst");
> > +	gpio_direction_output(IOEXP_RESET, 1);
> > +}
> > +#else
> > +static inline void board_gpio_init(void) {}
> > +#endif
> > +
> > +#if IS_ENABLED(CONFIG_FEC_MXC)
> > +#include <miiphy.h>
> > +
> > +int board_phy_config(struct phy_device *phydev)
> > +{
> > +	phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x1f);
> > +	phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x8);
> > +
> > +	phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x00);
> > +	phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x82ee);
> > +	phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x05);
> > +	phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x100);
> > +
> > +	if (phydev->drv->config)
> > +		phydev->drv->config(phydev);
> > +
> > +	return 0;
> > +}
> > +#endif
> > +
> > +void build_info(void)
> > +{
> > +	u32 sc_build = 0, sc_commit = 0;
> > +
> > +	/* Get SCFW build and commit id */
> > +	sc_misc_build_info(-1, &sc_build, &sc_commit);
> > +	if (!sc_build) {
> > +		printf("SCFW does not support build info\n");
> > +		sc_commit = 0; /* Display 0 if build info not supported
> > */
> > +	}
> > +	printf("Build: SCFW %x\n", sc_commit);
> > +}
> > +
> > +int checkboard(void)
> > +{
> > +	puts("Model: Toradex Colibri iMX8X\n");
> > +
> > +	build_info();
> > +	print_bootinfo();
> > +
> > +	return 0;
> > +}
> > +
> > +int board_init(void)
> > +{
> > +	board_gpio_init();
> > +
> > +	return 0;
> > +}
> > +
> > +void detail_board_ddr_info(void)
> > +{
> > +	puts("\nDDR    ");
> > +}
> > +
> > +/*
> > + * Board specific reset that is system reset.
> > + */
> > +void reset_cpu(ulong addr)
> > +{
> > +	/* TODO */
> > +}
> > +
> > +#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
> > +int ft_board_setup(void *blob, bd_t *bd)
> > +{
> > +	return ft_common_board_setup(blob, bd);
> > +}
> > +#endif
> > +
> > +int board_mmc_get_env_dev(int devno)
> > +{
> > +	return devno;
> > +}
> > +
> > +int board_late_init(void)
> > +{
> > +#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
> > +/* TODO move to common */
> > +	env_set("board_name", "Colibri iMX8QXP");
> > +	env_set("board_rev", "v1.0");
> > +#endif
> > +
> > +	return 0;
> > +}
> > diff --git a/board/toradex/colibri-imx8qxp/imximage.cfg
> > b/board/toradex/colibri-imx8qxp/imximage.cfg
> > new file mode 100644
> > index 0000000000..ce9e66c64d
> > --- /dev/null
> > +++ b/board/toradex/colibri-imx8qxp/imximage.cfg
> > @@ -0,0 +1,24 @@
> > +/* SPDX-License-Identifier: GPL-2.0+ */
> > +/*
> > + * Copyright 2019 Toradex
> > + *
> > + * Refer doc/README.imx8image for more details about how-to
> > configure
> > + * and create imx8image boot image
> > + */
> > +
> > +#define __ASSEMBLY__
> > +
> > +/* Boot from SD, sector size 0x400 */
> > +BOOT_FROM EMMC_FASTBOOT 0x400
> > +/* SoC type IMX8QX */
> > +SOC_TYPE IMX8QX
> > +/* Append seco container image */
> > +APPEND ahab-container.img
> > +/* Create the 2nd container */
> > +CONTAINER
> > +/* Add scfw image with exec attribute */
> > +IMAGE SCU mx8qx-colibri-scfw-tcm.bin
> > +/* Add ATF image with exec attribute */
> > +IMAGE A35 bl31.bin 0x80000000
> > +/* Add U-Boot image with load attribute */
> > +DATA A35 u-boot-dtb.bin 0x80020000
> > diff --git a/configs/colibri-imx8qxp_defconfig b/configs/colibri-
> > imx8qxp_defconfig
> > new file mode 100644
> > index 0000000000..d697546ed7
> > --- /dev/null
> > +++ b/configs/colibri-imx8qxp_defconfig
> > @@ -0,0 +1,53 @@
> > +CONFIG_ARM=y
> > +CONFIG_ARCH_IMX8=y
> > +CONFIG_SYS_TEXT_BASE=0x80020000
> > +CONFIG_SYS_MALLOC_F_LEN=0x2000
> > +CONFIG_TARGET_COLIBRI_IMX8QXP=y
> > +CONFIG_DISTRO_DEFAULTS=y
> > +CONFIG_NR_DRAM_BANKS=3
> > +CONFIG_FIT=y
> > +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/colibri-
> > imx8qxp/imximage.cfg"
> > +CONFIG_LOG=y
> > +CONFIG_VERSION_VARIABLE=y
> > +# CONFIG_DISPLAY_BOARDINFO is not set
> > +CONFIG_BOARD_EARLY_INIT_F=y
> > +CONFIG_CMD_CPU=y
> > +# CONFIG_CMD_IMPORTENV is not set
> > +CONFIG_CMD_MEMTEST=y
> > +CONFIG_CMD_CLK=y
> > +CONFIG_CMD_DM=y
> > +CONFIG_CMD_GPIO=y
> > +CONFIG_CMD_I2C=y
> > +CONFIG_CMD_MMC=y
> > +CONFIG_CMD_CACHE=y
> > +CONFIG_CMD_UUID=y
> > +CONFIG_CMD_EXT4_WRITE=y
> > +CONFIG_DEFAULT_DEVICE_TREE="fsl-imx8qxp-colibri"
> > +CONFIG_ENV_IS_IN_MMC=y
> > +CONFIG_CLK_IMX8=y
> > +CONFIG_CPU=y
> > +CONFIG_DM_GPIO=y
> > +CONFIG_MXC_GPIO=y
> > +CONFIG_DM_I2C=y
> > +CONFIG_SYS_I2C_IMX_LPI2C=y
> > +CONFIG_MISC=y
> > +CONFIG_DM_MMC=y
> > +CONFIG_PHYLIB=y
> > +CONFIG_PHY_ADDR_ENABLE=y
> > +CONFIG_PHY_MICREL=y
> > +CONFIG_DM_ETH=y
> > +CONFIG_FEC_MXC_SHARE_MDIO=y
> > +CONFIG_FEC_MXC_MDIO_BASE=0x5B040000
> > +CONFIG_FEC_MXC=y
> > +CONFIG_MII=y
> > +CONFIG_PINCTRL=y
> > +CONFIG_PINCTRL_IMX8=y
> > +CONFIG_POWER_DOMAIN=y
> > +CONFIG_IMX8_POWER_DOMAIN=y
> > +CONFIG_DM_REGULATOR=y
> > +CONFIG_DM_REGULATOR_FIXED=y
> > +CONFIG_DM_REGULATOR_GPIO=y
> > +CONFIG_DM_SERIAL=y
> > +CONFIG_FSL_LPUART=y
> > +CONFIG_DM_THERMAL=y
> > +# CONFIG_EFI_LOADER is not set
> > diff --git a/include/configs/colibri-imx8qxp.h
> > b/include/configs/colibri-imx8qxp.h
> > new file mode 100644
> > index 0000000000..33cbcb44a9
> > --- /dev/null
> > +++ b/include/configs/colibri-imx8qxp.h
> > @@ -0,0 +1,214 @@
> > +/* SPDX-License-Identifier: GPL-2.0+ */
> > +/*
> > + * Copyright 2019 Toradex
> > + */
> > +
> > +#ifndef __COLIBRI_IMX8QXP_H
> > +#define __COLIBRI_IMX8QXP_H
> > +
> > +#include <asm/arch/imx-regs.h>
> > +#include <linux/sizes.h>
> > +
> > +#define CONFIG_REMAKE_ELF
> > +
> > +#define CONFIG_DISPLAY_BOARDINFO_LATE
> > +
> > +#undef CONFIG_CMD_EXPORTENV
> > +#undef CONFIG_CMD_IMPORTENV
> > +#undef CONFIG_CMD_IMLS
> > +
> > +#undef CONFIG_CMD_CRC32
> > +#undef CONFIG_BOOTM_NETBSD
> > +
> > +#define CONFIG_FSL_ESDHC
> > +#define CONFIG_FSL_USDHC
> > +#define CONFIG_SYS_FSL_ESDHC_ADDR	0
> > +#define USDHC1_BASE_ADDR		0x5B010000
> > +#define USDHC2_BASE_ADDR		0x5B020000
> > +#define CONFIG_SUPPORT_EMMC_BOOT	/* eMMC specific */
> > +
> > +#define CONFIG_ENV_OVERWRITE
> > +
> > +#define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
> > +
> > +#define FEC_QUIRK_ENET_MAC
> > +
> > +#define CONFIG_IP_DEFRAG
> > +#define CONFIG_TFTP_BLOCKSIZE		4096
> > +#define CONFIG_TFTP_TSIZE
> > +
> > +#define CONFIG_IPADDR			192.168.10.2
> > +#define CONFIG_NETMASK			255.255.255.0
> > +#define CONFIG_SERVERIP			192.168.10.1
> > +
> > +#define MEM_LAYOUT_ENV_SETTINGS \
> > +	"fdt_addr_r=0x84000000\0" \
> > +	"kernel_addr_r=0x82000000\0" \
> > +	"ramdisk_addr_r=0x84100000\0"
> > +
> > +#ifdef CONFIG_AHAB_BOOT
> > +#define AHAB_ENV "sec_boot=yes\0"
> > +#else
> > +#define AHAB_ENV "sec_boot=no\0"
> > +#endif
> > +
> > +/* Boot M4 */
> > +#define M4_BOOT_ENV \
> > +	"m4_0_image=m4_0.bin\0" \
> > +	"loadm4image_0=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} " \
> > +		"${m4_0_image}\0" \
> > +	"m4boot_0=run loadm4image_0; dcache flush; bootaux ${loadaddr}
> > 0\0" \
> > +
> > +#define MFG_NAND_PARTITION ""
> > +
> > +#define BOOT_TARGET_DEVICES(func) \
> > +	func(MMC, mmc, 0) \
> > +	func(MMC, mmc, 1) \
> > +	func(DHCP, dhcp, na)
> > +#include <config_distro_bootcmd.h>
> > +#undef BOOTENV_RUN_NET_USB_START
> > +#define BOOTENV_RUN_NET_USB_START ""
> > +
> > +#define CONFIG_MFG_ENV_SETTINGS \
> > +	"mfgtool_args=setenv bootargs console=${console},${baudrate} "
> > \
> > +		"rdinit=/linuxrc g_mass_storage.stall=0 " \
> > +		"g_mass_storage.removable=1
> > g_mass_storage.idVendor=0x066F " \
> > +		"g_mass_storage.idProduct=0x37FF " \
> > +		"g_mass_storage.iSerialNumber=\"\" "\
> > +		MFG_NAND_PARTITION \
> > +		"video=imxdpufb5:off video=imxdpufb6:off
> > video=imxdpufb7:off " \
> > +		"clk_ignore_unused "\
> > +		"\0" \
> > +	"initrd_addr=0x83800000\0" \
> > +	"initrd_high=0xffffffff\0" \
> > +	"bootcmd_mfg=run mfgtool_args;booti ${loadaddr} ${initrd_addr}
> > " \
> > +		"${fdt_addr};\0" \
> > +
> > +/* Initial environment variables */
> > +#define CONFIG_EXTRA_ENV_SETTINGS \
> > +	AHAB_ENV \
> > +	BOOTENV \
> > +	CONFIG_MFG_ENV_SETTINGS \
> > +	M4_BOOT_ENV \
> > +	MEM_LAYOUT_ENV_SETTINGS \
> > +	"boot_fdt=try\0" \
> > +	"bootscript=echo Running bootscript from mmc ...; source\0" \
> > +	"console=ttyLP3,115200 earlycon=lpuart32,0x5a090000,115200\0" \
> > +	"fdt_addr=0x83000000\0"			\
> > +	"fdt_file=fsl-imx8qxp-colibri-eval-v3.dtb\0" \
> > +	"fdt_high=0xffffffffffffffff\0"		\
> > +	"finduuid=part uuid mmc ${mmcdev}:2 uuid\0" \
> > +	"image=Image\0" \
> > +	"initrd_addr=0x83800000\0"		\
> > +	"initrd_high=0xffffffffffffffff\0" \
> > +	"loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} "
> > \
> > +		"${script};\0" \
> > +	"loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr}
> > ${fdt_file}\0" \
> > +	"loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr}
> > ${image}\0" \
> > +	"mmcargs=setenv bootargs console=${console},${baudrate} " \
> > +		"root=PARTUUID=${uuid} rootwait " \
> > +	"mmcautodetect=yes\0" \
> > +	"mmcboot=echo Booting from mmc ...; " \
> > +		"run finduuid; run mmcargs; " \
> > +		"if test ${boot_fdt} = yes || test ${boot_fdt} = try;
> > then " \
> > +			"if run loadfdt; then " \
> > +				"booti ${loadaddr} - ${fdt_addr}; " \
> > +			"else " \
> > +				"echo WARN: Cannot load the DT; " \
> > +			"fi; " \
> > +		"else " \
> > +			"echo wait for boot; " \
> > +		"fi;\0" \
> > +	"mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \
> > +	"mmcpart=" __stringify(CONFIG_SYS_MMC_IMG_LOAD_PART) "\0" \
> > +	"netargs=setenv bootargs console=${console} root=/dev/nfs
> > ip=dhcp " \
> > +		"nfsroot=${serverip}:${nfsroot},v3,tcp
> > video=imxdpufb5:off " \
> > +		"video=imxdpufb6:off video=imxdpufb7:off\0" \
> > +	"netboot=echo Booting from net ...; " \
> > +		"run netargs; " \
> > +		"if test ${ip_dyn} = yes; then " \
> > +			"setenv get_cmd dhcp; " \
> > +		"else " \
> > +			"setenv get_cmd tftp; " \
> > +		"fi; " \
> > +		"${get_cmd} ${loadaddr} ${image}; " \
> > +		"if test ${boot_fdt} = yes || test ${boot_fdt} = try;
> > then " \
> > +			"if ${get_cmd} ${fdt_addr} ${fdt_file}; then "
> > \
> > +				"booti ${loadaddr} - ${fdt_addr}; " \
> > +			"else " \
> > +				"echo WARN: Cannot load the DT; " \
> > +			"fi; " \
> > +		"else " \
> > +			"booti; " \
> > +		"fi;\0" \
> > +	"nfsboot=run netargs; dhcp ${loadaddr} ${image}; tftp
> > ${fdt_addr} " \
> > +		"colibri-imx8qxp/${fdt_file}; booti ${loadaddr} - " \
> > +		"${fdt_addr}\0" \
> > +	"panel=NULL\0" \
> > +	"script=boot.scr\0" \
> > +	"video=imxdpufb5:off video=imxdpufb6:off video=imxdpufb7:off\0"
> > +
> > +#undef CONFIG_BOOTCOMMAND
> > +#define CONFIG_BOOTCOMMAND \
> > +	   "mmc dev ${mmcdev}; if mmc rescan; then " \
> > +		   "if run loadbootscript; then " \
> > +			   "run bootscript; " \
> > +		   "else " \
> > +			   "if run loadimage; then " \
> > +				   "run mmcboot; " \
> > +			   "else run netboot; " \
> > +			   "fi; " \
> > +		   "fi; " \
> > +	   "else booti ${loadaddr} - ${fdt_addr}; fi"
> > +
> > +/* Link Definitions */
> > +#define CONFIG_LOADADDR			0x80280000
> > +
> > +#define CONFIG_SYS_LOAD_ADDR		CONFIG_LOADADDR
> > +
> > +#define CONFIG_SYS_INIT_SP_ADDR		0x80200000
> > +
> > +#define CONFIG_SYS_MEMTEST_START	0x88000000
> > +#define CONFIG_SYS_MEMTEST_END		0x89000000
> > +
> > +/* Environment in eMMC, before config block at the end of 1st
> > "boot sector" */
> > +#define CONFIG_ENV_SIZE			(8 * 1024)
> > +#define CONFIG_ENV_OFFSET		(-CONFIG_ENV_SIZE + \
> > +					 CONFIG_TDX_CFG_BLOCK_OFFSET)
> > +#define CONFIG_SYS_MMC_ENV_DEV		0
> > +#define CONFIG_SYS_MMC_ENV_PART		1
> > +
> > +#define CONFIG_SYS_MMC_IMG_LOAD_PART	1
> > +
> > +/* On Colibri iMX8 USDHC1 is eMMC, USDHC2 is 4-bit SD */
> > +#define CONFIG_SYS_MMC_ENV_DEV		0		 /* USDHC1
> > eMMC */
> > +#define CONFIG_SYS_FSL_USDHC_NUM	2
> > +
> > +/* Size of malloc() pool */
> > +#define CONFIG_SYS_MALLOC_LEN		((CONFIG_ENV_SIZE + (32
> > * 1024)) * 1024)
> > +
> > +#define CONFIG_SYS_SDRAM_BASE		0x80000000
> > +#define CONFIG_NR_DRAM_BANKS		3
> > +#define PHYS_SDRAM_1			0x80000000
> > +#define PHYS_SDRAM_2			0x880000000
> > +#define PHYS_SDRAM_1_SIZE		0x80000000	/* 2 GB */
> > +#define PHYS_SDRAM_2_SIZE		0x00000000	/* 0 GB */
> > +
> > +/* Serial */
> > +#define CONFIG_BAUDRATE			115200
> > +
> > +/* Monitor Command Prompt */
> > +#define CONFIG_SYS_PROMPT_HUSH_PS2	"> "
> > +#define CONFIG_SYS_CBSIZE		2048
> > +#define CONFIG_SYS_MAXARGS		64
> > +#define CONFIG_SYS_BARGSIZE		CONFIG_SYS_CBSIZE
> > +#define CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE + \
> > +					sizeof(CONFIG_SYS_PROMPT) + 16)
> > +
> > +/* Generic Timer Definitions */
> > +#define COUNTER_FREQUENCY		8000000	/* 8MHz */
> > +
> > +#define BOOTAUX_RESERVED_MEM_BASE 0x88000000
> > +#define BOOTAUX_RESERVED_MEM_SIZE 0x08000000 /* Reserve from
> > second 128MB */
> > +
> > +#endif /* __COLIBRI_IMX8QXP_H */

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

* [U-Boot] [PATCH 6/8] imx8: cpu: get temperature when print cpu desc
  2019-04-25 10:35   ` Stefano Babic
@ 2019-04-25 13:46     ` Peng Fan
  2019-04-25 14:23       ` Stefano Babic
  0 siblings, 1 reply; 654+ messages in thread
From: Peng Fan @ 2019-04-25 13:46 UTC (permalink / raw)
  To: u-boot

Hi Stefano.

> Subject: Re: [PATCH 6/8] imx8: cpu: get temperature when print cpu desc
> 
> Hi Peng,
> 
> On 12/04/19 09:55, Peng Fan wrote:
> > Read the temperature when print cpu inforation.
> >
> > Signed-off-by: Peng Fan <peng.fan@nxp.com>
> > ---
> >  arch/arm/mach-imx/imx8/cpu.c | 35
> +++++++++++++++++++++++++++++++++--
> >  1 file changed, 33 insertions(+), 2 deletions(-)
> >
> > diff --git a/arch/arm/mach-imx/imx8/cpu.c
> > b/arch/arm/mach-imx/imx8/cpu.c index 4bbc956f9d..25b010489b 100644
> > --- a/arch/arm/mach-imx/imx8/cpu.c
> > +++ b/arch/arm/mach-imx/imx8/cpu.c
> > @@ -11,6 +11,7 @@
> >  #include <dm/lists.h>
> >  #include <dm/uclass.h>
> >  #include <errno.h>
> > +#include <thermal.h>
> >  #include <asm/arch/sci/sci.h>
> >  #include <asm/arch/sys_proto.h>
> >  #include <asm/arch-imx/cpu.h>
> > @@ -571,15 +572,45 @@ const char *get_core_name(void)
> >  		return "?";
> >  }
> >
> > +#if defined(CONFIG_IMX_SCU_THERMAL)
> > +static int cpu_imx_get_temp(void)
> > +{
> 
> This generates a warning when CONFIG_IMX_SCU_THERMAL is not set,
> because it is called later:
> 
> > +	struct udevice *thermal_dev;
> > +	int cpu_tmp, ret;
> > +
> > +	ret = uclass_get_device_by_name(UCLASS_THERMAL, "cpu-thermal0",
> > +					&thermal_dev);
> > +
> > +	if (!ret) {
> > +		ret = thermal_get_temp(thermal_dev, &cpu_tmp);
> > +		if (ret)
> > +			return 0xdeadbeef;
> > +	} else {
> > +		return 0xdeadbeef;
> > +	}
> > +
> > +	return cpu_tmp;
> > +}
> > +#endif
> > +
> >  int cpu_imx_get_desc(struct udevice *dev, char *buf, int size)  {
> >  	struct cpu_imx_platdata *plat = dev_get_platdata(dev);
> > +	int ret;
> >
> >  	if (size < 100)
> >  		return -ENOSPC;
> >
> > -	snprintf(buf, size, "NXP i.MX8%s Rev%s %s at %u MHz\n",
> > -		 plat->type, plat->rev, plat->name, plat->freq_mhz);
> > +	ret = snprintf(buf, size, "NXP i.MX8%s Rev%s %s at %u MHz",
> > +		       plat->type, plat->rev, plat->name, plat->freq_mhz);
> > +
> > +	if (IS_ENABLED(CONFIG_IMX_SCU_THERMAL)) {
> > +		buf = buf + ret;
> > +		size = size - ret;
> > +		ret = snprintf(buf, size, " at %dC", cpu_imx_get_temp());
>                                                         ^---

I not able to connect my PC to verify. But just thinking,
When CONFIG_IMX_SCU_THERMAL not enabled, the compiler
should optimize the if block? Because it is just "if (0)"

Regards,
Peng.

> here it is referenced.
> 
> Regards,
> Stefano
> 
> > +	}
> > +
> > +	snprintf(buf + ret, size - ret, "\n");
> >
> >  	return 0;
> >  }
> >
> 
> 
> --
> ==============================================================
> =======
> 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] 654+ messages in thread

* [U-Boot] [PATCH 6/8] imx8: cpu: get temperature when print cpu desc
  2019-04-25 13:46     ` Peng Fan
@ 2019-04-25 14:23       ` Stefano Babic
  0 siblings, 0 replies; 654+ messages in thread
From: Stefano Babic @ 2019-04-25 14:23 UTC (permalink / raw)
  To: u-boot

On 25/04/19 15:46, Peng Fan wrote:
> Hi Stefano.
> 
>> Subject: Re: [PATCH 6/8] imx8: cpu: get temperature when print cpu desc
>>
>> Hi Peng,
>>
>> On 12/04/19 09:55, Peng Fan wrote:
>>> Read the temperature when print cpu inforation.
>>>
>>> Signed-off-by: Peng Fan <peng.fan@nxp.com>
>>> ---
>>>  arch/arm/mach-imx/imx8/cpu.c | 35
>> +++++++++++++++++++++++++++++++++--
>>>  1 file changed, 33 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/arch/arm/mach-imx/imx8/cpu.c
>>> b/arch/arm/mach-imx/imx8/cpu.c index 4bbc956f9d..25b010489b 100644
>>> --- a/arch/arm/mach-imx/imx8/cpu.c
>>> +++ b/arch/arm/mach-imx/imx8/cpu.c
>>> @@ -11,6 +11,7 @@
>>>  #include <dm/lists.h>
>>>  #include <dm/uclass.h>
>>>  #include <errno.h>
>>> +#include <thermal.h>
>>>  #include <asm/arch/sci/sci.h>
>>>  #include <asm/arch/sys_proto.h>
>>>  #include <asm/arch-imx/cpu.h>
>>> @@ -571,15 +572,45 @@ const char *get_core_name(void)
>>>  		return "?";
>>>  }
>>>
>>> +#if defined(CONFIG_IMX_SCU_THERMAL)
>>> +static int cpu_imx_get_temp(void)
>>> +{
>>
>> This generates a warning when CONFIG_IMX_SCU_THERMAL is not set,
>> because it is called later:
>>
>>> +	struct udevice *thermal_dev;
>>> +	int cpu_tmp, ret;
>>> +
>>> +	ret = uclass_get_device_by_name(UCLASS_THERMAL, "cpu-thermal0",
>>> +					&thermal_dev);
>>> +
>>> +	if (!ret) {
>>> +		ret = thermal_get_temp(thermal_dev, &cpu_tmp);
>>> +		if (ret)
>>> +			return 0xdeadbeef;
>>> +	} else {
>>> +		return 0xdeadbeef;
>>> +	}
>>> +
>>> +	return cpu_tmp;
>>> +}
>>> +#endif
>>> +
>>>  int cpu_imx_get_desc(struct udevice *dev, char *buf, int size)  {
>>>  	struct cpu_imx_platdata *plat = dev_get_platdata(dev);
>>> +	int ret;
>>>
>>>  	if (size < 100)
>>>  		return -ENOSPC;
>>>
>>> -	snprintf(buf, size, "NXP i.MX8%s Rev%s %s at %u MHz\n",
>>> -		 plat->type, plat->rev, plat->name, plat->freq_mhz);
>>> +	ret = snprintf(buf, size, "NXP i.MX8%s Rev%s %s at %u MHz",
>>> +		       plat->type, plat->rev, plat->name, plat->freq_mhz);
>>> +
>>> +	if (IS_ENABLED(CONFIG_IMX_SCU_THERMAL)) {
>>> +		buf = buf + ret;
>>> +		size = size - ret;
>>> +		ret = snprintf(buf, size, " at %dC", cpu_imx_get_temp());
>>                                                         ^---
> 
> I not able to connect my PC to verify. But just thinking,
> When CONFIG_IMX_SCU_THERMAL not enabled, the compiler
> should optimize the if block? Because it is just "if (0)"

But if compiler optimizes the block, I should not see the warning...

Regards,
Stefano

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [PATCH v2 5/5] board: toradex: add colibri imx8qxp 2gb wb it v1.0b module support
  2019-04-25 12:35     ` Marcel Ziswiler
@ 2019-04-25 14:52       ` Stefano Babic
  2019-04-26  2:10         ` Peng Fan
  0 siblings, 1 reply; 654+ messages in thread
From: Stefano Babic @ 2019-04-25 14:52 UTC (permalink / raw)
  To: u-boot

Hi Marcel,

On 25/04/19 14:35, Marcel Ziswiler wrote:
> Hi Stefano
> 
> On Thu, 2019-04-25 at 12:48 +0200, Stefano Babic wrote:
>> Hi Marcel,
>>
>> On 09/04/19 17:25, Marcel Ziswiler wrote:
>>> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>>>
>>> This commit adds initial support for the Toradex Colibri iMX8QXP
>>> 2GB WB
>>> IT V1.0B module. Unlike the V1.0A early access samples exclusively
>>> booting from SD card, they are now strapped to boot from eFuses
>>> which
>>> are factory fused to properly boot from their on-module eMMC. U-
>>> Boot
>>> supports either booting from the on-module eMMC or may be used for
>>> recovery purpose using the universal update utility (uuu) aka
>>> mfgtools
>>> 3.0.
>>>
>>> Functionality wise the following is known to be working:
>>> - eMMC and MMC/SD card
>>> - Ethernet
>>> - GPIOs
>>> - I2C
>>>
>>> Unfortunately, there is no USB functionality for the i.MX 8QXP as
>>> of
>>> yet.
>>>
>>> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>>>
>>> ---
>>>
>>
>> I merged the series and build locally (fine), but Travis complains
>> and
>> stops with error:
>>
>> +cc1: fatal error: opening output file spl/u-boot-spl.cfgout: No such
>> file or directory
>> +compilation terminated.
>>
>> Can you take a look at it ?
> 
> Sure, looks like Peng's commit caceb739ea07 ("imx: build flash.bin for
> i.MX8") takes SPL for granted while my patchset currently avoids it.

It looks so, yes.

> 
> BTW: I still don't believe SPL makes much sense on i.MX 8X given all
> the other proprietary parts involved in booting.

SPL makes more sense if it is possible to detect at runtime the HW and
change the configuration - for i.MX6, this means RAMS detection, which
boot device is booting, and so on.

On i.MX8 there is a lot of proprietary parts - we lose the flexibility
of SPL, and most features are lost (or must be provided by proprietary
code). I agree that on this platform SPL makes less sense, and i.MX8
should be built independently if CONFIG_SPL is set (this is also for
i.MX6 / MX5, there are boards without SPL and using the DCD image to set
up the RAM controller).

> Plus currently SPL
> actually breaks the USB serial downloader aka recovery mode using the
> universal update utility (uuu) aka mfgtools 3.0.
> 

Regards,
Stefano

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [PATCH v2 5/5] board: toradex: add colibri imx8qxp 2gb wb it v1.0b module support
  2019-04-25 14:52       ` Stefano Babic
@ 2019-04-26  2:10         ` Peng Fan
  2019-04-26  8:38           ` Stefano Babic
  0 siblings, 1 reply; 654+ messages in thread
From: Peng Fan @ 2019-04-26  2:10 UTC (permalink / raw)
  To: u-boot

Hi Stefano,

> Subject: Re: [PATCH v2 5/5] board: toradex: add colibri imx8qxp 2gb wb it
> v1.0b module support
> 
> Hi Marcel,
> 
> On 25/04/19 14:35, Marcel Ziswiler wrote:
> > Hi Stefano
> >
> > On Thu, 2019-04-25 at 12:48 +0200, Stefano Babic wrote:
> >> Hi Marcel,
> >>
> >> On 09/04/19 17:25, Marcel Ziswiler wrote:
> >>> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> >>>
> >>> This commit adds initial support for the Toradex Colibri iMX8QXP 2GB
> >>> WB IT V1.0B module. Unlike the V1.0A early access samples
> >>> exclusively booting from SD card, they are now strapped to boot from
> >>> eFuses which are factory fused to properly boot from their on-module
> >>> eMMC. U- Boot supports either booting from the on-module eMMC or
> may
> >>> be used for recovery purpose using the universal update utility
> >>> (uuu) aka mfgtools 3.0.
> >>>
> >>> Functionality wise the following is known to be working:
> >>> - eMMC and MMC/SD card
> >>> - Ethernet
> >>> - GPIOs
> >>> - I2C
> >>>
> >>> Unfortunately, there is no USB functionality for the i.MX 8QXP as of
> >>> yet.
> >>>
> >>> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> >>>
> >>> ---
> >>>
> >>
> >> I merged the series and build locally (fine), but Travis complains
> >> and stops with error:
> >>
> >> +cc1: fatal error: opening output file spl/u-boot-spl.cfgout: No such
> >> file or directory
> >> +compilation terminated.
> >>
> >> Can you take a look at it ?
> >
> > Sure, looks like Peng's commit caceb739ea07 ("imx: build flash.bin for
> > i.MX8") takes SPL for granted while my patchset currently avoids it.
> 
> It looks so, yes.
> 
> >
> > BTW: I still don't believe SPL makes much sense on i.MX 8X given all
> > the other proprietary parts involved in booting.
> 
> SPL makes more sense if it is possible to detect at runtime the HW and
> change the configuration - for i.MX6, this means RAMS detection, which boot
> device is booting, and so on.
> 
> On i.MX8 there is a lot of proprietary parts - we lose the flexibility of SPL, and
> most features are lost (or must be provided by proprietary code). I agree that
> on this platform SPL makes less sense, and i.MX8 should be built
> independently if CONFIG_SPL is set (this is also for
> i.MX6 / MX5, there are boards without SPL and using the DCD image to set up
> the RAM controller).


The reason we move to use SPL on i.MX8 is that we would like to avoid
bind ATF/OP-TEE/U-Boot into a flat image with hacked offset in an image.

So the bootflow now is
SPL->ATF->OPTEE->ATF->U-Boot

Without SPL, when generating flash.bin, we have to hack ATF to copy OP-TEE
image from flash.bin to the runtime location.

> 
> > Plus currently SPL
> > actually breaks the USB serial downloader aka recovery mode using the
> > universal update utility (uuu) aka mfgtools 3.0.

The usb related function for i.MX8 is not ready now. we are almost run out
of ocram with SPL DM, thinking to use OF_PLATDATA now, then move
to usb functions.

Thanks,
Peng.

> >
> 
> Regards,
> Stefano
> 
> --
> ==============================================================
> =======
> 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] 654+ messages in thread

* [U-Boot] [PATCH v2 5/5] board: toradex: add colibri imx8qxp 2gb wb it v1.0b module support
  2019-04-26  2:10         ` Peng Fan
@ 2019-04-26  8:38           ` Stefano Babic
  2019-04-26  8:53             ` Peng Fan
  2019-04-26  8:54             ` Marcel Ziswiler
  0 siblings, 2 replies; 654+ messages in thread
From: Stefano Babic @ 2019-04-26  8:38 UTC (permalink / raw)
  To: u-boot

Hi Peng,

On 26/04/19 04:10, Peng Fan wrote:
> Hi Stefano,
> 
>> Subject: Re: [PATCH v2 5/5] board: toradex: add colibri imx8qxp 2gb wb it
>> v1.0b module support
>>
>> Hi Marcel,
>>
>> On 25/04/19 14:35, Marcel Ziswiler wrote:
>>> Hi Stefano
>>>
>>> On Thu, 2019-04-25 at 12:48 +0200, Stefano Babic wrote:
>>>> Hi Marcel,
>>>>
>>>> On 09/04/19 17:25, Marcel Ziswiler wrote:
>>>>> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>>>>>
>>>>> This commit adds initial support for the Toradex Colibri iMX8QXP 2GB
>>>>> WB IT V1.0B module. Unlike the V1.0A early access samples
>>>>> exclusively booting from SD card, they are now strapped to boot from
>>>>> eFuses which are factory fused to properly boot from their on-module
>>>>> eMMC. U- Boot supports either booting from the on-module eMMC or
>> may
>>>>> be used for recovery purpose using the universal update utility
>>>>> (uuu) aka mfgtools 3.0.
>>>>>
>>>>> Functionality wise the following is known to be working:
>>>>> - eMMC and MMC/SD card
>>>>> - Ethernet
>>>>> - GPIOs
>>>>> - I2C
>>>>>
>>>>> Unfortunately, there is no USB functionality for the i.MX 8QXP as of
>>>>> yet.
>>>>>
>>>>> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>>>>>
>>>>> ---
>>>>>
>>>>
>>>> I merged the series and build locally (fine), but Travis complains
>>>> and stops with error:
>>>>
>>>> +cc1: fatal error: opening output file spl/u-boot-spl.cfgout: No such
>>>> file or directory
>>>> +compilation terminated.
>>>>
>>>> Can you take a look at it ?
>>>
>>> Sure, looks like Peng's commit caceb739ea07 ("imx: build flash.bin for
>>> i.MX8") takes SPL for granted while my patchset currently avoids it.
>>
>> It looks so, yes.
>>
>>>
>>> BTW: I still don't believe SPL makes much sense on i.MX 8X given all
>>> the other proprietary parts involved in booting.
>>
>> SPL makes more sense if it is possible to detect at runtime the HW and
>> change the configuration - for i.MX6, this means RAMS detection, which boot
>> device is booting, and so on.
>>
>> On i.MX8 there is a lot of proprietary parts - we lose the flexibility of SPL, and
>> most features are lost (or must be provided by proprietary code). I agree that
>> on this platform SPL makes less sense, and i.MX8 should be built
>> independently if CONFIG_SPL is set (this is also for
>> i.MX6 / MX5, there are boards without SPL and using the DCD image to set up
>> the RAM controller).
> 
> 
> The reason we move to use SPL on i.MX8 is that we would like to avoid
> bind ATF/OP-TEE/U-Boot into a flat image with hacked offset in an image.
> 

It seemed I have missed some point. Thanks for clarification. This makes
sense.

> So the bootflow now is
> SPL->ATF->OPTEE->ATF->U-Boot
> 
> Without SPL, when generating flash.bin, we have to hack ATF to copy OP-TEE
> image from flash.bin to the runtime location.

Nevertheless, I understand that it is not strictly required to enable
OPTEE to boot the kernel, and in some applications a secure zone is not
required. The thing is not that SPL is used here, but to constrain all
other users like Marcel to do the same. With i.MX6, even if I strongly
suggested to do this to allow run time detection, I let boards without
SPL and with just u-boot.imx (with built-in DCD) to flow into mainline -
the board maintainer rules as he knows better where the device is used.

So I will prefer that the build assume to have SPL just if SPL is
configured and not in any case, letting boards without SPL (like this
colibri-mx8) to build.

> 
>>
>>> Plus currently SPL
>>> actually breaks the USB serial downloader aka recovery mode using the
>>> universal update utility (uuu) aka mfgtools 3.0.
> 
> The usb related function for i.MX8 is not ready now.

That is ok - it s WIP, it will be merged when ready. I agree with you,
this is *not* a reason to avoid SPL.

> we are almost run out
> of ocram with SPL DM, thinking to use OF_PLATDATA now, then move
> to usb functions.

Understood.

Best regards,
Stefano

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [PATCH v2 5/5] board: toradex: add colibri imx8qxp 2gb wb it v1.0b module support
  2019-04-26  8:38           ` Stefano Babic
@ 2019-04-26  8:53             ` Peng Fan
  2019-04-26  8:54             ` Marcel Ziswiler
  1 sibling, 0 replies; 654+ messages in thread
From: Peng Fan @ 2019-04-26  8:53 UTC (permalink / raw)
  To: u-boot

Hi Stefano,

> Subject: Re: [PATCH v2 5/5] board: toradex: add colibri imx8qxp 2gb wb it
> v1.0b module support
> 
> Hi Peng,
> 
> On 26/04/19 04:10, Peng Fan wrote:
> > Hi Stefano,
> >
> >> Subject: Re: [PATCH v2 5/5] board: toradex: add colibri imx8qxp 2gb
> >> wb it v1.0b module support
> >>
> >> Hi Marcel,
> >>
> >> On 25/04/19 14:35, Marcel Ziswiler wrote:
> >>> Hi Stefano
> >>>
> >>> On Thu, 2019-04-25 at 12:48 +0200, Stefano Babic wrote:
> >>>> Hi Marcel,
> >>>>
> >>>> On 09/04/19 17:25, Marcel Ziswiler wrote:
> >>>>> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> >>>>>
> >>>>> This commit adds initial support for the Toradex Colibri iMX8QXP
> >>>>> 2GB WB IT V1.0B module. Unlike the V1.0A early access samples
> >>>>> exclusively booting from SD card, they are now strapped to boot
> >>>>> from eFuses which are factory fused to properly boot from their
> >>>>> on-module eMMC. U- Boot supports either booting from the
> on-module
> >>>>> eMMC or
> >> may
> >>>>> be used for recovery purpose using the universal update utility
> >>>>> (uuu) aka mfgtools 3.0.
> >>>>>
> >>>>> Functionality wise the following is known to be working:
> >>>>> - eMMC and MMC/SD card
> >>>>> - Ethernet
> >>>>> - GPIOs
> >>>>> - I2C
> >>>>>
> >>>>> Unfortunately, there is no USB functionality for the i.MX 8QXP as
> >>>>> of yet.
> >>>>>
> >>>>> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> >>>>>
> >>>>> ---
> >>>>>
> >>>>
> >>>> I merged the series and build locally (fine), but Travis complains
> >>>> and stops with error:
> >>>>
> >>>> +cc1: fatal error: opening output file spl/u-boot-spl.cfgout: No
> >>>> +such
> >>>> file or directory
> >>>> +compilation terminated.
> >>>>
> >>>> Can you take a look at it ?
> >>>
> >>> Sure, looks like Peng's commit caceb739ea07 ("imx: build flash.bin
> >>> for
> >>> i.MX8") takes SPL for granted while my patchset currently avoids it.
> >>
> >> It looks so, yes.
> >>
> >>>
> >>> BTW: I still don't believe SPL makes much sense on i.MX 8X given all
> >>> the other proprietary parts involved in booting.
> >>
> >> SPL makes more sense if it is possible to detect at runtime the HW
> >> and change the configuration - for i.MX6, this means RAMS detection,
> >> which boot device is booting, and so on.
> >>
> >> On i.MX8 there is a lot of proprietary parts - we lose the
> >> flexibility of SPL, and most features are lost (or must be provided
> >> by proprietary code). I agree that on this platform SPL makes less
> >> sense, and i.MX8 should be built independently if CONFIG_SPL is set
> >> (this is also for
> >> i.MX6 / MX5, there are boards without SPL and using the DCD image to
> >> set up the RAM controller).
> >
> >
> > The reason we move to use SPL on i.MX8 is that we would like to avoid
> > bind ATF/OP-TEE/U-Boot into a flat image with hacked offset in an image.
> >
> 
> It seemed I have missed some point. Thanks for clarification. This makes
> sense.
> 
> > So the bootflow now is
> > SPL->ATF->OPTEE->ATF->U-Boot
> >
> > Without SPL, when generating flash.bin, we have to hack ATF to copy
> > OP-TEE image from flash.bin to the runtime location.
> 
> Nevertheless, I understand that it is not strictly required to enable OPTEE to
> boot the kernel, and in some applications a secure zone is not required. The
> thing is not that SPL is used here, but to constrain all other users like Marcel to
> do the same. With i.MX6, even if I strongly suggested to do this to allow run
> time detection, I let boards without SPL and with just u-boot.imx (with built-in
> DCD) to flow into mainline - the board maintainer rules as he knows better
> where the device is used.
> 
> So I will prefer that the build assume to have SPL just if SPL is configured and
> not in any case, letting boards without SPL (like this
> colibri-mx8) to build.

ok. Then need to think about how to bind bl31.bin and u-boot.bin,

the binded image will be copied to 0x80000000 by ROM.

Consider bl31 is 128KB now, so uboot entry could be hardcoded
to 0x80020000, and u-boot.bin is 128KB offset of the final image.

Could use binman. And then need to generate flash.bin.

Regards,
Peng.

> 
> >
> >>
> >>> Plus currently SPL
> >>> actually breaks the USB serial downloader aka recovery mode using
> >>> the universal update utility (uuu) aka mfgtools 3.0.
> >
> > The usb related function for i.MX8 is not ready now.
> 
> That is ok - it s WIP, it will be merged when ready. I agree with you, this is
> *not* a reason to avoid SPL.
> 
> > we are almost run out
> > of ocram with SPL DM, thinking to use OF_PLATDATA now, then move to
> > usb functions.
> 
> Understood.
> 
> Best regards,
> Stefano
> 
> --
> ==============================================================
> =======
> 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] 654+ messages in thread

* [U-Boot] [PATCH v2 5/5] board: toradex: add colibri imx8qxp 2gb wb it v1.0b module support
  2019-04-26  8:38           ` Stefano Babic
  2019-04-26  8:53             ` Peng Fan
@ 2019-04-26  8:54             ` Marcel Ziswiler
  2019-04-26  9:03               ` Peng Fan
  1 sibling, 1 reply; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-26  8:54 UTC (permalink / raw)
  To: u-boot

Hi Peng and Stefano

On Fri, 2019-04-26 at 10:38 +0200, Stefano Babic wrote:
> Hi Peng,
> 
> On 26/04/19 04:10, Peng Fan wrote:
> > Hi Stefano,
> > 
> > > Subject: Re: [PATCH v2 5/5] board: toradex: add colibri imx8qxp
> > > 2gb wb it
> > > v1.0b module support
> > > 
> > > Hi Marcel,
> > > 
> > > On 25/04/19 14:35, Marcel Ziswiler wrote:
> > > > Hi Stefano
> > > > 
> > > > On Thu, 2019-04-25 at 12:48 +0200, Stefano Babic wrote:
> > > > > Hi Marcel,
> > > > > 
> > > > > On 09/04/19 17:25, Marcel Ziswiler wrote:
> > > > > > From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> > > > > > 
> > > > > > This commit adds initial support for the Toradex Colibri
> > > > > > iMX8QXP 2GB
> > > > > > WB IT V1.0B module. Unlike the V1.0A early access samples
> > > > > > exclusively booting from SD card, they are now strapped to
> > > > > > boot from
> > > > > > eFuses which are factory fused to properly boot from their
> > > > > > on-module
> > > > > > eMMC. U- Boot supports either booting from the on-module
> > > > > > eMMC or
> > > may
> > > > > > be used for recovery purpose using the universal update
> > > > > > utility
> > > > > > (uuu) aka mfgtools 3.0.
> > > > > > 
> > > > > > Functionality wise the following is known to be working:
> > > > > > - eMMC and MMC/SD card
> > > > > > - Ethernet
> > > > > > - GPIOs
> > > > > > - I2C
> > > > > > 
> > > > > > Unfortunately, there is no USB functionality for the i.MX
> > > > > > 8QXP as of
> > > > > > yet.
> > > > > > 
> > > > > > Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com
> > > > > > >
> > > > > > 
> > > > > > ---
> > > > > > 
> > > > > 
> > > > > I merged the series and build locally (fine), but Travis
> > > > > complains
> > > > > and stops with error:
> > > > > 
> > > > > +cc1: fatal error: opening output file spl/u-boot-spl.cfgout: 
> > > > > No such
> > > > > file or directory
> > > > > +compilation terminated.
> > > > > 
> > > > > Can you take a look at it ?
> > > > 
> > > > Sure, looks like Peng's commit caceb739ea07 ("imx: build
> > > > flash.bin for
> > > > i.MX8") takes SPL for granted while my patchset currently
> > > > avoids it.
> > > 
> > > It looks so, yes.
> > > 
> > > > BTW: I still don't believe SPL makes much sense on i.MX 8X
> > > > given all
> > > > the other proprietary parts involved in booting.
> > > 
> > > SPL makes more sense if it is possible to detect at runtime the
> > > HW and
> > > change the configuration - for i.MX6, this means RAMS detection,
> > > which boot
> > > device is booting, and so on.
> > > 
> > > On i.MX8 there is a lot of proprietary parts - we lose the
> > > flexibility of SPL, and
> > > most features are lost (or must be provided by proprietary code).
> > > I agree that
> > > on this platform SPL makes less sense, and i.MX8 should be built
> > > independently if CONFIG_SPL is set (this is also for
> > > i.MX6 / MX5, there are boards without SPL and using the DCD image
> > > to set up
> > > the RAM controller).
> > 
> > The reason we move to use SPL on i.MX8 is that we would like to
> > avoid
> > bind ATF/OP-TEE/U-Boot into a flat image with hacked offset in an
> > image.
> > 
> 
> It seemed I have missed some point. Thanks for clarification. This
> makes
> sense.

OK, I was also not aware of this.

However, currently I am just happy the current tooling kinda works.
Which is we can ship stuff to customers and they may use uuu to recover
bricked modules. So far nobody is talking about OP-TEE and such
advanced use cases yet.

On the other hand enabling SPL currently does not seem to work at all
on our hardware. Neither booting from eMMC nor recovering using uuu.
That is really the main reason I decided against it at least for now.

> > So the bootflow now is
> > SPL->ATF->OPTEE->ATF->U-Boot
> > 
> > Without SPL, when generating flash.bin, we have to hack ATF to copy
> > OP-TEE
> > image from flash.bin to the runtime location.
> 
> Nevertheless, I understand that it is not strictly required to enable
> OPTEE to boot the kernel, and in some applications a secure zone is
> not
> required. The thing is not that SPL is used here, but to constrain
> all
> other users like Marcel to do the same. With i.MX6, even if I
> strongly
> suggested to do this to allow run time detection, I let boards
> without
> SPL and with just u-boot.imx (with built-in DCD) to flow into
> mainline -
> the board maintainer rules as he knows better where the device is
> used.

Thanks!

> So I will prefer that the build assume to have SPL just if SPL is
> configured and not in any case, letting boards without SPL (like this
> colibri-mx8

Colibri iMX8X that is while on the Apalis family we have the Apalis
iMX8 (e.g. with the i.MX 8QuadMax or i.MX 8QuadPlus) and the new Apalis
iMX8X with ECC RAM still in the works. Welcome to the i.MX 8 series
with the i.MX 8 and i.MX 8X families and careful with NXP's brilliant
naming scheme (;-p).

> ) to build.

Don't worry. I believe I found a fix for the issue at hand and will
send a patch shortly.

> > > > Plus currently SPL
> > > > actually breaks the USB serial downloader aka recovery mode
> > > > using the
> > > > universal update utility (uuu) aka mfgtools 3.0.
> > 
> > The usb related function for i.MX8 is not ready now.
> 
> That is ok - it s WIP, it will be merged when ready. I agree with
> you,
> this is *not* a reason to avoid SPL.

Agreed. However, it is kinda painful requiring different U-Boot
configuration flavours for regular boot vs. recovery. That said we used
to previously do this on Apalis/Colibri iMX6 as well so it is
definitely no show stopper.

> > we are almost run out
> > of ocram with SPL DM, thinking to use OF_PLATDATA now, then move
> > to usb functions.
> 
> Understood.

Yeah, I also played with OF_PLATDATA once before however was not
entirely happy with the result as of yet. I guess WIP patches welcome
(;-p).

> Best regards,
> Stefano

Cheers

Marcel

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

* [U-Boot] [PATCH v2 5/5] board: toradex: add colibri imx8qxp 2gb wb it v1.0b module support
  2019-04-26  8:54             ` Marcel Ziswiler
@ 2019-04-26  9:03               ` Peng Fan
  2019-04-26  9:38                 ` Marcel Ziswiler
  0 siblings, 1 reply; 654+ messages in thread
From: Peng Fan @ 2019-04-26  9:03 UTC (permalink / raw)
  To: u-boot


> Subject: Re: [PATCH v2 5/5] board: toradex: add colibri imx8qxp 2gb wb it
> v1.0b module support
> 
> Hi Peng and Stefano
> 
> On Fri, 2019-04-26 at 10:38 +0200, Stefano Babic wrote:
> > Hi Peng,
> >
> > On 26/04/19 04:10, Peng Fan wrote:
> > > Hi Stefano,
> > >
> > > > Subject: Re: [PATCH v2 5/5] board: toradex: add colibri imx8qxp
> > > > 2gb wb it v1.0b module support
> > > >
> > > > Hi Marcel,
> > > >
> > > > On 25/04/19 14:35, Marcel Ziswiler wrote:
> > > > > Hi Stefano
> > > > >
> > > > > On Thu, 2019-04-25 at 12:48 +0200, Stefano Babic wrote:
> > > > > > Hi Marcel,
> > > > > >
> > > > > > On 09/04/19 17:25, Marcel Ziswiler wrote:
> > > > > > > From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> > > > > > >
> > > > > > > This commit adds initial support for the Toradex Colibri
> > > > > > > iMX8QXP 2GB WB IT V1.0B module. Unlike the V1.0A early
> > > > > > > access samples exclusively booting from SD card, they are
> > > > > > > now strapped to boot from eFuses which are factory fused to
> > > > > > > properly boot from their on-module eMMC. U- Boot supports
> > > > > > > either booting from the on-module eMMC or
> > > > may
> > > > > > > be used for recovery purpose using the universal update
> > > > > > > utility
> > > > > > > (uuu) aka mfgtools 3.0.
> > > > > > >
> > > > > > > Functionality wise the following is known to be working:
> > > > > > > - eMMC and MMC/SD card
> > > > > > > - Ethernet
> > > > > > > - GPIOs
> > > > > > > - I2C
> > > > > > >
> > > > > > > Unfortunately, there is no USB functionality for the i.MX
> > > > > > > 8QXP as of yet.
> > > > > > >
> > > > > > > Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com
> > > > > > > >
> > > > > > >
> > > > > > > ---
> > > > > > >
> > > > > >
> > > > > > I merged the series and build locally (fine), but Travis
> > > > > > complains and stops with error:
> > > > > >
> > > > > > +cc1: fatal error: opening output file spl/u-boot-spl.cfgout:
> > > > > > No such
> > > > > > file or directory
> > > > > > +compilation terminated.
> > > > > >
> > > > > > Can you take a look at it ?
> > > > >
> > > > > Sure, looks like Peng's commit caceb739ea07 ("imx: build
> > > > > flash.bin for
> > > > > i.MX8") takes SPL for granted while my patchset currently avoids
> > > > > it.
> > > >
> > > > It looks so, yes.
> > > >
> > > > > BTW: I still don't believe SPL makes much sense on i.MX 8X given
> > > > > all the other proprietary parts involved in booting.
> > > >
> > > > SPL makes more sense if it is possible to detect at runtime the HW
> > > > and change the configuration - for i.MX6, this means RAMS
> > > > detection, which boot device is booting, and so on.
> > > >
> > > > On i.MX8 there is a lot of proprietary parts - we lose the
> > > > flexibility of SPL, and most features are lost (or must be
> > > > provided by proprietary code).
> > > > I agree that
> > > > on this platform SPL makes less sense, and i.MX8 should be built
> > > > independently if CONFIG_SPL is set (this is also for
> > > > i.MX6 / MX5, there are boards without SPL and using the DCD image
> > > > to set up the RAM controller).
> > >
> > > The reason we move to use SPL on i.MX8 is that we would like to
> > > avoid bind ATF/OP-TEE/U-Boot into a flat image with hacked offset in
> > > an image.
> > >
> >
> > It seemed I have missed some point. Thanks for clarification. This
> > makes sense.
> 
> OK, I was also not aware of this.
> 
> However, currently I am just happy the current tooling kinda works.
> Which is we can ship stuff to customers and they may use uuu to recover
> bricked modules. So far nobody is talking about OP-TEE and such advanced
> use cases yet.
> 
> On the other hand enabling SPL currently does not seem to work at all on our
> hardware. Neither booting from eMMC nor recovering using uuu.
> That is really the main reason I decided against it at least for now.

In vendor tree, we use SPL to load i.MX8 container image.
To UUU, 1st need to enable usb gadget functions in SPL, then enable container
for the 2nd image. So with uuu, it not work with upstream U-Boot now.

> 
> > > So the bootflow now is
> > > SPL->ATF->OPTEE->ATF->U-Boot
> > >
> > > Without SPL, when generating flash.bin, we have to hack ATF to copy
> > > OP-TEE image from flash.bin to the runtime location.
> >
> > Nevertheless, I understand that it is not strictly required to enable
> > OPTEE to boot the kernel, and in some applications a secure zone is
> > not required. The thing is not that SPL is used here, but to constrain
> > all other users like Marcel to do the same. With i.MX6, even if I
> > strongly suggested to do this to allow run time detection, I let
> > boards without SPL and with just u-boot.imx (with built-in DCD) to
> > flow into mainline - the board maintainer rules as he knows better
> > where the device is used.
> 
> Thanks!
> 
> > So I will prefer that the build assume to have SPL just if SPL is
> > configured and not in any case, letting boards without SPL (like this
> > colibri-mx8
> 
> Colibri iMX8X that is while on the Apalis family we have the Apalis
> iMX8 (e.g. with the i.MX 8QuadMax or i.MX 8QuadPlus) and the new Apalis
> iMX8X with ECC RAM still in the works. Welcome to the i.MX 8 series with the
> i.MX 8 and i.MX 8X families and careful with NXP's brilliant naming scheme
> (;-p).
> 
> > ) to build.
> 
> Don't worry. I believe I found a fix for the issue at hand and will send a patch
> shortly.

ok.

Regards,
Peng.

> 
> > > > > Plus currently SPL
> > > > > actually breaks the USB serial downloader aka recovery mode
> > > > > using the universal update utility (uuu) aka mfgtools 3.0.
> > >
> > > The usb related function for i.MX8 is not ready now.
> >
> > That is ok - it s WIP, it will be merged when ready. I agree with you,
> > this is *not* a reason to avoid SPL.
> 
> Agreed. However, it is kinda painful requiring different U-Boot configuration
> flavours for regular boot vs. recovery. That said we used to previously do this
> on Apalis/Colibri iMX6 as well so it is definitely no show stopper.
> 
> > > we are almost run out
> > > of ocram with SPL DM, thinking to use OF_PLATDATA now, then move to
> > > usb functions.
> >
> > Understood.
> 
> Yeah, I also played with OF_PLATDATA once before however was not entirely
> happy with the result as of yet. I guess WIP patches welcome (;-p).
> 
> > Best regards,
> > Stefano
> 
> Cheers
> 
> Marcel

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

* [U-Boot] [PATCH v2 5/5] board: toradex: add colibri imx8qxp 2gb wb it v1.0b module support
  2019-04-11 10:47   ` Igor Opaniuk
@ 2019-04-26  9:20     ` Marcel Ziswiler
  2019-04-26  9:46       ` Stefano Babic
  0 siblings, 1 reply; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-26  9:20 UTC (permalink / raw)
  To: u-boot

Hi Igor

Sorry, somehow I missed your comments below (;-p).

I will send out a v4 (yes there already was a v3 BTW) shortly including
the SPL resp. without SPL build fix.

On Thu, 2019-04-11 at 12:47 +0200, Igor Opaniuk wrote:
> Hi Marcel,
> 
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>
> 
> Some minor comments below (can be addressed in different patch):
> 
> On Tue, Apr 9, 2019 at 5:34 PM Marcel Ziswiler <marcel@ziswiler.com>
> wrote:
> > From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> > 
> > This commit adds initial support for the Toradex Colibri iMX8QXP
> > 2GB WB
> > IT V1.0B module. Unlike the V1.0A early access samples exclusively
> > booting from SD card, they are now strapped to boot from eFuses
> > which
> > are factory fused to properly boot from their on-module eMMC. U-
> > Boot
> > supports either booting from the on-module eMMC or may be used for
> > recovery purpose using the universal update utility (uuu) aka
> > mfgtools
> > 3.0.
> > 
> > Functionality wise the following is known to be working:
> > - eMMC and MMC/SD card
> > - Ethernet
> > - GPIOs
> > - I2C
> > 
> > Unfortunately, there is no USB functionality for the i.MX 8QXP as
> > of
> > yet.
> > 
> > Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> > 
> > ---
> > 
> > Changes in v2:
> > - Changed imx-atf git clone command to include initial branch
> >   information as suggested by Igor.
> > - Sorted board file includes alphabetically as suggested by Igor.
> > - Got rid of SPL configuration in legacy header file as suggested
> > by
> >   Igor and the whole use of SPL on i.MX 8X anyway neither works
> > well
> >   nor makes any much sense at all.
> > 
> >  arch/arm/dts/Makefile                         |   4 +-
> >  arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi  | 112 ++++++
> >  arch/arm/dts/fsl-imx8qxp-colibri.dts          | 328
> > ++++++++++++++++++
> >  arch/arm/mach-imx/imx8/Kconfig                |   6 +
> >  board/toradex/colibri-imx8qxp/Kconfig         |  30 ++
> >  board/toradex/colibri-imx8qxp/MAINTAINERS     |   9 +
> >  board/toradex/colibri-imx8qxp/Makefile        |   7 +
> >  board/toradex/colibri-imx8qxp/README          |  66 ++++
> >  .../toradex/colibri-imx8qxp/colibri-imx8qxp.c | 212 +++++++++++
> >  board/toradex/colibri-imx8qxp/imximage.cfg    |  24 ++
> >  configs/colibri-imx8qxp_defconfig             |  53 +++
> >  include/configs/colibri-imx8qxp.h             | 214 ++++++++++++
> >  12 files changed, 1064 insertions(+), 1 deletion(-)
> >  create mode 100644 arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi
> >  create mode 100644 arch/arm/dts/fsl-imx8qxp-colibri.dts
> >  create mode 100644 board/toradex/colibri-imx8qxp/Kconfig
> >  create mode 100644 board/toradex/colibri-imx8qxp/MAINTAINERS
> >  create mode 100644 board/toradex/colibri-imx8qxp/Makefile
> >  create mode 100644 board/toradex/colibri-imx8qxp/README
> >  create mode 100644 board/toradex/colibri-imx8qxp/colibri-imx8qxp.c
> >  create mode 100644 board/toradex/colibri-imx8qxp/imximage.cfg
> >  create mode 100644 configs/colibri-imx8qxp_defconfig
> >  create mode 100644 include/configs/colibri-imx8qxp.h
> > 
> > diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
> > index 13d1d67624..2a551d42a4 100644
> > --- a/arch/arm/dts/Makefile
> > +++ b/arch/arm/dts/Makefile
> > @@ -559,7 +559,9 @@ dtb-$(CONFIG_MX7) += imx7d-sdb.dtb \
> > 
> >  dtb-$(CONFIG_ARCH_MX7ULP) += imx7ulp-evk.dtb
> > 
> > -dtb-$(CONFIG_ARCH_IMX8) += fsl-imx8qxp-mek.dtb
> > +dtb-$(CONFIG_ARCH_IMX8) += \
> > +       fsl-imx8qxp-colibri.dtb \
> > +       fsl-imx8qxp-mek.dtb
> > 
> >  dtb-$(CONFIG_ARCH_IMX8M) += fsl-imx8mq-evk.dtb
> > 
> > diff --git a/arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi
> > b/arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi
> > new file mode 100644
> > index 0000000000..f8686befdf
> > --- /dev/null
> > +++ b/arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi
> > @@ -0,0 +1,112 @@
> > +// SPDX-License-Identifier: GPL-2.0+ OR X11
> > +/*
> > + * Copyright 2019 Toradex AG
> > + */
> > +
> > +&mu {
> > +       u-boot,dm-spl;
> > +};
> > +
> > +&clk {
> > +       u-boot,dm-spl;
> > +};
> > +
> > +&iomuxc {
> > +       u-boot,dm-spl;
> > +};
> > +
> > +&pd_lsio {
> > +       u-boot,dm-spl;
> > +};
> > +
> > +&pd_lsio_gpio0 {
> > +       u-boot,dm-spl;
> > +};
> > +
> > +&pd_lsio_gpio1 {
> > +       u-boot,dm-spl;
> > +};
> > +
> > +&pd_lsio_gpio2 {
> > +       u-boot,dm-spl;
> > +};
> > +
> > +&pd_lsio_gpio3 {
> > +       u-boot,dm-spl;
> > +};
> > +
> > +&pd_lsio_gpio4 {
> > +       u-boot,dm-spl;
> > +};
> > +
> > +&pd_lsio_gpio5 {
> > +       u-boot,dm-spl;
> > +};
> > +
> > +&pd_lsio_gpio6 {
> > +       u-boot,dm-spl;
> > +};
> > +
> > +&pd_lsio_gpio7 {
> > +       u-boot,dm-spl;
> > +};
> > +
> > +&pd_conn {
> > +       u-boot,dm-spl;
> > +};
> > +
> > +&pd_conn_sdch0 {
> > +       u-boot,dm-spl;
> > +};
> > +
> > +&pd_conn_sdch1 {
> > +       u-boot,dm-spl;
> > +};
> > +
> > +&pd_conn_sdch2 {
> > +       u-boot,dm-spl;
> > +};
> > +
> > +&gpio0 {
> > +       u-boot,dm-spl;
> > +};
> > +
> > +&gpio1 {
> > +       u-boot,dm-spl;
> > +};
> > +
> > +&gpio2 {
> > +       u-boot,dm-spl;
> > +};
> > +
> > +&gpio3 {
> > +       u-boot,dm-spl;
> > +};
> > +
> > +&gpio4 {
> > +       u-boot,dm-spl;
> > +};
> > +
> > +&gpio5 {
> > +       u-boot,dm-spl;
> > +};
> > +
> > +&gpio6 {
> > +       u-boot,dm-spl;
> > +};
> > +
> > +&gpio7 {
> > +       u-boot,dm-spl;
> > +};
> > +
> > +&lpuart3 {
> > +       u-boot,dm-spl;
> > +};
> > +
> > +&usdhc1 {
> > +       u-boot,dm-spl;
> > +};
> > +
> > +&usdhc2 {
> > +       u-boot,dm-spl;
> > +};
> > diff --git a/arch/arm/dts/fsl-imx8qxp-colibri.dts
> > b/arch/arm/dts/fsl-imx8qxp-colibri.dts
> > new file mode 100644
> > index 0000000000..0c20edf2cf
> > --- /dev/null
> > +++ b/arch/arm/dts/fsl-imx8qxp-colibri.dts
> > @@ -0,0 +1,328 @@
> > +// SPDX-License-Identifier: GPL-2.0+ OR X11
> > +/*
> > + * Copyright 2019 Toradex AG
> > + */
> > +
> > +/dts-v1/;
> > +
> > +#include "fsl-imx8qxp.dtsi"
> > +#include "fsl-imx8qxp-colibri-u-boot.dtsi"
> > +
> > +/ {
> > +       model = "Toradex Colibri iMX8QXP";
> > +       compatible = "toradex,colibri-imx8qxp", "fsl,imx8qxp";
> > +
> > +       chosen {
> > +               bootargs = "console=ttyLP3,115200
> > earlycon=lpuart32,0x5a090000,115200";
> > +               stdout-path = &lpuart3;
> > +       };
> > +
> > +       reg_usbh_vbus: regulator-usbh-vbus {
> > +               compatible = "regulator-fixed";
> > +               pinctrl-names = "default";
> > +               pinctrl-0 = <&pinctrl_usbh1_reg>;
> > +               regulator-name = "usbh_vbus";
> > +               regulator-min-microvolt = <5000000>;
> > +               regulator-max-microvolt = <5000000>;
> > +               gpio = <&gpio4 3 GPIO_ACTIVE_LOW>;
> > +       };
> > +};
> > +
> > +&iomuxc {
> > +       pinctrl-names = "default";
> > +       pinctrl-0 = <&pinctrl_hog0>, <&pinctrl_hog1>,
> > <&pinctrl_hog2>;
> > +
> > +       colibri-imx8qxp {
> > +               pinctrl_lpuart0: lpuart0grp {
> > +                       fsl,pins = <
> > +                               SC_P_UART0_RX_ADMA_UART0_RX     0x0
> > 6000020
> > +                               SC_P_UART0_TX_ADMA_UART0_TX     0x0
> > 6000020
> > +                       >;
> > +               };
> > +
> > +               pinctrl_lpuart3: lpuart3grp {
> > +                       fsl,pins = <
> > +                               SC_P_FLEXCAN2_RX_ADMA_UART3_RX  0x0
> > 6000020
> > +                               SC_P_FLEXCAN2_TX_ADMA_UART3_TX  0x0
> > 6000020
> > +                       >;
> > +               };
> > +
> > +               pinctrl_lpuart3_ctrl: lpuart3ctrlgrp {
> > +                       fsl,pins = <
> > +                               SC_P_MIPI_DSI1_GPIO0_01_LSIO_GPIO2_
> > IO00 0x00000020 /* DTR */
> > +                               SC_P_SAI1_RXD_LSIO_GPIO0_IO29      
> >      0x00000020 /* CTS */
> > +                               SC_P_SAI1_RXC_LSIO_GPIO0_IO30      
> >      0x00000020 /* RTS */
> > +                               SC_P_CSI_RESET_LSIO_GPIO3_IO03     
> >      0x00000020 /* DSR */
> > +                               SC_P_USDHC1_CD_B_LSIO_GPIO4_IO22   
> >      0x00000020 /* DCD */
> > +                               SC_P_CSI_EN_LSIO_GPIO3_IO02        
> >      0x00000020 /* RI */
> > +                       >;
> > +               };
> > +
> > +               pinctrl_fec1: fec1grp {
> > +                       fsl,pins = <
> > +                               SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENE
> > TB0_PAD      0x000014a0 /* Use pads in 3.3V mode */
> > +                               SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENE
> > TB1_PAD      0x000014a0 /* Use pads in 3.3V mode */
> > +                               SC_P_ENET0_MDC_CONN_ENET0_MDC      
> >              0x06000020
> > +                               SC_P_ENET0_MDIO_CONN_ENET0_MDIO    
> >              0x06000020
> > +                               SC_P_ENET0_RGMII_TX_CTL_CONN_ENET0_
> > RGMII_TX_CTL 0x00000061
> > +                               SC_P_ENET0_RGMII_TXC_CONN_ENET0_RCL
> > K50M_OUT     0x06000061
> > +                               SC_P_ENET0_RGMII_TXD0_CONN_ENET0_RG
> > MII_TXD0     0x00000061
> > +                               SC_P_ENET0_RGMII_TXD1_CONN_ENET0_RG
> > MII_TXD1     0x00000061
> > +                               SC_P_ENET0_RGMII_RX_CTL_CONN_ENET0_
> > RGMII_RX_CTL 0x00000061
> > +                               SC_P_ENET0_RGMII_RXD0_CONN_ENET0_RG
> > MII_RXD0     0x00000061
> > +                               SC_P_ENET0_RGMII_RXD1_CONN_ENET0_RG
> > MII_RXD1     0x00000061
> > +                               SC_P_ENET0_RGMII_RXD2_CONN_ENET0_RM
> > II_RX_ER     0x00000061
> > +                       >;
> > +               };
> > +
> > +               pinctrl_gpio_bl_on: gpio-bl-on {
> > +                       fsl,pins = <
> > +                               SC_P_QSPI0A_DATA3_LSIO_GPIO3_IO12  
> >      0x00000040
> > +                       >;
> > +               };
> > +
> > +               pinctrl_hog0: hog0grp {
> > +                       fsl,pins = <
> > +                               SC_P_COMP_CTL_GPIO_1V8_3V3_GPIORHB_
> > PAD  0x000514a0 /* Use pads in 3.3V mode */
> > +                       >;
> > +               };
> > +
> > +               pinctrl_hog1: hog1grp {
> > +                       fsl,pins = <
> > +                               SC_P_QSPI0A_DATA1_LSIO_GPIO3_IO10  
> >      0x00000020 /*  45 */
> > +                               SC_P_ENET0_RGMII_TXD3_LSIO_GPIO5_IO
> > 02   0x06000020 /*  65 */
> > +                                       SC_P_CSI_D07_CI_PI_D09     
> >      0x00000061
> > +                               SC_P_QSPI0A_DATA2_LSIO_GPIO3_IO11  
> >      0x00000020 /*  69 */
> > +                               SC_P_QSPI0A_DQS_LSIO_GPIO3_IO13    
> >      0x00000020 /*  73 */
> > +                               SC_P_SAI0_TXC_LSIO_GPIO0_IO26      
> >      0x00000020 /*  79 */
> > +                                       SC_P_CSI_D02_CI_PI_D04     
> >      0x00000061
> > +                               SC_P_ENET0_RGMII_RXC_LSIO_GPIO5_IO0
> > 3    0x06000020 /*  85 */
> > +                                       SC_P_CSI_D06_CI_PI_D08     
> >      0x00000061
> > +                               SC_P_QSPI0B_SCLK_LSIO_GPIO3_IO17   
> >      0x00000020 /*  95 */
> > +                               SC_P_SAI0_RXD_LSIO_GPIO0_IO27      
> >      0x00000020 /*  97 */
> > +                                       SC_P_CSI_D03_CI_PI_D05     
> >      0x00000061
> > +                               SC_P_QSPI0B_DATA0_LSIO_GPIO3_IO18  
> >      0x00000020 /*  99 */
> > +                               SC_P_SAI0_TXFS_LSIO_GPIO0_IO28     
> >      0x00000020 /* 101 */
> > +                                       SC_P_CSI_D00_CI_PI_D02     
> >      0x00000061
> > +                               SC_P_SAI0_TXD_LSIO_GPIO0_IO25      
> >      0x00000020 /* 103 */
> > +                                       SC_P_CSI_D01_CI_PI_D03     
> >      0x00000061
> 
> I seems that in 20 lines above alignment is broken a bit.

No, I believe Max intentionally did it that way downstream indicating
that those SODIMM pins are each multiplexed onto two SoC balls. Toradex
does this at times to gain greater pin compatibility across our module
families.

Further comments down below taken into account. Thanks!

Cheers

Marcel

> > +                               SC_P_QSPI0B_DATA1_LSIO_GPIO3_IO19  
> >      0x00000020 /* 105 */
> > +                               SC_P_QSPI0B_DATA2_LSIO_GPIO3_IO20  
> >      0x00000020 /* 107 */
> > +                               SC_P_USB_SS3_TC2_LSIO_GPIO4_IO05   
> >      0x00000020 /* 127 */
> > +                               SC_P_USB_SS3_TC3_LSIO_GPIO4_IO06   
> >      0x00000020 /* 131 */
> > +                               SC_P_USB_SS3_TC1_LSIO_GPIO4_IO04   
> >      0x00000020 /* 133 */
> > +                               SC_P_CSI_PCLK_LSIO_GPIO3_IO00      
> >      0x00000020 /*  96 */
> > +                               SC_P_QSPI0B_DATA3_LSIO_GPIO3_IO21  
> >      0x00000020 /*  98 */
> > +                               SC_P_SAI1_RXFS_LSIO_GPIO0_IO31     
> >      0x00000020 /* 100 */
> > +                               SC_P_QSPI0B_DQS_LSIO_GPIO3_IO22    
> >      0x00000020 /* 102 */
> > +                               SC_P_QSPI0B_SS0_B_LSIO_GPIO3_IO23  
> >      0x00000020 /* 104 */
> > +                               SC_P_QSPI0B_SS1_B_LSIO_GPIO3_IO24  
> >      0x00000020 /* 106 */
> > +                       >;
> > +               };
> > +
> > +               pinctrl_hog2: hog2grp {
> > +                       fsl,pins = <
> > +                               SC_P_CSI_MCLK_LSIO_GPIO3_IO01      
> >      0x00000020 /*  75 */
> > +                               SC_P_QSPI0A_SS0_B_LSIO_GPIO3_IO14  
> >      0x00000020 /*  77 */
> > +                               SC_P_QSPI0A_SS1_B_LSIO_GPIO3_IO15  
> >      0x00000020 /*  89 */
> > +                               SC_P_QSPI0A_SCLK_LSIO_GPIO3_IO16   
> >      0x00000020 /*  93 */
> > +                       >;
> > +               };
> > +
> > +               /* Off Module I2C */
> > +               pinctrl_i2c1: i2c1grp {
> > +                       fsl,pins = <
> > +                               SC_P_MIPI_DSI0_GPIO0_00_ADMA_I2C1_S
> > CL   0x06000021
> > +                               SC_P_MIPI_DSI0_GPIO0_01_ADMA_I2C1_S
> > DA   0x06000021
> > +                       >;
> > +               };
> > +
> > +               /*INT*/
> > +               pinctrl_usb3503a: usb3503a-grp {
> > +                       fsl,pins = <
> > +                               SC_P_MIPI_CSI0_MCLK_OUT_LSIO_GPIO3_
> > IO04 0x00000061
> > +                       >;
> > +               };
> > +
> > +               pinctrl_usbc_det: usbc-det {
> > +                       fsl,pins = <
> > +                               SC_P_ENET0_REFCLK_125M_25M_LSIO_GPI
> > O5_IO09      0x06000040
> > +                       >;
> > +               };
> > +
> > +               pinctrl_usbh1_reg: usbh1-reg {
> > +                       fsl,pins = <
> > +                               SC_P_USB_SS3_TC0_LSIO_GPIO4_IO03   
> >      0x06000040
> > +                       >;
> > +               };
> > +
> > +               pinctrl_usdhc1: usdhc1grp {
> > +                       fsl,pins = <
> > +                               SC_P_EMMC0_CLK_CONN_EMMC0_CLK      
> >      0x06000041
> > +                               SC_P_EMMC0_CMD_CONN_EMMC0_CMD      
> >      0x00000021
> > +                               SC_P_EMMC0_DATA0_CONN_EMMC0_DATA0  
> >      0x00000021
> > +                               SC_P_EMMC0_DATA1_CONN_EMMC0_DATA1  
> >      0x00000021
> > +                               SC_P_EMMC0_DATA2_CONN_EMMC0_DATA2  
> >      0x00000021
> > +                               SC_P_EMMC0_DATA3_CONN_EMMC0_DATA3  
> >      0x00000021
> > +                               SC_P_EMMC0_DATA4_CONN_EMMC0_DATA4  
> >      0x00000021
> > +                               SC_P_EMMC0_DATA5_CONN_EMMC0_DATA5  
> >      0x00000021
> > +                               SC_P_EMMC0_DATA6_CONN_EMMC0_DATA6  
> >      0x00000021
> > +                               SC_P_EMMC0_DATA7_CONN_EMMC0_DATA7  
> >      0x00000021
> > +                               SC_P_EMMC0_STROBE_CONN_EMMC0_STROBE
> >      0x00000041
> > +                               SC_P_EMMC0_RESET_B_CONN_EMMC0_RESET
> > _B   0x00000021
> > +                       >;
> > +               };
> > +
> > +               pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
> > +                       fsl,pins = <
> > +                               SC_P_EMMC0_CLK_CONN_EMMC0_CLK      
> >      0x06000041
> > +                               SC_P_EMMC0_CMD_CONN_EMMC0_CMD      
> >      0x00000021
> > +                               SC_P_EMMC0_DATA0_CONN_EMMC0_DATA0  
> >      0x00000021
> > +                               SC_P_EMMC0_DATA1_CONN_EMMC0_DATA1  
> >      0x00000021
> > +                               SC_P_EMMC0_DATA2_CONN_EMMC0_DATA2  
> >      0x00000021
> > +                               SC_P_EMMC0_DATA3_CONN_EMMC0_DATA3  
> >      0x00000021
> > +                               SC_P_EMMC0_DATA4_CONN_EMMC0_DATA4  
> >      0x00000021
> > +                               SC_P_EMMC0_DATA5_CONN_EMMC0_DATA5  
> >      0x00000021
> > +                               SC_P_EMMC0_DATA6_CONN_EMMC0_DATA6  
> >      0x00000021
> > +                               SC_P_EMMC0_DATA7_CONN_EMMC0_DATA7  
> >      0x00000021
> > +                               SC_P_EMMC0_STROBE_CONN_EMMC0_STROBE
> >      0x00000041
> > +                               SC_P_EMMC0_RESET_B_CONN_EMMC0_RESET
> > _B   0x00000021
> > +                       >;
> > +               };
> > +
> > +               pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
> > +                       fsl,pins = <
> > +                               SC_P_EMMC0_CLK_CONN_EMMC0_CLK      
> >      0x06000041
> > +                               SC_P_EMMC0_CMD_CONN_EMMC0_CMD      
> >      0x00000021
> > +                               SC_P_EMMC0_DATA0_CONN_EMMC0_DATA0  
> >      0x00000021
> > +                               SC_P_EMMC0_DATA1_CONN_EMMC0_DATA1  
> >      0x00000021
> > +                               SC_P_EMMC0_DATA2_CONN_EMMC0_DATA2  
> >      0x00000021
> > +                               SC_P_EMMC0_DATA3_CONN_EMMC0_DATA3  
> >      0x00000021
> > +                               SC_P_EMMC0_DATA4_CONN_EMMC0_DATA4  
> >      0x00000021
> > +                               SC_P_EMMC0_DATA5_CONN_EMMC0_DATA5  
> >      0x00000021
> > +                               SC_P_EMMC0_DATA6_CONN_EMMC0_DATA6  
> >      0x00000021
> > +                               SC_P_EMMC0_DATA7_CONN_EMMC0_DATA7  
> >      0x00000021
> > +                               SC_P_EMMC0_STROBE_CONN_EMMC0_STROBE
> >      0x00000041
> > +                               SC_P_EMMC0_RESET_B_CONN_EMMC0_RESET
> > _B   0x00000021
> > +                       >;
> > +               };
> > +
> > +               pinctrl_usdhc2_gpio: usdhc2gpiogrp {
> > +                       fsl,pins = <
> > +                               SC_P_QSPI0A_DATA0_LSIO_GPIO3_IO09  
> >      0x06000021
> > +                       >;
> > +               };
> > +
> > +               pinctrl_usdhc2: usdhc2grp {
> > +                       fsl,pins = <
> > +                               SC_P_USDHC1_CLK_CONN_USDHC1_CLK    
> >      0x06000041
> > +                               SC_P_USDHC1_CMD_CONN_USDHC1_CMD    
> >      0x00000021
> > +                               SC_P_USDHC1_DATA0_CONN_USDHC1_DATA0
> >      0x00000021
> > +                               SC_P_USDHC1_DATA1_CONN_USDHC1_DATA1
> >      0x00000021
> > +                               SC_P_USDHC1_DATA2_CONN_USDHC1_DATA2
> >      0x00000021
> > +                               SC_P_USDHC1_DATA3_CONN_USDHC1_DATA3
> >      0x00000021
> > +                               SC_P_USDHC1_VSELECT_CONN_USDHC1_VSE
> > LECT 0x00000021
> > +                       >;
> > +               };
> > +
> > +               pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
> > +                       fsl,pins = <
> > +                               SC_P_USDHC1_CLK_CONN_USDHC1_CLK    
> >      0x06000041
> > +                               SC_P_USDHC1_CMD_CONN_USDHC1_CMD    
> >      0x00000021
> > +                               SC_P_USDHC1_DATA0_CONN_USDHC1_DATA0
> >      0x00000021
> > +                               SC_P_USDHC1_DATA1_CONN_USDHC1_DATA1
> >      0x00000021
> > +                               SC_P_USDHC1_DATA2_CONN_USDHC1_DATA2
> >      0x00000021
> > +                               SC_P_USDHC1_DATA3_CONN_USDHC1_DATA3
> >      0x00000021
> > +                               SC_P_USDHC1_VSELECT_CONN_USDHC1_VSE
> > LECT 0x00000021
> > +                       >;
> > +               };
> > +
> > +               pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
> > +                       fsl,pins = <
> > +                               SC_P_USDHC1_CLK_CONN_USDHC1_CLK    
> >      0x06000041
> > +                               SC_P_USDHC1_CMD_CONN_USDHC1_CMD    
> >      0x00000021
> > +                               SC_P_USDHC1_DATA0_CONN_USDHC1_DATA0
> >      0x00000021
> > +                               SC_P_USDHC1_DATA1_CONN_USDHC1_DATA1
> >      0x00000021
> > +                               SC_P_USDHC1_DATA2_CONN_USDHC1_DATA2
> >      0x00000021
> > +                               SC_P_USDHC1_DATA3_CONN_USDHC1_DATA3
> >      0x00000021
> > +                               SC_P_USDHC1_VSELECT_CONN_USDHC1_VSE
> > LECT 0x00000021
> > +                       >;
> > +               };
> > +       };
> > +};
> > +
> > +&lpuart0 {
> > +       pinctrl-names = "default";
> > +       pinctrl-0 = <&pinctrl_lpuart0>;
> > +       status = "okay";
> > +};
> > +
> > +&lpuart3 {
> > +       pinctrl-names = "default";
> > +       pinctrl-0 = <&pinctrl_lpuart3>, <&pinctrl_lpuart3_ctrl>;
> > +       status = "okay";
> > +};
> > +
> > +&gpio0 {
> > +       status = "okay";
> > +};
> > +
> > +&gpio1 {
> > +       status = "okay";
> > +};
> > +
> > +&gpio3 {
> > +       status = "okay";
> > +};
> > +
> > +&gpio4 {
> > +       status = "okay";
> > +};
> > +
> > +&fec1 {
> > +       phy-handle = <&ethphy0>;
> > +       phy-mode = "rmii";
> > +       pinctrl-names = "default";
> > +       pinctrl-0 = <&pinctrl_fec1>;
> > +       status = "okay";
> > +
> > +       mdio {
> > +               #address-cells = <1>;
> > +               #size-cells = <0>;
> > +
> > +               ethphy0: ethernet-phy at 2 {
> > +                       compatible = "ethernet-phy-ieee802.3-c22";
> > +                       max-speed = <100>;
> > +                       reg = <2>;
> > +               };
> > +       };
> > +};
> > +
> > +&i2c1 {
> > +       #address-cells = <1>;
> > +       #size-cells = <0>;
> > +       clock-frequency = <100000>;
> > +       pinctrl-names = "default";
> > +       pinctrl-0 = <&pinctrl_i2c1>;
> > +       status = "okay";
> > +};
> > +
> > +&usdhc1 {
> > +       bus-width = <8>;
> > +       non-removable;
> > +       pinctrl-names = "default", "state_100mhz", "state_200mhz";
> > +       pinctrl-0 = <&pinctrl_usdhc1>;
> > +       pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
> > +       pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
> > +       status = "okay";
> > +};
> > +
> > +&usdhc2 {
> > +       bus-width = <4>;
> > +       cd-gpios = <&gpio3 9 GPIO_ACTIVE_LOW>;
> > +       pinctrl-names = "default", "state_100mhz", "state_200mhz";
> > +       pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
> > +       pinctrl-1 = <&pinctrl_usdhc2_100mhz>,
> > <&pinctrl_usdhc2_gpio>;
> > +       pinctrl-2 = <&pinctrl_usdhc2_200mhz>,
> > <&pinctrl_usdhc2_gpio>;
> > +       status = "okay";
> > +};
> > diff --git a/arch/arm/mach-imx/imx8/Kconfig b/arch/arm/mach-
> > imx/imx8/Kconfig
> > index f76a139684..feea07f135 100644
> > --- a/arch/arm/mach-imx/imx8/Kconfig
> > +++ b/arch/arm/mach-imx/imx8/Kconfig
> > @@ -22,6 +22,11 @@ choice
> >         prompt "i.MX8 board select"
> >         optional
> > 
> > +config TARGET_COLIBRI_IMX8QXP
> > +       bool "Support Colibri iMX8QXP module"
> > +       select BOARD_LATE_INIT
> > +       select IMX8QXP
> > +
> >  config TARGET_IMX8QXP_MEK
> >         bool "Support i.MX8QXP MEK board"
> >         select BOARD_LATE_INIT
> > @@ -30,5 +35,6 @@ config TARGET_IMX8QXP_MEK
> >  endchoice
> > 
> >  source "board/freescale/imx8qxp_mek/Kconfig"
> > +source "board/toradex/colibri-imx8qxp/Kconfig"
> > 
> >  endif
> > diff --git a/board/toradex/colibri-imx8qxp/Kconfig
> > b/board/toradex/colibri-imx8qxp/Kconfig
> > new file mode 100644
> > index 0000000000..340fe72816
> > --- /dev/null
> > +++ b/board/toradex/colibri-imx8qxp/Kconfig
> > @@ -0,0 +1,30 @@
> > +if TARGET_COLIBRI_IMX8QXP
> > +
> > +config SYS_BOARD
> > +       default "colibri-imx8qxp"
> > +
> > +config SYS_VENDOR
> > +       default "toradex"
> > +
> > +config SYS_CONFIG_NAME
> > +       default "colibri-imx8qxp"
> > +
> > +config TDX_CFG_BLOCK
> > +       default y
> > +
> > +config TDX_HAVE_MMC
> > +       default y
> > +
> > +config TDX_CFG_BLOCK_DEV
> > +       default "0"
> > +
> > +config TDX_CFG_BLOCK_PART
> > +       default "1"
> > +
> > +# Toradex config block in eMMC, at the end of 1st "boot sector"
> > +config TDX_CFG_BLOCK_OFFSET
> > +       default "-512"
> > +
> > +source "board/toradex/common/Kconfig"
> > +
> > +endif
> > diff --git a/board/toradex/colibri-imx8qxp/MAINTAINERS
> > b/board/toradex/colibri-imx8qxp/MAINTAINERS
> > new file mode 100644
> > index 0000000000..39a9eb79b7
> > --- /dev/null
> > +++ b/board/toradex/colibri-imx8qxp/MAINTAINERS
> > @@ -0,0 +1,9 @@
> > +Colibri iMX8QXP
> > +M:     Marcel Ziswiler <marcel.ziswiler@toradex.com>
> > +W:     http://developer.toradex.com/software/linux/linux-software
> > +S:     Maintained
> > +F:     arch/arm/dts/fsl-imx8qxp-colibri.dts
> > +F:     arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi
> > +F:     board/toradex/colibri-imx8qxp/
> > +F:     configs/colibri-imx8qxp_defconfig
> > +F:     include/configs/colibri-imx8qxp.h
> > diff --git a/board/toradex/colibri-imx8qxp/Makefile
> > b/board/toradex/colibri-imx8qxp/Makefile
> > new file mode 100644
> > index 0000000000..f6342e1dca
> > --- /dev/null
> > +++ b/board/toradex/colibri-imx8qxp/Makefile
> > @@ -0,0 +1,7 @@
> > +#
> > +# Copyright 2019 Toradex
> > +#
> > +# SPDX-License-Identifier:     GPL-2.0+
> 
> SPDX line should be in the beginning of the file.
> 
> > +#
> > +
> > +obj-y += colibri-imx8qxp.o
> > diff --git a/board/toradex/colibri-imx8qxp/README
> > b/board/toradex/colibri-imx8qxp/README
> > new file mode 100644
> > index 0000000000..e68d183fe6
> > --- /dev/null
> > +++ b/board/toradex/colibri-imx8qxp/README
> > @@ -0,0 +1,66 @@
> > +U-Boot for the Toradex Colibri iMX8QXP V1.0B module
> > +
> > +Quick Start
> > +===========
> > +
> > +- Build the ARM trusted firmware binary
> > +- Get scfw_tcm.bin and ahab-container.img
> > +- Build U-Boot
> > +- Load U-Boot binary using uuu
> > +- Flash U-Boot binary into the eMMC
> > +- Boot
> > +
> > +Get and Build the ARM Trusted Firmware
> > +======================================
> > +
> > +$ git clone -b imx_4.14.78_1.0.0_ga 
> > https://source.codeaurora.org/external/imx/imx-atf
> > +$ cd imx-atf/
> > +$ make PLAT=imx8qxp bl31
> > +
> > +Get scfw_tcm.bin and ahab-container.img
> > +=======================================
> > +
> > +$ wget 
> > https://github.com/toradex/meta-fsl-bsp-release/blob/toradex-sumo-4.14.78-1.0.0_ga-bringup/imx/meta-bsp/recipes-bsp/imx-sc-firmware/files/mx8qx-colibri-scfw-tcm.bin?raw=true
> > +$ mv mx8qx-colibri-scfw-tcm.bin\?raw\=true mx8qx-colibri-scfw-
> > tcm.bin
> > +$ wget 
> > https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-7.6.bin
> > +$ chmod +x firmware-imx-7.6.bin
> > +$ ./firmware-imx-7.6.bin
> > +
> > +Copy the following binaries to the U-Boot folder:
> > +
> > +$ cp imx-atf/build/imx8qxp/release/bl31.bin .
> > +$ cp u-boot/u-boot.bin .
> > +
> > +Copy the following firmware to the U-Boot folder:
> > +
> > +$ cp firmware-imx-7.6/firmware/seco/ahab-container.img .
> > +
> > +Build U-Boot
> > +============
> > +
> > +$ make colibri-imx8qxp_defconfig
> > +$ make u-boot-dtb.imx
> > +
> > +Load the U-Boot Binary Using UUU
> > +================================
> > +
> > +Get the latest version of the universal update utility (uuu) aka
> > mfgtools 3.0:
> > +
> > +
> > https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fgithub.com%2FNXPmicro%2Fmfgtools%2Freleases
> > +
> > +Put the module into USB recovery aka serial downloader mode,
> > connect USB device
> > +to your host and execute uuu:
> > +
> > +sudo ./uuu u-boot/u-boot-dtb.imx
> > +
> > +Flash the U-Boot Binary into the eMMC
> > +=====================================
> > +
> > +Burn the u-boot-dtb.imx binary to the primary eMMC hardware boot
> > area partition:
> > +
> > +load mmc 1:1 $loadaddr u-boot-dtb.imx
> > +setexpr blkcnt ${filesize} + 0x1ff && setexpr blkcnt ${blkcnt} /
> > 0x200
> > +mmc dev 0 1
> > +mmc write ${loadaddr} 0x0 ${blkcnt}
> > +
> > +Boot
> > diff --git a/board/toradex/colibri-imx8qxp/colibri-imx8qxp.c
> > b/board/toradex/colibri-imx8qxp/colibri-imx8qxp.c
> > new file mode 100644
> > index 0000000000..9aa0f096d2
> > --- /dev/null
> > +++ b/board/toradex/colibri-imx8qxp/colibri-imx8qxp.c
> > @@ -0,0 +1,212 @@
> > +// SPDX-License-Identifier: GPL-2.0+
> > +/*
> > + * Copyright 2019 Toradex
> > + */
> > +
> > +#include <common.h>
> > +
> > +#include <asm/arch/clock.h>
> > +#include <asm/arch/imx8-pins.h>
> > +#include <asm/arch/iomux.h>
> > +#include <asm/arch/sci/sci.h>
> > +#include <asm/arch/sys_proto.h>
> > +#include <asm/gpio.h>
> > +#include <asm/io.h>
> > +#include <asm/mach-imx/video.h>
> > +#include <dm.h>
> > +#include <environment.h>
> > +#include <errno.h>
> > +#include <fdt_support.h>
> > +#include <fsl_esdhc.h>
> > +#include <fsl_ifc.h>
> > +#include <i2c.h>
> > +#include <linux/libfdt.h>
> > +#include <malloc.h>
> > +#include <netdev.h>
> > +#include <power-domain.h>
> > +#include <usb.h>
> > +
> > +#include "../common/tdx-cfg-block.h"
> > +
> > +DECLARE_GLOBAL_DATA_PTR;
> > +
> > +#define GPIO_PAD_CTRL  ((SC_PAD_CONFIG_NORMAL <<
> > PADRING_CONFIG_SHIFT) | \
> > +                        (SC_PAD_ISO_OFF << PADRING_LPCONFIG_SHIFT)
> > | \
> > +                        (SC_PAD_28FDSOI_DSE_DV_HIGH <<
> > PADRING_DSE_SHIFT) | \
> > +                        (SC_PAD_28FDSOI_PS_PU <<
> > PADRING_PULL_SHIFT))
> > +
> > +#define UART_PAD_CTRL  ((SC_PAD_CONFIG_OUT_IN <<
> > PADRING_CONFIG_SHIFT) | \
> > +                        (SC_PAD_ISO_OFF << PADRING_LPCONFIG_SHIFT)
> > | \
> > +                        (SC_PAD_28FDSOI_DSE_DV_HIGH <<
> > PADRING_DSE_SHIFT) | \
> > +                        (SC_PAD_28FDSOI_PS_PU <<
> > PADRING_PULL_SHIFT))
> > +
> > +static iomux_cfg_t uart3_pads[] = {
> > +       SC_P_FLEXCAN2_RX | MUX_MODE_ALT(2) |
> > MUX_PAD_CTRL(UART_PAD_CTRL),
> > +       SC_P_FLEXCAN2_TX | MUX_MODE_ALT(2) |
> > MUX_PAD_CTRL(UART_PAD_CTRL),
> > +       /* Transceiver FORCEOFF# signal, mux to use pullup */
> > +       SC_P_QSPI0B_DQS | MUX_MODE_ALT(4) |
> > MUX_PAD_CTRL(UART_PAD_CTRL),
> > +};
> > +
> > +static void setup_iomux_uart(void)
> > +{
> > +       imx8_iomux_setup_multiple_pads(uart3_pads,
> > ARRAY_SIZE(uart3_pads));
> > +}
> > +
> > +int board_early_init_f(void)
> > +{
> > +       sc_pm_clock_rate_t rate;
> > +       sc_err_t err = 0;
> > +
> > +       /*
> > +        * This works around that having only UART3 up the baudrate
> > is 1.2M
> > +        * instead of 115.2k. Set UART0 clock root to 80 MHz
> > +        */
> > +       rate = 80000000;
> > +       err = sc_pm_set_clock_rate(-1, SC_R_UART_0, SC_PM_CLK_PER,
> > &rate);
> > +       if (err != SC_ERR_NONE)
> > +               return 0;
> > +
> > +       /* Power up UART3 */
> > +       err = sc_pm_set_resource_power_mode(-1, SC_R_UART_3,
> > SC_PM_PW_MODE_ON);
> > +       if (err != SC_ERR_NONE)
> > +               return 0;
> > +
> > +       /* Set UART3 clock root to 80 MHz */
> > +       rate = 80000000;
> > +       err = sc_pm_set_clock_rate(-1, SC_R_UART_3, SC_PM_CLK_PER,
> > &rate);
> > +       if (err != SC_ERR_NONE)
> > +               return 0;
> > +
> > +       /* Enable UART3 clock root */
> > +       err = sc_pm_clock_enable(-1, SC_R_UART_3, SC_PM_CLK_PER,
> > true, false);
> > +       if (err != SC_ERR_NONE)
> > +               return 0;
> > +
> > +       setup_iomux_uart();
> > +
> > +       return 0;
> > +}
> > +
> > +#undef CONFIG_MXC_GPIO /* TODO */
> > +#ifdef CONFIG_MXC_GPIO
> > +#define IOEXP_RESET IMX_GPIO_NR(1, 1)
> > +
> > +static iomux_cfg_t board_gpios[] = {
> > +       SC_P_SPI2_SDO | MUX_MODE_ALT(4) |
> > MUX_PAD_CTRL(GPIO_PAD_CTRL),
> > +       SC_P_ENET0_REFCLK_125M_25M | MUX_MODE_ALT(4) | \
> > +               MUX_PAD_CTRL(GPIO_PAD_CTRL),
> > +};
> > +
> > +static void board_gpio_init(void)
> > +{
> > +       struct gpio_desc desc;
> > +       int ret;
> > +
> > +       ret = dm_gpio_lookup_name("gpio at 1a_3", &desc);
> > +       if (ret)
> > +               return;
> > +
> > +       ret = dm_gpio_request(&desc, "bb_per_rst_b");
> > +       if (ret)
> > +               return;
> > +
> > +       dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT);
> > +       dm_gpio_set_value(&desc, 0);
> > +       udelay(50);
> > +       dm_gpio_set_value(&desc, 1);
> > +
> > +       imx8_iomux_setup_multiple_pads(board_gpios,
> > ARRAY_SIZE(board_gpios));
> > +
> > +       /* enable i2c port expander assert reset line */
> > +       gpio_request(IOEXP_RESET, "ioexp_rst");
> > +       gpio_direction_output(IOEXP_RESET, 1);
> > +}
> > +#else
> > +static inline void board_gpio_init(void) {}
> > +#endif
> > +
> > +#if IS_ENABLED(CONFIG_FEC_MXC)
> > +#include <miiphy.h>
> > +
> > +int board_phy_config(struct phy_device *phydev)
> > +{
> > +       phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x1f);
> > +       phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x8);
> > +
> > +       phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x00);
> > +       phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x82ee);
> > +       phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x05);
> > +       phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x100);
> > +
> > +       if (phydev->drv->config)
> > +               phydev->drv->config(phydev);
> > +
> > +       return 0;
> > +}
> > +#endif
> > +
> > +void build_info(void)
> > +{
> > +       u32 sc_build = 0, sc_commit = 0;
> > +
> > +       /* Get SCFW build and commit id */
> > +       sc_misc_build_info(-1, &sc_build, &sc_commit);
> > +       if (!sc_build) {
> > +               printf("SCFW does not support build info\n");
> > +               sc_commit = 0; /* Display 0 if build info not
> > supported */
> > +       }
> > +       printf("Build: SCFW %x\n", sc_commit);
> > +}
> > +
> > +int checkboard(void)
> > +{
> > +       puts("Model: Toradex Colibri iMX8X\n");
> > +
> > +       build_info();
> > +       print_bootinfo();
> > +
> > +       return 0;
> > +}
> > +
> > +int board_init(void)
> > +{
> > +       board_gpio_init();
> > +
> > +       return 0;
> > +}
> > +
> > +void detail_board_ddr_info(void)
> > +{
> > +       puts("\nDDR    ");
> > +}
> > +
> > +/*
> > + * Board specific reset that is system reset.
> > + */
> > +void reset_cpu(ulong addr)
> > +{
> > +       /* TODO */
> > +}
> > +
> > +#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
> > +int ft_board_setup(void *blob, bd_t *bd)
> > +{
> > +       return ft_common_board_setup(blob, bd);
> > +}
> > +#endif
> > +
> > +int board_mmc_get_env_dev(int devno)
> > +{
> > +       return devno;
> > +}
> > +
> > +int board_late_init(void)
> > +{
> > +#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
> > +/* TODO move to common */
> > +       env_set("board_name", "Colibri iMX8QXP");
> > +       env_set("board_rev", "v1.0");
> > +#endif
> > +
> > +       return 0;
> > +}
> > diff --git a/board/toradex/colibri-imx8qxp/imximage.cfg
> > b/board/toradex/colibri-imx8qxp/imximage.cfg
> > new file mode 100644
> > index 0000000000..ce9e66c64d
> > --- /dev/null
> > +++ b/board/toradex/colibri-imx8qxp/imximage.cfg
> > @@ -0,0 +1,24 @@
> > +/* SPDX-License-Identifier: GPL-2.0+ */
> > +/*
> > + * Copyright 2019 Toradex
> > + *
> > + * Refer doc/README.imx8image for more details about how-to
> > configure
> > + * and create imx8image boot image
> > + */
> > +
> > +#define __ASSEMBLY__
> > +
> > +/* Boot from SD, sector size 0x400 */
> > +BOOT_FROM EMMC_FASTBOOT 0x400
> > +/* SoC type IMX8QX */
> > +SOC_TYPE IMX8QX
> > +/* Append seco container image */
> > +APPEND ahab-container.img
> > +/* Create the 2nd container */
> > +CONTAINER
> > +/* Add scfw image with exec attribute */
> > +IMAGE SCU mx8qx-colibri-scfw-tcm.bin
> > +/* Add ATF image with exec attribute */
> > +IMAGE A35 bl31.bin 0x80000000
> > +/* Add U-Boot image with load attribute */
> > +DATA A35 u-boot-dtb.bin 0x80020000
> > diff --git a/configs/colibri-imx8qxp_defconfig b/configs/colibri-
> > imx8qxp_defconfig
> > new file mode 100644
> > index 0000000000..d697546ed7
> > --- /dev/null
> > +++ b/configs/colibri-imx8qxp_defconfig
> > @@ -0,0 +1,53 @@
> > +CONFIG_ARM=y
> > +CONFIG_ARCH_IMX8=y
> > +CONFIG_SYS_TEXT_BASE=0x80020000
> > +CONFIG_SYS_MALLOC_F_LEN=0x2000
> > +CONFIG_TARGET_COLIBRI_IMX8QXP=y
> > +CONFIG_DISTRO_DEFAULTS=y
> > +CONFIG_NR_DRAM_BANKS=3
> > +CONFIG_FIT=y
> > +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/colibri-
> > imx8qxp/imximage.cfg"
> > +CONFIG_LOG=y
> > +CONFIG_VERSION_VARIABLE=y
> > +# CONFIG_DISPLAY_BOARDINFO is not set
> > +CONFIG_BOARD_EARLY_INIT_F=y
> > +CONFIG_CMD_CPU=y
> > +# CONFIG_CMD_IMPORTENV is not set
> > +CONFIG_CMD_MEMTEST=y
> > +CONFIG_CMD_CLK=y
> > +CONFIG_CMD_DM=y
> > +CONFIG_CMD_GPIO=y
> > +CONFIG_CMD_I2C=y
> > +CONFIG_CMD_MMC=y
> > +CONFIG_CMD_CACHE=y
> > +CONFIG_CMD_UUID=y
> > +CONFIG_CMD_EXT4_WRITE=y
> > +CONFIG_DEFAULT_DEVICE_TREE="fsl-imx8qxp-colibri"
> > +CONFIG_ENV_IS_IN_MMC=y
> > +CONFIG_CLK_IMX8=y
> > +CONFIG_CPU=y
> > +CONFIG_DM_GPIO=y
> > +CONFIG_MXC_GPIO=y
> > +CONFIG_DM_I2C=y
> > +CONFIG_SYS_I2C_IMX_LPI2C=y
> > +CONFIG_MISC=y
> > +CONFIG_DM_MMC=y
> > +CONFIG_PHYLIB=y
> > +CONFIG_PHY_ADDR_ENABLE=y
> > +CONFIG_PHY_MICREL=y
> > +CONFIG_DM_ETH=y
> > +CONFIG_FEC_MXC_SHARE_MDIO=y
> > +CONFIG_FEC_MXC_MDIO_BASE=0x5B040000
> > +CONFIG_FEC_MXC=y
> > +CONFIG_MII=y
> > +CONFIG_PINCTRL=y
> > +CONFIG_PINCTRL_IMX8=y
> > +CONFIG_POWER_DOMAIN=y
> > +CONFIG_IMX8_POWER_DOMAIN=y
> > +CONFIG_DM_REGULATOR=y
> > +CONFIG_DM_REGULATOR_FIXED=y
> > +CONFIG_DM_REGULATOR_GPIO=y
> > +CONFIG_DM_SERIAL=y
> > +CONFIG_FSL_LPUART=y
> > +CONFIG_DM_THERMAL=y
> > +# CONFIG_EFI_LOADER is not set
> > diff --git a/include/configs/colibri-imx8qxp.h
> > b/include/configs/colibri-imx8qxp.h
> > new file mode 100644
> > index 0000000000..33cbcb44a9
> > --- /dev/null
> > +++ b/include/configs/colibri-imx8qxp.h
> > @@ -0,0 +1,214 @@
> > +/* SPDX-License-Identifier: GPL-2.0+ */
> > +/*
> > + * Copyright 2019 Toradex
> > + */
> > +
> > +#ifndef __COLIBRI_IMX8QXP_H
> > +#define __COLIBRI_IMX8QXP_H
> > +
> > +#include <asm/arch/imx-regs.h>
> > +#include <linux/sizes.h>
> > +
> > +#define CONFIG_REMAKE_ELF
> > +
> > +#define CONFIG_DISPLAY_BOARDINFO_LATE
> > +
> > +#undef CONFIG_CMD_EXPORTENV
> > +#undef CONFIG_CMD_IMPORTENV
> > +#undef CONFIG_CMD_IMLS
> > +
> > +#undef CONFIG_CMD_CRC32
> > +#undef CONFIG_BOOTM_NETBSD
> > +
> > +#define CONFIG_FSL_ESDHC
> > +#define CONFIG_FSL_USDHC
> > +#define CONFIG_SYS_FSL_ESDHC_ADDR      0
> > +#define USDHC1_BASE_ADDR               0x5B010000
> > +#define USDHC2_BASE_ADDR               0x5B020000
> > +#define CONFIG_SUPPORT_EMMC_BOOT       /* eMMC specific */
> > +
> > +#define CONFIG_ENV_OVERWRITE
> > +
> > +#define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
> > +
> > +#define FEC_QUIRK_ENET_MAC
> > +
> > +#define CONFIG_IP_DEFRAG
> > +#define CONFIG_TFTP_BLOCKSIZE          4096
> 
> 4096 can be replaced with SZ_4K (from include/linux/sizes.h)
> 
> > +#define CONFIG_TFTP_TSIZE
> > +
> > +#define CONFIG_IPADDR                  192.168.10.2
> > +#define CONFIG_NETMASK                 255.255.255.0
> > +#define CONFIG_SERVERIP                        192.168.10.1
> > +
> > +#define MEM_LAYOUT_ENV_SETTINGS \
> > +       "fdt_addr_r=0x84000000\0" \
> > +       "kernel_addr_r=0x82000000\0" \
> > +       "ramdisk_addr_r=0x84100000\0"
> > +
> > +#ifdef CONFIG_AHAB_BOOT
> > +#define AHAB_ENV "sec_boot=yes\0"
> > +#else
> > +#define AHAB_ENV "sec_boot=no\0"
> > +#endif
> > +
> > +/* Boot M4 */
> > +#define M4_BOOT_ENV \
> > +       "m4_0_image=m4_0.bin\0" \
> > +       "loadm4image_0=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr}
> > " \
> > +               "${m4_0_image}\0" \
> > +       "m4boot_0=run loadm4image_0; dcache flush; bootaux
> > ${loadaddr} 0\0" \
> > +
> > +#define MFG_NAND_PARTITION ""
> > +
> > +#define BOOT_TARGET_DEVICES(func) \
> > +       func(MMC, mmc, 0) \
> > +       func(MMC, mmc, 1) \
> > +       func(DHCP, dhcp, na)
> > +#include <config_distro_bootcmd.h>
> > +#undef BOOTENV_RUN_NET_USB_START
> > +#define BOOTENV_RUN_NET_USB_START ""
> > +
> > +#define CONFIG_MFG_ENV_SETTINGS \
> > +       "mfgtool_args=setenv bootargs
> > console=${console},${baudrate} " \
> > +               "rdinit=/linuxrc g_mass_storage.stall=0 " \
> > +               "g_mass_storage.removable=1
> > g_mass_storage.idVendor=0x066F " \
> > +               "g_mass_storage.idProduct=0x37FF " \
> > +               "g_mass_storage.iSerialNumber=\"\" "\
> > +               MFG_NAND_PARTITION \
> > +               "video=imxdpufb5:off video=imxdpufb6:off
> > video=imxdpufb7:off " \
> > +               "clk_ignore_unused "\
> > +               "\0" \
> > +       "initrd_addr=0x83800000\0" \
> > +       "initrd_high=0xffffffff\0" \
> > +       "bootcmd_mfg=run mfgtool_args;booti ${loadaddr}
> > ${initrd_addr} " \
> > +               "${fdt_addr};\0" \
> > +
> > +/* Initial environment variables */
> > +#define CONFIG_EXTRA_ENV_SETTINGS \
> > +       AHAB_ENV \
> > +       BOOTENV \
> > +       CONFIG_MFG_ENV_SETTINGS \
> > +       M4_BOOT_ENV \
> > +       MEM_LAYOUT_ENV_SETTINGS \
> > +       "boot_fdt=try\0" \
> > +       "bootscript=echo Running bootscript from mmc ...; source\0"
> > \
> > +       "console=ttyLP3,115200
> > earlycon=lpuart32,0x5a090000,115200\0" \
> > +       "fdt_addr=0x83000000\0"                 \
> > +       "fdt_file=fsl-imx8qxp-colibri-eval-v3.dtb\0" \
> > +       "fdt_high=0xffffffffffffffff\0"         \
> > +       "finduuid=part uuid mmc ${mmcdev}:2 uuid\0" \
> > +       "image=Image\0" \
> > +       "initrd_addr=0x83800000\0"              \
> > +       "initrd_high=0xffffffffffffffff\0" \
> > +       "loadbootscript=fatload mmc ${mmcdev}:${mmcpart}
> > ${loadaddr} " \
> > +               "${script};\0" \
> > +       "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr}
> > ${fdt_file}\0" \
> > +       "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr}
> > ${image}\0" \
> > +       "mmcargs=setenv bootargs console=${console},${baudrate} " \
> > +               "root=PARTUUID=${uuid} rootwait " \
> > +       "mmcautodetect=yes\0" \
> > +       "mmcboot=echo Booting from mmc ...; " \
> > +               "run finduuid; run mmcargs; " \
> > +               "if test ${boot_fdt} = yes || test ${boot_fdt} =
> > try; then " \
> > +                       "if run loadfdt; then " \
> > +                               "booti ${loadaddr} - ${fdt_addr}; "
> > \
> > +                       "else " \
> > +                               "echo WARN: Cannot load the DT; " \
> > +                       "fi; " \
> > +               "else " \
> > +                       "echo wait for boot; " \
> > +               "fi;\0" \
> > +       "mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \
> > +       "mmcpart=" __stringify(CONFIG_SYS_MMC_IMG_LOAD_PART) "\0" \
> > +       "netargs=setenv bootargs console=${console} root=/dev/nfs
> > ip=dhcp " \
> > +               "nfsroot=${serverip}:${nfsroot},v3,tcp
> > video=imxdpufb5:off " \
> > +               "video=imxdpufb6:off video=imxdpufb7:off\0" \
> > +       "netboot=echo Booting from net ...; " \
> > +               "run netargs; " \
> > +               "if test ${ip_dyn} = yes; then " \
> > +                       "setenv get_cmd dhcp; " \
> > +               "else " \
> > +                       "setenv get_cmd tftp; " \
> > +               "fi; " \
> > +               "${get_cmd} ${loadaddr} ${image}; " \
> > +               "if test ${boot_fdt} = yes || test ${boot_fdt} =
> > try; then " \
> > +                       "if ${get_cmd} ${fdt_addr} ${fdt_file};
> > then " \
> > +                               "booti ${loadaddr} - ${fdt_addr}; "
> > \
> > +                       "else " \
> > +                               "echo WARN: Cannot load the DT; " \
> > +                       "fi; " \
> > +               "else " \
> > +                       "booti; " \
> > +               "fi;\0" \
> > +       "nfsboot=run netargs; dhcp ${loadaddr} ${image}; tftp
> > ${fdt_addr} " \
> > +               "colibri-imx8qxp/${fdt_file}; booti ${loadaddr} - "
> > \
> > +               "${fdt_addr}\0" \
> > +       "panel=NULL\0" \
> > +       "script=boot.scr\0" \
> > +       "video=imxdpufb5:off video=imxdpufb6:off
> > video=imxdpufb7:off\0"
> > +
> > +#undef CONFIG_BOOTCOMMAND
> > +#define CONFIG_BOOTCOMMAND \
> > +          "mmc dev ${mmcdev}; if mmc rescan; then " \
> > +                  "if run loadbootscript; then " \
> > +                          "run bootscript; " \
> > +                  "else " \
> > +                          "if run loadimage; then " \
> > +                                  "run mmcboot; " \
> > +                          "else run netboot; " \
> > +                          "fi; " \
> > +                  "fi; " \
> > +          "else booti ${loadaddr} - ${fdt_addr}; fi"
> > +
> > +/* Link Definitions */
> > +#define CONFIG_LOADADDR                        0x80280000
> > +
> > +#define CONFIG_SYS_LOAD_ADDR           CONFIG_LOADADDR
> > +
> > +#define CONFIG_SYS_INIT_SP_ADDR                0x80200000
> > +
> > +#define CONFIG_SYS_MEMTEST_START       0x88000000
> > +#define CONFIG_SYS_MEMTEST_END         0x89000000
> > +
> > +/* Environment in eMMC, before config block at the end of 1st
> > "boot sector" */
> > +#define CONFIG_ENV_SIZE                        (8 * 1024)
> 
>  (8 * 1024) can be replaced with SZ_8K (from include/linux/sizes.h)
> 
> > +#define CONFIG_ENV_OFFSET              (-CONFIG_ENV_SIZE + \
> > +                                        CONFIG_TDX_CFG_BLOCK_OFFSE
> > T)
> > +#define CONFIG_SYS_MMC_ENV_DEV         0
> > +#define CONFIG_SYS_MMC_ENV_PART                1
> > +
> > +#define CONFIG_SYS_MMC_IMG_LOAD_PART   1
> > +
> > +/* On Colibri iMX8 USDHC1 is eMMC, USDHC2 is 4-bit SD */
> > +#define CONFIG_SYS_MMC_ENV_DEV         0                /* USDHC1
> > eMMC */
> > +#define CONFIG_SYS_FSL_USDHC_NUM       2
> > +
> > +/* Size of malloc() pool */
> > +#define CONFIG_SYS_MALLOC_LEN          ((CONFIG_ENV_SIZE + (32 *
> > 1024)) * 1024)
> > +
> > +#define CONFIG_SYS_SDRAM_BASE          0x80000000
> > +#define CONFIG_NR_DRAM_BANKS           3
> > +#define PHYS_SDRAM_1                   0x80000000
> > +#define PHYS_SDRAM_2                   0x880000000
> > +#define PHYS_SDRAM_1_SIZE              0x80000000      /* 2 GB */
> 0x80000000 can be replaced with SZ_2G (from include/linux/sizes.h)
> > +#define PHYS_SDRAM_2_SIZE              0x00000000      /* 0 GB */
> > +
> > +/* Serial */
> > +#define CONFIG_BAUDRATE                        115200
> > +
> > +/* Monitor Command Prompt */
> > +#define CONFIG_SYS_PROMPT_HUSH_PS2     "> "
> > +#define CONFIG_SYS_CBSIZE              2048
> 
> Same as above
> 
> > +#define CONFIG_SYS_MAXARGS             64
> > +#define CONFIG_SYS_BARGSIZE            CONFIG_SYS_CBSIZE
> > +#define CONFIG_SYS_PBSIZE              (CONFIG_SYS_CBSIZE + \
> > +                                       sizeof(CONFIG_SYS_PROMPT) +
> > 16)
> > +
> > +/* Generic Timer Definitions */
> > +#define COUNTER_FREQUENCY              8000000 /* 8MHz */
> > +
> > +#define BOOTAUX_RESERVED_MEM_BASE 0x88000000
> > +#define BOOTAUX_RESERVED_MEM_SIZE 0x08000000 /* Reserve from
> > second 128MB */
> Same as above
> > +
> > +#endif /* __COLIBRI_IMX8QXP_H */
> > --
> > 2.20.1
> > 
> > _______________________________________________
> > U-Boot mailing list
> > U-Boot at lists.denx.de
> > https://lists.denx.de/listinfo/u-boot

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

* [U-Boot] [U-Boot, imx-next, v1, 01/14] ARM: Remove HSC|DDC ETH PHY reset code after switching to DM/DTS
       [not found]   ` <stefan.agner@toradex.com>
                       ` (19 preceding siblings ...)
  2019-04-01  9:09     ` [U-Boot] [U-Boot, v2, 16/22] colibri_vf: enable user debug by default sbabic at denx.de
@ 2019-04-26  9:36     ` sbabic at denx.de
  2019-04-26  9:37     ` [U-Boot] [U-Boot, imx-next, v1, 08/14] DTS: Enable USB host support (including regulators) on HSC|DDC boards sbabic at denx.de
                       ` (21 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:36 UTC (permalink / raw)
  To: u-boot

> After commit efd0b791069a ("eth: dm: fec: Add gpio phy reset binding")
> the in-board file definition of ETH PHY reset can be removed.
> Signed-off-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,RESEND,07/10] clk: imx8: add i.MX8QM clk driver
       [not found] ` <uboot-imx@nxp.com>
                     ` (15 preceding siblings ...)
  2019-04-01  8:59   ` [U-Boot] [U-Boot,v2,03/22] imx: bootaux: add dependency on vf610 sbabic at denx.de
@ 2019-04-26  9:37   ` sbabic at denx.de
  2019-04-26  9:37   ` [U-Boot] ARM: imx: Fix typo in select option for ZMX25 sbabic at denx.de
                     ` (22 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:37 UTC (permalink / raw)
  To: u-boot

> Add i.MX8QM clk driver, SDHC/FEC/UART/I2C supported.
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, imx-next, v1, 08/14] DTS: Enable USB host support (including regulators) on HSC|DDC boards
       [not found]   ` <stefan.agner@toradex.com>
                       ` (20 preceding siblings ...)
  2019-04-26  9:36     ` [U-Boot] [U-Boot, imx-next, v1, 01/14] ARM: Remove HSC|DDC ETH PHY reset code after switching to DM/DTS sbabic at denx.de
@ 2019-04-26  9:37     ` sbabic at denx.de
       [not found]     ` <alison.wang@nxp.com>
                       ` (20 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:37 UTC (permalink / raw)
  To: u-boot

> This commit enables the support for K&P's HSC|DDC imx53 based boards.
> It was also necessary to provide device tree description for regulators
> to avoid board specific code definition.
> The GPIO pin description responsible for VBUS control has been moved from
> "hog" group to usbh1 dedicated one.
> Signed-off-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  ARM: imx: Fix typo in select option for ZMX25
       [not found] ` <uboot-imx@nxp.com>
                     ` (16 preceding siblings ...)
  2019-04-26  9:37   ` [U-Boot] [U-Boot,RESEND,07/10] clk: imx8: add i.MX8QM clk driver sbabic at denx.de
@ 2019-04-26  9:37   ` sbabic at denx.de
  2019-04-26  9:37   ` [U-Boot] [U-Boot,RESEND,05/10] imx8: add cpu support sbabic at denx.de
                     ` (21 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:37 UTC (permalink / raw)
  To: u-boot

> Correct CPU_ARM926EJS1 to CPU_ARM926EJS.
> Reported-by: Robert P. J. Day <rpjday@crashcourse.ca>
> Signed-off-by: Chris Packham <judge.packham@gmail.com>
> Reviewed-by: Fabio Estevam <festevam@gmail.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 1/2] ARM: imx6: DHCOM i.MX6 PDK: use Kconfig for inclusion of DDR calibration
       [not found]         ` <lzenz@dh-electronics.de>
       [not found]           ` <eran.m@variscite.com>
@ 2019-04-26  9:37           ` sbabic at denx.de
  1 sibling, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:37 UTC (permalink / raw)
  To: u-boot

> From: Ludwig Zenz <lzenz@dh-electronics.de>
> The four x16 DDR3 are wired in T-topology. From NXP AN4467:
> 'Although not required, T-Topologies may also benefit from performing
> Write Leveling as there are package delays on both the processor and DDR
> devices that can be de-skewed by performing Write Leveling. Therefore,
> Freescale recommends determining Write Leveling calibration parameters
> for all boards, regardless of topology used.'
> That is why write level calibration is also done.
> Signed-off-by: Ludwig Zenz <lzenz@dh-electronics.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,RESEND,05/10] imx8: add cpu support
       [not found] ` <uboot-imx@nxp.com>
                     ` (17 preceding siblings ...)
  2019-04-26  9:37   ` [U-Boot] ARM: imx: Fix typo in select option for ZMX25 sbabic at denx.de
@ 2019-04-26  9:37   ` sbabic at denx.de
  2019-04-26  9:37   ` [U-Boot] imx: 8qxp_mek: fix fdt_file and console sbabic at denx.de
                     ` (20 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:37 UTC (permalink / raw)
  To: u-boot

> Add cpu type and Kconfig entry
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 11/14] colibri-imx6ull: migrate fec to using driver model
       [not found]   ` <stefan.agner@toradex.com>
                       ` (22 preceding siblings ...)
       [not found]     ` <alison.wang@nxp.com>
@ 2019-04-26  9:37     ` sbabic at denx.de
  2019-04-26  9:37     ` [U-Boot] [U-Boot, v2, 09/14] colibri-imx6ull: migrate mmc " sbabic at denx.de
                       ` (18 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:37 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Migrate Ethernet FEC to using driver model.
> Drop PHY_MICREL_KSZ90X1 which slipped in from Apalis iMX6.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  imx: 8qxp_mek: fix fdt_file and console
       [not found] ` <uboot-imx@nxp.com>
                     ` (18 preceding siblings ...)
  2019-04-26  9:37   ` [U-Boot] [U-Boot,RESEND,05/10] imx8: add cpu support sbabic at denx.de
@ 2019-04-26  9:37   ` sbabic at denx.de
  2019-04-26  9:37   ` [U-Boot] [U-Boot,2/2] mxc_ocotp: Disable fuse sense for imx8mq B1 sbabic at denx.de
                     ` (19 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:37 UTC (permalink / raw)
  To: u-boot

> Fix fdt_file and console to boot upstream Linux Kernel.
> Upstream linux use imx8qxp-mek.dtb, and pass lpuart32 to earlycon
> will not work for i.MX8QXP, only need to pass earlycon,
> check drivers/tty/serial/earlycon.c,
> " /* Just 'earlycon' is a valid param for devicetree and ACPI SPCR. */ "
> Signed-off-by: Peng Fan <peng.fan@nxp.com>
> Reviewed-by: Fabio Estevam <festevam@gmail.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v3, 14/14] ARM: dts: colibri-imx6ull: update device tree
       [not found]       ` <support.arm@toradex.com>
@ 2019-04-26  9:37         ` sbabic at denx.de
  2019-04-26  9:38         ` [U-Boot] [U-Boot, v2, 12/14] ARM: dts: colibri-imx6ull: fix uart-has-rtscts property sbabic at denx.de
  2019-04-26  9:38         ` [U-Boot] [U-Boot, v3, 13/14] ARM: dts: colibri-imx6ull: add osc32k_32k_out pinctrl sbabic at denx.de
  2 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:37 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Fix compatible node to use regular Toradex notation.
> Annotate device tree with standard Colibri pin muxing comments.
> Use open-drain I2C pin muxings.
> Alphabetically re-order iomuxc nodes.
> Rename snvs-ad7879-int-grp touch interrupt node as per Linux device tree.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  [U-Boot, v2, 01/14] tdx-cfg-block: add support for new colibri iMX6ull skus
       [not found]         ` <dominik.sliwa@toradex.com>
@ 2019-04-26  9:37           ` sbabic at denx.de
  2019-04-26  9:37           ` [U-Boot] [U-Boot, v2, 4/5] board: toradex: tdx-cfg-block: add new skus sbabic at denx.de
  2019-04-26  9:38           ` [U-Boot] [U-Boot, v2, 3/5] board: toradex: tdx-cfg-block: clean-up sku handling sbabic at denx.de
  2 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:37 UTC (permalink / raw)
  To: u-boot

> From: Gerard Salvatella <gerard.salvatella@toradex.com>
> Add support for new Colibri iMX6ULL SKUs.
> While at it also checkpatch fix the whole files.
> Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 09/14] colibri-imx6ull: migrate mmc to using driver model
       [not found]   ` <stefan.agner@toradex.com>
                       ` (23 preceding siblings ...)
  2019-04-26  9:37     ` [U-Boot] [U-Boot, v2, 11/14] colibri-imx6ull: migrate fec to using driver model sbabic at denx.de
@ 2019-04-26  9:37     ` sbabic at denx.de
  2019-04-26  9:37     ` [U-Boot] [U-Boot, imx-next, v1, 12/14] ARM: config: Remove not needed CONFIG_MXC_USB_PORT define sbabic at denx.de
                       ` (17 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:37 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Migrate MMC to using driver model.
> Migrate USDHC to using pinctrl.
> While at it also add GPIO1_IO03__OSC32K_32K_OUT pin muxing.
> While at it also update copyright period.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,2/2] mxc_ocotp: Disable fuse sense for imx8mq B1
       [not found] ` <uboot-imx@nxp.com>
                     ` (19 preceding siblings ...)
  2019-04-26  9:37   ` [U-Boot] imx: 8qxp_mek: fix fdt_file and console sbabic at denx.de
@ 2019-04-26  9:37   ` sbabic at denx.de
  2019-04-26  9:37   ` [U-Boot] [U-Boot, 1/2] mxc_ocotp: Update redundancy banks for mx7ulp B0 sbabic at denx.de
                     ` (18 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:37 UTC (permalink / raw)
  To: u-boot

> From: Ye Li <ye.li@nxp.com>
> On iMX8MQ Rev B1, reading from fuse box is not allowed. The
> OCOTP_READ_FUSE_DATA register is tied to magic number 0xff0055aa
> for chip rev. So u-boot has to disable the fuse sense function for it.
> Signed-off-by: Ye Li <ye.li@nxp.com>
> Tested-by: Anson Huang <Anson.Huang@nxp.com>
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, imx-next, v1, 12/14] ARM: config: Remove not needed CONFIG_MXC_USB_PORT define
       [not found]   ` <stefan.agner@toradex.com>
                       ` (24 preceding siblings ...)
  2019-04-26  9:37     ` [U-Boot] [U-Boot, v2, 09/14] colibri-imx6ull: migrate mmc " sbabic at denx.de
@ 2019-04-26  9:37     ` sbabic at denx.de
  2019-04-26  9:37     ` [U-Boot] [U-Boot, imx-next, v1, 10/14] USB: DM: Convert i.MX5 ehci code to driver model sbabic at denx.de
                       ` (16 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:37 UTC (permalink / raw)
  To: u-boot

> After i.MX5's EHCI conversion to DM, the CONFIG_MXC_USB_PORT is not needed
> anymore and should be removed.
> Signed-off-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, 1/2] mxc_ocotp: Update redundancy banks for mx7ulp B0
       [not found] ` <uboot-imx@nxp.com>
                     ` (20 preceding siblings ...)
  2019-04-26  9:37   ` [U-Boot] [U-Boot,2/2] mxc_ocotp: Disable fuse sense for imx8mq B1 sbabic at denx.de
@ 2019-04-26  9:37   ` sbabic at denx.de
  2019-04-26  9:37   ` [U-Boot] [U-Boot,3/8] imx8qxp: mek: Enable CMD_FUSE sbabic at denx.de
                     ` (17 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:37 UTC (permalink / raw)
  To: u-boot

> From: Ye Li <ye.li@nxp.com>
> On mx7ulp B0, beside bank 0 and 1, the fuse bank 9, 10, 28 are changed to
> Redundancy mode not ECC, so they can support to program different bits of
> a word in multiple times.
> Signed-off-by: Ye Li <ye.li@nxp.com>
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  [U-Boot, v3] ARM: dts: i.MX6Q: fix avoid_unnecessary_addr_size warnings
       [not found]       ` <fabio.estevam@nxp.com>
                           ` (7 preceding siblings ...)
       [not found]         ` <marek.vasut+renesas@gmail.com>
@ 2019-04-26  9:37         ` sbabic at denx.de
  2019-04-26  9:38         ` [U-Boot] [U-Boot, v2, 1/5] misc: imx8: remove duplicates from scfw api sbabic at denx.de
                           ` (2 subsequent siblings)
  11 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:37 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Re-synced the device tree with Linux 5.0.
> This fixes the following warnings:
> w+arch/arm/dts/imx6-apalis.dtb: Warning (reg_format): /soc/ipu at 2800000/
>  port at 2/endpoint at 0:reg: property has invalid length (4 bytes)
>  (#address-cells == 2, #size-cells == 1)
> w+arch/arm/dts/imx6-apalis.dtb: Warning (reg_format): /soc/ipu at 2800000/
>  port at 2/endpoint at 1:reg: property has invalid length (4 bytes)
>  (#address-cells == 2, #size-cells == 1)
> w+arch/arm/dts/imx6-apalis.dtb: Warning (reg_format): /soc/ipu at 2800000/
>  port at 2/endpoint at 2:reg: property has invalid length (4 bytes)
>  (#address-cells == 2, #size-cells == 1)
> w+arch/arm/dts/imx6-apalis.dtb: Warning (reg_format): /soc/ipu at 2800000/
>  port at 2/endpoint at 3:reg: property has invalid length (4 bytes)
>  (#address-cells == 2, #size-cells == 1)
> w+arch/arm/dts/imx6-apalis.dtb: Warning (reg_format): /soc/ipu at 2800000/
>  port at 2/endpoint at 4:reg: property has invalid length (4 bytes)
>  (#address-cells == 2, #size-cells == 1)
> w+arch/arm/dts/imx6-apalis.dtb: Warning (reg_format): /soc/ipu at 2800000/
>  port at 3/endpoint at 1:reg: property has invalid length (4 bytes)
>  (#address-cells == 2, #size-cells == 1)
> w+arch/arm/dts/imx6-apalis.dtb: Warning (reg_format): /soc/ipu at 2800000/
>  port at 3/endpoint at 2:reg: property has invalid length (4 bytes)
>  (#address-cells == 2, #size-cells == 1)
> w+arch/arm/dts/imx6-apalis.dtb: Warning (reg_format): /soc/ipu at 2800000/
>  port at 3/endpoint at 3:reg: property has invalid length (4 bytes)
>  (#address-cells == 2, #size-cells == 1)
> w+arch/arm/dts/imx6-apalis.dtb: Warning (reg_format): /soc/ipu at 2800000/
>  port at 3/endpoint at 4:reg: property has invalid length (4 bytes)
>  (#address-cells == 2, #size-cells == 1)
> w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
>  /soc/ipu at 2800000/port at 2/endpoint at 0: Relying on default #address-cells
>  value
> w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
>  /soc/ipu at 2800000/port at 2/endpoint at 0: Relying on default #size-cells
>  value
> w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
>  /soc/ipu at 2800000/port at 2/endpoint at 1: Relying on default #address-cells
>  value
> w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
>  /soc/ipu at 2800000/port at 2/endpoint at 1: Relying on default #size-cells
>  value
> w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
>  /soc/ipu at 2800000/port at 2/endpoint at 2: Relying on default #address-cells
>  value
> w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
>  /soc/ipu at 2800000/port at 2/endpoint at 2: Relying on default #size-cells
>  value
> w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
>  /soc/ipu at 2800000/port at 2/endpoint at 3: Relying on default #address-cells
>  value
> w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
>  /soc/ipu at 2800000/port at 2/endpoint at 3: Relying on default #size-cells
>  value
> w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
>  /soc/ipu at 2800000/port at 2/endpoint at 4: Relying on default #address-cells
>  value
> w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
>  /soc/ipu at 2800000/port at 2/endpoint at 4: Relying on default #size-cells
>  value
> w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
>  /soc/ipu at 2800000/port at 3/endpoint at 1: Relying on default #address-cells
>  value
> w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
>  /soc/ipu at 2800000/port at 3/endpoint at 1: Relying on default #size-cells
>  value
> w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
>  /soc/ipu at 2800000/port at 3/endpoint at 2: Relying on default #address-cells
>  value
> w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
>  /soc/ipu at 2800000/port at 3/endpoint at 2: Relying on default #size-cells
>  value
> w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
>  /soc/ipu at 2800000/port at 3/endpoint at 3: Relying on default #address-cells
>  value
> w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
>  /soc/ipu at 2800000/port at 3/endpoint at 3: Relying on default #size-cells
>  value
> w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
>  /soc/ipu at 2800000/port at 3/endpoint at 4: Relying on default #address-cells
>  value
> w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_default_addr_size):
>  /soc/ipu at 2800000/port at 3/endpoint at 4: Relying on default #size-cells
>  value
> w+arch/arm/dts/imx6-apalis.dtb: Warning (avoid_unnecessary_addr_size):
>  Failed prerequisite 'avoid_default_addr_size'
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Fabio Estevam <festevam@gmail.com>
> Reviewed-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,3/8] imx8qxp: mek: Enable CMD_FUSE
       [not found] ` <uboot-imx@nxp.com>
                     ` (21 preceding siblings ...)
  2019-04-26  9:37   ` [U-Boot] [U-Boot, 1/2] mxc_ocotp: Update redundancy banks for mx7ulp B0 sbabic at denx.de
@ 2019-04-26  9:37   ` sbabic at denx.de
  2019-04-26  9:37   ` [U-Boot] [U-Boot, imx-next, v1, 03/14] ARM: Enable CONFIG_DM_MMC and CONFIG_DM_BLK on HSC and DDC boards sbabic at denx.de
                     ` (16 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:37 UTC (permalink / raw)
  To: u-boot

> Enable CMD_FUSE for i.MX8QXP MEK
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, imx-next, v1, 10/14] USB: DM: Convert i.MX5 ehci code to driver model
       [not found]   ` <stefan.agner@toradex.com>
                       ` (25 preceding siblings ...)
  2019-04-26  9:37     ` [U-Boot] [U-Boot, imx-next, v1, 12/14] ARM: config: Remove not needed CONFIG_MXC_USB_PORT define sbabic at denx.de
@ 2019-04-26  9:37     ` sbabic at denx.de
  2019-04-26  9:37     ` [U-Boot] [U-Boot,v1] colibri_vf: fix tab vs. spaces sbabic at denx.de
                       ` (15 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:37 UTC (permalink / raw)
  To: u-boot

> This commit converts i.MX5's EHCI USB host driver to driver model (DM_USB).
> It is a straightforward conversion (to reuse as much code as possible),
> based on ehci-mx6.c code.
> Signed-off-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 05/14] colibri-imx6ull: fix ethernet phy power on
       [not found]       ` <max.krummenacher@toradex.com>
                           ` (74 preceding siblings ...)
  2019-04-01  8:59         ` [U-Boot] [U-Boot,07/17] imx6: ge_bx50v3: convert to DM_VIDEO sbabic at denx.de
@ 2019-04-26  9:37         ` sbabic at denx.de
       [not found]         ` <dominik.sliwa@toradex.com>
  76 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:37 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Just give the new Ethernet PHY power save mode circuitry time to settle.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, imx-next, v1, 03/14] ARM: Enable CONFIG_DM_MMC and CONFIG_DM_BLK on HSC and DDC boards
       [not found] ` <uboot-imx@nxp.com>
                     ` (22 preceding siblings ...)
  2019-04-26  9:37   ` [U-Boot] [U-Boot,3/8] imx8qxp: mek: Enable CMD_FUSE sbabic at denx.de
@ 2019-04-26  9:37   ` sbabic at denx.de
  2019-04-26  9:37   ` [U-Boot] [U-Boot, RESEND, 03/10] dt-bindings: clock: dt-bindings: pinctrl: add i.MX8QM clocks definition sbabic at denx.de
                     ` (15 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:37 UTC (permalink / raw)
  To: u-boot

> This commit enables DM_MMC and DM_BLK on imx53 based HSC and DDC boards.
> Signed-off-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, RESEND, 03/10] dt-bindings: clock: dt-bindings: pinctrl: add i.MX8QM clocks definition
       [not found] ` <uboot-imx@nxp.com>
                     ` (23 preceding siblings ...)
  2019-04-26  9:37   ` [U-Boot] [U-Boot, imx-next, v1, 03/14] ARM: Enable CONFIG_DM_MMC and CONFIG_DM_BLK on HSC and DDC boards sbabic at denx.de
@ 2019-04-26  9:37   ` sbabic at denx.de
  2019-04-26  9:37   ` [U-Boot] [U-Boot,RESEND,10/10] imx: support i.MX8QM MEK board sbabic at denx.de
                     ` (14 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:37 UTC (permalink / raw)
  To: u-boot

> Add i.MX8QM clocks definition
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,v1] colibri_vf: fix tab vs. spaces
       [not found]   ` <stefan.agner@toradex.com>
                       ` (26 preceding siblings ...)
  2019-04-26  9:37     ` [U-Boot] [U-Boot, imx-next, v1, 10/14] USB: DM: Convert i.MX5 ehci code to driver model sbabic at denx.de
@ 2019-04-26  9:37     ` sbabic at denx.de
  2019-04-26  9:37     ` [U-Boot] [U-Boot, v2, 02/14] tdx-cfg-block: simplify i.MX 6 module detection sbabic at denx.de
                       ` (14 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:37 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Fix indentation using tab vs. spaces.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,RESEND,10/10] imx: support i.MX8QM MEK board
       [not found] ` <uboot-imx@nxp.com>
                     ` (24 preceding siblings ...)
  2019-04-26  9:37   ` [U-Boot] [U-Boot, RESEND, 03/10] dt-bindings: clock: dt-bindings: pinctrl: add i.MX8QM clocks definition sbabic at denx.de
@ 2019-04-26  9:37   ` sbabic at denx.de
  2019-04-26 10:50     ` Marcel Ziswiler
  2019-04-26  9:37   ` [U-Boot] [U-Boot,1/8] imx: sip: add call_imx_sip_ret2 sbabic at denx.de
                     ` (13 subsequent siblings)
  39 siblings, 1 reply; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:37 UTC (permalink / raw)
  To: u-boot

> Add i.MX8QM MEK board support.
> Included a basic dts, enabled SPL FIT
> Boot log as below:
> U-Boot SPL 2019.01-rc1-00029-gf002213219 (Dec 24 2018 - 10:28:30 +0800)
> Normal Boot
> Trying to boot from MMC2_2
> U-Boot 2019.01-rc1-00029-gf002213219 (Dec 24 2018 - 10:28:30 +0800)
> CPU:   NXP i.MX8QM RevB A53 at 142933 MHz
> Model: Freescale i.MX8QM MEK
> Board: iMX8QM MEK
> Build: SCFW 9330215b
> Boot:  SD1
> DRAM:  6 GiB
> MMC:   FSL_SDHC: 0, FSL_SDHC: 1
> Loading Environment from MMC... *** Warning - bad CRC, using default environment
> In:    serial at 5a060000
> Out:   serial at 5a060000
> Err:   serial at 5a060000
> Net:
> Error: ethernet at 5b040000 address not set.
> eth-1: ethernet at 5b040000
> Hit any key to stop autoboot:  0
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 02/14] tdx-cfg-block: simplify i.MX 6 module detection
       [not found]   ` <stefan.agner@toradex.com>
                       ` (27 preceding siblings ...)
  2019-04-26  9:37     ` [U-Boot] [U-Boot,v1] colibri_vf: fix tab vs. spaces sbabic at denx.de
@ 2019-04-26  9:37     ` sbabic at denx.de
  2019-04-26  9:37     ` [U-Boot] [U-Boot, imx-next, v1, 14/14] boot.src: Provide dsa_core.blacklist bootarg when booting via NFS sbabic at denx.de
                       ` (13 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:37 UTC (permalink / raw)
  To: u-boot

> From: Stefan Agner <stefan.agner@toradex.com>
> Use CONFIG_TARGET_... at compile time to differentiate between
> Apalis iMX6, Colibri iMX6 and Colibri iMX6ULL. Avoid code
> duplication by moving question about Wi-Fi / Bluetooth before
> IT/non-IT decision.
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,1/8] imx: sip: add call_imx_sip_ret2
       [not found] ` <uboot-imx@nxp.com>
                     ` (25 preceding siblings ...)
  2019-04-26  9:37   ` [U-Boot] [U-Boot,RESEND,10/10] imx: support i.MX8QM MEK board sbabic at denx.de
@ 2019-04-26  9:37   ` sbabic at denx.de
  2019-04-26  9:38   ` [U-Boot] [U-Boot, RESEND, 01/10] pinctrl: imx8: add i.MX8QM compatible sbabic at denx.de
                     ` (12 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:37 UTC (permalink / raw)
  To: u-boot

> This function will be used by i.MX8 fuse driver.
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, imx-next, v1, 14/14] boot.src: Provide dsa_core.blacklist bootarg when booting via NFS
       [not found]   ` <stefan.agner@toradex.com>
                       ` (28 preceding siblings ...)
  2019-04-26  9:37     ` [U-Boot] [U-Boot, v2, 02/14] tdx-cfg-block: simplify i.MX 6 module detection sbabic at denx.de
@ 2019-04-26  9:37     ` sbabic at denx.de
  2019-04-26  9:38     ` [U-Boot] [U-Boot, imx-next, v1, 07/14] DTS: Provide USB host DTS description for i.MX53 devices sbabic at denx.de
                       ` (12 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:37 UTC (permalink / raw)
  To: u-boot

> This setup is a bit special as Linux kernel (4.19) is not supporting
> in-kernel NFS rootfs mount and Distributed Switch Architecture (DSA)
> operation.
> For that reason it was necessary to provide a bootarg to allow userspace
> enable it afterwards if needed.
> Signed-off-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 4/5] board: toradex: tdx-cfg-block: add new skus
       [not found]         ` <dominik.sliwa@toradex.com>
  2019-04-26  9:37           ` [U-Boot] [U-Boot, v2, 01/14] tdx-cfg-block: add support for new colibri iMX6ull skus sbabic at denx.de
@ 2019-04-26  9:37           ` sbabic at denx.de
  2019-04-26  9:38           ` [U-Boot] [U-Boot, v2, 3/5] board: toradex: tdx-cfg-block: clean-up sku handling sbabic at denx.de
  2 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:37 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Add all the latest new SKUs:
> - Apalis iMX8 QuadXPlus 2GB Wi-Fi / BT IT
> - Apalis iMX8 QuadMax 4GB IT
> - Apalis iMX8 QuadPlus 2GB Wi-Fi / BT
> - Apalis iMX8 QuadPlus 2GB",
> - Colibri iMX8 QuadXPlus 2GB IT
> - Colibri iMX8 DualX 1GB Wi-Fi / Bluetooth
> - Colibri iMX8 DualX 1GB
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [PATCH v2 5/5] board: toradex: add colibri imx8qxp 2gb wb it v1.0b module support
  2019-04-26  9:03               ` Peng Fan
@ 2019-04-26  9:38                 ` Marcel Ziswiler
  2019-04-26  9:59                   ` Peng Fan
  0 siblings, 1 reply; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-26  9:38 UTC (permalink / raw)
  To: u-boot

On Fri, 2019-04-26 at 09:03 +0000, Peng Fan wrote:
> > Subject: Re: [PATCH v2 5/5] board: toradex: add colibri imx8qxp 2gb
> > wb it
> > v1.0b module support
> > 
> > Hi Peng and Stefano
> > 
> > On Fri, 2019-04-26 at 10:38 +0200, Stefano Babic wrote:
> > > Hi Peng,
> > > 
> > > On 26/04/19 04:10, Peng Fan wrote:
> > > > Hi Stefano,
> > > > 
> > > > > Subject: Re: [PATCH v2 5/5] board: toradex: add colibri
> > > > > imx8qxp
> > > > > 2gb wb it v1.0b module support
> > > > > 
> > > > > Hi Marcel,
> > > > > 
> > > > > On 25/04/19 14:35, Marcel Ziswiler wrote:
> > > > > > Hi Stefano
> > > > > > 
> > > > > > On Thu, 2019-04-25 at 12:48 +0200, Stefano Babic wrote:
> > > > > > > Hi Marcel,
> > > > > > > 
> > > > > > > On 09/04/19 17:25, Marcel Ziswiler wrote:
> > > > > > > > From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> > > > > > > > 
> > > > > > > > This commit adds initial support for the Toradex
> > > > > > > > Colibri
> > > > > > > > iMX8QXP 2GB WB IT V1.0B module. Unlike the V1.0A early
> > > > > > > > access samples exclusively booting from SD card, they
> > > > > > > > are
> > > > > > > > now strapped to boot from eFuses which are factory
> > > > > > > > fused to
> > > > > > > > properly boot from their on-module eMMC. U- Boot
> > > > > > > > supports
> > > > > > > > either booting from the on-module eMMC or
> > > > > may
> > > > > > > > be used for recovery purpose using the universal update
> > > > > > > > utility
> > > > > > > > (uuu) aka mfgtools 3.0.
> > > > > > > > 
> > > > > > > > Functionality wise the following is known to be
> > > > > > > > working:
> > > > > > > > - eMMC and MMC/SD card
> > > > > > > > - Ethernet
> > > > > > > > - GPIOs
> > > > > > > > - I2C
> > > > > > > > 
> > > > > > > > Unfortunately, there is no USB functionality for the
> > > > > > > > i.MX
> > > > > > > > 8QXP as of yet.
> > > > > > > > 
> > > > > > > > Signed-off-by: Marcel Ziswiler <
> > > > > > > > marcel.ziswiler at toradex.com
> > > > > > > > 
> > > > > > > > ---
> > > > > > > > 
> > > > > > > 
> > > > > > > I merged the series and build locally (fine), but Travis
> > > > > > > complains and stops with error:
> > > > > > > 
> > > > > > > +cc1: fatal error: opening output file spl/u-boot-
> > > > > > > spl.cfgout:
> > > > > > > No such
> > > > > > > file or directory
> > > > > > > +compilation terminated.
> > > > > > > 
> > > > > > > Can you take a look at it ?
> > > > > > 
> > > > > > Sure, looks like Peng's commit caceb739ea07 ("imx: build
> > > > > > flash.bin for
> > > > > > i.MX8") takes SPL for granted while my patchset currently
> > > > > > avoids
> > > > > > it.
> > > > > 
> > > > > It looks so, yes.
> > > > > 
> > > > > > BTW: I still don't believe SPL makes much sense on i.MX 8X
> > > > > > given
> > > > > > all the other proprietary parts involved in booting.
> > > > > 
> > > > > SPL makes more sense if it is possible to detect at runtime
> > > > > the HW
> > > > > and change the configuration - for i.MX6, this means RAMS
> > > > > detection, which boot device is booting, and so on.
> > > > > 
> > > > > On i.MX8 there is a lot of proprietary parts - we lose the
> > > > > flexibility of SPL, and most features are lost (or must be
> > > > > provided by proprietary code).
> > > > > I agree that
> > > > > on this platform SPL makes less sense, and i.MX8 should be
> > > > > built
> > > > > independently if CONFIG_SPL is set (this is also for
> > > > > i.MX6 / MX5, there are boards without SPL and using the DCD
> > > > > image
> > > > > to set up the RAM controller).
> > > > 
> > > > The reason we move to use SPL on i.MX8 is that we would like to
> > > > avoid bind ATF/OP-TEE/U-Boot into a flat image with hacked
> > > > offset in
> > > > an image.
> > > > 
> > > 
> > > It seemed I have missed some point. Thanks for clarification.
> > > This
> > > makes sense.
> > 
> > OK, I was also not aware of this.
> > 
> > However, currently I am just happy the current tooling kinda works.
> > Which is we can ship stuff to customers and they may use uuu to
> > recover
> > bricked modules. So far nobody is talking about OP-TEE and such
> > advanced
> > use cases yet.
> > 
> > On the other hand enabling SPL currently does not seem to work at
> > all on our
> > hardware. Neither booting from eMMC nor recovering using uuu.
> > That is really the main reason I decided against it at least for
> > now.
> 
> In vendor tree, we use SPL to load i.MX8 container image.
> To UUU, 1st need to enable usb gadget functions in SPL, then enable
> container
> for the 2nd image. So with uuu, it not work with upstream U-Boot now.

Strange, for me this works just fine with mainline just not with SPL
being enabled e.g. as per board/toradex/colibri-imx8qxp/README:

[user at host uuu]$ sudo ./uuu u-boot/u-boot-dtb.imx
uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.2.66-0-
ga1a8e69

Success 1    Failure 0

1:33   2/ 2   [Done                        ] SDPS: done

U-Boot 2019.04-rc4-00169-g42dd45e2d9-dirty (Apr 26 2019 - 11:30:58
+0200)

CPU:   NXP i.MX8QXP RevB A35 at 1200 MHz

DRAM:  2 GiB
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
Loading Environment from MMC... *** Warning - bad CRC, using default
environment

In:    serial at 5a090000
Out:   serial at 5a090000
Err:   serial at 5a090000
Model: Toradex Colibri iMX8 QuadXPlus 2GB Wi-Fi / BT IT V1.0B, Serial#
06410651
Net:   eth0: ethernet at 5b040000
Hit any key to stop autoboot:  0 
=> 

> > > > So the bootflow now is
> > > > SPL->ATF->OPTEE->ATF->U-Boot
> > > > 
> > > > Without SPL, when generating flash.bin, we have to hack ATF to
> > > > copy
> > > > OP-TEE image from flash.bin to the runtime location.
> > > 
> > > Nevertheless, I understand that it is not strictly required to
> > > enable
> > > OPTEE to boot the kernel, and in some applications a secure zone
> > > is
> > > not required. The thing is not that SPL is used here, but to
> > > constrain
> > > all other users like Marcel to do the same. With i.MX6, even if I
> > > strongly suggested to do this to allow run time detection, I let
> > > boards without SPL and with just u-boot.imx (with built-in DCD)
> > > to
> > > flow into mainline - the board maintainer rules as he knows
> > > better
> > > where the device is used.
> > 
> > Thanks!
> > 
> > > So I will prefer that the build assume to have SPL just if SPL is
> > > configured and not in any case, letting boards without SPL (like
> > > this
> > > colibri-mx8
> > 
> > Colibri iMX8X that is while on the Apalis family we have the Apalis
> > iMX8 (e.g. with the i.MX 8QuadMax or i.MX 8QuadPlus) and the new
> > Apalis
> > iMX8X with ECC RAM still in the works. Welcome to the i.MX 8 series
> > with the
> > i.MX 8 and i.MX 8X families and careful with NXP's brilliant naming
> > scheme
> > (;-p).
> > 
> > > ) to build.
> > 
> > Don't worry. I believe I found a fix for the issue at hand and will
> > send a patch
> > shortly.
> 
> ok.
> 
> Regards,
> Peng.
> 
> > > > > > Plus currently SPL
> > > > > > actually breaks the USB serial downloader aka recovery mode
> > > > > > using the universal update utility (uuu) aka mfgtools 3.0.
> > > > 
> > > > The usb related function for i.MX8 is not ready now.
> > > 
> > > That is ok - it s WIP, it will be merged when ready. I agree with
> > > you,
> > > this is *not* a reason to avoid SPL.
> > 
> > Agreed. However, it is kinda painful requiring different U-Boot
> > configuration
> > flavours for regular boot vs. recovery. That said we used to
> > previously do this
> > on Apalis/Colibri iMX6 as well so it is definitely no show stopper.
> > 
> > > > we are almost run out
> > > > of ocram with SPL DM, thinking to use OF_PLATDATA now, then
> > > > move to
> > > > usb functions.
> > > 
> > > Understood.
> > 
> > Yeah, I also played with OF_PLATDATA once before however was not
> > entirely
> > happy with the result as of yet. I guess WIP patches welcome (;-p).
> > 
> > > Best regards,
> > > Stefano
> > 
> > Cheers
> > 
> > Marcel

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

* [U-Boot]  [U-Boot, v2, 12/14] ARM: dts: colibri-imx6ull: fix uart-has-rtscts property
       [not found]       ` <support.arm@toradex.com>
  2019-04-26  9:37         ` [U-Boot] [U-Boot, v3, 14/14] ARM: dts: colibri-imx6ull: update device tree sbabic at denx.de
@ 2019-04-26  9:38         ` sbabic at denx.de
  2019-04-26  9:38         ` [U-Boot] [U-Boot, v3, 13/14] ARM: dts: colibri-imx6ull: add osc32k_32k_out pinctrl sbabic at denx.de
  2 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:38 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Remove vendor pre-fix fsl, from uart-has-rtscts property.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, RESEND, 01/10] pinctrl: imx8: add i.MX8QM compatible
       [not found] ` <uboot-imx@nxp.com>
                     ` (26 preceding siblings ...)
  2019-04-26  9:37   ` [U-Boot] [U-Boot,1/8] imx: sip: add call_imx_sip_ret2 sbabic at denx.de
@ 2019-04-26  9:38   ` sbabic at denx.de
  2019-04-26  9:38   ` [U-Boot] imx: i.MX8MQ: clear ocotp error bit sbabic at denx.de
                     ` (11 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:38 UTC (permalink / raw)
  To: u-boot

> Add i.MX8QM compatible
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, imx-next, v1, 07/14] DTS: Provide USB host DTS description for i.MX53 devices
       [not found]   ` <stefan.agner@toradex.com>
                       ` (29 preceding siblings ...)
  2019-04-26  9:37     ` [U-Boot] [U-Boot, imx-next, v1, 14/14] boot.src: Provide dsa_core.blacklist bootarg when booting via NFS sbabic at denx.de
@ 2019-04-26  9:38     ` sbabic at denx.de
  2019-04-26  9:38     ` [U-Boot] [U-Boot, imx-next, v1, 09/14] ARM: Remove EHCI specific code from HSC|DDC board file sbabic at denx.de
                       ` (11 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:38 UTC (permalink / raw)
  To: u-boot

> This code has been ported from Linux kernel - tag v5.1-rc2.
> The difference from the kernel is the removal of:
> fsl,usbmisc = <&usbmisc 1>;
> fsl,usbphy = <&usbphy1>;
> properties, which are not needed for correct u-boot operation (as PHY
> setup is done in ehci-mx5.c file itself).
> Signed-off-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, imx-next, v1, 09/14] ARM: Remove EHCI specific code from HSC|DDC board file
       [not found]   ` <stefan.agner@toradex.com>
                       ` (30 preceding siblings ...)
  2019-04-26  9:38     ` [U-Boot] [U-Boot, imx-next, v1, 07/14] DTS: Provide USB host DTS description for i.MX53 devices sbabic at denx.de
@ 2019-04-26  9:38     ` sbabic at denx.de
  2019-04-26  9:38     ` [U-Boot] [U-Boot, imx-next, v1, 05/14] ARM: Remove non DM/DTS esdhc3 code from HSC|DDC board related files sbabic at denx.de
                       ` (10 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:38 UTC (permalink / raw)
  To: u-boot

> As EHCI on i.MX5 has been converted to driver model, the board specific
> code, necessary for VBUS USB power supply setup is not needed anymore.
> Signed-off-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, imx-next, v1, 13/14] Convert CONFIG_USB_EHCI_MX5 to Kconfig
       [not found]       ` <antti.maentausta@ge.com>
@ 2019-04-26  9:38         ` sbabic at denx.de
  0 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:38 UTC (permalink / raw)
  To: u-boot

> This converts the following to Kconfig:
>    CONFIG_USB_EHCI_MX5
> Signed-off-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 3/5] board: toradex: tdx-cfg-block: clean-up sku handling
       [not found]         ` <dominik.sliwa@toradex.com>
  2019-04-26  9:37           ` [U-Boot] [U-Boot, v2, 01/14] tdx-cfg-block: add support for new colibri iMX6ull skus sbabic at denx.de
  2019-04-26  9:37           ` [U-Boot] [U-Boot, v2, 4/5] board: toradex: tdx-cfg-block: add new skus sbabic at denx.de
@ 2019-04-26  9:38           ` sbabic at denx.de
  2 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:38 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Clean-up handling of several SKUs.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, imx-next, v1, 05/14] ARM: Remove non DM/DTS esdhc3 code from HSC|DDC board related files
       [not found]   ` <stefan.agner@toradex.com>
                       ` (31 preceding siblings ...)
  2019-04-26  9:38     ` [U-Boot] [U-Boot, imx-next, v1, 09/14] ARM: Remove EHCI specific code from HSC|DDC board file sbabic at denx.de
@ 2019-04-26  9:38     ` sbabic at denx.de
  2019-04-26  9:38     ` [U-Boot] [U-Boot, imx-next, v1, 04/14] ARM: defconfig: Move CONFIG_FSL_ESDHC to Kconfig sbabic at denx.de
                       ` (9 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:38 UTC (permalink / raw)
  To: u-boot

> After switching to DM/DTS support of esdhc3 - the code in this patch
> can be removed.
> Signed-off-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, imx-next, v1, 04/14] ARM: defconfig: Move CONFIG_FSL_ESDHC to Kconfig
       [not found]   ` <stefan.agner@toradex.com>
                       ` (32 preceding siblings ...)
  2019-04-26  9:38     ` [U-Boot] [U-Boot, imx-next, v1, 05/14] ARM: Remove non DM/DTS esdhc3 code from HSC|DDC board related files sbabic at denx.de
@ 2019-04-26  9:38     ` sbabic at denx.de
  2019-04-26  9:38     ` [U-Boot] [U-Boot, v2, 06/14] board: imx6ull: Add disable PMIC_STBY_REQ sbabic at denx.de
                       ` (8 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:38 UTC (permalink / raw)
  To: u-boot

> The CONFIG_FSL_ESDHC is now enabled and defined in Kconfig, not in
> include/configs/kp_imx53.h
> Signed-off-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  imx: i.MX8MQ: clear ocotp error bit
       [not found] ` <uboot-imx@nxp.com>
                     ` (27 preceding siblings ...)
  2019-04-26  9:38   ` [U-Boot] [U-Boot, RESEND, 01/10] pinctrl: imx8: add i.MX8QM compatible sbabic at denx.de
@ 2019-04-26  9:38   ` sbabic at denx.de
  2019-04-26  9:38   ` [U-Boot] [U-Boot, imx-next, v1, 11/14] ARM: defconfig: kp_imx53: Enable DM_USB support on HSC|DDC boards sbabic at denx.de
                     ` (10 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:38 UTC (permalink / raw)
  To: u-boot

> In case ocotp error bit is set, clear it.
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 06/14] board: imx6ull: Add disable PMIC_STBY_REQ
       [not found]   ` <stefan.agner@toradex.com>
                       ` (33 preceding siblings ...)
  2019-04-26  9:38     ` [U-Boot] [U-Boot, imx-next, v1, 04/14] ARM: defconfig: Move CONFIG_FSL_ESDHC to Kconfig sbabic at denx.de
@ 2019-04-26  9:38     ` sbabic at denx.de
  2019-04-26  9:38     ` [U-Boot] [U-Boot, v2, 07/14] colibri-imx6ull: configuration clean-up sbabic at denx.de
                       ` (7 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:38 UTC (permalink / raw)
  To: u-boot

> From: Philippe Schenker <philippe.schenker@toradex.com>
> Disable output driver of PAD CCM_PMIC_STBY_REQ. This prevents the
> SOC to request for a lower voltage during sleep. This is necessary
> because the voltage is changing too slow for the SOC to wake up
> properly.
> Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  [U-Boot, v3, 13/14] ARM: dts: colibri-imx6ull: add osc32k_32k_out pinctrl
       [not found]       ` <support.arm@toradex.com>
  2019-04-26  9:37         ` [U-Boot] [U-Boot, v3, 14/14] ARM: dts: colibri-imx6ull: update device tree sbabic at denx.de
  2019-04-26  9:38         ` [U-Boot] [U-Boot, v2, 12/14] ARM: dts: colibri-imx6ull: fix uart-has-rtscts property sbabic at denx.de
@ 2019-04-26  9:38         ` sbabic at denx.de
  2 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:38 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Add GPIO1_IO03__OSC32K_32K_OUT pin muxing.
> While at it also fix indentation of pinfunc header file.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, imx-next, v1, 11/14] ARM: defconfig: kp_imx53: Enable DM_USB support on HSC|DDC boards
       [not found] ` <uboot-imx@nxp.com>
                     ` (28 preceding siblings ...)
  2019-04-26  9:38   ` [U-Boot] imx: i.MX8MQ: clear ocotp error bit sbabic at denx.de
@ 2019-04-26  9:38   ` sbabic at denx.de
  2019-04-26  9:38   ` [U-Boot] [U-Boot, RESEND, 09/10] misc: imx8: scu: add i.MX8QM support sbabic at denx.de
                     ` (9 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:38 UTC (permalink / raw)
  To: u-boot

> This commit enables the DM_USB on HSC|DDC i.MX53 based boards.
> Signed-off-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, RESEND, 09/10] misc: imx8: scu: add i.MX8QM support
       [not found] ` <uboot-imx@nxp.com>
                     ` (29 preceding siblings ...)
  2019-04-26  9:38   ` [U-Boot] [U-Boot, imx-next, v1, 11/14] ARM: defconfig: kp_imx53: Enable DM_USB support on HSC|DDC boards sbabic at denx.de
@ 2019-04-26  9:38   ` sbabic at denx.de
  2019-04-26  9:45   ` [U-Boot] [U-Boot, RESEND, 06/10] clk: imx8: split code into common and soc specific part sbabic at denx.de
                     ` (8 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:38 UTC (permalink / raw)
  To: u-boot

> According to IMX8QXP/8QM config option, choose the clk/iomuxc
> compatible.
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 07/14] colibri-imx6ull: configuration clean-up
       [not found]   ` <stefan.agner@toradex.com>
                       ` (34 preceding siblings ...)
  2019-04-26  9:38     ` [U-Boot] [U-Boot, v2, 06/14] board: imx6ull: Add disable PMIC_STBY_REQ sbabic at denx.de
@ 2019-04-26  9:38     ` sbabic at denx.de
  2019-04-26  9:38     ` [U-Boot] [U-Boot, v2, 04/14] apalis/colibri_imx6/imx6ull: make sure loadaddr does not collide sbabic at denx.de
                       ` (6 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:38 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Drop disabling SPL_SYS_THUMB_BUILD as we anyway do not use SPL.
> Enbale CRC32 verify, USB SDP and EFI loader support.
> Drop CMD_GPT and disabling RANDOM_UUID.
> Do savedefconfig which drops USB_FUNCTION_SDP.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 04/14] apalis/colibri_imx6/imx6ull: make sure loadaddr does not collide
       [not found]   ` <stefan.agner@toradex.com>
                       ` (35 preceding siblings ...)
  2019-04-26  9:38     ` [U-Boot] [U-Boot, v2, 07/14] colibri-imx6ull: configuration clean-up sbabic at denx.de
@ 2019-04-26  9:38     ` sbabic at denx.de
  2019-04-26  9:45     ` [U-Boot] [U-Boot, v1] colibri_vf: fix ethernet by adding explicit phy node sbabic at denx.de
                       ` (5 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:38 UTC (permalink / raw)
  To: u-boot

> From: Stefan Agner <stefan.agner@toradex.com>
> Currently $loadaddr and $fdt_addr_r point to the same address. This
> might be not ideal for some distro boot scripts which make use of
> $loadaddr after loading the device tree.
> Make sure the two variables point to two different addresses. Moving
> $loadaddr is not entirly trivial since it is defined in mx6_common.h.
> Move $fdt_addr_r and $ramdisk_addr_r by 1MiB, which should be enough
> for scripts.
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 1/5] misc: imx8: remove duplicates from scfw api
       [not found]       ` <fabio.estevam@nxp.com>
                           ` (8 preceding siblings ...)
  2019-04-26  9:37         ` [U-Boot] [U-Boot, v3] ARM: dts: i.MX6Q: fix avoid_unnecessary_addr_size warnings sbabic at denx.de
@ 2019-04-26  9:38         ` sbabic at denx.de
  2019-04-26  9:45         ` [U-Boot] [U-Boot, v2, 2/5] arm: dts: imx8dx: add lpuart1, lpuart2, lpuart3 sbabic at denx.de
  2019-06-10  9:19         ` [U-Boot] [PATCH] ARM: imx: apalis_imx6: Drop ad-hoc SATA binding <mailto:u-boot-request@lists.denx.de?subject=unsubscribe> <mailto:u-boot-request@lists.denx.de?subject=subscribe> sbabic at denx.de
  11 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:38 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Remove duplicate function declarations from the SCFW API header file.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, RESEND, 06/10] clk: imx8: split code into common and soc specific part
       [not found] ` <uboot-imx@nxp.com>
                     ` (30 preceding siblings ...)
  2019-04-26  9:38   ` [U-Boot] [U-Boot, RESEND, 09/10] misc: imx8: scu: add i.MX8QM support sbabic at denx.de
@ 2019-04-26  9:45   ` sbabic at denx.de
  2019-04-26  9:45   ` [U-Boot] [U-Boot,2/8] imx8: fuse: add fuse driver sbabic at denx.de
                     ` (7 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:45 UTC (permalink / raw)
  To: u-boot

> To make it easy to add new clk driver for i.MX8, split
> the code into common part and SoC specific part.
> Make the get/set/enable non static and introduce a num_clks for
> soc_clk_dump, because the arrays are moved to clk-imx8qxp.c.
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 2/5] arm: dts: imx8dx: add lpuart1, lpuart2, lpuart3
       [not found]       ` <fabio.estevam@nxp.com>
                           ` (9 preceding siblings ...)
  2019-04-26  9:38         ` [U-Boot] [U-Boot, v2, 1/5] misc: imx8: remove duplicates from scfw api sbabic at denx.de
@ 2019-04-26  9:45         ` sbabic at denx.de
  2019-06-10  9:19         ` [U-Boot] [PATCH] ARM: imx: apalis_imx6: Drop ad-hoc SATA binding <mailto:u-boot-request@lists.denx.de?subject=unsubscribe> <mailto:u-boot-request@lists.denx.de?subject=subscribe> sbabic at denx.de
  11 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:45 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Add support for lpuart1, lpuart2 and lpuart3.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,2/8] imx8: fuse: add fuse driver
       [not found] ` <uboot-imx@nxp.com>
                     ` (31 preceding siblings ...)
  2019-04-26  9:45   ` [U-Boot] [U-Boot, RESEND, 06/10] clk: imx8: split code into common and soc specific part sbabic at denx.de
@ 2019-04-26  9:45   ` sbabic at denx.de
  2019-04-26  9:45   ` [U-Boot] ddr: imx8m: hide i.MX8M DDR options from device driver entry sbabic at denx.de
                     ` (6 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:45 UTC (permalink / raw)
  To: u-boot

> Add fuse write for i.MX8
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v1] colibri_vf: fix ethernet by adding explicit phy node
       [not found]   ` <stefan.agner@toradex.com>
                       ` (36 preceding siblings ...)
  2019-04-26  9:38     ` [U-Boot] [U-Boot, v2, 04/14] apalis/colibri_imx6/imx6ull: make sure loadaddr does not collide sbabic at denx.de
@ 2019-04-26  9:45     ` sbabic at denx.de
  2019-04-26  9:45     ` [U-Boot] [U-Boot, imx-next, v1, 02/14] DTS: Add esdhc3 device tree description tuning for HSC|DDC boards sbabic at denx.de
                       ` (4 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:45 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> The implicit fallback mechanism for searching the whole MDIO bus for at
> least one PHY has been gone with the following commit b882005a18de
> ("drivers/net/fec: phy_init: remove redundant logic"). This lead to the
> Ethernet driver erroring out as follows:
> Net:   Could not get PHY for FEC0: addr -19
> eth-1: fec at 400d1000
> Colibri VFxx # dhcp
> Could not get PHY for FEC0: addr -19
> Could not get PHY for FEC0: addr -19
> Could not get PHY for FEC0: addr -19
> Could not get PHY for FEC0: addr -19
> No ethernet found.
> Could not get PHY for FEC0: addr -19
> Colibri VFxx #
> This commit adds an explicit PHY node which makes it work again.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Hannes Schmelzer <hannes.schmelzer@br-automation.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  [U-Boot, RESEND, 02/10] dt-bindings: pinctrl: add i.MX8QM pads definition
       [not found] ` <uboot-imx@nxp.com>
                     ` (35 preceding siblings ...)
  2019-04-26  9:45   ` [U-Boot] imx8qxp: mek: enable dm-spl for pm sbabic at denx.de
@ 2019-04-26  9:45   ` sbabic at denx.de
  2019-04-26  9:45   ` [U-Boot] [U-Boot,RESEND,08/10] imx8: imx8-pins: add i.MX8QM sbabic at denx.de
                     ` (2 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:45 UTC (permalink / raw)
  To: u-boot

> Add i.MX8QM pads definition
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, imx-next, v1, 02/14] DTS: Add esdhc3 device tree description tuning for HSC|DDC boards
       [not found]   ` <stefan.agner@toradex.com>
                       ` (37 preceding siblings ...)
  2019-04-26  9:45     ` [U-Boot] [U-Boot, v1] colibri_vf: fix ethernet by adding explicit phy node sbabic at denx.de
@ 2019-04-26  9:45     ` sbabic at denx.de
  2019-04-26  9:45     ` [U-Boot] [U-Boot, v2, 03/14] colibri-imx6ull: set module variant depending on config block sbabic at denx.de
                       ` (3 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:45 UTC (permalink / raw)
  To: u-boot

> In this commit the esdhc3 controller is enabled as well as it is remaped
> to mmc0 to not break legacy code.
> The pinctrl setup (e.g. 0x1e4) is the same as one from in-board file
> definition.
> Signed-off-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] ddr: imx8m: hide i.MX8M DDR options from device driver entry
       [not found] ` <uboot-imx@nxp.com>
                     ` (32 preceding siblings ...)
  2019-04-26  9:45   ` [U-Boot] [U-Boot,2/8] imx8: fuse: add fuse driver sbabic at denx.de
@ 2019-04-26  9:45   ` sbabic at denx.de
  2019-04-26  9:45   ` [U-Boot] [U-Boot, RESEND, 04/10] arm: dts: introduce dtsi for i.MX8QM sbabic at denx.de
                     ` (5 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:45 UTC (permalink / raw)
  To: u-boot

> Use one menu to hide the several i.MX8M DDR options from device
> driver entry.
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  imx8qxp: mek: enable dm-spl for pm
       [not found] ` <uboot-imx@nxp.com>
                     ` (34 preceding siblings ...)
  2019-04-26  9:45   ` [U-Boot] [U-Boot, RESEND, 04/10] arm: dts: introduce dtsi for i.MX8QM sbabic at denx.de
@ 2019-04-26  9:45   ` sbabic at denx.de
  2019-04-26  9:45   ` [U-Boot] [U-Boot, RESEND, 02/10] dt-bindings: pinctrl: add i.MX8QM pads definition sbabic at denx.de
                     ` (3 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:45 UTC (permalink / raw)
  To: u-boot

> with u-boot,dm-spl added for imx8qx-pm node, and SPL_SIMPLE_BUS enabled,
> the bind and probe code in board file could be removed.
> Also we need to enlarge SYS_MALLOC_F_LEN to avoid calloc fail.
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 03/14] colibri-imx6ull: set module variant depending on config block
       [not found]   ` <stefan.agner@toradex.com>
                       ` (38 preceding siblings ...)
  2019-04-26  9:45     ` [U-Boot] [U-Boot, imx-next, v1, 02/14] DTS: Add esdhc3 device tree description tuning for HSC|DDC boards sbabic at denx.de
@ 2019-04-26  9:45     ` sbabic at denx.de
  2019-04-26  9:45     ` [U-Boot] [U-Boot, v2, 08/14] colibri-imx6ull: migrate pinctrl and regulators to dtb/dm sbabic at denx.de
                       ` (2 subsequent siblings)
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:45 UTC (permalink / raw)
  To: u-boot

> From: Stefan Agner <stefan.agner@toradex.com>
> Using CPU temperature grading as a discriminator if the Wi-Fi /
> Bluetooth chip is populated is no longer possible due to upcoming
> SKUs. Set variant to -wifi only if a valid config block is present
> and the product id mentions a SKU with Wi-Fi / Bluetooth.
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, RESEND, 04/10] arm: dts: introduce dtsi for i.MX8QM
       [not found] ` <uboot-imx@nxp.com>
                     ` (33 preceding siblings ...)
  2019-04-26  9:45   ` [U-Boot] ddr: imx8m: hide i.MX8M DDR options from device driver entry sbabic at denx.de
@ 2019-04-26  9:45   ` sbabic at denx.de
  2019-04-26  9:45   ` [U-Boot] imx8qxp: mek: enable dm-spl for pm sbabic at denx.de
                     ` (4 subsequent siblings)
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:45 UTC (permalink / raw)
  To: u-boot

> Introduce basic dtsi for i.MX8QM, only support SDHC/FEC/LPUART.
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  [U-Boot, v2, 08/14] colibri-imx6ull: migrate pinctrl and regulators to dtb/dm
       [not found]   ` <stefan.agner@toradex.com>
                       ` (39 preceding siblings ...)
  2019-04-26  9:45     ` [U-Boot] [U-Boot, v2, 03/14] colibri-imx6ull: set module variant depending on config block sbabic at denx.de
@ 2019-04-26  9:45     ` sbabic at denx.de
  2019-04-26  9:55     ` [U-Boot] [U-Boot, imx-next, v1, 06/14] ARM: kp_imx53: config: Do not use ${boardtype} to setup update wic file sbabic at denx.de
  2019-04-26  9:55     ` [U-Boot] [U-Boot, v2, 10/14] colibri-imx6ull: migrate usb to using driver model sbabic at denx.de
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:45 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Migrate pinctrl and regulators to device tree resp. driver model:
> Ethernet, NAND and UART.
> Drop BOARD_EARLY_INIT_F as it is anyway no longer used.
> Enable CMD_DM, CMD_MTD, CMD_REGULATOR and DM_REGULATOR_FIXED.
> While at it also update copyright period.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,RESEND,08/10] imx8: imx8-pins: add i.MX8QM
       [not found] ` <uboot-imx@nxp.com>
                     ` (36 preceding siblings ...)
  2019-04-26  9:45   ` [U-Boot] [U-Boot, RESEND, 02/10] dt-bindings: pinctrl: add i.MX8QM pads definition sbabic at denx.de
@ 2019-04-26  9:45   ` sbabic at denx.de
  2019-04-26  9:45   ` [U-Boot] imx: add lowlevel init for ARM64 sbabic at denx.de
  2019-04-26  9:55   ` [U-Boot] [U-Boot,8/8] imx8: mek: move HUSH_PARSER to defconfig sbabic at denx.de
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:45 UTC (permalink / raw)
  To: u-boot

> Add i.MX8QM entry
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot]  imx: add lowlevel init for ARM64
       [not found] ` <uboot-imx@nxp.com>
                     ` (37 preceding siblings ...)
  2019-04-26  9:45   ` [U-Boot] [U-Boot,RESEND,08/10] imx8: imx8-pins: add i.MX8QM sbabic at denx.de
@ 2019-04-26  9:45   ` sbabic at denx.de
  2019-04-26  9:55   ` [U-Boot] [U-Boot,8/8] imx8: mek: move HUSH_PARSER to defconfig sbabic at denx.de
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:45 UTC (permalink / raw)
  To: u-boot

> Sometimes we met SERROR, but only to catch it when Linux boots up.
> Let's enable catching in U-Boot to catch it ealier and ease debug.
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [PATCH v2 5/5] board: toradex: add colibri imx8qxp 2gb wb it v1.0b module support
  2019-04-26  9:20     ` Marcel Ziswiler
@ 2019-04-26  9:46       ` Stefano Babic
  2019-04-26  9:58         ` Marcel Ziswiler
  0 siblings, 1 reply; 654+ messages in thread
From: Stefano Babic @ 2019-04-26  9:46 UTC (permalink / raw)
  To: u-boot

On 26/04/19 11:20, Marcel Ziswiler wrote:
> Hi Igor
> 
> Sorry, somehow I missed your comments below (;-p).
> 
> I will send out a v4 (yes there already was a v3 BTW) shortly including
> the SPL resp. without SPL build fix.

Fine - the series (without 5/5) is already applied on u-boot-imx. Please
just send 5/5.

Regards,
Stefano

> 
> On Thu, 2019-04-11 at 12:47 +0200, Igor Opaniuk wrote:
>> Hi Marcel,
>>
>> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>
>>
>> Some minor comments below (can be addressed in different patch):
>>
>> On Tue, Apr 9, 2019 at 5:34 PM Marcel Ziswiler <marcel@ziswiler.com>
>> wrote:
>>> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>>>
>>> This commit adds initial support for the Toradex Colibri iMX8QXP
>>> 2GB WB
>>> IT V1.0B module. Unlike the V1.0A early access samples exclusively
>>> booting from SD card, they are now strapped to boot from eFuses
>>> which
>>> are factory fused to properly boot from their on-module eMMC. U-
>>> Boot
>>> supports either booting from the on-module eMMC or may be used for
>>> recovery purpose using the universal update utility (uuu) aka
>>> mfgtools
>>> 3.0.
>>>
>>> Functionality wise the following is known to be working:
>>> - eMMC and MMC/SD card
>>> - Ethernet
>>> - GPIOs
>>> - I2C
>>>
>>> Unfortunately, there is no USB functionality for the i.MX 8QXP as
>>> of
>>> yet.
>>>
>>> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>>>
>>> ---
>>>
>>> Changes in v2:
>>> - Changed imx-atf git clone command to include initial branch
>>>   information as suggested by Igor.
>>> - Sorted board file includes alphabetically as suggested by Igor.
>>> - Got rid of SPL configuration in legacy header file as suggested
>>> by
>>>   Igor and the whole use of SPL on i.MX 8X anyway neither works
>>> well
>>>   nor makes any much sense at all.
>>>
>>>  arch/arm/dts/Makefile                         |   4 +-
>>>  arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi  | 112 ++++++
>>>  arch/arm/dts/fsl-imx8qxp-colibri.dts          | 328
>>> ++++++++++++++++++
>>>  arch/arm/mach-imx/imx8/Kconfig                |   6 +
>>>  board/toradex/colibri-imx8qxp/Kconfig         |  30 ++
>>>  board/toradex/colibri-imx8qxp/MAINTAINERS     |   9 +
>>>  board/toradex/colibri-imx8qxp/Makefile        |   7 +
>>>  board/toradex/colibri-imx8qxp/README          |  66 ++++
>>>  .../toradex/colibri-imx8qxp/colibri-imx8qxp.c | 212 +++++++++++
>>>  board/toradex/colibri-imx8qxp/imximage.cfg    |  24 ++
>>>  configs/colibri-imx8qxp_defconfig             |  53 +++
>>>  include/configs/colibri-imx8qxp.h             | 214 ++++++++++++
>>>  12 files changed, 1064 insertions(+), 1 deletion(-)
>>>  create mode 100644 arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi
>>>  create mode 100644 arch/arm/dts/fsl-imx8qxp-colibri.dts
>>>  create mode 100644 board/toradex/colibri-imx8qxp/Kconfig
>>>  create mode 100644 board/toradex/colibri-imx8qxp/MAINTAINERS
>>>  create mode 100644 board/toradex/colibri-imx8qxp/Makefile
>>>  create mode 100644 board/toradex/colibri-imx8qxp/README
>>>  create mode 100644 board/toradex/colibri-imx8qxp/colibri-imx8qxp.c
>>>  create mode 100644 board/toradex/colibri-imx8qxp/imximage.cfg
>>>  create mode 100644 configs/colibri-imx8qxp_defconfig
>>>  create mode 100644 include/configs/colibri-imx8qxp.h
>>>
>>> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
>>> index 13d1d67624..2a551d42a4 100644
>>> --- a/arch/arm/dts/Makefile
>>> +++ b/arch/arm/dts/Makefile
>>> @@ -559,7 +559,9 @@ dtb-$(CONFIG_MX7) += imx7d-sdb.dtb \
>>>
>>>  dtb-$(CONFIG_ARCH_MX7ULP) += imx7ulp-evk.dtb
>>>
>>> -dtb-$(CONFIG_ARCH_IMX8) += fsl-imx8qxp-mek.dtb
>>> +dtb-$(CONFIG_ARCH_IMX8) += \
>>> +       fsl-imx8qxp-colibri.dtb \
>>> +       fsl-imx8qxp-mek.dtb
>>>
>>>  dtb-$(CONFIG_ARCH_IMX8M) += fsl-imx8mq-evk.dtb
>>>
>>> diff --git a/arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi
>>> b/arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi
>>> new file mode 100644
>>> index 0000000000..f8686befdf
>>> --- /dev/null
>>> +++ b/arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi
>>> @@ -0,0 +1,112 @@
>>> +// SPDX-License-Identifier: GPL-2.0+ OR X11
>>> +/*
>>> + * Copyright 2019 Toradex AG
>>> + */
>>> +
>>> +&mu {
>>> +       u-boot,dm-spl;
>>> +};
>>> +
>>> +&clk {
>>> +       u-boot,dm-spl;
>>> +};
>>> +
>>> +&iomuxc {
>>> +       u-boot,dm-spl;
>>> +};
>>> +
>>> +&pd_lsio {
>>> +       u-boot,dm-spl;
>>> +};
>>> +
>>> +&pd_lsio_gpio0 {
>>> +       u-boot,dm-spl;
>>> +};
>>> +
>>> +&pd_lsio_gpio1 {
>>> +       u-boot,dm-spl;
>>> +};
>>> +
>>> +&pd_lsio_gpio2 {
>>> +       u-boot,dm-spl;
>>> +};
>>> +
>>> +&pd_lsio_gpio3 {
>>> +       u-boot,dm-spl;
>>> +};
>>> +
>>> +&pd_lsio_gpio4 {
>>> +       u-boot,dm-spl;
>>> +};
>>> +
>>> +&pd_lsio_gpio5 {
>>> +       u-boot,dm-spl;
>>> +};
>>> +
>>> +&pd_lsio_gpio6 {
>>> +       u-boot,dm-spl;
>>> +};
>>> +
>>> +&pd_lsio_gpio7 {
>>> +       u-boot,dm-spl;
>>> +};
>>> +
>>> +&pd_conn {
>>> +       u-boot,dm-spl;
>>> +};
>>> +
>>> +&pd_conn_sdch0 {
>>> +       u-boot,dm-spl;
>>> +};
>>> +
>>> +&pd_conn_sdch1 {
>>> +       u-boot,dm-spl;
>>> +};
>>> +
>>> +&pd_conn_sdch2 {
>>> +       u-boot,dm-spl;
>>> +};
>>> +
>>> +&gpio0 {
>>> +       u-boot,dm-spl;
>>> +};
>>> +
>>> +&gpio1 {
>>> +       u-boot,dm-spl;
>>> +};
>>> +
>>> +&gpio2 {
>>> +       u-boot,dm-spl;
>>> +};
>>> +
>>> +&gpio3 {
>>> +       u-boot,dm-spl;
>>> +};
>>> +
>>> +&gpio4 {
>>> +       u-boot,dm-spl;
>>> +};
>>> +
>>> +&gpio5 {
>>> +       u-boot,dm-spl;
>>> +};
>>> +
>>> +&gpio6 {
>>> +       u-boot,dm-spl;
>>> +};
>>> +
>>> +&gpio7 {
>>> +       u-boot,dm-spl;
>>> +};
>>> +
>>> +&lpuart3 {
>>> +       u-boot,dm-spl;
>>> +};
>>> +
>>> +&usdhc1 {
>>> +       u-boot,dm-spl;
>>> +};
>>> +
>>> +&usdhc2 {
>>> +       u-boot,dm-spl;
>>> +};
>>> diff --git a/arch/arm/dts/fsl-imx8qxp-colibri.dts
>>> b/arch/arm/dts/fsl-imx8qxp-colibri.dts
>>> new file mode 100644
>>> index 0000000000..0c20edf2cf
>>> --- /dev/null
>>> +++ b/arch/arm/dts/fsl-imx8qxp-colibri.dts
>>> @@ -0,0 +1,328 @@
>>> +// SPDX-License-Identifier: GPL-2.0+ OR X11
>>> +/*
>>> + * Copyright 2019 Toradex AG
>>> + */
>>> +
>>> +/dts-v1/;
>>> +
>>> +#include "fsl-imx8qxp.dtsi"
>>> +#include "fsl-imx8qxp-colibri-u-boot.dtsi"
>>> +
>>> +/ {
>>> +       model = "Toradex Colibri iMX8QXP";
>>> +       compatible = "toradex,colibri-imx8qxp", "fsl,imx8qxp";
>>> +
>>> +       chosen {
>>> +               bootargs = "console=ttyLP3,115200
>>> earlycon=lpuart32,0x5a090000,115200";
>>> +               stdout-path = &lpuart3;
>>> +       };
>>> +
>>> +       reg_usbh_vbus: regulator-usbh-vbus {
>>> +               compatible = "regulator-fixed";
>>> +               pinctrl-names = "default";
>>> +               pinctrl-0 = <&pinctrl_usbh1_reg>;
>>> +               regulator-name = "usbh_vbus";
>>> +               regulator-min-microvolt = <5000000>;
>>> +               regulator-max-microvolt = <5000000>;
>>> +               gpio = <&gpio4 3 GPIO_ACTIVE_LOW>;
>>> +       };
>>> +};
>>> +
>>> +&iomuxc {
>>> +       pinctrl-names = "default";
>>> +       pinctrl-0 = <&pinctrl_hog0>, <&pinctrl_hog1>,
>>> <&pinctrl_hog2>;
>>> +
>>> +       colibri-imx8qxp {
>>> +               pinctrl_lpuart0: lpuart0grp {
>>> +                       fsl,pins = <
>>> +                               SC_P_UART0_RX_ADMA_UART0_RX     0x0
>>> 6000020
>>> +                               SC_P_UART0_TX_ADMA_UART0_TX     0x0
>>> 6000020
>>> +                       >;
>>> +               };
>>> +
>>> +               pinctrl_lpuart3: lpuart3grp {
>>> +                       fsl,pins = <
>>> +                               SC_P_FLEXCAN2_RX_ADMA_UART3_RX  0x0
>>> 6000020
>>> +                               SC_P_FLEXCAN2_TX_ADMA_UART3_TX  0x0
>>> 6000020
>>> +                       >;
>>> +               };
>>> +
>>> +               pinctrl_lpuart3_ctrl: lpuart3ctrlgrp {
>>> +                       fsl,pins = <
>>> +                               SC_P_MIPI_DSI1_GPIO0_01_LSIO_GPIO2_
>>> IO00 0x00000020 /* DTR */
>>> +                               SC_P_SAI1_RXD_LSIO_GPIO0_IO29      
>>>      0x00000020 /* CTS */
>>> +                               SC_P_SAI1_RXC_LSIO_GPIO0_IO30      
>>>      0x00000020 /* RTS */
>>> +                               SC_P_CSI_RESET_LSIO_GPIO3_IO03     
>>>      0x00000020 /* DSR */
>>> +                               SC_P_USDHC1_CD_B_LSIO_GPIO4_IO22   
>>>      0x00000020 /* DCD */
>>> +                               SC_P_CSI_EN_LSIO_GPIO3_IO02        
>>>      0x00000020 /* RI */
>>> +                       >;
>>> +               };
>>> +
>>> +               pinctrl_fec1: fec1grp {
>>> +                       fsl,pins = <
>>> +                               SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENE
>>> TB0_PAD      0x000014a0 /* Use pads in 3.3V mode */
>>> +                               SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENE
>>> TB1_PAD      0x000014a0 /* Use pads in 3.3V mode */
>>> +                               SC_P_ENET0_MDC_CONN_ENET0_MDC      
>>>              0x06000020
>>> +                               SC_P_ENET0_MDIO_CONN_ENET0_MDIO    
>>>              0x06000020
>>> +                               SC_P_ENET0_RGMII_TX_CTL_CONN_ENET0_
>>> RGMII_TX_CTL 0x00000061
>>> +                               SC_P_ENET0_RGMII_TXC_CONN_ENET0_RCL
>>> K50M_OUT     0x06000061
>>> +                               SC_P_ENET0_RGMII_TXD0_CONN_ENET0_RG
>>> MII_TXD0     0x00000061
>>> +                               SC_P_ENET0_RGMII_TXD1_CONN_ENET0_RG
>>> MII_TXD1     0x00000061
>>> +                               SC_P_ENET0_RGMII_RX_CTL_CONN_ENET0_
>>> RGMII_RX_CTL 0x00000061
>>> +                               SC_P_ENET0_RGMII_RXD0_CONN_ENET0_RG
>>> MII_RXD0     0x00000061
>>> +                               SC_P_ENET0_RGMII_RXD1_CONN_ENET0_RG
>>> MII_RXD1     0x00000061
>>> +                               SC_P_ENET0_RGMII_RXD2_CONN_ENET0_RM
>>> II_RX_ER     0x00000061
>>> +                       >;
>>> +               };
>>> +
>>> +               pinctrl_gpio_bl_on: gpio-bl-on {
>>> +                       fsl,pins = <
>>> +                               SC_P_QSPI0A_DATA3_LSIO_GPIO3_IO12  
>>>      0x00000040
>>> +                       >;
>>> +               };
>>> +
>>> +               pinctrl_hog0: hog0grp {
>>> +                       fsl,pins = <
>>> +                               SC_P_COMP_CTL_GPIO_1V8_3V3_GPIORHB_
>>> PAD  0x000514a0 /* Use pads in 3.3V mode */
>>> +                       >;
>>> +               };
>>> +
>>> +               pinctrl_hog1: hog1grp {
>>> +                       fsl,pins = <
>>> +                               SC_P_QSPI0A_DATA1_LSIO_GPIO3_IO10  
>>>      0x00000020 /*  45 */
>>> +                               SC_P_ENET0_RGMII_TXD3_LSIO_GPIO5_IO
>>> 02   0x06000020 /*  65 */
>>> +                                       SC_P_CSI_D07_CI_PI_D09     
>>>      0x00000061
>>> +                               SC_P_QSPI0A_DATA2_LSIO_GPIO3_IO11  
>>>      0x00000020 /*  69 */
>>> +                               SC_P_QSPI0A_DQS_LSIO_GPIO3_IO13    
>>>      0x00000020 /*  73 */
>>> +                               SC_P_SAI0_TXC_LSIO_GPIO0_IO26      
>>>      0x00000020 /*  79 */
>>> +                                       SC_P_CSI_D02_CI_PI_D04     
>>>      0x00000061
>>> +                               SC_P_ENET0_RGMII_RXC_LSIO_GPIO5_IO0
>>> 3    0x06000020 /*  85 */
>>> +                                       SC_P_CSI_D06_CI_PI_D08     
>>>      0x00000061
>>> +                               SC_P_QSPI0B_SCLK_LSIO_GPIO3_IO17   
>>>      0x00000020 /*  95 */
>>> +                               SC_P_SAI0_RXD_LSIO_GPIO0_IO27      
>>>      0x00000020 /*  97 */
>>> +                                       SC_P_CSI_D03_CI_PI_D05     
>>>      0x00000061
>>> +                               SC_P_QSPI0B_DATA0_LSIO_GPIO3_IO18  
>>>      0x00000020 /*  99 */
>>> +                               SC_P_SAI0_TXFS_LSIO_GPIO0_IO28     
>>>      0x00000020 /* 101 */
>>> +                                       SC_P_CSI_D00_CI_PI_D02     
>>>      0x00000061
>>> +                               SC_P_SAI0_TXD_LSIO_GPIO0_IO25      
>>>      0x00000020 /* 103 */
>>> +                                       SC_P_CSI_D01_CI_PI_D03     
>>>      0x00000061
>>
>> I seems that in 20 lines above alignment is broken a bit.
> 
> No, I believe Max intentionally did it that way downstream indicating
> that those SODIMM pins are each multiplexed onto two SoC balls. Toradex
> does this at times to gain greater pin compatibility across our module
> families.
> 
> Further comments down below taken into account. Thanks!
> 
> Cheers
> 
> Marcel
> 
>>> +                               SC_P_QSPI0B_DATA1_LSIO_GPIO3_IO19  
>>>      0x00000020 /* 105 */
>>> +                               SC_P_QSPI0B_DATA2_LSIO_GPIO3_IO20  
>>>      0x00000020 /* 107 */
>>> +                               SC_P_USB_SS3_TC2_LSIO_GPIO4_IO05   
>>>      0x00000020 /* 127 */
>>> +                               SC_P_USB_SS3_TC3_LSIO_GPIO4_IO06   
>>>      0x00000020 /* 131 */
>>> +                               SC_P_USB_SS3_TC1_LSIO_GPIO4_IO04   
>>>      0x00000020 /* 133 */
>>> +                               SC_P_CSI_PCLK_LSIO_GPIO3_IO00      
>>>      0x00000020 /*  96 */
>>> +                               SC_P_QSPI0B_DATA3_LSIO_GPIO3_IO21  
>>>      0x00000020 /*  98 */
>>> +                               SC_P_SAI1_RXFS_LSIO_GPIO0_IO31     
>>>      0x00000020 /* 100 */
>>> +                               SC_P_QSPI0B_DQS_LSIO_GPIO3_IO22    
>>>      0x00000020 /* 102 */
>>> +                               SC_P_QSPI0B_SS0_B_LSIO_GPIO3_IO23  
>>>      0x00000020 /* 104 */
>>> +                               SC_P_QSPI0B_SS1_B_LSIO_GPIO3_IO24  
>>>      0x00000020 /* 106 */
>>> +                       >;
>>> +               };
>>> +
>>> +               pinctrl_hog2: hog2grp {
>>> +                       fsl,pins = <
>>> +                               SC_P_CSI_MCLK_LSIO_GPIO3_IO01      
>>>      0x00000020 /*  75 */
>>> +                               SC_P_QSPI0A_SS0_B_LSIO_GPIO3_IO14  
>>>      0x00000020 /*  77 */
>>> +                               SC_P_QSPI0A_SS1_B_LSIO_GPIO3_IO15  
>>>      0x00000020 /*  89 */
>>> +                               SC_P_QSPI0A_SCLK_LSIO_GPIO3_IO16   
>>>      0x00000020 /*  93 */
>>> +                       >;
>>> +               };
>>> +
>>> +               /* Off Module I2C */
>>> +               pinctrl_i2c1: i2c1grp {
>>> +                       fsl,pins = <
>>> +                               SC_P_MIPI_DSI0_GPIO0_00_ADMA_I2C1_S
>>> CL   0x06000021
>>> +                               SC_P_MIPI_DSI0_GPIO0_01_ADMA_I2C1_S
>>> DA   0x06000021
>>> +                       >;
>>> +               };
>>> +
>>> +               /*INT*/
>>> +               pinctrl_usb3503a: usb3503a-grp {
>>> +                       fsl,pins = <
>>> +                               SC_P_MIPI_CSI0_MCLK_OUT_LSIO_GPIO3_
>>> IO04 0x00000061
>>> +                       >;
>>> +               };
>>> +
>>> +               pinctrl_usbc_det: usbc-det {
>>> +                       fsl,pins = <
>>> +                               SC_P_ENET0_REFCLK_125M_25M_LSIO_GPI
>>> O5_IO09      0x06000040
>>> +                       >;
>>> +               };
>>> +
>>> +               pinctrl_usbh1_reg: usbh1-reg {
>>> +                       fsl,pins = <
>>> +                               SC_P_USB_SS3_TC0_LSIO_GPIO4_IO03   
>>>      0x06000040
>>> +                       >;
>>> +               };
>>> +
>>> +               pinctrl_usdhc1: usdhc1grp {
>>> +                       fsl,pins = <
>>> +                               SC_P_EMMC0_CLK_CONN_EMMC0_CLK      
>>>      0x06000041
>>> +                               SC_P_EMMC0_CMD_CONN_EMMC0_CMD      
>>>      0x00000021
>>> +                               SC_P_EMMC0_DATA0_CONN_EMMC0_DATA0  
>>>      0x00000021
>>> +                               SC_P_EMMC0_DATA1_CONN_EMMC0_DATA1  
>>>      0x00000021
>>> +                               SC_P_EMMC0_DATA2_CONN_EMMC0_DATA2  
>>>      0x00000021
>>> +                               SC_P_EMMC0_DATA3_CONN_EMMC0_DATA3  
>>>      0x00000021
>>> +                               SC_P_EMMC0_DATA4_CONN_EMMC0_DATA4  
>>>      0x00000021
>>> +                               SC_P_EMMC0_DATA5_CONN_EMMC0_DATA5  
>>>      0x00000021
>>> +                               SC_P_EMMC0_DATA6_CONN_EMMC0_DATA6  
>>>      0x00000021
>>> +                               SC_P_EMMC0_DATA7_CONN_EMMC0_DATA7  
>>>      0x00000021
>>> +                               SC_P_EMMC0_STROBE_CONN_EMMC0_STROBE
>>>      0x00000041
>>> +                               SC_P_EMMC0_RESET_B_CONN_EMMC0_RESET
>>> _B   0x00000021
>>> +                       >;
>>> +               };
>>> +
>>> +               pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
>>> +                       fsl,pins = <
>>> +                               SC_P_EMMC0_CLK_CONN_EMMC0_CLK      
>>>      0x06000041
>>> +                               SC_P_EMMC0_CMD_CONN_EMMC0_CMD      
>>>      0x00000021
>>> +                               SC_P_EMMC0_DATA0_CONN_EMMC0_DATA0  
>>>      0x00000021
>>> +                               SC_P_EMMC0_DATA1_CONN_EMMC0_DATA1  
>>>      0x00000021
>>> +                               SC_P_EMMC0_DATA2_CONN_EMMC0_DATA2  
>>>      0x00000021
>>> +                               SC_P_EMMC0_DATA3_CONN_EMMC0_DATA3  
>>>      0x00000021
>>> +                               SC_P_EMMC0_DATA4_CONN_EMMC0_DATA4  
>>>      0x00000021
>>> +                               SC_P_EMMC0_DATA5_CONN_EMMC0_DATA5  
>>>      0x00000021
>>> +                               SC_P_EMMC0_DATA6_CONN_EMMC0_DATA6  
>>>      0x00000021
>>> +                               SC_P_EMMC0_DATA7_CONN_EMMC0_DATA7  
>>>      0x00000021
>>> +                               SC_P_EMMC0_STROBE_CONN_EMMC0_STROBE
>>>      0x00000041
>>> +                               SC_P_EMMC0_RESET_B_CONN_EMMC0_RESET
>>> _B   0x00000021
>>> +                       >;
>>> +               };
>>> +
>>> +               pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
>>> +                       fsl,pins = <
>>> +                               SC_P_EMMC0_CLK_CONN_EMMC0_CLK      
>>>      0x06000041
>>> +                               SC_P_EMMC0_CMD_CONN_EMMC0_CMD      
>>>      0x00000021
>>> +                               SC_P_EMMC0_DATA0_CONN_EMMC0_DATA0  
>>>      0x00000021
>>> +                               SC_P_EMMC0_DATA1_CONN_EMMC0_DATA1  
>>>      0x00000021
>>> +                               SC_P_EMMC0_DATA2_CONN_EMMC0_DATA2  
>>>      0x00000021
>>> +                               SC_P_EMMC0_DATA3_CONN_EMMC0_DATA3  
>>>      0x00000021
>>> +                               SC_P_EMMC0_DATA4_CONN_EMMC0_DATA4  
>>>      0x00000021
>>> +                               SC_P_EMMC0_DATA5_CONN_EMMC0_DATA5  
>>>      0x00000021
>>> +                               SC_P_EMMC0_DATA6_CONN_EMMC0_DATA6  
>>>      0x00000021
>>> +                               SC_P_EMMC0_DATA7_CONN_EMMC0_DATA7  
>>>      0x00000021
>>> +                               SC_P_EMMC0_STROBE_CONN_EMMC0_STROBE
>>>      0x00000041
>>> +                               SC_P_EMMC0_RESET_B_CONN_EMMC0_RESET
>>> _B   0x00000021
>>> +                       >;
>>> +               };
>>> +
>>> +               pinctrl_usdhc2_gpio: usdhc2gpiogrp {
>>> +                       fsl,pins = <
>>> +                               SC_P_QSPI0A_DATA0_LSIO_GPIO3_IO09  
>>>      0x06000021
>>> +                       >;
>>> +               };
>>> +
>>> +               pinctrl_usdhc2: usdhc2grp {
>>> +                       fsl,pins = <
>>> +                               SC_P_USDHC1_CLK_CONN_USDHC1_CLK    
>>>      0x06000041
>>> +                               SC_P_USDHC1_CMD_CONN_USDHC1_CMD    
>>>      0x00000021
>>> +                               SC_P_USDHC1_DATA0_CONN_USDHC1_DATA0
>>>      0x00000021
>>> +                               SC_P_USDHC1_DATA1_CONN_USDHC1_DATA1
>>>      0x00000021
>>> +                               SC_P_USDHC1_DATA2_CONN_USDHC1_DATA2
>>>      0x00000021
>>> +                               SC_P_USDHC1_DATA3_CONN_USDHC1_DATA3
>>>      0x00000021
>>> +                               SC_P_USDHC1_VSELECT_CONN_USDHC1_VSE
>>> LECT 0x00000021
>>> +                       >;
>>> +               };
>>> +
>>> +               pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
>>> +                       fsl,pins = <
>>> +                               SC_P_USDHC1_CLK_CONN_USDHC1_CLK    
>>>      0x06000041
>>> +                               SC_P_USDHC1_CMD_CONN_USDHC1_CMD    
>>>      0x00000021
>>> +                               SC_P_USDHC1_DATA0_CONN_USDHC1_DATA0
>>>      0x00000021
>>> +                               SC_P_USDHC1_DATA1_CONN_USDHC1_DATA1
>>>      0x00000021
>>> +                               SC_P_USDHC1_DATA2_CONN_USDHC1_DATA2
>>>      0x00000021
>>> +                               SC_P_USDHC1_DATA3_CONN_USDHC1_DATA3
>>>      0x00000021
>>> +                               SC_P_USDHC1_VSELECT_CONN_USDHC1_VSE
>>> LECT 0x00000021
>>> +                       >;
>>> +               };
>>> +
>>> +               pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
>>> +                       fsl,pins = <
>>> +                               SC_P_USDHC1_CLK_CONN_USDHC1_CLK    
>>>      0x06000041
>>> +                               SC_P_USDHC1_CMD_CONN_USDHC1_CMD    
>>>      0x00000021
>>> +                               SC_P_USDHC1_DATA0_CONN_USDHC1_DATA0
>>>      0x00000021
>>> +                               SC_P_USDHC1_DATA1_CONN_USDHC1_DATA1
>>>      0x00000021
>>> +                               SC_P_USDHC1_DATA2_CONN_USDHC1_DATA2
>>>      0x00000021
>>> +                               SC_P_USDHC1_DATA3_CONN_USDHC1_DATA3
>>>      0x00000021
>>> +                               SC_P_USDHC1_VSELECT_CONN_USDHC1_VSE
>>> LECT 0x00000021
>>> +                       >;
>>> +               };
>>> +       };
>>> +};
>>> +
>>> +&lpuart0 {
>>> +       pinctrl-names = "default";
>>> +       pinctrl-0 = <&pinctrl_lpuart0>;
>>> +       status = "okay";
>>> +};
>>> +
>>> +&lpuart3 {
>>> +       pinctrl-names = "default";
>>> +       pinctrl-0 = <&pinctrl_lpuart3>, <&pinctrl_lpuart3_ctrl>;
>>> +       status = "okay";
>>> +};
>>> +
>>> +&gpio0 {
>>> +       status = "okay";
>>> +};
>>> +
>>> +&gpio1 {
>>> +       status = "okay";
>>> +};
>>> +
>>> +&gpio3 {
>>> +       status = "okay";
>>> +};
>>> +
>>> +&gpio4 {
>>> +       status = "okay";
>>> +};
>>> +
>>> +&fec1 {
>>> +       phy-handle = <&ethphy0>;
>>> +       phy-mode = "rmii";
>>> +       pinctrl-names = "default";
>>> +       pinctrl-0 = <&pinctrl_fec1>;
>>> +       status = "okay";
>>> +
>>> +       mdio {
>>> +               #address-cells = <1>;
>>> +               #size-cells = <0>;
>>> +
>>> +               ethphy0: ethernet-phy at 2 {
>>> +                       compatible = "ethernet-phy-ieee802.3-c22";
>>> +                       max-speed = <100>;
>>> +                       reg = <2>;
>>> +               };
>>> +       };
>>> +};
>>> +
>>> +&i2c1 {
>>> +       #address-cells = <1>;
>>> +       #size-cells = <0>;
>>> +       clock-frequency = <100000>;
>>> +       pinctrl-names = "default";
>>> +       pinctrl-0 = <&pinctrl_i2c1>;
>>> +       status = "okay";
>>> +};
>>> +
>>> +&usdhc1 {
>>> +       bus-width = <8>;
>>> +       non-removable;
>>> +       pinctrl-names = "default", "state_100mhz", "state_200mhz";
>>> +       pinctrl-0 = <&pinctrl_usdhc1>;
>>> +       pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
>>> +       pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
>>> +       status = "okay";
>>> +};
>>> +
>>> +&usdhc2 {
>>> +       bus-width = <4>;
>>> +       cd-gpios = <&gpio3 9 GPIO_ACTIVE_LOW>;
>>> +       pinctrl-names = "default", "state_100mhz", "state_200mhz";
>>> +       pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
>>> +       pinctrl-1 = <&pinctrl_usdhc2_100mhz>,
>>> <&pinctrl_usdhc2_gpio>;
>>> +       pinctrl-2 = <&pinctrl_usdhc2_200mhz>,
>>> <&pinctrl_usdhc2_gpio>;
>>> +       status = "okay";
>>> +};
>>> diff --git a/arch/arm/mach-imx/imx8/Kconfig b/arch/arm/mach-
>>> imx/imx8/Kconfig
>>> index f76a139684..feea07f135 100644
>>> --- a/arch/arm/mach-imx/imx8/Kconfig
>>> +++ b/arch/arm/mach-imx/imx8/Kconfig
>>> @@ -22,6 +22,11 @@ choice
>>>         prompt "i.MX8 board select"
>>>         optional
>>>
>>> +config TARGET_COLIBRI_IMX8QXP
>>> +       bool "Support Colibri iMX8QXP module"
>>> +       select BOARD_LATE_INIT
>>> +       select IMX8QXP
>>> +
>>>  config TARGET_IMX8QXP_MEK
>>>         bool "Support i.MX8QXP MEK board"
>>>         select BOARD_LATE_INIT
>>> @@ -30,5 +35,6 @@ config TARGET_IMX8QXP_MEK
>>>  endchoice
>>>
>>>  source "board/freescale/imx8qxp_mek/Kconfig"
>>> +source "board/toradex/colibri-imx8qxp/Kconfig"
>>>
>>>  endif
>>> diff --git a/board/toradex/colibri-imx8qxp/Kconfig
>>> b/board/toradex/colibri-imx8qxp/Kconfig
>>> new file mode 100644
>>> index 0000000000..340fe72816
>>> --- /dev/null
>>> +++ b/board/toradex/colibri-imx8qxp/Kconfig
>>> @@ -0,0 +1,30 @@
>>> +if TARGET_COLIBRI_IMX8QXP
>>> +
>>> +config SYS_BOARD
>>> +       default "colibri-imx8qxp"
>>> +
>>> +config SYS_VENDOR
>>> +       default "toradex"
>>> +
>>> +config SYS_CONFIG_NAME
>>> +       default "colibri-imx8qxp"
>>> +
>>> +config TDX_CFG_BLOCK
>>> +       default y
>>> +
>>> +config TDX_HAVE_MMC
>>> +       default y
>>> +
>>> +config TDX_CFG_BLOCK_DEV
>>> +       default "0"
>>> +
>>> +config TDX_CFG_BLOCK_PART
>>> +       default "1"
>>> +
>>> +# Toradex config block in eMMC, at the end of 1st "boot sector"
>>> +config TDX_CFG_BLOCK_OFFSET
>>> +       default "-512"
>>> +
>>> +source "board/toradex/common/Kconfig"
>>> +
>>> +endif
>>> diff --git a/board/toradex/colibri-imx8qxp/MAINTAINERS
>>> b/board/toradex/colibri-imx8qxp/MAINTAINERS
>>> new file mode 100644
>>> index 0000000000..39a9eb79b7
>>> --- /dev/null
>>> +++ b/board/toradex/colibri-imx8qxp/MAINTAINERS
>>> @@ -0,0 +1,9 @@
>>> +Colibri iMX8QXP
>>> +M:     Marcel Ziswiler <marcel.ziswiler@toradex.com>
>>> +W:     http://developer.toradex.com/software/linux/linux-software
>>> +S:     Maintained
>>> +F:     arch/arm/dts/fsl-imx8qxp-colibri.dts
>>> +F:     arch/arm/dts/fsl-imx8qxp-colibri-u-boot.dtsi
>>> +F:     board/toradex/colibri-imx8qxp/
>>> +F:     configs/colibri-imx8qxp_defconfig
>>> +F:     include/configs/colibri-imx8qxp.h
>>> diff --git a/board/toradex/colibri-imx8qxp/Makefile
>>> b/board/toradex/colibri-imx8qxp/Makefile
>>> new file mode 100644
>>> index 0000000000..f6342e1dca
>>> --- /dev/null
>>> +++ b/board/toradex/colibri-imx8qxp/Makefile
>>> @@ -0,0 +1,7 @@
>>> +#
>>> +# Copyright 2019 Toradex
>>> +#
>>> +# SPDX-License-Identifier:     GPL-2.0+
>>
>> SPDX line should be in the beginning of the file.
>>
>>> +#
>>> +
>>> +obj-y += colibri-imx8qxp.o
>>> diff --git a/board/toradex/colibri-imx8qxp/README
>>> b/board/toradex/colibri-imx8qxp/README
>>> new file mode 100644
>>> index 0000000000..e68d183fe6
>>> --- /dev/null
>>> +++ b/board/toradex/colibri-imx8qxp/README
>>> @@ -0,0 +1,66 @@
>>> +U-Boot for the Toradex Colibri iMX8QXP V1.0B module
>>> +
>>> +Quick Start
>>> +===========
>>> +
>>> +- Build the ARM trusted firmware binary
>>> +- Get scfw_tcm.bin and ahab-container.img
>>> +- Build U-Boot
>>> +- Load U-Boot binary using uuu
>>> +- Flash U-Boot binary into the eMMC
>>> +- Boot
>>> +
>>> +Get and Build the ARM Trusted Firmware
>>> +======================================
>>> +
>>> +$ git clone -b imx_4.14.78_1.0.0_ga 
>>> https://source.codeaurora.org/external/imx/imx-atf
>>> +$ cd imx-atf/
>>> +$ make PLAT=imx8qxp bl31
>>> +
>>> +Get scfw_tcm.bin and ahab-container.img
>>> +=======================================
>>> +
>>> +$ wget 
>>> https://github.com/toradex/meta-fsl-bsp-release/blob/toradex-sumo-4.14.78-1.0.0_ga-bringup/imx/meta-bsp/recipes-bsp/imx-sc-firmware/files/mx8qx-colibri-scfw-tcm.bin?raw=true
>>> +$ mv mx8qx-colibri-scfw-tcm.bin\?raw\=true mx8qx-colibri-scfw-
>>> tcm.bin
>>> +$ wget 
>>> https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-7.6.bin
>>> +$ chmod +x firmware-imx-7.6.bin
>>> +$ ./firmware-imx-7.6.bin
>>> +
>>> +Copy the following binaries to the U-Boot folder:
>>> +
>>> +$ cp imx-atf/build/imx8qxp/release/bl31.bin .
>>> +$ cp u-boot/u-boot.bin .
>>> +
>>> +Copy the following firmware to the U-Boot folder:
>>> +
>>> +$ cp firmware-imx-7.6/firmware/seco/ahab-container.img .
>>> +
>>> +Build U-Boot
>>> +============
>>> +
>>> +$ make colibri-imx8qxp_defconfig
>>> +$ make u-boot-dtb.imx
>>> +
>>> +Load the U-Boot Binary Using UUU
>>> +================================
>>> +
>>> +Get the latest version of the universal update utility (uuu) aka
>>> mfgtools 3.0:
>>> +
>>> +
>>> https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fgithub.com%2FNXPmicro%2Fmfgtools%2Freleases
>>> +
>>> +Put the module into USB recovery aka serial downloader mode,
>>> connect USB device
>>> +to your host and execute uuu:
>>> +
>>> +sudo ./uuu u-boot/u-boot-dtb.imx
>>> +
>>> +Flash the U-Boot Binary into the eMMC
>>> +=====================================
>>> +
>>> +Burn the u-boot-dtb.imx binary to the primary eMMC hardware boot
>>> area partition:
>>> +
>>> +load mmc 1:1 $loadaddr u-boot-dtb.imx
>>> +setexpr blkcnt ${filesize} + 0x1ff && setexpr blkcnt ${blkcnt} /
>>> 0x200
>>> +mmc dev 0 1
>>> +mmc write ${loadaddr} 0x0 ${blkcnt}
>>> +
>>> +Boot
>>> diff --git a/board/toradex/colibri-imx8qxp/colibri-imx8qxp.c
>>> b/board/toradex/colibri-imx8qxp/colibri-imx8qxp.c
>>> new file mode 100644
>>> index 0000000000..9aa0f096d2
>>> --- /dev/null
>>> +++ b/board/toradex/colibri-imx8qxp/colibri-imx8qxp.c
>>> @@ -0,0 +1,212 @@
>>> +// SPDX-License-Identifier: GPL-2.0+
>>> +/*
>>> + * Copyright 2019 Toradex
>>> + */
>>> +
>>> +#include <common.h>
>>> +
>>> +#include <asm/arch/clock.h>
>>> +#include <asm/arch/imx8-pins.h>
>>> +#include <asm/arch/iomux.h>
>>> +#include <asm/arch/sci/sci.h>
>>> +#include <asm/arch/sys_proto.h>
>>> +#include <asm/gpio.h>
>>> +#include <asm/io.h>
>>> +#include <asm/mach-imx/video.h>
>>> +#include <dm.h>
>>> +#include <environment.h>
>>> +#include <errno.h>
>>> +#include <fdt_support.h>
>>> +#include <fsl_esdhc.h>
>>> +#include <fsl_ifc.h>
>>> +#include <i2c.h>
>>> +#include <linux/libfdt.h>
>>> +#include <malloc.h>
>>> +#include <netdev.h>
>>> +#include <power-domain.h>
>>> +#include <usb.h>
>>> +
>>> +#include "../common/tdx-cfg-block.h"
>>> +
>>> +DECLARE_GLOBAL_DATA_PTR;
>>> +
>>> +#define GPIO_PAD_CTRL  ((SC_PAD_CONFIG_NORMAL <<
>>> PADRING_CONFIG_SHIFT) | \
>>> +                        (SC_PAD_ISO_OFF << PADRING_LPCONFIG_SHIFT)
>>> | \
>>> +                        (SC_PAD_28FDSOI_DSE_DV_HIGH <<
>>> PADRING_DSE_SHIFT) | \
>>> +                        (SC_PAD_28FDSOI_PS_PU <<
>>> PADRING_PULL_SHIFT))
>>> +
>>> +#define UART_PAD_CTRL  ((SC_PAD_CONFIG_OUT_IN <<
>>> PADRING_CONFIG_SHIFT) | \
>>> +                        (SC_PAD_ISO_OFF << PADRING_LPCONFIG_SHIFT)
>>> | \
>>> +                        (SC_PAD_28FDSOI_DSE_DV_HIGH <<
>>> PADRING_DSE_SHIFT) | \
>>> +                        (SC_PAD_28FDSOI_PS_PU <<
>>> PADRING_PULL_SHIFT))
>>> +
>>> +static iomux_cfg_t uart3_pads[] = {
>>> +       SC_P_FLEXCAN2_RX | MUX_MODE_ALT(2) |
>>> MUX_PAD_CTRL(UART_PAD_CTRL),
>>> +       SC_P_FLEXCAN2_TX | MUX_MODE_ALT(2) |
>>> MUX_PAD_CTRL(UART_PAD_CTRL),
>>> +       /* Transceiver FORCEOFF# signal, mux to use pullup */
>>> +       SC_P_QSPI0B_DQS | MUX_MODE_ALT(4) |
>>> MUX_PAD_CTRL(UART_PAD_CTRL),
>>> +};
>>> +
>>> +static void setup_iomux_uart(void)
>>> +{
>>> +       imx8_iomux_setup_multiple_pads(uart3_pads,
>>> ARRAY_SIZE(uart3_pads));
>>> +}
>>> +
>>> +int board_early_init_f(void)
>>> +{
>>> +       sc_pm_clock_rate_t rate;
>>> +       sc_err_t err = 0;
>>> +
>>> +       /*
>>> +        * This works around that having only UART3 up the baudrate
>>> is 1.2M
>>> +        * instead of 115.2k. Set UART0 clock root to 80 MHz
>>> +        */
>>> +       rate = 80000000;
>>> +       err = sc_pm_set_clock_rate(-1, SC_R_UART_0, SC_PM_CLK_PER,
>>> &rate);
>>> +       if (err != SC_ERR_NONE)
>>> +               return 0;
>>> +
>>> +       /* Power up UART3 */
>>> +       err = sc_pm_set_resource_power_mode(-1, SC_R_UART_3,
>>> SC_PM_PW_MODE_ON);
>>> +       if (err != SC_ERR_NONE)
>>> +               return 0;
>>> +
>>> +       /* Set UART3 clock root to 80 MHz */
>>> +       rate = 80000000;
>>> +       err = sc_pm_set_clock_rate(-1, SC_R_UART_3, SC_PM_CLK_PER,
>>> &rate);
>>> +       if (err != SC_ERR_NONE)
>>> +               return 0;
>>> +
>>> +       /* Enable UART3 clock root */
>>> +       err = sc_pm_clock_enable(-1, SC_R_UART_3, SC_PM_CLK_PER,
>>> true, false);
>>> +       if (err != SC_ERR_NONE)
>>> +               return 0;
>>> +
>>> +       setup_iomux_uart();
>>> +
>>> +       return 0;
>>> +}
>>> +
>>> +#undef CONFIG_MXC_GPIO /* TODO */
>>> +#ifdef CONFIG_MXC_GPIO
>>> +#define IOEXP_RESET IMX_GPIO_NR(1, 1)
>>> +
>>> +static iomux_cfg_t board_gpios[] = {
>>> +       SC_P_SPI2_SDO | MUX_MODE_ALT(4) |
>>> MUX_PAD_CTRL(GPIO_PAD_CTRL),
>>> +       SC_P_ENET0_REFCLK_125M_25M | MUX_MODE_ALT(4) | \
>>> +               MUX_PAD_CTRL(GPIO_PAD_CTRL),
>>> +};
>>> +
>>> +static void board_gpio_init(void)
>>> +{
>>> +       struct gpio_desc desc;
>>> +       int ret;
>>> +
>>> +       ret = dm_gpio_lookup_name("gpio at 1a_3", &desc);
>>> +       if (ret)
>>> +               return;
>>> +
>>> +       ret = dm_gpio_request(&desc, "bb_per_rst_b");
>>> +       if (ret)
>>> +               return;
>>> +
>>> +       dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT);
>>> +       dm_gpio_set_value(&desc, 0);
>>> +       udelay(50);
>>> +       dm_gpio_set_value(&desc, 1);
>>> +
>>> +       imx8_iomux_setup_multiple_pads(board_gpios,
>>> ARRAY_SIZE(board_gpios));
>>> +
>>> +       /* enable i2c port expander assert reset line */
>>> +       gpio_request(IOEXP_RESET, "ioexp_rst");
>>> +       gpio_direction_output(IOEXP_RESET, 1);
>>> +}
>>> +#else
>>> +static inline void board_gpio_init(void) {}
>>> +#endif
>>> +
>>> +#if IS_ENABLED(CONFIG_FEC_MXC)
>>> +#include <miiphy.h>
>>> +
>>> +int board_phy_config(struct phy_device *phydev)
>>> +{
>>> +       phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x1f);
>>> +       phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x8);
>>> +
>>> +       phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x00);
>>> +       phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x82ee);
>>> +       phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x05);
>>> +       phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x100);
>>> +
>>> +       if (phydev->drv->config)
>>> +               phydev->drv->config(phydev);
>>> +
>>> +       return 0;
>>> +}
>>> +#endif
>>> +
>>> +void build_info(void)
>>> +{
>>> +       u32 sc_build = 0, sc_commit = 0;
>>> +
>>> +       /* Get SCFW build and commit id */
>>> +       sc_misc_build_info(-1, &sc_build, &sc_commit);
>>> +       if (!sc_build) {
>>> +               printf("SCFW does not support build info\n");
>>> +               sc_commit = 0; /* Display 0 if build info not
>>> supported */
>>> +       }
>>> +       printf("Build: SCFW %x\n", sc_commit);
>>> +}
>>> +
>>> +int checkboard(void)
>>> +{
>>> +       puts("Model: Toradex Colibri iMX8X\n");
>>> +
>>> +       build_info();
>>> +       print_bootinfo();
>>> +
>>> +       return 0;
>>> +}
>>> +
>>> +int board_init(void)
>>> +{
>>> +       board_gpio_init();
>>> +
>>> +       return 0;
>>> +}
>>> +
>>> +void detail_board_ddr_info(void)
>>> +{
>>> +       puts("\nDDR    ");
>>> +}
>>> +
>>> +/*
>>> + * Board specific reset that is system reset.
>>> + */
>>> +void reset_cpu(ulong addr)
>>> +{
>>> +       /* TODO */
>>> +}
>>> +
>>> +#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
>>> +int ft_board_setup(void *blob, bd_t *bd)
>>> +{
>>> +       return ft_common_board_setup(blob, bd);
>>> +}
>>> +#endif
>>> +
>>> +int board_mmc_get_env_dev(int devno)
>>> +{
>>> +       return devno;
>>> +}
>>> +
>>> +int board_late_init(void)
>>> +{
>>> +#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
>>> +/* TODO move to common */
>>> +       env_set("board_name", "Colibri iMX8QXP");
>>> +       env_set("board_rev", "v1.0");
>>> +#endif
>>> +
>>> +       return 0;
>>> +}
>>> diff --git a/board/toradex/colibri-imx8qxp/imximage.cfg
>>> b/board/toradex/colibri-imx8qxp/imximage.cfg
>>> new file mode 100644
>>> index 0000000000..ce9e66c64d
>>> --- /dev/null
>>> +++ b/board/toradex/colibri-imx8qxp/imximage.cfg
>>> @@ -0,0 +1,24 @@
>>> +/* SPDX-License-Identifier: GPL-2.0+ */
>>> +/*
>>> + * Copyright 2019 Toradex
>>> + *
>>> + * Refer doc/README.imx8image for more details about how-to
>>> configure
>>> + * and create imx8image boot image
>>> + */
>>> +
>>> +#define __ASSEMBLY__
>>> +
>>> +/* Boot from SD, sector size 0x400 */
>>> +BOOT_FROM EMMC_FASTBOOT 0x400
>>> +/* SoC type IMX8QX */
>>> +SOC_TYPE IMX8QX
>>> +/* Append seco container image */
>>> +APPEND ahab-container.img
>>> +/* Create the 2nd container */
>>> +CONTAINER
>>> +/* Add scfw image with exec attribute */
>>> +IMAGE SCU mx8qx-colibri-scfw-tcm.bin
>>> +/* Add ATF image with exec attribute */
>>> +IMAGE A35 bl31.bin 0x80000000
>>> +/* Add U-Boot image with load attribute */
>>> +DATA A35 u-boot-dtb.bin 0x80020000
>>> diff --git a/configs/colibri-imx8qxp_defconfig b/configs/colibri-
>>> imx8qxp_defconfig
>>> new file mode 100644
>>> index 0000000000..d697546ed7
>>> --- /dev/null
>>> +++ b/configs/colibri-imx8qxp_defconfig
>>> @@ -0,0 +1,53 @@
>>> +CONFIG_ARM=y
>>> +CONFIG_ARCH_IMX8=y
>>> +CONFIG_SYS_TEXT_BASE=0x80020000
>>> +CONFIG_SYS_MALLOC_F_LEN=0x2000
>>> +CONFIG_TARGET_COLIBRI_IMX8QXP=y
>>> +CONFIG_DISTRO_DEFAULTS=y
>>> +CONFIG_NR_DRAM_BANKS=3
>>> +CONFIG_FIT=y
>>> +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/colibri-
>>> imx8qxp/imximage.cfg"
>>> +CONFIG_LOG=y
>>> +CONFIG_VERSION_VARIABLE=y
>>> +# CONFIG_DISPLAY_BOARDINFO is not set
>>> +CONFIG_BOARD_EARLY_INIT_F=y
>>> +CONFIG_CMD_CPU=y
>>> +# CONFIG_CMD_IMPORTENV is not set
>>> +CONFIG_CMD_MEMTEST=y
>>> +CONFIG_CMD_CLK=y
>>> +CONFIG_CMD_DM=y
>>> +CONFIG_CMD_GPIO=y
>>> +CONFIG_CMD_I2C=y
>>> +CONFIG_CMD_MMC=y
>>> +CONFIG_CMD_CACHE=y
>>> +CONFIG_CMD_UUID=y
>>> +CONFIG_CMD_EXT4_WRITE=y
>>> +CONFIG_DEFAULT_DEVICE_TREE="fsl-imx8qxp-colibri"
>>> +CONFIG_ENV_IS_IN_MMC=y
>>> +CONFIG_CLK_IMX8=y
>>> +CONFIG_CPU=y
>>> +CONFIG_DM_GPIO=y
>>> +CONFIG_MXC_GPIO=y
>>> +CONFIG_DM_I2C=y
>>> +CONFIG_SYS_I2C_IMX_LPI2C=y
>>> +CONFIG_MISC=y
>>> +CONFIG_DM_MMC=y
>>> +CONFIG_PHYLIB=y
>>> +CONFIG_PHY_ADDR_ENABLE=y
>>> +CONFIG_PHY_MICREL=y
>>> +CONFIG_DM_ETH=y
>>> +CONFIG_FEC_MXC_SHARE_MDIO=y
>>> +CONFIG_FEC_MXC_MDIO_BASE=0x5B040000
>>> +CONFIG_FEC_MXC=y
>>> +CONFIG_MII=y
>>> +CONFIG_PINCTRL=y
>>> +CONFIG_PINCTRL_IMX8=y
>>> +CONFIG_POWER_DOMAIN=y
>>> +CONFIG_IMX8_POWER_DOMAIN=y
>>> +CONFIG_DM_REGULATOR=y
>>> +CONFIG_DM_REGULATOR_FIXED=y
>>> +CONFIG_DM_REGULATOR_GPIO=y
>>> +CONFIG_DM_SERIAL=y
>>> +CONFIG_FSL_LPUART=y
>>> +CONFIG_DM_THERMAL=y
>>> +# CONFIG_EFI_LOADER is not set
>>> diff --git a/include/configs/colibri-imx8qxp.h
>>> b/include/configs/colibri-imx8qxp.h
>>> new file mode 100644
>>> index 0000000000..33cbcb44a9
>>> --- /dev/null
>>> +++ b/include/configs/colibri-imx8qxp.h
>>> @@ -0,0 +1,214 @@
>>> +/* SPDX-License-Identifier: GPL-2.0+ */
>>> +/*
>>> + * Copyright 2019 Toradex
>>> + */
>>> +
>>> +#ifndef __COLIBRI_IMX8QXP_H
>>> +#define __COLIBRI_IMX8QXP_H
>>> +
>>> +#include <asm/arch/imx-regs.h>
>>> +#include <linux/sizes.h>
>>> +
>>> +#define CONFIG_REMAKE_ELF
>>> +
>>> +#define CONFIG_DISPLAY_BOARDINFO_LATE
>>> +
>>> +#undef CONFIG_CMD_EXPORTENV
>>> +#undef CONFIG_CMD_IMPORTENV
>>> +#undef CONFIG_CMD_IMLS
>>> +
>>> +#undef CONFIG_CMD_CRC32
>>> +#undef CONFIG_BOOTM_NETBSD
>>> +
>>> +#define CONFIG_FSL_ESDHC
>>> +#define CONFIG_FSL_USDHC
>>> +#define CONFIG_SYS_FSL_ESDHC_ADDR      0
>>> +#define USDHC1_BASE_ADDR               0x5B010000
>>> +#define USDHC2_BASE_ADDR               0x5B020000
>>> +#define CONFIG_SUPPORT_EMMC_BOOT       /* eMMC specific */
>>> +
>>> +#define CONFIG_ENV_OVERWRITE
>>> +
>>> +#define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
>>> +
>>> +#define FEC_QUIRK_ENET_MAC
>>> +
>>> +#define CONFIG_IP_DEFRAG
>>> +#define CONFIG_TFTP_BLOCKSIZE          4096
>>
>> 4096 can be replaced with SZ_4K (from include/linux/sizes.h)
>>
>>> +#define CONFIG_TFTP_TSIZE
>>> +
>>> +#define CONFIG_IPADDR                  192.168.10.2
>>> +#define CONFIG_NETMASK                 255.255.255.0
>>> +#define CONFIG_SERVERIP                        192.168.10.1
>>> +
>>> +#define MEM_LAYOUT_ENV_SETTINGS \
>>> +       "fdt_addr_r=0x84000000\0" \
>>> +       "kernel_addr_r=0x82000000\0" \
>>> +       "ramdisk_addr_r=0x84100000\0"
>>> +
>>> +#ifdef CONFIG_AHAB_BOOT
>>> +#define AHAB_ENV "sec_boot=yes\0"
>>> +#else
>>> +#define AHAB_ENV "sec_boot=no\0"
>>> +#endif
>>> +
>>> +/* Boot M4 */
>>> +#define M4_BOOT_ENV \
>>> +       "m4_0_image=m4_0.bin\0" \
>>> +       "loadm4image_0=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr}
>>> " \
>>> +               "${m4_0_image}\0" \
>>> +       "m4boot_0=run loadm4image_0; dcache flush; bootaux
>>> ${loadaddr} 0\0" \
>>> +
>>> +#define MFG_NAND_PARTITION ""
>>> +
>>> +#define BOOT_TARGET_DEVICES(func) \
>>> +       func(MMC, mmc, 0) \
>>> +       func(MMC, mmc, 1) \
>>> +       func(DHCP, dhcp, na)
>>> +#include <config_distro_bootcmd.h>
>>> +#undef BOOTENV_RUN_NET_USB_START
>>> +#define BOOTENV_RUN_NET_USB_START ""
>>> +
>>> +#define CONFIG_MFG_ENV_SETTINGS \
>>> +       "mfgtool_args=setenv bootargs
>>> console=${console},${baudrate} " \
>>> +               "rdinit=/linuxrc g_mass_storage.stall=0 " \
>>> +               "g_mass_storage.removable=1
>>> g_mass_storage.idVendor=0x066F " \
>>> +               "g_mass_storage.idProduct=0x37FF " \
>>> +               "g_mass_storage.iSerialNumber=\"\" "\
>>> +               MFG_NAND_PARTITION \
>>> +               "video=imxdpufb5:off video=imxdpufb6:off
>>> video=imxdpufb7:off " \
>>> +               "clk_ignore_unused "\
>>> +               "\0" \
>>> +       "initrd_addr=0x83800000\0" \
>>> +       "initrd_high=0xffffffff\0" \
>>> +       "bootcmd_mfg=run mfgtool_args;booti ${loadaddr}
>>> ${initrd_addr} " \
>>> +               "${fdt_addr};\0" \
>>> +
>>> +/* Initial environment variables */
>>> +#define CONFIG_EXTRA_ENV_SETTINGS \
>>> +       AHAB_ENV \
>>> +       BOOTENV \
>>> +       CONFIG_MFG_ENV_SETTINGS \
>>> +       M4_BOOT_ENV \
>>> +       MEM_LAYOUT_ENV_SETTINGS \
>>> +       "boot_fdt=try\0" \
>>> +       "bootscript=echo Running bootscript from mmc ...; source\0"
>>> \
>>> +       "console=ttyLP3,115200
>>> earlycon=lpuart32,0x5a090000,115200\0" \
>>> +       "fdt_addr=0x83000000\0"                 \
>>> +       "fdt_file=fsl-imx8qxp-colibri-eval-v3.dtb\0" \
>>> +       "fdt_high=0xffffffffffffffff\0"         \
>>> +       "finduuid=part uuid mmc ${mmcdev}:2 uuid\0" \
>>> +       "image=Image\0" \
>>> +       "initrd_addr=0x83800000\0"              \
>>> +       "initrd_high=0xffffffffffffffff\0" \
>>> +       "loadbootscript=fatload mmc ${mmcdev}:${mmcpart}
>>> ${loadaddr} " \
>>> +               "${script};\0" \
>>> +       "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr}
>>> ${fdt_file}\0" \
>>> +       "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr}
>>> ${image}\0" \
>>> +       "mmcargs=setenv bootargs console=${console},${baudrate} " \
>>> +               "root=PARTUUID=${uuid} rootwait " \
>>> +       "mmcautodetect=yes\0" \
>>> +       "mmcboot=echo Booting from mmc ...; " \
>>> +               "run finduuid; run mmcargs; " \
>>> +               "if test ${boot_fdt} = yes || test ${boot_fdt} =
>>> try; then " \
>>> +                       "if run loadfdt; then " \
>>> +                               "booti ${loadaddr} - ${fdt_addr}; "
>>> \
>>> +                       "else " \
>>> +                               "echo WARN: Cannot load the DT; " \
>>> +                       "fi; " \
>>> +               "else " \
>>> +                       "echo wait for boot; " \
>>> +               "fi;\0" \
>>> +       "mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \
>>> +       "mmcpart=" __stringify(CONFIG_SYS_MMC_IMG_LOAD_PART) "\0" \
>>> +       "netargs=setenv bootargs console=${console} root=/dev/nfs
>>> ip=dhcp " \
>>> +               "nfsroot=${serverip}:${nfsroot},v3,tcp
>>> video=imxdpufb5:off " \
>>> +               "video=imxdpufb6:off video=imxdpufb7:off\0" \
>>> +       "netboot=echo Booting from net ...; " \
>>> +               "run netargs; " \
>>> +               "if test ${ip_dyn} = yes; then " \
>>> +                       "setenv get_cmd dhcp; " \
>>> +               "else " \
>>> +                       "setenv get_cmd tftp; " \
>>> +               "fi; " \
>>> +               "${get_cmd} ${loadaddr} ${image}; " \
>>> +               "if test ${boot_fdt} = yes || test ${boot_fdt} =
>>> try; then " \
>>> +                       "if ${get_cmd} ${fdt_addr} ${fdt_file};
>>> then " \
>>> +                               "booti ${loadaddr} - ${fdt_addr}; "
>>> \
>>> +                       "else " \
>>> +                               "echo WARN: Cannot load the DT; " \
>>> +                       "fi; " \
>>> +               "else " \
>>> +                       "booti; " \
>>> +               "fi;\0" \
>>> +       "nfsboot=run netargs; dhcp ${loadaddr} ${image}; tftp
>>> ${fdt_addr} " \
>>> +               "colibri-imx8qxp/${fdt_file}; booti ${loadaddr} - "
>>> \
>>> +               "${fdt_addr}\0" \
>>> +       "panel=NULL\0" \
>>> +       "script=boot.scr\0" \
>>> +       "video=imxdpufb5:off video=imxdpufb6:off
>>> video=imxdpufb7:off\0"
>>> +
>>> +#undef CONFIG_BOOTCOMMAND
>>> +#define CONFIG_BOOTCOMMAND \
>>> +          "mmc dev ${mmcdev}; if mmc rescan; then " \
>>> +                  "if run loadbootscript; then " \
>>> +                          "run bootscript; " \
>>> +                  "else " \
>>> +                          "if run loadimage; then " \
>>> +                                  "run mmcboot; " \
>>> +                          "else run netboot; " \
>>> +                          "fi; " \
>>> +                  "fi; " \
>>> +          "else booti ${loadaddr} - ${fdt_addr}; fi"
>>> +
>>> +/* Link Definitions */
>>> +#define CONFIG_LOADADDR                        0x80280000
>>> +
>>> +#define CONFIG_SYS_LOAD_ADDR           CONFIG_LOADADDR
>>> +
>>> +#define CONFIG_SYS_INIT_SP_ADDR                0x80200000
>>> +
>>> +#define CONFIG_SYS_MEMTEST_START       0x88000000
>>> +#define CONFIG_SYS_MEMTEST_END         0x89000000
>>> +
>>> +/* Environment in eMMC, before config block at the end of 1st
>>> "boot sector" */
>>> +#define CONFIG_ENV_SIZE                        (8 * 1024)
>>
>>  (8 * 1024) can be replaced with SZ_8K (from include/linux/sizes.h)
>>
>>> +#define CONFIG_ENV_OFFSET              (-CONFIG_ENV_SIZE + \
>>> +                                        CONFIG_TDX_CFG_BLOCK_OFFSE
>>> T)
>>> +#define CONFIG_SYS_MMC_ENV_DEV         0
>>> +#define CONFIG_SYS_MMC_ENV_PART                1
>>> +
>>> +#define CONFIG_SYS_MMC_IMG_LOAD_PART   1
>>> +
>>> +/* On Colibri iMX8 USDHC1 is eMMC, USDHC2 is 4-bit SD */
>>> +#define CONFIG_SYS_MMC_ENV_DEV         0                /* USDHC1
>>> eMMC */
>>> +#define CONFIG_SYS_FSL_USDHC_NUM       2
>>> +
>>> +/* Size of malloc() pool */
>>> +#define CONFIG_SYS_MALLOC_LEN          ((CONFIG_ENV_SIZE + (32 *
>>> 1024)) * 1024)
>>> +
>>> +#define CONFIG_SYS_SDRAM_BASE          0x80000000
>>> +#define CONFIG_NR_DRAM_BANKS           3
>>> +#define PHYS_SDRAM_1                   0x80000000
>>> +#define PHYS_SDRAM_2                   0x880000000
>>> +#define PHYS_SDRAM_1_SIZE              0x80000000      /* 2 GB */
>> 0x80000000 can be replaced with SZ_2G (from include/linux/sizes.h)
>>> +#define PHYS_SDRAM_2_SIZE              0x00000000      /* 0 GB */
>>> +
>>> +/* Serial */
>>> +#define CONFIG_BAUDRATE                        115200
>>> +
>>> +/* Monitor Command Prompt */
>>> +#define CONFIG_SYS_PROMPT_HUSH_PS2     "> "
>>> +#define CONFIG_SYS_CBSIZE              2048
>>
>> Same as above
>>
>>> +#define CONFIG_SYS_MAXARGS             64
>>> +#define CONFIG_SYS_BARGSIZE            CONFIG_SYS_CBSIZE
>>> +#define CONFIG_SYS_PBSIZE              (CONFIG_SYS_CBSIZE + \
>>> +                                       sizeof(CONFIG_SYS_PROMPT) +
>>> 16)
>>> +
>>> +/* Generic Timer Definitions */
>>> +#define COUNTER_FREQUENCY              8000000 /* 8MHz */
>>> +
>>> +#define BOOTAUX_RESERVED_MEM_BASE 0x88000000
>>> +#define BOOTAUX_RESERVED_MEM_SIZE 0x08000000 /* Reserve from
>>> second 128MB */
>> Same as above
>>> +
>>> +#endif /* __COLIBRI_IMX8QXP_H */
>>> --
>>> 2.20.1
>>>
>>> _______________________________________________
>>> U-Boot mailing list
>>> U-Boot at lists.denx.de
>>> https://lists.denx.de/listinfo/u-boot


-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,8/8] imx8: mek: move HUSH_PARSER to defconfig
       [not found] ` <uboot-imx@nxp.com>
                     ` (38 preceding siblings ...)
  2019-04-26  9:45   ` [U-Boot] imx: add lowlevel init for ARM64 sbabic at denx.de
@ 2019-04-26  9:55   ` sbabic at denx.de
  39 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:55 UTC (permalink / raw)
  To: u-boot

> Move HUSH_PARSER to defconfig, otherwise meet
> "
> => run netboot
> Booting from net ...
> Unknown command 'if' - try 'help'
> Unknown command 'then' - try 'help'
> Unknown command 'else' - try 'help'
> Unknown command 'fi' - try 'help'
> Unknown command '0x80280000' - try 'help'
> Unknown command 'if' - try 'help'
> Unknown command 'then' - try 'help'
> Unknown command 'then' - try 'help'
> Unknown command 'else' - try 'help'
> Unknown command 'fi' - try 'help'
> Unknown command 'else' - try 'help'
> Unknown command 'fi' - try 'help'
> "
> Signed-off-by: Peng Fan <peng.fan@nxp.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, imx-next, v1, 06/14] ARM: kp_imx53: config: Do not use ${boardtype} to setup update wic file
       [not found]   ` <stefan.agner@toradex.com>
                       ` (40 preceding siblings ...)
  2019-04-26  9:45     ` [U-Boot] [U-Boot, v2, 08/14] colibri-imx6ull: migrate pinctrl and regulators to dtb/dm sbabic at denx.de
@ 2019-04-26  9:55     ` sbabic at denx.de
  2019-04-26  9:55     ` [U-Boot] [U-Boot, v2, 10/14] colibri-imx6ull: migrate usb to using driver model sbabic at denx.de
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:55 UTC (permalink / raw)
  To: u-boot

> After unification of the rootfs for both HSC and DDC devices, only one,
> common wic file is necessary - without the distinction of specific board.
> Signed-off-by: Lukasz Majewski <lukma@denx.de>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot, v2, 10/14] colibri-imx6ull: migrate usb to using driver model
       [not found]   ` <stefan.agner@toradex.com>
                       ` (41 preceding siblings ...)
  2019-04-26  9:55     ` [U-Boot] [U-Boot, imx-next, v1, 06/14] ARM: kp_imx53: config: Do not use ${boardtype} to setup update wic file sbabic at denx.de
@ 2019-04-26  9:55     ` sbabic at denx.de
  42 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-04-26  9:55 UTC (permalink / raw)
  To: u-boot

> From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Migrate USB to using driver model.
> Add USBH_PEN GPIO regulator.
> While at it also add alias e.g. as required for UMS.
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [PATCH v2 5/5] board: toradex: add colibri imx8qxp 2gb wb it v1.0b module support
  2019-04-26  9:46       ` Stefano Babic
@ 2019-04-26  9:58         ` Marcel Ziswiler
  2019-04-26 10:39           ` Stefano Babic
  0 siblings, 1 reply; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-26  9:58 UTC (permalink / raw)
  To: u-boot

Hi Stefano

On Fri, 2019-04-26 at 11:46 +0200, Stefano Babic wrote:
> On 26/04/19 11:20, Marcel Ziswiler wrote:
> > Hi Igor
> > 
> > Sorry, somehow I missed your comments below (;-p).
> > 
> > I will send out a v4 (yes there already was a v3 BTW) shortly
> > including
> > the SPL resp. without SPL build fix.
> 
> Fine - the series (without 5/5) is already applied on u-boot-imx.
> Please
> just send 5/5.

OK, strange. While I thought I just checked on git.denx.de I somehow
missed that. Will just send 5/5 plus the SPL fix. Thanks!

> Regards,
> Stefano

Cheers

Marcel

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

* [U-Boot] [PATCH v2 5/5] board: toradex: add colibri imx8qxp 2gb wb it v1.0b module support
  2019-04-26  9:38                 ` Marcel Ziswiler
@ 2019-04-26  9:59                   ` Peng Fan
  0 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2019-04-26  9:59 UTC (permalink / raw)
  To: u-boot



> -----Original Message-----
> From: Marcel Ziswiler [mailto:marcel.ziswiler at toradex.com]
> Sent: 2019年4月26日 17:38
> To: Peng Fan <peng.fan@nxp.com>; u-boot at lists.denx.de; sbabic at denx.de
> Cc: siva.durga.paladugu at xilinx.com; marek.vasut+renesas at gmail.com;
> maxime.ripard at bootlin.com; festevam at gmail.com;
> michal.simek at xilinx.com; wens at csie.org; dl-uboot-imx
> <uboot-imx@nxp.com>; yamada.masahiro at socionext.com; sr at denx.de;
> jagan at amarulasolutions.com; agust at denx.de; albert.u.boot at aribaud.net
> Subject: Re: [PATCH v2 5/5] board: toradex: add colibri imx8qxp 2gb wb it
> v1.0b module support
> 
> On Fri, 2019-04-26 at 09:03 +0000, Peng Fan wrote:
> > > Subject: Re: [PATCH v2 5/5] board: toradex: add colibri imx8qxp 2gb
> > > wb it v1.0b module support
> > >
> > > Hi Peng and Stefano
> > >
> > > On Fri, 2019-04-26 at 10:38 +0200, Stefano Babic wrote:
> > > > Hi Peng,
> > > >
> > > > On 26/04/19 04:10, Peng Fan wrote:
> > > > > Hi Stefano,
> > > > >
> > > > > > Subject: Re: [PATCH v2 5/5] board: toradex: add colibri
> > > > > > imx8qxp 2gb wb it v1.0b module support
> > > > > >
> > > > > > Hi Marcel,
> > > > > >
> > > > > > On 25/04/19 14:35, Marcel Ziswiler wrote:
> > > > > > > Hi Stefano
> > > > > > >
> > > > > > > On Thu, 2019-04-25 at 12:48 +0200, Stefano Babic wrote:
> > > > > > > > Hi Marcel,
> > > > > > > >
> > > > > > > > On 09/04/19 17:25, Marcel Ziswiler wrote:
> > > > > > > > > From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> > > > > > > > >
> > > > > > > > > This commit adds initial support for the Toradex Colibri
> > > > > > > > > iMX8QXP 2GB WB IT V1.0B module. Unlike the V1.0A early
> > > > > > > > > access samples exclusively booting from SD card, they
> > > > > > > > > are now strapped to boot from eFuses which are factory
> > > > > > > > > fused to properly boot from their on-module eMMC. U-
> > > > > > > > > Boot supports either booting from the on-module eMMC or
> > > > > > may
> > > > > > > > > be used for recovery purpose using the universal update
> > > > > > > > > utility
> > > > > > > > > (uuu) aka mfgtools 3.0.
> > > > > > > > >
> > > > > > > > > Functionality wise the following is known to be
> > > > > > > > > working:
> > > > > > > > > - eMMC and MMC/SD card
> > > > > > > > > - Ethernet
> > > > > > > > > - GPIOs
> > > > > > > > > - I2C
> > > > > > > > >
> > > > > > > > > Unfortunately, there is no USB functionality for the
> > > > > > > > > i.MX 8QXP as of yet.
> > > > > > > > >
> > > > > > > > > Signed-off-by: Marcel Ziswiler <
> > > > > > > > > marcel.ziswiler at toradex.com
> > > > > > > > >
> > > > > > > > > ---
> > > > > > > > >
> > > > > > > >
> > > > > > > > I merged the series and build locally (fine), but Travis
> > > > > > > > complains and stops with error:
> > > > > > > >
> > > > > > > > +cc1: fatal error: opening output file spl/u-boot-
> > > > > > > > spl.cfgout:
> > > > > > > > No such
> > > > > > > > file or directory
> > > > > > > > +compilation terminated.
> > > > > > > >
> > > > > > > > Can you take a look at it ?
> > > > > > >
> > > > > > > Sure, looks like Peng's commit caceb739ea07 ("imx: build
> > > > > > > flash.bin for
> > > > > > > i.MX8") takes SPL for granted while my patchset currently
> > > > > > > avoids it.
> > > > > >
> > > > > > It looks so, yes.
> > > > > >
> > > > > > > BTW: I still don't believe SPL makes much sense on i.MX 8X
> > > > > > > given all the other proprietary parts involved in booting.
> > > > > >
> > > > > > SPL makes more sense if it is possible to detect at runtime
> > > > > > the HW and change the configuration - for i.MX6, this means
> > > > > > RAMS detection, which boot device is booting, and so on.
> > > > > >
> > > > > > On i.MX8 there is a lot of proprietary parts - we lose the
> > > > > > flexibility of SPL, and most features are lost (or must be
> > > > > > provided by proprietary code).
> > > > > > I agree that
> > > > > > on this platform SPL makes less sense, and i.MX8 should be
> > > > > > built independently if CONFIG_SPL is set (this is also for
> > > > > > i.MX6 / MX5, there are boards without SPL and using the DCD
> > > > > > image to set up the RAM controller).
> > > > >
> > > > > The reason we move to use SPL on i.MX8 is that we would like to
> > > > > avoid bind ATF/OP-TEE/U-Boot into a flat image with hacked
> > > > > offset in an image.
> > > > >
> > > >
> > > > It seemed I have missed some point. Thanks for clarification.
> > > > This
> > > > makes sense.
> > >
> > > OK, I was also not aware of this.
> > >
> > > However, currently I am just happy the current tooling kinda works.
> > > Which is we can ship stuff to customers and they may use uuu to
> > > recover bricked modules. So far nobody is talking about OP-TEE and
> > > such advanced use cases yet.
> > >
> > > On the other hand enabling SPL currently does not seem to work at
> > > all on our hardware. Neither booting from eMMC nor recovering using
> > > uuu.
> > > That is really the main reason I decided against it at least for
> > > now.
> >
> > In vendor tree, we use SPL to load i.MX8 container image.
> > To UUU, 1st need to enable usb gadget functions in SPL, then enable
> > container for the 2nd image. So with uuu, it not work with upstream
> > U-Boot now.
> 
> Strange, for me this works just fine with mainline just not with SPL being

For flash.bin with SPL, UUU will not work for upstream uboot to load 2nd images.
For flash.bin without SPL, UUU will able to work. So it works for you.

Regards,
Peng.

> enabled e.g. as per board/toradex/colibri-imx8qxp/README:
> 
> [user at host uuu]$ sudo ./uuu u-boot/u-boot-dtb.imx uuu (Universal Update
> Utility) for nxp imx chips -- libuuu_1.2.66-0-
> ga1a8e69
> 
> Success 1    Failure 0
> 
> 1:33   2/ 2   [Done                        ] SDPS: done
> 
> U-Boot 2019.04-rc4-00169-g42dd45e2d9-dirty (Apr 26 2019 - 11:30:58
> +0200)
> 
> CPU:   NXP i.MX8QXP RevB A35 at 1200 MHz
> 
> DRAM:  2 GiB
> MMC:   FSL_SDHC: 0, FSL_SDHC: 1
> Loading Environment from MMC... *** Warning - bad CRC, using default
> environment
> 
> In:    serial at 5a090000
> Out:   serial at 5a090000
> Err:   serial at 5a090000
> Model: Toradex Colibri iMX8 QuadXPlus 2GB Wi-Fi / BT IT V1.0B, Serial#
> 06410651
> Net:   eth0: ethernet at 5b040000
> Hit any key to stop autoboot:  0
> =>
> 
> > > > > So the bootflow now is
> > > > > SPL->ATF->OPTEE->ATF->U-Boot
> > > > >
> > > > > Without SPL, when generating flash.bin, we have to hack ATF to
> > > > > copy OP-TEE image from flash.bin to the runtime location.
> > > >
> > > > Nevertheless, I understand that it is not strictly required to
> > > > enable OPTEE to boot the kernel, and in some applications a secure
> > > > zone is not required. The thing is not that SPL is used here, but
> > > > to constrain all other users like Marcel to do the same. With
> > > > i.MX6, even if I strongly suggested to do this to allow run time
> > > > detection, I let boards without SPL and with just u-boot.imx (with
> > > > built-in DCD) to flow into mainline - the board maintainer rules
> > > > as he knows better where the device is used.
> > >
> > > Thanks!
> > >
> > > > So I will prefer that the build assume to have SPL just if SPL is
> > > > configured and not in any case, letting boards without SPL (like
> > > > this
> > > > colibri-mx8
> > >
> > > Colibri iMX8X that is while on the Apalis family we have the Apalis
> > > iMX8 (e.g. with the i.MX 8QuadMax or i.MX 8QuadPlus) and the new
> > > Apalis iMX8X with ECC RAM still in the works. Welcome to the i.MX 8
> > > series with the i.MX 8 and i.MX 8X families and careful with NXP's
> > > brilliant naming scheme (;-p).
> > >
> > > > ) to build.
> > >
> > > Don't worry. I believe I found a fix for the issue at hand and will
> > > send a patch shortly.
> >
> > ok.
> >
> > Regards,
> > Peng.
> >
> > > > > > > Plus currently SPL
> > > > > > > actually breaks the USB serial downloader aka recovery mode
> > > > > > > using the universal update utility (uuu) aka mfgtools 3.0.
> > > > >
> > > > > The usb related function for i.MX8 is not ready now.
> > > >
> > > > That is ok - it s WIP, it will be merged when ready. I agree with
> > > > you, this is *not* a reason to avoid SPL.
> > >
> > > Agreed. However, it is kinda painful requiring different U-Boot
> > > configuration flavours for regular boot vs. recovery. That said we
> > > used to previously do this on Apalis/Colibri iMX6 as well so it is
> > > definitely no show stopper.
> > >
> > > > > we are almost run out
> > > > > of ocram with SPL DM, thinking to use OF_PLATDATA now, then move
> > > > > to usb functions.
> > > >
> > > > Understood.
> > >
> > > Yeah, I also played with OF_PLATDATA once before however was not
> > > entirely happy with the result as of yet. I guess WIP patches
> > > welcome (;-p).
> > >
> > > > Best regards,
> > > > Stefano
> > >
> > > Cheers
> > >
> > > Marcel

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

* [U-Boot] [PATCH v2 5/5] board: toradex: add colibri imx8qxp 2gb wb it v1.0b module support
  2019-04-26  9:58         ` Marcel Ziswiler
@ 2019-04-26 10:39           ` Stefano Babic
  0 siblings, 0 replies; 654+ messages in thread
From: Stefano Babic @ 2019-04-26 10:39 UTC (permalink / raw)
  To: u-boot

Hi Marcel,

On 26/04/19 11:58, Marcel Ziswiler wrote:
> Hi Stefano
> 
> On Fri, 2019-04-26 at 11:46 +0200, Stefano Babic wrote:
>> On 26/04/19 11:20, Marcel Ziswiler wrote:
>>> Hi Igor
>>>
>>> Sorry, somehow I missed your comments below (;-p).
>>>
>>> I will send out a v4 (yes there already was a v3 BTW) shortly
>>> including
>>> the SPL resp. without SPL build fix.
>>
>> Fine - the series (without 5/5) is already applied on u-boot-imx.
>> Please
>> just send 5/5.
> 
> OK, strange. While I thought I just checked on git.denx.de I somehow
> missed that.

It does not depend on you, but on my changed work-flow. Because Tom does
not accept PR that does not pass Travis' build, I push currently first
to my github account (where I rebase often and I fix myself small
issues), and I push later to git.denx.de just after build passed. This
avoids that my rebasess make people unhappy because history is broken,
and tree on git.denx.de is always in a good state.

> Will just send 5/5 plus the SPL fix. Thanks!
> 

Regards,
Stefano


-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [U-Boot,RESEND,10/10] imx: support i.MX8QM MEK board
  2019-04-26  9:37   ` [U-Boot] [U-Boot,RESEND,10/10] imx: support i.MX8QM MEK board sbabic at denx.de
@ 2019-04-26 10:50     ` Marcel Ziswiler
  2019-04-26 10:56       ` Stefano Babic
  0 siblings, 1 reply; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-26 10:50 UTC (permalink / raw)
  To: u-boot

Hi Stefano

On Fri, 2019-04-26 at 09:37 +0000, sbabic at denx.de wrote:
> > Add i.MX8QM MEK board support.
> > Included a basic dts, enabled SPL FIT
> > Boot log as below:
> > U-Boot SPL 2019.01-rc1-00029-gf002213219 (Dec 24 2018 - 10:28:30
> > +0800)
> > Normal Boot
> > Trying to boot from MMC2_2
> > U-Boot 2019.01-rc1-00029-gf002213219 (Dec 24 2018 - 10:28:30 +0800)
> > CPU:   NXP i.MX8QM RevB A53 at 142933 MHz
> > Model: Freescale i.MX8QM MEK
> > Board: iMX8QM MEK
> > Build: SCFW 9330215b
> > Boot:  SD1
> > DRAM:  6 GiB
> > MMC:   FSL_SDHC: 0, FSL_SDHC: 1
> > Loading Environment from MMC... *** Warning - bad CRC, using
> > default environment
> > In:    serial at 5a060000
> > Out:   serial at 5a060000
> > Err:   serial at 5a060000
> > Net:
> > Error: ethernet at 5b040000 address not set.
> > eth-1: ethernet at 5b040000
> > Hit any key to stop autoboot:  0
> > Signed-off-by: Peng Fan <peng.fan@nxp.com>
> 
> Applied to u-boot-imx, master, thanks !

This one introduced a superfluous trailing line continuation in the
Makefile:

https://git.denx.de/?p=u-boot/u-boot-imx.git;a=commitdiff;h=0d331c035a091c1c1af4180b40bd234e3b87e80a#patch1

I will fix this and also make sure stuff is alphabetically sorted again
in my updated Colibri iMX8X introduction patch. OK?

> Best regards,
> Stefano Babic

Cheers

Marcel

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

* [U-Boot] [U-Boot,RESEND,10/10] imx: support i.MX8QM MEK board
  2019-04-26 10:50     ` Marcel Ziswiler
@ 2019-04-26 10:56       ` Stefano Babic
  0 siblings, 0 replies; 654+ messages in thread
From: Stefano Babic @ 2019-04-26 10:56 UTC (permalink / raw)
  To: u-boot

On 26/04/19 12:50, Marcel Ziswiler wrote:
> Hi Stefano
> 
> On Fri, 2019-04-26 at 09:37 +0000, sbabic at denx.de wrote:
>>> Add i.MX8QM MEK board support.
>>> Included a basic dts, enabled SPL FIT
>>> Boot log as below:
>>> U-Boot SPL 2019.01-rc1-00029-gf002213219 (Dec 24 2018 - 10:28:30
>>> +0800)
>>> Normal Boot
>>> Trying to boot from MMC2_2
>>> U-Boot 2019.01-rc1-00029-gf002213219 (Dec 24 2018 - 10:28:30 +0800)
>>> CPU:   NXP i.MX8QM RevB A53 at 142933 MHz
>>> Model: Freescale i.MX8QM MEK
>>> Board: iMX8QM MEK
>>> Build: SCFW 9330215b
>>> Boot:  SD1
>>> DRAM:  6 GiB
>>> MMC:   FSL_SDHC: 0, FSL_SDHC: 1
>>> Loading Environment from MMC... *** Warning - bad CRC, using
>>> default environment
>>> In:    serial at 5a060000
>>> Out:   serial at 5a060000
>>> Err:   serial at 5a060000
>>> Net:
>>> Error: ethernet at 5b040000 address not set.
>>> eth-1: ethernet at 5b040000
>>> Hit any key to stop autoboot:  0
>>> Signed-off-by: Peng Fan <peng.fan@nxp.com>
>>
>> Applied to u-boot-imx, master, thanks !
> 
> This one introduced a superfluous trailing line continuation in the
> Makefile:
> 
> https://git.denx.de/?p=u-boot/u-boot-imx.git;a=commitdiff;h=0d331c035a091c1c1af4180b40bd234e3b87e80a#patch1
> 
> I will fix this and also make sure stuff is alphabetically sorted again
> in my updated Colibri iMX8X introduction patch. OK?

That's fine, thanks !


Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [REGRESSION] [PATCH] imx: add lowlevel init for ARM64
  2019-04-15  5:20 [U-Boot] [PATCH] imx: add lowlevel init for ARM64 Peng Fan
@ 2019-04-26 18:38 ` Marcel Ziswiler
  2019-04-26 23:58   ` Peng Fan
  0 siblings, 1 reply; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-26 18:38 UTC (permalink / raw)
  To: u-boot

Hi Peng and Stefano

Unfortunately, this seems to break Ethernet on Colibri iMX8X:

=> dhcp
"Error" handler, esr 0xbf000002
elr: 0000000080049664 lr : 000000008004964c (reloc)
elr: 00000000ffef6664 lr : 00000000ffef664c
x0 : 000000005b040288 x1 : 0000000000000001
x2 : 00000000fd6c5ff4 x3 : 0000000000000020
x4 : 00000000fd6c5ff0 x5 : 0000000000000020
x6 : 00000000ffef079c x7 : 00000000fd6f1600
x8 : 0000000000000044 x9 : 0000000000000008
x10: 00000000fd6d1620 x11: 00000000fd6d3a10
x12: 0000000000000000 x13: 0000000000000200
x14: 00000000fd6c62cc x15: 0000000000000002
x16: 0000000000002080 x17: 0000000000000000
x18: 00000000fd6cada8 x19: 00000000fd6d1160
x20: 0000000000000200 x21: 000000005b040300
x22: 00000000fd6f1000 x23: 00000000fd6cfdf0
x24: 00000000ffff8000 x25: 0000000000000000
x26: 0000000000000000 x27: 0000000000000000
x28: 00000000fd6d15c0 x29: 00000000fd6c6030

Resetting CPU ...

resetting ...

Reverting commit 5955c6eeb453 ("imx: add lowlevel init for ARM64")
makes it work again.

Unfortunately, I don't have a MEK in my home office but will check
Ethernet operation there on Monday as well.

Anyway, does anybody know what exactly is going on?

Cheers

Marcel

On Mon, 2019-04-15 at 05:20 +0000, Peng Fan wrote:
> Sometimes we met SERROR, but only to catch it when Linux boots up.
> Let's enable catching in U-Boot to catch it ealier and ease debug.
> 
> Signed-off-by: Peng Fan <peng.fan@nxp.com>
> ---
>  arch/arm/mach-imx/Makefile   |  2 +-
>  arch/arm/mach-imx/lowlevel.S | 22 ++++++++++++++++++++++
>  2 files changed, 23 insertions(+), 1 deletion(-)
>  create mode 100644 arch/arm/mach-imx/lowlevel.S
> 
> diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile
> index c3ed62aed6..37675d0558 100644
> --- a/arch/arm/mach-imx/Makefile
> +++ b/arch/arm/mach-imx/Makefile
> @@ -204,7 +204,7 @@ endif
>  
>  targets += $(addprefix ../../../,SPL spl/u-boot-spl.cfgout u-boot-
> dtb.cfgout u-boot.cfgout u-boot.uim spl/u-boot-nand-spl.imx)
>  
> -obj-$(CONFIG_ARM64) += sip.o
> +obj-$(CONFIG_ARM64) += lowlevel.o sip.o
>  
>  obj-$(CONFIG_MX5) += mx5/
>  obj-$(CONFIG_MX6) += mx6/
> diff --git a/arch/arm/mach-imx/lowlevel.S b/arch/arm/mach-
> imx/lowlevel.S
> new file mode 100644
> index 0000000000..158fdb7d87
> --- /dev/null
> +++ b/arch/arm/mach-imx/lowlevel.S
> @@ -0,0 +1,22 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +/*
> + * Copyright 2019 NXP
> + */
> +
> +#include <linux/linkage.h>
> +
> +ENTRY(lowlevel_init)
> +	mrs	x0, CurrentEL
> +	cmp	x0, #8
> +	b.eq	1f
> +	ret
> +1:
> +	msr daifclr, #4
> +
> +	/* set HCR_EL2.AMO to catch SERROR */
> +	mrs	x0, hcr_el2
> +	orr	x0, x0, #0x20
> +	msr	hcr_el2, x0
> +	isb
> +	ret
> +ENDPROC(lowlevel_init)
> -- 
> 2.16.4
> 
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

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

* [U-Boot] [REGRESSION] [PATCH] imx: 8qxp_mek: fix fdt_file and console
  2019-04-15 12:00 [U-Boot] [PATCH] imx: 8qxp_mek: fix fdt_file and console Peng Fan
  2019-04-15 13:31 ` Fabio Estevam
@ 2019-04-26 18:42 ` Marcel Ziswiler
  2019-04-27  0:11   ` Peng Fan
  1 sibling, 1 reply; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-26 18:42 UTC (permalink / raw)
  To: u-boot

Hi Peng and Stefano

On Mon, 2019-04-15 at 12:00 +0000, Peng Fan wrote:
> Fix fdt_file and console to boot upstream Linux Kernel.
> 
> Upstream linux use imx8qxp-mek.dtb, and pass lpuart32 to earlycon
> will not work for i.MX8QXP, only need to pass earlycon,
> check drivers/tty/serial/earlycon.c,
> " /* Just 'earlycon' is a valid param for devicetree and ACPI SPCR.
> */ "
> 
> Signed-off-by: Peng Fan <peng.fan@nxp.com>
> ---
>  include/configs/imx8qxp_mek.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/include/configs/imx8qxp_mek.h
> b/include/configs/imx8qxp_mek.h
> index 1cff18e05e..5c83505ff0 100644
> --- a/include/configs/imx8qxp_mek.h
> +++ b/include/configs/imx8qxp_mek.h
> @@ -65,11 +65,11 @@
>  	"script=boot.scr\0" \
>  	"image=Image\0" \
>  	"panel=NULL\0" \
> -	"console=ttyLP0,${baudrate}
> earlycon=lpuart32,0x5a060000,${baudrate}\0" \
> +	"console=ttyLP0,${baudrate} earlycon\0" \

I don't think using ${baudrate} in console= like that actually works.
At least for me this lead to the following:

root at colibri-imx8qxp:~# cat /proc/cmdline 
console=ttyLP3,${baudrate} earlycon,115200 root=PARTUUID=5e6e3605-02
rootwait mmcautodetect=yes

E.g. ${baudrate} is never actually evaluated unless one does an
explicit assignment aka setenv something something.

>  	"fdt_addr=0x83000000\0"			\
>  	"fdt_high=0xffffffffffffffff\0"		\
>  	"boot_fdt=try\0" \
> -	"fdt_file=fsl-imx8qxp-mek.dtb\0" \
> +	"fdt_file=imx8qxp-mek.dtb\0" \
>  	"initrd_addr=0x83800000\0"		\
>  	"initrd_high=0xffffffffffffffff\0" \
>  	"mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \
> -- 
> 2.16.4
> 
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

Cheers

Marcel

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

* [U-Boot] [REGRESSION] [PATCH] imx: add lowlevel init for ARM64
  2019-04-26 18:38 ` [U-Boot] [REGRESSION] " Marcel Ziswiler
@ 2019-04-26 23:58   ` Peng Fan
  2019-04-28 16:52     ` Stefano Babic
  0 siblings, 1 reply; 654+ messages in thread
From: Peng Fan @ 2019-04-26 23:58 UTC (permalink / raw)
  To: u-boot

Hi Marcel,

Please apply this patch, Joe has not pick it up.
https://patchwork.ozlabs.org/patch/1085432/

Stefano,

Would you pick it up?


> Subject: [REGRESSION] [PATCH] imx: add lowlevel init for ARM64
> 
> Hi Peng and Stefano
> 
> Unfortunately, this seems to break Ethernet on Colibri iMX8X:
> 
> => dhcp
> "Error" handler, esr 0xbf000002
> elr: 0000000080049664 lr : 000000008004964c (reloc)
> elr: 00000000ffef6664 lr : 00000000ffef664c
> x0 : 000000005b040288 x1 : 0000000000000001
> x2 : 00000000fd6c5ff4 x3 : 0000000000000020
> x4 : 00000000fd6c5ff0 x5 : 0000000000000020
> x6 : 00000000ffef079c x7 : 00000000fd6f1600
> x8 : 0000000000000044 x9 : 0000000000000008
> x10: 00000000fd6d1620 x11: 00000000fd6d3a10
> x12: 0000000000000000 x13: 0000000000000200
> x14: 00000000fd6c62cc x15: 0000000000000002
> x16: 0000000000002080 x17: 0000000000000000
> x18: 00000000fd6cada8 x19: 00000000fd6d1160
> x20: 0000000000000200 x21: 000000005b040300
> x22: 00000000fd6f1000 x23: 00000000fd6cfdf0
> x24: 00000000ffff8000 x25: 0000000000000000
> x26: 0000000000000000 x27: 0000000000000000
> x28: 00000000fd6d15c0 x29: 00000000fd6c6030
> 
> Resetting CPU ...
> 
> resetting ...
> 
> Reverting commit 5955c6eeb453 ("imx: add lowlevel init for ARM64") makes
> it work again.
> 
> Unfortunately, I don't have a MEK in my home office but will check Ethernet
> operation there on Monday as well.
> 
> Anyway, does anybody know what exactly is going on?

Regards,
Peng.

> 
> Cheers
> 
> Marcel
> 
> On Mon, 2019-04-15 at 05:20 +0000, Peng Fan wrote:
> > Sometimes we met SERROR, but only to catch it when Linux boots up.
> > Let's enable catching in U-Boot to catch it ealier and ease debug.
> >
> > Signed-off-by: Peng Fan <peng.fan@nxp.com>
> > ---
> >  arch/arm/mach-imx/Makefile   |  2 +-
> >  arch/arm/mach-imx/lowlevel.S | 22 ++++++++++++++++++++++
> >  2 files changed, 23 insertions(+), 1 deletion(-)  create mode 100644
> > arch/arm/mach-imx/lowlevel.S
> >
> > diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile
> > index c3ed62aed6..37675d0558 100644
> > --- a/arch/arm/mach-imx/Makefile
> > +++ b/arch/arm/mach-imx/Makefile
> > @@ -204,7 +204,7 @@ endif
> >
> >  targets += $(addprefix ../../../,SPL spl/u-boot-spl.cfgout u-boot-
> > dtb.cfgout u-boot.cfgout u-boot.uim spl/u-boot-nand-spl.imx)
> >
> > -obj-$(CONFIG_ARM64) += sip.o
> > +obj-$(CONFIG_ARM64) += lowlevel.o sip.o
> >
> >  obj-$(CONFIG_MX5) += mx5/
> >  obj-$(CONFIG_MX6) += mx6/
> > diff --git a/arch/arm/mach-imx/lowlevel.S b/arch/arm/mach-
> > imx/lowlevel.S new file mode 100644 index 0000000000..158fdb7d87
> > --- /dev/null
> > +++ b/arch/arm/mach-imx/lowlevel.S
> > @@ -0,0 +1,22 @@
> > +/* SPDX-License-Identifier: GPL-2.0+ */
> > +/*
> > + * Copyright 2019 NXP
> > + */
> > +
> > +#include <linux/linkage.h>
> > +
> > +ENTRY(lowlevel_init)
> > +	mrs	x0, CurrentEL
> > +	cmp	x0, #8
> > +	b.eq	1f
> > +	ret
> > +1:
> > +	msr daifclr, #4
> > +
> > +	/* set HCR_EL2.AMO to catch SERROR */
> > +	mrs	x0, hcr_el2
> > +	orr	x0, x0, #0x20
> > +	msr	hcr_el2, x0
> > +	isb
> > +	ret
> > +ENDPROC(lowlevel_init)
> > --
> > 2.16.4
> >
> > _______________________________________________
> > U-Boot mailing list
> > U-Boot at lists.denx.de
> > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flist
> >
> s.denx.de%2Flistinfo%2Fu-boot&amp;data=02%7C01%7Cpeng.fan%40nxp.co
> m%7C
> >
> d671eca9f1cc4d06a7d008d6ca7661b1%7C686ea1d3bc2b4c6fa92cd99c5c30
> 1635%7C
> >
> 0%7C0%7C636919007134459412&amp;sdata=R6xBpoVJHL7meQkRkBi1I8vg
> MgOTXlFEA
> > QfMePrDdSc%3D&amp;reserved=0

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

* [U-Boot] [REGRESSION] [PATCH] imx: 8qxp_mek: fix fdt_file and console
  2019-04-26 18:42 ` [U-Boot] [REGRESSION] " Marcel Ziswiler
@ 2019-04-27  0:11   ` Peng Fan
  0 siblings, 0 replies; 654+ messages in thread
From: Peng Fan @ 2019-04-27  0:11 UTC (permalink / raw)
  To: u-boot



> Subject: [REGRESSION] [PATCH] imx: 8qxp_mek: fix fdt_file and console
> 
> Hi Peng and Stefano
> 
> On Mon, 2019-04-15 at 12:00 +0000, Peng Fan wrote:
> > Fix fdt_file and console to boot upstream Linux Kernel.
> >
> > Upstream linux use imx8qxp-mek.dtb, and pass lpuart32 to earlycon will
> > not work for i.MX8QXP, only need to pass earlycon, check
> > drivers/tty/serial/earlycon.c, " /* Just 'earlycon' is a valid param
> > for devicetree and ACPI SPCR.
> > */ "
> >
> > Signed-off-by: Peng Fan <peng.fan@nxp.com>
> > ---
> >  include/configs/imx8qxp_mek.h | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/include/configs/imx8qxp_mek.h
> > b/include/configs/imx8qxp_mek.h index 1cff18e05e..5c83505ff0 100644
> > --- a/include/configs/imx8qxp_mek.h
> > +++ b/include/configs/imx8qxp_mek.h
> > @@ -65,11 +65,11 @@
> >  	"script=boot.scr\0" \
> >  	"image=Image\0" \
> >  	"panel=NULL\0" \
> > -	"console=ttyLP0,${baudrate}
> > earlycon=lpuart32,0x5a060000,${baudrate}\0" \
> > +	"console=ttyLP0,${baudrate} earlycon\0" \
> 
> I don't think using ${baudrate} in console= like that actually works.
> At least for me this lead to the following:

You mean include/env_default.h this not work?

Regards,
Peng.

> 
> root at colibri-imx8qxp:~# cat /proc/cmdline console=ttyLP3,${baudrate}
> earlycon,115200 root=PARTUUID=5e6e3605-02 rootwait
> mmcautodetect=yes
> 
> E.g. ${baudrate} is never actually evaluated unless one does an explicit
> assignment aka setenv something something.
> 
> >  	"fdt_addr=0x83000000\0"			\
> >  	"fdt_high=0xffffffffffffffff\0"		\
> >  	"boot_fdt=try\0" \
> > -	"fdt_file=fsl-imx8qxp-mek.dtb\0" \
> > +	"fdt_file=imx8qxp-mek.dtb\0" \
> >  	"initrd_addr=0x83800000\0"		\
> >  	"initrd_high=0xffffffffffffffff\0" \
> >  	"mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \
> > --
> > 2.16.4
> >
> > _______________________________________________
> > U-Boot mailing list
> > U-Boot at lists.denx.de
> > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flist
> >
> s.denx.de%2Flistinfo%2Fu-boot&amp;data=02%7C01%7Cpeng.fan%40nxp.co
> m%7C
> >
> 0e6a5db6025549efd94708d6ca76ec09%7C686ea1d3bc2b4c6fa92cd99c5c30
> 1635%7C
> >
> 0%7C0%7C636919009450074747&amp;sdata=g8pl8UzcwoFAlfZAHDOeBb1s4
> zcH%2BzJ
> > qFkGukoHAfnQ%3D&amp;reserved=0
> 
> Cheers
> 
> Marcel

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

* [U-Boot] [REGRESSION] [PATCH] imx: add lowlevel init for ARM64
  2019-04-26 23:58   ` Peng Fan
@ 2019-04-28 16:52     ` Stefano Babic
  2019-04-28 18:24       ` Joe Hershberger
  0 siblings, 1 reply; 654+ messages in thread
From: Stefano Babic @ 2019-04-28 16:52 UTC (permalink / raw)
  To: u-boot



On 27/04/19 01:58, Peng Fan wrote:
> Hi Marcel,
> 
> Please apply this patch, Joe has not pick it up.
> https://patchwork.ozlabs.org/patch/1085432/
> 
> Stefano,
> 
> Would you pick it up?

It is acked by Joe, i assign the patch to me in patchwork and I pick it up.

Regards,
Stefano

> 
> 
>> Subject: [REGRESSION] [PATCH] imx: add lowlevel init for ARM64
>>
>> Hi Peng and Stefano
>>
>> Unfortunately, this seems to break Ethernet on Colibri iMX8X:
>>
>> => dhcp
>> "Error" handler, esr 0xbf000002
>> elr: 0000000080049664 lr : 000000008004964c (reloc)
>> elr: 00000000ffef6664 lr : 00000000ffef664c
>> x0 : 000000005b040288 x1 : 0000000000000001
>> x2 : 00000000fd6c5ff4 x3 : 0000000000000020
>> x4 : 00000000fd6c5ff0 x5 : 0000000000000020
>> x6 : 00000000ffef079c x7 : 00000000fd6f1600
>> x8 : 0000000000000044 x9 : 0000000000000008
>> x10: 00000000fd6d1620 x11: 00000000fd6d3a10
>> x12: 0000000000000000 x13: 0000000000000200
>> x14: 00000000fd6c62cc x15: 0000000000000002
>> x16: 0000000000002080 x17: 0000000000000000
>> x18: 00000000fd6cada8 x19: 00000000fd6d1160
>> x20: 0000000000000200 x21: 000000005b040300
>> x22: 00000000fd6f1000 x23: 00000000fd6cfdf0
>> x24: 00000000ffff8000 x25: 0000000000000000
>> x26: 0000000000000000 x27: 0000000000000000
>> x28: 00000000fd6d15c0 x29: 00000000fd6c6030
>>
>> Resetting CPU ...
>>
>> resetting ...
>>
>> Reverting commit 5955c6eeb453 ("imx: add lowlevel init for ARM64") makes
>> it work again.
>>
>> Unfortunately, I don't have a MEK in my home office but will check Ethernet
>> operation there on Monday as well.
>>
>> Anyway, does anybody know what exactly is going on?
> 
> Regards,
> Peng.
> 
>>
>> Cheers
>>
>> Marcel
>>
>> On Mon, 2019-04-15 at 05:20 +0000, Peng Fan wrote:
>>> Sometimes we met SERROR, but only to catch it when Linux boots up.
>>> Let's enable catching in U-Boot to catch it ealier and ease debug.
>>>
>>> Signed-off-by: Peng Fan <peng.fan@nxp.com>
>>> ---
>>>  arch/arm/mach-imx/Makefile   |  2 +-
>>>  arch/arm/mach-imx/lowlevel.S | 22 ++++++++++++++++++++++
>>>  2 files changed, 23 insertions(+), 1 deletion(-)  create mode 100644
>>> arch/arm/mach-imx/lowlevel.S
>>>
>>> diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile
>>> index c3ed62aed6..37675d0558 100644
>>> --- a/arch/arm/mach-imx/Makefile
>>> +++ b/arch/arm/mach-imx/Makefile
>>> @@ -204,7 +204,7 @@ endif
>>>
>>>  targets += $(addprefix ../../../,SPL spl/u-boot-spl.cfgout u-boot-
>>> dtb.cfgout u-boot.cfgout u-boot.uim spl/u-boot-nand-spl.imx)
>>>
>>> -obj-$(CONFIG_ARM64) += sip.o
>>> +obj-$(CONFIG_ARM64) += lowlevel.o sip.o
>>>
>>>  obj-$(CONFIG_MX5) += mx5/
>>>  obj-$(CONFIG_MX6) += mx6/
>>> diff --git a/arch/arm/mach-imx/lowlevel.S b/arch/arm/mach-
>>> imx/lowlevel.S new file mode 100644 index 0000000000..158fdb7d87
>>> --- /dev/null
>>> +++ b/arch/arm/mach-imx/lowlevel.S
>>> @@ -0,0 +1,22 @@
>>> +/* SPDX-License-Identifier: GPL-2.0+ */
>>> +/*
>>> + * Copyright 2019 NXP
>>> + */
>>> +
>>> +#include <linux/linkage.h>
>>> +
>>> +ENTRY(lowlevel_init)
>>> +	mrs	x0, CurrentEL
>>> +	cmp	x0, #8
>>> +	b.eq	1f
>>> +	ret
>>> +1:
>>> +	msr daifclr, #4
>>> +
>>> +	/* set HCR_EL2.AMO to catch SERROR */
>>> +	mrs	x0, hcr_el2
>>> +	orr	x0, x0, #0x20
>>> +	msr	hcr_el2, x0
>>> +	isb
>>> +	ret
>>> +ENDPROC(lowlevel_init)
>>> --
>>> 2.16.4
>>>
>>> _______________________________________________
>>> U-Boot mailing list
>>> U-Boot at lists.denx.de
>>> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flist
>>>
>> s.denx.de%2Flistinfo%2Fu-boot&amp;data=02%7C01%7Cpeng.fan%40nxp.co
>> m%7C
>>>
>> d671eca9f1cc4d06a7d008d6ca7661b1%7C686ea1d3bc2b4c6fa92cd99c5c30
>> 1635%7C
>>>
>> 0%7C0%7C636919007134459412&amp;sdata=R6xBpoVJHL7meQkRkBi1I8vg
>> MgOTXlFEA
>>> QfMePrDdSc%3D&amp;reserved=0

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

* [U-Boot] [REGRESSION] [PATCH] imx: add lowlevel init for ARM64
  2019-04-28 16:52     ` Stefano Babic
@ 2019-04-28 18:24       ` Joe Hershberger
  2019-04-28 23:33         ` Marcel Ziswiler
  0 siblings, 1 reply; 654+ messages in thread
From: Joe Hershberger @ 2019-04-28 18:24 UTC (permalink / raw)
  To: u-boot



> On Apr 28, 2019, at 12:52 PM, Stefano Babic <sbabic@denx.de> wrote:
> 
> 
> 
>> On 27/04/19 01:58, Peng Fan wrote:
>> Hi Marcel,
>> 
>> Please apply this patch, Joe has not pick it up.
>> https://patchwork.ozlabs.org/patch/1085432/
>> 
>> Stefano,
>> 
>> Would you pick it up?
> 
> It is acked by Joe, i assign the patch to me in patchwork and I pick it up.
> 
> Regards,
> Stefano
> 
>> 
>> 
>>> Subject: [REGRESSION] [PATCH] imx: add lowlevel init for ARM64
>>> 
>>> Hi Peng and Stefano
>>> 
>>> Unfortunately, this seems to break Ethernet on Colibri iMX8X:

Has this been addressed?

>>> 
>>> => dhcp
>>> "Error" handler, esr 0xbf000002
>>> elr: 0000000080049664 lr : 000000008004964c (reloc)
>>> elr: 00000000ffef6664 lr : 00000000ffef664c
>>> x0 : 000000005b040288 x1 : 0000000000000001
>>> x2 : 00000000fd6c5ff4 x3 : 0000000000000020
>>> x4 : 00000000fd6c5ff0 x5 : 0000000000000020
>>> x6 : 00000000ffef079c x7 : 00000000fd6f1600
>>> x8 : 0000000000000044 x9 : 0000000000000008
>>> x10: 00000000fd6d1620 x11: 00000000fd6d3a10
>>> x12: 0000000000000000 x13: 0000000000000200
>>> x14: 00000000fd6c62cc x15: 0000000000000002
>>> x16: 0000000000002080 x17: 0000000000000000
>>> x18: 00000000fd6cada8 x19: 00000000fd6d1160
>>> x20: 0000000000000200 x21: 000000005b040300
>>> x22: 00000000fd6f1000 x23: 00000000fd6cfdf0
>>> x24: 00000000ffff8000 x25: 0000000000000000
>>> x26: 0000000000000000 x27: 0000000000000000
>>> x28: 00000000fd6d15c0 x29: 00000000fd6c6030
>>> 
>>> Resetting CPU ...
>>> 
>>> resetting ...
>>> 
>>> Reverting commit 5955c6eeb453 ("imx: add lowlevel init for ARM64") makes
>>> it work again.
>>> 
>>> Unfortunately, I don't have a MEK in my home office but will check Ethernet
>>> operation there on Monday as well.
>>> 
>>> Anyway, does anybody know what exactly is going on?
>> 
>> Regards,
>> Peng.
>> 
>>> 
>>> Cheers
>>> 
>>> Marcel
>>> 
>>>> On Mon, 2019-04-15 at 05:20 +0000, Peng Fan wrote:
>>>> Sometimes we met SERROR, but only to catch it when Linux boots up.
>>>> Let's enable catching in U-Boot to catch it ealier and ease debug.
>>>> 
>>>> Signed-off-by: Peng Fan <peng.fan@nxp.com>
>>>> ---
>>>> arch/arm/mach-imx/Makefile   |  2 +-
>>>> arch/arm/mach-imx/lowlevel.S | 22 ++++++++++++++++++++++
>>>> 2 files changed, 23 insertions(+), 1 deletion(-)  create mode 100644
>>>> arch/arm/mach-imx/lowlevel.S
>>>> 
>>>> diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile
>>>> index c3ed62aed6..37675d0558 100644
>>>> --- a/arch/arm/mach-imx/Makefile
>>>> +++ b/arch/arm/mach-imx/Makefile
>>>> @@ -204,7 +204,7 @@ endif
>>>> 
>>>> targets += $(addprefix ../../../,SPL spl/u-boot-spl.cfgout u-boot-
>>>> dtb.cfgout u-boot.cfgout u-boot.uim spl/u-boot-nand-spl.imx)
>>>> 
>>>> -obj-$(CONFIG_ARM64) += sip.o
>>>> +obj-$(CONFIG_ARM64) += lowlevel.o sip.o
>>>> 
>>>> obj-$(CONFIG_MX5) += mx5/
>>>> obj-$(CONFIG_MX6) += mx6/
>>>> diff --git a/arch/arm/mach-imx/lowlevel.S b/arch/arm/mach-
>>>> imx/lowlevel.S new file mode 100644 index 0000000000..158fdb7d87
>>>> --- /dev/null
>>>> +++ b/arch/arm/mach-imx/lowlevel.S
>>>> @@ -0,0 +1,22 @@
>>>> +/* SPDX-License-Identifier: GPL-2.0+ */
>>>> +/*
>>>> + * Copyright 2019 NXP
>>>> + */
>>>> +
>>>> +#include <linux/linkage.h>
>>>> +
>>>> +ENTRY(lowlevel_init)
>>>> +    mrs    x0, CurrentEL
>>>> +    cmp    x0, #8
>>>> +    b.eq    1f
>>>> +    ret
>>>> +1:
>>>> +    msr daifclr, #4
>>>> +
>>>> +    /* set HCR_EL2.AMO to catch SERROR */
>>>> +    mrs    x0, hcr_el2
>>>> +    orr    x0, x0, #0x20
>>>> +    msr    hcr_el2, x0
>>>> +    isb
>>>> +    ret
>>>> +ENDPROC(lowlevel_init)
>>>> --
>>>> 2.16.4
>>>> 
>>>> _______________________________________________
>>>> U-Boot mailing list
>>>> U-Boot at lists.denx.de
>>>> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flist
>>>> 
>>> s.denx.de%2Flistinfo%2Fu-boot&amp;data=02%7C01%7Cpeng.fan%40nxp.co
>>> m%7C
>>>> 
>>> d671eca9f1cc4d06a7d008d6ca7661b1%7C686ea1d3bc2b4c6fa92cd99c5c30
>>> 1635%7C
>>>> 
>>> 0%7C0%7C636919007134459412&amp;sdata=R6xBpoVJHL7meQkRkBi1I8vg
>>> MgOTXlFEA
>>>> QfMePrDdSc%3D&amp;reserved=0
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

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

* [U-Boot] [REGRESSION] [PATCH] imx: add lowlevel init for ARM64
  2019-04-28 18:24       ` Joe Hershberger
@ 2019-04-28 23:33         ` Marcel Ziswiler
  0 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-04-28 23:33 UTC (permalink / raw)
  To: u-boot

On Sun, 2019-04-28 at 14:24 -0400, Joe Hershberger wrote:
> > On Apr 28, 2019, at 12:52 PM, Stefano Babic <sbabic@denx.de> wrote:
> > 
> > 
> > 
> > > On 27/04/19 01:58, Peng Fan wrote:
> > > Hi Marcel,
> > > 
> > > Please apply this patch, Joe has not pick it up.
> > > https://patchwork.ozlabs.org/patch/1085432/
> > > 
> > > Stefano,
> > > 
> > > Would you pick it up?
> > 
> > It is acked by Joe, i assign the patch to me in patchwork and I
> > pick it up.
> > 
> > Regards,
> > Stefano
> > 
> > > 
> > > > Subject: [REGRESSION] [PATCH] imx: add lowlevel init for ARM64
> > > > 
> > > > Hi Peng and Stefano
> > > > 
> > > > Unfortunately, this seems to break Ethernet on Colibri iMX8X:
> 
> Has this been addressed?

Yes, sorry. The following patch as suggested by Peng does fix it:

https://patchwork.ozlabs.org/patch/1085432/

Thanks!

> > > > => dhcp
> > > > "Error" handler, esr 0xbf000002
> > > > elr: 0000000080049664 lr : 000000008004964c (reloc)
> > > > elr: 00000000ffef6664 lr : 00000000ffef664c
> > > > x0 : 000000005b040288 x1 : 0000000000000001
> > > > x2 : 00000000fd6c5ff4 x3 : 0000000000000020
> > > > x4 : 00000000fd6c5ff0 x5 : 0000000000000020
> > > > x6 : 00000000ffef079c x7 : 00000000fd6f1600
> > > > x8 : 0000000000000044 x9 : 0000000000000008
> > > > x10: 00000000fd6d1620 x11: 00000000fd6d3a10
> > > > x12: 0000000000000000 x13: 0000000000000200
> > > > x14: 00000000fd6c62cc x15: 0000000000000002
> > > > x16: 0000000000002080 x17: 0000000000000000
> > > > x18: 00000000fd6cada8 x19: 00000000fd6d1160
> > > > x20: 0000000000000200 x21: 000000005b040300
> > > > x22: 00000000fd6f1000 x23: 00000000fd6cfdf0
> > > > x24: 00000000ffff8000 x25: 0000000000000000
> > > > x26: 0000000000000000 x27: 0000000000000000
> > > > x28: 00000000fd6d15c0 x29: 00000000fd6c6030
> > > > 
> > > > Resetting CPU ...
> > > > 
> > > > resetting ...
> > > > 
> > > > Reverting commit 5955c6eeb453 ("imx: add lowlevel init for
> > > > ARM64") makes
> > > > it work again.
> > > > 
> > > > Unfortunately, I don't have a MEK in my home office but will
> > > > check Ethernet
> > > > operation there on Monday as well.
> > > > 
> > > > Anyway, does anybody know what exactly is going on?
> > > 
> > > Regards,
> > > Peng.
> > > 
> > > > Cheers
> > > > 
> > > > Marcel
> > > > 
> > > > > On Mon, 2019-04-15 at 05:20 +0000, Peng Fan wrote:
> > > > > Sometimes we met SERROR, but only to catch it when Linux
> > > > > boots up.
> > > > > Let's enable catching in U-Boot to catch it ealier and ease
> > > > > debug.
> > > > > 
> > > > > Signed-off-by: Peng Fan <peng.fan@nxp.com>
> > > > > ---
> > > > > arch/arm/mach-imx/Makefile   |  2 +-
> > > > > arch/arm/mach-imx/lowlevel.S | 22 ++++++++++++++++++++++
> > > > > 2 files changed, 23 insertions(+), 1 deletion(-)  create mode
> > > > > 100644
> > > > > arch/arm/mach-imx/lowlevel.S
> > > > > 
> > > > > diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-
> > > > > imx/Makefile
> > > > > index c3ed62aed6..37675d0558 100644
> > > > > --- a/arch/arm/mach-imx/Makefile
> > > > > +++ b/arch/arm/mach-imx/Makefile
> > > > > @@ -204,7 +204,7 @@ endif
> > > > > 
> > > > > targets += $(addprefix ../../../,SPL spl/u-boot-spl.cfgout u-
> > > > > boot-
> > > > > dtb.cfgout u-boot.cfgout u-boot.uim spl/u-boot-nand-spl.imx)
> > > > > 
> > > > > -obj-$(CONFIG_ARM64) += sip.o
> > > > > +obj-$(CONFIG_ARM64) += lowlevel.o sip.o
> > > > > 
> > > > > obj-$(CONFIG_MX5) += mx5/
> > > > > obj-$(CONFIG_MX6) += mx6/
> > > > > diff --git a/arch/arm/mach-imx/lowlevel.S b/arch/arm/mach-
> > > > > imx/lowlevel.S new file mode 100644 index
> > > > > 0000000000..158fdb7d87
> > > > > --- /dev/null
> > > > > +++ b/arch/arm/mach-imx/lowlevel.S
> > > > > @@ -0,0 +1,22 @@
> > > > > +/* SPDX-License-Identifier: GPL-2.0+ */
> > > > > +/*
> > > > > + * Copyright 2019 NXP
> > > > > + */
> > > > > +
> > > > > +#include <linux/linkage.h>
> > > > > +
> > > > > +ENTRY(lowlevel_init)
> > > > > +    mrs    x0, CurrentEL
> > > > > +    cmp    x0, #8
> > > > > +    b.eq    1f
> > > > > +    ret
> > > > > +1:
> > > > > +    msr daifclr, #4
> > > > > +
> > > > > +    /* set HCR_EL2.AMO to catch SERROR */
> > > > > +    mrs    x0, hcr_el2
> > > > > +    orr    x0, x0, #0x20
> > > > > +    msr    hcr_el2, x0
> > > > > +    isb
> > > > > +    ret
> > > > > +ENDPROC(lowlevel_init)
> > > > > --
> > > > > 2.16.4
> > > > > 
> > > > > _______________________________________________
> > > > > U-Boot mailing list
> > > > > U-Boot at lists.denx.de
> > > > > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flist
> > > > > 
> > > > s.denx.de%2Flistinfo%2Fu-
> > > > boot&amp;data=02%7C01%7Cpeng.fan%40nxp.co
> > > > m%7C
> > > > d671eca9f1cc4d06a7d008d6ca7661b1%7C686ea1d3bc2b4c6fa92cd99c5c30
> > > > 1635%7C
> > > > 0%7C0%7C636919007134459412&amp;sdata=R6xBpoVJHL7meQkRkBi1I8vg
> > > > MgOTXlFEA
> > > > > QfMePrDdSc%3D&amp;reserved=0
> > _______________________________________________
> > U-Boot mailing list
> > U-Boot at lists.denx.de
> > https://lists.denx.de/listinfo/u-boot

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

* [U-Boot] [PATCH] ARM: imx: apalis_imx6: Drop ad-hoc SATA binding
@ 2019-05-12 20:43 Marek Vasut
  2019-05-23 10:48 ` Marcel Ziswiler
  0 siblings, 1 reply; 654+ messages in thread
From: Marek Vasut @ 2019-05-12 20:43 UTC (permalink / raw)
  To: u-boot

Drop the ad-hoc AHCI binding code, this is superseded by
CONFIG_DWC_AHSATA_AHCI=y resp. drivers/ata/dwc_ahsata.c

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <fabio.estevam@nxp.com>
Cc: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Cc: Max Krummenacher <max.krummenacher@toradex.com>
Cc: Stefan Agner <stefan.agner@toradex.com>
Cc: Stefano Babic <sbabic@denx.de>
---
 board/toradex/apalis_imx6/apalis_imx6.c | 49 -------------------------
 1 file changed, 49 deletions(-)

diff --git a/board/toradex/apalis_imx6/apalis_imx6.c b/board/toradex/apalis_imx6/apalis_imx6.c
index 3e59185438..b502d4ef13 100644
--- a/board/toradex/apalis_imx6/apalis_imx6.c
+++ b/board/toradex/apalis_imx6/apalis_imx6.c
@@ -1131,52 +1131,3 @@ U_BOOT_DEVICE(mxc_serial) = {
 	.name = "serial_mxc",
 	.platdata = &mxc_serial_plat,
 };
-
-#if CONFIG_IS_ENABLED(AHCI)
-static int sata_imx_probe(struct udevice *dev)
-{
-	int i, err;
-
-	for (i = 0; i < APALIS_IMX6_SATA_INIT_RETRIES; i++) {
-		err = setup_sata();
-		if (err) {
-			printf("SATA setup failed: %d\n", err);
-			return err;
-		}
-
-		udelay(100);
-
-		err = dwc_ahsata_probe(dev);
-		if (!err)
-			break;
-
-		/* There is no device on the SATA port */
-		if (sata_dm_port_status(0, 0) == 0)
-			break;
-
-		/* There's a device, but link not established. Retry */
-		device_remove(dev, DM_REMOVE_NORMAL);
-	}
-
-	return 0;
-}
-
-struct ahci_ops sata_imx_ops = {
-	.port_status = dwc_ahsata_port_status,
-	.reset	= dwc_ahsata_bus_reset,
-	.scan	= dwc_ahsata_scan,
-};
-
-static const struct udevice_id sata_imx_ids[] = {
-	{ .compatible = "fsl,imx6q-ahci" },
-	{ }
-};
-
-U_BOOT_DRIVER(sata_imx) = {
-	.name		= "dwc_ahci",
-	.id		= UCLASS_AHCI,
-	.of_match	= sata_imx_ids,
-	.ops		= &sata_imx_ops,
-	.probe		= sata_imx_probe,
-};
-#endif /* AHCI */
-- 
2.20.1

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

* [U-Boot] [PATCH] ARM: imx: apalis_imx6: Drop ad-hoc SATA binding
  2019-05-12 20:43 [U-Boot] [PATCH] ARM: imx: apalis_imx6: Drop ad-hoc SATA binding Marek Vasut
@ 2019-05-23 10:48 ` Marcel Ziswiler
  0 siblings, 0 replies; 654+ messages in thread
From: Marcel Ziswiler @ 2019-05-23 10:48 UTC (permalink / raw)
  To: u-boot

On Sun, 2019-05-12 at 22:43 +0200, Marek Vasut wrote:
> Drop the ad-hoc AHCI binding code, this is superseded by
> CONFIG_DWC_AHSATA_AHCI=y resp. drivers/ata/dwc_ahsata.c
> 
> Signed-off-by: Marek Vasut <marex@denx.de>

Works fine, thanks!

Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

> Cc: Fabio Estevam <fabio.estevam@nxp.com>
> Cc: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Cc: Max Krummenacher <max.krummenacher@toradex.com>
> Cc: Stefan Agner <stefan.agner@toradex.com>
> Cc: Stefano Babic <sbabic@denx.de>
> ---
>  board/toradex/apalis_imx6/apalis_imx6.c | 49 ---------------------
> ----
>  1 file changed, 49 deletions(-)
> 
> diff --git a/board/toradex/apalis_imx6/apalis_imx6.c
> b/board/toradex/apalis_imx6/apalis_imx6.c
> index 3e59185438..b502d4ef13 100644
> --- a/board/toradex/apalis_imx6/apalis_imx6.c
> +++ b/board/toradex/apalis_imx6/apalis_imx6.c
> @@ -1131,52 +1131,3 @@ U_BOOT_DEVICE(mxc_serial) = {
>  	.name = "serial_mxc",
>  	.platdata = &mxc_serial_plat,
>  };
> -
> -#if CONFIG_IS_ENABLED(AHCI)
> -static int sata_imx_probe(struct udevice *dev)
> -{
> -	int i, err;
> -
> -	for (i = 0; i < APALIS_IMX6_SATA_INIT_RETRIES; i++) {
> -		err = setup_sata();
> -		if (err) {
> -			printf("SATA setup failed: %d\n", err);
> -			return err;
> -		}
> -
> -		udelay(100);
> -
> -		err = dwc_ahsata_probe(dev);
> -		if (!err)
> -			break;
> -
> -		/* There is no device on the SATA port */
> -		if (sata_dm_port_status(0, 0) == 0)
> -			break;
> -
> -		/* There's a device, but link not established. Retry */
> -		device_remove(dev, DM_REMOVE_NORMAL);
> -	}
> -
> -	return 0;
> -}
> -
> -struct ahci_ops sata_imx_ops = {
> -	.port_status = dwc_ahsata_port_status,
> -	.reset	= dwc_ahsata_bus_reset,
> -	.scan	= dwc_ahsata_scan,
> -};
> -
> -static const struct udevice_id sata_imx_ids[] = {
> -	{ .compatible = "fsl,imx6q-ahci" },
> -	{ }
> -};
> -
> -U_BOOT_DRIVER(sata_imx) = {
> -	.name		= "dwc_ahci",
> -	.id		= UCLASS_AHCI,
> -	.of_match	= sata_imx_ids,
> -	.ops		= &sata_imx_ops,
> -	.probe		= sata_imx_probe,
> -};
> -#endif /* AHCI */

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

* [U-Boot] [PATCH] ARM: imx: apalis_imx6: Drop ad-hoc SATA binding <mailto:u-boot-request@lists.denx.de?subject=unsubscribe> <mailto:u-boot-request@lists.denx.de?subject=subscribe>
       [not found]       ` <fabio.estevam@nxp.com>
                           ` (10 preceding siblings ...)
  2019-04-26  9:45         ` [U-Boot] [U-Boot, v2, 2/5] arm: dts: imx8dx: add lpuart1, lpuart2, lpuart3 sbabic at denx.de
@ 2019-06-10  9:19         ` sbabic at denx.de
  11 siblings, 0 replies; 654+ messages in thread
From: sbabic at denx.de @ 2019-06-10  9:19 UTC (permalink / raw)
  To: u-boot

> Drop the ad-hoc AHCI binding code, this is superseded by
> CONFIG_DWC_AHSATA_AHCI=y resp. drivers/ata/dwc_ahsata.c
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Fabio Estevam <fabio.estevam@nxp.com>
> Cc: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Cc: Max Krummenacher <max.krummenacher@toradex.com>
> Cc: Stefan Agner <stefan.agner@toradex.com>
> Cc: Stefano Babic <sbabic@denx.de>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
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] 654+ messages in thread

* [U-Boot] [PATCH 09/17] mx6sabresd: convert to DM_VIDEO
  2019-03-18 22:29 ` [U-Boot] [PATCH 09/17] mx6sabresd: " Anatolij Gustschin
@ 2019-09-16 18:18   ` Fabio Estevam
  2019-09-16 19:21     ` Anatolij Gustschin
  0 siblings, 1 reply; 654+ messages in thread
From: Fabio Estevam @ 2019-09-16 18:18 UTC (permalink / raw)
  To: u-boot

Hi Anatolij,

On Mon, Mar 18, 2019 at 7:36 PM Anatolij Gustschin <agust@denx.de> wrote:
>
> Enable DM_VIDEO in defconfig.
>
> Signed-off-by: Anatolij Gustschin <agust@denx.de>
> ---
>  configs/mx6sabresd_defconfig | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/configs/mx6sabresd_defconfig b/configs/mx6sabresd_defconfig
> index ea34217e1c..825218c0d6 100644
> --- a/configs/mx6sabresd_defconfig
> +++ b/configs/mx6sabresd_defconfig
> @@ -93,6 +93,6 @@ CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
>  CONFIG_CI_UDC=y
>  CONFIG_USB_HOST_ETHER=y
>  CONFIG_USB_ETHER_ASIX=y
> -CONFIG_VIDEO=y
> +CONFIG_DM_VIDEO=y

I am running the latest tree from Stefano and I do not have LVDS
output after this patch.

If I revert it, then LVDS output is normal again.

Any ideas?

Thanks

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

* [U-Boot] [PATCH 09/17] mx6sabresd: convert to DM_VIDEO
  2019-09-16 18:18   ` Fabio Estevam
@ 2019-09-16 19:21     ` Anatolij Gustschin
  2019-09-16 19:50       ` Anatolij Gustschin
  2019-09-17 12:32       ` Fabio Estevam
  0 siblings, 2 replies; 654+ messages in thread
From: Anatolij Gustschin @ 2019-09-16 19:21 UTC (permalink / raw)
  To: u-boot

Hi Fabio,

On Mon, 16 Sep 2019 15:18:34 -0300
Fabio Estevam festevam at gmail.com wrote:
...
> > -CONFIG_VIDEO=y
> > +CONFIG_DM_VIDEO=y  
> 
> I am running the latest tree from Stefano and I do not have LVDS
> output after this patch.
> 
> If I revert it, then LVDS output is normal again.
> 
> Any ideas?

Most probably this is because there was no user of the video
device when booting and therefore the video driver was not
probed/bound. Please try do display some bitmap with bmp
command or try to switch to the video console by command
"setenv stdout vidconsole0". Then, the video device will be
probed and you should see the LVDS output.

--
Anatolij

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

* [U-Boot] [PATCH 09/17] mx6sabresd: convert to DM_VIDEO
  2019-09-16 19:21     ` Anatolij Gustschin
@ 2019-09-16 19:50       ` Anatolij Gustschin
  2019-09-17 12:32       ` Fabio Estevam
  1 sibling, 0 replies; 654+ messages in thread
From: Anatolij Gustschin @ 2019-09-16 19:50 UTC (permalink / raw)
  To: u-boot

Hi Fabio,

On Mon, 16 Sep 2019 21:21:38 +0200
Anatolij Gustschin agust at denx.de wrote:

>Hi Fabio,
>
>On Mon, 16 Sep 2019 15:18:34 -0300
>Fabio Estevam festevam at gmail.com wrote:
>...
>> > -CONFIG_VIDEO=y
>> > +CONFIG_DM_VIDEO=y    
>> 
>> I am running the latest tree from Stefano and I do not have LVDS
>> output after this patch.
>> 
>> If I revert it, then LVDS output is normal again.
>> 
>> Any ideas?  
>
>Most probably this is because there was no user of the video
>device when booting and therefore the video driver was not
>probed/bound. Please try do display some bitmap with bmp
>command or try to switch to the video console by command
>"setenv stdout vidconsole0". Then, the video device will be
>probed and you should see the LVDS output.

There is an example how boards can enforce using video device
when booting, e.g. for displaying splash image. Please see commit
f0be8ff45fb8 (ARM: imx: m53menlo: Convert to DM VIDEO).

I'm not happy that it requires to extend the board code for this
and would prefer if it could be in common code. But this is what
we have now.

--
Anatolij

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

* [U-Boot] [PATCH 09/17] mx6sabresd: convert to DM_VIDEO
  2019-09-16 19:21     ` Anatolij Gustschin
  2019-09-16 19:50       ` Anatolij Gustschin
@ 2019-09-17 12:32       ` Fabio Estevam
  2019-09-17 21:42         ` Anatolij Gustschin
  1 sibling, 1 reply; 654+ messages in thread
From: Fabio Estevam @ 2019-09-17 12:32 UTC (permalink / raw)
  To: u-boot

Hi Anatolij,

On Mon, Sep 16, 2019 at 4:21 PM Anatolij Gustschin <agust@denx.de> wrote:

> Most probably this is because there was no user of the video
> device when booting and therefore the video driver was not
> probed/bound. Please try do display some bitmap with bmp
> command or try to switch to the video console by command
> "setenv stdout vidconsole0". Then, the video device will be
> probed and you should see the LVDS output.

Here is what I tried:

=> setenv stdout vidconsole0
## Error inserting "stdout" variable, errno=22

Then I see garbage on the LVDS panel.

Any ideas as to why setting "stdout" failed?

Thanks

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

* [U-Boot] [PATCH 09/17] mx6sabresd: convert to DM_VIDEO
  2019-09-17 12:32       ` Fabio Estevam
@ 2019-09-17 21:42         ` Anatolij Gustschin
  0 siblings, 0 replies; 654+ messages in thread
From: Anatolij Gustschin @ 2019-09-17 21:42 UTC (permalink / raw)
  To: u-boot

Hi Fabio,

On Tue, 17 Sep 2019 09:32:37 -0300
Fabio Estevam festevam at gmail.com wrote:

> Hi Anatolij,
> 
> On Mon, Sep 16, 2019 at 4:21 PM Anatolij Gustschin <agust@denx.de> wrote:
> 
> > Most probably this is because there was no user of the video
> > device when booting and therefore the video driver was not
> > probed/bound. Please try do display some bitmap with bmp
> > command or try to switch to the video console by command
> > "setenv stdout vidconsole0". Then, the video device will be
> > probed and you should see the LVDS output.  
> 
> Here is what I tried:
> 
> => setenv stdout vidconsole0  
> ## Error inserting "stdout" variable, errno=22
> 
> Then I see garbage on the LVDS panel.
> 
> Any ideas as to why setting "stdout" failed?

Does "setenv stdout vidconsole" work? I think I've suggested
wrong command, sorry. "vidconsole0" is the driver instance name
for the first video console, "vidconsole" is the correct name
for console device on framebuffer.

--
Anatolij

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

end of thread, other threads:[~2019-09-17 21:42 UTC | newest]

Thread overview: 654+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-13 21:46 [U-Boot] [PATCH v4 00/22] imx: vybrid: Update BK4 and PCM052 boards to only use DM/DTS Lukasz Majewski
2019-02-13 21:46 ` [U-Boot] [PATCH v4 01/22] net: FEC: Add compatible for vybrid (vf610) to reuse fec_mxc.c driver Lukasz Majewski
2019-02-13 21:46 ` [U-Boot] [PATCH v4 02/22] net: Kconfig: FEC: Add dependency on VF610 Lukasz Majewski
2019-02-13 21:46 ` [U-Boot] [PATCH v4 03/22] vybrid: ddr: Extend vf610-pinfunc.h with DDR pads definitions Lukasz Majewski
2019-02-13 21:46 ` [U-Boot] [PATCH v4 04/22] vybrid: clock: Provide enable_i2c_clk() function for Vybrid Lukasz Majewski
2019-02-13 21:46 ` [U-Boot] [PATCH v4 05/22] pcm052: board: Do not enable I2C2 code in the board file Lukasz Majewski
2019-02-13 21:46 ` [U-Boot] [PATCH v4 06/22] vybrid: Define the imx_get_mac_from_fuse() as a __weak function Lukasz Majewski
2019-02-13 21:46 ` [U-Boot] [PATCH v4 07/22] pcm052: board: Remove "m4go" command as it is superseded by "bootaux" Lukasz Majewski
2019-02-13 21:46 ` [U-Boot] [PATCH v4 08/22] pcm052: board: vybrid: Update the board name for BK4 device Lukasz Majewski
2019-02-13 21:46 ` [U-Boot] [PATCH v4 09/22] ARM: DTS: vybrid: Update vf.dtsi file to descibe more vf610 hardware Lukasz Majewski
2019-02-13 21:46 ` [U-Boot] [PATCH v4 10/22] pcm052: board: cosmetic: Add copyright notice to pcm052.c Lukasz Majewski
2019-02-13 21:46 ` [U-Boot] [PATCH v4 11/22] ARM: DTS: Update pcm052 based dts files (bk4r1/pcm052) Lukasz Majewski
2019-02-13 21:46 ` [U-Boot] [PATCH v4 12/22] ARM: DTS: Provide vf610-bk4r1-u-boot.dtsi for U-Boot specific properties Lukasz Majewski
2019-02-13 21:46 ` [U-Boot] [PATCH v4 13/22] defconfig: bk4/pcm052: Update bk4r1|pcm052_defconfig to support DM/DT Lukasz Majewski
2019-02-13 21:46 ` [U-Boot] [PATCH v4 14/22] config: pcm052: Use SZ_X{MK} from linux/sizes.h for include/configs/pcm052.h Lukasz Majewski
2019-02-13 21:46 ` [U-Boot] [PATCH v4 15/22] config: bk4: Update include/configs/bk4r1.h file Lukasz Majewski
2019-02-13 21:46 ` [U-Boot] [PATCH v4 16/22] pcm052: board: Remove in-board setup code (it is now replaced by DM setup) Lukasz Majewski
2019-02-13 21:46 ` [U-Boot] [PATCH v4 17/22] config: bk4: Update u-boot script to support recovery via SD card Lukasz Majewski
2019-02-13 21:46 ` [U-Boot] [PATCH v4 18/22] config: bk4: Update u-boot envs to support NOR memories initial setup Lukasz Majewski
2019-02-13 21:46 ` [U-Boot] [PATCH v4 19/22] pcm052: bk4: sdcard: Add support for SD card booting/recovery Lukasz Majewski
2019-02-13 21:46 ` [U-Boot] [PATCH v4 20/22] pcm052: board: Add code to setup LED default states Lukasz Majewski
2019-02-13 21:46 ` [U-Boot] [PATCH v4 21/22] pcm052: mac: Provide board specific imx_get_mac_from_fuse() function Lukasz Majewski
2019-02-13 21:46 ` [U-Boot] [PATCH v4 22/22] pcm052: bk4: Add board_phy_config() for BK4 to setup ksz8081 phy Lukasz Majewski
2019-03-04 22:26   ` Joe Hershberger
2019-03-04 22:35     ` Lukasz Majewski
  -- strict thread matches above, loose matches on Subject: below --
2019-05-12 20:43 [U-Boot] [PATCH] ARM: imx: apalis_imx6: Drop ad-hoc SATA binding Marek Vasut
2019-05-23 10:48 ` Marcel Ziswiler
2019-04-22 10:41 [U-Boot] [PATCH] ddr: imx8m: hide i.MX8M DDR options from device driver entry Peng Fan
2019-04-17 23:57 [U-Boot] [PATCH v3 00/14] colibri-imx6ull device tree enablement and driver model conversion Marcel Ziswiler
2019-04-17 23:57 ` [U-Boot] [PATCH v3 01/14] tdx-cfg-block: add support for new colibri iMX6ull skus Marcel Ziswiler
2019-04-17 23:57 ` [U-Boot] [PATCH v3 02/14] tdx-cfg-block: simplify i.MX 6 module detection Marcel Ziswiler
2019-04-17 23:57 ` [U-Boot] [PATCH v3 03/14] colibri-imx6ull: set module variant depending on config block Marcel Ziswiler
2019-04-17 23:57 ` [U-Boot] [PATCH v3 04/14] apalis/colibri_imx6/imx6ull: make sure loadaddr does not collide Marcel Ziswiler
2019-04-17 23:57 ` [U-Boot] [PATCH v3 05/14] colibri-imx6ull: fix ethernet phy power on Marcel Ziswiler
2019-04-17 23:57 ` [U-Boot] [PATCH v3 06/14] board: imx6ull: Add disable PMIC_STBY_REQ Marcel Ziswiler
2019-04-17 23:57 ` [U-Boot] [PATCH v3 07/14] colibri-imx6ull: configuration clean-up Marcel Ziswiler
2019-04-17 23:57 ` [U-Boot] [PATCH v3 08/14] colibri-imx6ull: migrate pinctrl and regulators to dtb/dm Marcel Ziswiler
2019-04-17 23:57 ` [U-Boot] [PATCH v3 09/14] colibri-imx6ull: migrate mmc to using driver model Marcel Ziswiler
2019-04-17 23:57 ` [U-Boot] [PATCH v3 10/14] colibri-imx6ull: migrate usb " Marcel Ziswiler
2019-04-17 23:57 ` [U-Boot] [PATCH v3 11/14] colibri-imx6ull: migrate fec " Marcel Ziswiler
2019-04-17 23:57 ` [U-Boot] [PATCH v3 12/14] ARM: dts: colibri-imx6ull: fix uart-has-rtscts property Marcel Ziswiler
2019-04-17 23:57 ` [U-Boot] [PATCH v3 13/14] ARM: dts: colibri-imx6ull: add osc32k_32k_out pinctrl Marcel Ziswiler
2019-04-17 23:57 ` [U-Boot] [PATCH v3 14/14] ARM: dts: colibri-imx6ull: update device tree Marcel Ziswiler
2019-04-17 23:47 [U-Boot] [PATCH v3] ARM: dts: i.MX6Q: fix avoid_unnecessary_addr_size warnings Marcel Ziswiler
2019-04-17  9:41 [U-Boot] [PATCH] imx: i.MX8MQ: clear ocotp error bit Peng Fan
2019-04-17  9:41 ` [U-Boot] [PATCH 1/2] mxc_ocotp: Update redundancy banks for mx7ulp B0 Peng Fan
2019-04-17  9:41 ` [U-Boot] [PATCH 2/2] mxc_ocotp: Disable fuse sense for imx8mq B1 Peng Fan
2019-04-15 12:00 [U-Boot] [PATCH] imx: 8qxp_mek: fix fdt_file and console Peng Fan
2019-04-15 13:31 ` Fabio Estevam
2019-04-26 18:42 ` [U-Boot] [REGRESSION] " Marcel Ziswiler
2019-04-27  0:11   ` Peng Fan
2019-04-15  9:13 [U-Boot] [PATCH v2 1/2] ARM: imx6: DHCOM i.MX6 PDK: use Kconfig for inclusion of DDR calibration Ludwig Zenz
2019-04-15  5:20 [U-Boot] [PATCH] imx: add lowlevel init for ARM64 Peng Fan
2019-04-26 18:38 ` [U-Boot] [REGRESSION] " Marcel Ziswiler
2019-04-26 23:58   ` Peng Fan
2019-04-28 16:52     ` Stefano Babic
2019-04-28 18:24       ` Joe Hershberger
2019-04-28 23:33         ` Marcel Ziswiler
2019-04-13  8:21 [U-Boot] [PATCH] ARM: imx: Fix typo in select option for ZMX25 Chris Packham
2019-04-15 16:32 ` Fabio Estevam
2019-04-15 16:50 ` Stefano Babic
2019-04-12  7:54 [U-Boot] [PATCH 1/8] imx: sip: add call_imx_sip_ret2 Peng Fan
2019-04-12  7:54 ` [U-Boot] [PATCH 2/8] imx8: fuse: add fuse driver Peng Fan
2019-04-12  7:54 ` [U-Boot] [PATCH 3/8] imx8qxp: mek: Enable CMD_FUSE Peng Fan
2019-04-12  7:55 ` [U-Boot] [PATCH 4/8] misc: imx8: add sc_misc_get_temp Peng Fan
2019-04-12  7:55 ` [U-Boot] [PATCH 5/8] thermal: add i.MX8 thermal driver Peng Fan
2019-04-12  7:55 ` [U-Boot] [PATCH 6/8] imx8: cpu: get temperature when print cpu desc Peng Fan
2019-04-25 10:35   ` Stefano Babic
2019-04-25 13:46     ` Peng Fan
2019-04-25 14:23       ` Stefano Babic
2019-04-12  7:55 ` [U-Boot] [PATCH 7/8] imx: imx8dx/qxp: enable thermal Peng Fan
2019-04-12  7:55 ` [U-Boot] [PATCH 8/8] imx8: mek: move HUSH_PARSER to defconfig Peng Fan
2019-04-09 15:25 [U-Boot] [PATCH v2 0/5] colibri imx8qxp 2gb wb it v1.0b module support Marcel Ziswiler
2019-04-09 15:25 ` [U-Boot] [PATCH v2 1/5] misc: imx8: remove duplicates from scfw api Marcel Ziswiler
2019-04-09 15:25 ` [U-Boot] [PATCH v2 2/5] arm: dts: imx8dx: add lpuart1, lpuart2, lpuart3 Marcel Ziswiler
2019-04-09 15:25 ` [U-Boot] [PATCH v2 3/5] board: toradex: tdx-cfg-block: clean-up sku handling Marcel Ziswiler
2019-04-09 15:25 ` [U-Boot] [PATCH v2 4/5] board: toradex: tdx-cfg-block: add new skus Marcel Ziswiler
2019-04-09 15:25 ` [U-Boot] [PATCH v2 5/5] board: toradex: add colibri imx8qxp 2gb wb it v1.0b module support Marcel Ziswiler
2019-04-11 10:47   ` Igor Opaniuk
2019-04-26  9:20     ` Marcel Ziswiler
2019-04-26  9:46       ` Stefano Babic
2019-04-26  9:58         ` Marcel Ziswiler
2019-04-26 10:39           ` Stefano Babic
2019-04-25 10:48   ` Stefano Babic
2019-04-25 12:35     ` Marcel Ziswiler
2019-04-25 14:52       ` Stefano Babic
2019-04-26  2:10         ` Peng Fan
2019-04-26  8:38           ` Stefano Babic
2019-04-26  8:53             ` Peng Fan
2019-04-26  8:54             ` Marcel Ziswiler
2019-04-26  9:03               ` Peng Fan
2019-04-26  9:38                 ` Marcel Ziswiler
2019-04-26  9:59                   ` Peng Fan
2019-04-09 15:24 [U-Boot] [PATCH v2 00/14] colibri-imx6ull device tree enablement and driver model conversion Marcel Ziswiler
2019-04-09 15:24 ` [U-Boot] [PATCH v2 01/14] tdx-cfg-block: add support for new colibri iMX6ull skus Marcel Ziswiler
2019-04-09 15:24 ` [U-Boot] [PATCH v2 02/14] tdx-cfg-block: simplify i.MX 6 module detection Marcel Ziswiler
2019-04-09 15:24 ` [U-Boot] [PATCH v2 03/14] colibri-imx6ull: set module variant depending on config block Marcel Ziswiler
2019-04-09 15:24 ` [U-Boot] [PATCH v2 04/14] apalis/colibri_imx6/imx6ull: make sure loadaddr does not collide Marcel Ziswiler
2019-04-09 15:24 ` [U-Boot] [PATCH v2 05/14] colibri-imx6ull: fix ethernet phy power on Marcel Ziswiler
2019-04-11  8:05   ` Igor Opaniuk
2019-04-09 15:24 ` [U-Boot] [PATCH v2 06/14] board: imx6ull: Add disable PMIC_STBY_REQ Marcel Ziswiler
2019-04-09 15:24 ` [U-Boot] [PATCH v2 07/14] colibri-imx6ull: configuration clean-up Marcel Ziswiler
2019-04-09 15:24 ` [U-Boot] [PATCH v2 08/14] colibri-imx6ull: migrate pinctrl and regulators to dtb/dm Marcel Ziswiler
2019-04-09 15:24 ` [U-Boot] [PATCH v2 09/14] colibri-imx6ull: migrate mmc to using driver model Marcel Ziswiler
2019-04-09 15:24 ` [U-Boot] [PATCH v2 10/14] colibri-imx6ull: migrate usb " Marcel Ziswiler
2019-04-17  7:58   ` Igor Opaniuk
2019-04-09 15:24 ` [U-Boot] [PATCH v2 11/14] colibri-imx6ull: migrate fec " Marcel Ziswiler
2019-04-09 15:24 ` [U-Boot] [PATCH v2 12/14] ARM: dts: colibri-imx6ull: fix uart-has-rtscts property Marcel Ziswiler
2019-04-09 15:24 ` [U-Boot] [PATCH v2 13/14] ARM: dts: colibri-imx6ull: add osc32k_32k_out pinctrl Marcel Ziswiler
2019-04-09 15:24 ` [U-Boot] [PATCH v2 14/14] ARM: dts: colibri-imx6ull: update device tree Marcel Ziswiler
2019-04-04 10:26 [U-Boot] [imx-next PATCH v1 00/14] imx: Fully convert HSC|DDC K+P i.MX53 based boards to use DM/DTS Lukasz Majewski
2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 01/14] ARM: Remove HSC|DDC ETH PHY reset code after switching to DM/DTS Lukasz Majewski
2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 02/14] DTS: Add esdhc3 device tree description tuning for HSC|DDC boards Lukasz Majewski
2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 03/14] ARM: Enable CONFIG_DM_MMC and CONFIG_DM_BLK on HSC and DDC boards Lukasz Majewski
2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 04/14] ARM: defconfig: Move CONFIG_FSL_ESDHC to Kconfig Lukasz Majewski
2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 05/14] ARM: Remove non DM/DTS esdhc3 code from HSC|DDC board related files Lukasz Majewski
2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 06/14] ARM: kp_imx53: config: Do not use ${boardtype} to setup update wic file Lukasz Majewski
2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 07/14] DTS: Provide USB host DTS description for i.MX53 devices Lukasz Majewski
2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 08/14] DTS: Enable USB host support (including regulators) on HSC|DDC boards Lukasz Majewski
2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 09/14] ARM: Remove EHCI specific code from HSC|DDC board file Lukasz Majewski
2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 10/14] USB: DM: Convert i.MX5 ehci code to driver model Lukasz Majewski
2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 11/14] ARM: defconfig: kp_imx53: Enable DM_USB support on HSC|DDC boards Lukasz Majewski
2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 12/14] ARM: config: Remove not needed CONFIG_MXC_USB_PORT define Lukasz Majewski
2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 13/14] Convert CONFIG_USB_EHCI_MX5 to Kconfig Lukasz Majewski
2019-04-04 10:26 ` [U-Boot] [imx-next PATCH v1 14/14] boot.src: Provide dsa_core.blacklist bootarg when booting via NFS Lukasz Majewski
2019-03-28 22:25 [U-Boot] [PATCH v1] colibri_vf: fix tab vs. spaces Marcel Ziswiler
2019-03-29 11:27 ` Igor Opaniuk
2019-03-28 22:24 [U-Boot] [PATCH v1] colibri_vf: fix ethernet by adding explicit phy node Marcel Ziswiler
2019-03-29  5:54 ` Hannes Schmelzer
2019-03-29 11:25 ` Igor Opaniuk
2019-03-25 16:24 [U-Boot] [PATCH v2 00/22] colibri vybrid fixes, device tree enablement and driver model conversion Marcel Ziswiler
2019-03-25 16:24 ` [U-Boot] [PATCH v2 01/22] Add missing space in comment Marcel Ziswiler
2019-03-25 16:24 ` [U-Boot] [PATCH v2 02/22] vf610: ddrmc: add missing include Marcel Ziswiler
2019-04-01  8:18   ` Lukasz Majewski
2019-03-25 16:24 ` [U-Boot] [PATCH v2 03/22] imx: bootaux: add dependency on vf610 Marcel Ziswiler
2019-04-01  8:18   ` Lukasz Majewski
2019-03-25 16:24 ` [U-Boot] [PATCH v2 04/22] configs: move CONFIG_USB_EHCI_VF to Kconfig Marcel Ziswiler
     [not found]   ` <swarren@nvidia.com>
2019-04-01  8:18   ` Lukasz Majewski
2019-03-25 16:24 ` [U-Boot] [PATCH v2 05/22] configs: colibri_vf: remove obsolete mmc/sd card environment Marcel Ziswiler
2019-04-01  8:19   ` Lukasz Majewski
2019-03-25 16:24 ` [U-Boot] [PATCH v2 06/22] configs: colibri_vf: limit size of malloc() pool before relocation Marcel Ziswiler
2019-04-01  8:19   ` Lukasz Majewski
2019-03-25 16:24 ` [U-Boot] [PATCH v2 07/22] configs: move CONFIG_MXC_OCOTP to Kconfig Marcel Ziswiler
2019-03-25 16:24 ` [U-Boot] [PATCH v2 08/22] ARM: dts: colibri_vf: update device trees Marcel Ziswiler
2019-03-25 16:24 ` [U-Boot] [PATCH v2 09/22] configs: colibri_vf: disable obscure options Marcel Ziswiler
2019-03-28 16:58   ` Igor Opaniuk
2019-03-29  9:08     ` Marcel Ziswiler
2019-03-25 16:25 ` [U-Boot] [PATCH v2 10/22] colibri_vf: migrate pinctrl and regulators to dtb/dm Marcel Ziswiler
2019-03-28 15:09   ` Igor Opaniuk
2019-03-25 16:25 ` [U-Boot] [PATCH v2 11/22] colibri_vf: migrate fec, esdhc, nfc and usb to driver model Marcel Ziswiler
2019-03-28 14:43   ` Igor Opaniuk
2019-03-25 16:25 ` [U-Boot] [PATCH v2 12/22] config: colibri_vf: use macros from linux/sizes.h Marcel Ziswiler
2019-03-25 16:25 ` [U-Boot] [PATCH v2 13/22] colibri_vf: add distroboot support Marcel Ziswiler
2019-03-28 15:01   ` Igor Opaniuk
2019-03-28 15:20     ` Marcel Ziswiler
2019-03-25 16:25 ` [U-Boot] [PATCH v2 14/22] colibri_vf: set fdtfile for distroboot Marcel Ziswiler
2019-03-28 15:06   ` Igor Opaniuk
2019-03-25 16:25 ` [U-Boot] [PATCH v2 15/22] colibri_vf: sync the board info message Marcel Ziswiler
2019-03-25 16:25 ` [U-Boot] [PATCH v2 16/22] colibri_vf: enable user debug by default Marcel Ziswiler
2019-03-25 16:25 ` [U-Boot] [PATCH v2 17/22] colibri_vf: disable undefined instruction events in user debug Marcel Ziswiler
2019-03-25 16:25 ` [U-Boot] [PATCH v2 18/22] config: colibri_vf: enable mtd partitions via dt Marcel Ziswiler
2019-03-25 16:25 ` [U-Boot] [PATCH v2 19/22] arm: vf610: add uart2 clock/pinmux support Marcel Ziswiler
2019-03-25 16:25 ` [U-Boot] [PATCH v2 20/22] colibri_vf: adjust timing according to data sheet Marcel Ziswiler
2019-03-28 16:41   ` Igor Opaniuk
2019-03-25 16:25 ` [U-Boot] [PATCH v2 21/22] colibri_vf: use leveling evaluated by DDR validation tools Marcel Ziswiler
2019-03-25 16:25 ` [U-Boot] [PATCH v2 22/22] colibri_vf: fix sdboot for vybrid modules Marcel Ziswiler
2019-03-18 22:29 [U-Boot] [PATCH 00/17] Convert some imx6 boards to DM_VIDEO Anatolij Gustschin
2019-03-18 22:29 ` [U-Boot] [PATCH 01/17] video: ipuv3: add DM_VIDEO support Anatolij Gustschin
2019-03-18 22:29 ` [U-Boot] [PATCH 02/17] video: move ipuv3 files to subdirectory Anatolij Gustschin
2019-03-18 22:29 ` [U-Boot] [PATCH 03/17] imx: move CONFIG_VIDEO_IPUV3 to defconfigs Anatolij Gustschin
2019-03-18 22:29 ` [U-Boot] [PATCH 04/17] imx6: dts: add 'u-boot, dm-pre-reloc' to soc and ipu nodes Anatolij Gustschin
2019-03-18 22:29 ` [U-Boot] [PATCH 05/17] apalis_imx6: convert to DM_VIDEO Anatolij Gustschin
2019-03-18 22:29 ` [U-Boot] [PATCH 06/17] imx6: icore: " Anatolij Gustschin
2019-03-18 22:29 ` [U-Boot] [PATCH 07/17] imx6: ge_bx50v3: " Anatolij Gustschin
2019-03-18 22:29 ` [U-Boot] [PATCH 08/17] colibri_imx6: " Anatolij Gustschin
2019-03-18 22:29 ` [U-Boot] [PATCH 09/17] mx6sabresd: " Anatolij Gustschin
2019-09-16 18:18   ` Fabio Estevam
2019-09-16 19:21     ` Anatolij Gustschin
2019-09-16 19:50       ` Anatolij Gustschin
2019-09-17 12:32       ` Fabio Estevam
2019-09-17 21:42         ` Anatolij Gustschin
2019-03-18 22:29 ` [U-Boot] [PATCH 10/17] mx6sabreauto: " Anatolij Gustschin
2019-03-18 22:29 ` [U-Boot] [PATCH 11/17] imx6: wandboard: add device tree Anatolij Gustschin
2019-03-18 22:29 ` [U-Boot] [PATCH 12/17] imx6: wandboard: convert to DM_GPIO and enable pinctrl driver Anatolij Gustschin
2019-03-18 22:29 ` [U-Boot] [PATCH 13/17] imx6: wandboard: convert to DM_USB Anatolij Gustschin
2019-03-18 22:29 ` [U-Boot] [PATCH 14/17] imx6: wandboard: convert to DM_VIDEO Anatolij Gustschin
2019-03-18 22:29 ` [U-Boot] [PATCH 15/17] imx6: wandboard: convert to DM_PMIC Anatolij Gustschin
2019-03-18 22:29 ` [U-Boot] [PATCH 16/17] imx6: wandboard: convert to DM_I2C Anatolij Gustschin
2019-03-18 22:29 ` [U-Boot] [PATCH 17/17] imx6: wandboard: convert to DM_MMC Anatolij Gustschin
2019-03-18 22:37 ` [U-Boot] [PATCH 00/17] Convert some imx6 boards to DM_VIDEO Anatolij Gustschin
2019-03-20 13:25 ` Fabio Estevam
2019-03-20 13:38   ` Anatolij Gustschin
2019-03-20 13:40     ` Fabio Estevam
2019-03-07 12:43 [U-Boot] [PATCH] imx8qxp: mek: enable dm-spl for pm Peng Fan
2019-03-18  8:43 ` Peng Fan
2019-04-09 12:47   ` Peng Fan
2019-03-05  2:32 [U-Boot] [PATCH RESEND 01/10] pinctrl: imx8: add i.MX8QM compatible Peng Fan
2019-03-05  2:32 ` [U-Boot] [PATCH RESEND 02/10] dt-bindings: pinctrl: add i.MX8QM pads definition Peng Fan
2019-03-05  2:32 ` [U-Boot] [PATCH RESEND 03/10] dt-bindings: clock: dt-bindings: pinctrl: add i.MX8QM clocks definition Peng Fan
2019-03-05  2:32 ` [U-Boot] [PATCH RESEND 04/10] arm: dts: introduce dtsi for i.MX8QM Peng Fan
2019-03-05  2:32 ` [U-Boot] [PATCH RESEND 05/10] imx8: add cpu support Peng Fan
2019-03-05  2:32 ` [U-Boot] [PATCH RESEND 06/10] clk: imx8: split code into common and soc specific part Peng Fan
2019-03-05  2:32 ` [U-Boot] [PATCH RESEND 07/10] clk: imx8: add i.MX8QM clk driver Peng Fan
2019-03-05  2:32 ` [U-Boot] [PATCH RESEND 08/10] imx8: imx8-pins: add i.MX8QM Peng Fan
2019-03-05  2:32 ` [U-Boot] [PATCH RESEND 09/10] misc: imx8: scu: add i.MX8QM support Peng Fan
2019-03-05  2:32 ` [U-Boot] [PATCH RESEND 10/10] imx: support i.MX8QM MEK board Peng Fan
2019-04-09 12:48   ` Peng Fan
2019-03-18  8:42 ` [U-Boot] [PATCH RESEND 01/10] pinctrl: imx8: add i.MX8QM compatible Peng Fan
2019-03-01 12:10 [U-Boot] [PATCH 00/10] tbs2910 fixes and driver model conversion Soeren Moch
2019-03-01 12:10 ` [U-Boot] [PATCH 01/10] board: tbs2910: Fix default environment Soeren Moch
2019-03-14 19:16   ` Soeren Moch
2019-03-14 19:18     ` Stefano Babic
2019-03-01 12:10 ` [U-Boot] [PATCH 02/10] board: tbs2910: Remove efi loader support in defconfig to reduce u-boot size Soeren Moch
2019-04-01  8:59   ` [U-Boot] [U-Boot, " sbabic at denx.de
2019-03-01 12:10 ` [U-Boot] [PATCH 03/10] board: tbs2910: Add device tree Soeren Moch
2019-04-01  8:59   ` [U-Boot] [U-Boot,03/10] " sbabic at denx.de
2019-03-01 12:10 ` [U-Boot] [PATCH 04/10] board: tbs2910: Add pinctrl driver and convert gpio to driver model Soeren Moch
2019-04-01  8:52   ` [U-Boot] [U-Boot, " sbabic at denx.de
2019-03-01 12:10 ` [U-Boot] [PATCH 05/10] board: tbs2910: Convert usb " Soeren Moch
2019-04-01  8:52   ` [U-Boot] [U-Boot, " sbabic at denx.de
2019-03-01 12:10 ` [U-Boot] [PATCH 06/10] board: tbs2910: Convert i2c and rtc " Soeren Moch
2019-04-01  8:59   ` [U-Boot] [U-Boot, " sbabic at denx.de
2019-03-01 12:10 ` [U-Boot] [PATCH 07/10] ata: dwc_ahsata: Fix sector reports for large disks Soeren Moch
2019-04-01  8:52   ` [U-Boot] [U-Boot, " sbabic at denx.de
2019-03-01 12:10 ` [U-Boot] [PATCH 08/10] ata: dwc_ahsata: Add ahci driver model support Soeren Moch
2019-03-07  8:33   ` Soeren Moch
2019-03-08 20:19     ` Soeren Moch
     [not found]   ` <smoch@web.de>
     [not found]     ` <marcel@ziswiler.com>
2019-04-01  8:59       ` [U-Boot] [U-Boot, 09/10] board: tbs2910: Convert sata to ahci driver model sbabic at denx.de
2019-03-01 12:11 ` [U-Boot] [PATCH " Soeren Moch
2019-03-01 12:11 ` [U-Boot] [PATCH 10/10] board: tbs2910: Convert mmc to " Soeren Moch
2019-04-01  8:59   ` [U-Boot] [U-Boot, " sbabic at denx.de
2019-02-08 17:42 [U-Boot] [PATCH v1 00/26] colibri imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
2019-02-08 17:42 ` [U-Boot] [PATCH v1 01/26] colibri_imx6: get rid of obsolete nospl configurations Marcel Ziswiler
2019-02-08 17:42 ` [U-Boot] [PATCH v1 02/26] colibri_imx6: use distro defaults Marcel Ziswiler
2019-02-08 17:42 ` [U-Boot] [PATCH v1 03/26] colibri_imx6: move console in env from header file to defconfig Marcel Ziswiler
2019-02-08 17:42 ` [U-Boot] [PATCH v1 04/26] colibri_imx6: enable fit image, gpt, imx thermal, efi loader support Marcel Ziswiler
2019-02-08 17:42 ` [U-Boot] [PATCH v1 05/26] colibri_imx6: remove obsolete USB_GADGET_MASS_STORAGE configuration Marcel Ziswiler
2019-02-08 17:42 ` [U-Boot] [PATCH v1 06/26] colibri_imx6: migrate to using device tree Marcel Ziswiler
2019-02-08 17:42 ` [U-Boot] [PATCH v1 07/26] colibri_imx6: clean-up and migrate gpios to using driver model Marcel Ziswiler
2019-02-08 17:42 ` [U-Boot] [PATCH v1 08/26] colibri_imx6: enable pin control driver Marcel Ziswiler
2019-02-08 17:42 ` [U-Boot] [PATCH v1 09/26] colibri_imx6: migrate i2c to using driver model Marcel Ziswiler
2019-02-08 17:42 ` [U-Boot] [PATCH v1 10/26] colibri_imx6: migrate pmic and regulator " Marcel Ziswiler
2019-02-08 17:42 ` [U-Boot] [PATCH v1 11/26] colibri_imx6: migrate mmc " Marcel Ziswiler
2019-02-08 17:42 ` [U-Boot] [PATCH v1 12/26] colibri_imx6: migrate usb " Marcel Ziswiler
2019-02-08 17:42 ` [U-Boot] [PATCH v1 13/26] colibri_imx6: drop CONFIG_OF_SYSTEM_SETUP Marcel Ziswiler
2019-02-08 17:42 ` [U-Boot] [PATCH v1 14/26] colibri_imx6: print also 64-bit IT Marcel Ziswiler
2019-02-08 17:42 ` [U-Boot] [PATCH v1 15/26] colibri_imx6: add distroboot support Marcel Ziswiler
2019-02-08 17:42 ` [U-Boot] [PATCH v1 16/26] colibri_imx6: unify sd/mmc drive strenght with linux kernel settings Marcel Ziswiler
2019-02-08 17:42 ` [U-Boot] [PATCH v1 17/26] colibri imx6: pf0100: reorder and cleanup message printing Marcel Ziswiler
2019-02-08 17:42 ` [U-Boot] [PATCH v1 18/26] colibri imx6: disable ri and dcd irq in uarts Marcel Ziswiler
2019-02-08 17:42 ` [U-Boot] [PATCH v1 19/26] colibri_imx6: change pmic fusing according to hw 1.1 requirements Marcel Ziswiler
2019-02-08 17:42 ` [U-Boot] [PATCH v1 20/26] colibri_imx6: revert fuse value set in mfgr_fuse Marcel Ziswiler
2019-02-08 17:42 ` [U-Boot] [PATCH v1 21/26] toradex: colibri_imx6: overwrite CMA memory set in device tree Marcel Ziswiler
2019-02-08 17:42 ` [U-Boot] [PATCH v1 22/26] configs: colibri_imx6: Use ext4 file system by default Marcel Ziswiler
2019-02-08 17:42 ` [U-Boot] [PATCH v1 23/26] colibri_imx6: use SDP if USB serial downloader has been used Marcel Ziswiler
2019-02-08 17:42 ` [U-Boot] [PATCH v1 24/26] colibri_imx6: switch to zimage Marcel Ziswiler
2019-02-08 21:42   ` Lukasz Majewski
2019-02-08 21:48     ` Marcel Ziswiler
2019-02-08 17:42 ` [U-Boot] [PATCH v1 25/26] colibri_imx6: added nreset gpio on reboot Marcel Ziswiler
     [not found]   ` <gerard.salvatella@toradex.com>
     [not found]     ` <igor.opaniuk@toradex.com>
     [not found]       ` <support.arm@toradex.com>
2019-04-26  9:37         ` [U-Boot] [U-Boot, v3, 14/14] ARM: dts: colibri-imx6ull: update device tree sbabic at denx.de
2019-04-26  9:38         ` [U-Boot] [U-Boot, v2, 12/14] ARM: dts: colibri-imx6ull: fix uart-has-rtscts property sbabic at denx.de
2019-04-26  9:38         ` [U-Boot] [U-Boot, v3, 13/14] ARM: dts: colibri-imx6ull: add osc32k_32k_out pinctrl sbabic at denx.de
     [not found]       ` <antti.maentausta@ge.com>
2019-04-26  9:38         ` [U-Boot] [U-Boot, imx-next, v1, 13/14] Convert CONFIG_USB_EHCI_MX5 to Kconfig sbabic at denx.de
2019-02-08 17:42 ` [U-Boot] [PATCH v1 26/26] board: colibri_imx6: check for and report ecc errors in fuses Marcel Ziswiler
2019-02-08 17:12 [U-Boot] [PATCH v2 00/23] apalis imx6 fixes, device tree enablement and driver model conversion Marcel Ziswiler
2019-02-08 17:12 ` [U-Boot] [PATCH v2 01/23] apalis_imx6: get rid of obsolete nospl configurations Marcel Ziswiler
2019-02-08 17:12 ` [U-Boot] [PATCH v2 02/23] apalis_imx6: use distro defaults Marcel Ziswiler
2019-02-08 17:12 ` [U-Boot] [PATCH v2 03/23] apalis_imx6: move console in env from header file to defconfig Marcel Ziswiler
2019-02-08 17:12 ` [U-Boot] [PATCH v2 04/23] apalis_imx6: enable fit image, gpt, imx thermal, efi loader support Marcel Ziswiler
2019-03-12 10:45   ` Igor Opaniuk
2019-02-08 17:12 ` [U-Boot] [PATCH v2 05/23] apalis_imx6: remove obsolete USB_GADGET_MASS_STORAGE configuration Marcel Ziswiler
2019-03-12 10:46   ` Igor Opaniuk
2019-02-08 17:12 ` [U-Boot] [PATCH v2 06/23] apalis_imx6: migrate to using device tree Marcel Ziswiler
2019-02-08 17:12 ` [U-Boot] [PATCH v2 07/23] apalis_imx6: clean-up and migrate gpios to using driver model Marcel Ziswiler
2019-02-08 17:12 ` [U-Boot] [PATCH v2 08/23] apalis_imx6: enable pin control driver Marcel Ziswiler
2019-02-08 17:12 ` [U-Boot] [PATCH v2 09/23] apalis_imx6: migrate i2c to using driver model Marcel Ziswiler
2019-02-08 17:12 ` [U-Boot] [PATCH v2 10/23] apalis_imx6: migrate pmic and regulator " Marcel Ziswiler
2019-02-08 17:12 ` [U-Boot] [PATCH v2 11/23] apalis_imx6: migrate mmc and sata " Marcel Ziswiler
2019-02-25 10:39   ` Soeren Moch
2019-03-01 12:20     ` Soeren Moch
2019-03-01 12:29       ` Marcel Ziswiler
2019-02-08 17:12 ` [U-Boot] [PATCH v2 12/23] apalis_imx6: migrate usb " Marcel Ziswiler
2019-02-08 17:12 ` [U-Boot] [PATCH v2 13/23] apalis_imx6: drop CONFIG_OF_SYSTEM_SETUP Marcel Ziswiler
2019-02-08 17:12 ` [U-Boot] [PATCH v2 14/23] apalis_imx6: add distroboot support Marcel Ziswiler
2019-02-08 17:12 ` [U-Boot] [PATCH v2 15/23] apalis_imx6: use both sd/mmc interfaces for setsdupdate Marcel Ziswiler
2019-02-08 17:12 ` [U-Boot] [PATCH v2 16/23] apalis_imx6: unify sd/mmc drive strength with linux kernel settings Marcel Ziswiler
2019-02-08 17:12 ` [U-Boot] [PATCH v2 17/23] apalis_imx6: pf0100: reorder and cleanup message printing Marcel Ziswiler
2019-02-08 17:12 ` [U-Boot] [PATCH v2 18/23] apalis_imx6: disable ri and dcd irq in uarts Marcel Ziswiler
2019-02-08 17:12 ` [U-Boot] [PATCH v2 19/23] apalis_imx6: revert fuse value set in mfgr_fuse Marcel Ziswiler
2019-02-08 17:12 ` [U-Boot] [PATCH v2 20/23] configs: apalis_imx6: Use ext4 file system by default Marcel Ziswiler
2019-02-08 17:12 ` [U-Boot] [PATCH v2 21/23] apalis_imx6: use SDP if USB serial downloader has been used Marcel Ziswiler
2019-02-08 17:12 ` [U-Boot] [PATCH v2 22/23] apalis_imx6: switch to zimage Marcel Ziswiler
     [not found]   ` <bhuvanchandra.dv@toradex.com>
2019-04-01  8:52     ` [U-Boot] [U-Boot, v2, 15/22] colibri_vf: sync the board info message sbabic at denx.de
2019-02-08 17:12 ` [U-Boot] [PATCH v2 23/23] board: apalis_imx6: check for and report ecc errors in fuses Marcel Ziswiler
2019-02-01 16:40 [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support Abel Vesa
2019-02-01 16:40 ` [U-Boot] [PATCH v4 01/20] common: spl_fit: Fix the spl_fit_image_get_os for FIT_IMAGE_TINY Abel Vesa
2019-02-01 19:01   ` Tom Rini
2019-02-01 21:08   ` Lukasz Majewski
2019-02-02  9:40   ` Fabio Estevam
2019-02-16  9:23   ` Stefano Babic
2019-02-18  8:27     ` Abel Vesa
2019-02-01 16:40 ` [U-Boot] [PATCH v4 02/20] usb: Rename SPL_USB_SUPPORT to SPL_USB_STORAGE Abel Vesa
2019-02-02  9:40   ` Fabio Estevam
2019-02-02 21:46   ` Lukasz Majewski
2019-02-01 16:40 ` [U-Boot] [PATCH v4 03/20] usb: ehci-mx6: Make regulator DM_REGULATOR dependent Abel Vesa
2019-02-02  9:41   ` Fabio Estevam
2019-02-02 21:47   ` Lukasz Majewski
2019-02-01 16:40 ` [U-Boot] [PATCH v4 04/20] configs: imx6sabreauto: Add DM_MMC support Abel Vesa
2019-02-02  9:41   ` Fabio Estevam
2019-02-01 16:40 ` [U-Boot] [PATCH v4 05/20] configs: imx6sabreauto: Add DM_USB support Abel Vesa
2019-02-02  9:42   ` Fabio Estevam
2019-02-01 16:40 ` [U-Boot] [PATCH v4 06/20] mmc: fsl_esdhc: Fix DM_REGULATOR ifdefs for SPL builds Abel Vesa
2019-02-02  9:42   ` Fabio Estevam
2019-02-02 21:48   ` Lukasz Majewski
2019-02-01 16:40 ` [U-Boot] [PATCH v4 07/20] board: mx6sabresd: Add board_fit_config_name_match to support FIT in SPL Abel Vesa
2019-02-02  9:43   ` Fabio Estevam
2019-02-02 21:48   ` Lukasz Majewski
2019-02-01 16:40 ` [U-Boot] [PATCH v4 08/20] board: mx6sabreauto: " Abel Vesa
2019-02-02  9:43   ` Fabio Estevam
2019-02-02 21:49   ` Lukasz Majewski
2019-02-01 16:40 ` [U-Boot] [PATCH v4 09/20] arm: dts: Add all the imx6[q|qp|dl] sabre[auto|sd] u-boot dts[i] files Abel Vesa
2019-02-02  9:44   ` Fabio Estevam
2019-02-02 21:50   ` Lukasz Majewski
2019-02-01 16:40 ` [U-Boot] [PATCH v4 10/20] arm: dts: Update all the dts[i] files for imx6[q|qp|dl] sabre[auto|sd] Abel Vesa
2019-02-02  9:45   ` Fabio Estevam
2019-02-02 21:50   ` Lukasz Majewski
2019-02-01 16:40 ` [U-Boot] [PATCH v4 11/20] configs: mx6sabreauto: Add SPL FIT and DM support Abel Vesa
2019-02-02  9:45   ` Fabio Estevam
2019-02-01 16:40 ` [U-Boot] [PATCH v4 12/20] configs: mx6sabresd: " Abel Vesa
2019-02-02  9:45   ` Fabio Estevam
2019-02-01 16:40 ` [U-Boot] [PATCH v4 14/20] mx6sabresd: Add DM_GPIO support Abel Vesa
2019-02-02  9:46   ` Fabio Estevam
2019-02-01 16:40 ` [U-Boot] [PATCH v4 13/20] mx6sabreauto: " Abel Vesa
2019-02-02  9:46   ` Fabio Estevam
2019-02-01 16:40 ` [U-Boot] [PATCH v4 15/20] configs: mx6sabreauto: Add DM_SPI_FLASH necessary configs Abel Vesa
2019-02-02  9:46   ` Fabio Estevam
2019-02-01 16:40 ` [U-Boot] [PATCH v4 17/20] board: mx6sabreauto: Remove the non-DM code Abel Vesa
2019-02-02  9:47   ` Fabio Estevam
2019-02-01 16:40 ` [U-Boot] [PATCH v4 16/20] configs: mx6sabresd: Add DM_SPI_FLASH necessary configs Abel Vesa
2019-02-02  9:47   ` Fabio Estevam
2019-02-01 16:40 ` [U-Boot] [PATCH v4 18/20] board: mx6sabresd: Remove non-DM code Abel Vesa
2019-02-02  9:47   ` Fabio Estevam
2019-02-01 16:40 ` [U-Boot] [PATCH v4 19/20] board: mx6sabresd: Remove the enet reset gpio handling Abel Vesa
2019-02-02  9:48   ` Fabio Estevam
2019-02-28 19:01     ` Soeren Moch
2019-02-28 19:24       ` Fabio Estevam
2019-02-01 16:40 ` [U-Boot] [PATCH v4 20/20] configs: mx6sabresd: Reduce SPL size by disabling DOS, EXT and EFI support Abel Vesa
2019-02-02  9:49   ` Fabio Estevam
2019-02-01 17:13 ` [U-Boot] [PATCH v4 00/20] mx6sabre: Add DM and SPL FIT support Fabio Estevam
2019-02-01 17:59   ` Abel Vesa
2019-02-01 18:18     ` Fabio Estevam
2019-02-01 19:01 ` Tom Rini
2019-02-02  9:50 ` Fabio Estevam
2019-02-04  9:55   ` Abel Vesa
2019-02-04 11:03     ` Fabio Estevam
2019-02-04 13:19       ` Tom Rini
2019-02-04 15:15         ` Abel Vesa
2019-02-04 15:21           ` Simon Goldschmidt
2019-02-04 15:30             ` Tom Rini
2019-02-09 22:48         ` Abel Vesa
2019-02-09 22:55           ` Fabio Estevam
2019-02-01 15:04 [U-Boot] [PATCH v1 0/3] imx: cpu.c, serial_mxc, dts fixes/improvements Marcel Ziswiler
2019-02-01 15:04 ` [U-Boot] [PATCH v1 1/3] ARM: dts: i.MX6Q, i.MX6QDL: fix address/size-cells warnings Marcel Ziswiler
     [not found]   ` <trini@konsulko.com>
2019-02-16 10:26     ` [U-Boot] [U-Boot, v1, " sbabic at denx.de
2019-02-01 15:04 ` [U-Boot] [PATCH v1 2/3] imx: serial_mxc: disable ri and dcd irq in dte mode Marcel Ziswiler
2019-02-15 12:26   ` Stefano Babic
2019-02-01 15:04 ` [U-Boot] [PATCH v1 3/3] imx: cpu.c: give access to reset cause in spl Marcel Ziswiler
2019-01-18  8:58 [U-Boot] [PATCH] imx8: cpu: restrict checking ROM passover info for revA Peng Fan
     [not found] ` <uboot-imx@nxp.com>
2019-01-30  8:57   ` [U-Boot] " sbabic at denx.de
2019-01-30  8:57   ` [U-Boot] [U-Boot, V2, 06/10] dts: imx8qxp-mek: introduce u-boot dtsi sbabic at denx.de
2019-01-30  8:57   ` [U-Boot] [U-Boot,V2,08/10] imx: build flash.bin for i.MX8 sbabic at denx.de
2019-01-30  8:57   ` [U-Boot] [U-Boot,V2,10/10] imx8qxp: mek: update README sbabic at denx.de
2019-01-30  8:57   ` [U-Boot] [U-Boot,V2,09/10] imx8qxp: mek: default enable SPL sbabic at denx.de
2019-01-30  8:57   ` [U-Boot] [U-Boot,V2,01/10] imx8qxp: add SUPPORT_SPL option sbabic at denx.de
2019-01-30  8:57   ` [U-Boot] [U-Boot,V2,03/10] arm: imx: build mach-imx for i.MX8 sbabic at denx.de
2019-01-30  9:05   ` [U-Boot] [U-Boot, V2, 07/10] imx: mkimage_fit_atf: introduce BL33_BASE_ADDR sbabic at denx.de
2019-01-30  9:05   ` [U-Boot] [U-Boot,V2,05/10] spl: imx8: add spl boot device sbabic at denx.de
2019-01-30  9:05   ` [U-Boot] [U-Boot,V2,04/10] gpio: introduce CONFIG_SPL_DM_PCA953X sbabic at denx.de
2019-01-30  9:15   ` [U-Boot] [U-Boot,V2,02/10] imx8: scu: use dedicated MU for SPL sbabic at denx.de
     [not found]   ` <peng.fan@nxp.com>
2019-02-16 10:26     ` [U-Boot] [U-Boot,v4,18/20] board: mx6sabresd: Remove non-DM code sbabic at denx.de
2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 17/20] board: mx6sabreauto: Remove the " sbabic at denx.de
2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 07/20] board: mx6sabresd: Add board_fit_config_name_match to support FIT in SPL sbabic at denx.de
2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 15/20] configs: mx6sabreauto: Add DM_SPI_FLASH necessary configs sbabic at denx.de
2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 05/20] configs: imx6sabreauto: Add DM_USB support sbabic at denx.de
2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 06/20] mmc: fsl_esdhc: Fix DM_REGULATOR ifdefs for SPL builds sbabic at denx.de
2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 09/20] arm: dts: Add all the imx6[q|qp|dl] sabre[auto|sd] u-boot dts[i] files sbabic at denx.de
2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 12/20] configs: mx6sabresd: Add SPL FIT and DM support sbabic at denx.de
2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 04/20] configs: imx6sabreauto: Add DM_MMC support sbabic at denx.de
2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 01/20] common: spl_fit: Fix the spl_fit_image_get_os for FIT_IMAGE_TINY sbabic at denx.de
2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 16/20] configs: mx6sabresd: Add DM_SPI_FLASH necessary configs sbabic at denx.de
2019-02-16 10:26     ` [U-Boot] [U-Boot, v4, 19/20] board: mx6sabresd: Remove the enet reset gpio handling sbabic at denx.de
2019-02-16 10:35     ` [U-Boot] [U-Boot, v4, 03/20] usb: ehci-mx6: Make regulator DM_REGULATOR dependent sbabic at denx.de
2019-02-16 10:35     ` [U-Boot] [U-Boot, v4, 20/20] configs: mx6sabresd: Reduce SPL size by disabling DOS, EXT and EFI support sbabic at denx.de
2019-02-16 10:35     ` [U-Boot] [U-Boot,v4,13/20] mx6sabreauto: Add DM_GPIO support sbabic at denx.de
2019-02-16 10:35     ` [U-Boot] [U-Boot, v4, 11/20] configs: mx6sabreauto: Add SPL FIT and DM support sbabic at denx.de
2019-02-16 10:35     ` [U-Boot] [U-Boot, v4, 08/20] board: mx6sabreauto: Add board_fit_config_name_match to support FIT in SPL sbabic at denx.de
2019-02-16 10:35     ` [U-Boot] [U-Boot, v4, 10/20] arm: dts: Update all the dts[i] files for imx6[q|qp|dl] sabre[auto|sd] sbabic at denx.de
2019-02-16 10:35     ` [U-Boot] [U-Boot,v4,14/20] mx6sabresd: Add DM_GPIO support sbabic at denx.de
2019-02-16 10:45     ` [U-Boot] [U-Boot, v4, 02/20] usb: Rename SPL_USB_SUPPORT to SPL_USB_STORAGE sbabic at denx.de
2019-03-13  9:28   ` [U-Boot] [U-Boot, v4, 19/22] pcm052: bk4: sdcard: Add support for SD card booting/recovery sbabic at denx.de
2019-04-01  8:52   ` [U-Boot] [U-Boot, v2, 19/22] arm: vf610: add uart2 clock/pinmux support sbabic at denx.de
2019-04-01  8:52   ` [U-Boot] [U-Boot,v2,02/22] vf610: ddrmc: add missing include sbabic at denx.de
2019-04-01  8:59   ` [U-Boot] [U-Boot,v2,03/22] imx: bootaux: add dependency on vf610 sbabic at denx.de
2019-04-26  9:37   ` [U-Boot] [U-Boot,RESEND,07/10] clk: imx8: add i.MX8QM clk driver sbabic at denx.de
2019-04-26  9:37   ` [U-Boot] ARM: imx: Fix typo in select option for ZMX25 sbabic at denx.de
2019-04-26  9:37   ` [U-Boot] [U-Boot,RESEND,05/10] imx8: add cpu support sbabic at denx.de
2019-04-26  9:37   ` [U-Boot] imx: 8qxp_mek: fix fdt_file and console sbabic at denx.de
2019-04-26  9:37   ` [U-Boot] [U-Boot,2/2] mxc_ocotp: Disable fuse sense for imx8mq B1 sbabic at denx.de
2019-04-26  9:37   ` [U-Boot] [U-Boot, 1/2] mxc_ocotp: Update redundancy banks for mx7ulp B0 sbabic at denx.de
2019-04-26  9:37   ` [U-Boot] [U-Boot,3/8] imx8qxp: mek: Enable CMD_FUSE sbabic at denx.de
2019-04-26  9:37   ` [U-Boot] [U-Boot, imx-next, v1, 03/14] ARM: Enable CONFIG_DM_MMC and CONFIG_DM_BLK on HSC and DDC boards sbabic at denx.de
2019-04-26  9:37   ` [U-Boot] [U-Boot, RESEND, 03/10] dt-bindings: clock: dt-bindings: pinctrl: add i.MX8QM clocks definition sbabic at denx.de
2019-04-26  9:37   ` [U-Boot] [U-Boot,RESEND,10/10] imx: support i.MX8QM MEK board sbabic at denx.de
2019-04-26 10:50     ` Marcel Ziswiler
2019-04-26 10:56       ` Stefano Babic
2019-04-26  9:37   ` [U-Boot] [U-Boot,1/8] imx: sip: add call_imx_sip_ret2 sbabic at denx.de
2019-04-26  9:38   ` [U-Boot] [U-Boot, RESEND, 01/10] pinctrl: imx8: add i.MX8QM compatible sbabic at denx.de
2019-04-26  9:38   ` [U-Boot] imx: i.MX8MQ: clear ocotp error bit sbabic at denx.de
2019-04-26  9:38   ` [U-Boot] [U-Boot, imx-next, v1, 11/14] ARM: defconfig: kp_imx53: Enable DM_USB support on HSC|DDC boards sbabic at denx.de
2019-04-26  9:38   ` [U-Boot] [U-Boot, RESEND, 09/10] misc: imx8: scu: add i.MX8QM support sbabic at denx.de
2019-04-26  9:45   ` [U-Boot] [U-Boot, RESEND, 06/10] clk: imx8: split code into common and soc specific part sbabic at denx.de
2019-04-26  9:45   ` [U-Boot] [U-Boot,2/8] imx8: fuse: add fuse driver sbabic at denx.de
2019-04-26  9:45   ` [U-Boot] ddr: imx8m: hide i.MX8M DDR options from device driver entry sbabic at denx.de
2019-04-26  9:45   ` [U-Boot] [U-Boot, RESEND, 04/10] arm: dts: introduce dtsi for i.MX8QM sbabic at denx.de
2019-04-26  9:45   ` [U-Boot] imx8qxp: mek: enable dm-spl for pm sbabic at denx.de
2019-04-26  9:45   ` [U-Boot] [U-Boot, RESEND, 02/10] dt-bindings: pinctrl: add i.MX8QM pads definition sbabic at denx.de
2019-04-26  9:45   ` [U-Boot] [U-Boot,RESEND,08/10] imx8: imx8-pins: add i.MX8QM sbabic at denx.de
2019-04-26  9:45   ` [U-Boot] imx: add lowlevel init for ARM64 sbabic at denx.de
2019-04-26  9:55   ` [U-Boot] [U-Boot,8/8] imx8: mek: move HUSH_PARSER to defconfig sbabic at denx.de
2019-01-08 11:42 [U-Boot] [PATCH v2 00/11] arm: Colibri iMX7 fixes and DM_MMC conversion Stefan Agner
2019-01-08 11:42 ` [U-Boot] [PATCH v2 01/11] colibri_imx7: fix boot commands Stefan Agner
2019-01-08 11:42 ` [U-Boot] [PATCH v2 02/11] arm: dts: imx7: colibri: split dt for raw NAND and eMMC devices Stefan Agner
2019-01-08 11:42 ` [U-Boot] [PATCH v2 03/11] configs: colibri_imx7: enable DM for raw NAND devices Stefan Agner
2019-01-08 11:42 ` [U-Boot] [PATCH v2 04/11] configs: colibri_imx7: use separate device tree Stefan Agner
2019-01-08 11:42 ` [U-Boot] [PATCH v2 05/11] arm: dts: imx7: colibri: add usdhci peripherals to " Stefan Agner
2019-01-08 11:42 ` [U-Boot] [PATCH v2 06/11] configs: colibri_imx7: use DM_MMC Stefan Agner
2019-01-08 11:42 ` [U-Boot] [PATCH v2 07/11] colibri_imx7: drop legacy usdhc support Stefan Agner
2019-01-08 11:42 ` [U-Boot] [PATCH v2 08/11] configs: colibri_imx7: enable CAAM driver Stefan Agner
2019-01-08 11:42 ` [U-Boot] [PATCH v2 09/11] configs: colibri_imx7: use DFU for NAND instead of MMC Stefan Agner
2019-01-08 11:42 ` [U-Boot] [PATCH v2 10/11] configs: colibri_imx7: use distro defaults Stefan Agner
2019-01-08 11:42 ` [U-Boot] [PATCH v2 11/11] configs: add default configuraiton for Colibri iMX7 with eMMC Stefan Agner
     [not found]   ` <stefan.agner@toradex.com>
     [not found]     ` <martyn.welch@collabora.com>
     [not found]       ` <ian.ray@ge.com>
2019-03-13  9:28     ` [U-Boot] [U-Boot,v1,15/26] colibri_imx6: add distroboot support sbabic at denx.de
2019-03-13  9:29     ` [U-Boot] [U-Boot,v2,14/23] apalis_imx6: " sbabic at denx.de
2019-03-13  9:30     ` [U-Boot] [U-Boot, v1, 23/26] colibri_imx6: use SDP if USB serial downloader has been used sbabic at denx.de
     [not found]     ` <marcel.ziswiler@toradex.com>
     [not found]       ` <max.krummenacher@toradex.com>
     [not found]         ` <Ken.Lin@advantech.com.tw>
2019-01-30  8:57         ` [U-Boot] [U-Boot, v2, 11/11] configs: add default configuraiton for Colibri iMX7 with eMMC sbabic at denx.de
2019-01-30  8:57         ` [U-Boot] [U-Boot, v2, 04/11] configs: colibri_imx7: use separate device tree sbabic at denx.de
2019-01-30  8:57         ` [U-Boot] [U-Boot, v2, 10/11] configs: colibri_imx7: use distro defaults sbabic at denx.de
2019-01-30  8:57         ` [U-Boot] [U-Boot, v2, 02/11] arm: dts: imx7: colibri: split dt for raw NAND and eMMC devices sbabic at denx.de
2019-01-30  8:57         ` [U-Boot] [U-Boot, v2, 07/11] colibri_imx7: drop legacy usdhc support sbabic at denx.de
2019-01-30  8:57         ` [U-Boot] [U-Boot,v2,01/11] colibri_imx7: fix boot commands sbabic at denx.de
2019-01-30  9:05         ` [U-Boot] [U-Boot, v2, 03/11] configs: colibri_imx7: enable DM for raw NAND devices sbabic at denx.de
2019-01-30  9:05         ` [U-Boot] [U-Boot,v2,06/11] configs: colibri_imx7: use DM_MMC sbabic at denx.de
2019-01-30  9:05         ` [U-Boot] [U-Boot, v2, 09/11] configs: colibri_imx7: use DFU for NAND instead of MMC sbabic at denx.de
2019-01-30  9:05         ` [U-Boot] [U-Boot, v2, 05/11] arm: dts: imx7: colibri: add usdhci peripherals to device tree sbabic at denx.de
2019-01-30  9:05         ` [U-Boot] [U-Boot, v2, 08/11] configs: colibri_imx7: enable CAAM driver sbabic at denx.de
2019-02-16 10:35         ` [U-Boot] [U-Boot, v1, 2/3] imx: serial_mxc: disable ri and dcd irq in dte mode sbabic at denx.de
2019-03-13  9:28         ` [U-Boot] [U-Boot, v1, 25/26] colibri_imx6: added nreset gpio on reboot sbabic at denx.de
2019-03-13  9:28         ` [U-Boot] [U-Boot, v1, 11/26] colibri_imx6: migrate mmc to using driver model sbabic at denx.de
2019-03-13  9:28         ` [U-Boot] [U-Boot, v2, 10/23] apalis_imx6: migrate pmic and regulator " sbabic at denx.de
2019-03-13  9:28         ` [U-Boot] [U-Boot, v1, 17/26] colibri imx6: pf0100: reorder and cleanup message printing sbabic at denx.de
2019-03-13  9:28         ` [U-Boot] [U-Boot, v1, 22/26] configs: colibri_imx6: Use ext4 file system by default sbabic at denx.de
2019-03-13  9:28         ` [U-Boot] [U-Boot,v1,14/26] colibri_imx6: print also 64-bit IT sbabic at denx.de
2019-03-13  9:29         ` [U-Boot] [U-Boot, v2, 13/23] apalis_imx6: drop CONFIG_OF_SYSTEM_SETUP sbabic at denx.de
2019-03-13  9:29         ` [U-Boot] [U-Boot,v2,02/23] apalis_imx6: use distro defaults sbabic at denx.de
2019-03-13  9:29         ` [U-Boot] [U-Boot, v2, 07/23] apalis_imx6: clean-up and migrate gpios to using driver model sbabic at denx.de
2019-03-13  9:29         ` [U-Boot] [U-Boot, v2, 12/23] apalis_imx6: migrate usb " sbabic at denx.de
2019-03-13  9:29         ` [U-Boot] [U-Boot, v1, 12/26] colibri_imx6: " sbabic at denx.de
2019-03-13  9:29         ` [U-Boot] [U-Boot, v2, 15/23] apalis_imx6: use both sd/mmc interfaces for setsdupdate sbabic at denx.de
2019-03-13  9:29         ` [U-Boot] [U-Boot, v2, 16/23] apalis_imx6: unify sd/mmc drive strength with linux kernel settings sbabic at denx.de
2019-03-13  9:29         ` [U-Boot] [U-Boot, v1, 05/26] colibri_imx6: remove obsolete USB_GADGET_MASS_STORAGE configuration sbabic at denx.de
2019-03-13  9:29         ` [U-Boot] [U-Boot, v1, 08/26] colibri_imx6: enable pin control driver sbabic at denx.de
2019-03-13  9:29         ` [U-Boot] [U-Boot, v2, 19/23] apalis_imx6: revert fuse value set in mfgr_fuse sbabic at denx.de
2019-03-13  9:29         ` [U-Boot] [U-Boot,v2,22/23] apalis_imx6: switch to zimage sbabic at denx.de
2019-03-13  9:29         ` [U-Boot] [U-Boot,v1,02/26] colibri_imx6: use distro defaults sbabic at denx.de
2019-03-13  9:29         ` [U-Boot] [U-Boot, v2, 03/23] apalis_imx6: move console in env from header file to defconfig sbabic at denx.de
2019-03-13  9:29         ` [U-Boot] [U-Boot, v1, 21/26] toradex: colibri_imx6: overwrite CMA memory set in device tree sbabic at denx.de
2019-03-13  9:29         ` [U-Boot] [U-Boot,v1,24/26] colibri_imx6: switch to zimage sbabic at denx.de
2019-03-13  9:29         ` [U-Boot] [U-Boot, v2, 06/23] apalis_imx6: migrate to using device tree sbabic at denx.de
2019-03-13  9:29         ` [U-Boot] [U-Boot, v2, 20/23] configs: apalis_imx6: Use ext4 file system by default sbabic at denx.de
2019-03-13  9:29         ` [U-Boot] [U-Boot, v1, 19/26] colibri_imx6: change pmic fusing according to hw 1.1 requirements sbabic at denx.de
2019-03-13  9:30         ` [U-Boot] [U-Boot, v1, 10/26] colibri_imx6: migrate pmic and regulator to using driver model sbabic at denx.de
2019-03-13  9:30         ` [U-Boot] [U-Boot, v2, 18/23] apalis_imx6: disable ri and dcd irq in uarts sbabic at denx.de
2019-03-13  9:30         ` [U-Boot] [U-Boot, v2, 09/23] apalis_imx6: migrate i2c to using driver model sbabic at denx.de
2019-03-13  9:30         ` [U-Boot] [U-Boot, v2, 01/23] apalis_imx6: get rid of obsolete nospl configurations sbabic at denx.de
2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 18/26] colibri imx6: disable ri and dcd irq in uarts sbabic at denx.de
2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 03/26] colibri_imx6: move console in env from header file to defconfig sbabic at denx.de
2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 06/26] colibri_imx6: migrate to using device tree sbabic at denx.de
2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 26/26] board: colibri_imx6: check for and report ecc errors in fuses sbabic at denx.de
2019-03-24 21:42           ` Marcel Ziswiler
2019-03-25 12:14             ` Stefano Babic
2019-03-13  9:38         ` [U-Boot] [U-Boot, v2, 11/23] apalis_imx6: migrate mmc and sata to using driver model sbabic at denx.de
2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 04/26] colibri_imx6: enable fit image, gpt, imx thermal, efi loader support sbabic at denx.de
2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 09/26] colibri_imx6: migrate i2c to using driver model sbabic at denx.de
2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 16/26] colibri_imx6: unify sd/mmc drive strenght with linux kernel settings sbabic at denx.de
2019-03-13  9:38         ` [U-Boot] [U-Boot,v2,08/23] apalis_imx6: enable pin control driver sbabic at denx.de
2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 01/26] colibri_imx6: get rid of obsolete nospl configurations sbabic at denx.de
2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 07/26] colibri_imx6: clean-up and migrate gpios to using driver model sbabic at denx.de
2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 20/26] colibri_imx6: revert fuse value set in mfgr_fuse sbabic at denx.de
2019-03-13  9:38         ` [U-Boot] [U-Boot, v2, 17/23] apalis_imx6: pf0100: reorder and cleanup message printing sbabic at denx.de
2019-03-13  9:38         ` [U-Boot] [U-Boot, v1, 13/26] colibri_imx6: drop CONFIG_OF_SYSTEM_SETUP sbabic at denx.de
2019-03-13  9:38         ` [U-Boot] [U-Boot, v2, 05/23] apalis_imx6: remove obsolete USB_GADGET_MASS_STORAGE configuration sbabic at denx.de
2019-03-13  9:38         ` [U-Boot] [U-Boot, v2, 23/23] board: apalis_imx6: check for and report ecc errors in fuses sbabic at denx.de
2019-03-13  9:38         ` [U-Boot] [U-Boot, v2, 04/23] apalis_imx6: enable fit image, gpt, imx thermal, efi loader support sbabic at denx.de
2019-04-01  8:52         ` [U-Boot] [U-Boot,13/17] imx6: wandboard: convert to DM_USB sbabic at denx.de
2019-04-01  8:52         ` [U-Boot] [U-Boot,11/17] imx6: wandboard: add device tree sbabic at denx.de
2019-04-01  8:52         ` [U-Boot] [U-Boot,17/17] imx6: wandboard: convert to DM_MMC sbabic at denx.de
2019-04-01  8:52         ` [U-Boot] [U-Boot,08/17] colibri_imx6: convert to DM_VIDEO sbabic at denx.de
2019-04-01  8:52         ` [U-Boot] [U-Boot,10/17] mx6sabreauto: " sbabic at denx.de
2019-04-01  8:52         ` [U-Boot] [U-Boot, 03/17] imx: move CONFIG_VIDEO_IPUV3 to defconfigs sbabic at denx.de
2019-04-01  8:52         ` [U-Boot] [U-Boot, 12/17] imx6: wandboard: convert to DM_GPIO and enable pinctrl driver sbabic at denx.de
2019-04-01  8:52         ` [U-Boot] [U-Boot,16/17] imx6: wandboard: convert to DM_I2C sbabic at denx.de
2019-04-01  8:52         ` [U-Boot] [U-Boot,14/17] imx6: wandboard: convert to DM_VIDEO sbabic at denx.de
2019-04-01  8:52         ` [U-Boot] [U-Boot,05/17] apalis_imx6: " sbabic at denx.de
2019-04-01  8:52         ` [U-Boot] [U-Boot,09/17] mx6sabresd: " sbabic at denx.de
2019-04-01  8:52         ` [U-Boot] [U-Boot,06/17] imx6: icore: " sbabic at denx.de
2019-04-01  8:59         ` [U-Boot] [U-Boot,02/17] video: move ipuv3 files to subdirectory sbabic at denx.de
2019-04-01  8:59         ` [U-Boot] [U-Boot,01/17] video: ipuv3: add DM_VIDEO support sbabic at denx.de
2019-04-01  8:59         ` [U-Boot] [U-Boot, 04/17] imx6: dts: add 'u-boot, dm-pre-reloc' to soc and ipu nodes sbabic at denx.de
2019-04-01  8:59         ` [U-Boot] [U-Boot,15/17] imx6: wandboard: convert to DM_PMIC sbabic at denx.de
2019-04-01  8:59         ` [U-Boot] [U-Boot,07/17] imx6: ge_bx50v3: convert to DM_VIDEO sbabic at denx.de
2019-04-26  9:37         ` [U-Boot] [U-Boot, v2, 05/14] colibri-imx6ull: fix ethernet phy power on sbabic at denx.de
     [not found]         ` <dominik.sliwa@toradex.com>
2019-04-26  9:37           ` [U-Boot] [U-Boot, v2, 01/14] tdx-cfg-block: add support for new colibri iMX6ull skus sbabic at denx.de
2019-04-26  9:37           ` [U-Boot] [U-Boot, v2, 4/5] board: toradex: tdx-cfg-block: add new skus sbabic at denx.de
2019-04-26  9:38           ` [U-Boot] [U-Boot, v2, 3/5] board: toradex: tdx-cfg-block: clean-up sku handling sbabic at denx.de
2019-03-13  9:28       ` [U-Boot] [U-Boot, v4, 17/22] config: bk4: Update u-boot script to support recovery via SD card sbabic at denx.de
2019-03-13  9:28       ` [U-Boot] [U-Boot, v4, 05/22] pcm052: board: Do not enable I2C2 code in the board file sbabic at denx.de
2019-03-13  9:28       ` [U-Boot] [U-Boot, v4, 07/22] pcm052: board: Remove "m4go" command as it is superseded by "bootaux" sbabic at denx.de
2019-03-13  9:28       ` [U-Boot] [U-Boot, v4, 06/22] vybrid: Define the imx_get_mac_from_fuse() as a __weak function sbabic at denx.de
2019-03-13  9:28       ` [U-Boot] [U-Boot, v4, 15/22] config: bk4: Update include/configs/bk4r1.h file sbabic at denx.de
2019-03-13  9:28       ` [U-Boot] [U-Boot, v4, 10/22] pcm052: board: cosmetic: Add copyright notice to pcm052.c sbabic at denx.de
2019-03-13  9:28       ` [U-Boot] [U-Boot, v4, 04/22] vybrid: clock: Provide enable_i2c_clk() function for Vybrid sbabic at denx.de
2019-03-13  9:29       ` [U-Boot] [U-Boot, v4, 14/22] config: pcm052: Use SZ_X{MK} from linux/sizes.h for include/configs/pcm052.h sbabic at denx.de
2019-03-13  9:29       ` [U-Boot] [U-Boot, v4, 18/22] config: bk4: Update u-boot envs to support NOR memories initial setup sbabic at denx.de
2019-03-13  9:29       ` [U-Boot] [U-Boot, v4, 12/22] ARM: DTS: Provide vf610-bk4r1-u-boot.dtsi for U-Boot specific properties sbabic at denx.de
2019-03-13  9:29       ` [U-Boot] [U-Boot, v4, 21/22] pcm052: mac: Provide board specific imx_get_mac_from_fuse() function sbabic at denx.de
2019-03-13  9:29       ` [U-Boot] [U-Boot, v4, 09/22] ARM: DTS: vybrid: Update vf.dtsi file to descibe more vf610 hardware sbabic at denx.de
2019-03-13  9:29       ` [U-Boot] [U-Boot, v4, 13/22] defconfig: bk4/pcm052: Update bk4r1|pcm052_defconfig to support DM/DT sbabic at denx.de
2019-03-13  9:30       ` [U-Boot] [U-Boot, v4, 16/22] pcm052: board: Remove in-board setup code (it is now replaced by DM setup) sbabic at denx.de
2019-03-13  9:38       ` [U-Boot] [U-Boot, v4, 03/22] vybrid: ddr: Extend vf610-pinfunc.h with DDR pads definitions sbabic at denx.de
2019-03-13  9:47       ` [U-Boot] [U-Boot, v4, 20/22] pcm052: board: Add code to setup LED default states sbabic at denx.de
2019-03-13  9:47       ` [U-Boot] [U-Boot, v4, 01/22] net: FEC: Add compatible for vybrid (vf610) to reuse fec_mxc.c driver sbabic at denx.de
2019-03-13  9:47       ` [U-Boot] [U-Boot, v4, 02/22] net: Kconfig: FEC: Add dependency on VF610 sbabic at denx.de
2019-03-13  9:47       ` [U-Boot] [U-Boot, v4, 08/22] pcm052: board: vybrid: Update the board name for BK4 device sbabic at denx.de
2019-03-13  9:47       ` [U-Boot] [U-Boot, v4, 22/22] pcm052: bk4: Add board_phy_config() for BK4 to setup ksz8081 phy sbabic at denx.de
2019-04-01  8:59       ` [U-Boot] [U-Boot, v2, 08/22] ARM: dts: colibri_vf: update device trees sbabic at denx.de
2019-03-13  9:38     ` [U-Boot] [U-Boot, v2, 21/23] apalis_imx6: use SDP if USB serial downloader has been used sbabic at denx.de
2019-04-01  8:52     ` [U-Boot] [U-Boot, v2, 11/22] colibri_vf: migrate fec, esdhc, nfc and usb to driver model sbabic at denx.de
2019-04-01  8:52     ` [U-Boot] [U-Boot, v2, 22/22] colibri_vf: fix sdboot for vybrid modules sbabic at denx.de
2019-04-01  8:52     ` [U-Boot] [U-Boot,v2,13/22] colibri_vf: add distroboot support sbabic at denx.de
2019-04-01  8:52     ` [U-Boot] [U-Boot, v2, 20/22] colibri_vf: adjust timing according to data sheet sbabic at denx.de
2019-04-01  8:52     ` [U-Boot] [U-Boot, v2, 12/22] config: colibri_vf: use macros from linux/sizes.h sbabic at denx.de
2019-04-01  8:52     ` [U-Boot] [U-Boot, v2, 10/22] colibri_vf: migrate pinctrl and regulators to dtb/dm sbabic at denx.de
2019-04-01  8:52     ` [U-Boot] [U-Boot, v2, 21/22] colibri_vf: use leveling evaluated by DDR validation tools sbabic at denx.de
2019-04-01  8:52     ` [U-Boot] [U-Boot, v2, 05/22] configs: colibri_vf: remove obsolete mmc/sd card environment sbabic at denx.de
2019-04-01  8:52     ` [U-Boot] [U-Boot,v2,14/22] colibri_vf: set fdtfile for distroboot sbabic at denx.de
2019-04-01  8:52     ` [U-Boot] [U-Boot, v2, 06/22] configs: colibri_vf: limit size of malloc() pool before relocation sbabic at denx.de
2019-04-01  8:59     ` [U-Boot] [U-Boot, v2, 17/22] colibri_vf: disable undefined instruction events in user debug sbabic at denx.de
2019-04-01  8:59     ` [U-Boot] [U-Boot, v2, 18/22] config: colibri_vf: enable mtd partitions via dt sbabic at denx.de
2019-04-01  8:59     ` [U-Boot] [U-Boot, v2, 09/22] configs: colibri_vf: disable obscure options sbabic at denx.de
2019-04-01  9:09     ` [U-Boot] [U-Boot, v2, 16/22] colibri_vf: enable user debug by default sbabic at denx.de
2019-04-26  9:36     ` [U-Boot] [U-Boot, imx-next, v1, 01/14] ARM: Remove HSC|DDC ETH PHY reset code after switching to DM/DTS sbabic at denx.de
2019-04-26  9:37     ` [U-Boot] [U-Boot, imx-next, v1, 08/14] DTS: Enable USB host support (including regulators) on HSC|DDC boards sbabic at denx.de
     [not found]     ` <alison.wang@nxp.com>
     [not found]       ` <akshaybhat@timesys.com>
     [not found]         ` <lzenz@dh-electronics.de>
     [not found]           ` <eran.m@variscite.com>
2019-04-01  9:09             ` [U-Boot] [U-Boot, v2, 07/22] configs: move CONFIG_MXC_OCOTP to Kconfig sbabic at denx.de
2019-04-26  9:37           ` [U-Boot] [U-Boot, v2, 1/2] ARM: imx6: DHCOM i.MX6 PDK: use Kconfig for inclusion of DDR calibration sbabic at denx.de
2019-04-26  9:37     ` [U-Boot] [U-Boot, v2, 11/14] colibri-imx6ull: migrate fec to using driver model sbabic at denx.de
2019-04-26  9:37     ` [U-Boot] [U-Boot, v2, 09/14] colibri-imx6ull: migrate mmc " sbabic at denx.de
2019-04-26  9:37     ` [U-Boot] [U-Boot, imx-next, v1, 12/14] ARM: config: Remove not needed CONFIG_MXC_USB_PORT define sbabic at denx.de
2019-04-26  9:37     ` [U-Boot] [U-Boot, imx-next, v1, 10/14] USB: DM: Convert i.MX5 ehci code to driver model sbabic at denx.de
2019-04-26  9:37     ` [U-Boot] [U-Boot,v1] colibri_vf: fix tab vs. spaces sbabic at denx.de
2019-04-26  9:37     ` [U-Boot] [U-Boot, v2, 02/14] tdx-cfg-block: simplify i.MX 6 module detection sbabic at denx.de
2019-04-26  9:37     ` [U-Boot] [U-Boot, imx-next, v1, 14/14] boot.src: Provide dsa_core.blacklist bootarg when booting via NFS sbabic at denx.de
2019-04-26  9:38     ` [U-Boot] [U-Boot, imx-next, v1, 07/14] DTS: Provide USB host DTS description for i.MX53 devices sbabic at denx.de
2019-04-26  9:38     ` [U-Boot] [U-Boot, imx-next, v1, 09/14] ARM: Remove EHCI specific code from HSC|DDC board file sbabic at denx.de
2019-04-26  9:38     ` [U-Boot] [U-Boot, imx-next, v1, 05/14] ARM: Remove non DM/DTS esdhc3 code from HSC|DDC board related files sbabic at denx.de
2019-04-26  9:38     ` [U-Boot] [U-Boot, imx-next, v1, 04/14] ARM: defconfig: Move CONFIG_FSL_ESDHC to Kconfig sbabic at denx.de
2019-04-26  9:38     ` [U-Boot] [U-Boot, v2, 06/14] board: imx6ull: Add disable PMIC_STBY_REQ sbabic at denx.de
2019-04-26  9:38     ` [U-Boot] [U-Boot, v2, 07/14] colibri-imx6ull: configuration clean-up sbabic at denx.de
2019-04-26  9:38     ` [U-Boot] [U-Boot, v2, 04/14] apalis/colibri_imx6/imx6ull: make sure loadaddr does not collide sbabic at denx.de
2019-04-26  9:45     ` [U-Boot] [U-Boot, v1] colibri_vf: fix ethernet by adding explicit phy node sbabic at denx.de
2019-04-26  9:45     ` [U-Boot] [U-Boot, imx-next, v1, 02/14] DTS: Add esdhc3 device tree description tuning for HSC|DDC boards sbabic at denx.de
2019-04-26  9:45     ` [U-Boot] [U-Boot, v2, 03/14] colibri-imx6ull: set module variant depending on config block sbabic at denx.de
2019-04-26  9:45     ` [U-Boot] [U-Boot, v2, 08/14] colibri-imx6ull: migrate pinctrl and regulators to dtb/dm sbabic at denx.de
2019-04-26  9:55     ` [U-Boot] [U-Boot, imx-next, v1, 06/14] ARM: kp_imx53: config: Do not use ${boardtype} to setup update wic file sbabic at denx.de
2019-04-26  9:55     ` [U-Boot] [U-Boot, v2, 10/14] colibri-imx6ull: migrate usb to using driver model sbabic at denx.de
2019-01-03 22:50 [U-Boot] [PATCH] ARM: imx: fix: Provide correct enum values for ONENAND/NOR boot recognition Lukasz Majewski
2019-01-03  6:54 [U-Boot] [PATCH 0/3] Migrate i.MX53 based cx9020 to CONFIG_DM_MMC=y linux-kernel-dev at beckhoff.com
2019-01-03  6:54 ` [U-Boot] [PATCH 1/3] mmc: fsl_esdhc: add compatible for fsl, imx53-esdhc linux-kernel-dev at beckhoff.com
2019-01-30  8:57   ` [U-Boot] [U-Boot, " sbabic at denx.de
2019-01-03  6:54 ` [U-Boot] [PATCH 2/3] arm: imx: Add esdhc1/2 nodes to imx53.dtsi linux-kernel-dev at beckhoff.com
2019-01-30  9:15   ` [U-Boot] [U-Boot,2/3] " sbabic at denx.de
2019-01-03  6:54 ` [U-Boot] [PATCH 3/3] dm: arm: imx: migrate cx9020 to CONFIG_DM_MMC linux-kernel-dev at beckhoff.com
2019-01-02  6:58 [U-Boot] [PATCH 1/2] tools/imx8m_image.sh: remove bashism Baruch Siach
2019-01-02  6:58 ` [U-Boot] [PATCH 2/2] imx8mq_evk/README: remove ARCH environment variable Baruch Siach
2019-01-03 13:41 ` [U-Boot] [PATCH 1/2] tools/imx8m_image.sh: remove bashism Christopher Spencer
2019-02-28  1:43 ` Fabio Estevam
2019-02-28  4:23   ` Baruch Siach
2019-04-01 13:20   ` Otavio Salvador
2019-04-01 13:46     ` Stefano Babic
2019-04-01 13:49       ` Fabio Estevam
2019-04-01 14:05         ` Stefano Babic
2019-04-01 14:14           ` Fabio Estevam
2019-04-01 15:51             ` Stefano Babic
2019-04-01 13:56       ` Otavio Salvador
2019-04-01 14:08       ` Tom Rini
2018-12-21  6:21 [U-Boot] [PATCH V2 00/10] i.MX8QXP: MEK: support SPL Peng Fan
2018-12-21  6:21 ` [U-Boot] [PATCH V2 01/10] imx8qxp: add SUPPORT_SPL option Peng Fan
2018-12-21  6:21 ` [U-Boot] [PATCH V2 02/10] imx8: scu: use dedicated MU for SPL Peng Fan
2018-12-21  6:21 ` [U-Boot] [PATCH V2 03/10] arm: imx: build mach-imx for i.MX8 Peng Fan
2018-12-21  6:21 ` [U-Boot] [PATCH V2 04/10] gpio: introduce CONFIG_SPL_DM_PCA953X Peng Fan
2018-12-21  6:21 ` [U-Boot] [PATCH V2 05/10] spl: imx8: add spl boot device Peng Fan
2018-12-21  6:21 ` [U-Boot] [PATCH V2 06/10] dts: imx8qxp-mek: introduce u-boot dtsi Peng Fan
2018-12-21  6:21 ` [U-Boot] [PATCH V2 07/10] imx: mkimage_fit_atf: introduce BL33_BASE_ADDR Peng Fan
2018-12-21  6:21 ` [U-Boot] [PATCH V2 08/10] imx: build flash.bin for i.MX8 Peng Fan
2018-12-21  6:21 ` [U-Boot] [PATCH V2 09/10] imx8qxp: mek: default enable SPL Peng Fan
2018-12-21  6:21 ` [U-Boot] [PATCH V2 10/10] imx8qxp: mek: update README Peng Fan
2018-12-11 18:40 [U-Boot] [PATCH 1/3] mx7: Do not call lcdif_power_down() in the SPL case Otavio Salvador
2018-12-11 18:40 ` [U-Boot] [PATCH 2/3] pico-imx7d: Add LCD support Otavio Salvador
2018-12-11 18:40 ` [U-Boot] [PATCH 3/3] logos: Add the TechNexion's logo Otavio Salvador
2019-02-18 22:53   ` Fabio Estevam
2019-03-20 17:39     ` Fabio Estevam
2018-12-12  1:47 ` [U-Boot] [PATCH 1/3] mx7: Do not call lcdif_power_down() in the SPL case Peng Fan
     [not found] ` <otavio@ossystems.com.br>
     [not found]   ` <rui.silva@linaro.org>
     [not found]     ` <linux-imx@nxp.com>
2019-01-30  9:05       ` [U-Boot] [U-Boot, 2/2] imx8mq_evk/README: remove ARCH environment variable sbabic at denx.de
     [not found]       ` <20190130084020.812982D807F@tinkie.tkos.co.il>
2019-01-30  9:48         ` Baruch Siach
2019-01-30 14:33           ` Stefano Babic
2019-01-30 15:13             ` Baruch Siach
2019-01-30 15:30               ` Stefano Babic
     [not found]       ` <fabio.estevam@nxp.com>
     [not found]         ` <richard.hu@technexion.com>
     [not found]           ` <john.weber@technexion.com>
2019-01-30  8:57             ` [U-Boot] [U-Boot, 1/3] mx7: Do not call lcdif_power_down() in the SPL case sbabic at denx.de
2019-01-30  8:57             ` [U-Boot] [U-Boot,2/3] pico-imx7d: Add LCD support sbabic at denx.de
2019-01-30  8:57         ` [U-Boot] [U-Boot, 3/3] dm: arm: imx: migrate cx9020 to CONFIG_DM_MMC sbabic at denx.de
2019-01-30  9:05         ` [U-Boot] ARM: imx: fix: Provide correct enum values for ONENAND/NOR boot recognition sbabic at denx.de
2019-02-16 10:26         ` [U-Boot] [U-Boot, v1, 3/3] imx: cpu.c: give access to reset cause in spl sbabic at denx.de
2019-02-16 10:35         ` [U-Boot] [U-Boot, v2, 2/3] ddr: vybrid: Provide code to perform on-boot calibration sbabic at denx.de
2019-02-16 10:45         ` [U-Boot] [U-Boot, v2, 1/3] ddr: vybrid: Add DDRMC calibration related registers (DQS to DQ) sbabic at denx.de
2019-02-16 10:45         ` [U-Boot] [U-Boot, v2, 3/3] ddr: vybrid: Add calibration code to memory controler's (DDRMC) setup code sbabic at denx.de
     [not found]         ` <marek.vasut+renesas@gmail.com>
2019-01-30  9:05           ` [U-Boot] [U-Boot,v4,2/2] imx: Add PHYTEC phyBOARD-i.MX6UL-Segin sbabic at denx.de
2019-03-13  9:29           ` [U-Boot] [U-Boot, v4, 11/22] ARM: DTS: Update pcm052 based dts files (bk4r1/pcm052) sbabic at denx.de
2019-04-26  9:37         ` [U-Boot] [U-Boot, v3] ARM: dts: i.MX6Q: fix avoid_unnecessary_addr_size warnings sbabic at denx.de
2019-04-26  9:38         ` [U-Boot] [U-Boot, v2, 1/5] misc: imx8: remove duplicates from scfw api sbabic at denx.de
2019-04-26  9:45         ` [U-Boot] [U-Boot, v2, 2/5] arm: dts: imx8dx: add lpuart1, lpuart2, lpuart3 sbabic at denx.de
2019-06-10  9:19         ` [U-Boot] [PATCH] ARM: imx: apalis_imx6: Drop ad-hoc SATA binding <mailto:u-boot-request@lists.denx.de?subject=unsubscribe> <mailto:u-boot-request@lists.denx.de?subject=subscribe> sbabic at denx.de
     [not found]       ` <michal.simek@xilinx.com>
     [not found]         ` <maxime.ripard@bootlin.com>
     [not found]           ` <jason.hui.liu@nxp.com>
     [not found]         ` <breno.lima@nxp.com>
2019-01-30  9:05           ` [U-Boot] imx: hab: Convert non-NULL IVT DCD pointer warning to an error sbabic at denx.de
     [not found]         ` <albert.aribaud@3adev.fr>
     [not found]           ` <sr@denx.de>
2019-04-01  8:52             ` [U-Boot] [U-Boot, 08/10] ata: dwc_ahsata: Add ahci driver model support sbabic at denx.de
2019-04-01  8:52         ` [U-Boot] [U-Boot, v2, 04/22] configs: move CONFIG_USB_EHCI_VF to Kconfig sbabic at denx.de
2018-12-11 11:34 [U-Boot] [PATCH v4 1/2] Enable FEC driver to retrieve PHY address from device tree Martyn Welch
2018-12-11 11:34 ` [U-Boot] [PATCH v4 2/2] imx: Add PHYTEC phyBOARD-i.MX6UL-Segin Martyn Welch
2019-01-18 20:01   ` Martyn Welch
     [not found] ` <joe.hershberger@ni.com>
2019-01-30  9:15   ` [U-Boot] [U-Boot, v4, 1/2] Enable FEC driver to retrieve PHY address from device tree sbabic at denx.de
2018-12-07 22:31 [U-Boot] [PATCH] imx: hab: Convert non-NULL IVT DCD pointer warning to an error Breno Matheus Lima
2019-01-16 12:00 ` Fabio Estevam
2018-12-05 16:04 [U-Boot] [PATCH v2 0/3] ddr: vybrid: Support for vf610 built-in DDR3 memory calibration Lukasz Majewski
2018-12-05 16:04 ` [U-Boot] [PATCH v2 1/3] ddr: vybrid: Add DDRMC calibration related registers (DQS to DQ) Lukasz Majewski
2018-12-05 16:04 ` [U-Boot] [PATCH v2 2/3] ddr: vybrid: Provide code to perform on-boot calibration Lukasz Majewski
2018-12-05 16:04 ` [U-Boot] [PATCH v2 3/3] ddr: vybrid: Add calibration code to memory controler's (DDRMC) setup code Lukasz Majewski
2019-01-02 11:28 ` [U-Boot] [PATCH v2 0/3] ddr: vybrid: Support for vf610 built-in DDR3 memory calibration Lukasz Majewski

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.