* [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 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&data=02%7C01%7CPeng.Fan%40nxp.com > %7C3104426ece13427d689008d6d721d25b%7C686ea1d3bc2b4c6fa92cd99c > 5c301635%7C0%7C0%7C636932937614272001&sdata=l54tJxZN03iuNL > XrqPvykahvk2YF0vduEbDU9tPFqXo%3D&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 ` 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&data=02%7C01%7CPeng.Fan%40nxp.com > %7C80a98d74e79849cca5bd08d6d721cb41%7C686ea1d3bc2b4c6fa92cd99c > 5c301635%7C0%7C0%7C636932937538649220&sdata=JB4foxgQVteQw > MUJrefgqegLm6N%2ByFq%2BfLknDE89nfo%3D&reserved=0 ^ 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 a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox