diff mbox series

[U-Boot,v3,3/3] arm: sunxi: h6: fix reset using r_wdog

Message ID 20190417174105.27440-4-peron.clem@gmail.com
State Accepted
Delegated to: Jagannadha Sutradharudu Teki
Headers show
Series Add Beelink GS1 Board | expand

Commit Message

Clément Péron April 17, 2019, 5:41 p.m. UTC
WDOG is broken for some H6 rev. The board is not
reseted correctly.

Use the R_WDOG instead.

Signed-off-by: Clément Péron <peron.clem@gmail.com>
---
 arch/arm/include/asm/arch-sunxi/cpu_sun50i_h6.h | 1 +
 arch/arm/mach-sunxi/board.c                     | 9 +++++++--
 2 files changed, 8 insertions(+), 2 deletions(-)

Comments

Clément Péron April 19, 2019, 7:52 a.m. UTC | #1
Hi,

+Chen-Yu Tsai for test and +Icenowy because she try to contact AW
about this issue.

On Wed, 17 Apr 2019 at 19:41, Clément Péron <peron.clem@gmail.com> wrote:
>
> WDOG is broken for some H6 rev. The board is not
> reseted correctly.
>
> Use the R_WDOG instead.

The issue is real except on Pine H64 and Rongpin RP-H6B which seems to
be NOT affected.
Lot of users on OrangePi boards (Lite2 / One Plus and 3) are
complaining about this issue.

We perform a simple watchdog test on different board :

Chen-Yu Tsai :
Pine h64 = H6 V200-AWIN H6448BA 7782 => OK
OrangePi Lite 2 = H6 V200-AWIN H8068BA 61C2 => KO

Martin Ayotte :
PineH64 = H8069BA 6892 => OK
Orange Pi 3 = HA047BA 69W2 => KO
OPiOnePlus = H7310BA 6842 => KO
OPiLite2 = H6448BA 6662 => KO

Clément Péron:
Beelink GS1 = H6 V200-AWIN H7309BA 6842 => KO

After the series of result, Icenowy try to reach Allwinner about this
issue but they seems not interested to investigate it.

I'm not sure if it's an HW errata or if there something misconfigured
but the result is here WDOG doesn't make these boards reboot.
And this should not happens !

As we don't have the ARIS co proc to do power management and watchdog
is the only solution to reset the board for now.
A really simple change from Watchdog to R_Watchdog fix the issue and
has been tested on several boards.
Patch is already applied on Armbian.

Thanks,
Clément

