]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
watchdog: omap_wdt: Disable DM watchdog support in SPL
authorSuniel Mahesh <sunil.m@techveda.org>
Wed, 31 Jul 2019 16:24:07 +0000 (21:54 +0530)
committerTom Rini <trini@konsulko.com>
Mon, 12 Aug 2019 17:27:55 +0000 (13:27 -0400)
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>
[trini: Fix watchdog.h logic]
Signed-off-by: Tom Rini <trini@konsulko.com>
arch/arm/mach-omap2/boot-common.c
configs/am335x_evm_defconfig
drivers/watchdog/omap_wdt.c
include/watchdog.h

index c8b8ac657fbff3abed5a5d1ad9be851ed97076db..c9549aafb90c28f7d5039ba7ddbade825fcb79df 100644 (file)
@@ -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
index fa6b03060aaedfc1dfead5206f2324514502c0ae..c0f7cccd8b74b345c6c38668a60fd5cc865880cc 100644 (file)
@@ -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
index 86f7cf1aafd01528273ad742c47a1e55db318e3d..d5857be8679b82a49cea779ac6a705fd93f01478 100644 (file)
@@ -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);
index 3a357de903f1449dbfd51be3ede273673bbf78bd..a4a4e8e614e4af30f75b651d62e7dd3f9d4bff2d 100644 (file)
@@ -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