All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 00/13] board: ge: initial dm support
@ 2019-01-31 14:21 Ian Ray
  2019-01-31 14:21 ` [U-Boot] [PATCH 01/13] board: ge: bx50v3: Enable CONFIG_DM Ian Ray
                   ` (12 more replies)
  0 siblings, 13 replies; 30+ messages in thread
From: Ian Ray @ 2019-01-31 14:21 UTC (permalink / raw)
  To: u-boot

This series is primarily (patches 01-07) about converting ge_bx50v3 and
mx53ppd boards to use the Driver Model and Device Tree.

Four additional patches (08-13) include recent additional functionality
and fixes.


Patches applicable on top of master:

 * SHA1: 535d74a8ae8d194269cefdf59ae17a92cd6e75dc

 * However, note that patch _13_ requires:
   - https://patchwork.ozlabs.org/patch/947075/ 
   - https://patchwork.ozlabs.org/patch/947076/
   - https://patchwork.ozlabs.org/patch/947074/


Ian Ray (11):
  board: ge: bx50v3: Enable CONFIG_DM
  board: ge: bx50v3: Enable CONFIG_DM_MMC
  board: ge: bx50v3: Enable CONFIG_DM_GPIO
  board: ge: bx50v3: Enable CONFIG_DM_SPI, CONFIG_DM_SPI_FLASH
  board: ge: ppd: Enable CONFIG_DM
  arm: imx: Add esdhc3/4 nodes to imx53.dtsi
  board: ge: ppd: Enable CONFIG_DM_MMC
  board: ge: store version information in fdt
  mx53ppd: bring dock out of reset at boot
  mx53ppd: fix unsupported set command
  bootcount: i2c: Delay after writing

Joonas Aijala (2):
  board: ge: bx50v3: Specific ARP timeout removed
  board: ge: bx50v3: Network booting of fitImage with nfs rootfs

 arch/arm/dts/Makefile             |   3 +
 arch/arm/dts/imx53-ppd.dts        |  43 ++++++++++
 arch/arm/dts/imx53.dtsi           |  26 +++++++
 arch/arm/dts/imx6q-bx50v3.dts     |  89 +++++++++++++++++++++
 board/ge/bx50v3/bx50v3.c          | 160 +++++---------------------------------
 board/ge/mx53ppd/mx53ppd.c        |  84 +++-----------------
 board/ge/mx53ppd/ppd_gpio.h       |   4 +
 configs/ge_bx50v3_defconfig       |  12 +++
 configs/mx53ppd_defconfig         |   9 +++
 drivers/bootcount/bootcount_i2c.c |   4 +
 include/configs/ge_bx50v3.h       |  36 +++++++--
 include/configs/mx53ppd.h         |  12 +--
 12 files changed, 255 insertions(+), 227 deletions(-)
 create mode 100644 arch/arm/dts/imx53-ppd.dts
 create mode 100644 arch/arm/dts/imx6q-bx50v3.dts

-- 
2.10.1

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

* [U-Boot] [PATCH 01/13] board: ge: bx50v3: Enable CONFIG_DM
  2019-01-31 14:21 [U-Boot] [PATCH 00/13] board: ge: initial dm support Ian Ray
@ 2019-01-31 14:21 ` Ian Ray
  2019-03-13  9:47   ` [U-Boot] [U-Boot,01/13] " sbabic at denx.de
  2019-01-31 14:21 ` [U-Boot] [PATCH 02/13] board: ge: bx50v3: Enable CONFIG_DM_MMC Ian Ray
                   ` (11 subsequent siblings)
  12 siblings, 1 reply; 30+ messages in thread
From: Ian Ray @ 2019-01-31 14:21 UTC (permalink / raw)
  To: u-boot

Add simplified, generalised, bx50v3 device tree and enable CONFIG_DM.

Signed-off-by: Ian Ray <ian.ray@ge.com>
---
 arch/arm/dts/Makefile         |  2 ++
 arch/arm/dts/imx6q-bx50v3.dts | 15 +++++++++++++++
 configs/ge_bx50v3_defconfig   |  4 ++++
 3 files changed, 21 insertions(+)
 create mode 100644 arch/arm/dts/imx6q-bx50v3.dts

diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 46f1d69..a902775 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -582,6 +582,8 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \
 	mt7623n-bananapi-bpi-r2.dtb \
 	mt7629-rfb.dtb
 
+dtb-$(CONFIG_TARGET_GE_BX50V3) += imx6q-bx50v3.dtb
+
 targets += $(dtb-y)
 
 # Add any required device tree compiler flags here
diff --git a/arch/arm/dts/imx6q-bx50v3.dts b/arch/arm/dts/imx6q-bx50v3.dts
new file mode 100644
index 0000000..10b1299
--- /dev/null
+++ b/arch/arm/dts/imx6q-bx50v3.dts
@@ -0,0 +1,15 @@
+/* SPDX-License-Identifier: GPL-2.0+ OR X11 */
+/*
+ * Copyright 2015 Timesys Corporation.
+ * Copyright 2018 General Electric Company
+ * Based on imx6q-ba16.dtsi and imx6q-bx50v3.dtsi from kernel 4.20.5.
+ */
+
+/dts-v1/;
+
+#include "imx6q.dtsi"
+
+/ {
+	model = "General Electric Bx50v3";
+	compatible = "ge,imx6q-bx50v3", "advantech,imx6q-ba16", "fsl,imx6q";
+};
diff --git a/configs/ge_bx50v3_defconfig b/configs/ge_bx50v3_defconfig
index 4180050..58fa000 100644
--- a/configs/ge_bx50v3_defconfig
+++ b/configs/ge_bx50v3_defconfig
@@ -51,3 +51,7 @@ CONFIG_MXC_SPI=y
 CONFIG_IMX_WATCHDOG=y
 CONFIG_OF_LIBFDT=y
 # CONFIG_EFI_LOADER is not set
+CONFIG_DM=y
+CONFIG_CMD_DM=y
+CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="imx6q-bx50v3"
-- 
2.10.1

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

