diff mbox series

[U-Boot,V2,1/2] watchdog: Split WDT from SPL_WDT

Message ID 20190609014622.14067-1-marex@denx.de
State Awaiting Upstream
Delegated to: Stefano Babic
Headers show
Series [U-Boot,V2,1/2] watchdog: Split WDT from SPL_WDT | expand

Commit Message

Marek Vasut June 9, 2019, 1:46 a.m. UTC
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(-)

Comments

Heiko Schocher June 12, 2019, 4 a.m. UTC | #1
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
Suniel Mahesh July 1, 2019, 6:45 a.m. UTC | #2
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
Marek Vasut July 1, 2019, 8:25 p.m. UTC | #3
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 ?
Suniel Mahesh July 8, 2019, 10:05 a.m. UTC | #4
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
Suniel Mahesh July 12, 2019, 4:34 a.m. UTC | #5
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
Stefano Babic July 20, 2019, 8:45 a.m. UTC | #6
> 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
diff mbox series

Patch

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