>
> Signed-off-by: Clément Péron <peron.clem@gmail.com>
> ---
>  arch/arm/include/asm/arch-sunxi/cpu_sun50i_h6.h | 1 +
>  arch/arm/mach-sunxi/board.c                     | 9 +++++++--
>  2 files changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/include/asm/arch-sunxi/cpu_sun50i_h6.h b/arch/arm/include/asm/arch-sunxi/cpu_sun50i_h6.h
> index 41a9b0fc47..6392cb07b4 100644
> --- a/arch/arm/include/asm/arch-sunxi/cpu_sun50i_h6.h
> +++ b/arch/arm/include/asm/arch-sunxi/cpu_sun50i_h6.h
> @@ -60,6 +60,7 @@
>  #define SUNXI_RTC_BASE                 0x07000000
>  #define SUNXI_R_CPUCFG_BASE            0x07000400
>  #define SUNXI_PRCM_BASE                        0x07010000
> +#define SUNXI_R_WDOG_BASE              0x07020400
>  #define SUNXI_R_PIO_BASE               0x07022000
>  #define SUNXI_R_UART_BASE              0x07080000
>  #define SUNXI_R_TWI_BASE               0x07081400
> diff --git a/arch/arm/mach-sunxi/board.c b/arch/arm/mach-sunxi/board.c
> index c6dd7b8e54..921e4c5175 100644
> --- a/arch/arm/mach-sunxi/board.c
> +++ b/arch/arm/mach-sunxi/board.c
> @@ -289,9 +289,14 @@ void reset_cpu(ulong addr)
>                 writel(WDT_MODE_RESET_EN | WDT_MODE_EN, &wdog->mode);
>         }
>  #elif defined(CONFIG_SUNXI_GEN_SUN6I) || defined(CONFIG_MACH_SUN50I_H6)
> +#if defined(CONFIG_MACH_SUN50I_H6)
> +       /* WDOG is broken for some H6 rev. use the R_WDOG instead */
>         static const struct sunxi_wdog *wdog =
> -                ((struct sunxi_timer_reg *)SUNXI_TIMER_BASE)->wdog;
> -
> +               (struct sunxi_wdog *)SUNXI_R_WDOG_BASE;
> +#else
> +       static const struct sunxi_wdog *wdog =
> +               ((struct sunxi_timer_reg *)SUNXI_TIMER_BASE)->wdog;
> +#endif
>         /* Set the watchdog for its shortest interval (.5s) and wait */
>         writel(WDT_CFG_RESET, &wdog->cfg);
>         writel(WDT_MODE_EN, &wdog->mode);
> --
> 2.17.1
>
Jagan Teki April 19, 2019, 8:24 a.m. UTC | #2
On Fri, Apr 19, 2019 at 1:23 PM Clément Péron <peron.clem@gmail.com> wrote:
>
> Hi,
>
> +Chen-Yu Tsai for test and +Icenowy because she try to contact AW
> about this issue.
>
> On Wed, 17 Apr 2019 at 19:41, Clément Péron <peron.clem@gmail.com> wrote:
> >
> > WDOG is broken for some H6 rev. The board is not
> > reseted correctly.
> >
> > Use the R_WDOG instead.
>
> The issue is real except on Pine H64 and Rongpin RP-H6B which seems to
> be NOT affected.
> Lot of users on OrangePi boards (Lite2 / One Plus and 3) are
> complaining about this issue.
>
> We perform a simple watchdog test on different board :
>
> Chen-Yu Tsai :
> Pine h64 = H6 V200-AWIN H6448BA 7782 => OK
> OrangePi Lite 2 = H6 V200-AWIN H8068BA 61C2 => KO
>
> Martin Ayotte :
> PineH64 = H8069BA 6892 => OK
> Orange Pi 3 = HA047BA 69W2 => KO
> OPiOnePlus = H7310BA 6842 => KO
> OPiLite2 = H6448BA 6662 => KO
>
> Clément Péron:
> Beelink GS1 = H6 V200-AWIN H7309BA 6842 => KO
>
> After the series of result, Icenowy try to reach Allwinner about this
> issue but they seems not interested to investigate it.
>
> I'm not sure if it's an HW errata or if there something misconfigured
> but the result is here WDOG doesn't make these boards reboot.
> And this should not happens !

How about Linux? same issue.
Clément Péron April 19, 2019, 9:19 a.m. UTC | #3
Hi,

On Fri, 19 Apr 2019 at 10:24, Jagan Teki <jagan@amarulasolutions.com> wrote:
>
> On Fri, Apr 19, 2019 at 1:23 PM Clément Péron <peron.clem@gmail.com> wrote:
> >
> > Hi,
> >
> > +Chen-Yu Tsai for test and +Icenowy because she try to contact AW
> > about this issue.
> >
> > On Wed, 17 Apr 2019 at 19:41, Clément Péron <peron.clem@gmail.com> wrote:
> > >
> > > WDOG is broken for some H6 rev. The board is not
> > > reseted correctly.
> > >
> > > Use the R_WDOG instead.
> >
> > The issue is real except on Pine H64 and Rongpin RP-H6B which seems to
> > be NOT affected.
> > Lot of users on OrangePi boards (Lite2 / One Plus and 3) are
> > complaining about this issue.
> >
> > We perform a simple watchdog test on different board :
> >
> > Chen-Yu Tsai :
> > Pine h64 = H6 V200-AWIN H6448BA 7782 => OK
> > OrangePi Lite 2 = H6 V200-AWIN H8068BA 61C2 => KO
> >
> > Martin Ayotte :
> > PineH64 = H8069BA 6892 => OK
> > Orange Pi 3 = HA047BA 69W2 => KO
> > OPiOnePlus = H7310BA 6842 => KO
> > OPiLite2 = H6448BA 6662 => KO
> >
> > Clément Péron:
> > Beelink GS1 = H6 V200-AWIN H7309BA 6842 => KO
> >
> > After the series of result, Icenowy try to reach Allwinner about this
> > issue but they seems not interested to investigate it.
> >
> > I'm not sure if it's an HW errata or if there something misconfigured
> > but the result is here WDOG doesn't make these boards reboot.
> > And this should not happens !
>
> How about Linux? same issue.
Yes, Linux use PSCI, call ATF and we have the same issue as ATF use
the watchdog to reboot.

