All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 2/2] watchdog: omap_wdt: Disable DM watchdog support in SPL
@ 2019-07-12  9:23 sunil.m at techveda.org
  2019-07-17 17:28 ` Tom Rini
  0 siblings, 1 reply; 7+ messages in thread
From: sunil.m at techveda.org @ 2019-07-12  9:23 UTC (permalink / raw)
  To: u-boot

From: Suniel Mahesh <suniel.spartan@gmail.com>

This patch disables DM watchdog support for SPL builds and uses
the legacy omap watchdog on TI AM335x chipsets.

The following build error is reported if DM watchdog support was enabled in SPL:

  CC      spl/drivers/usb/gadget/rndis.o
  LD      spl/drivers/usb/gadget/built-in.o
  LD      spl/drivers/usb/musb-new/built-in.o
  LD      spl/drivers/built-in.o
  LD      spl/u-boot-spl
arm-linux-ld.bfd: u-boot-spl section .u_boot_list will not fit in region .sram
arm-linux-ld.bfd: region .sram overflowed by 440 bytes
make[1]: *** [spl/u-boot-spl] Error 1
make: *** [spl/u-boot-spl] Error 2

Tested on BeagleboneBlack board.

Signed-off-by: Suniel Mahesh <sunil.m@techveda.org>
---
Notes:
- CONFIG_WATCHDOG replaces CONFIG_HW_WATCHDOG, earlier WATCHDOG_RESET
  macro used to point to hw_watchdog_reset() in include/watchdog.h.
  Now since we use CONFIG_WATCHDOG, here WATCHDOG_RESET macro points to
  watchdog_reset(). This watchdog_reset() is not defined anywhere and needs
  to be defined. Fixed this by simply calling hw_watchdog_reset() in
  watchdog_reset() (driver/watchdog/omap_wdt.c). Hope this is ok
- CONFIG_SPL_DM is disabled in board defconfig file. Hope this
  is ok
- there are 13 boards I think which are using AM335X SOC. All
  these board defconfig files to be changed if this gets accepted
  to follow DM/DT WDT in u-boot and non DM/DT in spl.
- This patch series is heavily dependant on:
  https://patchwork.ozlabs.org/patch/1112591/
  waiting for it to get applied.
---
 arch/arm/mach-omap2/boot-common.c | 2 +-
 configs/am335x_evm_defconfig      | 1 +
 drivers/watchdog/omap_wdt.c       | 7 +++++++
 include/watchdog.h                | 2 +-
 4 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-omap2/boot-common.c b/arch/arm/mach-omap2/boot-common.c
index c8b8ac6..c9549aa 100644
--- a/arch/arm/mach-omap2/boot-common.c
+++ b/arch/arm/mach-omap2/boot-common.c
@@ -208,7 +208,7 @@ void spl_board_init(void)
 #if defined(CONFIG_AM33XX) && defined(CONFIG_SPL_MUSB_NEW_SUPPORT)
 	arch_misc_init();
 #endif
-#if defined(CONFIG_HW_WATCHDOG)
+#if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG)
 	hw_watchdog_init();
 #endif
 #ifdef CONFIG_AM33XX
diff --git a/configs/am335x_evm_defconfig b/configs/am335x_evm_defconfig
index fa6b030..c0f7ccc 100644
--- a/configs/am335x_evm_defconfig
+++ b/configs/am335x_evm_defconfig
@@ -60,6 +60,7 @@ CONFIG_TIMER=y
 CONFIG_OMAP_TIMER=y
 CONFIG_WDT=y
 CONFIG_WDT_OMAP3=y
+# CONFIG_SPL_WDT is not set
 CONFIG_USB=y
 CONFIG_DM_USB=y
 CONFIG_DM_USB_GADGET=y
diff --git a/drivers/watchdog/omap_wdt.c b/drivers/watchdog/omap_wdt.c
index 86f7cf1..d5857be 100644
--- a/drivers/watchdog/omap_wdt.c
+++ b/drivers/watchdog/omap_wdt.c
@@ -138,7 +138,14 @@ void hw_watchdog_init(void)
 	while ((readl(&wdt->wdtwwps)) & WDT_WWPS_PEND_WSPR)
 		;
 }
+
+void watchdog_reset(void)
+{
+	hw_watchdog_reset();
+}
+
 #else
+
 static int omap3_wdt_reset(struct udevice *dev)
 {
 	struct omap3_wdt_priv *priv = dev_get_priv(dev);
diff --git a/include/watchdog.h b/include/watchdog.h
index 3a357de..41c9aa7 100644
--- a/include/watchdog.h
+++ b/include/watchdog.h
@@ -77,7 +77,7 @@ int init_func_watchdog_reset(void);
  * Prototypes from $(CPU)/cpu.c.
  */
 
-#if defined(CONFIG_HW_WATCHDOG) && !defined(__ASSEMBLY__)
+#if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG) && !defined(__ASSEMBLY__)
 	void hw_watchdog_init(void);
 #endif
 
-- 
1.9.1

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

* [U-Boot] [PATCH 2/2] watchdog: omap_wdt: Disable DM watchdog support in SPL
  2019-07-12  9:23 [U-Boot] [PATCH 2/2] watchdog: omap_wdt: Disable DM watchdog support in SPL sunil.m at techveda.org
@ 2019-07-17 17:28 ` Tom Rini
  2019-07-18  6:07   ` Suniel Mahesh
  2019-07-31 16:24   ` [U-Boot] [PATCH v2 1/2] watchdog: omap_wdt: Convert watchdog driver to use DT and DM sunil.m at techveda.org
  0 siblings, 2 replies; 7+ messages in thread