* [U-Boot] [PATCH 02/13] board: ge: bx50v3: Enable CONFIG_DM_MMC
  2019-01-31 14:21 [U-Boot] [PATCH 00/13] board: ge: initial dm support Ian Ray
  2019-01-31 14:21 ` [U-Boot] [PATCH 01/13] board: ge: bx50v3: Enable CONFIG_DM Ian Ray
@ 2019-01-31 14:21 ` Ian Ray
  2019-03-13  9:47   ` [U-Boot] [U-Boot,02/13] " sbabic at denx.de
  2019-01-31 14:21 ` [U-Boot] [PATCH 03/13] board: ge: bx50v3: Enable CONFIG_DM_GPIO Ian Ray
                   ` (10 subsequent siblings)
  12 siblings, 1 reply; 30+ messages in thread
From: Ian Ray @ 2019-01-31 14:21 UTC (permalink / raw)
  To: u-boot

Use MMC device model, and remove USDHC pin configuration code since the
pinctrl driver is used.

Signed-off-by: Ian Ray <ian.ray@ge.com>
---
 arch/arm/dts/imx6q-bx50v3.dts |  47 ++++++++++++++++++
 board/ge/bx50v3/bx50v3.c      | 113 ------------------------------------------
 configs/ge_bx50v3_defconfig   |   4 ++
 include/configs/ge_bx50v3.h   |   6 +--
 4 files changed, 52 insertions(+), 118 deletions(-)

diff --git a/arch/arm/dts/imx6q-bx50v3.dts b/arch/arm/dts/imx6q-bx50v3.dts
index 10b1299..0fff219 100644
--- a/arch/arm/dts/imx6q-bx50v3.dts
+++ b/arch/arm/dts/imx6q-bx50v3.dts
@@ -13,3 +13,50 @@
 	model = "General Electric Bx50v3";
 	compatible = "ge,imx6q-bx50v3", "advantech,imx6q-ba16", "fsl,imx6q";
 };
+
+&iomuxc {
+	pinctrl-names = "default";
+
+	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_reset: usdhc3grp-reset {
+		fsl,pins = <
+			MX6QDL_PAD_SD3_RST__SD3_RESET   0x170F9
+		>;
+	};
+};
+
+&usdhc1 {
+	status = "disabled";
+};
+
+&usdhc2 {
+	status = "disabled";
+};
+
+/* eMMC */
+&usdhc3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usdhc3 &pinctrl_usdhc3_reset>;
+	bus-width = <8>;
+	non-removable;
+	keep-power-in-suspend;
+	status = "okay";
+};
+
+&usdhc4 {
+	status = "disabled";
+};
diff --git a/board/ge/bx50v3/bx50v3.c b/board/ge/bx50v3/bx50v3.c
index 079d302..fe3fa27 100644
--- a/board/ge/bx50v3/bx50v3.c
+++ b/board/ge/bx50v3/bx50v3.c
@@ -44,10 +44,6 @@ static struct vpd_cache vpd;
 	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_PUE |	\
 	PAD_CTL_SPEED_HIGH | PAD_CTL_DSE_48ohm | PAD_CTL_SRE_FAST)
 
@@ -116,45 +112,6 @@ static void setup_iomux_enet(void)
 	mdelay(1);
 }
 
-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_GPIO_4__GPIO1_IO04	| MUX_PAD_CTRL(NO_PAD_CTRL),
-};
-
-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_RST__SD3_RESET | 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),
-};
-
-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),
-	MX6_PAD_NANDF_CS0__GPIO6_IO11 | MUX_PAD_CTRL(NO_PAD_CTRL),
-	MX6_PAD_NANDF_CS1__GPIO6_IO14 | MUX_PAD_CTRL(NO_PAD_CTRL),
-};
-
 static iomux_v3_cfg_t const ecspi1_pads[] = {
 	MX6_PAD_EIM_D16__ECSPI1_SCLK | MUX_PAD_CTRL(SPI_PAD_CTRL),
 	MX6_PAD_EIM_D17__ECSPI1_MISO | MUX_PAD_CTRL(SPI_PAD_CTRL),
@@ -229,76 +186,6 @@ static void setup_iomux_uart(void)
 	imx_iomux_v3_setup_multiple_pads(uart4_pads, ARRAY_SIZE(uart4_pads));
 }
 
-#ifdef CONFIG_FSL_ESDHC
-struct fsl_esdhc_cfg usdhc_cfg[3] = {
-	{USDHC2_BASE_ADDR},
-	{USDHC3_BASE_ADDR},
-	{USDHC4_BASE_ADDR},
-};
-
-#define USDHC2_CD_GPIO	IMX_GPIO_NR(1, 4)
-#define USDHC4_CD_GPIO	IMX_GPIO_NR(6, 11)
-
-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 = 1; /* eMMC is always present */
-		break;
-	case USDHC4_BASE_ADDR:
-		ret = !gpio_get_value(USDHC4_CD_GPIO);
-		break;
-	}
-
-	return ret;
-}
-
-int board_mmc_init(bd_t *bis)
-{
-	int ret;
-	int i;
-
-	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_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));
-			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));
-			gpio_direction_input(USDHC4_CD_GPIO);
-			usdhc_cfg[2].sdhc_clk = mxc_get_clock(MXC_ESDHC4_CLK);
-			break;
-		default:
-			printf("Warning: you configured more USDHC controllers\n"
-			       "(%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;
-}
-#endif
-
 static int mx6_rgmii_rework(struct phy_device *phydev)
 {
 	/* Configure AR8033 to ouput a 125MHz clk from CLK_25M */
diff --git a/configs/ge_bx50v3_defconfig b/configs/ge_bx50v3_defconfig
index 58fa000..af8a243 100644
--- a/configs/ge_bx50v3_defconfig
+++ b/configs/ge_bx50v3_defconfig
@@ -55,3 +55,7 @@ CONFIG_DM=y
 CONFIG_CMD_DM=y
 CONFIG_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="imx6q-bx50v3"
+CONFIG_DM_MMC=y
+CONFIG_BLK=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_IMX6=y
diff --git a/include/configs/ge_bx50v3.h b/include/configs/ge_bx50v3.h
index 040b3ac..7d62483 100644
--- a/include/configs/ge_bx50v3.h
+++ b/include/configs/ge_bx50v3.h
@@ -45,10 +45,6 @@
 #define CONFIG_LBA48
 #endif
 
-/* MMC Configs */
-#define CONFIG_FSL_USDHC
-#define CONFIG_SYS_FSL_ESDHC_ADDR      0
-
 /* USB Configs */
 #ifdef CONFIG_USB
 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2
@@ -88,7 +84,7 @@
 	"image=/boot/fitImage\0" \
 	"fdt_high=0xffffffff\0" \
 	"dev=mmc\0" \
-	"devnum=1\0" \
+	"devnum=2\0" \
 	"rootdev=mmcblk0p\0" \
 	"quiet=quiet loglevel=0\0" \
 	"console=" CONSOLE_DEV "\0" \
-- 
2.10.1

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

* [U-Boot] [PATCH 03/13] board: ge: bx50v3: Enable CONFIG_DM_GPIO
  2019-01-31 14:21 [U-Boot] [PATCH 00/13] board: ge: initial dm support Ian Ray
  2019-01-31 14:21 ` [U-Boot] [PATCH 01/13] board: ge: bx50v3: Enable CONFIG_DM Ian Ray
  2019-01-31 14:21 ` [U-Boot] [PATCH 02/13] board: ge: bx50v3: Enable CONFIG_DM_MMC Ian Ray
@ 2019-01-31 14:21 ` Ian Ray
  2019-03-13  9:29   ` [U-Boot] [U-Boot,03/13] " sbabic at denx.de
  2019-01-31 14:21 ` [U-Boot] [PATCH 04/13] board: ge: bx50v3: Enable CONFIG_DM_SPI, CONFIG_DM_SPI_FLASH Ian Ray
                   ` (9 subsequent siblings)
  12 siblings, 1 reply; 30+ messages in thread
From: Ian Ray @ 2019-01-31 14:21 UTC (permalink / raw)
  To: u-boot

Enable CONFIG_DM_GPIO as a pre-requisite for enabling CONFIG_DM_SPI.

Add explicit gpio_requests.

Signed-off-by: Ian Ray <ian.ray@ge.com>
---
 board/ge/bx50v3/bx50v3.c    | 11 ++++++++++-
 configs/ge_bx50v3_defconfig |  1 +
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/board/ge/bx50v3/bx50v3.c b/board/ge/bx50v3/bx50v3.c
index fe3fa27..dac063d 100644
--- a/board/ge/bx50v3/bx50v3.c
+++ b/board/ge/bx50v3/bx50v3.c
@@ -106,6 +106,7 @@ static void setup_iomux_enet(void)
 	imx_iomux_v3_setup_multiple_pads(enet_pads, ARRAY_SIZE(enet_pads));
 
 	/* Reset AR8033 PHY */
+	gpio_request(IMX_GPIO_NR(1, 28), "fec_rst");
 	gpio_direction_output(IMX_GPIO_NR(1, 28), 0);
 	mdelay(10);
 	gpio_set_value(IMX_GPIO_NR(1, 28), 1);
@@ -420,8 +421,8 @@ static void setup_display_bx50v3(void)
 	/* backlights off until needed */
 	imx_iomux_v3_setup_multiple_pads(backlight_pads,
 					 ARRAY_SIZE(backlight_pads));
+	gpio_request(LVDS_POWER_GP, "lvds_power");
 	gpio_direction_input(LVDS_POWER_GP);
-	gpio_direction_input(LVDS_BACKLIGHT_GP);
 }
 #endif /* CONFIG_VIDEO_IPUV3 */
 
@@ -574,14 +575,22 @@ int board_init(void)
 		set_confidx(&vpd);
 	}
 
+	gpio_request(SUS_S3_OUT, "sus_s3_out");
 	gpio_direction_output(SUS_S3_OUT, 1);
+
+	gpio_request(WIFI_EN, "wifi_en");
 	gpio_direction_output(WIFI_EN, 1);
+
 #if defined(CONFIG_VIDEO_IPUV3)
 	if (is_b850v3())
 		setup_display_b850v3();
 	else
 		setup_display_bx50v3();
+
+	gpio_request(LVDS_BACKLIGHT_GP, "lvds_backlight");
+	gpio_direction_input(LVDS_BACKLIGHT_GP);
 #endif
+
 	/* address of boot parameters */
 	gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
 
diff --git a/configs/ge_bx50v3_defconfig b/configs/ge_bx50v3_defconfig
index af8a243..10a8b67 100644
--- a/configs/ge_bx50v3_defconfig
+++ b/configs/ge_bx50v3_defconfig
@@ -59,3 +59,4 @@ CONFIG_DM_MMC=y
 CONFIG_BLK=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX6=y
+CONFIG_DM_GPIO=y
-- 
2.10.1

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

* [U-Boot] [PATCH 04/13] board: ge: bx50v3: Enable CONFIG_DM_SPI, CONFIG_DM_SPI_FLASH
  2019-01-31 14:21 [U-Boot] [PATCH 00/13] board: ge: initial dm support Ian Ray
                   ` (2 preceding siblings ...)
  2019-01-31 14:21 ` [U-Boot] [PATCH 03/13] board: ge: bx50v3: Enable CONFIG_DM_GPIO Ian Ray
@ 2019-01-31 14:21 ` Ian Ray
  2019-03-13  9:28   ` [U-Boot] [U-Boot, " sbabic at denx.de
  2019-01-31 14:21 ` [U-Boot] [PATCH 05/13] board: ge: ppd: Enable CONFIG_DM Ian Ray
                   ` (8 subsequent siblings)
  12 siblings, 1 reply; 30+ messages in thread
From: Ian Ray @ 2019-01-31 14:21 UTC (permalink / raw)
  To: u-boot

Use SPI flash device model, and remove SPI pin configuration code since
the pinctrl driver is used.

Signed-off-by: Ian Ray <ian.ray@ge.com>
---
 arch/arm/dts/imx6q-bx50v3.dts | 27 +++++++++++++++++++++++++++
 board/ge/bx50v3/bx50v3.c      | 25 -------------------------
 configs/ge_bx50v3_defconfig   |  2 ++
 3 files changed, 29 insertions(+), 25 deletions(-)

diff --git a/arch/arm/dts/imx6q-bx50v3.dts b/arch/arm/dts/imx6q-bx50v3.dts
index 0fff219..deaec63 100644
--- a/arch/arm/dts/imx6q-bx50v3.dts
+++ b/arch/arm/dts/imx6q-bx50v3.dts
@@ -8,6 +8,7 @@
 /dts-v1/;
 
 #include "imx6q.dtsi"
+#include <dt-bindings/gpio/gpio.h>
 
 / {
 	model = "General Electric Bx50v3";
@@ -17,6 +18,16 @@
 &iomuxc {
 	pinctrl-names = "default";
 
+	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
+			/* SPI1 CS */
+			MX6QDL_PAD_EIM_EB2__GPIO2_IO30	0x1b0b0
+		>;
+	};
+
 	pinctrl_usdhc3: usdhc3grp {
 		fsl,pins = <
 			MX6QDL_PAD_SD3_CMD__SD3_CMD	0x17059
@@ -60,3 +71,19 @@
 &usdhc4 {
 	status = "disabled";
 };
+
+/* SPI NOR */
+&ecspi1 {
+	cs-gpios = <&gpio2 30 GPIO_ACTIVE_LOW>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_ecspi1>;
+	status = "okay";
+
+	flash: n25q032 at 0 {
+		compatible = "jedec,spi-nor";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		spi-max-frequency = <20000000>;
+		reg = <0>;
+	};
+};
diff --git a/board/ge/bx50v3/bx50v3.c b/board/ge/bx50v3/bx50v3.c
index dac063d..b69b9e7 100644
--- a/board/ge/bx50v3/bx50v3.c
+++ b/board/ge/bx50v3/bx50v3.c
@@ -53,9 +53,6 @@ static struct vpd_cache vpd;
 #define ENET_RX_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
 	PAD_CTL_SPEED_HIGH   | PAD_CTL_SRE_FAST)
 
-#define SPI_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_SPEED_MED | \
-		      PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST)
-
 #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)
@@ -113,13 +110,6 @@ static void setup_iomux_enet(void)
 	mdelay(1);
 }
 
-static iomux_v3_cfg_t const ecspi1_pads[] = {
-	MX6_PAD_EIM_D16__ECSPI1_SCLK | MUX_PAD_CTRL(SPI_PAD_CTRL),
-	MX6_PAD_EIM_D17__ECSPI1_MISO | MUX_PAD_CTRL(SPI_PAD_CTRL),
-	MX6_PAD_EIM_D18__ECSPI1_MOSI | MUX_PAD_CTRL(SPI_PAD_CTRL),
-	MX6_PAD_EIM_EB2__GPIO2_IO30 | MUX_PAD_CTRL(NO_PAD_CTRL),
-};
-
 static struct i2c_pads_info i2c_pad_info1 = {
 	.scl = {
 		.i2c_mode = MX6_PAD_CSI0_DAT9__I2C1_SCL | I2C_PAD,
@@ -159,18 +149,6 @@ static struct i2c_pads_info i2c_pad_info3 = {
 	}
 };
 
-#ifdef CONFIG_MXC_SPI
-int board_spi_cs_gpio(unsigned bus, unsigned cs)
-{
-	return (bus == 0 && cs == 0) ? (IMX_GPIO_NR(2, 30)) : -1;
-}
-
-static void setup_spi(void)
-{
-	imx_iomux_v3_setup_multiple_pads(ecspi1_pads, ARRAY_SIZE(ecspi1_pads));
-}
-#endif
-
 static iomux_v3_cfg_t const pcie_pads[] = {
 	MX6_PAD_GPIO_5__GPIO1_IO05 | MUX_PAD_CTRL(NO_PAD_CTRL),
 	MX6_PAD_GPIO_17__GPIO7_IO12 | MUX_PAD_CTRL(NO_PAD_CTRL),
@@ -594,9 +572,6 @@ int board_init(void)
 	/* address of boot parameters */
 	gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
 
-#ifdef CONFIG_MXC_SPI
-	setup_spi();
-#endif
 	return 0;
 }
 
diff --git a/configs/ge_bx50v3_defconfig b/configs/ge_bx50v3_defconfig
index 10a8b67..71bf9d6 100644
--- a/configs/ge_bx50v3_defconfig
+++ b/configs/ge_bx50v3_defconfig
@@ -60,3 +60,5 @@ CONFIG_BLK=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX6=y
 CONFIG_DM_GPIO=y
+CONFIG_DM_SPI=y
+CONFIG_DM_SPI_FLASH=y
-- 
2.10.1

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

* [U-Boot] [PATCH 05/13] board: ge: ppd: Enable CONFIG_DM
  2019-01-31 14:21 [U-Boot] [PATCH 00/13] board: ge: initial dm support Ian Ray
                   ` (3 preceding siblings ...)
  2019-01-31 14:21 ` [U-Boot] [PATCH 04/13] board: ge: bx50v3: Enable CONFIG_DM_SPI, CONFIG_DM_SPI_FLASH Ian Ray
@ 2019-01-31 14:21 ` Ian Ray
  2019-03-13  9:29   ` [U-Boot] [U-Boot,05/13] " sbabic at denx.de
  2019-01-31 14:21 ` [U-Boot] [PATCH 06/13] arm: imx: Add esdhc3/4 nodes to imx53.dtsi Ian Ray
                   ` (7 subsequent siblings)
  12 siblings, 1 reply; 30+ messages in thread
From: Ian Ray @ 2019-01-31 14:21 UTC (permalink / raw)
  To: u-boot

Add simplified, generalised, ppd device tree and enable CONFIG_DM.

Signed-off-by: Ian Ray <ian.ray@ge.com>
---
 arch/arm/dts/Makefile      |  1 +
 arch/arm/dts/imx53-ppd.dts | 14 ++++++++++++++
 configs/mx53ppd_defconfig  |  4 ++++
 3 files changed, 19 insertions(+)
 create mode 100644 arch/arm/dts/imx53-ppd.dts

diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index a902775..1fd778b 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -583,6 +583,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \
 	mt7629-rfb.dtb
 
 dtb-$(CONFIG_TARGET_GE_BX50V3) += imx6q-bx50v3.dtb
+dtb-$(CONFIG_TARGET_MX53PPD) += imx53-ppd.dtb
 
 targets += $(dtb-y)
 
diff --git a/arch/arm/dts/imx53-ppd.dts b/arch/arm/dts/imx53-ppd.dts
new file mode 100644
index 0000000..98e7dad
--- /dev/null
+++ b/arch/arm/dts/imx53-ppd.dts
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: GPL-2.0+ OR X11 */
+/*
+ * Copyright 2018 General Electric Company
+ * Based on imx53-ppd.dts from kernel 4.20.5.
+ */
+
+/dts-v1/;
+
+#include "imx53.dtsi"
+
+/ {
+	model = "General Electric CS ONE";
+	compatible = "ge,imx53-cpuvo", "fsl,imx53";
+};
diff --git a/configs/mx53ppd_defconfig b/configs/mx53ppd_defconfig
index 77af2ae..7556c0c 100644
--- a/configs/mx53ppd_defconfig
+++ b/configs/mx53ppd_defconfig
@@ -45,3 +45,7 @@ CONFIG_VIDEO=y
 # CONFIG_VIDEO_SW_CURSOR is not set
 CONFIG_IMX_WATCHDOG=y
 CONFIG_OF_LIBFDT=y
+CONFIG_DM=y
+CONFIG_CMD_DM=y
+CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="imx53-ppd"
-- 
2.10.1

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

* [U-Boot] [PATCH 06/13] arm: imx: Add esdhc3/4 nodes to imx53.dtsi
  2019-01-31 14:21 [U-Boot] [PATCH 00/13] board: ge: initial dm support Ian Ray
                   ` (4 preceding siblings ...)
  2019-01-31 14:21 ` [U-Boot] [PATCH 05/13] board: ge: ppd: Enable CONFIG_DM Ian Ray
@ 2019-01-31 14:21 ` Ian Ray
  2019-03-13  9:28   ` [U-Boot] [U-Boot, " sbabic at denx.de
  2019-01-31 14:21 ` [U-Boot] [PATCH 07/13] board: ge: ppd: Enable CONFIG_DM_MMC Ian Ray
                   ` (6 subsequent siblings)
  12 siblings, 1 reply; 30+ messages in thread
From: Ian Ray @ 2019-01-31 14:21 UTC (permalink / raw)
  To: u-boot

These nodes are required by mx53ppd when built with CONFIG_DM_MMC=y.
They are copied from Linux 4.20.5.

Signed-off-by: Ian Ray <ian.ray@ge.com>
---
 arch/arm/dts/imx53.dtsi | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/arch/arm/dts/imx53.dtsi b/arch/arm/dts/imx53.dtsi
index e13009c..0fd4acc 100644
--- a/arch/arm/dts/imx53.dtsi
+++ b/arch/arm/dts/imx53.dtsi
@@ -33,6 +33,8 @@
 		i2c2 = &i2c3;
 		mmc0 = &esdhc1;
 		mmc1 = &esdhc2;
+		mmc2 = &esdhc3;
+		mmc3 = &esdhc4;
 	};
 
 	tzic: tz-interrupt-controller at fffc000 {
@@ -86,6 +88,30 @@
 					bus-width = <4>;
 					status = "disabled";
 				};
+
+				esdhc3: esdhc at 50020000 {
+					compatible = "fsl,imx53-esdhc";
+					reg = <0x50020000 0x4000>;
+					interrupts = <3>;
+					clocks = <&clks IMX5_CLK_ESDHC3_IPG_GATE>,
+						 <&clks IMX5_CLK_DUMMY>,
+						 <&clks IMX5_CLK_ESDHC3_PER_GATE>;
+					clock-names = "ipg", "ahb", "per";
+					bus-width = <4>;
+					status = "disabled";
+				};
+
+				esdhc4: esdhc at 50024000 {
+					compatible = "fsl,imx53-esdhc";
+					reg = <0x50024000 0x4000>;
+					interrupts = <4>;
+					clocks = <&clks IMX5_CLK_ESDHC4_IPG_GATE>,
+						 <&clks IMX5_CLK_DUMMY>,
+						 <&clks IMX5_CLK_ESDHC4_PER_GATE>;
+					clock-names = "ipg", "ahb", "per";
+					bus-width = <4>;
+					status = "disabled";
+				};
 			};
 
 			iomuxc: iomuxc at 53fa8000 {
-- 
2.10.1

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

* [U-Boot] [PATCH 07/13] board: ge: ppd: Enable CONFIG_DM_MMC
  2019-01-31 14:21 [U-Boot] [PATCH 00/13] board: ge: initial dm support Ian Ray
                   ` (5 preceding siblings ...)
  2019-01-31 14:21 ` [U-Boot] [PATCH 06/13] arm: imx: Add esdhc3/4 nodes to imx53.dtsi Ian Ray
@ 2019-01-31 14:21 ` Ian Ray
  2019-03-13  9:28   ` [U-Boot] [U-Boot,07/13] " sbabic at denx.de
  2019-01-31 14:21 ` [U-Boot] [PATCH 08/13] board: ge: store version information in fdt Ian Ray
                   ` (5 subsequent siblings)
  12 siblings, 1 reply; 30+ messages in thread
From: Ian Ray @ 2019-01-31 14:21 UTC (permalink / raw)
  To: u-boot

Use MMC device model, and remove USDHC pin configuration code since the
pinctrl driver is used.

Signed-off-by: Ian Ray <ian.ray@ge.com>
---
 arch/arm/dts/imx53-ppd.dts | 29 ++++++++++++++++++
 board/ge/mx53ppd/mx53ppd.c | 73 ----------------------------------------------
 configs/mx53ppd_defconfig  |  4 +++
 include/configs/mx53ppd.h  |  6 +---
 4 files changed, 34 insertions(+), 78 deletions(-)

diff --git a/arch/arm/dts/imx53-ppd.dts b/arch/arm/dts/imx53-ppd.dts
index 98e7dad..f89d6f4 100644
--- a/arch/arm/dts/imx53-ppd.dts
+++ b/arch/arm/dts/imx53-ppd.dts
@@ -12,3 +12,32 @@
 	model = "General Electric CS ONE";
 	compatible = "ge,imx53-cpuvo", "fsl,imx53";
 };
+
+&iomuxc {
+	pinctrl-names = "default";
+
+	pinctrl_esdhc3: esdhc3grp {
+		fsl,pins = <
+			MX53_PAD_PATA_DATA8__ESDHC3_DAT0        0x1d5
+			MX53_PAD_PATA_DATA9__ESDHC3_DAT1        0x1d5
+			MX53_PAD_PATA_DATA10__ESDHC3_DAT2       0x1d5
+			MX53_PAD_PATA_DATA11__ESDHC3_DAT3       0x1d5
+			MX53_PAD_PATA_DATA0__ESDHC3_DAT4        0x1d5
+			MX53_PAD_PATA_DATA1__ESDHC3_DAT5        0x1d5
+			MX53_PAD_PATA_DATA2__ESDHC3_DAT6        0x1d5
+			MX53_PAD_PATA_DATA3__ESDHC3_DAT7        0x1d5
+			MX53_PAD_PATA_RESET_B__ESDHC3_CMD       0x1d5
+			MX53_PAD_PATA_IORDY__ESDHC3_CLK         0x1d5
+		>;
+	};
+};
+
+/* eMMC */
+&esdhc3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_esdhc3>;
+	compatible = "fsl,esdhc";
+	bus-width = <8>;
+	non-removable;
+	status = "okay";
+};
diff --git a/board/ge/mx53ppd/mx53ppd.c b/board/ge/mx53ppd/mx53ppd.c
index 23bfe55..9e13a24 100644
--- a/board/ge/mx53ppd/mx53ppd.c
+++ b/board/ge/mx53ppd/mx53ppd.c
@@ -122,79 +122,6 @@ static void setup_iomux_fec(void)
 	imx_iomux_v3_setup_multiple_pads(fec_pads, ARRAY_SIZE(fec_pads));
 }
 
-#ifdef CONFIG_FSL_ESDHC
-struct fsl_esdhc_cfg esdhc_cfg[2] = {
-	{MMC_SDHC3_BASE_ADDR},
-	{MMC_SDHC1_BASE_ADDR},
-};
-
-int board_mmc_getcd(struct mmc *mmc)
-{
-	return 1;
-}
-
-#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)
-{
-	static const iomux_v3_cfg_t sd1_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),
-		MX53_PAD_EIM_DA11__GPIO3_11,
-	};
-
-	static const iomux_v3_cfg_t sd2_pads[] = {
-		NEW_PAD_CTRL(MX53_PAD_SD1_CMD__ESDHC1_CMD, SD_CMD_PAD_CTRL),
-		NEW_PAD_CTRL(MX53_PAD_SD1_CLK__ESDHC1_CLK, SD_PAD_CTRL),
-		NEW_PAD_CTRL(MX53_PAD_SD1_DATA0__ESDHC1_DAT0, SD_PAD_CTRL),
-		NEW_PAD_CTRL(MX53_PAD_SD1_DATA1__ESDHC1_DAT1, SD_PAD_CTRL),
-		NEW_PAD_CTRL(MX53_PAD_SD1_DATA2__ESDHC1_DAT2, SD_PAD_CTRL),
-		NEW_PAD_CTRL(MX53_PAD_SD1_DATA3__ESDHC1_DAT3, SD_PAD_CTRL),
-		MX53_PAD_EIM_DA13__GPIO3_13,
-	};
-
-	u32 index;
-	int ret;
-
-	esdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK);
-	esdhc_cfg[1].sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK);
-
-	for (index = 0; index < CONFIG_SYS_FSL_ESDHC_NUM; index++) {
-		switch (index) {
-		case 0:
-			imx_iomux_v3_setup_multiple_pads(sd1_pads,
-							 ARRAY_SIZE(sd1_pads));
-			break;
-		case 1:
-			imx_iomux_v3_setup_multiple_pads(sd2_pads,
-							 ARRAY_SIZE(sd2_pads));
-			break;
-		default:
-			printf("Warning: you configured more ESDHC controller (%d) as supported by the board(2)\n",
-			       CONFIG_SYS_FSL_ESDHC_NUM);
-			return -EINVAL;
-		}
-		ret = fsl_esdhc_initialize(bis, &esdhc_cfg[index]);
-		if (ret)
-			return ret;
-	}
-
-	return 0;
-}
-#endif
-
 #define I2C_PAD_CTRL	(PAD_CTL_SRE_FAST | PAD_CTL_DSE_HIGH | \
 			 PAD_CTL_PUS_100K_UP | PAD_CTL_ODE)
 
diff --git a/configs/mx53ppd_defconfig b/configs/mx53ppd_defconfig
index 7556c0c..cd19e9b 100644
--- a/configs/mx53ppd_defconfig
+++ b/configs/mx53ppd_defconfig
@@ -49,3 +49,7 @@ CONFIG_DM=y
 CONFIG_CMD_DM=y
 CONFIG_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="imx53-ppd"
+CONFIG_DM_MMC=y
+CONFIG_BLK=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_IMX5=y
diff --git a/include/configs/mx53ppd.h b/include/configs/mx53ppd.h
index 467547e..efc2f31 100644
--- a/include/configs/mx53ppd.h
+++ b/include/configs/mx53ppd.h
@@ -30,10 +30,6 @@
 #define CONFIG_MXC_UART
 #define CONFIG_MXC_UART_BASE	UART1_BASE
 
-/* MMC Configs */
-#define CONFIG_SYS_FSL_ESDHC_ADDR	0
-#define CONFIG_SYS_FSL_ESDHC_NUM	2
-
 /* Eth Configs */
 
 #define CONFIG_FEC_MXC
@@ -101,7 +97,7 @@
 	"image=/boot/fitImage\0" \
 	"fdt_high=0xffffffff\0" \
 	"dev=mmc\0" \
-	"devnum=0\0" \
+	"devnum=2\0" \
 	"rootdev=mmcblk0p\0" \
 	"quiet=quiet loglevel=0\0" \
 	"console=" CONSOLE_DEV "\0" \
-- 
2.10.1

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

* [U-Boot] [PATCH 08/13] board: ge: store version information in fdt
  2019-01-31 14:21 [U-Boot] [PATCH 00/13] board: ge: initial dm support Ian Ray
                   ` (6 preceding siblings ...)
  2019-01-31 14:21 ` [U-Boot] [PATCH 07/13] board: ge: ppd: Enable CONFIG_DM_MMC Ian Ray
@ 2019-01-31 14:21 ` Ian Ray
  2019-03-13  9:38   ` [U-Boot] [U-Boot, " sbabic at denx.de
  2019-01-31 14:21 ` [U-Boot] [PATCH 09/13] board: ge: bx50v3: Specific ARP timeout removed Ian Ray
                   ` (4 subsequent siblings)
  12 siblings, 1 reply; 30+ messages in thread
From: Ian Ray @ 2019-01-31 14:21 UTC (permalink / raw)
  To: u-boot

Add board-specific FDT function to store U-Boot version in device tree.

Signed-off-by: Ian Ray <ian.ray@ge.com>
---
 board/ge/bx50v3/bx50v3.c    | 11 +++++++++++
 board/ge/mx53ppd/mx53ppd.c  | 11 +++++++++++
 configs/ge_bx50v3_defconfig |  1 +
 configs/mx53ppd_defconfig   |  1 +
 4 files changed, 24 insertions(+)

diff --git a/board/ge/bx50v3/bx50v3.c b/board/ge/bx50v3/bx50v3.c
index b69b9e7..f42d2ce 100644
--- a/board/ge/bx50v3/bx50v3.c
+++ b/board/ge/bx50v3/bx50v3.c
@@ -10,6 +10,7 @@
 #include <asm/arch/iomux.h>
 #include <asm/arch/mx6-pins.h>
 #include <linux/errno.h>
+#include <linux/libfdt.h>
 #include <asm/gpio.h>
 #include <asm/mach-imx/mxc_i2c.h>
 #include <asm/mach-imx/iomux-v3.h>
@@ -27,6 +28,7 @@
 #include <i2c.h>
 #include <input.h>
 #include <pwm.h>
+#include <version.h>
 #include <stdlib.h>
 #include "../common/ge_common.h"
 #include "../common/vpd_reader.h"
@@ -689,6 +691,15 @@ int checkboard(void)
 	return 0;
 }
 
+#ifdef CONFIG_OF_BOARD_SETUP
+int ft_board_setup(void *blob, bd_t *bd)
+{
+	fdt_setprop(blob, 0, "ge,boot-ver", version_string,
+	                                    strlen(version_string) + 1);
+	return 0;
+}
+#endif
+
 static int do_backlight_enable(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
 #ifdef CONFIG_VIDEO_IPUV3
diff --git a/board/ge/mx53ppd/mx53ppd.c b/board/ge/mx53ppd/mx53ppd.c
index 9e13a24..5411e42 100644
--- a/board/ge/mx53ppd/mx53ppd.c
+++ b/board/ge/mx53ppd/mx53ppd.c
@@ -17,6 +17,7 @@
 #include <asm/arch/iomux-mx53.h>
 #include <asm/arch/clock.h>
 #include <linux/errno.h>
+#include <linux/libfdt.h>
 #include <asm/mach-imx/mxc_i2c.h>
 #include <asm/mach-imx/mx5_video.h>
 #include <environment.h>
@@ -30,6 +31,7 @@
 #include <fsl_pmic.h>
 #include <linux/fb.h>
 #include <ipu_pixfmt.h>
+#include <version.h>
 #include <watchdog.h>
 #include "ppd_gpio.h"
 #include <stdlib.h>
@@ -307,3 +309,12 @@ int checkboard(void)
 
 	return 0;
 }
+
+#ifdef CONFIG_OF_BOARD_SETUP
+int ft_board_setup(void *blob, bd_t *bd)
+{
+	fdt_setprop(blob, 0, "ge,boot-ver", version_string,
+	                                    strlen(version_string) + 1);
+	return 0;
+}
+#endif
diff --git a/configs/ge_bx50v3_defconfig b/configs/ge_bx50v3_defconfig
index 71bf9d6..d2ed2c1 100644
--- a/configs/ge_bx50v3_defconfig
+++ b/configs/ge_bx50v3_defconfig
@@ -62,3 +62,4 @@ CONFIG_PINCTRL_IMX6=y
 CONFIG_DM_GPIO=y
 CONFIG_DM_SPI=y
 CONFIG_DM_SPI_FLASH=y
+CONFIG_OF_BOARD_SETUP=y
diff --git a/configs/mx53ppd_defconfig b/configs/mx53ppd_defconfig
index cd19e9b..fc6ea71 100644
--- a/configs/mx53ppd_defconfig
+++ b/configs/mx53ppd_defconfig
@@ -53,3 +53,4 @@ CONFIG_DM_MMC=y
 CONFIG_BLK=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX5=y
+CONFIG_OF_BOARD_SETUP=y
-- 
2.10.1

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

* [U-Boot] [PATCH 09/13] board: ge: bx50v3: Specific ARP timeout removed
  2019-01-31 14:21 [U-Boot] [PATCH 00/13] board: ge: initial dm support Ian Ray
                   ` (7 preceding siblings ...)
  2019-01-31 14:21 ` [U-Boot] [PATCH 08/13] board: ge: store version information in fdt Ian Ray
@ 2019-01-31 14:21 ` Ian Ray
  2019-01-31 14:21 ` [U-Boot] [PATCH 10/13] board: ge: bx50v3: Network booting of fitImage with nfs rootfs Ian Ray
                   ` (3 subsequent siblings)
  12 siblings, 0 replies; 30+ messages in thread
