All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 1/2] watchdog: Split WDT from SPL_WDT
@ 2019-05-12 21:34 Marek Vasut
  2019-05-12 21:34 ` [U-Boot] [PATCH 2/2] watchdog: imx: Add DM support Marek Vasut
                   ` (2 more replies)
  0 siblings, 3 replies; 16+ messages in thread
From: Marek Vasut @ 2019-05-12 21:34 UTC (permalink / raw)
  To: u-boot

Use CONFIG_IS_ENABLED(WDT) to permit use of WDT in SPL without DM,
while the full U-Boot can use rich DM/DT WDT driver.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Peng Fan <Peng.Fan@freescale.com>
Cc: Stefano Babic <sbabic@denx.de>
---
 common/board_r.c                  | 2 +-
 common/spl/spl.c                  | 2 +-
 drivers/watchdog/Makefile         | 2 +-
 include/asm-generic/global_data.h | 2 +-
 include/wdt.h                     | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/common/board_r.c b/common/board_r.c
index 150e8cd424..988e40abb2 100644
--- a/common/board_r.c
+++ b/common/board_r.c
@@ -678,7 +678,7 @@ static init_fnc_t init_sequence_r[] = {
 #ifdef CONFIG_DM
 	initr_dm,
 #endif
-#if defined(CONFIG_WDT)
+#if CONFIG_IS_ENABLED(WDT)
 	initr_watchdog,
 #endif
 #if defined(CONFIG_ARM) || defined(CONFIG_NDS32) || defined(CONFIG_RISCV) || \
diff --git a/common/spl/spl.c b/common/spl/spl.c
index 0a6a47c202..f22f854718 100644
--- a/common/spl/spl.c
+++ b/common/spl/spl.c
@@ -601,7 +601,7 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
 	spl_board_init();
 #endif
 
-#if defined(CONFIG_SPL_WATCHDOG_SUPPORT) && defined(CONFIG_WDT)
+#if defined(CONFIG_SPL_WATCHDOG_SUPPORT) && CONFIG_IS_ENABLED(WDT)
 	initr_watchdog();
 #endif
 
diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile
index 40b2f4bc66..4b94ae988c 100644
--- a/drivers/watchdog/Makefile
+++ b/drivers/watchdog/Makefile
@@ -16,7 +16,7 @@ obj-$(CONFIG_OMAP_WATCHDOG) += omap_wdt.o
 obj-$(CONFIG_DESIGNWARE_WATCHDOG) += designware_wdt.o
 obj-$(CONFIG_TANGIER_WATCHDOG) += tangier_wdt.o
 obj-$(CONFIG_ULP_WATCHDOG) += ulp_wdog.o
-obj-$(CONFIG_WDT) += wdt-uclass.o
+obj-$(CONFIG_$(SPL_TPL_)WDT) += wdt-uclass.o
 obj-$(CONFIG_WDT_SANDBOX) += sandbox_wdt.o
 obj-$(CONFIG_WDT_ARMADA_37XX) += armada-37xx-wdt.o
 obj-$(CONFIG_WDT_ASPEED) += ast_wdt.o
diff --git a/include/asm-generic/global_data.h b/include/asm-generic/global_data.h
index 02a3ed6838..7c2220643b 100644
--- a/include/asm-generic/global_data.h
+++ b/include/asm-generic/global_data.h
@@ -137,7 +137,7 @@ typedef struct global_data {
 #if defined(CONFIG_TRANSLATION_OFFSET)
 	fdt_addr_t translation_offset;	/* optional translation offset */
 #endif
-#if defined(CONFIG_WDT)
+#if CONFIG_IS_ENABLED(WDT)
 	struct udevice *watchdog_dev;
 #endif
 } gd_t;
diff --git a/include/wdt.h b/include/wdt.h
index aa77d3e9b4..5bcff24ab3 100644
--- a/include/wdt.h
+++ b/include/wdt.h
@@ -106,7 +106,7 @@ struct wdt_ops {
 	int (*expire_now)(struct udevice *dev, ulong flags);
 };
 
-#if defined(CONFIG_WDT)
+#if CONFIG_IS_ENABLED(WDT)
 #ifndef CONFIG_WATCHDOG_TIMEOUT_MSECS
 #define CONFIG_WATCHDOG_TIMEOUT_MSECS	(60 * 1000)
 #endif
-- 
2.20.1

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

* [U-Boot] [PATCH 2/2] watchdog: imx: Add DM support
  2019-05-12 21:34 [U-Boot] [PATCH 1/2] watchdog: Split WDT from SPL_WDT Marek Vasut
@ 2019-05-12 21:34 ` Marek Vasut
  2019-05-15  5:54   ` Peng Fan
  2019-06-04 21:21   ` Lukasz Majewski
  2019-05-15  5:46 ` [U-Boot] [PATCH 1/2] watchdog: Split WDT from SPL_WDT Peng Fan
  2019-06-04 21:22 ` Lukasz Majewski
  2 siblings, 2 replies; 16+ messages in thread
From: Marek Vasut @ 2019-05-12 21:34 UTC (permalink / raw)
  To: u-boot

Add DM and DT probing support to iMX watchdog driver. This should
allow boards to move over to this driver, enable SYSRESET_WATCHDOG
to handle cpu_reset() if required.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Peng Fan <Peng.Fan@freescale.com>
Cc: Stefano Babic <sbabic@denx.de>
---
 drivers/watchdog/Kconfig        |   2 +-
 drivers/watchdog/imx_watchdog.c | 119 +++++++++++++++++++++++++++-----
 2 files changed, 104 insertions(+), 17 deletions(-)

diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index f909d40f45..b2ebe528ab 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -129,7 +129,7 @@ config XILINX_TB_WATCHDOG
 
 config IMX_WATCHDOG
 	bool "Enable Watchdog Timer support for IMX and LSCH2 of NXP"
-	select HW_WATCHDOG
+	select HW_WATCHDOG if !WDT
 	help
 	   Select this to enable the IMX and LSCH2 of Layerscape watchdog
 	   driver.
diff --git a/drivers/watchdog/imx_watchdog.c b/drivers/watchdog/imx_watchdog.c
index 14cc618074..53a3e9f5c7 100644
--- a/drivers/watchdog/imx_watchdog.c
+++ b/drivers/watchdog/imx_watchdog.c
@@ -5,7 +5,9 @@
  */
 
 #include <common.h>
+#include <dm.h>
 #include <asm/io.h>
+#include <wdt.h>
 #include <watchdog.h>
 #include <asm/arch/imx-regs.h>
 #ifdef CONFIG_FSL_LSCH2
@@ -13,20 +15,40 @@
 #endif
 #include <fsl_wdog.h>
 
-#ifdef CONFIG_IMX_WATCHDOG
-void hw_watchdog_reset(void)
+static void imx_watchdog_expire_now(struct watchdog_regs *wdog)
+{
+	clrsetbits_le16(&wdog->wcr, WCR_WT_MSK, WCR_WDE);
+
+	writew(0x5555, &wdog->wsr);
+	writew(0xaaaa, &wdog->wsr);	/* load minimum 1/2 second timeout */
+	while (1) {
+		/*
+		 * spin for .5 seconds before reset
+		 */
+	}
+}
+
+#if !defined(CONFIG_IMX_WATCHDOG) || \
+    (defined(CONFIG_IMX_WATCHDOG) && !CONFIG_IS_ENABLED(WDT))
+void __attribute__((weak)) reset_cpu(ulong addr)
 {
-#ifndef CONFIG_WATCHDOG_RESET_DISABLE
 	struct watchdog_regs *wdog = (struct watchdog_regs *)WDOG1_BASE_ADDR;
 
+	imx_watchdog_expire_now(wdog);
+}
+#endif
+
+#if defined(CONFIG_IMX_WATCHDOG)
+static void imx_watchdog_reset(struct watchdog_regs *wdog)
+{
+#ifndef CONFIG_WATCHDOG_RESET_DISABLE
 	writew(0x5555, &wdog->wsr);
 	writew(0xaaaa, &wdog->wsr);
 #endif /* CONFIG_WATCHDOG_RESET_DISABLE*/
 }
 
-void hw_watchdog_init(void)
+static void imx_watchdog_init(struct watchdog_regs *wdog)
 {
-	struct watchdog_regs *wdog = (struct watchdog_regs *)WDOG1_BASE_ADDR;
 	u16 timeout;
 
 	/*
@@ -44,21 +66,86 @@ void hw_watchdog_init(void)
 	writew(WCR_WDZST | WCR_WDBG | WCR_WDE | WCR_WDT | WCR_SRS |
 		WCR_WDA | SET_WCR_WT(timeout), &wdog->wcr);
 #endif /* CONFIG_FSL_LSCH2*/
-	hw_watchdog_reset();
+	imx_watchdog_reset(wdog);
 }
-#endif
 
-void __attribute__((weak)) reset_cpu(ulong addr)
+#if !CONFIG_IS_ENABLED(WDT)
+void hw_watchdog_reset(void)
 {
 	struct watchdog_regs *wdog = (struct watchdog_regs *)WDOG1_BASE_ADDR;
 
-	clrsetbits_le16(&wdog->wcr, WCR_WT_MSK, WCR_WDE);
+	imx_watchdog_reset(wdog);
+}
 
-	writew(0x5555, &wdog->wsr);
-	writew(0xaaaa, &wdog->wsr);	/* load minimum 1/2 second timeout */
-	while (1) {
-		/*
-		 * spin for .5 seconds before reset
-		 */
-	}
+void hw_watchdog_init(void)
+{
+	struct watchdog_regs *wdog = (struct watchdog_regs *)WDOG1_BASE_ADDR;
+
+	imx_watchdog_init(wdog);
+}
+#else
+struct imx_wdt_priv {
+	void __iomem *base;
+};
+
+static int imx_wdt_reset(struct udevice *dev)
+{
+	struct imx_wdt_priv *priv = dev_get_priv(dev);
+
+	imx_watchdog_reset(priv->base);
+
+	return 0;
+}
+
+static int imx_wdt_expire_now(struct udevice *dev, ulong flags)
+{
+	struct imx_wdt_priv *priv = dev_get_priv(dev);
+
+	imx_watchdog_expire_now(priv->base);
+	hang();
+
+	return 0;
+}
+
+static int imx_wdt_start(struct udevice *dev, u64 timeout, ulong flags)
+{
+	struct imx_wdt_priv *priv = dev_get_priv(dev);
+
+	imx_watchdog_init(priv->base);
+
+	return 0;
+}
+
+static int imx_wdt_probe(struct udevice *dev)
+{
+	struct imx_wdt_priv *priv = dev_get_priv(dev);
+
+	priv->base = dev_read_addr_ptr(dev);
+	if (!priv->base)
+		return -ENOENT;
+
+	return 0;
 }
+
+static const struct wdt_ops imx_wdt_ops = {
+	.start		= imx_wdt_start,
+	.reset		= imx_wdt_reset,
+	.expire_now	= imx_wdt_expire_now,
+};
+
+static const struct udevice_id imx_wdt_ids[] = {
+	{ .compatible = "fsl,imx21-wdt" },
+	{}
+};
+
+U_BOOT_DRIVER(imx_wdt) = {
+	.name		= "imx_wdt",
+	.id		= UCLASS_WDT,
+	.of_match	= imx_wdt_ids,
+	.probe		= imx_wdt_probe,
+	.ops		= &imx_wdt_ops,
+	.priv_auto_alloc_size = sizeof(struct imx_wdt_priv),
+	.flags		= DM_FLAG_PRE_RELOC,
+};
+#endif
+#endif
-- 
2.20.1

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

* [U-Boot] [PATCH 1/2] watchdog: Split WDT from SPL_WDT
  2019-05-12 21:34 [U-Boot] [PATCH 1/2] watchdog: Split WDT from SPL_WDT Marek Vasut
  2019-05-12 21:34 ` [U-Boot] [PATCH 2/2] watchdog: imx: Add DM support Marek Vasut
@ 2019-05-15  5:46 ` Peng Fan
  2019-06-04 21:22 ` Lukasz Majewski
  2 siblings, 0 replies; 16+ messages in thread
From: Peng Fan @ 2019-05-15  5:46 UTC (permalink / raw)
  To: u-boot

> Subject: [U-Boot] [PATCH 1/2] watchdog: Split WDT from SPL_WDT
> 
> Use CONFIG_IS_ENABLED(WDT) to permit use of WDT in SPL without DM,
> while the full U-Boot can use rich DM/DT WDT driver.
> 
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Peng Fan <Peng.Fan@freescale.com>
> Cc: Stefano Babic <sbabic@denx.de>
> ---
>  common/board_r.c                  | 2 +-
>  common/spl/spl.c                  | 2 +-
>  drivers/watchdog/Makefile         | 2 +-
>  include/asm-generic/global_data.h | 2 +-
>  include/wdt.h                     | 2 +-
>  5 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/common/board_r.c b/common/board_r.c index
> 150e8cd424..988e40abb2 100644
> --- a/common/board_r.c
> +++ b/common/board_r.c
> @@ -678,7 +678,7 @@ static init_fnc_t init_sequence_r[] = {  #ifdef
> CONFIG_DM
>  	initr_dm,
>  #endif
> -#if defined(CONFIG_WDT)
> +#if CONFIG_IS_ENABLED(WDT)
>  	initr_watchdog,
>  #endif
>  #if defined(CONFIG_ARM) || defined(CONFIG_NDS32) ||
> defined(CONFIG_RISCV) || \ diff --git a/common/spl/spl.c
> b/common/spl/spl.c index 0a6a47c202..f22f854718 100644
> --- a/common/spl/spl.c
> +++ b/common/spl/spl.c
> @@ -601,7 +601,7 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
>  	spl_board_init();
>  #endif
> 
> -#if defined(CONFIG_SPL_WATCHDOG_SUPPORT) && defined(CONFIG_WDT)
> +#if defined(CONFIG_SPL_WATCHDOG_SUPPORT) &&
> CONFIG_IS_ENABLED(WDT)
>  	initr_watchdog();
>  #endif
> 
> diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile index
> 40b2f4bc66..4b94ae988c 100644
> --- a/drivers/watchdog/Makefile
> +++ b/drivers/watchdog/Makefile
> @@ -16,7 +16,7 @@ obj-$(CONFIG_OMAP_WATCHDOG) += omap_wdt.o
>  obj-$(CONFIG_DESIGNWARE_WATCHDOG) += designware_wdt.o
>  obj-$(CONFIG_TANGIER_WATCHDOG) += tangier_wdt.o
>  obj-$(CONFIG_ULP_WATCHDOG) += ulp_wdog.o
> -obj-$(CONFIG_WDT) += wdt-uclass.o
> +obj-$(CONFIG_$(SPL_TPL_)WDT) += wdt-uclass.o
>  obj-$(CONFIG_WDT_SANDBOX) += sandbox_wdt.o
>  obj-$(CONFIG_WDT_ARMADA_37XX) += armada-37xx-wdt.o
>  obj-$(CONFIG_WDT_ASPEED) += ast_wdt.o
> diff --git a/include/asm-generic/global_data.h
> b/include/asm-generic/global_data.h
> index 02a3ed6838..7c2220643b 100644
> --- a/include/asm-generic/global_data.h
> +++ b/include/asm-generic/global_data.h
> @@ -137,7 +137,7 @@ typedef struct global_data {  #if
> defined(CONFIG_TRANSLATION_OFFSET)
>  	fdt_addr_t translation_offset;	/* optional translation offset */
>  #endif
> -#if defined(CONFIG_WDT)
> +#if CONFIG_IS_ENABLED(WDT)
>  	struct udevice *watchdog_dev;
>  #endif
>  } gd_t;
> diff --git a/include/wdt.h b/include/wdt.h index aa77d3e9b4..5bcff24ab3
> 100644
> --- a/include/wdt.h
> +++ b/include/wdt.h
> @@ -106,7 +106,7 @@ struct wdt_ops {
>  	int (*expire_now)(struct udevice *dev, ulong flags);  };
> 
> -#if defined(CONFIG_WDT)
> +#if CONFIG_IS_ENABLED(WDT)
>  #ifndef CONFIG_WATCHDOG_TIMEOUT_MSECS
>  #define CONFIG_WATCHDOG_TIMEOUT_MSECS	(60 * 1000)
>  #endif

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

> --
> 2.20.1
> 
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.d
> enx.de%2Flistinfo%2Fu-boot&amp;data=02%7C01%7CPeng.Fan%40nxp.com
> %7C80a98d74e79849cca5bd08d6d721cb41%7C686ea1d3bc2b4c6fa92cd99c
> 5c301635%7C0%7C0%7C636932937538649220&amp;sdata=JB4foxgQVteQw
> MUJrefgqegLm6N%2ByFq%2BfLknDE89nfo%3D&amp;reserved=0

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

* [U-Boot] [PATCH 2/2] watchdog: imx: Add DM support
  2019-05-12 21:34 ` [U-Boot] [PATCH 2/2] watchdog: imx: Add DM support Marek Vasut
@ 2019-05-15  5:54   ` Peng Fan
  2019-06-04 21:21   ` Lukasz Majewski
  1 sibling, 0 replies; 16+ messages in thread
From: Peng Fan @ 2019-05-15  5:54 UTC (permalink / raw)
  To: u-boot

> Subject: [U-Boot] [PATCH 2/2] watchdog: imx: Add DM support
> 
> Add DM and DT probing support to iMX watchdog driver. This should allow
> boards to move over to this driver, enable SYSRESET_WATCHDOG to handle
> cpu_reset() if required.
> 
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Peng Fan <Peng.Fan@freescale.com>
> Cc: Stefano Babic <sbabic@denx.de>
> ---
>  drivers/watchdog/Kconfig        |   2 +-
>  drivers/watchdog/imx_watchdog.c | 119
> +++++++++++++++++++++++++++-----
>  2 files changed, 104 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig index
> f909d40f45..b2ebe528ab 100644
> --- a/drivers/watchdog/Kconfig
> +++ b/drivers/watchdog/Kconfig
> @@ -129,7 +129,7 @@ config XILINX_TB_WATCHDOG
> 
>  config IMX_WATCHDOG
>  	bool "Enable Watchdog Timer support for IMX and LSCH2 of NXP"
> -	select HW_WATCHDOG
> +	select HW_WATCHDOG if !WDT
>  	help
>  	   Select this to enable the IMX and LSCH2 of Layerscape watchdog
>  	   driver.
> diff --git a/drivers/watchdog/imx_watchdog.c
> b/drivers/watchdog/imx_watchdog.c index 14cc618074..53a3e9f5c7 100644
> --- a/drivers/watchdog/imx_watchdog.c
> +++ b/drivers/watchdog/imx_watchdog.c
> @@ -5,7 +5,9 @@
>   */
> 
>  #include <common.h>
> +#include <dm.h>
>  #include <asm/io.h>
> +#include <wdt.h>
>  #include <watchdog.h>
>  #include <asm/arch/imx-regs.h>
>  #ifdef CONFIG_FSL_LSCH2
> @@ -13,20 +15,40 @@
>  #endif
>  #include <fsl_wdog.h>
> 
> -#ifdef CONFIG_IMX_WATCHDOG
> -void hw_watchdog_reset(void)
> +static void imx_watchdog_expire_now(struct watchdog_regs *wdog) {
> +	clrsetbits_le16(&wdog->wcr, WCR_WT_MSK, WCR_WDE);
> +
> +	writew(0x5555, &wdog->wsr);
> +	writew(0xaaaa, &wdog->wsr);	/* load minimum 1/2 second timeout
> */
> +	while (1) {
> +		/*
> +		 * spin for .5 seconds before reset
> +		 */
> +	}
> +}
> +
> +#if !defined(CONFIG_IMX_WATCHDOG) || \
> +    (defined(CONFIG_IMX_WATCHDOG) && !CONFIG_IS_ENABLED(WDT))
> void
> +__attribute__((weak)) reset_cpu(ulong addr)
>  {
> -#ifndef CONFIG_WATCHDOG_RESET_DISABLE
>  	struct watchdog_regs *wdog = (struct watchdog_regs
> *)WDOG1_BASE_ADDR;
> 
> +	imx_watchdog_expire_now(wdog);
> +}
> +#endif
> +
> +#if defined(CONFIG_IMX_WATCHDOG)
> +static void imx_watchdog_reset(struct watchdog_regs *wdog) { #ifndef
> +CONFIG_WATCHDOG_RESET_DISABLE
>  	writew(0x5555, &wdog->wsr);
>  	writew(0xaaaa, &wdog->wsr);
>  #endif /* CONFIG_WATCHDOG_RESET_DISABLE*/  }
> 
> -void hw_watchdog_init(void)
> +static void imx_watchdog_init(struct watchdog_regs *wdog)
>  {
> -	struct watchdog_regs *wdog = (struct watchdog_regs
> *)WDOG1_BASE_ADDR;
>  	u16 timeout;
> 
>  	/*
> @@ -44,21 +66,86 @@ void hw_watchdog_init(void)
>  	writew(WCR_WDZST | WCR_WDBG | WCR_WDE | WCR_WDT |
> WCR_SRS |
>  		WCR_WDA | SET_WCR_WT(timeout), &wdog->wcr);  #endif /*
> CONFIG_FSL_LSCH2*/
> -	hw_watchdog_reset();
> +	imx_watchdog_reset(wdog);
>  }
> -#endif
> 
> -void __attribute__((weak)) reset_cpu(ulong addr)
> +#if !CONFIG_IS_ENABLED(WDT)
> +void hw_watchdog_reset(void)
>  {
>  	struct watchdog_regs *wdog = (struct watchdog_regs
> *)WDOG1_BASE_ADDR;
> 
> -	clrsetbits_le16(&wdog->wcr, WCR_WT_MSK, WCR_WDE);
> +	imx_watchdog_reset(wdog);
> +}
> 
> -	writew(0x5555, &wdog->wsr);
> -	writew(0xaaaa, &wdog->wsr);	/* load minimum 1/2 second timeout
> */
> -	while (1) {
> -		/*
> -		 * spin for .5 seconds before reset
> -		 */
> -	}
> +void hw_watchdog_init(void)
> +{
> +	struct watchdog_regs *wdog = (struct watchdog_regs
> *)WDOG1_BASE_ADDR;
> +
> +	imx_watchdog_init(wdog);
> +}
> +#else
> +struct imx_wdt_priv {
> +	void __iomem *base;
> +};
> +
> +static int imx_wdt_reset(struct udevice *dev) {
> +	struct imx_wdt_priv *priv = dev_get_priv(dev);
> +
> +	imx_watchdog_reset(priv->base);
> +
> +	return 0;
> +}
> +
> +static int imx_wdt_expire_now(struct udevice *dev, ulong flags) {
> +	struct imx_wdt_priv *priv = dev_get_priv(dev);
> +
> +	imx_watchdog_expire_now(priv->base);
> +	hang();
> +
> +	return 0;
> +}
> +
> +static int imx_wdt_start(struct udevice *dev, u64 timeout, ulong flags)
> +{
> +	struct imx_wdt_priv *priv = dev_get_priv(dev);
> +
> +	imx_watchdog_init(priv->base);
> +
> +	return 0;
> +}
> +
> +static int imx_wdt_probe(struct udevice *dev) {
> +	struct imx_wdt_priv *priv = dev_get_priv(dev);
> +
> +	priv->base = dev_read_addr_ptr(dev);
> +	if (!priv->base)
> +		return -ENOENT;
> +
> +	return 0;
>  }
> +
> +static const struct wdt_ops imx_wdt_ops = {
> +	.start		= imx_wdt_start,
> +	.reset		= imx_wdt_reset,
> +	.expire_now	= imx_wdt_expire_now,
> +};
> +
> +static const struct udevice_id imx_wdt_ids[] = {
> +	{ .compatible = "fsl,imx21-wdt" },
> +	{}
> +};
> +
> +U_BOOT_DRIVER(imx_wdt) = {
> +	.name		= "imx_wdt",
> +	.id		= UCLASS_WDT,
> +	.of_match	= imx_wdt_ids,
> +	.probe		= imx_wdt_probe,
> +	.ops		= &imx_wdt_ops,
> +	.priv_auto_alloc_size = sizeof(struct imx_wdt_priv),
> +	.flags		= DM_FLAG_PRE_RELOC,
> +};
> +#endif
> +#endif

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

> --
> 2.20.1
> 
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.d
> enx.de%2Flistinfo%2Fu-boot&amp;data=02%7C01%7CPeng.Fan%40nxp.com
> %7C3104426ece13427d689008d6d721d25b%7C686ea1d3bc2b4c6fa92cd99c
> 5c301635%7C0%7C0%7C636932937614272001&amp;sdata=l54tJxZN03iuNL
> XrqPvykahvk2YF0vduEbDU9tPFqXo%3D&amp;reserved=0

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

* [U-Boot] [PATCH 2/2] watchdog: imx: Add DM support
  2019-05-12 21:34 ` [U-Boot] [PATCH 2/2] watchdog: imx: Add DM support Marek Vasut
  2019-05-15  5:54   ` Peng Fan
@ 2019-06-04 21:21   ` Lukasz Majewski
  1 sibling, 0 replies; 16+ messages in thread
From: Lukasz Majewski @ 2019-06-04 21:21 UTC (permalink / raw)
  To: u-boot

On Sun, 12 May 2019 23:34:53 +0200
Marek Vasut <marex@denx.de> wrote:

> Add DM and DT probing support to iMX watchdog driver. This should
> allow boards to move over to this driver, enable SYSRESET_WATCHDOG
> to handle cpu_reset() if required.
> 
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Peng Fan <Peng.Fan@freescale.com>
> Cc: Stefano Babic <sbabic@denx.de>
> ---
>  drivers/watchdog/Kconfig        |   2 +-
>  drivers/watchdog/imx_watchdog.c | 119
> +++++++++++++++++++++++++++----- 2 files changed, 104 insertions(+),
> 17 deletions(-)
> 
> diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
> index f909d40f45..b2ebe528ab 100644
> --- a/drivers/watchdog/Kconfig
> +++ b/drivers/watchdog/Kconfig
> @@ -129,7 +129,7 @@ config XILINX_TB_WATCHDOG
>  
>  config IMX_WATCHDOG
>  	bool "Enable Watchdog Timer support for IMX and LSCH2 of NXP"
> -	select HW_WATCHDOG
> +	select HW_WATCHDOG if !WDT
>  	help
>  	   Select this to enable the IMX and LSCH2 of Layerscape
> watchdog driver.
> diff --git a/drivers/watchdog/imx_watchdog.c
> b/drivers/watchdog/imx_watchdog.c index 14cc618074..53a3e9f5c7 100644
> --- a/drivers/watchdog/imx_watchdog.c
> +++ b/drivers/watchdog/imx_watchdog.c
> @@ -5,7 +5,9 @@
>   */
>  
>  #include <common.h>
> +#include <dm.h>
>  #include <asm/io.h>
> +#include <wdt.h>
>  #include <watchdog.h>
>  #include <asm/arch/imx-regs.h>
>  #ifdef CONFIG_FSL_LSCH2
> @@ -13,20 +15,40 @@
>  #endif
>  #include <fsl_wdog.h>
>  
> -#ifdef CONFIG_IMX_WATCHDOG
> -void hw_watchdog_reset(void)
> +static void imx_watchdog_expire_now(struct watchdog_regs *wdog)
> +{
> +	clrsetbits_le16(&wdog->wcr, WCR_WT_MSK, WCR_WDE);
> +
> +	writew(0x5555, &wdog->wsr);
> +	writew(0xaaaa, &wdog->wsr);	/* load minimum 1/2
> second timeout */
> +	while (1) {
> +		/*
> +		 * spin for .5 seconds before reset
> +		 */
> +	}
> +}
> +
> +#if !defined(CONFIG_IMX_WATCHDOG) || \
> +    (defined(CONFIG_IMX_WATCHDOG) && !CONFIG_IS_ENABLED(WDT))
> +void __attribute__((weak)) reset_cpu(ulong addr)
>  {
> -#ifndef CONFIG_WATCHDOG_RESET_DISABLE
>  	struct watchdog_regs *wdog = (struct watchdog_regs
> *)WDOG1_BASE_ADDR; 
> +	imx_watchdog_expire_now(wdog);
> +}
> +#endif
> +
> +#if defined(CONFIG_IMX_WATCHDOG)
> +static void imx_watchdog_reset(struct watchdog_regs *wdog)
> +{
> +#ifndef CONFIG_WATCHDOG_RESET_DISABLE
>  	writew(0x5555, &wdog->wsr);
>  	writew(0xaaaa, &wdog->wsr);
>  #endif /* CONFIG_WATCHDOG_RESET_DISABLE*/
>  }
>  
> -void hw_watchdog_init(void)
> +static void imx_watchdog_init(struct watchdog_regs *wdog)
>  {
> -	struct watchdog_regs *wdog = (struct watchdog_regs
> *)WDOG1_BASE_ADDR; u16 timeout;
>  
>  	/*
> @@ -44,21 +66,86 @@ void hw_watchdog_init(void)
>  	writew(WCR_WDZST | WCR_WDBG | WCR_WDE | WCR_WDT | WCR_SRS |
>  		WCR_WDA | SET_WCR_WT(timeout), &wdog->wcr);
>  #endif /* CONFIG_FSL_LSCH2*/
> -	hw_watchdog_reset();
> +	imx_watchdog_reset(wdog);
>  }
> -#endif
>  
> -void __attribute__((weak)) reset_cpu(ulong addr)
> +#if !CONFIG_IS_ENABLED(WDT)
> +void hw_watchdog_reset(void)
>  {
>  	struct watchdog_regs *wdog = (struct watchdog_regs
> *)WDOG1_BASE_ADDR; 
> -	clrsetbits_le16(&wdog->wcr, WCR_WT_MSK, WCR_WDE);
> +	imx_watchdog_reset(wdog);
> +}
>  
> -	writew(0x5555, &wdog->wsr);
> -	writew(0xaaaa, &wdog->wsr);	/* load minimum 1/2
> second timeout */
> -	while (1) {
> -		/*
> -		 * spin for .5 seconds before reset
> -		 */
> -	}
> +void hw_watchdog_init(void)
> +{
> +	struct watchdog_regs *wdog = (struct watchdog_regs
> *)WDOG1_BASE_ADDR; +
> +	imx_watchdog_init(wdog);
> +}
> +#else
> +struct imx_wdt_priv {
> +	void __iomem *base;
> +};
> +
> +static int imx_wdt_reset(struct udevice *dev)
> +{
> +	struct imx_wdt_priv *priv = dev_get_priv(dev);
> +
> +	imx_watchdog_reset(priv->base);
> +
> +	return 0;
> +}
> +
> +static int imx_wdt_expire_now(struct udevice *dev, ulong flags)
> +{
> +	struct imx_wdt_priv *priv = dev_get_priv(dev);
> +
> +	imx_watchdog_expire_now(priv->base);
> +	hang();
> +
> +	return 0;
> +}
> +
> +static int imx_wdt_start(struct udevice *dev, u64 timeout, ulong
> flags) +{
> +	struct imx_wdt_priv *priv = dev_get_priv(dev);
> +
> +	imx_watchdog_init(priv->base);
> +
> +	return 0;
> +}
> +
> +static int imx_wdt_probe(struct udevice *dev)
> +{
> +	struct imx_wdt_priv *priv = dev_get_priv(dev);
> +
> +	priv->base = dev_read_addr_ptr(dev);
> +	if (!priv->base)
> +		return -ENOENT;
> +
> +	return 0;
>  }
> +
> +static const struct wdt_ops imx_wdt_ops = {
> +	.start		= imx_wdt_start,
> +	.reset		= imx_wdt_reset,
> +	.expire_now	= imx_wdt_expire_now,
> +};
> +
> +static const struct udevice_id imx_wdt_ids[] = {
> +	{ .compatible = "fsl,imx21-wdt" },
> +	{}
> +};
> +
> +U_BOOT_DRIVER(imx_wdt) = {
> +	.name		= "imx_wdt",
> +	.id		= UCLASS_WDT,
> +	.of_match	= imx_wdt_ids,
> +	.probe		= imx_wdt_probe,
> +	.ops		= &imx_wdt_ops,
> +	.priv_auto_alloc_size = sizeof(struct imx_wdt_priv),
> +	.flags		= DM_FLAG_PRE_RELOC,
> +};
> +#endif
> +#endif

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

Test-HW: i.MX6Q - display5

For the record - one needs to add following code to dts file:

+	wdt-reboot {
+		compatible = "wdt-reboot";
+		wdt = <&wdog1>;
+	};


@ _defconfig:

+CONFIG_SYSRESET=y
+CONFIG_SYSRESET_WATCHDOG=y


@ include/<board_config>.h

+#if defined(CONFIG_SPL_BUILD)
+#undef CONFIG_WDT
+#undef CONFIG_WATCHDOG
+#define CONFIG_HW_WATCHDOG
+#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/20190604/3e8c1bbf/attachment.sig>

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

* [U-Boot] [PATCH 1/2] watchdog: Split WDT from SPL_WDT
  2019-05-12 21:34 [U-Boot] [PATCH 1/2] watchdog: Split WDT from SPL_WDT Marek Vasut
  2019-05-12 21:34 ` [U-Boot] [PATCH 2/2] watchdog: imx: Add DM support Marek Vasut
  2019-05-15  5:46 ` [U-Boot] [PATCH 1/2] watchdog: Split WDT from SPL_WDT Peng Fan
@ 2019-06-04 21:22 ` Lukasz Majewski
  2019-06-05 16:24   ` Lukasz Majewski
  2 siblings, 1 reply; 16+ messages in thread
From: Lukasz Majewski @ 2019-06-04 21:22 UTC (permalink / raw)
  To: u-boot

On Sun, 12 May 2019 23:34:52 +0200
Marek Vasut <marex@denx.de> wrote:

> Use CONFIG_IS_ENABLED(WDT) to permit use of WDT in SPL without DM,
> while the full U-Boot can use rich DM/DT WDT driver.
> 
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Peng Fan <Peng.Fan@freescale.com>
> Cc: Stefano Babic <sbabic@denx.de>
> ---
>  common/board_r.c                  | 2 +-
>  common/spl/spl.c                  | 2 +-
>  drivers/watchdog/Makefile         | 2 +-
>  include/asm-generic/global_data.h | 2 +-
>  include/wdt.h                     | 2 +-
>  5 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/common/board_r.c b/common/board_r.c
> index 150e8cd424..988e40abb2 100644
> --- a/common/board_r.c
> +++ b/common/board_r.c
> @@ -678,7 +678,7 @@ static init_fnc_t init_sequence_r[] = {
>  #ifdef CONFIG_DM
>  	initr_dm,
>  #endif
> -#if defined(CONFIG_WDT)
> +#if CONFIG_IS_ENABLED(WDT)
>  	initr_watchdog,
>  #endif
>  #if defined(CONFIG_ARM) || defined(CONFIG_NDS32) ||
> defined(CONFIG_RISCV) || \ diff --git a/common/spl/spl.c
> b/common/spl/spl.c index 0a6a47c202..f22f854718 100644
> --- a/common/spl/spl.c
> +++ b/common/spl/spl.c
> @@ -601,7 +601,7 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
>  	spl_board_init();
>  #endif
>  
> -#if defined(CONFIG_SPL_WATCHDOG_SUPPORT) && defined(CONFIG_WDT)
> +#if defined(CONFIG_SPL_WATCHDOG_SUPPORT) && CONFIG_IS_ENABLED(WDT)
>  	initr_watchdog();
>  #endif
>  
> diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile
> index 40b2f4bc66..4b94ae988c 100644
> --- a/drivers/watchdog/Makefile
> +++ b/drivers/watchdog/Makefile
> @@ -16,7 +16,7 @@ obj-$(CONFIG_OMAP_WATCHDOG) += omap_wdt.o
>  obj-$(CONFIG_DESIGNWARE_WATCHDOG) += designware_wdt.o
>  obj-$(CONFIG_TANGIER_WATCHDOG) += tangier_wdt.o
>  obj-$(CONFIG_ULP_WATCHDOG) += ulp_wdog.o
> -obj-$(CONFIG_WDT) += wdt-uclass.o
> +obj-$(CONFIG_$(SPL_TPL_)WDT) += wdt-uclass.o
>  obj-$(CONFIG_WDT_SANDBOX) += sandbox_wdt.o
>  obj-$(CONFIG_WDT_ARMADA_37XX) += armada-37xx-wdt.o
>  obj-$(CONFIG_WDT_ASPEED) += ast_wdt.o
> diff --git a/include/asm-generic/global_data.h
> b/include/asm-generic/global_data.h index 02a3ed6838..7c2220643b
> 100644 --- a/include/asm-generic/global_data.h
> +++ b/include/asm-generic/global_data.h
> @@ -137,7 +137,7 @@ typedef struct global_data {
>  #if defined(CONFIG_TRANSLATION_OFFSET)
>  	fdt_addr_t translation_offset;	/* optional
> translation offset */ #endif
> -#if defined(CONFIG_WDT)
> +#if CONFIG_IS_ENABLED(WDT)
>  	struct udevice *watchdog_dev;
>  #endif
>  } gd_t;
> diff --git a/include/wdt.h b/include/wdt.h
> index aa77d3e9b4..5bcff24ab3 100644
> --- a/include/wdt.h
> +++ b/include/wdt.h
> @@ -106,7 +106,7 @@ struct wdt_ops {
>  	int (*expire_now)(struct udevice *dev, ulong flags);
>  };
>  
> -#if defined(CONFIG_WDT)
> +#if CONFIG_IS_ENABLED(WDT)
>  #ifndef CONFIG_WATCHDOG_TIMEOUT_MSECS
>  #define CONFIG_WATCHDOG_TIMEOUT_MSECS	(60 * 1000)
>  #endif

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

Test HW: display5 i.MX6Q device 

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/20190604/1b014a93/attachment.sig>

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

* [U-Boot] [PATCH 1/2] watchdog: Split WDT from SPL_WDT
  2019-06-04 21:22 ` Lukasz Majewski
@ 2019-06-05 16:24   ` Lukasz Majewski
  2019-06-06  7:09     ` Lukasz Majewski
  0 siblings, 1 reply; 16+ messages in thread
From: Lukasz Majewski @ 2019-06-05 16:24 UTC (permalink / raw)
  To: u-boot

Hi Marek,

> On Sun, 12 May 2019 23:34:52 +0200
> Marek Vasut <marex@denx.de> wrote:
> 
> > Use CONFIG_IS_ENABLED(WDT) to permit use of WDT in SPL without DM,
> > while the full U-Boot can use rich DM/DT WDT driver.
> > 
> > Signed-off-by: Marek Vasut <marex@denx.de>
> > Cc: Peng Fan <Peng.Fan@freescale.com>
> > Cc: Stefano Babic <sbabic@denx.de>
> > ---
> >  common/board_r.c                  | 2 +-
> >  common/spl/spl.c                  | 2 +-
> >  drivers/watchdog/Makefile         | 2 +-
> >  include/asm-generic/global_data.h | 2 +-
> >  include/wdt.h                     | 2 +-
> >  5 files changed, 5 insertions(+), 5 deletions(-)
> > 
> > diff --git a/common/board_r.c b/common/board_r.c
> > index 150e8cd424..988e40abb2 100644
> > --- a/common/board_r.c
> > +++ b/common/board_r.c
> > @@ -678,7 +678,7 @@ static init_fnc_t init_sequence_r[] = {
> >  #ifdef CONFIG_DM
> >  	initr_dm,
> >  #endif
> > -#if defined(CONFIG_WDT)
> > +#if CONFIG_IS_ENABLED(WDT)
> >  	initr_watchdog,
> >  #endif
> >  #if defined(CONFIG_ARM) || defined(CONFIG_NDS32) ||
> > defined(CONFIG_RISCV) || \ diff --git a/common/spl/spl.c
> > b/common/spl/spl.c index 0a6a47c202..f22f854718 100644
> > --- a/common/spl/spl.c
> > +++ b/common/spl/spl.c
> > @@ -601,7 +601,7 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
> >  	spl_board_init();
> >  #endif
> >  
> > -#if defined(CONFIG_SPL_WATCHDOG_SUPPORT) && defined(CONFIG_WDT)
> > +#if defined(CONFIG_SPL_WATCHDOG_SUPPORT) && CONFIG_IS_ENABLED(WDT)
> >  	initr_watchdog();
> >  #endif
> >  
> > diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile
> > index 40b2f4bc66..4b94ae988c 100644
> > --- a/drivers/watchdog/Makefile
> > +++ b/drivers/watchdog/Makefile
> > @@ -16,7 +16,7 @@ obj-$(CONFIG_OMAP_WATCHDOG) += omap_wdt.o
> >  obj-$(CONFIG_DESIGNWARE_WATCHDOG) += designware_wdt.o
> >  obj-$(CONFIG_TANGIER_WATCHDOG) += tangier_wdt.o
> >  obj-$(CONFIG_ULP_WATCHDOG) += ulp_wdog.o
> > -obj-$(CONFIG_WDT) += wdt-uclass.o
> > +obj-$(CONFIG_$(SPL_TPL_)WDT) += wdt-uclass.o
> >  obj-$(CONFIG_WDT_SANDBOX) += sandbox_wdt.o
> >  obj-$(CONFIG_WDT_ARMADA_37XX) += armada-37xx-wdt.o
> >  obj-$(CONFIG_WDT_ASPEED) += ast_wdt.o
> > diff --git a/include/asm-generic/global_data.h
> > b/include/asm-generic/global_data.h index 02a3ed6838..7c2220643b
> > 100644 --- a/include/asm-generic/global_data.h
> > +++ b/include/asm-generic/global_data.h
> > @@ -137,7 +137,7 @@ typedef struct global_data {
> >  #if defined(CONFIG_TRANSLATION_OFFSET)
> >  	fdt_addr_t translation_offset;	/* optional
> > translation offset */ #endif
> > -#if defined(CONFIG_WDT)
> > +#if CONFIG_IS_ENABLED(WDT)
> >  	struct udevice *watchdog_dev;
> >  #endif
> >  } gd_t;
> > diff --git a/include/wdt.h b/include/wdt.h
> > index aa77d3e9b4..5bcff24ab3 100644
> > --- a/include/wdt.h
> > +++ b/include/wdt.h
> > @@ -106,7 +106,7 @@ struct wdt_ops {
> >  	int (*expire_now)(struct udevice *dev, ulong flags);
> >  };
> >  
> > -#if defined(CONFIG_WDT)
> > +#if CONFIG_IS_ENABLED(WDT)
> >  #ifndef CONFIG_WATCHDOG_TIMEOUT_MSECS
> >  #define CONFIG_WATCHDOG_TIMEOUT_MSECS	(60 * 1000)
> >  #endif  
> 
> Tested-by: Lukasz Majewski <lukma@denx.de>
> 
> Test HW: display5 i.MX6Q device 
> 

Unfortunately this series causes build break when run on Travis-CI for
some Atmel/Microchip:

arm:  +   picosam9g45
+lib/built-in.o: In function `udelay':
+lib/time.c:167: undefined reference to `watchdog_reset'
+drivers/built-in.o: In function `atmel_serial_getc':
+drivers/serial/atmel_usart.c:103: undefined reference to
       `watchdog_reset' +make[2]: *** [spl/u-boot-spl] Error 1
+make[1]: *** [spl/u-boot-spl] Error 2
+make: *** [sub-make] Error 2
   14   38    1 /53     axm
boards.cfg is up to date. Nothing to do.
Summary of current source for 53 boards (2 threads, 1 job per thread)


u-boot master SHA1: e1a2ed7180adeefb6164239a18249dca5701319d



> 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,

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/20190605/718acc7f/attachment.sig>

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

* [U-Boot] [PATCH 1/2] watchdog: Split WDT from SPL_WDT
  2019-06-05 16:24   ` Lukasz Majewski
@ 2019-06-06  7:09     ` Lukasz Majewski
  2019-06-06  7:26       ` Marek Vasut
  0 siblings, 1 reply; 16+ messages in thread
From: Lukasz Majewski @ 2019-06-06  7:09 UTC (permalink / raw)
  To: u-boot

On Wed, 5 Jun 2019 18:24:11 +0200
Lukasz Majewski <lukma@denx.de> wrote:

> Hi Marek,
> 
> > On Sun, 12 May 2019 23:34:52 +0200
> > Marek Vasut <marex@denx.de> wrote:
> >   
> > > Use CONFIG_IS_ENABLED(WDT) to permit use of WDT in SPL without DM,
> > > while the full U-Boot can use rich DM/DT WDT driver.
> > > 
> > > Signed-off-by: Marek Vasut <marex@denx.de>
> > > Cc: Peng Fan <Peng.Fan@freescale.com>
> > > Cc: Stefano Babic <sbabic@denx.de>
> > > ---
> > >  common/board_r.c                  | 2 +-
> > >  common/spl/spl.c                  | 2 +-
> > >  drivers/watchdog/Makefile         | 2 +-
> > >  include/asm-generic/global_data.h | 2 +-
> > >  include/wdt.h                     | 2 +-
> > >  5 files changed, 5 insertions(+), 5 deletions(-)
> > > 
> > > diff --git a/common/board_r.c b/common/board_r.c
> > > index 150e8cd424..988e40abb2 100644
> > > --- a/common/board_r.c
> > > +++ b/common/board_r.c
> > > @@ -678,7 +678,7 @@ static init_fnc_t init_sequence_r[] = {
> > >  #ifdef CONFIG_DM
> > >  	initr_dm,
> > >  #endif
> > > -#if defined(CONFIG_WDT)
> > > +#if CONFIG_IS_ENABLED(WDT)
> > >  	initr_watchdog,
> > >  #endif
> > >  #if defined(CONFIG_ARM) || defined(CONFIG_NDS32) ||
> > > defined(CONFIG_RISCV) || \ diff --git a/common/spl/spl.c
> > > b/common/spl/spl.c index 0a6a47c202..f22f854718 100644
> > > --- a/common/spl/spl.c
> > > +++ b/common/spl/spl.c
> > > @@ -601,7 +601,7 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
> > >  	spl_board_init();
> > >  #endif
> > >  
> > > -#if defined(CONFIG_SPL_WATCHDOG_SUPPORT) && defined(CONFIG_WDT)
> > > +#if defined(CONFIG_SPL_WATCHDOG_SUPPORT) &&
> > > CONFIG_IS_ENABLED(WDT) initr_watchdog();
> > >  #endif
> > >  
> > > diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile
> > > index 40b2f4bc66..4b94ae988c 100644
> > > --- a/drivers/watchdog/Makefile
> > > +++ b/drivers/watchdog/Makefile
> > > @@ -16,7 +16,7 @@ obj-$(CONFIG_OMAP_WATCHDOG) += omap_wdt.o
> > >  obj-$(CONFIG_DESIGNWARE_WATCHDOG) += designware_wdt.o
> > >  obj-$(CONFIG_TANGIER_WATCHDOG) += tangier_wdt.o
> > >  obj-$(CONFIG_ULP_WATCHDOG) += ulp_wdog.o
> > > -obj-$(CONFIG_WDT) += wdt-uclass.o
> > > +obj-$(CONFIG_$(SPL_TPL_)WDT) += wdt-uclass.o
> > >  obj-$(CONFIG_WDT_SANDBOX) += sandbox_wdt.o
> > >  obj-$(CONFIG_WDT_ARMADA_37XX) += armada-37xx-wdt.o
> > >  obj-$(CONFIG_WDT_ASPEED) += ast_wdt.o
> > > diff --git a/include/asm-generic/global_data.h
> > > b/include/asm-generic/global_data.h index 02a3ed6838..7c2220643b
> > > 100644 --- a/include/asm-generic/global_data.h
> > > +++ b/include/asm-generic/global_data.h
> > > @@ -137,7 +137,7 @@ typedef struct global_data {
> > >  #if defined(CONFIG_TRANSLATION_OFFSET)
> > >  	fdt_addr_t translation_offset;	/* optional
> > > translation offset */ #endif
> > > -#if defined(CONFIG_WDT)
> > > +#if CONFIG_IS_ENABLED(WDT)
> > >  	struct udevice *watchdog_dev;
> > >  #endif
> > >  } gd_t;
> > > diff --git a/include/wdt.h b/include/wdt.h
> > > index aa77d3e9b4..5bcff24ab3 100644
> > > --- a/include/wdt.h
> > > +++ b/include/wdt.h
> > > @@ -106,7 +106,7 @@ struct wdt_ops {
> > >  	int (*expire_now)(struct udevice *dev, ulong flags);
> > >  };
> > >  
> > > -#if defined(CONFIG_WDT)
> > > +#if CONFIG_IS_ENABLED(WDT)
> > >  #ifndef CONFIG_WATCHDOG_TIMEOUT_MSECS
> > >  #define CONFIG_WATCHDOG_TIMEOUT_MSECS	(60 * 1000)
> > >  #endif    
> > 
> > Tested-by: Lukasz Majewski <lukma@denx.de>
> > 
> > Test HW: display5 i.MX6Q device 
> >   
> 
> Unfortunately this series causes build break when run on Travis-CI for
> some Atmel/Microchip:
> 
> arm:  +   picosam9g45
> +lib/built-in.o: In function `udelay':
> +lib/time.c:167: undefined reference to `watchdog_reset'
> +drivers/built-in.o: In function `atmel_serial_getc':
> +drivers/serial/atmel_usart.c:103: undefined reference to
>        `watchdog_reset' +make[2]: *** [spl/u-boot-spl] Error 1
> +make[1]: *** [spl/u-boot-spl] Error 2
> +make: *** [sub-make] Error 2
>    14   38    1 /53     axm
> boards.cfg is up to date. Nothing to do.
> Summary of current source for 53 boards (2 threads, 1 job per thread)
> 
> 
> u-boot master SHA1: e1a2ed7180adeefb6164239a18249dca5701319d
> 

The fix is under Travis-CI testing:
https://travis-ci.org/lmajewski/u-boot-dfu/builds/542118403

I will post patches when it finishes.

> 
> 
> > 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,
> 
> 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,

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/20190606/7484218c/attachment.sig>

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

* [U-Boot] [PATCH 1/2] watchdog: Split WDT from SPL_WDT
  2019-06-06  7:09     ` Lukasz Majewski
@ 2019-06-06  7:26       ` Marek Vasut
  2019-06-06  8:00         ` Lukasz Majewski
  0 siblings, 1 reply; 16+ messages in thread
From: Marek Vasut @ 2019-06-06  7:26 UTC (permalink / raw)
  To: u-boot

On 6/6/19 9:09 AM, Lukasz Majewski wrote:
> On Wed, 5 Jun 2019 18:24:11 +0200
> Lukasz Majewski <lukma@denx.de> wrote:
> 
>> Hi Marek,
>>
>>> On Sun, 12 May 2019 23:34:52 +0200
>>> Marek Vasut <marex@denx.de> wrote:
>>>   
>>>> Use CONFIG_IS_ENABLED(WDT) to permit use of WDT in SPL without DM,
>>>> while the full U-Boot can use rich DM/DT WDT driver.
>>>>
>>>> Signed-off-by: Marek Vasut <marex@denx.de>
>>>> Cc: Peng Fan <Peng.Fan@freescale.com>
>>>> Cc: Stefano Babic <sbabic@denx.de>
>>>> ---
>>>>  common/board_r.c                  | 2 +-
>>>>  common/spl/spl.c                  | 2 +-
>>>>  drivers/watchdog/Makefile         | 2 +-
>>>>  include/asm-generic/global_data.h | 2 +-
>>>>  include/wdt.h                     | 2 +-
>>>>  5 files changed, 5 insertions(+), 5 deletions(-)
>>>>
>>>> diff --git a/common/board_r.c b/common/board_r.c
>>>> index 150e8cd424..988e40abb2 100644
>>>> --- a/common/board_r.c
>>>> +++ b/common/board_r.c
>>>> @@ -678,7 +678,7 @@ static init_fnc_t init_sequence_r[] = {
>>>>  #ifdef CONFIG_DM
>>>>  	initr_dm,
>>>>  #endif
>>>> -#if defined(CONFIG_WDT)
>>>> +#if CONFIG_IS_ENABLED(WDT)
>>>>  	initr_watchdog,
>>>>  #endif
>>>>  #if defined(CONFIG_ARM) || defined(CONFIG_NDS32) ||
>>>> defined(CONFIG_RISCV) || \ diff --git a/common/spl/spl.c
>>>> b/common/spl/spl.c index 0a6a47c202..f22f854718 100644
>>>> --- a/common/spl/spl.c
>>>> +++ b/common/spl/spl.c
>>>> @@ -601,7 +601,7 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
>>>>  	spl_board_init();
>>>>  #endif
>>>>  
>>>> -#if defined(CONFIG_SPL_WATCHDOG_SUPPORT) && defined(CONFIG_WDT)
>>>> +#if defined(CONFIG_SPL_WATCHDOG_SUPPORT) &&
>>>> CONFIG_IS_ENABLED(WDT) initr_watchdog();
>>>>  #endif
>>>>  
>>>> diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile
>>>> index 40b2f4bc66..4b94ae988c 100644
>>>> --- a/drivers/watchdog/Makefile
>>>> +++ b/drivers/watchdog/Makefile
>>>> @@ -16,7 +16,7 @@ obj-$(CONFIG_OMAP_WATCHDOG) += omap_wdt.o
>>>>  obj-$(CONFIG_DESIGNWARE_WATCHDOG) += designware_wdt.o
>>>>  obj-$(CONFIG_TANGIER_WATCHDOG) += tangier_wdt.o
>>>>  obj-$(CONFIG_ULP_WATCHDOG) += ulp_wdog.o
>>>> -obj-$(CONFIG_WDT) += wdt-uclass.o
>>>> +obj-$(CONFIG_$(SPL_TPL_)WDT) += wdt-uclass.o
>>>>  obj-$(CONFIG_WDT_SANDBOX) += sandbox_wdt.o
>>>>  obj-$(CONFIG_WDT_ARMADA_37XX) += armada-37xx-wdt.o
>>>>  obj-$(CONFIG_WDT_ASPEED) += ast_wdt.o
>>>> diff --git a/include/asm-generic/global_data.h
>>>> b/include/asm-generic/global_data.h index 02a3ed6838..7c2220643b
>>>> 100644 --- a/include/asm-generic/global_data.h
>>>> +++ b/include/asm-generic/global_data.h
>>>> @@ -137,7 +137,7 @@ typedef struct global_data {
>>>>  #if defined(CONFIG_TRANSLATION_OFFSET)
>>>>  	fdt_addr_t translation_offset;	/* optional
>>>> translation offset */ #endif
>>>> -#if defined(CONFIG_WDT)
>>>> +#if CONFIG_IS_ENABLED(WDT)
>>>>  	struct udevice *watchdog_dev;
>>>>  #endif
>>>>  } gd_t;
>>>> diff --git a/include/wdt.h b/include/wdt.h
>>>> index aa77d3e9b4..5bcff24ab3 100644
>>>> --- a/include/wdt.h
>>>> +++ b/include/wdt.h
>>>> @@ -106,7 +106,7 @@ struct wdt_ops {
>>>>  	int (*expire_now)(struct udevice *dev, ulong flags);
>>>>  };
>>>>  
>>>> -#if defined(CONFIG_WDT)
>>>> +#if CONFIG_IS_ENABLED(WDT)
>>>>  #ifndef CONFIG_WATCHDOG_TIMEOUT_MSECS
>>>>  #define CONFIG_WATCHDOG_TIMEOUT_MSECS	(60 * 1000)
>>>>  #endif    
>>>
>>> Tested-by: Lukasz Majewski <lukma@denx.de>
>>>
>>> Test HW: display5 i.MX6Q device 
>>>   
>>
>> Unfortunately this series causes build break when run on Travis-CI for
>> some Atmel/Microchip:
>>
>> arm:  +   picosam9g45
>> +lib/built-in.o: In function `udelay':
>> +lib/time.c:167: undefined reference to `watchdog_reset'
>> +drivers/built-in.o: In function `atmel_serial_getc':
>> +drivers/serial/atmel_usart.c:103: undefined reference to
>>        `watchdog_reset' +make[2]: *** [spl/u-boot-spl] Error 1
>> +make[1]: *** [spl/u-boot-spl] Error 2
>> +make: *** [sub-make] Error 2
>>    14   38    1 /53     axm
>> boards.cfg is up to date. Nothing to do.
>> Summary of current source for 53 boards (2 threads, 1 job per thread)
>>
>>
>> u-boot master SHA1: e1a2ed7180adeefb6164239a18249dca5701319d
>>
> 
> The fix is under Travis-CI testing:
> https://travis-ci.org/lmajewski/u-boot-dfu/builds/542118403
> 
> I will post patches when it finishes.

What's the fix ?

I am testing this since yesterday:
https://github.com/marex/u-boot-imx/commit/c8e1bff9f332a35859e1f4d44e114c3aa639b390

-- 
Best regards,
Marek Vasut

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

* [U-Boot] [PATCH 1/2] watchdog: Split WDT from SPL_WDT
  2019-06-06  7:26       ` Marek Vasut
@ 2019-06-06  8:00         ` Lukasz Majewski
  2019-06-06  8:08           ` Marek Vasut
  0 siblings, 1 reply; 16+ messages in thread
From: Lukasz Majewski @ 2019-06-06  8:00 UTC (permalink / raw)
  To: u-boot

On Thu, 6 Jun 2019 09:26:04 +0200
Marek Vasut <marex@denx.de> wrote:

> On 6/6/19 9:09 AM, Lukasz Majewski wrote:
> > On Wed, 5 Jun 2019 18:24:11 +0200
> > Lukasz Majewski <lukma@denx.de> wrote:
> >   
> >> Hi Marek,
> >>  
> >>> On Sun, 12 May 2019 23:34:52 +0200
> >>> Marek Vasut <marex@denx.de> wrote:
> >>>     
> >>>> Use CONFIG_IS_ENABLED(WDT) to permit use of WDT in SPL without
> >>>> DM, while the full U-Boot can use rich DM/DT WDT driver.
> >>>>
> >>>> Signed-off-by: Marek Vasut <marex@denx.de>
> >>>> Cc: Peng Fan <Peng.Fan@freescale.com>
> >>>> Cc: Stefano Babic <sbabic@denx.de>
> >>>> ---
> >>>>  common/board_r.c                  | 2 +-
> >>>>  common/spl/spl.c                  | 2 +-
> >>>>  drivers/watchdog/Makefile         | 2 +-
> >>>>  include/asm-generic/global_data.h | 2 +-
> >>>>  include/wdt.h                     | 2 +-
> >>>>  5 files changed, 5 insertions(+), 5 deletions(-)
> >>>>
> >>>> diff --git a/common/board_r.c b/common/board_r.c
> >>>> index 150e8cd424..988e40abb2 100644
> >>>> --- a/common/board_r.c
> >>>> +++ b/common/board_r.c
> >>>> @@ -678,7 +678,7 @@ static init_fnc_t init_sequence_r[] = {
> >>>>  #ifdef CONFIG_DM
> >>>>  	initr_dm,
> >>>>  #endif
> >>>> -#if defined(CONFIG_WDT)
> >>>> +#if CONFIG_IS_ENABLED(WDT)
> >>>>  	initr_watchdog,
> >>>>  #endif
> >>>>  #if defined(CONFIG_ARM) || defined(CONFIG_NDS32) ||
> >>>> defined(CONFIG_RISCV) || \ diff --git a/common/spl/spl.c
> >>>> b/common/spl/spl.c index 0a6a47c202..f22f854718 100644
> >>>> --- a/common/spl/spl.c
> >>>> +++ b/common/spl/spl.c
> >>>> @@ -601,7 +601,7 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
> >>>>  	spl_board_init();
> >>>>  #endif
> >>>>  
> >>>> -#if defined(CONFIG_SPL_WATCHDOG_SUPPORT) && defined(CONFIG_WDT)
> >>>> +#if defined(CONFIG_SPL_WATCHDOG_SUPPORT) &&
> >>>> CONFIG_IS_ENABLED(WDT) initr_watchdog();
> >>>>  #endif
> >>>>  
> >>>> diff --git a/drivers/watchdog/Makefile
> >>>> b/drivers/watchdog/Makefile index 40b2f4bc66..4b94ae988c 100644
> >>>> --- a/drivers/watchdog/Makefile
> >>>> +++ b/drivers/watchdog/Makefile
> >>>> @@ -16,7 +16,7 @@ obj-$(CONFIG_OMAP_WATCHDOG) += omap_wdt.o
> >>>>  obj-$(CONFIG_DESIGNWARE_WATCHDOG) += designware_wdt.o
> >>>>  obj-$(CONFIG_TANGIER_WATCHDOG) += tangier_wdt.o
> >>>>  obj-$(CONFIG_ULP_WATCHDOG) += ulp_wdog.o
> >>>> -obj-$(CONFIG_WDT) += wdt-uclass.o
> >>>> +obj-$(CONFIG_$(SPL_TPL_)WDT) += wdt-uclass.o
> >>>>  obj-$(CONFIG_WDT_SANDBOX) += sandbox_wdt.o
> >>>>  obj-$(CONFIG_WDT_ARMADA_37XX) += armada-37xx-wdt.o
> >>>>  obj-$(CONFIG_WDT_ASPEED) += ast_wdt.o
> >>>> diff --git a/include/asm-generic/global_data.h
> >>>> b/include/asm-generic/global_data.h index 02a3ed6838..7c2220643b
> >>>> 100644 --- a/include/asm-generic/global_data.h
> >>>> +++ b/include/asm-generic/global_data.h
> >>>> @@ -137,7 +137,7 @@ typedef struct global_data {
> >>>>  #if defined(CONFIG_TRANSLATION_OFFSET)
> >>>>  	fdt_addr_t translation_offset;	/* optional
> >>>> translation offset */ #endif
> >>>> -#if defined(CONFIG_WDT)
> >>>> +#if CONFIG_IS_ENABLED(WDT)
> >>>>  	struct udevice *watchdog_dev;
> >>>>  #endif
> >>>>  } gd_t;
> >>>> diff --git a/include/wdt.h b/include/wdt.h
> >>>> index aa77d3e9b4..5bcff24ab3 100644
> >>>> --- a/include/wdt.h
> >>>> +++ b/include/wdt.h
> >>>> @@ -106,7 +106,7 @@ struct wdt_ops {
> >>>>  	int (*expire_now)(struct udevice *dev, ulong flags);
> >>>>  };
> >>>>  
> >>>> -#if defined(CONFIG_WDT)
> >>>> +#if CONFIG_IS_ENABLED(WDT)
> >>>>  #ifndef CONFIG_WATCHDOG_TIMEOUT_MSECS
> >>>>  #define CONFIG_WATCHDOG_TIMEOUT_MSECS	(60 * 1000)
> >>>>  #endif      
> >>>
> >>> Tested-by: Lukasz Majewski <lukma@denx.de>
> >>>
> >>> Test HW: display5 i.MX6Q device 
> >>>     
> >>
> >> Unfortunately this series causes build break when run on Travis-CI
> >> for some Atmel/Microchip:
> >>
> >> arm:  +   picosam9g45
> >> +lib/built-in.o: In function `udelay':
> >> +lib/time.c:167: undefined reference to `watchdog_reset'
> >> +drivers/built-in.o: In function `atmel_serial_getc':
> >> +drivers/serial/atmel_usart.c:103: undefined reference to
> >>        `watchdog_reset' +make[2]: *** [spl/u-boot-spl] Error 1
> >> +make[1]: *** [spl/u-boot-spl] Error 2
> >> +make: *** [sub-make] Error 2
> >>    14   38    1 /53     axm
> >> boards.cfg is up to date. Nothing to do.
> >> Summary of current source for 53 boards (2 threads, 1 job per
> >> thread)
> >>
> >>
> >> u-boot master SHA1: e1a2ed7180adeefb6164239a18249dca5701319d
> >>  
> > 
> > The fix is under Travis-CI testing:
> > https://travis-ci.org/lmajewski/u-boot-dfu/builds/542118403
> > 
> > I will post patches when it finishes.  
> 
> What's the fix ?
> 

https://github.com/lmajewski/u-boot-dfu/commit/98c95790fee02296023a2906811092a1868f622d

I've explicitly enabled SPL_WDT=y for affected boards.

> I am testing this since yesterday:
> https://github.com/marex/u-boot-imx/commit/c8e1bff9f332a35859e1f4d44e114c3aa639b390
> 

However, if your version is building without any issues, it looks
better than mine (IMHO imply is more elegant).


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/20190606/bf9ec55c/attachment.sig>

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

* [U-Boot] [PATCH 1/2] watchdog: Split WDT from SPL_WDT
  2019-06-06  8:00         ` Lukasz Majewski
@ 2019-06-06  8:08           ` Marek Vasut
  2019-06-06  8:16             ` Lukasz Majewski
  0 siblings, 1 reply; 16+ messages in thread
From: Marek Vasut @ 2019-06-06  8:08 UTC (permalink / raw)
  To: u-boot

On 6/6/19 10:00 AM, Lukasz Majewski wrote:
> On Thu, 6 Jun 2019 09:26:04 +0200
> Marek Vasut <marex@denx.de> wrote:
> 
>> On 6/6/19 9:09 AM, Lukasz Majewski wrote:
>>> On Wed, 5 Jun 2019 18:24:11 +0200
>>> Lukasz Majewski <lukma@denx.de> wrote:
>>>   
>>>> Hi Marek,
>>>>  
>>>>> On Sun, 12 May 2019 23:34:52 +0200
>>>>> Marek Vasut <marex@denx.de> wrote:
>>>>>     
>>>>>> Use CONFIG_IS_ENABLED(WDT) to permit use of WDT in SPL without
>>>>>> DM, while the full U-Boot can use rich DM/DT WDT driver.
>>>>>>
>>>>>> Signed-off-by: Marek Vasut <marex@denx.de>
>>>>>> Cc: Peng Fan <Peng.Fan@freescale.com>
>>>>>> Cc: Stefano Babic <sbabic@denx.de>
>>>>>> ---
>>>>>>  common/board_r.c                  | 2 +-
>>>>>>  common/spl/spl.c                  | 2 +-
>>>>>>  drivers/watchdog/Makefile         | 2 +-
>>>>>>  include/asm-generic/global_data.h | 2 +-
>>>>>>  include/wdt.h                     | 2 +-
>>>>>>  5 files changed, 5 insertions(+), 5 deletions(-)
>>>>>>
>>>>>> diff --git a/common/board_r.c b/common/board_r.c
>>>>>> index 150e8cd424..988e40abb2 100644
>>>>>> --- a/common/board_r.c
>>>>>> +++ b/common/board_r.c
>>>>>> @@ -678,7 +678,7 @@ static init_fnc_t init_sequence_r[] = {
>>>>>>  #ifdef CONFIG_DM
>>>>>>  	initr_dm,
>>>>>>  #endif
>>>>>> -#if defined(CONFIG_WDT)
>>>>>> +#if CONFIG_IS_ENABLED(WDT)
>>>>>>  	initr_watchdog,
>>>>>>  #endif
>>>>>>  #if defined(CONFIG_ARM) || defined(CONFIG_NDS32) ||
>>>>>> defined(CONFIG_RISCV) || \ diff --git a/common/spl/spl.c
>>>>>> b/common/spl/spl.c index 0a6a47c202..f22f854718 100644
>>>>>> --- a/common/spl/spl.c
>>>>>> +++ b/common/spl/spl.c
>>>>>> @@ -601,7 +601,7 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
>>>>>>  	spl_board_init();
>>>>>>  #endif
>>>>>>  
>>>>>> -#if defined(CONFIG_SPL_WATCHDOG_SUPPORT) && defined(CONFIG_WDT)
>>>>>> +#if defined(CONFIG_SPL_WATCHDOG_SUPPORT) &&
>>>>>> CONFIG_IS_ENABLED(WDT) initr_watchdog();
>>>>>>  #endif
>>>>>>  
>>>>>> diff --git a/drivers/watchdog/Makefile
>>>>>> b/drivers/watchdog/Makefile index 40b2f4bc66..4b94ae988c 100644
>>>>>> --- a/drivers/watchdog/Makefile
>>>>>> +++ b/drivers/watchdog/Makefile
>>>>>> @@ -16,7 +16,7 @@ obj-$(CONFIG_OMAP_WATCHDOG) += omap_wdt.o
>>>>>>  obj-$(CONFIG_DESIGNWARE_WATCHDOG) += designware_wdt.o
>>>>>>  obj-$(CONFIG_TANGIER_WATCHDOG) += tangier_wdt.o
>>>>>>  obj-$(CONFIG_ULP_WATCHDOG) += ulp_wdog.o
>>>>>> -obj-$(CONFIG_WDT) += wdt-uclass.o
>>>>>> +obj-$(CONFIG_$(SPL_TPL_)WDT) += wdt-uclass.o
>>>>>>  obj-$(CONFIG_WDT_SANDBOX) += sandbox_wdt.o
>>>>>>  obj-$(CONFIG_WDT_ARMADA_37XX) += armada-37xx-wdt.o
>>>>>>  obj-$(CONFIG_WDT_ASPEED) += ast_wdt.o
>>>>>> diff --git a/include/asm-generic/global_data.h
>>>>>> b/include/asm-generic/global_data.h index 02a3ed6838..7c2220643b
>>>>>> 100644 --- a/include/asm-generic/global_data.h
>>>>>> +++ b/include/asm-generic/global_data.h
>>>>>> @@ -137,7 +137,7 @@ typedef struct global_data {
>>>>>>  #if defined(CONFIG_TRANSLATION_OFFSET)
>>>>>>  	fdt_addr_t translation_offset;	/* optional
>>>>>> translation offset */ #endif
>>>>>> -#if defined(CONFIG_WDT)
>>>>>> +#if CONFIG_IS_ENABLED(WDT)
>>>>>>  	struct udevice *watchdog_dev;
>>>>>>  #endif
>>>>>>  } gd_t;
>>>>>> diff --git a/include/wdt.h b/include/wdt.h
>>>>>> index aa77d3e9b4..5bcff24ab3 100644
>>>>>> --- a/include/wdt.h
>>>>>> +++ b/include/wdt.h
>>>>>> @@ -106,7 +106,7 @@ struct wdt_ops {
>>>>>>  	int (*expire_now)(struct udevice *dev, ulong flags);
>>>>>>  };
>>>>>>  
>>>>>> -#if defined(CONFIG_WDT)
>>>>>> +#if CONFIG_IS_ENABLED(WDT)
>>>>>>  #ifndef CONFIG_WATCHDOG_TIMEOUT_MSECS
>>>>>>  #define CONFIG_WATCHDOG_TIMEOUT_MSECS	(60 * 1000)
>>>>>>  #endif      
>>>>>
>>>>> Tested-by: Lukasz Majewski <lukma@denx.de>
>>>>>
>>>>> Test HW: display5 i.MX6Q device 
>>>>>     
>>>>
>>>> Unfortunately this series causes build break when run on Travis-CI
>>>> for some Atmel/Microchip:
>>>>
>>>> arm:  +   picosam9g45
>>>> +lib/built-in.o: In function `udelay':
>>>> +lib/time.c:167: undefined reference to `watchdog_reset'
>>>> +drivers/built-in.o: In function `atmel_serial_getc':
>>>> +drivers/serial/atmel_usart.c:103: undefined reference to
>>>>        `watchdog_reset' +make[2]: *** [spl/u-boot-spl] Error 1
>>>> +make[1]: *** [spl/u-boot-spl] Error 2
>>>> +make: *** [sub-make] Error 2
>>>>    14   38    1 /53     axm
>>>> boards.cfg is up to date. Nothing to do.
>>>> Summary of current source for 53 boards (2 threads, 1 job per
>>>> thread)
>>>>
>>>>
>>>> u-boot master SHA1: e1a2ed7180adeefb6164239a18249dca5701319d
>>>>  
>>>
>>> The fix is under Travis-CI testing:
>>> https://travis-ci.org/lmajewski/u-boot-dfu/builds/542118403
>>>
>>> I will post patches when it finishes.  
>>
>> What's the fix ?
>>
> 
> https://github.com/lmajewski/u-boot-dfu/commit/98c95790fee02296023a2906811092a1868f622d
> 
> I've explicitly enabled SPL_WDT=y for affected boards.

I don't think that's the right approach, it should be possible to do
without explicit board config modification. I'm building another take,
since some boards still failed to build.

-- 
Best regards,
Marek Vasut

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

* [U-Boot] [PATCH 1/2] watchdog: Split WDT from SPL_WDT
  2019-06-06  8:08           ` Marek Vasut
@ 2019-06-06  8:16             ` Lukasz Majewski
  2019-06-06  8:23               ` Marek Vasut
  0 siblings, 1 reply; 16+ messages in thread
From: Lukasz Majewski @ 2019-06-06  8:16 UTC (permalink / raw)
  To: u-boot

On Thu, 6 Jun 2019 10:08:04 +0200
Marek Vasut <marex@denx.de> wrote:

> On 6/6/19 10:00 AM, Lukasz Majewski wrote:
> > On Thu, 6 Jun 2019 09:26:04 +0200
> > Marek Vasut <marex@denx.de> wrote:
> >   
> >> On 6/6/19 9:09 AM, Lukasz Majewski wrote:  
> >>> On Wed, 5 Jun 2019 18:24:11 +0200
> >>> Lukasz Majewski <lukma@denx.de> wrote:
> >>>     
> >>>> Hi Marek,
> >>>>    
> >>>>> On Sun, 12 May 2019 23:34:52 +0200
> >>>>> Marek Vasut <marex@denx.de> wrote:
> >>>>>       
> >>>>>> Use CONFIG_IS_ENABLED(WDT) to permit use of WDT in SPL without
> >>>>>> DM, while the full U-Boot can use rich DM/DT WDT driver.
> >>>>>>
> >>>>>> Signed-off-by: Marek Vasut <marex@denx.de>
> >>>>>> Cc: Peng Fan <Peng.Fan@freescale.com>
> >>>>>> Cc: Stefano Babic <sbabic@denx.de>
> >>>>>> ---
> >>>>>>  common/board_r.c                  | 2 +-
> >>>>>>  common/spl/spl.c                  | 2 +-
> >>>>>>  drivers/watchdog/Makefile         | 2 +-
> >>>>>>  include/asm-generic/global_data.h | 2 +-
> >>>>>>  include/wdt.h                     | 2 +-
> >>>>>>  5 files changed, 5 insertions(+), 5 deletions(-)
> >>>>>>
> >>>>>> diff --git a/common/board_r.c b/common/board_r.c
> >>>>>> index 150e8cd424..988e40abb2 100644
> >>>>>> --- a/common/board_r.c
> >>>>>> +++ b/common/board_r.c
> >>>>>> @@ -678,7 +678,7 @@ static init_fnc_t init_sequence_r[] = {
> >>>>>>  #ifdef CONFIG_DM
> >>>>>>  	initr_dm,
> >>>>>>  #endif
> >>>>>> -#if defined(CONFIG_WDT)
> >>>>>> +#if CONFIG_IS_ENABLED(WDT)
> >>>>>>  	initr_watchdog,
> >>>>>>  #endif
> >>>>>>  #if defined(CONFIG_ARM) || defined(CONFIG_NDS32) ||
> >>>>>> defined(CONFIG_RISCV) || \ diff --git a/common/spl/spl.c
> >>>>>> b/common/spl/spl.c index 0a6a47c202..f22f854718 100644
> >>>>>> --- a/common/spl/spl.c
> >>>>>> +++ b/common/spl/spl.c
> >>>>>> @@ -601,7 +601,7 @@ void board_init_r(gd_t *dummy1, ulong
> >>>>>> dummy2) spl_board_init();
> >>>>>>  #endif
> >>>>>>  
> >>>>>> -#if defined(CONFIG_SPL_WATCHDOG_SUPPORT) &&
> >>>>>> defined(CONFIG_WDT) +#if defined(CONFIG_SPL_WATCHDOG_SUPPORT)
> >>>>>> && CONFIG_IS_ENABLED(WDT) initr_watchdog();
> >>>>>>  #endif
> >>>>>>  
> >>>>>> diff --git a/drivers/watchdog/Makefile
> >>>>>> b/drivers/watchdog/Makefile index 40b2f4bc66..4b94ae988c 100644
> >>>>>> --- a/drivers/watchdog/Makefile
> >>>>>> +++ b/drivers/watchdog/Makefile
> >>>>>> @@ -16,7 +16,7 @@ obj-$(CONFIG_OMAP_WATCHDOG) += omap_wdt.o
> >>>>>>  obj-$(CONFIG_DESIGNWARE_WATCHDOG) += designware_wdt.o
> >>>>>>  obj-$(CONFIG_TANGIER_WATCHDOG) += tangier_wdt.o
> >>>>>>  obj-$(CONFIG_ULP_WATCHDOG) += ulp_wdog.o
> >>>>>> -obj-$(CONFIG_WDT) += wdt-uclass.o
> >>>>>> +obj-$(CONFIG_$(SPL_TPL_)WDT) += wdt-uclass.o
> >>>>>>  obj-$(CONFIG_WDT_SANDBOX) += sandbox_wdt.o
> >>>>>>  obj-$(CONFIG_WDT_ARMADA_37XX) += armada-37xx-wdt.o
> >>>>>>  obj-$(CONFIG_WDT_ASPEED) += ast_wdt.o
> >>>>>> diff --git a/include/asm-generic/global_data.h
> >>>>>> b/include/asm-generic/global_data.h index
> >>>>>> 02a3ed6838..7c2220643b 100644 ---
> >>>>>> a/include/asm-generic/global_data.h +++
> >>>>>> b/include/asm-generic/global_data.h @@ -137,7 +137,7 @@
> >>>>>> typedef struct global_data { #if
> >>>>>> defined(CONFIG_TRANSLATION_OFFSET) fdt_addr_t
> >>>>>> translation_offset;	/* optional translation offset */
> >>>>>> #endif -#if defined(CONFIG_WDT)
> >>>>>> +#if CONFIG_IS_ENABLED(WDT)
> >>>>>>  	struct udevice *watchdog_dev;
> >>>>>>  #endif
> >>>>>>  } gd_t;
> >>>>>> diff --git a/include/wdt.h b/include/wdt.h
> >>>>>> index aa77d3e9b4..5bcff24ab3 100644
> >>>>>> --- a/include/wdt.h
> >>>>>> +++ b/include/wdt.h
> >>>>>> @@ -106,7 +106,7 @@ struct wdt_ops {
> >>>>>>  	int (*expire_now)(struct udevice *dev, ulong flags);
> >>>>>>  };
> >>>>>>  
> >>>>>> -#if defined(CONFIG_WDT)
> >>>>>> +#if CONFIG_IS_ENABLED(WDT)
> >>>>>>  #ifndef CONFIG_WATCHDOG_TIMEOUT_MSECS
> >>>>>>  #define CONFIG_WATCHDOG_TIMEOUT_MSECS	(60 * 1000)
> >>>>>>  #endif        
> >>>>>
> >>>>> Tested-by: Lukasz Majewski <lukma@denx.de>
> >>>>>
> >>>>> Test HW: display5 i.MX6Q device 
> >>>>>       
> >>>>
> >>>> Unfortunately this series causes build break when run on
> >>>> Travis-CI for some Atmel/Microchip:
> >>>>
> >>>> arm:  +   picosam9g45
> >>>> +lib/built-in.o: In function `udelay':
> >>>> +lib/time.c:167: undefined reference to `watchdog_reset'
> >>>> +drivers/built-in.o: In function `atmel_serial_getc':
> >>>> +drivers/serial/atmel_usart.c:103: undefined reference to
> >>>>        `watchdog_reset' +make[2]: *** [spl/u-boot-spl] Error 1
> >>>> +make[1]: *** [spl/u-boot-spl] Error 2
> >>>> +make: *** [sub-make] Error 2
> >>>>    14   38    1 /53     axm
> >>>> boards.cfg is up to date. Nothing to do.
> >>>> Summary of current source for 53 boards (2 threads, 1 job per
> >>>> thread)
> >>>>
> >>>>
> >>>> u-boot master SHA1: e1a2ed7180adeefb6164239a18249dca5701319d
> >>>>    
> >>>
> >>> The fix is under Travis-CI testing:
> >>> https://travis-ci.org/lmajewski/u-boot-dfu/builds/542118403
> >>>
> >>> I will post patches when it finishes.    
> >>
> >> What's the fix ?
> >>  
> > 
> > https://github.com/lmajewski/u-boot-dfu/commit/98c95790fee02296023a2906811092a1868f622d
> > 
> > I've explicitly enabled SPL_WDT=y for affected boards.  
> 
> I don't think that's the right approach, it should be possible to do
> without explicit board config modification. I'm building another take,
> since some boards still failed to build.
> 

Just to be clear - if it works with imply - I'm for this solution.

However, if it breaks, then we may need to find another solution (as
for example shown here:
https://github.com/lmajewski/u-boot-dfu/commit/98c95790fee02296023a2906811092a1868f622d
 - the number of affected boards is small - just 3 of them).

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/20190606/a0903f6e/attachment.sig>

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

* [U-Boot] [PATCH 1/2] watchdog: Split WDT from SPL_WDT
  2019-06-06  8:16             ` Lukasz Majewski
@ 2019-06-06  8:23               ` Marek Vasut
  2019-06-06  8:28                 ` Lukasz Majewski
  2019-06-08  6:23                 ` Lukasz Majewski
  0 siblings, 2 replies; 16+ messages in thread
From: Marek Vasut @ 2019-06-06  8:23 UTC (permalink / raw)
  To: u-boot

On 6/6/19 10:16 AM, Lukasz Majewski wrote:
> On Thu, 6 Jun 2019 10:08:04 +0200
> Marek Vasut <marex@denx.de> wrote:
> 
>> On 6/6/19 10:00 AM, Lukasz Majewski wrote:
>>> On Thu, 6 Jun 2019 09:26:04 +0200
>>> Marek Vasut <marex@denx.de> wrote:
>>>   
>>>> On 6/6/19 9:09 AM, Lukasz Majewski wrote:  
>>>>> On Wed, 5 Jun 2019 18:24:11 +0200
>>>>> Lukasz Majewski <lukma@denx.de> wrote:
>>>>>     
>>>>>> Hi Marek,
>>>>>>    
>>>>>>> On Sun, 12 May 2019 23:34:52 +0200
>>>>>>> Marek Vasut <marex@denx.de> wrote:
>>>>>>>       
>>>>>>>> Use CONFIG_IS_ENABLED(WDT) to permit use of WDT in SPL without
>>>>>>>> DM, while the full U-Boot can use rich DM/DT WDT driver.
>>>>>>>>
>>>>>>>> Signed-off-by: Marek Vasut <marex@denx.de>
>>>>>>>> Cc: Peng Fan <Peng.Fan@freescale.com>
>>>>>>>> Cc: Stefano Babic <sbabic@denx.de>
>>>>>>>> ---
>>>>>>>>  common/board_r.c                  | 2 +-
>>>>>>>>  common/spl/spl.c                  | 2 +-
>>>>>>>>  drivers/watchdog/Makefile         | 2 +-
>>>>>>>>  include/asm-generic/global_data.h | 2 +-
>>>>>>>>  include/wdt.h                     | 2 +-
>>>>>>>>  5 files changed, 5 insertions(+), 5 deletions(-)
>>>>>>>>
>>>>>>>> diff --git a/common/board_r.c b/common/board_r.c
>>>>>>>> index 150e8cd424..988e40abb2 100644
>>>>>>>> --- a/common/board_r.c
>>>>>>>> +++ b/common/board_r.c
>>>>>>>> @@ -678,7 +678,7 @@ static init_fnc_t init_sequence_r[] = {
>>>>>>>>  #ifdef CONFIG_DM
>>>>>>>>  	initr_dm,
>>>>>>>>  #endif
>>>>>>>> -#if defined(CONFIG_WDT)
>>>>>>>> +#if CONFIG_IS_ENABLED(WDT)
>>>>>>>>  	initr_watchdog,
>>>>>>>>  #endif
>>>>>>>>  #if defined(CONFIG_ARM) || defined(CONFIG_NDS32) ||
>>>>>>>> defined(CONFIG_RISCV) || \ diff --git a/common/spl/spl.c
>>>>>>>> b/common/spl/spl.c index 0a6a47c202..f22f854718 100644
>>>>>>>> --- a/common/spl/spl.c
>>>>>>>> +++ b/common/spl/spl.c
>>>>>>>> @@ -601,7 +601,7 @@ void board_init_r(gd_t *dummy1, ulong
>>>>>>>> dummy2) spl_board_init();
>>>>>>>>  #endif
>>>>>>>>  
>>>>>>>> -#if defined(CONFIG_SPL_WATCHDOG_SUPPORT) &&
>>>>>>>> defined(CONFIG_WDT) +#if defined(CONFIG_SPL_WATCHDOG_SUPPORT)
>>>>>>>> && CONFIG_IS_ENABLED(WDT) initr_watchdog();
>>>>>>>>  #endif
>>>>>>>>  
>>>>>>>> diff --git a/drivers/watchdog/Makefile
>>>>>>>> b/drivers/watchdog/Makefile index 40b2f4bc66..4b94ae988c 100644
>>>>>>>> --- a/drivers/watchdog/Makefile
>>>>>>>> +++ b/drivers/watchdog/Makefile
>>>>>>>> @@ -16,7 +16,7 @@ obj-$(CONFIG_OMAP_WATCHDOG) += omap_wdt.o
>>>>>>>>  obj-$(CONFIG_DESIGNWARE_WATCHDOG) += designware_wdt.o
>>>>>>>>  obj-$(CONFIG_TANGIER_WATCHDOG) += tangier_wdt.o
>>>>>>>>  obj-$(CONFIG_ULP_WATCHDOG) += ulp_wdog.o
>>>>>>>> -obj-$(CONFIG_WDT) += wdt-uclass.o
>>>>>>>> +obj-$(CONFIG_$(SPL_TPL_)WDT) += wdt-uclass.o
>>>>>>>>  obj-$(CONFIG_WDT_SANDBOX) += sandbox_wdt.o
>>>>>>>>  obj-$(CONFIG_WDT_ARMADA_37XX) += armada-37xx-wdt.o
>>>>>>>>  obj-$(CONFIG_WDT_ASPEED) += ast_wdt.o
>>>>>>>> diff --git a/include/asm-generic/global_data.h
>>>>>>>> b/include/asm-generic/global_data.h index
>>>>>>>> 02a3ed6838..7c2220643b 100644 ---
>>>>>>>> a/include/asm-generic/global_data.h +++
>>>>>>>> b/include/asm-generic/global_data.h @@ -137,7 +137,7 @@
>>>>>>>> typedef struct global_data { #if
>>>>>>>> defined(CONFIG_TRANSLATION_OFFSET) fdt_addr_t
>>>>>>>> translation_offset;	/* optional translation offset */
>>>>>>>> #endif -#if defined(CONFIG_WDT)
>>>>>>>> +#if CONFIG_IS_ENABLED(WDT)
>>>>>>>>  	struct udevice *watchdog_dev;
>>>>>>>>  #endif
>>>>>>>>  } gd_t;
>>>>>>>> diff --git a/include/wdt.h b/include/wdt.h
>>>>>>>> index aa77d3e9b4..5bcff24ab3 100644
>>>>>>>> --- a/include/wdt.h
>>>>>>>> +++ b/include/wdt.h
>>>>>>>> @@ -106,7 +106,7 @@ struct wdt_ops {
>>>>>>>>  	int (*expire_now)(struct udevice *dev, ulong flags);
>>>>>>>>  };
>>>>>>>>  
>>>>>>>> -#if defined(CONFIG_WDT)
>>>>>>>> +#if CONFIG_IS_ENABLED(WDT)
>>>>>>>>  #ifndef CONFIG_WATCHDOG_TIMEOUT_MSECS
>>>>>>>>  #define CONFIG_WATCHDOG_TIMEOUT_MSECS	(60 * 1000)
>>>>>>>>  #endif        
>>>>>>>
>>>>>>> Tested-by: Lukasz Majewski <lukma@denx.de>
>>>>>>>
>>>>>>> Test HW: display5 i.MX6Q device 
>>>>>>>       
>>>>>>
>>>>>> Unfortunately this series causes build break when run on
>>>>>> Travis-CI for some Atmel/Microchip:
>>>>>>
>>>>>> arm:  +   picosam9g45
>>>>>> +lib/built-in.o: In function `udelay':
>>>>>> +lib/time.c:167: undefined reference to `watchdog_reset'
>>>>>> +drivers/built-in.o: In function `atmel_serial_getc':
>>>>>> +drivers/serial/atmel_usart.c:103: undefined reference to
>>>>>>        `watchdog_reset' +make[2]: *** [spl/u-boot-spl] Error 1
>>>>>> +make[1]: *** [spl/u-boot-spl] Error 2
>>>>>> +make: *** [sub-make] Error 2
>>>>>>    14   38    1 /53     axm
>>>>>> boards.cfg is up to date. Nothing to do.
>>>>>> Summary of current source for 53 boards (2 threads, 1 job per
>>>>>> thread)
>>>>>>
>>>>>>
>>>>>> u-boot master SHA1: e1a2ed7180adeefb6164239a18249dca5701319d
>>>>>>    
>>>>>
>>>>> The fix is under Travis-CI testing:
>>>>> https://travis-ci.org/lmajewski/u-boot-dfu/builds/542118403
>>>>>
>>>>> I will post patches when it finishes.    
>>>>
>>>> What's the fix ?
>>>>  
>>>
>>> https://github.com/lmajewski/u-boot-dfu/commit/98c95790fee02296023a2906811092a1868f622d
>>>
>>> I've explicitly enabled SPL_WDT=y for affected boards.  
>>
>> I don't think that's the right approach, it should be possible to do
>> without explicit board config modification. I'm building another take,
>> since some boards still failed to build.
>>
> 
> Just to be clear - if it works with imply - I'm for this solution.
> 
> However, if it breaks, then we may need to find another solution (as
> for example shown here:
> https://github.com/lmajewski/u-boot-dfu/commit/98c95790fee02296023a2906811092a1868f622d
>  - the number of affected boards is small - just 3 of them).

I would very much prefer to make it work without defconfig
modifications. This has to be possible, since it worked before the split.

-- 
Best regards,
Marek Vasut

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

* [U-Boot] [PATCH 1/2] watchdog: Split WDT from SPL_WDT
  2019-06-06  8:23               ` Marek Vasut
@ 2019-06-06  8:28                 ` Lukasz Majewski
  2019-06-08  6:23                 ` Lukasz Majewski
  1 sibling, 0 replies; 16+ messages in thread
From: Lukasz Majewski @ 2019-06-06  8:28 UTC (permalink / raw)
  To: u-boot

On Thu, 6 Jun 2019 10:23:06 +0200
Marek Vasut <marex@denx.de> wrote:

> On 6/6/19 10:16 AM, Lukasz Majewski wrote:
> > On Thu, 6 Jun 2019 10:08:04 +0200
> > Marek Vasut <marex@denx.de> wrote:
> >   
> >> On 6/6/19 10:00 AM, Lukasz Majewski wrote:  
> >>> On Thu, 6 Jun 2019 09:26:04 +0200
> >>> Marek Vasut <marex@denx.de> wrote:
> >>>     
> >>>> On 6/6/19 9:09 AM, Lukasz Majewski wrote:    
> >>>>> On Wed, 5 Jun 2019 18:24:11 +0200
> >>>>> Lukasz Majewski <lukma@denx.de> wrote:
> >>>>>       
> >>>>>> Hi Marek,
> >>>>>>      
> >>>>>>> On Sun, 12 May 2019 23:34:52 +0200
> >>>>>>> Marek Vasut <marex@denx.de> wrote:
> >>>>>>>         
> >>>>>>>> Use CONFIG_IS_ENABLED(WDT) to permit use of WDT in SPL
> >>>>>>>> without DM, while the full U-Boot can use rich DM/DT WDT
> >>>>>>>> driver.
> >>>>>>>>
> >>>>>>>> Signed-off-by: Marek Vasut <marex@denx.de>
> >>>>>>>> Cc: Peng Fan <Peng.Fan@freescale.com>
> >>>>>>>> Cc: Stefano Babic <sbabic@denx.de>
> >>>>>>>> ---
> >>>>>>>>  common/board_r.c                  | 2 +-
> >>>>>>>>  common/spl/spl.c                  | 2 +-
> >>>>>>>>  drivers/watchdog/Makefile         | 2 +-
> >>>>>>>>  include/asm-generic/global_data.h | 2 +-
> >>>>>>>>  include/wdt.h                     | 2 +-
> >>>>>>>>  5 files changed, 5 insertions(+), 5 deletions(-)
> >>>>>>>>
> >>>>>>>> diff --git a/common/board_r.c b/common/board_r.c
> >>>>>>>> index 150e8cd424..988e40abb2 100644
> >>>>>>>> --- a/common/board_r.c
> >>>>>>>> +++ b/common/board_r.c
> >>>>>>>> @@ -678,7 +678,7 @@ static init_fnc_t init_sequence_r[] = {
> >>>>>>>>  #ifdef CONFIG_DM
> >>>>>>>>  	initr_dm,
> >>>>>>>>  #endif
> >>>>>>>> -#if defined(CONFIG_WDT)
> >>>>>>>> +#if CONFIG_IS_ENABLED(WDT)
> >>>>>>>>  	initr_watchdog,
> >>>>>>>>  #endif
> >>>>>>>>  #if defined(CONFIG_ARM) || defined(CONFIG_NDS32) ||
> >>>>>>>> defined(CONFIG_RISCV) || \ diff --git a/common/spl/spl.c
> >>>>>>>> b/common/spl/spl.c index 0a6a47c202..f22f854718 100644
> >>>>>>>> --- a/common/spl/spl.c
> >>>>>>>> +++ b/common/spl/spl.c
> >>>>>>>> @@ -601,7 +601,7 @@ void board_init_r(gd_t *dummy1, ulong
> >>>>>>>> dummy2) spl_board_init();
> >>>>>>>>  #endif
> >>>>>>>>  
> >>>>>>>> -#if defined(CONFIG_SPL_WATCHDOG_SUPPORT) &&
> >>>>>>>> defined(CONFIG_WDT) +#if defined(CONFIG_SPL_WATCHDOG_SUPPORT)
> >>>>>>>> && CONFIG_IS_ENABLED(WDT) initr_watchdog();
> >>>>>>>>  #endif
> >>>>>>>>  
> >>>>>>>> diff --git a/drivers/watchdog/Makefile
> >>>>>>>> b/drivers/watchdog/Makefile index 40b2f4bc66..4b94ae988c
> >>>>>>>> 100644 --- a/drivers/watchdog/Makefile
> >>>>>>>> +++ b/drivers/watchdog/Makefile
> >>>>>>>> @@ -16,7 +16,7 @@ obj-$(CONFIG_OMAP_WATCHDOG) += omap_wdt.o
> >>>>>>>>  obj-$(CONFIG_DESIGNWARE_WATCHDOG) += designware_wdt.o
> >>>>>>>>  obj-$(CONFIG_TANGIER_WATCHDOG) += tangier_wdt.o
> >>>>>>>>  obj-$(CONFIG_ULP_WATCHDOG) += ulp_wdog.o
> >>>>>>>> -obj-$(CONFIG_WDT) += wdt-uclass.o
> >>>>>>>> +obj-$(CONFIG_$(SPL_TPL_)WDT) += wdt-uclass.o
> >>>>>>>>  obj-$(CONFIG_WDT_SANDBOX) += sandbox_wdt.o
> >>>>>>>>  obj-$(CONFIG_WDT_ARMADA_37XX) += armada-37xx-wdt.o
> >>>>>>>>  obj-$(CONFIG_WDT_ASPEED) += ast_wdt.o
> >>>>>>>> diff --git a/include/asm-generic/global_data.h
> >>>>>>>> b/include/asm-generic/global_data.h index
> >>>>>>>> 02a3ed6838..7c2220643b 100644 ---
> >>>>>>>> a/include/asm-generic/global_data.h +++
> >>>>>>>> b/include/asm-generic/global_data.h @@ -137,7 +137,7 @@
> >>>>>>>> typedef struct global_data { #if
> >>>>>>>> defined(CONFIG_TRANSLATION_OFFSET) fdt_addr_t
> >>>>>>>> translation_offset;	/* optional translation offset */
> >>>>>>>> #endif -#if defined(CONFIG_WDT)
> >>>>>>>> +#if CONFIG_IS_ENABLED(WDT)
> >>>>>>>>  	struct udevice *watchdog_dev;
> >>>>>>>>  #endif
> >>>>>>>>  } gd_t;
> >>>>>>>> diff --git a/include/wdt.h b/include/wdt.h
> >>>>>>>> index aa77d3e9b4..5bcff24ab3 100644
> >>>>>>>> --- a/include/wdt.h
> >>>>>>>> +++ b/include/wdt.h
> >>>>>>>> @@ -106,7 +106,7 @@ struct wdt_ops {
> >>>>>>>>  	int (*expire_now)(struct udevice *dev, ulong flags);
> >>>>>>>>  };
> >>>>>>>>  
> >>>>>>>> -#if defined(CONFIG_WDT)
> >>>>>>>> +#if CONFIG_IS_ENABLED(WDT)
> >>>>>>>>  #ifndef CONFIG_WATCHDOG_TIMEOUT_MSECS
> >>>>>>>>  #define CONFIG_WATCHDOG_TIMEOUT_MSECS	(60 * 1000)
> >>>>>>>>  #endif          
> >>>>>>>
> >>>>>>> Tested-by: Lukasz Majewski <lukma@denx.de>
> >>>>>>>
> >>>>>>> Test HW: display5 i.MX6Q device 
> >>>>>>>         
> >>>>>>
> >>>>>> Unfortunately this series causes build break when run on
> >>>>>> Travis-CI for some Atmel/Microchip:
> >>>>>>
> >>>>>> arm:  +   picosam9g45
> >>>>>> +lib/built-in.o: In function `udelay':
> >>>>>> +lib/time.c:167: undefined reference to `watchdog_reset'
> >>>>>> +drivers/built-in.o: In function `atmel_serial_getc':
> >>>>>> +drivers/serial/atmel_usart.c:103: undefined reference to
> >>>>>>        `watchdog_reset' +make[2]: *** [spl/u-boot-spl] Error 1
> >>>>>> +make[1]: *** [spl/u-boot-spl] Error 2
> >>>>>> +make: *** [sub-make] Error 2
> >>>>>>    14   38    1 /53     axm
> >>>>>> boards.cfg is up to date. Nothing to do.
> >>>>>> Summary of current source for 53 boards (2 threads, 1 job per
> >>>>>> thread)
> >>>>>>
> >>>>>>
> >>>>>> u-boot master SHA1: e1a2ed7180adeefb6164239a18249dca5701319d
> >>>>>>      
> >>>>>
> >>>>> The fix is under Travis-CI testing:
> >>>>> https://travis-ci.org/lmajewski/u-boot-dfu/builds/542118403
> >>>>>
> >>>>> I will post patches when it finishes.      
> >>>>
> >>>> What's the fix ?
> >>>>    
> >>>
> >>> https://github.com/lmajewski/u-boot-dfu/commit/98c95790fee02296023a2906811092a1868f622d
> >>>
> >>> I've explicitly enabled SPL_WDT=y for affected boards.    
> >>
> >> I don't think that's the right approach, it should be possible to
> >> do without explicit board config modification. I'm building
> >> another take, since some boards still failed to build.
> >>  
> > 
> > Just to be clear - if it works with imply - I'm for this solution.
> > 
> > However, if it breaks, then we may need to find another solution (as
> > for example shown here:
> > https://github.com/lmajewski/u-boot-dfu/commit/98c95790fee02296023a2906811092a1868f622d
> >  - the number of affected boards is small - just 3 of them).  
> 
> I would very much prefer to make it work without defconfig
> modifications. This has to be possible, since it worked before the
> split.
> 

Ok.


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/20190606/8fe457ea/attachment.sig>

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

* [U-Boot] [PATCH 1/2] watchdog: Split WDT from SPL_WDT
  2019-06-06  8:23               ` Marek Vasut
  2019-06-06  8:28                 ` Lukasz Majewski
@ 2019-06-08  6:23                 ` Lukasz Majewski
  2019-06-08 15:32                   ` Marek Vasut
  1 sibling, 1 reply; 16+ messages in thread
From: Lukasz Majewski @ 2019-06-08  6:23 UTC (permalink / raw)
  To: u-boot

Hi Marek,

> On 6/6/19 10:16 AM, Lukasz Majewski wrote:
> > On Thu, 6 Jun 2019 10:08:04 +0200
> > Marek Vasut <marex@denx.de> wrote:
> >   
> >> On 6/6/19 10:00 AM, Lukasz Majewski wrote:  
> >>> On Thu, 6 Jun 2019 09:26:04 +0200
> >>> Marek Vasut <marex@denx.de> wrote:
> >>>     
> >>>> On 6/6/19 9:09 AM, Lukasz Majewski wrote:    
> >>>>> On Wed, 5 Jun 2019 18:24:11 +0200
> >>>>> Lukasz Majewski <lukma@denx.de> wrote:
> >>>>>       
> >>>>>> Hi Marek,
> >>>>>>      
> >>>>>>> On Sun, 12 May 2019 23:34:52 +0200
> >>>>>>> Marek Vasut <marex@denx.de> wrote:
> >>>>>>>         
> >>>>>>>> Use CONFIG_IS_ENABLED(WDT) to permit use of WDT in SPL
> >>>>>>>> without DM, while the full U-Boot can use rich DM/DT WDT
> >>>>>>>> driver.
> >>>>>>>>
> >>>>>>>> Signed-off-by: Marek Vasut <marex@denx.de>
> >>>>>>>> Cc: Peng Fan <Peng.Fan@freescale.com>
> >>>>>>>> Cc: Stefano Babic <sbabic@denx.de>
> >>>>>>>> ---
> >>>>>>>>  common/board_r.c                  | 2 +-
> >>>>>>>>  common/spl/spl.c                  | 2 +-
> >>>>>>>>  drivers/watchdog/Makefile         | 2 +-
> >>>>>>>>  include/asm-generic/global_data.h | 2 +-
> >>>>>>>>  include/wdt.h                     | 2 +-
> >>>>>>>>  5 files changed, 5 insertions(+), 5 deletions(-)
> >>>>>>>>
> >>>>>>>> diff --git a/common/board_r.c b/common/board_r.c
> >>>>>>>> index 150e8cd424..988e40abb2 100644
> >>>>>>>> --- a/common/board_r.c
> >>>>>>>> +++ b/common/board_r.c
> >>>>>>>> @@ -678,7 +678,7 @@ static init_fnc_t init_sequence_r[] = {
> >>>>>>>>  #ifdef CONFIG_DM
> >>>>>>>>  	initr_dm,
> >>>>>>>>  #endif
> >>>>>>>> -#if defined(CONFIG_WDT)
> >>>>>>>> +#if CONFIG_IS_ENABLED(WDT)
> >>>>>>>>  	initr_watchdog,
> >>>>>>>>  #endif
> >>>>>>>>  #if defined(CONFIG_ARM) || defined(CONFIG_NDS32) ||
> >>>>>>>> defined(CONFIG_RISCV) || \ diff --git a/common/spl/spl.c
> >>>>>>>> b/common/spl/spl.c index 0a6a47c202..f22f854718 100644
> >>>>>>>> --- a/common/spl/spl.c
> >>>>>>>> +++ b/common/spl/spl.c
> >>>>>>>> @@ -601,7 +601,7 @@ void board_init_r(gd_t *dummy1, ulong
> >>>>>>>> dummy2) spl_board_init();
> >>>>>>>>  #endif
> >>>>>>>>  
> >>>>>>>> -#if defined(CONFIG_SPL_WATCHDOG_SUPPORT) &&
> >>>>>>>> defined(CONFIG_WDT) +#if defined(CONFIG_SPL_WATCHDOG_SUPPORT)
> >>>>>>>> && CONFIG_IS_ENABLED(WDT) initr_watchdog();
> >>>>>>>>  #endif
> >>>>>>>>  
> >>>>>>>> diff --git a/drivers/watchdog/Makefile
> >>>>>>>> b/drivers/watchdog/Makefile index 40b2f4bc66..4b94ae988c
> >>>>>>>> 100644 --- a/drivers/watchdog/Makefile
> >>>>>>>> +++ b/drivers/watchdog/Makefile
> >>>>>>>> @@ -16,7 +16,7 @@ obj-$(CONFIG_OMAP_WATCHDOG) += omap_wdt.o
> >>>>>>>>  obj-$(CONFIG_DESIGNWARE_WATCHDOG) += designware_wdt.o
> >>>>>>>>  obj-$(CONFIG_TANGIER_WATCHDOG) += tangier_wdt.o
> >>>>>>>>  obj-$(CONFIG_ULP_WATCHDOG) += ulp_wdog.o
> >>>>>>>> -obj-$(CONFIG_WDT) += wdt-uclass.o
> >>>>>>>> +obj-$(CONFIG_$(SPL_TPL_)WDT) += wdt-uclass.o
> >>>>>>>>  obj-$(CONFIG_WDT_SANDBOX) += sandbox_wdt.o
> >>>>>>>>  obj-$(CONFIG_WDT_ARMADA_37XX) += armada-37xx-wdt.o
> >>>>>>>>  obj-$(CONFIG_WDT_ASPEED) += ast_wdt.o
> >>>>>>>> diff --git a/include/asm-generic/global_data.h
> >>>>>>>> b/include/asm-generic/global_data.h index
> >>>>>>>> 02a3ed6838..7c2220643b 100644 ---
> >>>>>>>> a/include/asm-generic/global_data.h +++
> >>>>>>>> b/include/asm-generic/global_data.h @@ -137,7 +137,7 @@
> >>>>>>>> typedef struct global_data { #if
> >>>>>>>> defined(CONFIG_TRANSLATION_OFFSET) fdt_addr_t
> >>>>>>>> translation_offset;	/* optional translation offset */
> >>>>>>>> #endif -#if defined(CONFIG_WDT)
> >>>>>>>> +#if CONFIG_IS_ENABLED(WDT)
> >>>>>>>>  	struct udevice *watchdog_dev;
> >>>>>>>>  #endif
> >>>>>>>>  } gd_t;
> >>>>>>>> diff --git a/include/wdt.h b/include/wdt.h
> >>>>>>>> index aa77d3e9b4..5bcff24ab3 100644
> >>>>>>>> --- a/include/wdt.h
> >>>>>>>> +++ b/include/wdt.h
> >>>>>>>> @@ -106,7 +106,7 @@ struct wdt_ops {
> >>>>>>>>  	int (*expire_now)(struct udevice *dev, ulong flags);
> >>>>>>>>  };
> >>>>>>>>  
> >>>>>>>> -#if defined(CONFIG_WDT)
> >>>>>>>> +#if CONFIG_IS_ENABLED(WDT)
> >>>>>>>>  #ifndef CONFIG_WATCHDOG_TIMEOUT_MSECS
> >>>>>>>>  #define CONFIG_WATCHDOG_TIMEOUT_MSECS	(60 * 1000)
> >>>>>>>>  #endif          
> >>>>>>>
> >>>>>>> Tested-by: Lukasz Majewski <lukma@denx.de>
> >>>>>>>
> >>>>>>> Test HW: display5 i.MX6Q device 
> >>>>>>>         
> >>>>>>
> >>>>>> Unfortunately this series causes build break when run on
> >>>>>> Travis-CI for some Atmel/Microchip:
> >>>>>>
> >>>>>> arm:  +   picosam9g45
> >>>>>> +lib/built-in.o: In function `udelay':
> >>>>>> +lib/time.c:167: undefined reference to `watchdog_reset'
> >>>>>> +drivers/built-in.o: In function `atmel_serial_getc':
> >>>>>> +drivers/serial/atmel_usart.c:103: undefined reference to
> >>>>>>        `watchdog_reset' +make[2]: *** [spl/u-boot-spl] Error 1
> >>>>>> +make[1]: *** [spl/u-boot-spl] Error 2
> >>>>>> +make: *** [sub-make] Error 2
> >>>>>>    14   38    1 /53     axm
> >>>>>> boards.cfg is up to date. Nothing to do.
> >>>>>> Summary of current source for 53 boards (2 threads, 1 job per
> >>>>>> thread)
> >>>>>>
> >>>>>>
> >>>>>> u-boot master SHA1: e1a2ed7180adeefb6164239a18249dca5701319d
> >>>>>>      
> >>>>>
> >>>>> The fix is under Travis-CI testing:
> >>>>> https://travis-ci.org/lmajewski/u-boot-dfu/builds/542118403
> >>>>>
> >>>>> I will post patches when it finishes.      
> >>>>
> >>>> What's the fix ?
> >>>>    
> >>>
> >>> https://github.com/lmajewski/u-boot-dfu/commit/98c95790fee02296023a2906811092a1868f622d
> >>>
> >>> I've explicitly enabled SPL_WDT=y for affected boards.    
> >>
> >> I don't think that's the right approach, it should be possible to
> >> do without explicit board config modification. I'm building
> >> another take, since some boards still failed to build.
> >>  
> > 
> > Just to be clear - if it works with imply - I'm for this solution.
> > 
> > However, if it breaks, then we may need to find another solution (as
> > for example shown here:
> > https://github.com/lmajewski/u-boot-dfu/commit/98c95790fee02296023a2906811092a1868f622d
> >  - the number of affected boards is small - just 3 of them).  
> 
> I would very much prefer to make it work without defconfig
> modifications. This has to be possible, since it worked before the
> split.
> 

Have you managed to fix the code? Will you post revised patches soon?


Best regards and thanks in advance,

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/20190608/d3ea901f/attachment.sig>

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

* [U-Boot] [PATCH 1/2] watchdog: Split WDT from SPL_WDT
  2019-06-08  6:23                 ` Lukasz Majewski
@ 2019-06-08 15:32                   ` Marek Vasut
  0 siblings, 0 replies; 16+ messages in thread
From: Marek Vasut @ 2019-06-08 15:32 UTC (permalink / raw)
  To: u-boot

On 6/8/19 8:23 AM, Lukasz Majewski wrote:
> Hi Marek,
> 
>> On 6/6/19 10:16 AM, Lukasz Majewski wrote:
>>> On Thu, 6 Jun 2019 10:08:04 +0200
>>> Marek Vasut <marex@denx.de> wrote:
>>>   
>>>> On 6/6/19 10:00 AM, Lukasz Majewski wrote:  
>>>>> On Thu, 6 Jun 2019 09:26:04 +0200
>>>>> Marek Vasut <marex@denx.de> wrote:
>>>>>     
>>>>>> On 6/6/19 9:09 AM, Lukasz Majewski wrote:    
>>>>>>> On Wed, 5 Jun 2019 18:24:11 +0200
>>>>>>> Lukasz Majewski <lukma@denx.de> wrote:
>>>>>>>       
>>>>>>>> Hi Marek,
>>>>>>>>      
>>>>>>>>> On Sun, 12 May 2019 23:34:52 +0200
>>>>>>>>> Marek Vasut <marex@denx.de> wrote:
>>>>>>>>>         
>>>>>>>>>> Use CONFIG_IS_ENABLED(WDT) to permit use of WDT in SPL
>>>>>>>>>> without DM, while the full U-Boot can use rich DM/DT WDT
>>>>>>>>>> driver.
>>>>>>>>>>
>>>>>>>>>> Signed-off-by: Marek Vasut <marex@denx.de>
>>>>>>>>>> Cc: Peng Fan <Peng.Fan@freescale.com>
>>>>>>>>>> Cc: Stefano Babic <sbabic@denx.de>
>>>>>>>>>> ---
>>>>>>>>>>  common/board_r.c                  | 2 +-
>>>>>>>>>>  common/spl/spl.c                  | 2 +-
>>>>>>>>>>  drivers/watchdog/Makefile         | 2 +-
>>>>>>>>>>  include/asm-generic/global_data.h | 2 +-
>>>>>>>>>>  include/wdt.h                     | 2 +-
>>>>>>>>>>  5 files changed, 5 insertions(+), 5 deletions(-)
>>>>>>>>>>
>>>>>>>>>> diff --git a/common/board_r.c b/common/board_r.c
>>>>>>>>>> index 150e8cd424..988e40abb2 100644
>>>>>>>>>> --- a/common/board_r.c
>>>>>>>>>> +++ b/common/board_r.c
>>>>>>>>>> @@ -678,7 +678,7 @@ static init_fnc_t init_sequence_r[] = {
>>>>>>>>>>  #ifdef CONFIG_DM
>>>>>>>>>>  	initr_dm,
>>>>>>>>>>  #endif
>>>>>>>>>> -#if defined(CONFIG_WDT)
>>>>>>>>>> +#if CONFIG_IS_ENABLED(WDT)
>>>>>>>>>>  	initr_watchdog,
>>>>>>>>>>  #endif
>>>>>>>>>>  #if defined(CONFIG_ARM) || defined(CONFIG_NDS32) ||
>>>>>>>>>> defined(CONFIG_RISCV) || \ diff --git a/common/spl/spl.c
>>>>>>>>>> b/common/spl/spl.c index 0a6a47c202..f22f854718 100644
>>>>>>>>>> --- a/common/spl/spl.c
>>>>>>>>>> +++ b/common/spl/spl.c
>>>>>>>>>> @@ -601,7 +601,7 @@ void board_init_r(gd_t *dummy1, ulong
>>>>>>>>>> dummy2) spl_board_init();
>>>>>>>>>>  #endif
>>>>>>>>>>  
>>>>>>>>>> -#if defined(CONFIG_SPL_WATCHDOG_SUPPORT) &&
>>>>>>>>>> defined(CONFIG_WDT) +#if defined(CONFIG_SPL_WATCHDOG_SUPPORT)
>>>>>>>>>> && CONFIG_IS_ENABLED(WDT) initr_watchdog();
>>>>>>>>>>  #endif
>>>>>>>>>>  
>>>>>>>>>> diff --git a/drivers/watchdog/Makefile
>>>>>>>>>> b/drivers/watchdog/Makefile index 40b2f4bc66..4b94ae988c
>>>>>>>>>> 100644 --- a/drivers/watchdog/Makefile
>>>>>>>>>> +++ b/drivers/watchdog/Makefile
>>>>>>>>>> @@ -16,7 +16,7 @@ obj-$(CONFIG_OMAP_WATCHDOG) += omap_wdt.o
>>>>>>>>>>  obj-$(CONFIG_DESIGNWARE_WATCHDOG) += designware_wdt.o
>>>>>>>>>>  obj-$(CONFIG_TANGIER_WATCHDOG) += tangier_wdt.o
>>>>>>>>>>  obj-$(CONFIG_ULP_WATCHDOG) += ulp_wdog.o
>>>>>>>>>> -obj-$(CONFIG_WDT) += wdt-uclass.o
>>>>>>>>>> +obj-$(CONFIG_$(SPL_TPL_)WDT) += wdt-uclass.o
>>>>>>>>>>  obj-$(CONFIG_WDT_SANDBOX) += sandbox_wdt.o
>>>>>>>>>>  obj-$(CONFIG_WDT_ARMADA_37XX) += armada-37xx-wdt.o
>>>>>>>>>>  obj-$(CONFIG_WDT_ASPEED) += ast_wdt.o
>>>>>>>>>> diff --git a/include/asm-generic/global_data.h
>>>>>>>>>> b/include/asm-generic/global_data.h index
>>>>>>>>>> 02a3ed6838..7c2220643b 100644 ---
>>>>>>>>>> a/include/asm-generic/global_data.h +++
>>>>>>>>>> b/include/asm-generic/global_data.h @@ -137,7 +137,7 @@
>>>>>>>>>> typedef struct global_data { #if
>>>>>>>>>> defined(CONFIG_TRANSLATION_OFFSET) fdt_addr_t
>>>>>>>>>> translation_offset;	/* optional translation offset */
>>>>>>>>>> #endif -#if defined(CONFIG_WDT)
>>>>>>>>>> +#if CONFIG_IS_ENABLED(WDT)
>>>>>>>>>>  	struct udevice *watchdog_dev;
>>>>>>>>>>  #endif
>>>>>>>>>>  } gd_t;
>>>>>>>>>> diff --git a/include/wdt.h b/include/wdt.h
>>>>>>>>>> index aa77d3e9b4..5bcff24ab3 100644
>>>>>>>>>> --- a/include/wdt.h
>>>>>>>>>> +++ b/include/wdt.h
>>>>>>>>>> @@ -106,7 +106,7 @@ struct wdt_ops {
>>>>>>>>>>  	int (*expire_now)(struct udevice *dev, ulong flags);
>>>>>>>>>>  };
>>>>>>>>>>  
>>>>>>>>>> -#if defined(CONFIG_WDT)
>>>>>>>>>> +#if CONFIG_IS_ENABLED(WDT)
>>>>>>>>>>  #ifndef CONFIG_WATCHDOG_TIMEOUT_MSECS
>>>>>>>>>>  #define CONFIG_WATCHDOG_TIMEOUT_MSECS	(60 * 1000)
>>>>>>>>>>  #endif          
>>>>>>>>>
>>>>>>>>> Tested-by: Lukasz Majewski <lukma@denx.de>
>>>>>>>>>
>>>>>>>>> Test HW: display5 i.MX6Q device 
>>>>>>>>>         
>>>>>>>>
>>>>>>>> Unfortunately this series causes build break when run on
>>>>>>>> Travis-CI for some Atmel/Microchip:
>>>>>>>>
>>>>>>>> arm:  +   picosam9g45
>>>>>>>> +lib/built-in.o: In function `udelay':
>>>>>>>> +lib/time.c:167: undefined reference to `watchdog_reset'
>>>>>>>> +drivers/built-in.o: In function `atmel_serial_getc':
>>>>>>>> +drivers/serial/atmel_usart.c:103: undefined reference to
>>>>>>>>        `watchdog_reset' +make[2]: *** [spl/u-boot-spl] Error 1
>>>>>>>> +make[1]: *** [spl/u-boot-spl] Error 2
>>>>>>>> +make: *** [sub-make] Error 2
>>>>>>>>    14   38    1 /53     axm
>>>>>>>> boards.cfg is up to date. Nothing to do.
>>>>>>>> Summary of current source for 53 boards (2 threads, 1 job per
>>>>>>>> thread)
>>>>>>>>
>>>>>>>>
>>>>>>>> u-boot master SHA1: e1a2ed7180adeefb6164239a18249dca5701319d
>>>>>>>>      
>>>>>>>
>>>>>>> The fix is under Travis-CI testing:
>>>>>>> https://travis-ci.org/lmajewski/u-boot-dfu/builds/542118403
>>>>>>>
>>>>>>> I will post patches when it finishes.      
>>>>>>
>>>>>> What's the fix ?
>>>>>>    
>>>>>
>>>>> https://github.com/lmajewski/u-boot-dfu/commit/98c95790fee02296023a2906811092a1868f622d
>>>>>
>>>>> I've explicitly enabled SPL_WDT=y for affected boards.    
>>>>
>>>> I don't think that's the right approach, it should be possible to
>>>> do without explicit board config modification. I'm building
>>>> another take, since some boards still failed to build.
>>>>  
>>>
>>> Just to be clear - if it works with imply - I'm for this solution.
>>>
>>> However, if it breaks, then we may need to find another solution (as
>>> for example shown here:
>>> https://github.com/lmajewski/u-boot-dfu/commit/98c95790fee02296023a2906811092a1868f622d
>>>  - the number of affected boards is small - just 3 of them).  
>>
>> I would very much prefer to make it work without defconfig
>> modifications. This has to be possible, since it worked before the
>> split.
>>
> 
> Have you managed to fix the code? Will you post revised patches soon?

Yes, when they are ready and tested.

-- 
Best regards,
Marek Vasut

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

end of thread, other threads:[~2019-06-08 15:32 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-12 21:34 [U-Boot] [PATCH 1/2] watchdog: Split WDT from SPL_WDT Marek Vasut
2019-05-12 21:34 ` [U-Boot] [PATCH 2/2] watchdog: imx: Add DM support Marek Vasut
2019-05-15  5:54   ` Peng Fan
2019-06-04 21:21   ` Lukasz Majewski
2019-05-15  5:46 ` [U-Boot] [PATCH 1/2] watchdog: Split WDT from SPL_WDT Peng Fan
2019-06-04 21:22 ` Lukasz Majewski
2019-06-05 16:24   ` Lukasz Majewski
2019-06-06  7:09     ` Lukasz Majewski
2019-06-06  7:26       ` Marek Vasut
2019-06-06  8:00         ` Lukasz Majewski
2019-06-06  8:08           ` Marek Vasut
2019-06-06  8:16             ` Lukasz Majewski
2019-06-06  8:23               ` Marek Vasut
2019-06-06  8:28                 ` Lukasz Majewski
2019-06-08  6:23                 ` Lukasz Majewski
2019-06-08 15:32                   ` Marek Vasut

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.