From: Tom Rini @ 2019-07-17 17:28 UTC (permalink / raw)
  To: u-boot

On Fri, Jul 12, 2019 at 02:53:47PM +0530, sunil.m at techveda.org wrote:

> From: Suniel Mahesh <suniel.spartan@gmail.com>
> 
> This patch disables DM watchdog support for SPL builds and uses
> the legacy omap watchdog on TI AM335x chipsets.
> 
> The following build error is reported if DM watchdog support was enabled in SPL:
> 
>   CC      spl/drivers/usb/gadget/rndis.o
>   LD      spl/drivers/usb/gadget/built-in.o
>   LD      spl/drivers/usb/musb-new/built-in.o
>   LD      spl/drivers/built-in.o
>   LD      spl/u-boot-spl
> arm-linux-ld.bfd: u-boot-spl section .u_boot_list will not fit in region .sram
> arm-linux-ld.bfd: region .sram overflowed by 440 bytes
> make[1]: *** [spl/u-boot-spl] Error 1
> make: *** [spl/u-boot-spl] Error 2
> 
> Tested on BeagleboneBlack board.
> 
> Signed-off-by: Suniel Mahesh <sunil.m@techveda.org>

My concern here is that if we don't configure the watchdog we could now
end up in the case where the WDT trips while we're doing a slow boot
such as UART.  As was mentioned elsewhere we might need to switch to
using platdata so this still fits?  And we will need the whole of
"omap2" to build after this is applied, thanks.

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

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