From: Ian Ray @ 2019-01-31 14:21 UTC (permalink / raw)
  To: u-boot

From: Joonas Aijala <joonas.aijala@ge.com>

Specific ARP timeout sometimes causes ARP timeout during nfs loading
of the fitImage.

Signed-off-by: Joonas Aijala <joonas.aijala@ge.com>
Signed-off-by: Ian Ray <ian.ray@ge.com>
---
 include/configs/ge_bx50v3.h | 1 -
 1 file changed, 1 deletion(-)

diff --git a/include/configs/ge_bx50v3.h b/include/configs/ge_bx50v3.h
index 7d62483..d48228b 100644
--- a/include/configs/ge_bx50v3.h
+++ b/include/configs/ge_bx50v3.h
@@ -148,7 +148,6 @@
 #define CONFIG_BOOTCOMMAND CONFIG_MMCBOOTCOMMAND
 #endif
 
-#define CONFIG_ARP_TIMEOUT     200UL
 
 /* Miscellaneous configurable options */
 
-- 
2.10.1

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

* [U-Boot] [PATCH 10/13] board: ge: bx50v3: Network booting of fitImage with nfs rootfs
  2019-01-31 14:21 [U-Boot] [PATCH 00/13] board: ge: initial dm support Ian Ray
                   ` (8 preceding siblings ...)
  2019-01-31 14:21 ` [U-Boot] [PATCH 09/13] board: ge: bx50v3: Specific ARP timeout removed Ian Ray