Clement
Clément Péron April 29, 2019, 8:28 p.m. UTC | #4
Hi Jagan,

FYI the patch on ATF has been merged just now. It has been tested by
André Przywara on A64, H5 and H6.

https://github.com/ARM-software/arm-trusted-firmware/commit/523ab5be1a84e9aa15fb62c3a15a6338b01d3961

Thanks,
Clement

On Fri, 19 Apr 2019 at 11:19, Clément Péron <peron.clem@gmail.com> wrote:
>
> Hi,
>
> On Fri, 19 Apr 2019 at 10:24, Jagan Teki <jagan@amarulasolutions.com> wrote:
> >
> > On Fri, Apr 19, 2019 at 1:23 PM Clément Péron <peron.clem@gmail.com> wrote:
> > >
> > > Hi,
> > >
> > > +Chen-Yu Tsai for test and +Icenowy because she try to contact AW
> > > about this issue.
> > >
> > > On Wed, 17 Apr 2019 at 19:41, Clément Péron <peron.clem@gmail.com> wrote:
> > > >
> > > > WDOG is broken for some H6 rev. The board is not
> > > > reseted correctly.
> > > >
> > > > Use the R_WDOG instead.
> > >
> > > The issue is real except on Pine H64 and Rongpin RP-H6B which seems to
> > > be NOT affected.
> > > Lot of users on OrangePi boards (Lite2 / One Plus and 3) are
> > > complaining about this issue.
> > >
> > > We perform a simple watchdog test on different board :
> > >
> > > Chen-Yu Tsai :
> > > Pine h64 = H6 V200-AWIN H6448BA 7782 => OK
> > > OrangePi Lite 2 = H6 V200-AWIN H8068BA 61C2 => KO
> > >
> > > Martin Ayotte :
> > > PineH64 = H8069BA 6892 => OK
> > > Orange Pi 3 = HA047BA 69W2 => KO
> > > OPiOnePlus = H7310BA 6842 => KO
> > > OPiLite2 = H6448BA 6662 => KO
> > >
> > > Clément Péron:
> > > Beelink GS1 = H6 V200-AWIN H7309BA 6842 => KO
> > >
> > > After the series of result, Icenowy try to reach Allwinner about this
> > > issue but they seems not interested to investigate it.
> > >
> > > I'm not sure if it's an HW errata or if there something misconfigured
> > > but the result is here WDOG doesn't make these boards reboot.
> > > And this should not happens !
> >
> > How about Linux? same issue.
> Yes, Linux use PSCI, call ATF and we have the same issue as ATF use
> the watchdog to reboot.
>
> Clement
Clément Péron May 12, 2019, 6:19 p.m. UTC | #5
Hi Jagan,

Is there anything you need to merge this patch?

Thanks,
Clément