* [U-Boot] [PATCH 2/2] watchdog: omap_wdt: Disable DM watchdog support in SPL
  2019-07-17 17:28 ` Tom Rini
@ 2019-07-18  6:07   ` Suniel Mahesh
  2019-07-31 16:24   ` [U-Boot] [PATCH v2 1/2] watchdog: omap_wdt: Convert watchdog driver to use DT and DM sunil.m at techveda.org
  1 sibling, 0 replies; 7+ messages in thread
From: Suniel Mahesh @ 2019-07-18  6:07 UTC (permalink / raw)
  To: u-boot

On 17/07/19 22:58, Tom Rini wrote:
> On Fri, Jul 12, 2019 at 02:53:47PM +0530, sunil.m at techveda.org wrote:
> 
>> From: Suniel Mahesh <suniel.spartan@gmail.com>
>>
>> This patch disables DM watchdog support for SPL builds and uses
>> the legacy omap watchdog on TI AM335x chipsets.
>>
>> The following build error is reported if DM watchdog support was enabled in SPL:
>>
>>   CC      spl/drivers/usb/gadget/rndis.o
>>   LD      spl/drivers/usb/gadget/built-in.o
>>   LD      spl/drivers/usb/musb-new/built-in.o
>>   LD      spl/drivers/built-in.o
>>   LD      spl/u-boot-spl
>> arm-linux-ld.bfd: u-boot-spl section .u_boot_list will not fit in region .sram
>> arm-linux-ld.bfd: region .sram overflowed by 440 bytes
>> make[1]: *** [spl/u-boot-spl] Error 1
>> make: *** [spl/u-boot-spl] Error 2
>>
>> Tested on BeagleboneBlack board.
>>
>> Signed-off-by: Suniel Mahesh <sunil.m@techveda.org>
> 
> My concern here is that if we don't configure the watchdog we could now
> end up in the case where the WDT trips while we're doing a slow boot
> such as UART.  

Here in SPL, watchdog is configured but it doesn't use DT and DM. It uses
legacy driver(non DT/non DM). I have also tested a slow boot(UART) as you indicated on 
AM335X based BeagleboneBlack board. Here are the results:

1. SPL trying to load u-boot via UART, if it can't find it, then we need to reset the board:

U-Boot SPL 2019.07-00058-g076875b-dirty (Jul 18 2019 - 10:39:43 +0530)
Trying to boot from UART
CCCCCCCCCC\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15spl: ymodem err - Timed out
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###

2. if we provide u-boot-dtb.bin, then it loads without any problem.

Hope I gave some inputs here.

As was mentioned elsewhere we might need to switch to
> using platdata so this still fits? 

right now watchdog driver in SPL is not using platdata, its just a plain
driver. Do we need to convert the driver in SPL to use platdata ? 

And we will need the whole of
> "omap2" to build after this is applied, thanks.
> 
yes this needs to be done, once all these are fixed and more over these patches
are dependant on Marek Vasuts's patches.
https://patchwork.ozlabs.org/patch/1112591/

Regards
Sunil

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

* [U-Boot] [PATCH v2 1/2] watchdog: omap_wdt: Convert watchdog driver to use DT and DM
  2019-07-17 17:28 ` Tom Rini
  2019-07-18  6:07   ` Suniel Mahesh
@ 2019-07-31 16:24   ` sunil.m at techveda.org
  2019-07-31 16:24     ` [U-Boot] [PATCH v2 2/2] watchdog: omap_wdt: Disable DM watchdog support in SPL sunil.m at techveda.org
  2019-08-13 16:50     ` [U-Boot] [PATCH v2 1/2] watchdog: omap_wdt: Convert watchdog driver to use DT and DM Tom Rini
  1 sibling, 2 replies; 7+ messages in thread
From: sunil.m at techveda.org @ 2019-07-31 16:24 UTC (permalink / raw)
  To: u-boot

From: Suniel Mahesh <sunil.m@techveda.org>

This patch adds device tree and driver model watchdog support,
converts the legacy omap watchdog driver to driver model for
TI AM335x chipsets. The following compile warning is removed:

===================== WARNING ======================
This board does not use CONFIG_WDT (DM watchdog support).
Please update the board to use CONFIG_WDT before the
v2019.10 release.
Failure to update by the deadline may result in board removal.
See doc/driver-model/MIGRATION.txt for more info.
====================================================

CONFIG_HW_WATCHDOG is no more a default option for AM33XX devices
after DT/DM conversion, adjusted kconfig accordingly.

DM watchdog support is enabled by default in SPL. The SPL image
doesn't fit into SRAM because of size constraints and build breaks
with an overflow. For this reason DM watchdog support should be
disabled in SPL, driver code should be adjusted accordingly to serve
this purpose.
Built and tested on AM335x device (BeagleboneBlack), compile tested
for all other AM33xx based boards.