@ 2019-01-31 14:21 ` Ian Ray
       [not found]   ` <joonas.aijala@ge.com>
  2019-01-31 14:21 ` [U-Boot] [PATCH 11/13] mx53ppd: bring dock out of reset at boot Ian Ray
                   ` (2 subsequent siblings)
  12 siblings, 1 reply; 30+ messages in thread
From: Ian Ray @ 2019-01-31 14:21 UTC (permalink / raw)
  To: u-boot

From: Joonas Aijala <joonas.aijala@ge.com>

New boot command introduced to automate network booting.

Signed-off-by: Joonas Aijala <joonas.aijala@ge.com>
Signed-off-by: Ian Ray <ian.ray@ge.com>
---
 include/configs/ge_bx50v3.h | 29 ++++++++++++++++++++++++++++-
 1 file changed, 28 insertions(+), 1 deletion(-)

diff --git a/include/configs/ge_bx50v3.h b/include/configs/ge_bx50v3.h
index d48228b..bc63861 100644
--- a/include/configs/ge_bx50v3.h
+++ b/include/configs/ge_bx50v3.h
@@ -79,7 +79,32 @@
 
 #define CONFIG_LOADADDR	0x12000000
 
+#ifdef CONFIG_NFS_CMD
+#define NETWORKBOOT \
+        "setnetworkboot=" \
+                "setenv ipaddr 172.16.2.10; setenv serverip 172.16.2.20; " \
+                "setenv gatewayip 172.16.2.20; setenv nfsserver 172.16.2.20; " \
+                "setenv netmask 255.255.255.0; setenv ethaddr ca:fe:de:ca:f0:11; " \
+                "setenv bootargs root=/dev/nfs nfsroot=${nfsserver}:/srv/nfs/,v3,tcp rw rootwait" \
+                "setenv bootargs $bootargs ip=${ipaddr}:${nfsserver}:${gatewayip}:${netmask}::eth0:off " \
+                "setenv bootargs $bootargs cma=128M bootcause=POR console=${console} ${videoargs} " \
+                "setenv bootargs $bootargs systemd.mask=helix-network-defaults.service " \
+                "setenv bootargs $bootargs watchdog.handle_boot_enabled=1\0" \
+        "networkboot=" \
+                "run setnetworkboot; " \
+                "nfs ${loadaddr} /srv/nfs/fitImage; " \
+                "bootm ${loadaddr}#conf@${confidx}\0" \
+
+#define CONFIG_NETWORKBOOTCOMMAND \
+	"run networkboot; " \
+
+#else
+#define NETWORKBOOT \
+
+#endif
+
 #define CONFIG_EXTRA_ENV_SETTINGS \