On Mon, 29 Apr 2019 at 22:28, Clément Péron <peron.clem@gmail.com> wrote:
>
> Hi Jagan,
>
> FYI the patch on ATF has been merged just now. It has been tested by
> André Przywara on A64, H5 and H6.
>
> https://github.com/ARM-software/arm-trusted-firmware/commit/523ab5be1a84e9aa15fb62c3a15a6338b01d3961
>
> Thanks,
> Clement
>
> On Fri, 19 Apr 2019 at 11:19, Clément Péron <peron.clem@gmail.com> wrote:
> >
> > Hi,
> >
> > On Fri, 19 Apr 2019 at 10:24, Jagan Teki <jagan@amarulasolutions.com> wrote:
> > >
> > > On Fri, Apr 19, 2019 at 1:23 PM Clément Péron <peron.clem@gmail.com> wrote:
> > > >
> > > > Hi,
> > > >
> > > > +Chen-Yu Tsai for test and +Icenowy because she try to contact AW
> > > > about this issue.
> > > >
> > > > On Wed, 17 Apr 2019 at 19:41, Clément Péron <peron.clem@gmail.com> wrote:
> > > > >
> > > > > WDOG is broken for some H6 rev. The board is not
> > > > > reseted correctly.
> > > > >
> > > > > Use the R_WDOG instead.
> > > >
> > > > The issue is real except on Pine H64 and Rongpin RP-H6B which seems to
> > > > be NOT affected.
> > > > Lot of users on OrangePi boards (Lite2 / One Plus and 3) are
> > > > complaining about this issue.
> > > >
> > > > We perform a simple watchdog test on different board :
> > > >
> > > > Chen-Yu Tsai :
> > > > Pine h64 = H6 V200-AWIN H6448BA 7782 => OK
> > > > OrangePi Lite 2 = H6 V200-AWIN H8068BA 61C2 => KO
> > > >
> > > > Martin Ayotte :
> > > > PineH64 = H8069BA 6892 => OK
> > > > Orange Pi 3 = HA047BA 69W2 => KO
> > > > OPiOnePlus = H7310BA 6842 => KO
> > > > OPiLite2 = H6448BA 6662 => KO
> > > >
> > > > Clément Péron:
> > > > Beelink GS1 = H6 V200-AWIN H7309BA 6842 => KO
> > > >
> > > > After the series of result, Icenowy try to reach Allwinner about this
> > > > issue but they seems not interested to investigate it.
> > > >
> > > > I'm not sure if it's an HW errata or if there something misconfigured
> > > > but the result is here WDOG doesn't make these boards reboot.
> > > > And this should not happens !
> > >
> > > How about Linux? same issue.
> > Yes, Linux use PSCI, call ATF and we have the same issue as ATF use
> > the watchdog to reboot.
> >
> > Clement
Jagan Teki May 12, 2019, 6:23 p.m. UTC | #6
On Fri, Apr 19, 2019 at 2:49 PM Clément Péron <peron.clem@gmail.com> wrote:
>
> Hi,
>
> On Fri, 19 Apr 2019 at 10:24, Jagan Teki <jagan@amarulasolutions.com> wrote:
> >
> > On Fri, Apr 19, 2019 at 1:23 PM Clément Péron <peron.clem@gmail.com> wrote:
> > >
> > > Hi,
> > >
> > > +Chen-Yu Tsai for test and +Icenowy because she try to contact AW
> > > about this issue.
> > >
> > > On Wed, 17 Apr 2019 at 19:41, Clément Péron <peron.clem@gmail.com> wrote:
> > > >
> > > > WDOG is broken for some H6 rev. The board is not
> > > > reseted correctly.
> > > >
> > > > Use the R_WDOG instead.
> > >
> > > The issue is real except on Pine H64 and Rongpin RP-H6B which seems to
> > > be NOT affected.
> > > Lot of users on OrangePi boards (Lite2 / One Plus and 3) are
> > > complaining about this issue.
> > >
> > > We perform a simple watchdog test on different board :
> > >
> > > Chen-Yu Tsai :
> > > Pine h64 = H6 V200-AWIN H6448BA 7782 => OK
> > > OrangePi Lite 2 = H6 V200-AWIN H8068BA 61C2 => KO
> > >
> > > Martin Ayotte :
> > > PineH64 = H8069BA 6892 => OK
> > > Orange Pi 3 = HA047BA 69W2 => KO
> > > OPiOnePlus = H7310BA 6842 => KO
> > > OPiLite2 = H6448BA 6662 => KO
> > >
> > > Clément Péron:
> > > Beelink GS1 = H6 V200-AWIN H7309BA 6842 => KO
> > >
> > > After the series of result, Icenowy try to reach Allwinner about this
> > > issue but they seems not interested to investigate it.
> > >
> > > I'm not sure if it's an HW errata or if there something misconfigured
> > > but the result is here WDOG doesn't make these boards reboot.
> > > And this should not happens !
> >
> > How about Linux? same issue.
> Yes, Linux use PSCI, call ATF and we have the same issue as ATF use
> the watchdog to reboot.