Signed-off-by: Suniel Mahesh <sunil.m@techveda.org>
---
Changes for v2:

- changed description a bit to make more sense.
- Travis CI build is performed on am33xx, omap branches apart from others.
  https://travis-ci.org/sunielmahesh/u-boot/builds/566028250?utm_medium=notification&utm_source=email"
---
 arch/arm/include/asm/ti-common/omap_wdt.h |   5 ++
 configs/am335x_evm_defconfig              |   2 +
 drivers/watchdog/Kconfig                  |   9 ++-
 drivers/watchdog/Makefile                 |   1 +
 drivers/watchdog/omap_wdt.c               | 114 ++++++++++++++++++++++++++++++
 5 files changed, 130 insertions(+), 1 deletion(-)

diff --git a/arch/arm/include/asm/ti-common/omap_wdt.h b/arch/arm/include/asm/ti-common/omap_wdt.h
index 7d72e3a..fbc421b 100644
--- a/arch/arm/include/asm/ti-common/omap_wdt.h
+++ b/arch/arm/include/asm/ti-common/omap_wdt.h
@@ -56,4 +56,9 @@ struct wd_timer {
 	unsigned int wdt_unfr;	/* offset 0x100 */
 };
 
+struct omap3_wdt_priv {
+	struct wd_timer *regs;
+	unsigned int wdt_trgr_pattern;
+};
+
 #endif /* __OMAP_WDT_H__ */
diff --git a/configs/am335x_evm_defconfig b/configs/am335x_evm_defconfig
index ff96f19..fa6b030 100644
--- a/configs/am335x_evm_defconfig
+++ b/configs/am335x_evm_defconfig
@@ -58,6 +58,8 @@ CONFIG_DM_SPI=y
 CONFIG_OMAP3_SPI=y
 CONFIG_TIMER=y
 CONFIG_OMAP_TIMER=y
+CONFIG_WDT=y
+CONFIG_WDT_OMAP3=y
 CONFIG_USB=y
 CONFIG_DM_USB=y
 CONFIG_DM_USB_GADGET=y
diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index ccda432..c2a63c3 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -37,7 +37,6 @@ config OMAP_WATCHDOG
 	bool "TI OMAP watchdog driver"
 	depends on ARCH_OMAP2PLUS
 	select HW_WATCHDOG
-	default y if AM33XX
 	help
 	  Say Y here to enable the OMAP3+ watchdog driver.
 
@@ -122,6 +121,14 @@ config WDT_MTK
 	  The watchdog timer is stopped when initialized.
 	  It performs full SoC reset.
 
+config WDT_OMAP3
+        bool "TI OMAP watchdog timer support"
+        depends on WDT && ARCH_OMAP2PLUS
+        default y if AM33XX
+        help
+	  This enables OMAP3+ watchdog timer driver, which can be
+	  found on some TI chipsets and inline with driver model.
+
 config WDT_ORION
 	bool "Orion watchdog timer support"
 	depends on WDT
diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile
index 97aa6a8..c40667a 100644
--- a/drivers/watchdog/Makefile
+++ b/drivers/watchdog/Makefile
@@ -26,6 +26,7 @@ obj-$(CONFIG_WDT_CDNS) += cdns_wdt.o
 obj-$(CONFIG_WDT_MPC8xx) += mpc8xx_wdt.o
 obj-$(CONFIG_WDT_MT7621) += mt7621_wdt.o
 obj-$(CONFIG_WDT_MTK) += mtk_wdt.o
+obj-$(CONFIG_WDT_OMAP3) += omap_wdt.o
 obj-$(CONFIG_WDT_SP805) += sp805_wdt.o
 obj-$(CONFIG_WDT_STM32MP) += stm32mp_wdt.o
 obj-$(CONFIG_WDT_TANGIER) += tangier_wdt.o