+	NETWORKBOOT \
 	"bootcause=POR\0" \
 	"image=/boot/fitImage\0" \
 	"fdt_high=0xffffffff\0" \
@@ -142,7 +167,9 @@
 #define CONFIG_USBBOOTCOMMAND \
 	"echo Unsupported; " \
 
-#ifdef CONFIG_CMD_USB
+#ifdef CONFIG_NFS_CMD
+#define CONFIG_BOOTCOMMAND CONFIG_NETWORKBOOTCOMMAND
+#elif CONFIG_CMD_USB
 #define CONFIG_BOOTCOMMAND CONFIG_USBBOOTCOMMAND
 #else
 #define CONFIG_BOOTCOMMAND CONFIG_MMCBOOTCOMMAND
-- 
2.10.1

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

* [U-Boot] [PATCH 11/13] mx53ppd: bring dock out of reset at boot
  2019-01-31 14:21 [U-Boot] [PATCH 00/13] board: ge: initial dm support Ian Ray
                   ` (9 preceding siblings ...)
  2019-01-31 14:21 ` [U-Boot] [PATCH 10/13] board: ge: bx50v3: Network booting of fitImage with nfs rootfs Ian Ray
@ 2019-01-31 14:21 ` Ian Ray
  2019-03-13  9:28   ` [U-Boot] [U-Boot,11/13] " sbabic at denx.de
  2019-01-31 14:21 ` [U-Boot] [PATCH 12/13] mx53ppd: fix unsupported set command Ian Ray
  2019-01-31 14:21 ` [U-Boot] [PATCH 13/13] bootcount: i2c: Delay after writing Ian Ray
  12 siblings, 1 reply; 30+ messages in thread
