watchdog: mpc8xx: Revert the 8xx watchdog back to CONFIG_HW_WATCHDOG
diff mbox series

Message ID f2e3ede0ef5d990d42768b1e9ba37e89b9b71691.1582184331.git.christophe.leroy@c-s.fr
State Accepted
Commit a68256074f4239008c6d5c936bc0f8857f3d1b8a
Delegated to: Tom Rini
Headers show
Series
  • watchdog: mpc8xx: Revert the 8xx watchdog back to CONFIG_HW_WATCHDOG
Related show

Commit Message

Christophe Leroy Feb. 20, 2020, 7:39 a.m. UTC
Commit f3729ba6e7b2 ("watchdog: mpc8xx_wdt: Watchdog driver and macros
cleanup") switched the watchdog to CONFIG_WATCHDOG. But this is not
compatible with the 8xx because it starts the watchdog HW timer at
reset and must be serviced from the very beginning including while
U-boot is executed in the firmware before relocation in RAM.

Select CONFIG_HW_WATCHDOG and make hw_watchdog_reset() visible.

Meanwhile, finalise the cleanup of arch/powerpc/cpu/mpc8xx/Kconfig by
removing the lines put in comment in that commit, and also remove
again the selection of CONFIG_MPC8xx_WATCHDOG which was removed by
that commit and brought back by mistake by commit b3134ffbd944
("watchdog: Kconfig: Sort entry alphabetically")

Note that there was an 'imply WATCHDOG' in the original commit but
it disappeared in the Kconfig alphabetical sorting, so no need to
remove it here.

Fixes: f3729ba6e7b2 ("watchdog: mpc8xx_wdt: Watchdog driver and macros cleanup")
Fixes: b3134ffbd944 ("watchdog: Kconfig: Sort entry alphabetically")
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Cc: Stefan Roese <sr@denx.de>
Cc: Patrice Chotard <patrice.chotard@st.com>
---
 arch/powerpc/cpu/mpc8xx/Kconfig | 4 ----
 drivers/watchdog/Kconfig        | 2 +-
 drivers/watchdog/mpc8xx_wdt.c   | 2 +-
 3 files changed, 2 insertions(+), 6 deletions(-)

Comments

Stefan Roese Feb. 20, 2020, 8:57 a.m. UTC | #1
On 20.02.20 08:39, Christophe Leroy wrote:
> Commit f3729ba6e7b2 ("watchdog: mpc8xx_wdt: Watchdog driver and macros
> cleanup") switched the watchdog to CONFIG_WATCHDOG. But this is not
> compatible with the 8xx because it starts the watchdog HW timer at
> reset and must be serviced from the very beginning including while
> U-boot is executed in the firmware before relocation in RAM.
> 
> Select CONFIG_HW_WATCHDOG and make hw_watchdog_reset() visible.
> 
> Meanwhile, finalise the cleanup of arch/powerpc/cpu/mpc8xx/Kconfig by
> removing the lines put in comment in that commit, and also remove
> again the selection of CONFIG_MPC8xx_WATCHDOG which was removed by
> that commit and brought back by mistake by commit b3134ffbd944
> ("watchdog: Kconfig: Sort entry alphabetically")
> 
> Note that there was an 'imply WATCHDOG' in the original commit but
> it disappeared in the Kconfig alphabetical sorting, so no need to
> remove it here.
> 
> Fixes: f3729ba6e7b2 ("watchdog: mpc8xx_wdt: Watchdog driver and macros cleanup")
> Fixes: b3134ffbd944 ("watchdog: Kconfig: Sort entry alphabetically")
> Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
> Cc: Stefan Roese <sr@denx.de>
> Cc: Patrice Chotard <patrice.chotard@st.com>

Reviewed-by: Stefan Roese <sr@denx.de>

Thanks,
Stefan
Tom Rini Feb. 25, 2020, 4:40 p.m. UTC | #2
On Thu, Feb 20, 2020 at 07:39:51AM +0000, Christophe Leroy wrote:

> Commit f3729ba6e7b2 ("watchdog: mpc8xx_wdt: Watchdog driver and macros
> cleanup") switched the watchdog to CONFIG_WATCHDOG. But this is not
> compatible with the 8xx because it starts the watchdog HW timer at
> reset and must be serviced from the very beginning including while
> U-boot is executed in the firmware before relocation in RAM.
> 
> Select CONFIG_HW_WATCHDOG and make hw_watchdog_reset() visible.
> 
> Meanwhile, finalise the cleanup of arch/powerpc/cpu/mpc8xx/Kconfig by
> removing the lines put in comment in that commit, and also remove
> again the selection of CONFIG_MPC8xx_WATCHDOG which was removed by
> that commit and brought back by mistake by commit b3134ffbd944
> ("watchdog: Kconfig: Sort entry alphabetically")
> 
> Note that there was an 'imply WATCHDOG' in the original commit but
> it disappeared in the Kconfig alphabetical sorting, so no need to
> remove it here.
> 
> Fixes: f3729ba6e7b2 ("watchdog: mpc8xx_wdt: Watchdog driver and macros cleanup")
> Fixes: b3134ffbd944 ("watchdog: Kconfig: Sort entry alphabetically")
> Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
> Cc: Stefan Roese <sr@denx.de>
> Cc: Patrice Chotard <patrice.chotard@st.com>
> Reviewed-by: Stefan Roese <sr@denx.de>

Please note that as-is this causes a build failure:
+(MCR3000) In file included from ../arch/powerpc/cpu/mpc8xx/cpu.c:23:0:
+(MCR3000) ../include/watchdog.h:32:4: error: #error "Configuration error: CONFIG_HW_WATCHDOG and CONFIG_WATCHDOG can't be used together."
+(MCR3000)  #  error "Configuration error: CONFIG_HW_WATCHDOG and CONFIG_WATCHDOG can't be used  together."
+(MCR3000)     ^~~~~
+(MCR3000) make[2]: *** [arch/powerpc/cpu/mpc8xx/cpu.o] Error 1
+(MCR3000) make[1]: *** [arch/powerpc/cpu/mpc8xx] Error 2
+(MCR3000) make: *** [sub-make] Error 2
Christophe Leroy Feb. 26, 2020, 4:22 p.m. UTC | #3
Le 25/02/2020 à 17:40, Tom Rini a écrit :
> On Thu, Feb 20, 2020 at 07:39:51AM +0000, Christophe Leroy wrote:
> 
>> Commit f3729ba6e7b2 ("watchdog: mpc8xx_wdt: Watchdog driver and macros
>> cleanup") switched the watchdog to CONFIG_WATCHDOG. But this is not
>> compatible with the 8xx because it starts the watchdog HW timer at
>> reset and must be serviced from the very beginning including while
>> U-boot is executed in the firmware before relocation in RAM.
>>
>> Select CONFIG_HW_WATCHDOG and make hw_watchdog_reset() visible.
>>
>> Meanwhile, finalise the cleanup of arch/powerpc/cpu/mpc8xx/Kconfig by
>> removing the lines put in comment in that commit, and also remove
>> again the selection of CONFIG_MPC8xx_WATCHDOG which was removed by
>> that commit and brought back by mistake by commit b3134ffbd944
>> ("watchdog: Kconfig: Sort entry alphabetically")
>>
>> Note that there was an 'imply WATCHDOG' in the original commit but
>> it disappeared in the Kconfig alphabetical sorting, so no need to
>> remove it here.
>>
>> Fixes: f3729ba6e7b2 ("watchdog: mpc8xx_wdt: Watchdog driver and macros cleanup")
>> Fixes: b3134ffbd944 ("watchdog: Kconfig: Sort entry alphabetically")
>> Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
>> Cc: Stefan Roese <sr@denx.de>
>> Cc: Patrice Chotard <patrice.chotard@st.com>
>> Reviewed-by: Stefan Roese <sr@denx.de>
> 
> Please note that as-is this causes a build failure:
> +(MCR3000) In file included from ../arch/powerpc/cpu/mpc8xx/cpu.c:23:0:
> +(MCR3000) ../include/watchdog.h:32:4: error: #error "Configuration error: CONFIG_HW_WATCHDOG and CONFIG_WATCHDOG can't be used together."
> +(MCR3000)  #  error "Configuration error: CONFIG_HW_WATCHDOG and CONFIG_WATCHDOG can't be used  together."
> +(MCR3000)     ^~~~~
> +(MCR3000) make[2]: *** [arch/powerpc/cpu/mpc8xx/cpu.o] Error 1
> +(MCR3000) make[1]: *** [arch/powerpc/cpu/mpc8xx] Error 2
> +(MCR3000) make: *** [sub-make] Error 2
> 

Right.

CONFIG_HW_WATCHDOG and CONFIG_WATCHDOG are mutually exclusive but 
CONFIG_WDT implicitely selects CONFIG_WATCHDOG since commit 06985289d452 
("watchdog: Implement generic watchdog_reset() version")

I've just sent a patch to fix that. Please take both together.

Christophe
Tom Rini Feb. 28, 2020, 6:37 p.m. UTC | #4
On Thu, Feb 20, 2020 at 07:39:51AM +0000, Christophe Leroy wrote:

> Commit f3729ba6e7b2 ("watchdog: mpc8xx_wdt: Watchdog driver and macros
> cleanup") switched the watchdog to CONFIG_WATCHDOG. But this is not
> compatible with the 8xx because it starts the watchdog HW timer at
> reset and must be serviced from the very beginning including while
> U-boot is executed in the firmware before relocation in RAM.
> 
> Select CONFIG_HW_WATCHDOG and make hw_watchdog_reset() visible.
> 
> Meanwhile, finalise the cleanup of arch/powerpc/cpu/mpc8xx/Kconfig by
> removing the lines put in comment in that commit, and also remove
> again the selection of CONFIG_MPC8xx_WATCHDOG which was removed by
> that commit and brought back by mistake by commit b3134ffbd944
> ("watchdog: Kconfig: Sort entry alphabetically")
> 
> Note that there was an 'imply WATCHDOG' in the original commit but
> it disappeared in the Kconfig alphabetical sorting, so no need to
> remove it here.
> 
> Fixes: f3729ba6e7b2 ("watchdog: mpc8xx_wdt: Watchdog driver and macros cleanup")
> Fixes: b3134ffbd944 ("watchdog: Kconfig: Sort entry alphabetically")
> Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
> Cc: Stefan Roese <sr@denx.de>
> Cc: Patrice Chotard <patrice.chotard@st.com>
> Reviewed-by: Stefan Roese <sr@denx.de>

Applied to u-boot/master, thanks!

Patch
diff mbox series

diff --git a/arch/powerpc/cpu/mpc8xx/Kconfig b/arch/powerpc/cpu/mpc8xx/Kconfig
index 3e8ea3852959..f11231737656 100644
--- a/arch/powerpc/cpu/mpc8xx/Kconfig
+++ b/arch/powerpc/cpu/mpc8xx/Kconfig
@@ -25,10 +25,6 @@  config MPC885
 
 endchoice
 
-#config MPC8xx_WATCHDOG
-#	bool "Watchdog"
-#	select HW_WATCHDOG
-
 config 8xx_GCLK_FREQ
 	int "CPU GCLK Frequency"
 
diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index 36fbdce55208..fbb561b995f1 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -118,7 +118,7 @@  config WDT_CORTINA
 config WDT_MPC8xx
 	bool "MPC8xx watchdog timer support"
 	depends on WDT && MPC8xx
-	select CONFIG_MPC8xx_WATCHDOG
+	select HW_WATCHDOG
 	help
 	   Select this to enable mpc8xx watchdog timer
 
diff --git a/drivers/watchdog/mpc8xx_wdt.c b/drivers/watchdog/mpc8xx_wdt.c
index 8a7a4c5bc6c3..c8b104d8f567 100644
--- a/drivers/watchdog/mpc8xx_wdt.c
+++ b/drivers/watchdog/mpc8xx_wdt.c
@@ -11,7 +11,7 @@ 
 #include <asm/cpm_8xx.h>
 #include <asm/io.h>
 
-static void hw_watchdog_reset(void)
+void hw_watchdog_reset(void)
 {
 	immap_t __iomem *immap = (immap_t __iomem *)CONFIG_SYS_IMMR;