diff --git a/drivers/watchdog/omap_wdt.c b/drivers/watchdog/omap_wdt.c
index 343adb0..86f7cf1 100644
--- a/drivers/watchdog/omap_wdt.c
+++ b/drivers/watchdog/omap_wdt.c
@@ -42,10 +42,14 @@
 #include <asm/io.h>
 #include <asm/processor.h>
 #include <asm/arch/cpu.h>
+#include <wdt.h>
+#include <dm.h>
+#include <errno.h>
 
 /* Hardware timeout in seconds */
 #define WDT_HW_TIMEOUT 60
 
+#if !CONFIG_IS_ENABLED(WDT)
 static unsigned int wdt_trgr_pattern = 0x1234;
 
 void hw_watchdog_reset(void)
@@ -134,3 +138,113 @@ void hw_watchdog_init(void)
 	while ((readl(&wdt->wdtwwps)) & WDT_WWPS_PEND_WSPR)
 		;
 }
+#else
+static int omap3_wdt_reset(struct udevice *dev)
+{
+	struct omap3_wdt_priv *priv = dev_get_priv(dev);
+
+	priv->wdt_trgr_pattern = 0x1234;
+/*
+ * Somebody just triggered watchdog reset and write to WTGR register
+ * is in progress. It is resetting right now, no need to trigger it
+ * again
+ */
+	if ((readl(&priv->regs->wdtwwps)) & WDT_WWPS_PEND_WTGR)
+		return 0;
+
+	priv->wdt_trgr_pattern = ~(priv->wdt_trgr_pattern);
+	writel(priv->wdt_trgr_pattern, &priv->regs->wdtwtgr);
+/*
+ * Don't wait for posted write to complete, i.e. don't check
+ * WDT_WWPS_PEND_WTGR bit in WWPS register. There is no writes to
+ * WTGR register outside of this func, and if entering it
+ * we see WDT_WWPS_PEND_WTGR bit set, it means watchdog reset
+ * was just triggered. This prevents us from wasting time in busy
+ * polling of WDT_WWPS_PEND_WTGR bit.
+ */
+	return 0;
+}
+
+static int omap3_wdt_stop(struct udevice *dev)
+{
+	struct omap3_wdt_priv *priv = dev_get_priv(dev);
+
+/* disable watchdog */
+	writel(0xAAAA, &priv->regs->wdtwspr);
+	while (readl(&priv->regs->wdtwwps) != 0x0)
+		;
+	writel(0x5555, &priv->regs->wdtwspr);
+	while (readl(&priv->regs->wdtwwps) != 0x0)
+		;
+	return 0;
+}
+
+static int omap3_wdt_start(struct udevice *dev, u64 timeout_ms, ulong flags)
+{
+	struct omap3_wdt_priv *priv = dev_get_priv(dev);
+	u32 pre_margin = GET_WLDR_VAL(timeout_ms);
+/*
+ * Make sure the watchdog is disabled. This is unfortunately required
+ * because writing to various registers with the watchdog running has no
+ * effect.
+ */
+	omap3_wdt_stop(dev);
+
+/* initialize prescaler */
+	while (readl(&priv->regs->wdtwwps) & WDT_WWPS_PEND_WCLR)
+		;
+
+	writel(WDT_WCLR_PRE | (PTV << WDT_WCLR_PTV_OFF), &priv->regs->wdtwclr);
+	while (readl(&priv->regs->wdtwwps) & WDT_WWPS_PEND_WCLR)
+		;
+/* just count up at 32 KHz */
+	while (readl(&priv->regs->wdtwwps) & WDT_WWPS_PEND_WLDR)
+		;
+
+	writel(pre_margin, &priv->regs->wdtwldr);
+	while (readl(&priv->regs->wdtwwps) & WDT_WWPS_PEND_WLDR)
+		;
+/* Sequence to enable the watchdog */
+	writel(0xBBBB, &priv->regs->wdtwspr);
+	while ((readl(&priv->regs->wdtwwps)) & WDT_WWPS_PEND_WSPR)
+		;
+
+	writel(0x4444, &priv->regs->wdtwspr);
+	while ((readl(&priv->regs->wdtwwps)) & WDT_WWPS_PEND_WSPR)
+		;
+
+	return 0;
+}
+
+static int omap3_wdt_probe(struct udevice *dev)
+{
+	struct omap3_wdt_priv *priv = dev_get_priv(dev);
+
+	priv->regs = (struct wd_timer *)devfdt_get_addr(dev);
+	if (!priv->regs)
+		return -EINVAL;
+
+	debug("%s: Probing wdt%u\n", __func__, dev->seq);
+	return 0;
+}
+
+static const struct wdt_ops omap3_wdt_ops = {
+	.start = omap3_wdt_start,
+	.stop = omap3_wdt_stop,
+	.reset = omap3_wdt_reset,
+};
+
+static const struct udevice_id omap3_wdt_ids[] = {
+	{ .compatible = "ti,omap3-wdt" },
+	{ }
+};
+
+U_BOOT_DRIVER(omap3_wdt) = {
+	.name = "omap3_wdt",
+	.id = UCLASS_WDT,
+	.of_match = omap3_wdt_ids,
+	.ops = &omap3_wdt_ops,
+	.probe = omap3_wdt_probe,
+	.priv_auto_alloc_size = sizeof(struct omap3_wdt_priv),
+};
+#endif /* !CONFIG_IS_ENABLED(WDT) */
-- 
2.7.4

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