From: Ian Ray @ 2019-01-31 14:21 UTC (permalink / raw)
  To: u-boot

Configure GPIO BUFFERED_HOST_CONTROLLED_RESET_TO_DOCKING_CONNECTOR_N to
bring the dock out of reset at boot.

Signed-off-by: Ian Ray <ian.ray@ge.com>
---
 board/ge/mx53ppd/ppd_gpio.h | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/board/ge/mx53ppd/ppd_gpio.h b/board/ge/mx53ppd/ppd_gpio.h
index e3b84c7..ba2d1ba 100644
--- a/board/ge/mx53ppd/ppd_gpio.h
+++ b/board/ge/mx53ppd/ppd_gpio.h
@@ -36,6 +36,8 @@ static const iomux_v3_cfg_t ppd_pads[] = {
 	MX53_PAD_KEY_COL2__GPIO4_10,
 	MX53_PAD_KEY_ROW2__GPIO4_11,
 	MX53_PAD_KEY_COL3__GPIO4_12,
+
+	MX53_PAD_PATA_DATA7__GPIO2_7,    /* BUFFERED_HOST_CONTROLLED_RESET_TO_DOCKING_CONNECTOR_N */
 };
 
 struct gpio_cfg {
@@ -61,6 +63,7 @@ struct gpio_cfg {
 #define ECSPI1_CS1 IMX_GPIO_NR(4, 10)
 #define ECSPI1_CS2 IMX_GPIO_NR(4, 11)
 #define ECSPI1_CS3 IMX_GPIO_NR(4, 12)
+#define BUFFERED_HOST_CONTROLLED_RESET_TO_DOCKING_CONNECTOR_N IMX_GPIO_NR(2, 7)
 
 static const struct gpio_cfg ppd_gpios[] = {
 	/* FEC */
@@ -90,6 +93,7 @@ static const struct gpio_cfg ppd_gpios[] = {
 	{ ECSPI1_CS1, 1 },
 	{ ECSPI1_CS2, 1 },
 	{ ECSPI1_CS3, 1 },
+	{ BUFFERED_HOST_CONTROLLED_RESET_TO_DOCKING_CONNECTOR_N, 1 },
 };
 
 #endif /* __PPD_GPIO_H_ */
-- 
2.10.1

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

* [U-Boot] [PATCH 12/13] mx53ppd: fix unsupported set command
  2019-01-31 14:21 [U-Boot] [PATCH 00/13] board: ge: initial dm support Ian Ray
                   ` (10 preceding siblings ...)
  2019-01-31 14:21 ` [U-Boot] [PATCH 11/13] mx53ppd: bring dock out of reset at boot Ian Ray
@ 2019-01-31 14:21 ` Ian Ray
  2019-03-13  9:30   ` [U-Boot] [U-Boot,12/13] " sbabic at denx.de
  2019-01-31 14:21 ` [U-Boot] [PATCH 13/13] bootcount: i2c: Delay after writing Ian Ray
  12 siblings, 1 reply; 30+ messages in thread
From: Ian Ray @ 2019-01-31 14:21 UTC (permalink / raw)
  To: u-boot

Fix the NFS commands which used `set' to instead use `setenv'.

Signed-off-by: Ian Ray <ian.ray@ge.com>
---
 include/configs/mx53ppd.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/include/configs/mx53ppd.h b/include/configs/mx53ppd.h
index efc2f31..e34693e 100644
--- a/include/configs/mx53ppd.h
+++ b/include/configs/mx53ppd.h
@@ -85,10 +85,10 @@
 	"nfsroot=/opt/springdale/rd\0" \
 	"bootargs_nfs=setenv bootargs ${bootargs} root=/dev/nfs " \
 		"${kern_ipconf} nfsroot=${nfsserver}:${nfsroot},v3,tcp rw\0" \
-	"choose_ip=if test $use_dhcp = 1; then set kern_ipconf ip=dhcp; " \
-		"set getcmd dhcp; else set kern_ipconf " \
+	"choose_ip=if test $use_dhcp = 1; then setenv kern_ipconf ip=dhcp; " \
+		"setenv getcmd dhcp; else setenv kern_ipconf " \
 		"ip=${ipaddr}:${nfsserver}:${gatewayip}:${netmask}::eth0:off; " \
-		"set getcmd tftp; fi\0" \
+		"setenv getcmd tftp; fi\0" \
 	"nfs=run choose_ip setargs bootargs_nfs; ${getcmd} ${loadaddr} " \
 		"${nfsserver}:${image}; bootm ${loadaddr}\0" \
 
-- 
2.10.1

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

* [U-Boot] [PATCH 13/13] bootcount: i2c: Delay after writing
  2019-01-31 14:21 [U-Boot] [PATCH 00/13] board: ge: initial dm support Ian Ray
                   ` (11 preceding siblings ...)
  2019-01-31 14:21 ` [U-Boot] [PATCH 12/13] mx53ppd: fix unsupported set command Ian Ray
@ 2019-01-31 14:21 ` Ian Ray
  2019-03-13 10:04   ` Stefano Babic
  12 siblings, 1 reply; 30+ messages in thread
From: Ian Ray @ 2019-01-31 14:21 UTC (permalink / raw)
  To: u-boot

Since 2018.11, the pattern of bootcount load and store has changed such
that bootcount_inc() and bootcount_error() will load, increment, store,
and load *again*.  The second load exposes a timing problem whereby the
i2c read fails.  The root cause _seems_ to relate to performance of the
24c08 EEPROM.  Insert a delay after writing to work around this.

Signed-off-by: Ian Ray <ian.ray@ge.com>
---
 drivers/bootcount/bootcount_i2c.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/bootcount/bootcount_i2c.c b/drivers/bootcount/bootcount_i2c.c
index ed22389..dd86426 100644
--- a/drivers/bootcount/bootcount_i2c.c
+++ b/drivers/bootcount/bootcount_i2c.c
@@ -64,6 +64,10 @@ void bootcount_store(ulong a)
 			CONFIG_BOOTCOUNT_ALEN, buf, sizeof(buf));
 	if (ret != 0)
 		puts("Error writing bootcount\n");
+	else
+		/* Datasheet claims 2 ms typical write cycle time.
+		 * This delay ensures that next read will succeed. */
+		mdelay(5);
 
 	bootcount_set_bus_back(prev_i2c_bus);
 }
-- 
2.10.1

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

* [U-Boot] [U-Boot, 06/13] arm: imx: Add esdhc3/4 nodes to imx53.dtsi
  2019-01-31 14:21 ` [U-Boot] [PATCH 06/13] arm: imx: Add esdhc3/4 nodes to imx53.dtsi Ian Ray
@ 2019-03-13  9:28   ` sbabic at denx.de
  0 siblings, 0 replies; 30+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:28 UTC (permalink / raw)
  To: u-boot

> These nodes are required by mx53ppd when built with CONFIG_DM_MMC=y.
> They are copied from Linux 4.20.5.
> Signed-off-by: Ian Ray <ian.ray@ge.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] 30+ messages in thread

* [U-Boot] [U-Boot,07/13] board: ge: ppd: Enable CONFIG_DM_MMC
  2019-01-31 14:21 ` [U-Boot] [PATCH 07/13] board: ge: ppd: Enable CONFIG_DM_MMC Ian Ray
@ 2019-03-13  9:28   ` sbabic at denx.de
  0 siblings, 0 replies; 30+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:28 UTC (permalink / raw)
  To: u-boot

> Use MMC device model, and remove USDHC pin configuration code since the
> pinctrl driver is used.
> Signed-off-by: Ian Ray <ian.ray@ge.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] 30+ messages in thread

* [U-Boot] [U-Boot,11/13] mx53ppd: bring dock out of reset at boot
  2019-01-31 14:21 ` [U-Boot] [PATCH 11/13] mx53ppd: bring dock out of reset at boot Ian Ray
@ 2019-03-13  9:28   ` sbabic at denx.de
  0 siblings, 0 replies; 30+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:28 UTC (permalink / raw)
  To: u-boot

> Configure GPIO BUFFERED_HOST_CONTROLLED_RESET_TO_DOCKING_CONNECTOR_N to
> bring the dock out of reset at boot.
> Signed-off-by: Ian Ray <ian.ray@ge.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] 30+ messages in thread

