All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Pali Rohár" <pali@kernel.org>
To: Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Michael Ellerman <mpe@ellerman.id.au>
Cc: devicetree@vger.kernel.org, linux-pm@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,
	"Marek Behún" <kabel@kernel.org>
Subject: [PATCH v2 3/3] powerpc: dts: turris1x.dts: Set lower priority for CPLD syscon-reboot
Date: Wed, 31 Aug 2022 01:00:12 +0200	[thread overview]
Message-ID: <20220830230012.9429-3-pali@kernel.org> (raw)
In-Reply-To: <20220830230012.9429-1-pali@kernel.org>

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 <pali@kernel.org>
---
 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 69c38ed8a3a5..c189293d5a1e 100644
--- a/arch/powerpc/boot/dts/turris1x.dts
+++ b/arch/powerpc/boot/dts/turris1x.dts
@@ -353,11 +353,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


WARNING: multiple messages have this Message-ID (diff)
From: "Pali Rohár" <pali@kernel.org>
To: Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Michael Ellerman <mpe@ellerman.id.au>
Cc: "Marek Behún" <kabel@kernel.org>,
	devicetree@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org
Subject: [PATCH v2 3/3] powerpc: dts: turris1x.dts: Set lower priority for CPLD syscon-reboot
Date: Wed, 31 Aug 2022 01:00:12 +0200	[thread overview]
Message-ID: <20220830230012.9429-3-pali@kernel.org> (raw)
In-Reply-To: <20220830230012.9429-1-pali@kernel.org>

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 <pali@kernel.org>
---
 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 69c38ed8a3a5..c189293d5a1e 100644
--- a/arch/powerpc/boot/dts/turris1x.dts
+++ b/arch/powerpc/boot/dts/turris1x.dts
@@ -353,11 +353,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


  parent reply	other threads:[~2022-08-30 23:00 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-20 10:29 [PATCH 1/3] dt-bindings: reset: syscon-reboot: Add priority property Pali Rohár
2022-08-20 10:29 ` Pali Rohár
2022-08-20 10:29 ` [PATCH 2/3] power: reset: syscon-reboot: Add support for specifying priority Pali Rohár
2022-08-20 10:29   ` Pali Rohár
2022-08-20 10:29 ` [PATCH 3/3] powerpc: dts: turris1x.dts: Set lower priority for CPLD syscon-reboot Pali Rohár
2022-08-20 10:29   ` Pali Rohár
2022-08-21 20:21 ` [PATCH 1/3] dt-bindings: reset: syscon-reboot: Add priority property Rob Herring
2022-08-21 20:21   ` Rob Herring
2022-08-22 12:47 ` Rob Herring
2022-08-22 12:47   ` Rob Herring
2022-08-22 13:50   ` Pali Rohár
2022-08-22 13:50     ` Pali Rohár
2022-09-02 20:37     ` Rob Herring
2022-09-07 12:27       ` Krzysztof Kozlowski
2022-08-30 23:00 ` [PATCH v2 " Pali Rohár
2022-08-30 23:00   ` Pali Rohár
2022-08-30 23:00   ` [PATCH v2 2/3] power: reset: syscon-reboot: Add support for specifying priority Pali Rohár
2022-08-30 23:00     ` Pali Rohár
2022-08-30 23:00   ` Pali Rohár [this message]
2022-08-30 23:00     ` [PATCH v2 3/3] powerpc: dts: turris1x.dts: Set lower priority for CPLD syscon-reboot Pali Rohár
2022-08-31  7:26   ` [PATCH v2 1/3] dt-bindings: reset: syscon-reboot: Add priority property Arnd Bergmann
2022-09-02 20:40     ` Rob Herring
2022-08-31  7:31   ` Krzysztof Kozlowski
2022-08-31  7:31     ` Krzysztof Kozlowski
2022-08-31  7:36     ` Pali Rohár
2022-08-31  7:36       ` Pali Rohár
2022-08-31  7:52       ` Krzysztof Kozlowski
2022-08-31  7:52         ` Krzysztof Kozlowski
2022-08-31  8:17 ` [PATCH v3 " Pali Rohár
2022-08-31  8:17   ` Pali Rohár
2022-08-31  8:17   ` [PATCH v3 2/3] power: reset: syscon-reboot: Add support for specifying priority Pali Rohár
2022-08-31  8:17     ` Pali Rohár
2022-08-31  8:17   ` [PATCH v3 3/3] powerpc: dts: turris1x.dts: Set lower priority for CPLD syscon-reboot Pali Rohár
2022-08-31  8:17     ` Pali Rohár
2022-09-07 12:38   ` [PATCH v3 1/3] dt-bindings: reset: syscon-reboot: Add priority property Krzysztof Kozlowski
2022-09-07 12:38     ` Krzysztof Kozlowski
2022-09-07 16:33     ` Pali Rohár
2022-09-07 16:33       ` Pali Rohár
2022-09-08  7:26       ` Krzysztof Kozlowski
2022-09-08  7:26         ` Krzysztof Kozlowski
2022-12-26 11:45 ` [PATCH v4 " Pali Rohár
2022-12-26 11:45   ` [PATCH v4 2/3] power: reset: syscon-reboot: Add support for specifying priority Pali Rohár
2022-12-26 11:45   ` [PATCH v4 3/3] powerpc: dts: turris1x.dts: Set lower priority for CPLD syscon-reboot Pali Rohár
2022-12-26 11:45     ` Pali Rohár
2023-02-09  0:10     ` Pali Rohár
2023-02-09  0:10       ` Pali Rohár
2023-02-18 12:05       ` Pali Rohár
2023-02-18 12:05         ` Pali Rohár
2023-02-20  0:55         ` Michael Ellerman
2023-02-20  0:55           ` Michael Ellerman
2022-12-26 12:02   ` [PATCH v4 1/3] dt-bindings: reset: syscon-reboot: Add priority property Krzysztof Kozlowski
2022-12-26 18:23   ` Rob Herring
2023-01-22 11:27   ` Pali Rohár
2023-02-03 12:16     ` Sebastian Reichel
2023-02-03 12:35       ` Krzysztof Kozlowski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220830230012.9429-3-pali@kernel.org \
    --to=pali@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=kabel@kernel.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mpe@ellerman.id.au \
    --cc=robh+dt@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.