* [U-Boot] [PATCH v2 2/2] watchdog: omap_wdt: Disable DM watchdog support in SPL
  2019-07-31 16:24   ` [U-Boot] [PATCH v2 1/2] watchdog: omap_wdt: Convert watchdog driver to use DT and DM sunil.m at techveda.org
@ 2019-07-31 16:24     ` sunil.m at techveda.org
  2019-08-13 16:50       ` Tom Rini
  2019-08-13 16:50     ` [U-Boot] [PATCH v2 1/2] watchdog: omap_wdt: Convert watchdog driver to use DT and DM Tom Rini
  1 sibling, 1 reply; 7+ messages in thread
From: sunil.m at techveda.org @ 2019-07-31 16:24 UTC (permalink / raw)
  To: u-boot

From: Suniel Mahesh <sunil.m@techveda.org>

This patch disables DM watchdog support for SPL builds and uses
the legacy omap watchdog driver on TI AM335x chipsets.

The following build error is reported if DM watchdog support was
enabled in SPL:

  CC      spl/drivers/usb/gadget/rndis.o
  LD      spl/drivers/usb/gadget/built-in.o
  LD      spl/drivers/usb/musb-new/built-in.o
  LD      spl/drivers/built-in.o
  LD      spl/u-boot-spl
arm-linux-ld.bfd: u-boot-spl section .u_boot_list will not fit in region .sram
arm-linux-ld.bfd: region .sram overflowed by 440 bytes
make[1]: *** [spl/u-boot-spl] Error 1
make: *** [spl/u-boot-spl] Error 2

Adjusted WATCHDOG_RESET macro accordingly. Earlier it was pointing
to hw_watchdog_reset. Since CONFIG_WATCHDOG replaces CONFIG_HW_WATCHDOG,
now WATCHDOG_RESET macro points to watchdog_reset. This watchdog_reset
is not defined anywhere for am33xx/omap2 and needs to be defined. Fixed
this by simply calling hw_watchdog_reset in watchdog_reset.

Built and tested on AM335x device (BeagleboneBlack), compile tested for
all other AM33xx/omap2 based boards.

Signed-off-by: Suniel Mahesh <sunil.m@techveda.org>
---
Changes for v2:

- changed description a bit to make more sense.
- As suggested by Tom Rini, Travis CI build is performed on
  am33xx, omap branches apart from others, it is a success.
  https://travis-ci.org/sunielmahesh/u-boot/builds/566028250?utm_medium=notification&utm_source=email"