* [U-Boot] [U-Boot, 10/13] board: ge: bx50v3: Network booting of fitImage with nfs rootfs
       [not found]   ` <joonas.aijala@ge.com>
@ 2019-03-13  9:28     ` sbabic at denx.de
  2019-03-13  9:38     ` [U-Boot] [U-Boot, 09/13] board: ge: bx50v3: Specific ARP timeout removed sbabic at denx.de
  1 sibling, 0 replies; 30+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:28 UTC (permalink / raw)
  To: u-boot

> From: Joonas Aijala <joonas.aijala@ge.com>
> New boot command introduced to automate network booting.
> Signed-off-by: Joonas Aijala <joonas.aijala@ge.com>
> Signed-off-by: Ian Ray <ian.ray@ge.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] 30+ messages in thread

* [U-Boot]  [U-Boot, 04/13] board: ge: bx50v3: Enable CONFIG_DM_SPI, CONFIG_DM_SPI_FLASH
  2019-01-31 14:21 ` [U-Boot] [PATCH 04/13] board: ge: bx50v3: Enable CONFIG_DM_SPI, CONFIG_DM_SPI_FLASH Ian Ray
@ 2019-03-13  9:28   ` sbabic at denx.de
  0 siblings, 0 replies; 30+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:28 UTC (permalink / raw)
  To: u-boot

> Use SPI flash device model, and remove SPI pin configuration code since
> the pinctrl driver is used.
> Signed-off-by: Ian Ray <ian.ray@ge.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] 30+ messages in thread

* [U-Boot] [U-Boot,05/13] board: ge: ppd: Enable CONFIG_DM
  2019-01-31 14:21 ` [U-Boot] [PATCH 05/13] board: ge: ppd: Enable CONFIG_DM Ian Ray
@ 2019-03-13  9:29   ` sbabic at denx.de
  0 siblings, 0 replies; 30+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:29 UTC (permalink / raw)
  To: u-boot

> Add simplified, generalised, ppd device tree and enable CONFIG_DM.
> Signed-off-by: Ian Ray <ian.ray@ge.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] 30+ messages in thread

* [U-Boot] [U-Boot,03/13] board: ge: bx50v3: Enable CONFIG_DM_GPIO
  2019-01-31 14:21 ` [U-Boot] [PATCH 03/13] board: ge: bx50v3: Enable CONFIG_DM_GPIO Ian Ray
@ 2019-03-13  9:29   ` sbabic at denx.de
  0 siblings, 0 replies; 30+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:29 UTC (permalink / raw)
  To: u-boot

> Enable CONFIG_DM_GPIO as a pre-requisite for enabling CONFIG_DM_SPI.
> Add explicit gpio_requests.
> Signed-off-by: Ian Ray <ian.ray@ge.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] 30+ messages in thread

* [U-Boot] [U-Boot,12/13] mx53ppd: fix unsupported set command
  2019-01-31 14:21 ` [U-Boot] [PATCH 12/13] mx53ppd: fix unsupported set command Ian Ray
@ 2019-03-13  9:30   ` sbabic at denx.de
  0 siblings, 0 replies; 30+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:30 UTC (permalink / raw)
  To: u-boot

> Fix the NFS commands which used `set' to instead use `setenv'.
> Signed-off-by: Ian Ray <ian.ray@ge.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] 30+ messages in thread

* [U-Boot] [U-Boot, 09/13] board: ge: bx50v3: Specific ARP timeout removed
       [not found]   ` <joonas.aijala@ge.com>
  2019-03-13  9:28     ` [U-Boot] [U-Boot, " sbabic at denx.de
@ 2019-03-13  9:38     ` sbabic at denx.de
  1 sibling, 0 replies; 30+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:38 UTC (permalink / raw)
  To: u-boot

> From: Joonas Aijala <joonas.aijala@ge.com>
> Specific ARP timeout sometimes causes ARP timeout during nfs loading
> of the fitImage.
> Signed-off-by: Joonas Aijala <joonas.aijala@ge.com>
> Signed-off-by: Ian Ray <ian.ray@ge.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] 30+ messages in thread

* [U-Boot] [U-Boot, 08/13] board: ge: store version information in fdt
  2019-01-31 14:21 ` [U-Boot] [PATCH 08/13] board: ge: store version information in fdt Ian Ray
@ 2019-03-13  9:38   ` sbabic at denx.de
  0 siblings, 0 replies; 30+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:38 UTC (permalink / raw)
  To: u-boot

> Add board-specific FDT function to store U-Boot version in device tree.
> Signed-off-by: Ian Ray <ian.ray@ge.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] 30+ messages in thread

* [U-Boot] [U-Boot,01/13] board: ge: bx50v3: Enable CONFIG_DM
  2019-01-31 14:21 ` [U-Boot] [PATCH 01/13] board: ge: bx50v3: Enable CONFIG_DM Ian Ray
@ 2019-03-13  9:47   ` sbabic at denx.de
  0 siblings, 0 replies; 30+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:47 UTC (permalink / raw)
  To: u-boot

> Add simplified, generalised, bx50v3 device tree and enable CONFIG_DM.
> Signed-off-by: Ian Ray <ian.ray@ge.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] 30+ messages in thread

* [U-Boot] [U-Boot,02/13] board: ge: bx50v3: Enable CONFIG_DM_MMC
  2019-01-31 14:21 ` [U-Boot] [PATCH 02/13] board: ge: bx50v3: Enable CONFIG_DM_MMC Ian Ray
@ 2019-03-13  9:47   ` sbabic at denx.de
  0 siblings, 0 replies; 30+ messages in thread
From: sbabic at denx.de @ 2019-03-13  9:47 UTC (permalink / raw)
  To: u-boot

> Use MMC device model, and remove USDHC pin configuration code since the
> pinctrl driver is used.
> Signed-off-by: Ian Ray <ian.ray@ge.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] 30+ messages in thread

* [U-Boot] [PATCH 13/13] bootcount: i2c: Delay after writing
  2019-01-31 14:21 ` [U-Boot] [PATCH 13/13] bootcount: i2c: Delay after writing Ian Ray
@ 2019-03-13 10:04   ` Stefano Babic
  2019-03-13 13:01     ` Heiko Schocher
  0 siblings, 1 reply; 30+ messages in thread
From: Stefano Babic @ 2019-03-13 10:04 UTC (permalink / raw)
  To: u-boot

Hi Ian,

On 31/01/19 15:21, Ian Ray wrote:
> Since 2018.11, the pattern of bootcount load and store has changed such
> that bootcount_inc() and bootcount_error() will load, increment, store,
> and load *again*.  The second load exposes a timing problem whereby the
> i2c read fails.  The root cause _seems_ to relate to performance of the
> 24c08 EEPROM.  Insert a delay after writing to work around this.
> 
> Signed-off-by: Ian Ray <ian.ray@ge.com>
> ---
>  drivers/bootcount/bootcount_i2c.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/bootcount/bootcount_i2c.c b/drivers/bootcount/bootcount_i2c.c
> index ed22389..dd86426 100644
> --- a/drivers/bootcount/bootcount_i2c.c
> +++ b/drivers/bootcount/bootcount_i2c.c
> @@ -64,6 +64,10 @@ void bootcount_store(ulong a)
>  			CONFIG_BOOTCOUNT_ALEN, buf, sizeof(buf));
>  	if (ret != 0)
>  		puts("Error writing bootcount\n");
> +	else
> +		/* Datasheet claims 2 ms typical write cycle time.
> +		 * This delay ensures that next read will succeed. */
> +		mdelay(5);
>  

I see, but this is device specific while bootcount_i2c should be
device-unaware. I know this driver is used with PMIC where no delay is
required. Heiko, is it ok to put a fix delay here or should be
configurable ?

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

* [U-Boot] [PATCH 13/13] bootcount: i2c: Delay after writing
  2019-03-13 10:04   ` Stefano Babic
@ 2019-03-13 13:01     ` Heiko Schocher
  2019-03-13 13:42       ` Stefano Babic
  0 siblings, 1 reply; 30+ messages in thread
From: Heiko Schocher @ 2019-03-13 13:01 UTC (permalink / raw)
  To: u-boot

Hello Stefano,

Am 13.03.2019 um 11:04 schrieb Stefano Babic:
> Hi Ian,
> 
> On 31/01/19 15:21, Ian Ray wrote:
>> Since 2018.11, the pattern of bootcount load and store has changed such
>> that bootcount_inc() and bootcount_error() will load, increment, store,
>> and load *again*.  The second load exposes a timing problem whereby the
>> i2c read fails.  The root cause _seems_ to relate to performance of the
>> 24c08 EEPROM.  Insert a delay after writing to work around this.
>>
>> Signed-off-by: Ian Ray <ian.ray@ge.com>
>> ---
>>   drivers/bootcount/bootcount_i2c.c | 4 ++++
>>   1 file changed, 4 insertions(+)
>>
>> diff --git a/drivers/bootcount/bootcount_i2c.c b/drivers/bootcount/bootcount_i2c.c
>> index ed22389..dd86426 100644
>> --- a/drivers/bootcount/bootcount_i2c.c
>> +++ b/drivers/bootcount/bootcount_i2c.c
>> @@ -64,6 +64,10 @@ void bootcount_store(ulong a)
>>   			CONFIG_BOOTCOUNT_ALEN, buf, sizeof(buf));
>>   	if (ret != 0)
>>   		puts("Error writing bootcount\n");
>> +	else
>> +		/* Datasheet claims 2 ms typical write cycle time.
>> +		 * This delay ensures that next read will succeed. */
>> +		mdelay(5);
>>   
> 
> I see, but this is device specific while bootcount_i2c should be
> device-unaware. I know this driver is used with PMIC where no delay is
> required. Heiko, is it ok to put a fix delay here or should be
> configurable ?

I would prefer here to make this timeout configurable, thinking
about boottime constraints.

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

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

* [U-Boot] [PATCH 13/13] bootcount: i2c: Delay after writing
  2019-03-13 13:01     ` Heiko Schocher