There is an RFC for watchdog, can you have any change to add reset_cpu
via that driver (ofcourse it's a rework)?
Clément Péron May 12, 2019, 9:28 p.m. UTC | #7
On Sun, 12 May 2019 at 20:23, Jagan Teki <jagan@amarulasolutions.com> wrote:
>
> On Fri, Apr 19, 2019 at 2:49 PM Clément Péron <peron.clem@gmail.com> wrote:
> >
> > Hi,
> >
> > On Fri, 19 Apr 2019 at 10:24, Jagan Teki <jagan@amarulasolutions.com> wrote:
> > >
> > > On Fri, Apr 19, 2019 at 1:23 PM Clément Péron <peron.clem@gmail.com> wrote:
> > > >
> > > > Hi,
> > > >
> > > > +Chen-Yu Tsai for test and +Icenowy because she try to contact AW
> > > > about this issue.
> > > >
> > > > On Wed, 17 Apr 2019 at 19:41, Clément Péron <peron.clem@gmail.com> wrote:
> > > > >
> > > > > WDOG is broken for some H6 rev. The board is not
> > > > > reseted correctly.
> > > > >
> > > > > Use the R_WDOG instead.
> > > >
> > > > The issue is real except on Pine H64 and Rongpin RP-H6B which seems to
> > > > be NOT affected.
> > > > Lot of users on OrangePi boards (Lite2 / One Plus and 3) are
> > > > complaining about this issue.
> > > >
> > > > We perform a simple watchdog test on different board :
> > > >
> > > > Chen-Yu Tsai :
> > > > Pine h64 = H6 V200-AWIN H6448BA 7782 => OK
> > > > OrangePi Lite 2 = H6 V200-AWIN H8068BA 61C2 => KO
> > > >
> > > > Martin Ayotte :
> > > > PineH64 = H8069BA 6892 => OK
> > > > Orange Pi 3 = HA047BA 69W2 => KO
> > > > OPiOnePlus = H7310BA 6842 => KO
> > > > OPiLite2 = H6448BA 6662 => KO
> > > >
> > > > Clément Péron:
> > > > Beelink GS1 = H6 V200-AWIN H7309BA 6842 => KO
> > > >
> > > > After the series of result, Icenowy try to reach Allwinner about this
> > > > issue but they seems not interested to investigate it.
> > > >
> > > > I'm not sure if it's an HW errata or if there something misconfigured
> > > > but the result is here WDOG doesn't make these boards reboot.
> > > > And this should not happens !
> > >
> > > How about Linux? same issue.
> > Yes, Linux use PSCI, call ATF and we have the same issue as ATF use
> > the watchdog to reboot.
>

Hi,

> There is an RFC for watchdog, can you have any change to add reset_cpu
> via that driver (ofcourse it's a rework)?
It's indeed a more proper way but it's a different work.
I'm only trying to fix the reboot issue on some H6 boards.
Moreover modifying this part will require some testing on different
Allwinner boards that I don't have.

Thanks,
Clement
Jagan Teki May 14, 2019, 1:48 p.m. UTC | #8
On Mon, May 13, 2019 at 2:58 AM Clément Péron <peron.clem@gmail.com> wrote:
>
> On Sun, 12 May 2019 at 20:23, Jagan Teki <jagan@amarulasolutions.com> wrote:
> >
> > On Fri, Apr 19, 2019 at 2:49 PM Clément Péron <peron.clem@gmail.com> wrote:
> > >
> > > Hi,
> > >
> > > On Fri, 19 Apr 2019 at 10:24, Jagan Teki <jagan@amarulasolutions.com> wrote:
> > > >
> > > > On Fri, Apr 19, 2019 at 1:23 PM Clément Péron <peron.clem@gmail.com> wrote:
> > > > >
> > > > > Hi,
> > > > >
> > > > > +Chen-Yu Tsai for test and +Icenowy because she try to contact AW
> > > > > about this issue.
> > > > >
> > > > > On Wed, 17 Apr 2019 at 19:41, Clément Péron <peron.clem@gmail.com> wrote:
> > > > > >
> > > > > > WDOG is broken for some H6 rev. The board is not
> > > > > > reseted correctly.
> > > > > >
> > > > > > Use the R_WDOG instead.
> > > > >
> > > > > The issue is real except on Pine H64 and Rongpin RP-H6B which seems to
> > > > > be NOT affected.
> > > > > Lot of users on OrangePi boards (Lite2 / One Plus and 3) are
> > > > > complaining about this issue.
> > > > >
> > > > > We perform a simple watchdog test on different board :
> > > > >
> > > > > Chen-Yu Tsai :
> > > > > Pine h64 = H6 V200-AWIN H6448BA 7782 => OK
> > > > > OrangePi Lite 2 = H6 V200-AWIN H8068BA 61C2 => KO
> > > > >
> > > > > Martin Ayotte :
> > > > > PineH64 = H8069BA 6892 => OK
> > > > > Orange Pi 3 = HA047BA 69W2 => KO
> > > > > OPiOnePlus = H7310BA 6842 => KO
> > > > > OPiLite2 = H6448BA 6662 => KO
> > > > >
> > > > > Clément Péron:
> > > > > Beelink GS1 = H6 V200-AWIN H7309BA 6842 => KO
> > > > >
> > > > > After the series of result, Icenowy try to reach Allwinner about this
> > > > > issue but they seems not interested to investigate it.
> > > > >
> > > > > I'm not sure if it's an HW errata or if there something misconfigured
> > > > > but the result is here WDOG doesn't make these boards reboot.
> > > > > And this should not happens !
> > > >
> > > > How about Linux? same issue.
> > > Yes, Linux use PSCI, call ATF and we have the same issue as ATF use
> > > the watchdog to reboot.
> >
>
> Hi,
>
> > There is an RFC for watchdog, can you have any change to add reset_cpu
> > via that driver (ofcourse it's a rework)?
> It's indeed a more proper way but it's a different work.
> I'm only trying to fix the reboot issue on some H6 boards.
> Moreover modifying this part will require some testing on different
> Allwinner boards that I don't have.

True, may be we can plan it for next MW.
Jagan Teki May 14, 2019, 1:49 p.m. UTC | #9
On Wed, Apr 17, 2019 at 11:11 PM Clément Péron <peron.clem@gmail.com> wrote:
>
> WDOG is broken for some H6 rev. The board is not
> reseted correctly.
>
> Use the R_WDOG instead.

Can you describe the proper issue why it broken? this would really
help us to understand and future reference.
Clément Péron May 14, 2019, 3:08 p.m. UTC | #10
Hi Jagan,

On Tue, 14 May 2019 at 15:49, Jagan Teki <jagan@amarulasolutions.com> wrote:
>
> On Wed, Apr 17, 2019 at 11:11 PM Clément Péron <peron.clem@gmail.com> wrote:
> >
> > WDOG is broken for some H6 rev. The board is not
> > reseted correctly.
> >
> > Use the R_WDOG instead.
>
> Can you describe the proper issue why it broken? this would really
> help us to understand and future reference.

I would like but I don't have much information on it.
If I take the information in my 2nd email is it ok for you ?

Something like this
"
Some H6 boards have a watchdog which didn't make the SoC reboot properly.
Reason is still unknown but several people have test it.
Chen-Yu Tsai :
Pine H64 = H6 V200-AWIN H6448BA 7782 => OK
OrangePi Lite 2 = H6 V200-AWIN H8068BA 61C2 => KO

Martin Ayotte :
Pine H64 = H8069BA 6892 => OK
OrangePi 3 = HA047BA 69W2 => KO
OrangePi One Plus = H7310BA 6842 => KO
OrangePi Lite2 = H6448BA 6662 => KO

Clément Péron:
Beelink GS1 = H6 V200-AWIN H7309BA 6842 => KO

After the series of result, Icenowy try to reach Allwinner about this
issue but they seems not interested to investigate it.

As we don't have the ARIS coproc to do power management and watchdogis
the only solution to reset the board.
Change from watchdog to R_watchdog to allow a reboot on all H6 boards.
"

Thanks,
Clement
Jagan Teki May 20, 2019, 4:37 p.m. UTC | #11
On Tue, May 14, 2019 at 8:38 PM Clément Péron <peron.clem@gmail.com> wrote:
>
> Hi Jagan,
>
> On Tue, 14 May 2019 at 15:49, Jagan Teki <jagan@amarulasolutions.com> wrote:
> >
> > On Wed, Apr 17, 2019 at 11:11 PM Clément Péron <peron.clem@gmail.com> wrote:
> > >
> > > WDOG is broken for some H6 rev. The board is not
> > > reseted correctly.
> > >
> > > Use the R_WDOG instead.
> >
> > Can you describe the proper issue why it broken? this would really
> > help us to understand and future reference.
>
> I would like but I don't have much information on it.
> If I take the information in my 2nd email is it ok for you ?
>
> Something like this
> "
> Some H6 boards have a watchdog which didn't make the SoC reboot properly.
> Reason is still unknown but several people have test it.
> Chen-Yu Tsai :
> Pine H64 = H6 V200-AWIN H6448BA 7782 => OK
> OrangePi Lite 2 = H6 V200-AWIN H8068BA 61C2 => KO
>
> Martin Ayotte :
> Pine H64 = H8069BA 6892 => OK
> OrangePi 3 = HA047BA 69W2 => KO
> OrangePi One Plus = H7310BA 6842 => KO
> OrangePi Lite2 = H6448BA 6662 => KO
>
> Clément Péron:
> Beelink GS1 = H6 V200-AWIN H7309BA 6842 => KO
>
> After the series of result, Icenowy try to reach Allwinner about this
> issue but they seems not interested to investigate it.
>
> As we don't have the ARIS coproc to do power management and watchdogis
> the only solution to reset the board.
> Change from watchdog to R_watchdog to allow a reboot on all H6 boards.

Thanks, included this and

Applied to u-boot-sunxi/master
diff mbox series

Patch

diff --git a/arch/arm/include/asm/arch-sunxi/cpu_sun50i_h6.h b/arch/arm/include/asm/arch-sunxi/cpu_sun50i_h6.h
index 41a9b0fc47..6392cb07b4 100644
--- a/arch/arm/include/asm/arch-sunxi/cpu_sun50i_h6.h
+++ b/arch/arm/include/asm/arch-sunxi/cpu_sun50i_h6.h
@@ -60,6 +60,7 @@ 
 #define SUNXI_RTC_BASE			0x07000000
 #define SUNXI_R_CPUCFG_BASE		0x07000400
 #define SUNXI_PRCM_BASE			0x07010000
+#define SUNXI_R_WDOG_BASE		0x07020400
 #define SUNXI_R_PIO_BASE		0x07022000
 #define SUNXI_R_UART_BASE		0x07080000
 #define SUNXI_R_TWI_BASE		0x07081400
diff --git a/arch/arm/mach-sunxi/board.c b/arch/arm/mach-sunxi/board.c
index c6dd7b8e54..921e4c5175 100644
--- a/arch/arm/mach-sunxi/board.c
+++ b/arch/arm/mach-sunxi/board.c
@@ -289,9 +289,14 @@  void reset_cpu(ulong addr)
 		writel(WDT_MODE_RESET_EN | WDT_MODE_EN, &wdog->mode);
 	}
 #elif defined(CONFIG_SUNXI_GEN_SUN6I) || defined(CONFIG_MACH_SUN50I_H6)
+#if defined(CONFIG_MACH_SUN50I_H6)
+	/* WDOG is broken for some H6 rev. use the R_WDOG instead */
 	static const struct sunxi_wdog *wdog =
-		 ((struct sunxi_timer_reg *)SUNXI_TIMER_BASE)->wdog;
-
+		(struct sunxi_wdog *)SUNXI_R_WDOG_BASE;
+#else
+	static const struct sunxi_wdog *wdog =
+		((struct sunxi_timer_reg *)SUNXI_TIMER_BASE)->wdog;
+#endif
 	/* Set the watchdog for its shortest interval (.5s) and wait */
 	writel(WDT_CFG_RESET, &wdog->cfg);
 	writel(WDT_MODE_EN, &wdog->mode);