---
 arch/arm/mach-omap2/boot-common.c | 2 +-
 configs/am335x_evm_defconfig      | 1 +
 drivers/watchdog/omap_wdt.c       | 7 +++++++
 include/watchdog.h                | 2 +-
 4 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-omap2/boot-common.c b/arch/arm/mach-omap2/boot-common.c
index c8b8ac6..c9549aa 100644
--- a/arch/arm/mach-omap2/boot-common.c
+++ b/arch/arm/mach-omap2/boot-common.c
@@ -208,7 +208,7 @@ void spl_board_init(void)
 #if defined(CONFIG_AM33XX) && defined(CONFIG_SPL_MUSB_NEW_SUPPORT)
 	arch_misc_init();
 #endif
-#if defined(CONFIG_HW_WATCHDOG)
+#if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG)
 	hw_watchdog_init();
 #endif
 #ifdef CONFIG_AM33XX
diff --git a/configs/am335x_evm_defconfig b/configs/am335x_evm_defconfig
index fa6b030..c0f7ccc 100644
--- a/configs/am335x_evm_defconfig
+++ b/configs/am335x_evm_defconfig
@@ -60,6 +60,7 @@ CONFIG_TIMER=y
 CONFIG_OMAP_TIMER=y
 CONFIG_WDT=y
 CONFIG_WDT_OMAP3=y
+# CONFIG_SPL_WDT is not set
 CONFIG_USB=y
 CONFIG_DM_USB=y
 CONFIG_DM_USB_GADGET=y
diff --git a/drivers/watchdog/omap_wdt.c b/drivers/watchdog/omap_wdt.c
index 86f7cf1..d5857be 100644
--- a/drivers/watchdog/omap_wdt.c
+++ b/drivers/watchdog/omap_wdt.c
@@ -138,7 +138,14 @@ void hw_watchdog_init(void)
 	while ((readl(&wdt->wdtwwps)) & WDT_WWPS_PEND_WSPR)
 		;
 }
+
+void watchdog_reset(void)
+{
+	hw_watchdog_reset();
+}
+
 #else