@ 2019-03-13 13:42       ` Stefano Babic
  2019-03-14  7:34         ` [U-Boot] EXT: " Ray, Ian
  0 siblings, 1 reply; 30+ messages in thread
From: Stefano Babic @ 2019-03-13 13:42 UTC (permalink / raw)
  To: u-boot

On 13/03/19 14:01, Heiko Schocher wrote:
> Hello Stefano,
> 
> Am 13.03.2019 um 11:04 schrieb Stefano Babic:
>> Hi Ian,
>>
>> On 31/01/19 15:21, Ian Ray wrote:
>>> Since 2018.11, the pattern of bootcount load and store has changed such
>>> that bootcount_inc() and bootcount_error() will load, increment, store,
>>> and load *again*.  The second load exposes a timing problem whereby the
>>> i2c read fails.  The root cause _seems_ to relate to performance of the
>>> 24c08 EEPROM.  Insert a delay after writing to work around this.
>>>
>>> Signed-off-by: Ian Ray <ian.ray@ge.com>
>>> ---
>>>   drivers/bootcount/bootcount_i2c.c | 4 ++++
>>>   1 file changed, 4 insertions(+)
>>>
>>> diff --git a/drivers/bootcount/bootcount_i2c.c
>>> b/drivers/bootcount/bootcount_i2c.c
>>> index ed22389..dd86426 100644
>>> --- a/drivers/bootcount/bootcount_i2c.c
>>> +++ b/drivers/bootcount/bootcount_i2c.c
>>> @@ -64,6 +64,10 @@ void bootcount_store(ulong a)
>>>               CONFIG_BOOTCOUNT_ALEN, buf, sizeof(buf));
>>>       if (ret != 0)
>>>           puts("Error writing bootcount\n");
>>> +    else
>>> +        /* Datasheet claims 2 ms typical write cycle time.
>>> +         * This delay ensures that next read will succeed. */
>>> +        mdelay(5);
>>>   
>>
>> I see, but this is device specific while bootcount_i2c should be
>> device-unaware. I know this driver is used with PMIC where no delay is
>> required. Heiko, is it ok to put a fix delay here or should be
>> configurable ?
> 
> I would prefer here to make this timeout configurable, thinking
> about boottime constraints.
> 

Right, I see the same - Ian, I have applied the whole series with the
exception of this one to u-boot-imx, next branch.

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

* [U-Boot] EXT: Re: [PATCH 13/13] bootcount: i2c: Delay after writing
  2019-03-13 13:42       ` Stefano Babic
@ 2019-03-14  7:34         ` Ray, Ian
  0 siblings, 0 replies; 30+ messages in thread
From: Ray, Ian @ 2019-03-14  7:34 UTC (permalink / raw)
  To: u-boot



> On 13 Mar 2019, at 15.42, Stefano Babic <sbabic@denx.de> wrote:
> 
> On 13/03/19 14:01, Heiko Schocher wrote:
>> Hello Stefano,
>> 
>> Am 13.03.2019 um 11:04 schrieb Stefano Babic:
>>> Hi Ian,
>>> 
>>> On 31/01/19 15:21, Ian Ray wrote:
>>>> Since 2018.11, the pattern of bootcount load and store has changed such
>>>> that bootcount_inc() and bootcount_error() will load, increment, store,
>>>> and load *again*.  The second load exposes a timing problem whereby the
>>>> i2c read fails.  The root cause _seems_ to relate to performance of the
>>>> 24c08 EEPROM.  Insert a delay after writing to work around this.
>>>> 
>>>> Signed-off-by: Ian Ray <ian.ray@ge.com>
>>>> ---
>>>>   drivers/bootcount/bootcount_i2c.c | 4 ++++
>>>>   1 file changed, 4 insertions(+)
>>>> 
>>>> diff --git a/drivers/bootcount/bootcount_i2c.c
>>>> b/drivers/bootcount/bootcount_i2c.c
>>>> index ed22389..dd86426 100644
>>>> --- a/drivers/bootcount/bootcount_i2c.c
>>>> +++ b/drivers/bootcount/bootcount_i2c.c
>>>> @@ -64,6 +64,10 @@ void bootcount_store(ulong a)
>>>>               CONFIG_BOOTCOUNT_ALEN, buf, sizeof(buf));
>>>>       if (ret != 0)
>>>>           puts("Error writing bootcount\n");
>>>> +    else
>>>> +        /* Datasheet claims 2 ms typical write cycle time.
>>>> +         * This delay ensures that next read will succeed. */
>>>> +        mdelay(5);
>>>>   
>>> 
>>> I see, but this is device specific while bootcount_i2c should be
>>> device-unaware. I know this driver is used with PMIC where no delay is
>>> required. Heiko, is it ok to put a fix delay here or should be
>>> configurable ?
>> 
>> I would prefer here to make this timeout configurable, thinking
>> about boottime constraints.
>> 
> 
> Right, I see the same - Ian, I have applied the whole series with the
> exception of this one to u-boot-imx, next branch.
> 

Thank you!  I will look in to the configuration.


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

end of thread, other threads:[~2019-03-14  7:34 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-31 14:21 [U-Boot] [PATCH 00/13] board: ge: initial dm support Ian Ray
2019-01-31 14:21 ` [U-Boot] [PATCH 01/13] board: ge: bx50v3: Enable CONFIG_DM Ian Ray
2019-03-13  9:47   ` [U-Boot] [U-Boot,01/13] " sbabic at denx.de
2019-01-31 14:21 ` [U-Boot] [PATCH 02/13] board: ge: bx50v3: Enable CONFIG_DM_MMC Ian Ray
2019-03-13  9:47   ` [U-Boot] [U-Boot,02/13] " sbabic at denx.de
2019-01-31 14:21 ` [U-Boot] [PATCH 03/13] board: ge: bx50v3: Enable CONFIG_DM_GPIO Ian Ray
2019-03-13  9:29   ` [U-Boot] [U-Boot,03/13] " sbabic at denx.de
2019-01-31 14:21 ` [U-Boot] [PATCH 04/13] board: ge: bx50v3: Enable CONFIG_DM_SPI, CONFIG_DM_SPI_FLASH Ian Ray
2019-03-13  9:28   ` [U-Boot] [U-Boot, " sbabic at denx.de
2019-01-31 14:21 ` [U-Boot] [PATCH 05/13] board: ge: ppd: Enable CONFIG_DM Ian Ray
2019-03-13  9:29   ` [U-Boot] [U-Boot,05/13] " sbabic at denx.de
2019-01-31 14:21 ` [U-Boot] [PATCH 06/13] arm: imx: Add esdhc3/4 nodes to imx53.dtsi Ian Ray
2019-03-13  9:28   ` [U-Boot] [U-Boot, " sbabic at denx.de
2019-01-31 14:21 ` [U-Boot] [PATCH 07/13] board: ge: ppd: Enable CONFIG_DM_MMC Ian Ray
2019-03-13  9:28   ` [U-Boot] [U-Boot,07/13] " sbabic at denx.de
2019-01-31 14:21 ` [U-Boot] [PATCH 08/13] board: ge: store version information in fdt Ian Ray
2019-03-13  9:38   ` [U-Boot] [U-Boot, " sbabic at denx.de
2019-01-31 14:21 ` [U-Boot] [PATCH 09/13] board: ge: bx50v3: Specific ARP timeout removed Ian Ray
2019-01-31 14:21 ` [U-Boot] [PATCH 10/13] board: ge: bx50v3: Network booting of fitImage with nfs rootfs Ian Ray
     [not found]   ` <joonas.aijala@ge.com>
2019-03-13  9:28     ` [U-Boot] [U-Boot, " sbabic at denx.de
2019-03-13  9:38     ` [U-Boot] [U-Boot, 09/13] board: ge: bx50v3: Specific ARP timeout removed sbabic at denx.de
2019-01-31 14:21 ` [U-Boot] [PATCH 11/13] mx53ppd: bring dock out of reset at boot Ian Ray
2019-03-13  9:28   ` [U-Boot] [U-Boot,11/13] " sbabic at denx.de
2019-01-31 14:21 ` [U-Boot] [PATCH 12/13] mx53ppd: fix unsupported set command Ian Ray
2019-03-13  9:30   ` [U-Boot] [U-Boot,12/13] " sbabic at denx.de
2019-01-31 14:21 ` [U-Boot] [PATCH 13/13] bootcount: i2c: Delay after writing Ian Ray
2019-03-13 10:04   ` Stefano Babic
2019-03-13 13:01     ` Heiko Schocher
2019-03-13 13:42       ` Stefano Babic
2019-03-14  7:34         ` [U-Boot] EXT: " Ray, Ian

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.