[U-Boot] [PATCH V2 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 --- V2: - Make SPL_WATCHDOG_SUPPORT imply SPL_WDT if !HW_WATCHDOG - Add SPL_WDT Kconfig entry --- common/board_r.c | 2 +- common/spl/Kconfig | 1 + common/spl/spl.c | 2 +- drivers/watchdog/Kconfig | 7 +++++++ drivers/watchdog/Makefile | 2 +- include/asm-generic/global_data.h | 2 +- include/wdt.h | 2 +- 7 files changed, 13 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/Kconfig b/common/spl/Kconfig index c7cd34449a..09761b1db7 100644 --- a/common/spl/Kconfig +++ b/common/spl/Kconfig @@ -876,6 +876,7 @@ endif
config SPL_WATCHDOG_SUPPORT bool "Support watchdog drivers" + imply SPL_WDT if !HW_WATCHDOG help Enable support for watchdog drivers in SPL. A watchdog is typically a hardware peripheral which can reset the system when it diff --git a/common/spl/spl.c b/common/spl/spl.c index 4ddeff9b51..c595697fc5 100644 --- a/common/spl/spl.c +++ b/common/spl/spl.c @@ -603,7 +603,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/Kconfig b/drivers/watchdog/Kconfig index b01dbc446d..0330a3b3a1 100644 --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig @@ -161,4 +161,11 @@ config WDT_MPC8xx help Select this to enable mpc8xx watchdog timer
+config SPL_WDT + bool "Enable driver model for watchdog timer drivers in SPL" + depends on SPL_DM + help + Enable driver model for watchdog timer in SPL. + This is similar to CONFIG_WDT in U-Boot. + endmenu diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile index 6f20e73810..fe8023bda2 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

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 --- V2: No change --- 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 0330a3b3a1..5993865647 100644 --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig @@ -136,7 +136,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

Hello Marek,
Am 09.06.2019 um 03:46 schrieb Marek Vasut:
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
V2: No change
drivers/watchdog/Kconfig | 2 +- drivers/watchdog/imx_watchdog.c | 119 +++++++++++++++++++++++++++----- 2 files changed, 104 insertions(+), 17 deletions(-)
just worked on similiar patch (not ready for mainline) ... patch looks good to me, but I stumbled over a nitpick ...
CONFIG_WATCHDOG_TIMEOUT_MSECS is defined in imx_watchdog to 128000 ms
37 #ifndef CONFIG_WATCHDOG_TIMEOUT_MSECS 38 #define CONFIG_WATCHDOG_TIMEOUT_MSECS 128000 39 #endif
If now using DM approach it is set to 60000 ms, see include/wdt.h
109 #if defined(CONFIG_WDT) 110 #ifndef CONFIG_WATCHDOG_TIMEOUT_MSECS 111 #define CONFIG_WATCHDOG_TIMEOUT_MSECS (60 * 1000) 112 #endif 113 #define WATCHDOG_TIMEOUT_SECS (CONFIG_WATCHDOG_TIMEOUT_MSECS / 1000)
Can you try my patch: https://github.com/hsdenx/u-boot-test/commit/11503dba89cade8b81ee9d93d503d0b...
which moves WATCHDOG_TIMEOUT_MSECS to Kconfig ? (Travis build just started, may not mainline ready, also patman notes in commit messages can now be removed.)
Thanks!
bye, Heiko
diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig index 0330a3b3a1..5993865647 100644 --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig @@ -136,7 +136,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

On 6/11/19 7:33 AM, Heiko Schocher wrote:
Hello Marek,
Am 09.06.2019 um 03:46 schrieb Marek Vasut:
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
V2: No change
drivers/watchdog/Kconfig | 2 +- drivers/watchdog/imx_watchdog.c | 119 +++++++++++++++++++++++++++----- 2 files changed, 104 insertions(+), 17 deletions(-)
just worked on similiar patch (not ready for mainline) ... patch looks good to me, but I stumbled over a nitpick ...
CONFIG_WATCHDOG_TIMEOUT_MSECS is defined in imx_watchdog to 128000 ms
37 #ifndef CONFIG_WATCHDOG_TIMEOUT_MSECS 38 #define CONFIG_WATCHDOG_TIMEOUT_MSECS 128000 39 #endif
If now using DM approach it is set to 60000 ms, see include/wdt.h
109 #if defined(CONFIG_WDT) 110 #ifndef CONFIG_WATCHDOG_TIMEOUT_MSECS 111 #define CONFIG_WATCHDOG_TIMEOUT_MSECS (60 * 1000) 112 #endif 113 #define WATCHDOG_TIMEOUT_SECS (CONFIG_WATCHDOG_TIMEOUT_MSECS / 1000)
Can you try my patch: https://github.com/hsdenx/u-boot-test/commit/11503dba89cade8b81ee9d93d503d0b...
which moves WATCHDOG_TIMEOUT_MSECS to Kconfig ? (Travis build just started, may not mainline ready, also patman notes in commit messages can now be removed.)
Looks good to me :)

