On Monday 26 December 2022 12:45:13 Pali Rohár wrote:
> Due to CPLD firmware bugs, set CPLD syscon-reboot priority level to 64
> (between rstcr and watchdog) to ensure that rstcr's global-utilities reset
> method which is preferred stay as default one, and to ensure that CPLD
> syscon-reboot is more preferred than watchdog reset method.
> 
> Fixes: 0531a4abd1c6 ("powerpc: dts: turris1x.dts: Add CPLD reboot node")
> Signed-off-by: Pali Rohár <[email protected]>

May I ask who can take this 3/3 patch? powersupply or powerpc tree?

> ---
>  arch/powerpc/boot/dts/turris1x.dts | 23 +++++++++++++++++++++++
>  1 file changed, 23 insertions(+)
> 
> diff --git a/arch/powerpc/boot/dts/turris1x.dts 
> b/arch/powerpc/boot/dts/turris1x.dts
> index e9cda34a140e..c9b619f6ed5c 100644
> --- a/arch/powerpc/boot/dts/turris1x.dts
> +++ b/arch/powerpc/boot/dts/turris1x.dts
> @@ -367,11 +367,34 @@
>                       };
>  
>                       reboot@d {
> +                             /*
> +                              * CPLD firmware which manages system reset and
> +                              * watchdog registers has bugs. It does not
> +                              * autoclear system reset register after change
> +                              * and watchdog ignores reset line on immediate
> +                              * succeeding reset cycle triggered by watchdog.
> +                              * These bugs have to be workarounded in U-Boot
> +                              * bootloader. So use system reset via syscon as
> +                              * a last resort because older U-Boot versions
> +                              * do not have workaround for watchdog.
> +                              *
> +                              * Reset method via rstcr's global-utilities
> +                              * (the preferred one) has priority level 128,
> +                              * watchdog has priority level 0 and default
> +                              * syscon-reboot priority level is 192.
> +                              *
> +                              * So define syscon-reboot with custom priority
> +                              * level 64 (between rstcr and watchdog) because
> +                              * rstcr should stay as default preferred reset
> +                              * method and reset via watchdog is more broken
> +                              * than system reset via syscon.
> +                              */
>                               compatible = "syscon-reboot";
>                               reg = <0x0d 0x01>;
>                               offset = <0x0d>;
>                               mask = <0x01>;
>                               value = <0x01>;
> +                             priority = <64>;
>                       };
>  
>                       led-controller@13 {
> -- 
> 2.20.1
> 

Reply via email to