+
 static int omap3_wdt_reset(struct udevice *dev)
 {
 	struct omap3_wdt_priv *priv = dev_get_priv(dev);
diff --git a/include/watchdog.h b/include/watchdog.h
index 3a357de..41c9aa7 100644
--- a/include/watchdog.h
+++ b/include/watchdog.h
@@ -77,7 +77,7 @@ int init_func_watchdog_reset(void);
  * Prototypes from $(CPU)/cpu.c.
  */
 
-#if defined(CONFIG_HW_WATCHDOG) && !defined(__ASSEMBLY__)
+#if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG) && !defined(__ASSEMBLY__)
 	void hw_watchdog_init(void);
 #endif
 
-- 
2.7.4

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

* [U-Boot] [PATCH v2 1/2] watchdog: omap_wdt: Convert watchdog driver to use DT and DM
  2019-07-31 16:24   ` [U-Boot] [PATCH v2 1/2] watchdog: omap_wdt: Convert watchdog driver to use DT and DM sunil.m at techveda.org
  2019-07-31 16:24     ` [U-Boot] [PATCH v2 2/2] watchdog: omap_wdt: Disable DM watchdog support in SPL sunil.m at techveda.org
@ 2019-08-13 16:50     ` Tom Rini
  1 sibling, 0 replies; 7+ messages in thread
From: Tom Rini @ 2019-08-13 16:50 UTC (permalink / raw)
  To: u-boot

On Wed, Jul 31, 2019 at 09:54:06PM +0530, sunil.m at techveda.org wrote:

> From: Suniel Mahesh <sunil.m@techveda.org>
> 
> This patch adds device tree and driver model watchdog support,
> converts the legacy omap watchdog driver to driver model for
> TI AM335x chipsets. The following compile warning is removed:
> 
> ===================== WARNING ======================
> This board does not use CONFIG_WDT (DM watchdog support).
> Please update the board to use CONFIG_WDT before the
> v2019.10 release.
> Failure to update by the deadline may result in board removal.
> See doc/driver-model/MIGRATION.txt for more info.
> ====================================================
> 
> CONFIG_HW_WATCHDOG is no more a default option for AM33XX devices
> after DT/DM conversion, adjusted kconfig accordingly.
> 
> DM watchdog support is enabled by default in SPL. The SPL image
> doesn't fit into SRAM because of size constraints and build breaks
> with an overflow. For this reason DM watchdog support should be
> disabled in SPL, driver code should be adjusted accordingly to serve
> this purpose.
> Built and tested on AM335x device (BeagleboneBlack), compile tested
> for all other AM33xx based boards.
> 
> Signed-off-by: Suniel Mahesh <sunil.m@techveda.org>

Applied to u-boot/master, thanks!

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

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

* [U-Boot] [PATCH v2 2/2] watchdog: omap_wdt: Disable DM watchdog support in SPL
  2019-07-31 16:24     ` [U-Boot] [PATCH v2 2/2] watchdog: omap_wdt: Disable DM watchdog support in SPL sunil.m at techveda.org
@ 2019-08-13 16:50       ` Tom Rini
  0 siblings, 0 replies; 7+ messages in thread
From: Tom Rini @ 2019-08-13 16:50 UTC (permalink / raw)
  To: u-boot

On Wed, Jul 31, 2019 at 09:54:07PM +0530, sunil.m at techveda.org wrote:

> From: Suniel Mahesh <sunil.m@techveda.org>
> 
> This patch disables DM watchdog support for SPL builds and uses
> the legacy omap watchdog driver on TI AM335x chipsets.
> 
> The following build error is reported if DM watchdog support was
> enabled in SPL:
> 
>   CC      spl/drivers/usb/gadget/rndis.o
>   LD      spl/drivers/usb/gadget/built-in.o
>   LD      spl/drivers/usb/musb-new/built-in.o
>   LD      spl/drivers/built-in.o
>   LD      spl/u-boot-spl
> arm-linux-ld.bfd: u-boot-spl section .u_boot_list will not fit in region .sram
> arm-linux-ld.bfd: region .sram overflowed by 440 bytes
> make[1]: *** [spl/u-boot-spl] Error 1
> make: *** [spl/u-boot-spl] Error 2
> 
> Adjusted WATCHDOG_RESET macro accordingly. Earlier it was pointing
> to hw_watchdog_reset. Since CONFIG_WATCHDOG replaces CONFIG_HW_WATCHDOG,
> now WATCHDOG_RESET macro points to watchdog_reset. This watchdog_reset
> is not defined anywhere for am33xx/omap2 and needs to be defined. Fixed
> this by simply calling hw_watchdog_reset in watchdog_reset.
> 
> Built and tested on AM335x device (BeagleboneBlack), compile tested for
> all other AM33xx/omap2 based boards.
> 
> Signed-off-by: Suniel Mahesh <sunil.m@techveda.org>

Applied to u-boot/master, thanks!

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

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

end of thread, other threads:[~2019-08-13 16:50 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-12  9:23 [U-Boot] [PATCH 2/2] watchdog: omap_wdt: Disable DM watchdog support in SPL sunil.m at techveda.org
2019-07-17 17:28 ` Tom Rini
2019-07-18  6:07   ` Suniel Mahesh
2019-07-31 16:24   ` [U-Boot] [PATCH v2 1/2] watchdog: omap_wdt: Convert watchdog driver to use DT and DM sunil.m at techveda.org
2019-07-31 16:24     ` [U-Boot] [PATCH v2 2/2] watchdog: omap_wdt: Disable DM watchdog support in SPL sunil.m at techveda.org
2019-08-13 16:50       ` Tom Rini
2019-08-13 16:50     ` [U-Boot] [PATCH v2 1/2] watchdog: omap_wdt: Convert watchdog driver to use DT and DM Tom Rini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.