Hello Marek,
Am 11.06.2019 um 11:55 schrieb Marek Vasut:
On 6/11/19 7:33 AM, Heiko Schocher wrote:
Hello Marek,
Am 09.06.2019 um 03:46 schrieb Marek Vasut:
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
V2: No change
drivers/watchdog/Kconfig | 2 +- drivers/watchdog/imx_watchdog.c | 119 +++++++++++++++++++++++++++----- 2 files changed, 104 insertions(+), 17 deletions(-)
just worked on similiar patch (not ready for mainline) ... patch looks good to me, but I stumbled over a nitpick ...
CONFIG_WATCHDOG_TIMEOUT_MSECS is defined in imx_watchdog to 128000 ms
37 #ifndef CONFIG_WATCHDOG_TIMEOUT_MSECS 38 #define CONFIG_WATCHDOG_TIMEOUT_MSECS 128000 39 #endif
If now using DM approach it is set to 60000 ms, see include/wdt.h
109 #if defined(CONFIG_WDT) 110 #ifndef CONFIG_WATCHDOG_TIMEOUT_MSECS 111 #define CONFIG_WATCHDOG_TIMEOUT_MSECS (60 * 1000) 112 #endif 113 #define WATCHDOG_TIMEOUT_SECS (CONFIG_WATCHDOG_TIMEOUT_MSECS / 1000)
Can you try my patch: https://github.com/hsdenx/u-boot-test/commit/11503dba89cade8b81ee9d93d503d0b...
which moves WATCHDOG_TIMEOUT_MSECS to Kconfig ? (Travis build just started, may not mainline ready, also patman notes in commit messages can now be removed.)
Looks good to me :)
Fine, so I rework the commit message and post it.
Thanks!
bye, Heiko

Hello Marek,
Am 09.06.2019 um 03:46 schrieb Marek Vasut:
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
V2: No change
drivers/watchdog/Kconfig | 2 +- drivers/watchdog/imx_watchdog.c | 119 +++++++++++++++++++++++++++----- 2 files changed, 104 insertions(+), 17 deletions(-)
Tested on the aristainetos board.
Tested-by: Heiko Schocher hs@denx.de
bye, Heiko

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 Tested-by: Heiko Schocher hs@denx.de
Applied to u-boot-imx, master, thanks !
Best regards, Stefano Babic

Hello Marek,
Am 09.06.2019 um 03:46 schrieb Marek Vasut:
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
V2: - Make SPL_WATCHDOG_SUPPORT imply SPL_WDT if !HW_WATCHDOG - Add SPL_WDT Kconfig entry
common/board_r.c | 2 +- common/spl/Kconfig | 1 + common/spl/spl.c | 2 +- drivers/watchdog/Kconfig | 7 +++++++ drivers/watchdog/Makefile | 2 +- include/asm-generic/global_data.h | 2 +- include/wdt.h | 2 +- 7 files changed, 13 insertions(+), 5 deletions(-)
Tested on the aristainetos board.
Tested-by: Heiko Schocher hs@denx.de
bye, Heiko

Hi Marek,
May I know if this patch series is still under review ?
I have converted OMAP3 watchdog driver into driver model for TI AM33XX based SOC and tested corresponding patches on BeagleBone Black board.
Because of SPL size constraints, I have to disable driver model for watchdog in SPL. Some of the changes I have done are in agreement with your work and I thought it would be better to pause until this change set gets accepted(avoiding patch duplication), especially changes in :
common/spl/spl.c drivers/watchdog/Kconfig drivers/watchdog/Makefile
These changes are tested on AM335X based BeagleBone Black, and they look good.
Regards

On 02/07/19 01:55, Marek Vasut wrote:
On 7/1/19 8:45 AM, Suniel Mahesh wrote:
Hi Marek,
May I know if this patch series is still under review ?
I guess Stefano is taking them for next ... or ?
Hi Marek,
Because of this change set applied to u-boot, this patch might not apply, especially changes in common/board_r.c (please verify)
# 84b2416b6a0531a9ad46a4e445e558f183c50171 board_r: move initr_watchdog to be called after initr_serial
Reported by: Suniel Mahesh sunil.m@techveda.org
Thanks and Regards Sunil

On 02/07/19 01:55, Marek Vasut wrote:
On 7/1/19 8:45 AM, Suniel Mahesh wrote:
Hi Marek,
May I know if this patch series is still under review ?
I guess Stefano is taking them for next ... or ?
Hi Marek/Stefano,
Because of this entry "Make SPL_WATCHDOG_SUPPORT imply SPL_WDT if !HW_WATCHDOG", SPL_WDT is getting enabled by default, when board configuration is done.
For AM335X based beaglebone black, we dont need SPL_WDT, as the built image is getting too big to fit into SRAM.
Is it fine if I disable SPL_WDT in board defconfig file ? used the following entry in defconfig # CONFIG_SPL_WDT is not set (couldn't find a proper place to disable it, except in defconfig)
with this the build is fine and board boots.
Tested on the beaglebone black board.
Tested-by: Suniel Mahesh sunil.m@techveda.org
Thanks Sunil

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 Tested-by: Heiko Schocher hs@denx.de Tested-by: Suniel Mahesh sunil.m@techveda.org
Applied to u-boot-imx, master, thanks !
Best regards, Stefano Babic
participants (5)
-
Heiko Schocher
-
Marek Vasut
-
Marek Vasut
-
sbabic@denx.de
-
Suniel Mahesh