diff mbox series

[U-Boot,v2,2/2] watchdog: omap_wdt: Disable DM watchdog support in SPL

Message ID 1564590247-22406-2-git-send-email-sunil.m@techveda.org
State Accepted
Delegated to: Tom Rini
Headers show
Series [U-Boot,v2,1/2] watchdog: omap_wdt: Convert watchdog driver to use DT and DM | expand

Commit Message

Suniel Mahesh July 31, 2019, 4:24 p.m. UTC
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(-)

Comments

Tom Rini Aug. 13, 2019, 4:50 p.m. UTC | #1
On Wed, Jul 31, 2019 at 09:54:07PM +0530, sunil.m@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!
diff mbox series

Patch

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